http://ftp.nluug.nl/pub/os/Linux/distr/pardusrepo/sources/xscreensaver-5.02.tar.gz
authorZygo Blaxell <zblaxell@hungrycats.org>
Mon, 2 Mar 2009 05:43:44 +0000 (00:43 -0500)
committerZygo Blaxell <zblaxell@faye.furryterror.org>
Fri, 8 Feb 2013 17:54:42 +0000 (12:54 -0500)
-rw-r--r-- 1 zblaxell zblaxell 5371759 Apr 23  2007 xscreensaver-5.02.tar.gz
3e02f516efc25755f1a89f5af3983423f639f82b  xscreensaver-5.02.tar.gz

89 files changed:
OSX/InvertedSlider.m
OSX/PrefsReader.m
OSX/SaverTester.plist
OSX/XScreenSaver.plist
OSX/XScreenSaverConfigSheet.m
OSX/XScreenSaverGLView.m
OSX/bindist.rtf
OSX/jwxyz-timers.m
OSX/jwxyz.h
OSX/jwxyz.m
README
config.h.in
configure
configure.in
driver/Makefile.in
driver/XScreenSaver.ad.in
driver/XScreenSaver_ad.h
driver/auth.h [new file with mode: 0644]
driver/demo-Gtk.c
driver/lock.c
driver/mlstring.c [new file with mode: 0644]
driver/mlstring.h [new file with mode: 0644]
driver/passwd-helper.c
driver/passwd-pam.c
driver/passwd-pwent.c
driver/passwd.c
driver/prefs.h
driver/splash.c
driver/subprocs.c
driver/test-mlstring.c [new file with mode: 0644]
driver/test-passwd.c
driver/types.h [new file with mode: 0644]
driver/windows.c
driver/xscreensaver-text.man
driver/xscreensaver.c
driver/xscreensaver.h
hacks/Makefile.in
hacks/bsod.c
hacks/compile_axp.com
hacks/compile_decc.com
hacks/config/README
hacks/config/celtic.xml
hacks/config/circuit.xml
hacks/config/flipflop.xml
hacks/config/flow.xml
hacks/config/glhanoi.xml
hacks/config/grav.xml
hacks/config/ifs.xml
hacks/config/lisa.xml
hacks/config/mirrorblob.xml
hacks/config/petri.xml
hacks/config/pipes.xml
hacks/config/rd-bomb.xml
hacks/config/rdbomb.xml
hacks/config/rocks.xml
hacks/config/starwars.xml
hacks/glx/Makefile.in
hacks/glx/carousel.c
hacks/glx/circuit.c
hacks/glx/crackberg.c
hacks/glx/crackberg.man
hacks/glx/endgame.c
hacks/glx/flipscreen3d.c
hacks/glx/fliptext.c
hacks/glx/glblur.man
hacks/glx/glhanoi.c
hacks/glx/hypertorus.c
hacks/glx/mirrorblob.c
hacks/glx/mirrorblob.man
hacks/glx/polytopes.c
hacks/glx/starwars.c
hacks/glx/texfont.c
hacks/ifs.c
hacks/ifs.man
hacks/images/mac.xbm
hacks/images/osx_10_2.xpm [new file with mode: 0644]
hacks/images/osx_10_3.xpm [new file with mode: 0644]
hacks/lisa.c
hacks/screenhack.c
hacks/starfish.c
hacks/webcollage
hacks/webcollage-cocoa.m [new file with mode: 0644]
hacks/webcollage-helper-cocoa.m [new file with mode: 0644]
hacks/webcollage-helper.c
po/POTFILES.in
utils/version.h
utils/visual-gl.c
xscreensaver.spec
xscreensaver.xcodeproj/project.pbxproj

index d291ffec27779d275e45bc9e85c7ec5507ea1a85..e5c23b28abd28daaeac503b50bcd2e88fe0669f8 100644 (file)
@@ -23,7 +23,7 @@
   double range = high - low;
   double off   = value - low;
   double trans = low + (range - off);
-  // NSLog (@" ... %.1f -> %.1f    [%.1f - %.1f]\n", value, trans, low, high);
+  // NSLog (@" ... %.1f -> %.1f    [%.1f - %.1f]", value, trans, low, high);
   return trans;
 }
 
index 3c20f3dcf328db28ecbd24bba93b6a83b39a334a..9ff55bba23692d2bad162209d6632cd80991dab3 100644 (file)
@@ -66,7 +66,7 @@
     else
       nsval = [NSString stringWithCString:val encoding:NSUTF8StringEncoding];
       
-//    NSLog (@"default: \"%@\" = \"%@\" [%@]\n", nskey, nsval, [nsval class]);
+//    NSLog (@"default: \"%@\" = \"%@\" [%@]", nskey, nsval, [nsval class]);
     [dict setValue:nsval forKey:nskey];
     free (line);
     defs++;
 - (char *) getStringResource: (const char *) name
 {
   NSObject *o = [self getObjectResource:name];
-  //NSLog(@"%s = %@\n",name,o);
+  //NSLog(@"%s = %@",name,o);
   if (o == nil) {
     if (! (!strcmp(name, "eraseMode") || // erase.c
            // xlockmore.c reads all of these whether used or not...
            !strcmp(name, "titleFont") ||
            !strcmp(name, "background")
            ))
-      NSLog(@"warning: no preference \"%s\" [string]\n", name);
+      NSLog(@"warning: no preference \"%s\" [string]", name);
     return NULL;
   }
 #if 0
            !strcmp(name, "ncolors") ||
            !strcmp(name, "eraseSeconds")  // erase.c
            ))
-      NSLog(@"warning: no preference \"%s\" [float]\n", name);
+      NSLog(@"warning: no preference \"%s\" [float]", name);
     return 0.0;
   }
   if ([o isKindOfClass:[NSString class]]) {
   if (n == 0) return NO;
   else if (n == 1) return YES;
   else {
-    NSAssert2(0, @"%s = %d but should have been 0 or 1\n", name, n);
+    NSAssert2(0, @"%s = %d but should have been 0 or 1", name, n);
     abort();
   }
 }
index 1feabb217f23bf7fbc0dff982b1ff5f211da7a3b..141266be8203300938a0b6d4abdf7202660839a0 100644 (file)
        <key>CFBundlePackageType</key>
        <string>APPL</string>
        <key>CFBundleShortVersionString</key>
-       <string>5.01</string>
+       <string>5.02</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
-       <string>5.01</string>
+       <string>5.02</string>
        <key>LSMinimumSystemVersion</key>
        <string>10.4.0</string>
        <key>NSMainNibFile</key>
index a3e6b63ad9d2ef692206769375853c8d51d4063f..7eaf05dad7ff64ad63a53b8deb74bc6636ff12c9 100644 (file)
        <key>CFBundlePackageType</key>
        <string>BNDL</string>
        <key>CFBundleShortVersionString</key>
-       <string>5.01</string>
+       <string>5.02</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
-       <string>5.01</string>
+       <string>5.02</string>
        <key>LSMinimumSystemVersion</key>
        <string>10.4.0</string>
        <key>NSMainNibFile</key>
index 24ab1c42558c3acfb950d8afbf8b84779192bf81..e1e1e78101c8e7d75a8ef29f2e65850eaffdefa3 100644 (file)
@@ -59,7 +59,7 @@ switch_to_resource (NSString *cmdline_switch, const XrmOptionDescRec *opts,
   NSAssert(cmdline_switch, @"cmdline switch is null");
   if (! [cmdline_switch getCString:buf maxLength:sizeof(buf)
                           encoding:NSUTF8StringEncoding]) {
-    NSAssert1(0, @"unable to convert %@\n", cmdline_switch);
+    NSAssert1(0, @"unable to convert %@", cmdline_switch);
     abort();
   }
   char *s = strpbrk(buf, " \t\r\n");
@@ -76,12 +76,12 @@ switch_to_resource (NSString *cmdline_switch, const XrmOptionDescRec *opts,
 
       if (opts[0].argKind == XrmoptionNoArg) {
         if (tail && *tail)
-          NSAssert1 (0, @"expected no args to switch: \"%@\"\n",
+          NSAssert1 (0, @"expected no args to switch: \"%@\"",
                      cmdline_switch);
         ret = opts[0].value;
       } else {
         if (!tail || !*tail)
-          NSAssert1 (0, @"expected args to switch: \"%@\"\n",
+          NSAssert1 (0, @"expected args to switch: \"%@\"",
                      cmdline_switch);
         ret = tail;
       }
@@ -101,7 +101,7 @@ switch_to_resource (NSString *cmdline_switch, const XrmOptionDescRec *opts,
     opts++;
   }
   
-  NSAssert1 (0, @"\"%@\" not present in options\n", cmdline_switch);
+  NSAssert1 (0, @"\"%@\" not present in options", cmdline_switch);
   abort();
 }
 
@@ -130,7 +130,7 @@ bind_resource_to_preferences (NSUserDefaultsController *prefs,
   s = [s stringByPaddingToLength:18 withString:@" " startingAtIndex:0];
   s = [NSString stringWithFormat:@"%@ = \"%@\"", s, def];
   s = [s stringByPaddingToLength:28 withString:@" " startingAtIndex:0];
-  NSLog (@"%@ %@/%@\n", s, [def class], [control class]);
+  NSLog (@"%@ %@/%@", s, [def class], [control class]);
 # endif
 }
 
@@ -170,9 +170,9 @@ parse_attrs (NSMutableDictionary *dict, NSXMLNode *node)
     NSString *old = [dict objectForKey:key];
     
     if (! old) {
-      NSAssert2 (0, @"unknown attribute \"%@\" in \"%@\"\n", key, [node name]);
+      NSAssert2 (0, @"unknown attribute \"%@\" in \"%@\"", key, [node name]);
     } else if ([old length] != 0) {
-      NSAssert2 (0, @"duplicate %@: \"%@\", \"%@\"\n", old, val);
+      NSAssert2 (0, @"duplicate %@: \"%@\", \"%@\"", old, val);
     } else {
       [dict setValue:val forKey:key];
     }
@@ -272,15 +272,15 @@ make_checkbox (NSUserDefaultsController *prefs,
   NSString *arg_unset = [dict objectForKey:@"arg-unset"];
   
   if (!label) {
-    NSAssert1 (0, @"no _label in %@\n", [node name]);
+    NSAssert1 (0, @"no _label in %@", [node name]);
     return;
   }
   if (!arg_set && !arg_unset) {
-    NSAssert1 (0, @"neither arg-set nor arg-unset provided in \"%@\"\n", 
+    NSAssert1 (0, @"neither arg-set nor arg-unset provided in \"%@\"", 
                label);
   }
   if (arg_set && arg_unset) {
-    NSAssert1 (0, @"only one of arg-set and arg-unset may be used in \"%@\"\n", 
+    NSAssert1 (0, @"only one of arg-set and arg-unset may be used in \"%@\"", 
                label);
   }
   
@@ -288,11 +288,11 @@ make_checkbox (NSUserDefaultsController *prefs,
   //
   if (arg_set && ([arg_set hasPrefix:@"-no-"] ||
                   [arg_set hasPrefix:@"--no-"]))
-    NSLog (@"arg-set should not be a \"no\" option in \"%@\": %@\n",
+    NSLog (@"arg-set should not be a \"no\" option in \"%@\": %@",
            label, arg_set);
   if (arg_unset && (![arg_unset hasPrefix:@"-no-"] &&
                     ![arg_unset hasPrefix:@"--no-"]))
-    NSLog(@"arg-unset should be a \"no\" option in \"%@\": %@\n",
+    NSLog(@"arg-unset should be a \"no\" option in \"%@\": %@",
           label, arg_unset);
     
   NSRect rect;
@@ -332,11 +332,11 @@ make_text_field (NSUserDefaultsController *prefs,
   NSString *arg   = [dict objectForKey:@"arg"];
 
   if (!label && !no_label_p) {
-    NSAssert1 (0, @"no _label in %@\n", [node name]);
+    NSAssert1 (0, @"no _label in %@", [node name]);
     return;
   }
 
-  NSAssert1 (arg, @"no arg in %@\n", label);
+  NSAssert1 (arg, @"no arg in %@", label);
 
   NSRect rect;
   rect.origin.x = rect.origin.y = 0;    
@@ -387,11 +387,11 @@ make_file_selector (NSUserDefaultsController *prefs,
   NSString *arg   = [dict objectForKey:@"arg"];
 
   if (!label && !no_label_p) {
-    NSAssert1 (0, @"no _label in %@\n", [node name]);
+    NSAssert1 (0, @"no _label in %@", [node name]);
     return;
   }
 
-  NSAssert1 (arg, @"no arg in %@\n", label);
+  NSAssert1 (arg, @"no arg in %@", label);
 
   NSRect rect;
   rect.origin.x = rect.origin.y = 0;    
@@ -586,19 +586,19 @@ make_number_selector (NSUserDefaultsController *prefs,
   NSString *def        = [dict objectForKey:@"default"];
   NSString *cvt        = [dict objectForKey:@"convert"];
   
-  NSAssert1 (arg,  @"no arg in %@\n", label);
-  NSAssert1 (type, @"no type in %@\n", label);
+  NSAssert1 (arg,  @"no arg in %@", label);
+  NSAssert1 (type, @"no type in %@", label);
 
   if (! low) {
-    NSAssert1 (0, @"no low in %@\n", [node name]);
+    NSAssert1 (0, @"no low in %@", [node name]);
     return;
   }
   if (! high) {
-    NSAssert1 (0, @"no high in %@\n", [node name]);
+    NSAssert1 (0, @"no high in %@", [node name]);
     return;
   }
   if (! def) {
-    NSAssert1 (0, @"no default in %@\n", [node name]);
+    NSAssert1 (0, @"no default in %@", [node name]);
     return;
   }
   if (cvt && ![cvt isEqualToString:@"invert"]) {
@@ -665,14 +665,14 @@ make_number_selector (NSUserDefaultsController *prefs,
   } else if ([type isEqualToString:@"spinbutton"]) {
 
     if (! label) {
-      NSAssert1 (0, @"no _label in spinbutton %@\n", [node name]);
+      NSAssert1 (0, @"no _label in spinbutton %@", [node name]);
       return;
     }
     NSAssert1 (!low_label,
-              @"low-label not allowed in spinbutton \"%@\"\n", [node name]);
+              @"low-label not allowed in spinbutton \"%@\"", [node name]);
     NSAssert1 (!high_label,
-               @"high-label not allowed in spinbutton \"%@\"\n", [node name]);
-    NSAssert1 (!cvt, @"convert not allowed in spinbutton \"%@\"\n",
+               @"high-label not allowed in spinbutton \"%@\"", [node name]);
+    NSAssert1 (!cvt, @"convert not allowed in spinbutton \"%@\"",
                [node name]);
     
     NSRect rect;
@@ -735,7 +735,7 @@ make_number_selector (NSUserDefaultsController *prefs,
     [txt release];
     
   } else {
-    NSAssert2 (0, @"unknown type \"%@\" in \"%@\"\n", type, label);
+    NSAssert2 (0, @"unknown type \"%@\" in \"%@\"", type, label);
   }
 }
 
@@ -775,7 +775,7 @@ make_option_menu (NSUserDefaultsController *prefs,
   int i, count = [children count];
 
   if (count <= 0) {
-    NSAssert1 (0, @"no menu items in \"%@\"\n", [node name]);
+    NSAssert1 (0, @"no menu items in \"%@\"", [node name]);
     return;
   }
 
@@ -822,7 +822,7 @@ make_option_menu (NSUserDefaultsController *prefs,
     NSString *arg_set = [dict2 objectForKey:@"arg-set"];
     
     if (!label) {
-      NSAssert1 (0, @"no _label in %@\n", [child name]);
+      NSAssert1 (0, @"no _label in %@", [child name]);
       return;
     }
 
@@ -836,7 +836,7 @@ make_option_menu (NSUserDefaultsController *prefs,
       NSAssert1 (this_val, @"this_val null for %@", arg_set);
       if (menu_key && ![menu_key isEqualToString:this_key])
         NSAssert3 (0,
-                   @"multiple resources in menu: \"%@\" vs \"%@\" = \"%@\"\n",
+                   @"multiple resources in menu: \"%@\" vs \"%@\" = \"%@\"",
                    menu_key, this_key, this_val);
       if (this_key)
         menu_key = this_key;
@@ -848,7 +848,7 @@ make_option_menu (NSUserDefaultsController *prefs,
 
     } else {
       // no arg-set -- only one menu item can be missing that.
-      NSAssert1 (!def_item, @"no arg-set in \"%@\"\n", label);
+      NSAssert1 (!def_item, @"no arg-set in \"%@\"", label);
       def_item = item;
     }
 
@@ -1397,7 +1397,7 @@ make_control (NSUserDefaultsController *prefs,
     make_image_controls (prefs, opts, parent, node);
 
   } else {
-    NSAssert1 (0, @"unknown tag: %@\n", name);
+    NSAssert1 (0, @"unknown tag: %@", name);
   }
 }
 
@@ -1432,11 +1432,11 @@ parse_xscreensaver_tag (NSXMLNode *node)
   NSString *label = [dict objectForKey:@"_label"];
     
   if (!label) {
-    NSAssert1 (0, @"no _label in %@\n", [node name]);
+    NSAssert1 (0, @"no _label in %@", [node name]);
     return;
   }
   if (!name) {
-    NSAssert1 (0, @"no name in \"%@\"\n", label);
+    NSAssert1 (0, @"no name in \"%@\"", label);
     return;
   }
   
@@ -1709,7 +1709,7 @@ traverse_tree (NSUserDefaultsController *prefs,
   NSURL *furl = [NSURL fileURLWithPath:xml_file];
 
   if (!furl) {
-    NSAssert1 (0, @"can't URLify \"%@\"\n", xml_file);
+    NSAssert1 (0, @"can't URLify \"%@\"", xml_file);
     return nil;
   }
 
@@ -1728,7 +1728,7 @@ traverse_tree (NSUserDefaultsController *prefs,
 */
   if (!xmlDoc || err) {
     if (err)
-      NSAssert2 (0, @"XML Error: %@: %@\n",
+      NSAssert2 (0, @"XML Error: %@: %@",
                  xml_file, [err localizedDescription]);
     return nil;
   }
index bc07c7fbb071301f43d1ce35cb133aff9e6c09a3..8d17eb64065f38298c2d1bf13204c6cb9370fb6b 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 2006 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 2006, 2007 Jamie Zawinski <jwz@jwz.org>
 *
 * Permission to use, copy, modify, distribute, and sell this software and its
 * documentation for any purpose is hereby granted without fee, provided that
@@ -20,6 +20,8 @@
 #import "screenhackI.h"
 #import "xlockmoreI.h"
 
+#import <OpenGL/OpenGL.h>
+
 /* used by the OpenGL screen savers
  */
 extern GLXContext *init_GL (ModeInfo *);
@@ -151,6 +153,17 @@ init_GL (ModeInfo *mi)
   GLint r = 1;
   aglSetInteger (ctx, AGL_SWAP_INTERVAL, &r);
 
+  // Enable multi-threading, if possible.  This runs most OpenGL commands
+  // and GPU management on a second CPU.
+  {
+    CGLContextObj cctx = CGLGetCurrentContext();
+#   define kCGLCEMPEngine 313  // #### new in MacOS 10.4.8 + XCode 2.4
+    CGLError err = CGLEnable (cctx, kCGLCEMPEngine);
+    if (err != kCGLNoError) {
+      NSLog (@"enabling multi-threaded OpenGL failed: %d", err);
+    }
+  }
+
   // Caller expects a pointer to an opaque struct...  which it dereferences.
   // Don't ask me, it's historical...
   static int blort = -1;
@@ -215,7 +228,7 @@ check_agl_error (const char *type)
     default:
       e = buf; sprintf (buf, "unknown AGL error %d", (int) i); break;
   }
-  NSLog (@"%s AGL error: %s\n", type, e);
+  NSLog (@"%s AGL error: %s", type, e);
   exit (1);
 }
 
@@ -246,6 +259,6 @@ check_gl_error (const char *type)
     default:
       e = buf; sprintf (buf, "unknown GL error %d", (int) i); break;
   }
-  NSLog (@"%s GL error: %s\n", type, e);
+  NSLog (@"%s GL error: %s", type, e);
   exit (1);
 }
index 66f2d2c742625b4a7b289744ec96cfebfc6ffc34..2e04b9290ae8e9d4ce280af18c28c5fe8ab2d557 100644 (file)
@@ -15,7 +15,7 @@ XScreenSaver
 \f1\b0 \
 by Jamie Zawinski \uc0\u8232 and many others\
 \
-version 5.01 \uc0\u8232 18-Sep-2006\
+version 5.02 \uc0\u8232 20-Apr-2007\
 \
 {\field{\*\fldinst{HYPERLINK "http://www.jwz.org/xscreensaver/"}}{\fldrslt \cf2 \ul \ulc2 http://www.jwz.org/xscreensaver/}}\
 \pard\pardeftab720\li720
index ec6f4394f73ec1d87b3aec925a9d523ffb247d06..0ad4630fb6a9eeb12d3409b829b3002f9c4a8d8b 100644 (file)
@@ -80,7 +80,7 @@ jwxyz_timer_retain (const void *arg)
 {
   struct jwxyz_XtIntervalId *data = (struct jwxyz_XtIntervalId *) arg;
   data->refcount++;
-  LOGT(@"timer  0x%08X: retain %d\n", (unsigned int) data, data->refcount);
+  LOGT(@"timer  0x%08X: retain %d", (unsigned int) data, data->refcount);
   return arg;
 }
 
@@ -89,7 +89,7 @@ jwxyz_timer_release (const void *arg)
 {
   struct jwxyz_XtIntervalId *data = (struct jwxyz_XtIntervalId *) arg;
   data->refcount--;
-  LOGT(@"timer  0x%08X: release %d\n", (unsigned int) data, data->refcount);
+  LOGT(@"timer  0x%08X: release %d", (unsigned int) data, data->refcount);
   if (data->refcount < 0) abort();
   if (data->refcount == 0) free (data);
 }
@@ -99,7 +99,7 @@ jwxyz_source_retain (const void *arg)
 {
   struct jwxyz_XtInputId *data = (struct jwxyz_XtInputId *) arg;
   data->refcount++;
-  LOGI(@"source 0x%08X %2d: retain %d\n", (unsigned int) data, data->fd, 
+  LOGI(@"source 0x%08X %2d: retain %d", (unsigned int) data, data->fd, 
        data->refcount);
   return arg;
 }
@@ -109,7 +109,7 @@ jwxyz_source_release (const void *arg)
 {
   struct jwxyz_XtInputId *data = (struct jwxyz_XtInputId *) arg;
   data->refcount--;
-  LOGI(@"source 0x%08X %2d: release %d\n", (unsigned int) data, data->fd,
+  LOGI(@"source 0x%08X %2d: release %d", (unsigned int) data, data->fd,
        data->refcount);
   if (data->refcount < 0) abort();
   if (data->refcount == 0) {
@@ -130,7 +130,7 @@ static void
 jwxyz_timer_cb (CFRunLoopTimerRef timer, void *arg)
 {
   struct jwxyz_XtIntervalId *data = (struct jwxyz_XtIntervalId *) arg;
-  LOGT(@"timer  0x%08X: fire\n", (unsigned int) data, 0);
+  LOGT(@"timer  0x%08X: fire", (unsigned int) data, 0);
   data->cb (data->closure, &data);
 
   // Our caller (__CFRunLoopDoTimer) will now call CFRunLoopTimerInvalidate,
@@ -166,11 +166,11 @@ jwxyz_source_cb (CFSocketRef s, CFSocketCallBackType type,
   // So don't call data->cb if we're being fed a pack of lies.
   //
   if (! input_available_p (data->fd)) {
-    LOGI(@"source 0x%08X %2d: false alarm!\n", (unsigned int) data, data->fd, 0);
+    LOGI(@"source 0x%08X %2d: false alarm!", (unsigned int) data, data->fd, 0);
     return;
   }
 
-  LOGI(@"source 0x%08X %2d: fire\n", (unsigned int) data, data->fd, 0);
+  LOGI(@"source 0x%08X %2d: fire", (unsigned int) data, data->fd, 0);
 
   data->cb (data->closure, &data->fd, &data);
 }
@@ -187,7 +187,7 @@ XtAppAddTimeOut (XtAppContext app, unsigned long msecs,
   data->cb = cb;
   data->closure = closure;
 
-  LOGT(@"timer  0x%08X: alloc %d\n", (unsigned int) data, msecs);
+  LOGT(@"timer  0x%08X: alloc %d", (unsigned int) data, msecs);
   
   CFRunLoopTimerContext ctx = { 0, };
   ctx.info    = data;
@@ -211,7 +211,7 @@ XtAppAddTimeOut (XtAppContext app, unsigned long msecs,
 void
 XtRemoveTimeOut (XtIntervalId id)
 {
-  LOGT(@"timer  0x%08X: remove\n", (unsigned int) id, 0);
+  LOGT(@"timer  0x%08X: remove", (unsigned int) id, 0);
   if (id->refcount <= 0) abort();
   if (!id->cftimer) abort();
 
@@ -309,7 +309,7 @@ XtAppAddInput (XtAppContext app, int fd, XtPointer flags,
   data->fd = fd;
   data->closure = closure;
 
-  LOGI(@"source 0x%08X %2d: alloc\n", (unsigned int) data, data->fd, 0);
+  LOGI(@"source 0x%08X %2d: alloc", (unsigned int) data, data->fd, 0);
 
 # ifdef USE_COCOA_SOURCES
 
@@ -346,7 +346,7 @@ XtAppAddInput (XtAppContext app, int fd, XtPointer flags,
 void
 XtRemoveInput (XtInputId id)
 {
-  LOGI(@"source 0x%08X %2d: remove\n", (unsigned int) id, id->fd, 0);
+  LOGI(@"source 0x%08X %2d: remove", (unsigned int) id, id->fd, 0);
   if (id->refcount <= 0) abort();
 # ifdef USE_COCOA_SOURCES
   if (! id->cfsource) abort();
index 35e7f5572b56beefaf9006bfaf8f509aef895a3c..5e1767a8a437870a0ab22c6f3dfb8f127616fe89 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1991-2006 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1991-2007 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -231,6 +231,7 @@ typedef void *                              XtPointer;
 #define RootWindowOfScreen(s) RootWindow(DisplayOfScreen(s),0)
 #define DisplayWidth XDisplayWidth
 #define DisplayHeight XDisplayHeight
+#define XMaxRequestSize(dpy) (65535)
 
 extern Display *jwxyz_make_display (void *nsview);
 extern void jwxyz_free_display (Display *);
index 590b3ccad0d0c4995e242eaec8394a227c9abe7a..b7fc19fe47d493bf15598d4e104ff637ba6f17f2 100644 (file)
@@ -2230,7 +2230,7 @@ jwxyz_font_info (Font f, int *size_ret, int *face_ret)
   // WTF?  aglUseFont gets a BadValue if size is small!!
   if (size < 9) size = 9;
 
-  //NSLog (@"font %s %.1f => %d %d %d\n", f->ps_name, f->size, id, flags, size);
+  //NSLog (@"font %s %.1f => %d %d %d", f->ps_name, f->size, id, flags, size);
   Assert (id >= 0, "no ATS font family");
 
   *size_ret = size;
diff --git a/README b/README
index 1d6d93cba76d97f9d7a359f9d6584d9dcc1b1af4..776ef1287a8ed218c1ee06cd3d5aef361e047a78 100644 (file)
--- a/README
+++ b/README
@@ -38,6 +38,15 @@ XScreenSaver has an extensive manual -- please read it!
 
 ===============================================================================
 
+Changes since 5.01:   * Reworked PAM code to support fingerprint readers, etc.
+                      * Ported 'webcollage' to OSX.
+                      * Added OSX 10.2 and 10.3 kernel panics to `bsod'.
+                      * Fixed a Xinerama crash when changing the screen count.
+                      * New blobbier `mirrorblob'.
+                      * Minor updates to `lisa', `bsod', `ifs', `hypertorus',
+                        `polytopes', `circuit', `endgame', `crackberg',
+                        `flipflop', `flipscreen3d', `fliptext', and `carousel'.
+                      * Enabled multi-threaded OpenGL on OSX.
 Changes since 5.00:   * Backed out recent locale-related changes, since they
                         broke far more things than they fixed.
                       * Fail gracefully with ridiculously small window sizes.
index 72be58acddbd16151343ed5b219a75cb1c882720..163b5f55d0722d9a60b1f3918c06187e821447c6 100644 (file)
 
 /* If using the C implementation of alloca, define if you know the
    direction of stack growth for your system; otherwise it will be
-   automatically deduced at run-time.
+   automatically deduced at runtime.
        STACK_DIRECTION > 0 => grows toward higher addresses
        STACK_DIRECTION < 0 => grows toward lower addresses
        STACK_DIRECTION = 0 => direction of growth unknown */
 /* Define to `int' if <sys/types.h> does not define. */
 #undef mode_t
 
-/* Define to `long' if <sys/types.h> does not define. */
+/* Define to `long int' if <sys/types.h> does not define. */
 #undef off_t
 
 /* Define to `int' if <sys/types.h> does not define. */
 #undef pid_t
 
-/* Define to `unsigned' if <sys/types.h> does not define. */
+/* Define to `unsigned int' if <sys/types.h> does not define. */
 #undef size_t
index bbfafcef908a9963fe49a8bba4167318653bae96..18570b3cf7706b1c62246d9d39d837ada9641951 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,8 +1,9 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59.
+# Generated by GNU Autoconf 2.60.
 #
-# Copyright (C) 2003 Free Software Foundation, Inc.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
 ## --------------------- ##
@@ -16,11 +17,35 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
 fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
 DUALCASE=1; export DUALCASE # for MKS sh
 
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
 # Support unset when possible.
 if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
   as_unset=unset
@@ -29,8 +54,43 @@ else
 fi
 
 
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+as_nl='
+'
+IFS=" ""       $as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+case $0 in
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  { (exit 1); exit 1; }
+fi
+
 # Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
 PS1='$ '
 PS2='> '
 PS4='+ '
@@ -44,18 +104,19 @@ do
   if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
     eval $as_var=C; export $as_var
   else
-    $as_unset $as_var
+    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
   fi
 done
 
 # Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
 else
   as_expr=false
 fi
 
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
   as_basename=basename
 else
   as_basename=false
@@ -63,157 +124,386 @@ fi
 
 
 # Name of the executable.
-as_me=`$as_basename "$0" ||
+as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
         X"$0" : 'X\(//\)$' \| \
-        X"$0" : 'X\(/\)$' \| \
-        .     : '\(.\)' 2>/dev/null ||
+        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
 echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-         /^X\/\(\/\/\)$/{ s//\1/; q; }
-         /^X\/\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
 
+# CDPATH.
+$as_unset CDPATH
 
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
 
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
+if test "x$CONFIG_SHELL" = x; then
+  if (eval ":") 2>/dev/null; then
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+
+  if test $as_have_required = yes &&    (eval ":
+(as_func_return () {
+  (exit \$1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
 fi
 
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
 
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
 
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test \$exitcode = 0) || { (exit 1); exit 1; }
+
+(
+  as_lineno_1=\$LINENO
+  as_lineno_2=\$LINENO
+  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
+  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
+") 2> /dev/null; then
+  :
+else
+  as_candidate_shells=
     as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+for as_dir in /usr/bin/posix$PATH_SEPARATOR/bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-        case $as_dir in
+  case $as_dir in
         /*)
-          if ("$as_dir/$as_base" -c '
+          for as_base in sh bash ksh sh5; do
+            as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
+          done;;
+       esac
+done
+IFS=$as_save_IFS
+
+
+      for as_shell in $as_candidate_shells $SHELL; do
+        # Try only shells that exist, to save several forks.
+        if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+               { ("$as_shell") 2> /dev/null <<\_ASEOF
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+:
+_ASEOF
+}; then
+  CONFIG_SHELL=$as_shell
+              as_have_required=yes
+              if { "$as_shell" 2> /dev/null <<\_ASEOF
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+:
+(as_func_return () {
+  (exit $1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
+
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = "$1" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test $exitcode = 0) || { (exit 1); exit 1; }
+
+(
   as_lineno_1=$LINENO
   as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
   test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-            $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-            $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-            CONFIG_SHELL=$as_dir/$as_base
-            export CONFIG_SHELL
-            exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-          fi;;
-        esac
-       done
-done
-;;
-  esac
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
+
+_ASEOF
+}; then
+  break
+fi
+
+fi
+
+      done
+
+      if test "x$CONFIG_SHELL" != x; then
+  for as_var in BASH_ENV ENV
+        do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+        done
+        export CONFIG_SHELL
+        exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+
+    if test $as_have_required = no; then
+  echo This script requires a shell more modern than all the
+      echo shells that I found on your system.  Please install a
+      echo modern shell, or manually run the script under such a
+      echo shell if you do have one.
+      { (exit 1); exit 1; }
+fi
+
+
+fi
+
+fi
+
+
+
+(eval "as_func_return () {
+  (exit \$1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
+
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test \$exitcode = 0") || {
+  echo No shell found that supports shell functions.
+  echo Please tell autoconf@gnu.org about your system,
+  echo including any error possibly output before this
+  echo message
+}
+
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
 
   # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
   # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
+  # line-number line after each line using $LINENO; the second 'sed'
+  # does the real work.  The second script uses 'N' to pair each
+  # line-number line with the line containing $LINENO, and appends
+  # trailing '-' during substitution so that $LINENO is not a special
+  # case at line end.
   # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
+  # scripts with optimization help from Paolo Bonzini.  Blame Lee
+  # E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
     sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
       N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
       t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
+      s/-\n.*//
     ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
+  chmod +x "$as_me.lineno" ||
     { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
    { (exit 1); exit 1; }; }
 
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
   # Exit status is that of the last command.
   exit
 }
 
 
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='     ' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in
+-n*)
+  case `echo 'x\c'` in
+  *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
+  *)   ECHO_C='\c';;
+  esac;;
+*)
+  ECHO_N='-n';;
 esac
 
-if expr a : '\(a\)' >/dev/null 2>&1; then
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
 else
   as_expr=false
 fi
 
 rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir
+fi
 echo >conf$$.file
 if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
+  as_ln_s='ln -s'
+  # ... but there are two gotchas:
+  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+  # In both cases, we have to default to `cp -p'.
+  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
     as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
 elif ln conf$$.file conf$$ 2>/dev/null; then
   as_ln_s=ln
 else
   as_ln_s='cp -p'
 fi
-rm -f conf$$ conf$$.exe conf$$.file
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
 
 if mkdir -p . 2>/dev/null; then
   as_mkdir_p=:
@@ -222,7 +512,19 @@ else
   as_mkdir_p=false
 fi
 
-as_executable_p="test -f"
+# Find out whether ``test -x'' works.  Don't use a zero-byte file, as
+# systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+  as_executable_p="test -x"
+else
+  as_executable_p=:
+fi
+rm -f conf$$.file
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -231,39 +533,27 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS="  $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
 
+exec 7<&0 </dev/null 6>&1
 
 # Name of the host.
 # hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
 # so uname gets run too.
 ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
 
-exec 6>&1
-
 #
 # Initializations.
 #
 ac_default_prefix=/usr/local
+ac_clean_files=
 ac_config_libobj_dir=.
+LIBOBJS=
 cross_compiling=no
 subdirs=
 MFLAGS=
 MAKEFLAGS=
 SHELL=${CONFIG_SHELL-/bin/sh}
 
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete.  It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
 # Identity of this package.
 PACKAGE_NAME=
 PACKAGE_TARNAME=
@@ -300,17 +590,191 @@ ac_includes_default="\
 #endif
 #if HAVE_INTTYPES_H
 # include <inttypes.h>
-#else
-# if HAVE_STDINT_H
-#  include <stdint.h>
-# endif
+#endif
+#if HAVE_STDINT_H
+# include <stdint.h>
 #endif
 #if HAVE_UNISTD_H
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA SET_MAKE EGREP PERL X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS INTLTOOL_DESKTOP_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_KEYS_RULE INTLTOOL_OAF_RULE INTLTOOL_PONG_RULE INTLTOOL_SERVER_RULE INTLTOOL_SHEET_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_UI_RULE INTLTOOL_XML_RULE INTLTOOL_CAVES_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE INTLTOOL_PERL GETTEXT_PACKAGE RANLIB ac_ct_RANLIB ALLOCA USE_NLS MSGFMT GMSGFMT XGETTEXT CATALOGS CATOBJEXT DATADIRNAME GMOFILES INSTOBJEXT INTLDEPS INTLLIBS INTLOBJS POFILES POSUB MKINSTALLDIRS login_manager_tmp pkg_config gnome_open_program gnome_url_show_program INCLUDES PREFERRED_DEMO_PROGRAM ALL_DEMO_PROGRAMS SAVER_LIBS MOTIF_LIBS GTK_LIBS XML_LIBS JPEG_LIBS HACK_LIBS XPM_LIBS PTY_LIBS GL_LIBS GLE_LIBS XDPMS_LIBS XINERAMA_LIBS PASSWD_LIBS INSTALL_SETUID SETUID_HACKS INSTALL_DIRS NEED_SETUID INSTALL_PAM HAVE_PAM_FAIL_DELAY NEW_LOGIN_COMMAND NEW_LOGIN_COMMAND_P DEFAULT_IMAGES_P DEFAULT_IMAGE_DIRECTORY DEFAULT_TEXT_FILE WITH_BROWSER OBJCC EXES_OSX SCRIPTS_OSX MEN_OSX PASSWD_SRCS PASSWD_OBJS XMU_SRCS XMU_OBJS XMU_LIBS SAVER_GL_SRCS SAVER_GL_OBJS SAVER_GL_LIBS LOCK_SRCS LOCK_OBJS JPEG_EXES GL_EXES GL_UTIL_EXES GL_MEN GL_KLUDGE GLE_EXES GLE_KLUDGE GNOME24 GNOME22 NOGNOME HACKDIR HACKDIR_FULL GTK_DATADIR PO_DATADIR HACK_CONF_DIR GTK_EXTRA_OBJS APPDEFAULTS DEPEND DEPEND_FLAGS DEPEND_DEFINES LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL
+PATH_SEPARATOR
+PACKAGE_NAME
+PACKAGE_TARNAME
+PACKAGE_VERSION
+PACKAGE_STRING
+PACKAGE_BUGREPORT
+exec_prefix
+prefix
+program_transform_name
+bindir
+sbindir
+libexecdir
+datarootdir
+datadir
+sysconfdir
+sharedstatedir
+localstatedir
+includedir
+oldincludedir
+docdir
+infodir
+htmldir
+dvidir
+pdfdir
+psdir
+libdir
+localedir
+mandir
+DEFS
+ECHO_C
+ECHO_N
+ECHO_T
+LIBS
+build_alias
+host_alias
+target_alias
+build
+build_cpu
+build_vendor
+build_os
+host
+host_cpu
+host_vendor
+host_os
+CC
+CFLAGS
+LDFLAGS
+CPPFLAGS
+ac_ct_CC
+EXEEXT
+OBJEXT
+CPP
+INSTALL_PROGRAM
+INSTALL_SCRIPT
+INSTALL_DATA
+SET_MAKE
+GREP
+EGREP
+PERL
+XMKMF
+X_CFLAGS
+X_PRE_LIBS
+X_LIBS
+X_EXTRA_LIBS
+INTLTOOL_DESKTOP_RULE
+INTLTOOL_DIRECTORY_RULE
+INTLTOOL_KEYS_RULE
+INTLTOOL_OAF_RULE
+INTLTOOL_PONG_RULE
+INTLTOOL_SERVER_RULE
+INTLTOOL_SHEET_RULE
+INTLTOOL_SOUNDLIST_RULE
+INTLTOOL_UI_RULE
+INTLTOOL_XML_RULE
+INTLTOOL_CAVES_RULE
+INTLTOOL_EXTRACT
+INTLTOOL_MERGE
+INTLTOOL_UPDATE
+INTLTOOL_PERL
+GETTEXT_PACKAGE
+RANLIB
+ALLOCA
+USE_NLS
+MSGFMT
+GMSGFMT
+XGETTEXT
+CATALOGS
+CATOBJEXT
+DATADIRNAME
+GMOFILES
+INSTOBJEXT
+INTLDEPS
+INTLLIBS
+INTLOBJS
+POFILES
+POSUB
+MKINSTALLDIRS
+login_manager_tmp
+pkg_config
+gnome_open_program
+gnome_url_show_program
+INCLUDES
+PREFERRED_DEMO_PROGRAM
+ALL_DEMO_PROGRAMS
+SAVER_LIBS
+MOTIF_LIBS
+GTK_LIBS
+XML_LIBS
+JPEG_LIBS
+HACK_LIBS
+XPM_LIBS
+PTY_LIBS
+GL_LIBS
+GLE_LIBS
+XDPMS_LIBS
+XINERAMA_LIBS
+PASSWD_LIBS
+INSTALL_SETUID
+SETUID_HACKS
+INSTALL_DIRS
+NEED_SETUID
+INSTALL_PAM
+HAVE_PAM_FAIL_DELAY
+NEW_LOGIN_COMMAND
+NEW_LOGIN_COMMAND_P
+DEFAULT_IMAGES_P
+DEFAULT_IMAGE_DIRECTORY
+DEFAULT_TEXT_FILE
+WITH_BROWSER
+OBJCC
+EXES_OSX
+SCRIPTS_OSX
+MEN_OSX
+PASSWD_SRCS
+PASSWD_OBJS
+XMU_SRCS
+XMU_OBJS
+XMU_LIBS
+SAVER_GL_SRCS
+SAVER_GL_OBJS
+SAVER_GL_LIBS
+LOCK_SRCS
+LOCK_OBJS
+JPEG_EXES
+GL_EXES
+GL_UTIL_EXES
+GL_MEN
+GL_KLUDGE
+GLE_EXES
+GLE_KLUDGE
+GNOME24
+GNOME22
+NOGNOME
+HACKDIR
+HACKDIR_FULL
+GTK_DATADIR
+PO_DATADIR
+HACK_CONF_DIR
+GTK_EXTRA_OBJS
+APPDEFAULTS
+DEPEND
+DEPEND_FLAGS
+DEPEND_DEFINES
+LIBOBJS
+LTLIBOBJS'
 ac_subst_files=''
+      ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+CPPFLAGS
+CPP
+XMKMF'
+
 
 # Initialize some variables set by options.
 ac_init_help=
@@ -337,34 +801,48 @@ x_libraries=NONE
 # and all the variables that are supposed to be based on exec_prefix
 # by default will actually change.
 # Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
 bindir='${exec_prefix}/bin'
 sbindir='${exec_prefix}/sbin'
 libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir=\${datadir}/man
+docdir='${datarootdir}/doc/${PACKAGE}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
 
 ac_prev=
+ac_dashdash=
 for ac_option
 do
   # If the previous option needs an argument, assign it.
   if test -n "$ac_prev"; then
-    eval "$ac_prev=\$ac_option"
+    eval $ac_prev=\$ac_option
     ac_prev=
     continue
   fi
 
-  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+  case $ac_option in
+  *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *)   ac_optarg=yes ;;
+  esac
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
 
-  case $ac_option in
+  case $ac_dashdash$ac_option in
+  --)
+    ac_dashdash=yes ;;
 
   -bindir | --bindir | --bindi | --bind | --bin | --bi)
     ac_prev=bindir ;;
@@ -386,12 +864,18 @@ do
   --config-cache | -C)
     cache_file=config.cache ;;
 
-  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+  -datadir | --datadir | --datadi | --datad)
     ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-  | --da=*)
+  -datadir=* | --datadir=* | --datadi=* | --datad=*)
     datadir=$ac_optarg ;;
 
+  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+  | --dataroo | --dataro | --datar)
+    ac_prev=datarootdir ;;
+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+    datarootdir=$ac_optarg ;;
+
   -disable-* | --disable-*)
     ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
@@ -399,7 +883,17 @@ do
       { echo "$as_me: error: invalid feature name: $ac_feature" >&2
    { (exit 1); exit 1; }; }
     ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    eval "enable_$ac_feature=no" ;;
+    eval enable_$ac_feature=no ;;
+
+  -docdir | --docdir | --docdi | --doc | --do)
+    ac_prev=docdir ;;
+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+    docdir=$ac_optarg ;;
+
+  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+    ac_prev=dvidir ;;
+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+    dvidir=$ac_optarg ;;
 
   -enable-* | --enable-*)
     ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
@@ -408,11 +902,7 @@ do
       { echo "$as_me: error: invalid feature name: $ac_feature" >&2
    { (exit 1); exit 1; }; }
     ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "enable_$ac_feature='$ac_optarg'" ;;
+    eval enable_$ac_feature=\$ac_optarg ;;
 
   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
@@ -439,6 +929,12 @@ do
   -host=* | --host=* | --hos=* | --ho=*)
     host_alias=$ac_optarg ;;
 
+  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+    ac_prev=htmldir ;;
+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+  | --ht=*)
+    htmldir=$ac_optarg ;;
+
   -includedir | --includedir | --includedi | --included | --include \
   | --includ | --inclu | --incl | --inc)
     ac_prev=includedir ;;
@@ -463,13 +959,16 @@ do
   | --libexe=* | --libex=* | --libe=*)
     libexecdir=$ac_optarg ;;
 
+  -localedir | --localedir | --localedi | --localed | --locale)
+    ac_prev=localedir ;;
+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+    localedir=$ac_optarg ;;
+
   -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst \
-  | --locals | --local | --loca | --loc | --lo)
+  | --localstate | --localstat | --localsta | --localst | --locals)
     ac_prev=localstatedir ;;
   -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
     localstatedir=$ac_optarg ;;
 
   -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
@@ -534,6 +1033,16 @@ do
   | --progr-tra=* | --program-tr=* | --program-t=*)
     program_transform_name=$ac_optarg ;;
 
+  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+    ac_prev=pdfdir ;;
+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+    pdfdir=$ac_optarg ;;
+
+  -psdir | --psdir | --psdi | --psd | --ps)
+    ac_prev=psdir ;;
+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+    psdir=$ac_optarg ;;
+
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
@@ -590,11 +1099,7 @@ do
       { echo "$as_me: error: invalid package name: $ac_package" >&2
    { (exit 1); exit 1; }; }
     ac_package=`echo $ac_package| sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "with_$ac_package='$ac_optarg'" ;;
+    eval with_$ac_package=\$ac_optarg ;;
 
   -without-* | --without-*)
     ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
@@ -603,7 +1108,7 @@ do
       { echo "$as_me: error: invalid package name: $ac_package" >&2
    { (exit 1); exit 1; }; }
     ac_package=`echo $ac_package | sed 's/-/_/g'`
-    eval "with_$ac_package=no" ;;
+    eval with_$ac_package=no ;;
 
   --x)
     # Obsolete; use --with-x.
@@ -634,8 +1139,7 @@ Try \`$0 --help' for more information." >&2
     expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
       { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
    { (exit 1); exit 1; }; }
-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
-    eval "$ac_envvar='$ac_optarg'"
+    eval $ac_envvar=\$ac_optarg
     export $ac_envvar ;;
 
   *)
@@ -655,27 +1159,19 @@ if test -n "$ac_prev"; then
    { (exit 1); exit 1; }; }
 fi
 
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-             localstatedir libdir includedir oldincludedir infodir mandir
+# Be sure to have absolute directory names.
+for ac_var in  exec_prefix prefix bindir sbindir libexecdir datarootdir \
+               datadir sysconfdir sharedstatedir localstatedir includedir \
+               oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+               libdir localedir mandir
 do
-  eval ac_val=$`echo $ac_var`
+  eval ac_val=\$$ac_var
   case $ac_val in
-    [\\/$]* | ?:[\\/]* ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
+    [\\/$]* | ?:[\\/]* )  continue;;
+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
   esac
+  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; }
 done
 
 # There might be people who depend on the old broken behavior: `$host'
@@ -702,74 +1198,76 @@ test -n "$host_alias" && ac_tool_prefix=$host_alias-
 test "$silent" = yes && exec 6>/dev/null
 
 
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+  { echo "$as_me: error: Working directory cannot be determined" >&2
+   { (exit 1); exit 1; }; }
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+  { echo "$as_me: error: pwd does not report name of working directory" >&2
+   { (exit 1); exit 1; }; }
+
+
 # Find the source files, if location was not specified.
 if test -z "$srcdir"; then
   ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then its parent.
-  ac_confdir=`(dirname "$0") 2>/dev/null ||
+  # Try the directory containing this script, then the parent directory.
+  ac_confdir=`$as_dirname -- "$0" ||
 $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
         X"$0" : 'X\(//\)[^/]' \| \
         X"$0" : 'X\(//\)$' \| \
-        X"$0" : 'X\(/\)' \| \
-        .     : '\(.\)' 2>/dev/null ||
+        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
 echo X"$0" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-         /^X\(\/\/\)$/{ s//\1/; q; }
-         /^X\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
   srcdir=$ac_confdir
-  if test ! -r $srcdir/$ac_unique_file; then
+  if test ! -r "$srcdir/$ac_unique_file"; then
     srcdir=..
   fi
 else
   ac_srcdir_defaulted=no
 fi
-if test ! -r $srcdir/$ac_unique_file; then
-  if test "$ac_srcdir_defaulted" = yes; then
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
-   { (exit 1); exit 1; }; }
-  else
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+if test ! -r "$srcdir/$ac_unique_file"; then
+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+  { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
    { (exit 1); exit 1; }; }
-  fi
 fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
-  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+       cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
    { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-ac_env_CC_set=${CC+set}
-ac_env_CC_value=$CC
-ac_cv_env_CC_set=${CC+set}
-ac_cv_env_CC_value=$CC
-ac_env_CFLAGS_set=${CFLAGS+set}
-ac_env_CFLAGS_value=$CFLAGS
-ac_cv_env_CFLAGS_set=${CFLAGS+set}
-ac_cv_env_CFLAGS_value=$CFLAGS
-ac_env_LDFLAGS_set=${LDFLAGS+set}
-ac_env_LDFLAGS_value=$LDFLAGS
-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
-ac_cv_env_LDFLAGS_value=$LDFLAGS
-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_env_CPPFLAGS_value=$CPPFLAGS
-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
-ac_env_CPP_set=${CPP+set}
-ac_env_CPP_value=$CPP
-ac_cv_env_CPP_set=${CPP+set}
-ac_cv_env_CPP_value=$CPP
+       pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+  srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+  eval ac_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_env_${ac_var}_value=\$${ac_var}
+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
 
 #
 # Report the --help message.
@@ -800,9 +1298,6 @@ Configuration:
   -n, --no-create         do not create output files
       --srcdir=DIR        find the sources in DIR [configure dir or \`..']
 
-_ACEOF
-
-  cat <<_ACEOF
 Installation directories:
   --prefix=PREFIX         install architecture-independent files in PREFIX
                          [$ac_default_prefix]
@@ -819,12 +1314,19 @@ For better control, use the options below.
 Fine tuning of the installation directories:
   --bindir=DIR           user executables [EPREFIX/bin]
   --libexecdir=DIR       program executables [EPREFIX/libexec]
-  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
   --libdir=DIR           object code libraries [EPREFIX/lib]
   --includedir=DIR       C header files [PREFIX/include]
   --x-includes=DIR        X include files are in DIR
   --x-libraries=DIR       X library files are in DIR
-  --mandir=DIR           man documentation [PREFIX/man]
+  --datarootdir=DIR      read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR          read-only architecture-independent data [DATAROOTDIR]
+  --localedir=DIR        locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR           man documentation [DATAROOTDIR/man]
+  --docdir=DIR           documentation root [DATAROOTDIR/doc/PACKAGE]
+  --htmldir=DIR          html documentation [DOCDIR]
+  --dvidir=DIR           dvi documentation [DOCDIR]
+  --pdfdir=DIR           pdf documentation [DOCDIR]
+  --psdir=DIR            ps documentation [DOCDIR]
 _ACEOF
 
   cat <<\_ACEOF
@@ -935,126 +1437,95 @@ Some influential environment variables:
   CFLAGS      C compiler flags
   LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
               nonstandard directory <lib dir>
-  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
-              headers in a nonstandard directory <include dir>
+  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+              you have headers in a nonstandard directory <include dir>
   CPP         C preprocessor
+  XMKMF       Path to xmkmf, Makefile generator for X Window System
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
 
 _ACEOF
+ac_status=$?
 fi
 
 if test "$ac_init_help" = "recursive"; then
   # If there are subdirs, report their specific --help.
-  ac_popdir=`pwd`
   for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d $ac_dir || continue
+    test -d "$ac_dir" || continue
     ac_builddir=.
 
-if test "$ac_dir" != .; then
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
   ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
 
 case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
+  .)  # We are building in place.
     ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
     ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
 esac
-
-    cd $ac_dir
-    # Check for guested configure; otherwise get Cygnus style configure.
-    if test -f $ac_srcdir/configure.gnu; then
-      echo
-      $SHELL $ac_srcdir/configure.gnu  --help=recursive
-    elif test -f $ac_srcdir/configure; then
-      echo
-      $SHELL $ac_srcdir/configure  --help=recursive
-    elif test -f $ac_srcdir/configure.ac ||
-          test -f $ac_srcdir/configure.in; then
-      echo
-      $ac_configure --help
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+    cd "$ac_dir" || { ac_status=$?; continue; }
+    # Check for guested configure.
+    if test -f "$ac_srcdir/configure.gnu"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+    elif test -f "$ac_srcdir/configure"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure" --help=recursive
     else
       echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi
-    cd $ac_popdir
+    fi || ac_status=$?
+    cd "$ac_pwd" || { ac_status=$?; break; }
   done
 fi
 
-test -n "$ac_init_help" && exit 0
+test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
+configure
+generated by GNU Autoconf 2.60
 
-Copyright (C) 2003 Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
-  exit 0
+  exit
 fi
-exec 5>config.log
-cat >&5 <<_ACEOF
+cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by $as_me, which was
-generated by GNU Autoconf 2.59.  Invocation command line was
+generated by GNU Autoconf 2.60.  Invocation command line was
 
   $ $0 $@
 
 _ACEOF
+exec 5>>config.log
 {
 cat <<_ASUNAME
 ## --------- ##
@@ -1073,7 +1544,7 @@ uname -v = `(uname -v) 2>/dev/null || echo unknown`
 /bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
 /usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
 /bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
 /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
 /bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
@@ -1087,6 +1558,7 @@ do
   test -z "$as_dir" && as_dir=.
   echo "PATH: $as_dir"
 done
+IFS=$as_save_IFS
 
 } >&5
 
@@ -1108,7 +1580,6 @@ _ACEOF
 ac_configure_args=
 ac_configure_args0=
 ac_configure_args1=
-ac_sep=
 ac_must_keep_next=false
 for ac_pass in 1 2
 do
@@ -1119,7 +1590,7 @@ do
     -q | -quiet | --quiet | --quie | --qui | --qu | --q \
     | -silent | --silent | --silen | --sile | --sil)
       continue ;;
-    *" "*|*"   "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+    *\'*)
       ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
     case $ac_pass in
@@ -1141,9 +1612,7 @@ do
          -* ) ac_must_keep_next=true ;;
        esac
       fi
-      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-      # Get rid of the leading space.
-      ac_sep=" "
+      ac_configure_args="$ac_configure_args '$ac_arg'"
       ;;
     esac
   done
@@ -1154,8 +1623,8 @@ $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_
 # When interrupted or exit'd, cleanup temporary files, and complete
 # config.log.  We remove comments because anyway the quotes in there
 # would cause problems or look ugly.
-# WARNING: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
 trap 'exit_status=$?
   # Save into config.log some information that might help in debugging.
   {
@@ -1168,20 +1637,34 @@ trap 'exit_status=$?
 _ASBOX
     echo
     # The following way of writing the cache mishandles newlines in values,
-{
+(
+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
+echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      *) $as_unset $ac_var ;;
+      esac ;;
+    esac
+  done
   (set) 2>&1 |
-    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
       sed -n \
-       "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
-      ;;
+       "s/'\''/'\''\\\\'\'''\''/g;
+         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+      ;; #(
     *)
-      sed -n \
-       "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
       ;;
-    esac;
-}
+    esac |
+    sort
+)
     echo
 
     cat <<\_ASBOX
@@ -1192,22 +1675,28 @@ _ASBOX
     echo
     for ac_var in $ac_subst_vars
     do
-      eval ac_val=$`echo $ac_var`
-      echo "$ac_var='"'"'$ac_val'"'"'"
+      eval ac_val=\$$ac_var
+      case $ac_val in
+      *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      esac
+      echo "$ac_var='\''$ac_val'\''"
     done | sort
     echo
 
     if test -n "$ac_subst_files"; then
       cat <<\_ASBOX
-## ------------- ##
-## Output files. ##
-## ------------- ##
+## ------------------- ##
+## File substitutions. ##
+## ------------------- ##
 _ASBOX
       echo
       for ac_var in $ac_subst_files
       do
-       eval ac_val=$`echo $ac_var`
-       echo "$ac_var='"'"'$ac_val'"'"'"
+       eval ac_val=\$$ac_var
+       case $ac_val in
+       *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+       esac
+       echo "$ac_var='\''$ac_val'\''"
       done | sort
       echo
     fi
@@ -1219,26 +1708,24 @@ _ASBOX
 ## ----------- ##
 _ASBOX
       echo
-      sed "/^$/d" confdefs.h | sort
+      cat confdefs.h
       echo
     fi
     test "$ac_signal" != 0 &&
       echo "$as_me: caught signal $ac_signal"
     echo "$as_me: exit $exit_status"
   } >&5
-  rm -f core *.core &&
-  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
+  rm -f core *.core core.conftest.* &&
+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
     exit $exit_status
-     ' 0
+' 0
 for ac_signal in 1 2 13 15; do
   trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
 done
 ac_signal=0
 
 # confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >confdefs.h
+rm -f -r conftest* confdefs.h
 
 # Predefined preprocessor variables.
 
@@ -1269,14 +1756,17 @@ _ACEOF
 
 # Let the site file select an alternate cache file if it wants to.
 # Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
-  if test "x$prefix" != xNONE; then
-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
-  else
-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
-  fi
+if test -n "$CONFIG_SITE"; then
+  set x "$CONFIG_SITE"
+elif test "x$prefix" != xNONE; then
+  set x "$prefix/share/config.site" "$prefix/etc/config.site"
+else
+  set x "$ac_default_prefix/share/config.site" \
+       "$ac_default_prefix/etc/config.site"
 fi
-for ac_site_file in $CONFIG_SITE; do
+shift
+for ac_site_file
+do
   if test -r "$ac_site_file"; then
     { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
 echo "$as_me: loading site script $ac_site_file" >&6;}
@@ -1292,8 +1782,8 @@ if test -r "$cache_file"; then
     { echo "$as_me:$LINENO: loading cache $cache_file" >&5
 echo "$as_me: loading cache $cache_file" >&6;}
     case $cache_file in
-      [\\/]* | ?:[\\/]* ) . $cache_file;;
-      *)                      . ./$cache_file;;
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
     esac
   fi
 else
@@ -1305,12 +1795,11 @@ fi
 # Check that the precious variables saved in the cache have kept the same
 # value.
 ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
-              sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+for ac_var in $ac_precious_vars; do
   eval ac_old_set=\$ac_cv_env_${ac_var}_set
   eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
-  eval ac_new_val="\$ac_env_${ac_var}_value"
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
   case $ac_old_set,$ac_new_set in
     set,)
       { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
@@ -1335,8 +1824,7 @@ echo "$as_me:   current value: $ac_new_val" >&2;}
   # Pass precious variables to config.status.
   if test "$ac_new_set" = set; then
     case $ac_new_val in
-    *" "*|*"   "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
     *) ac_arg=$ac_var=$ac_new_val ;;
     esac
     case " $ac_configure_args " in
@@ -1353,12 +1841,6 @@ echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start ov
    { (exit 1); exit 1; }; }
 fi
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
 
 
 
@@ -1375,9 +1857,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-          ac_config_headers="$ac_config_headers config.h"
+ac_config_headers="$ac_config_headers config.h"
 
 
 echo "current directory: `pwd`"
@@ -1684,13 +2171,13 @@ perl_version_cmd='print $]'
 ###############################################################################
 
 
-# Check whether --with-x-app-defaults or --without-x-app-defaults was given.
+# Check whether --with-x-app-defaults was given.
 if test "${with_x_app_defaults+set}" = set; then
-  withval="$with_x_app_defaults"
-  ac_cv_x_app_defaults="$withval"
+  withval=$with_x_app_defaults; ac_cv_x_app_defaults="$withval"
 else
   eval ac_x_app_defaults="$withval"
-fi;
+fi
+
 
 
 
@@ -1768,82 +2255,117 @@ fi;
 
 # random compiler setup
 ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
-  if test -f $ac_dir/install-sh; then
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+  if test -f "$ac_dir/install-sh"; then
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/install-sh -c"
     break
-  elif test -f $ac_dir/install.sh; then
+  elif test -f "$ac_dir/install.sh"; then
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/install.sh -c"
     break
-  elif test -f $ac_dir/shtool; then
+  elif test -f "$ac_dir/shtool"; then
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/shtool install -c"
     break
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
-echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
+echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
    { (exit 1); exit 1; }; }
 fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
+
 
 # Make sure we can run config.sub.
-$ac_config_sub sun4 >/dev/null 2>&1 ||
-  { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+  { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
+echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
    { (exit 1); exit 1; }; }
 
-echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking build system type" >&5
+echo $ECHO_N "checking build system type... $ECHO_C" >&6; }
 if test "${ac_cv_build+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_build_alias=$build_alias
-test -z "$ac_cv_build_alias" &&
-  ac_cv_build_alias=`$ac_config_guess`
-test -z "$ac_cv_build_alias" &&
+  ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
   { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
 echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
    { (exit 1); exit 1; }; }
-ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+  { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
+echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
    { (exit 1); exit 1; }; }
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+echo "${ECHO_T}$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
+echo "$as_me: error: invalid value of canonical build" >&2;}
+   { (exit 1); exit 1; }; };;
+esac
 build=$ac_cv_build
-build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ echo "$as_me:$LINENO: checking host system type" >&5
+echo $ECHO_N "checking host system type... $ECHO_C" >&6; }
 if test "${ac_cv_host+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_host_alias=$host_alias
-test -z "$ac_cv_host_alias" &&
-  ac_cv_host_alias=$ac_cv_build_alias
-ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+  if test "x$host_alias" = x; then
+  ac_cv_host=$ac_cv_build
+else
+  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
+echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
    { (exit 1); exit 1; }; }
+fi
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+echo "${ECHO_T}$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
+echo "$as_me: error: invalid value of canonical host" >&2;}
+   { (exit 1); exit 1; }; };;
+esac
 host=$ac_cv_host
-host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 
 
 
@@ -1855,8 +2377,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -1869,32 +2391,34 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
 fi
 if test -z "$ac_cv_prog_CC"; then
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -1907,36 +2431,51 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="gcc"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
-  CC=$ac_ct_CC
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
 else
   CC="$ac_cv_prog_CC"
 fi
 
 if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -1949,74 +2488,34 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
-  CC=$ac_ct_CC
-else
-  CC="$ac_cv_prog_CC"
-fi
 
+  fi
 fi
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2030,7 +2529,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
@@ -2041,6 +2540,7 @@ do
   fi
 done
 done
+IFS=$as_save_IFS
 
 if test $ac_prog_rejected = yes; then
   # We found a bogon in the path, so make sure we never use it.
@@ -2058,22 +2558,23 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
 fi
 if test -z "$CC"; then
   if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl
+  for ac_prog in cl.exe
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2086,36 +2587,38 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
     test -n "$CC" && break
   done
 fi
 if test -z "$CC"; then
   ac_ct_CC=$CC
-  for ac_prog in cl
+  for ac_prog in cl.exe
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2128,29 +2631,45 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
   test -n "$ac_ct_CC" && break
 done
 
-  CC=$ac_ct_CC
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
 fi
 
 fi
@@ -2163,21 +2682,35 @@ See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
 
 # Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
-     "checking for C compiler version" >&5
+echo "$as_me:$LINENO: checking for C compiler version" >&5
 ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
-  (eval $ac_compiler --version </dev/null >&5) 2>&5
+{ (ac_try="$ac_compiler --version >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler --version >&5") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
-  (eval $ac_compiler -v </dev/null >&5) 2>&5
+{ (ac_try="$ac_compiler -v >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -v >&5") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
-  (eval $ac_compiler -V </dev/null >&5) 2>&5
+{ (ac_try="$ac_compiler -V >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -V >&5") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
@@ -2202,46 +2735,70 @@ ac_clean_files="$ac_clean_files a.out a.exe b.out"
 # Try to create an executable without -o first, disregard a.out.
 # It will help us diagnose broken compilers, and finding out an intuition
 # of exeext.
-echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; }
 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
-  (eval $ac_link_default) 2>&5
+#
+# List of possible output files, starting from the most likely.
+# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)
+# only as a last resort.  b.out is created by i960 compilers.
+ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'
+#
+# The IRIX 6 linker writes into existing files which may not be
+# executable, retaining their permissions.  Remove them first so a
+# subsequent execution test works.
+ac_rmfiles=
+for ac_file in $ac_files
+do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
+    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+  esac
+done
+rm -f $ac_rmfiles
+
+if { (ac_try="$ac_link_default"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link_default") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-  # Find the output, starting from the most likely.  This scheme is
-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
-# resort.
-
-# Be careful to initialize this variable, since it used to be cached.
-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
-ac_cv_exeext=
-# b.out is created by i960 compilers.
-for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile.  We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files
 do
   test -f "$ac_file" || continue
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
-       ;;
-    conftest.$ac_ext )
-       # This is the source file.
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj )
        ;;
     [ab].out )
        # We found the default executable, but exeext='' is most
        # certainly right.
        break;;
     *.* )
-       ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-       # FIXME: I believe we export ac_cv_exeext for Libtool,
-       # but it would be cool to find out if it's true.  Does anybody
-       # maintain Libtool? --akim.
-       export ac_cv_exeext
+        if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+       then :; else
+          ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+       fi
+       # We set ac_cv_exeext here because the later test for it is not
+       # safe: cross compilers may not add the suffix if given an `-o'
+       # argument, so we may need to know it at that point already.
+       # Even if this section looks crufty: it has the advantage of
+       # actually working.
        break;;
     * )
        break;;
   esac
 done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
@@ -2254,19 +2811,23 @@ See \`config.log' for more details." >&2;}
 fi
 
 ac_exeext=$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6
+echo "$as_me:$LINENO: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6; }
 
-# Check the compiler produces executables we can run.  If not, either
+# Check that the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; }
 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
 # If not cross compiling, check that we can run a simple program.
 if test "$cross_compiling" != yes; then
   if { ac_try='./$ac_file'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -2285,22 +2846,27 @@ See \`config.log' for more details." >&2;}
     fi
   fi
 fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
 
 rm -f a.out a.exe conftest$ac_cv_exeext b.out
 ac_clean_files=$ac_clean_files_save
-# Check the compiler produces executables we can run.  If not, either
+# Check that the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6
-
-echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; }
+{ echo "$as_me:$LINENO: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6; }
+
+{ echo "$as_me:$LINENO: checking for suffix of executables" >&5
+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; }
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
@@ -2311,9 +2877,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 for ac_file in conftest.exe conftest conftest.*; do
   test -f "$ac_file" || continue
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
     *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-         export ac_cv_exeext
          break;;
     * ) break;;
   esac
@@ -2327,14 +2892,14 @@ See \`config.log' for more details." >&2;}
 fi
 
 rm -f conftest$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6
+echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6; }
 
 rm -f conftest.$ac_ext
 EXEEXT=$ac_cv_exeext
 ac_exeext=$EXEEXT
-echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for suffix of object files" >&5
+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; }
 if test "${ac_cv_objext+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2354,14 +2919,20 @@ main ()
 }
 _ACEOF
 rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+  for ac_file in conftest.o conftest.obj conftest.*; do
+  test -f "$ac_file" || continue;
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;;
     *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
        break;;
   esac
@@ -2379,12 +2950,12 @@ fi
 
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6
+echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6; }
 OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }
 if test "${ac_cv_c_compiler_gnu+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2407,24 +2978,36 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -2433,24 +3016,139 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_compiler_gnu=no
+       ac_compiler_gnu=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
 GCC=`test $ac_compiler_gnu = yes && echo yes`
 ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
-CFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
 if test "${ac_cv_prog_cc_g+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       CFLAGS=""
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_c_werror_flag=$ac_save_c_werror_flag
+        CFLAGS="-g"
+        cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2466,24 +3164,36 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -2492,12 +3202,20 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_prog_cc_g=no
+
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
 fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }
 if test "$ac_test_CFLAGS" = set; then
   CFLAGS=$ac_save_CFLAGS
 elif test $ac_cv_prog_cc_g = yes; then
@@ -2513,12 +3231,12 @@ else
     CFLAGS=
   fi
 fi
-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
+{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_prog_cc_stdc=no
+  ac_cv_prog_cc_c89=no
 ac_save_CC=$CC
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -2552,12 +3270,17 @@ static char *f (char * (*g) (char **, int), char **p, ...)
 /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
    function prototypes and stuff, but not '\xHH' hex character constants.
    These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std1 is added to get
+   as 'x'.  The following induces an error, until -std is added to get
    proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
    array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std1.  */
+   that's true only with -std.  */
 int osf4_cc_array ['\x00' == 0 ? 1 : -1];
 
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
 int test (int i, double x);
 struct s1 {int (*f) (int a);};
 struct s2 {int (*f) (double a);};
@@ -2572,205 +3295,74 @@ return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
   return 0;
 }
 _ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX                  -qlanglvl=ansi
-# Ultrix and OSF/1     -std1
-# HP-UX 10.20 and later        -Ae
-# HP-UX older versions -Aa -D_HPUX_SOURCE
-# SVR4                 -Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+       -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
   rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_cv_prog_cc_stdc=$ac_arg
-break
+  ac_cv_prog_cc_c89=$ac_arg
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+
 fi
-rm -f conftest.err conftest.$ac_objext
+
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
-rm -f conftest.$ac_ext conftest.$ac_objext
+rm -f conftest.$ac_ext
 CC=$ac_save_CC
 
 fi
-
-case "x$ac_cv_prog_cc_stdc" in
-  x|xno)
-    echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6; } ;;
+  xno)
+    { echo "$as_me:$LINENO: result: unsupported" >&5
+echo "${ECHO_T}unsupported" >&6; } ;;
   *)
-    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-    CC="$CC $ac_cv_prog_cc_stdc" ;;
+    CC="$CC $ac_cv_prog_cc_c89"
+    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
 esac
 
-# Some people use a C++ compiler to compile C.  Since we use `exit',
-# in C++ we need to declare it.  In case someone uses the same compiler
-# for both compiling C and C++ we need to have the C++ compiler decide
-# the declaration of exit, since it's the most demanding environment.
-cat >conftest.$ac_ext <<_ACEOF
-#ifndef __cplusplus
-  choke me
-#endif
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  for ac_declaration in \
-   '' \
-   'extern "C" void std::exit (int) throw (); using std::exit;' \
-   'extern "C" void std::exit (int); using std::exit;' \
-   'extern "C" void exit (int) throw ();' \
-   'extern "C" void exit (int);' \
-   'void exit (int);'
-do
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_declaration
-#include <stdlib.h>
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-continue
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_declaration
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
-  echo '#ifdef __cplusplus' >>confdefs.h
-  echo $ac_declaration      >>confdefs.h
-  echo '#endif'             >>confdefs.h
-fi
 
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -2780,35 +3372,35 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
   if test -z "$GCC"; then
     # not using GCC
-    echo "$as_me:$LINENO: checking how to request ANSI compilation" >&5
-echo $ECHO_N "checking how to request ANSI compilation... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking how to request ANSI compilation" >&5
+echo $ECHO_N "checking how to request ANSI compilation... $ECHO_C" >&6; }
     case "$host" in
       *-hpux* )
-        echo "$as_me:$LINENO: result: HPUX: adding -Ae" >&5
-echo "${ECHO_T}HPUX: adding -Ae" >&6
+        echo "$as_me:$LINENO: result: HPUX: adding -Ae" >&5
+echo "${ECHO_T}HPUX: adding -Ae" >&6; }
         CC="$CC -Ae"
       ;;
       *-aix* )
-        echo "$as_me:$LINENO: result: AIX: adding -qlanglvl=ansi -qhalt=e" >&5
-echo "${ECHO_T}AIX: adding -qlanglvl=ansi -qhalt=e" >&6
+        echo "$as_me:$LINENO: result: AIX: adding -qlanglvl=ansi -qhalt=e" >&5
+echo "${ECHO_T}AIX: adding -qlanglvl=ansi -qhalt=e" >&6; }
         CC="$CC -qlanglvl=ansi -qhalt=e"
       ;;
       *-dec-* )
-        echo "$as_me:$LINENO: result: DEC: adding -std1 -ieee" >&5
-echo "${ECHO_T}DEC: adding -std1 -ieee" >&6
+        echo "$as_me:$LINENO: result: DEC: adding -std1 -ieee" >&5
+echo "${ECHO_T}DEC: adding -std1 -ieee" >&6; }
         CC="$CC -std1"
       ;;
       *)
-        echo "$as_me:$LINENO: result: no idea" >&5
-echo "${ECHO_T}no idea" >&6
+        echo "$as_me:$LINENO: result: no idea" >&5
+echo "${ECHO_T}no idea" >&6; }
       ;;
     esac
   else
     # using GCC
     case "$host" in
       *-solaris*)
-        echo "$as_me:$LINENO: result: Solaris: adding -D__EXTENSIONS__" >&5
-echo "${ECHO_T}Solaris: adding -D__EXTENSIONS__" >&6
+        echo "$as_me:$LINENO: result: Solaris: adding -D__EXTENSIONS__" >&5
+echo "${ECHO_T}Solaris: adding -D__EXTENSIONS__" >&6; }
         CC="$CC -D__EXTENSIONS__"
       ;;
     esac
@@ -2816,8 +3408,8 @@ echo "${ECHO_T}Solaris: adding -D__EXTENSIONS__" >&6
 
   OBJCC="$CC"
 
-  echo "$as_me:$LINENO: checking whether the compiler works on ANSI C" >&5
-echo $ECHO_N "checking whether the compiler works on ANSI C... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking whether the compiler works on ANSI C" >&5
+echo $ECHO_N "checking whether the compiler works on ANSI C... $ECHO_C" >&6; }
   if test "$cross_compiling" = yes; then
   { { echo "$as_me:$LINENO: error: Couldn't build even a trivial ANSI C program: check CC." >&5
 echo "$as_me: error: Couldn't build even a trivial ANSI C program: check CC." >&2;}
@@ -2832,36 +3424,47 @@ cat >>conftest.$ac_ext <<_ACEOF
  main(int ac, char **av) { return 0; }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
 else
   echo "$as_me: program exited with status $ac_status" >&5
 echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 ( exit $ac_status )
-echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
      { { echo "$as_me:$LINENO: error: Couldn't build even a trivial ANSI C program: check CC." >&5
 echo "$as_me: error: Couldn't build even a trivial ANSI C program: check CC." >&2;}
    { (exit 1); exit 1; }; }
 fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
+
+
   if test -n "$GCC"; then
-    echo "$as_me:$LINENO: result: Turning on gcc compiler warnings." >&5
-echo "${ECHO_T}Turning on gcc compiler warnings." >&6
+    echo "$as_me:$LINENO: result: Turning on gcc compiler warnings." >&5
+echo "${ECHO_T}Turning on gcc compiler warnings." >&6; }
     CC="$CC -pedantic -Wall -Wstrict-prototypes -Wnested-externs -Wmissing-prototypes"
     OBJCC="$OBJCC -Wall"
     # supposedly gcc 3.4 will have "-Wdeclaration-after-statement"
@@ -2869,8 +3472,8 @@ echo "${ECHO_T}Turning on gcc compiler warnings." >&6
   else
     case "$host" in
       *-irix5* |*-irix6.0-3* )
-        echo "$as_me:$LINENO: result: Turning on SGI compiler warnings." >&5
-echo "${ECHO_T}Turning on SGI compiler warnings." >&6
+        echo "$as_me:$LINENO: result: Turning on SGI compiler warnings." >&5
+echo "${ECHO_T}Turning on SGI compiler warnings." >&6; }
         CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3"
       ;;
 #     *-dec-osf* )
@@ -2884,8 +3487,8 @@ echo "${ECHO_T}Turning on SGI compiler warnings." >&6
 
 if test -n "$GCC"; then
    if test -n "$GCC"; then
-   echo "$as_me:$LINENO: checking whether gcc accepts -std" >&5
-echo $ECHO_N "checking whether gcc accepts -std... $ECHO_C" >&6
+   echo "$as_me:$LINENO: checking whether gcc accepts -std" >&5
+echo $ECHO_N "checking whether gcc accepts -std... $ECHO_C" >&6; }
 if test "${ac_cv_gcc_accepts_std+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2896,13 +3499,13 @@ else
        ac_cv_gcc_accepts_std=yes
      fi
 fi
-echo "$as_me:$LINENO: result: $ac_cv_gcc_accepts_std" >&5
-echo "${ECHO_T}$ac_cv_gcc_accepts_std" >&6
+echo "$as_me:$LINENO: result: $ac_cv_gcc_accepts_std" >&5
+echo "${ECHO_T}$ac_cv_gcc_accepts_std" >&6; }
    ac_gcc_accepts_std="$ac_cv_gcc_accepts_std"
   fi
 
-   echo "$as_me:$LINENO: result: Disabling C++ comments in ANSI C code." >&5
-echo "${ECHO_T}Disabling C++ comments in ANSI C code." >&6
+   echo "$as_me:$LINENO: result: Disabling C++ comments in ANSI C code." >&5
+echo "${ECHO_T}Disabling C++ comments in ANSI C code." >&6; }
    #
    # The reason that // comments are banned from xscreensaver is that gcc is
    # basically the only compiler in the world that supports them in C code.
@@ -2931,8 +3534,8 @@ echo "${ECHO_T}Disabling C++ comments in ANSI C code." >&6
 
 if test -n "$GCC"; then
    if test -n "$GCC"; then
-   echo "$as_me:$LINENO: checking whether gcc accepts -no-cpp-precomp" >&5
-echo $ECHO_N "checking whether gcc accepts -no-cpp-precomp... $ECHO_C" >&6
+   echo "$as_me:$LINENO: checking whether gcc accepts -no-cpp-precomp" >&5
+echo $ECHO_N "checking whether gcc accepts -no-cpp-precomp... $ECHO_C" >&6; }
 if test "${ac_cv_gcc_accepts_no_cpp_precomp+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2943,14 +3546,14 @@ else
        ac_cv_gcc_accepts_no_cpp_precomp=yes
      fi
 fi
-echo "$as_me:$LINENO: result: $ac_cv_gcc_accepts_no_cpp_precomp" >&5
-echo "${ECHO_T}$ac_cv_gcc_accepts_no_cpp_precomp" >&6
+echo "$as_me:$LINENO: result: $ac_cv_gcc_accepts_no_cpp_precomp" >&5
+echo "${ECHO_T}$ac_cv_gcc_accepts_no_cpp_precomp" >&6; }
    ac_gcc_accepts_no_cpp_precomp="$ac_cv_gcc_accepts_no_cpp_precomp"
   fi
 
    if test "$ac_gcc_accepts_no_cpp_precomp" = yes ; then
-     echo "$as_me:$LINENO: result: Disabling Objective C extensions in ANSI C code." >&5
-echo "${ECHO_T}Disabling Objective C extensions in ANSI C code." >&6
+     echo "$as_me:$LINENO: result: Disabling Objective C extensions in ANSI C code." >&5
+echo "${ECHO_T}Disabling Objective C extensions in ANSI C code." >&6; }
      CC="$CC -no-cpp-precomp"
    fi
   fi
@@ -2960,8 +3563,8 @@ ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; }
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -2995,8 +3598,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
                     Syntax error
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -3021,9 +3629,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
   # Broken: fails on valid input.
 continue
 fi
+
 rm -f conftest.err conftest.$ac_ext
 
-  # OK, works on sane cases.  Now check whether non-existent headers
+  # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -3033,8 +3642,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -3061,6 +3675,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 ac_preproc_ok=:
 break
 fi
+
 rm -f conftest.err conftest.$ac_ext
 
 done
@@ -3078,8 +3693,8 @@ fi
 else
   ac_cv_prog_CPP=$CPP
 fi
-echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6
+echo "$as_me:$LINENO: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6; }
 ac_preproc_ok=false
 for ac_c_preproc_warn_flag in '' yes
 do
@@ -3102,8 +3717,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
                     Syntax error
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -3128,9 +3748,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
   # Broken: fails on valid input.
 continue
 fi
+
 rm -f conftest.err conftest.$ac_ext
 
-  # OK, works on sane cases.  Now check whether non-existent headers
+  # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -3140,8 +3761,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -3168,6 +3794,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 ac_preproc_ok=:
 break
 fi
+
 rm -f conftest.err conftest.$ac_ext
 
 done
@@ -3189,8 +3816,8 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
-echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
+echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6; }
 if test "${ac_cv_c_const+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3230,6 +3857,7 @@ main ()
     char const *s = 0 ? (char *) 0 : (char const *) 0;
 
     *t++ = 0;
+    if (s) return 0;
   }
   { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
     int x[] = {25, 17};
@@ -3248,7 +3876,9 @@ main ()
   }
   { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
     const int foo = 10;
+    if (!foo) return 0;
   }
+  return !x[0] && !zero.x;
 #endif
 
   ;
@@ -3256,24 +3886,36 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -3282,12 +3924,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_c_const=no
+       ac_cv_c_const=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
-echo "${ECHO_T}$ac_cv_c_const" >&6
+echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
+echo "${ECHO_T}$ac_cv_c_const" >&6; }
 if test $ac_cv_c_const = no; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -3296,8 +3939,8 @@ _ACEOF
 
 fi
 
-echo "$as_me:$LINENO: checking for inline" >&5
-echo $ECHO_N "checking for inline... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for inline" >&5
+echo $ECHO_N "checking for inline... $ECHO_C" >&6; }
 if test "${ac_cv_c_inline+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3317,39 +3960,54 @@ $ac_kw foo_t foo () {return 0; }
 
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_cv_c_inline=$ac_kw; break
+  ac_cv_c_inline=$ac_kw
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  test "$ac_cv_c_inline" != no && break
 done
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
-echo "${ECHO_T}$ac_cv_c_inline" >&6
+echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
+echo "${ECHO_T}$ac_cv_c_inline" >&6; }
 
 
 case $ac_cv_c_inline in
@@ -3369,14 +4027,14 @@ esac
 
 
 ac_bc_result=`echo 6+9 | bc 2>/dev/null`
-  echo "$as_me:$LINENO: checking for bc" >&5
-echo $ECHO_N "checking for bc... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for bc" >&5
+echo $ECHO_N "checking for bc... $ECHO_C" >&6; }
   if test "$ac_bc_result" = "15" ; then
-    echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+    echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
   else
-    echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+    echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
     echo ''
     { { echo "$as_me:$LINENO: error: Your system doesn't have \"bc\", which has been a standard
                   part of Unix since the 1970s.  Come back when your vendor
@@ -3402,8 +4060,8 @@ echo "$as_me: error: Your system doesn't have \"bc\", which has been a standard
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # OS/2's system install, which has a completely different semantic
 # ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
 if test -z "$INSTALL"; then
 if test "${ac_cv_path_install+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3425,7 +4083,7 @@ case $as_dir/ in
     # by default.
     for ac_prog in ginstall scoinst install; do
       for ac_exec_ext in '' $ac_executable_extensions; do
-       if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+       if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; }; then
          if test $ac_prog = install &&
            grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
            # AIX install.  It has an incompatible calling convention.
@@ -3444,21 +4102,22 @@ case $as_dir/ in
     ;;
 esac
 done
+IFS=$as_save_IFS
 
 
 fi
   if test "${ac_cv_path_install+set}" = set; then
     INSTALL=$ac_cv_path_install
   else
-    # As a last resort, use the slow shell script.  We don't cache a
-    # path for INSTALL within a source directory, because that will
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for INSTALL within a source directory, because that will
     # break other packages using the cache if that directory is
-    # removed, or if the path is relative.
+    # removed, or if the value is a relative name.
     INSTALL=$ac_install_sh
   fi
 fi
-echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6
+echo "$as_me:$LINENO: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6; }
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
 # It thinks the first close brace ends the variable substitution.
@@ -3468,8 +4127,8 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
-echo "$as_me:$LINENO: checking whether \"\${INSTALL} -d\" creates intermediate directories" >&5
-echo $ECHO_N "checking whether \"\${INSTALL} -d\" creates intermediate directories... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking whether \"\${INSTALL} -d\" creates intermediate directories" >&5
+echo $ECHO_N "checking whether \"\${INSTALL} -d\" creates intermediate directories... $ECHO_C" >&6; }
 if test "${ac_cv_install_d_creates_dirs+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3486,12 +4145,12 @@ else
      fi
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_install_d_creates_dirs" >&5
-echo "${ECHO_T}$ac_cv_install_d_creates_dirs" >&6
+echo "$as_me:$LINENO: result: $ac_cv_install_d_creates_dirs" >&5
+echo "${ECHO_T}$ac_cv_install_d_creates_dirs" >&6; }
 
   if test "$ac_cv_install_d_creates_dirs" = no ; then
-    echo "$as_me:$LINENO: checking whether \"mkdir -p\" creates intermediate directories" >&5
-echo $ECHO_N "checking whether \"mkdir -p\" creates intermediate directories... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking whether \"mkdir -p\" creates intermediate directories" >&5
+echo $ECHO_N "checking whether \"mkdir -p\" creates intermediate directories... $ECHO_C" >&6; }
 if test "${ac_cv_mkdir_p_creates_dirs+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3508,8 +4167,8 @@ else
        fi
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_mkdir_p_creates_dirs" >&5
-echo "${ECHO_T}$ac_cv_mkdir_p_creates_dirs" >&6
+echo "$as_me:$LINENO: result: $ac_cv_mkdir_p_creates_dirs" >&5
+echo "${ECHO_T}$ac_cv_mkdir_p_creates_dirs" >&6; }
   fi
 
   if test "$ac_cv_install_d_creates_dirs" = yes ; then
@@ -3521,32 +4180,33 @@ echo "${ECHO_T}$ac_cv_mkdir_p_creates_dirs" >&6
     INSTALL_DIRS='${INSTALL} -d'
   fi
 
-echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; }
+set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
 all:
-       @echo 'ac_maketemp="$(MAKE)"'
+       @echo '@@@%%%=$(MAKE)=@@@%%%'
 _ACEOF
 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
-  eval ac_cv_prog_make_${ac_make}_set=yes
-else
-  eval ac_cv_prog_make_${ac_make}_set=no
-fi
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+  *@@@%%%=?*=@@@%%%*)
+    eval ac_cv_prog_make_${ac_make}_set=yes;;
+  *)
+    eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
 rm -f conftest.make
 fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
   SET_MAKE=
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
   SET_MAKE="MAKE=${MAKE-make}"
 fi
 
@@ -3560,23 +4220,170 @@ INSTALL_SCRIPT='${INSTALL}'
 
 # random libc stuff
 
-echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
-if test "${ac_cv_prog_egrep+set}" = set; then
+{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
+echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # Extract the first word of "grep ggrep" to use in msg output
+if test -z "$GREP"; then
+set dummy grep ggrep; ac_prog_name=$2
+if test "${ac_cv_path_GREP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_path_GREP_found=false
+# Loop through the user's path and test for each of PROGNAME-LIST
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_prog in grep ggrep; do
+  for ac_exec_ext in '' $ac_executable_extensions; do
+    ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+    { test -f "$ac_path_GREP" && $as_executable_p "$ac_path_GREP"; } || continue
+    # Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    ac_count=`expr $ac_count + 1`
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+
+    $ac_path_GREP_found && break 3
+  done
+done
+
+done
+IFS=$as_save_IFS
+
+
+fi
+
+GREP="$ac_cv_path_GREP"
+if test -z "$GREP"; then
+  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
+echo "${ECHO_T}$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }
+if test "${ac_cv_path_EGREP+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-    then ac_cv_prog_egrep='grep -E'
-    else ac_cv_prog_egrep='egrep'
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     # Extract the first word of "egrep" to use in msg output
+if test -z "$EGREP"; then
+set dummy egrep; ac_prog_name=$2
+if test "${ac_cv_path_EGREP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_path_EGREP_found=false
+# Loop through the user's path and test for each of PROGNAME-LIST
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_prog in egrep; do
+  for ac_exec_ext in '' $ac_executable_extensions; do
+    ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+    { test -f "$ac_path_EGREP" && $as_executable_p "$ac_path_EGREP"; } || continue
+    # Check for GNU ac_path_EGREP and select it if it is found.
+  # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    ac_count=`expr $ac_count + 1`
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
     fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+
+    $ac_path_EGREP_found && break 3
+  done
+done
+
+done
+IFS=$as_save_IFS
+
+
+fi
+
+EGREP="$ac_cv_path_EGREP"
+if test -z "$EGREP"; then
+  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+else
+  ac_cv_path_EGREP=$EGREP
+fi
+
+
+   fi
 fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
- EGREP=$ac_cv_prog_egrep
+{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
+echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
 
 
-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
 if test "${ac_cv_header_stdc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3600,24 +4407,36 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -3626,9 +4445,10 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_stdc=no
+       ac_cv_header_stdc=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
@@ -3684,6 +4504,7 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <ctype.h>
+#include <stdlib.h>
 #if ((' ' & 0x0FF) == 0x020)
 # define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
 # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
@@ -3703,18 +4524,27 @@ main ()
   for (i = 0; i < 256; i++)
     if (XOR (islower (i), ISLOWER (i))
        || toupper (i) != TOUPPER (i))
-      exit(2);
-  exit (0);
+      return 2;
+  return 0;
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -3727,12 +4557,14 @@ sed 's/^/| /' conftest.$ac_ext >&5
 ( exit $ac_status )
 ac_cv_header_stdc=no
 fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
+
+
 fi
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6; }
 if test $ac_cv_header_stdc = yes; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -3755,9 +4587,9 @@ for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
                  inttypes.h stdint.h unistd.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -3771,24 +4603,36 @@ $ac_includes_default
 #include <$ac_header>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -3797,12 +4641,14 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_Header=no"
+       eval "$as_ac_Header=no"
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
 #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
@@ -3817,18 +4663,19 @@ done
 for ac_header in unistd.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -3839,24 +4686,36 @@ $ac_includes_default
 #include <$ac_header>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -3865,15 +4724,16 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+       ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
 
 # Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -3882,8 +4742,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -3907,9 +4772,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -3933,25 +4799,19 @@ echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\
 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 
 fi
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
@@ -3963,8 +4823,8 @@ fi
 
 done
 
-echo "$as_me:$LINENO: checking for mode_t" >&5
-echo $ECHO_N "checking for mode_t... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for mode_t" >&5
+echo $ECHO_N "checking for mode_t... $ECHO_C" >&6; }
 if test "${ac_cv_type_mode_t+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3975,36 +4835,49 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 $ac_includes_default
+typedef mode_t ac__type_new_;
 int
 main ()
 {
-if ((mode_t *) 0)
+if ((ac__type_new_ *) 0)
   return 0;
-if (sizeof (mode_t))
+if (sizeof (ac__type_new_))
   return 0;
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -4013,12 +4886,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_type_mode_t=no
+       ac_cv_type_mode_t=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5
-echo "${ECHO_T}$ac_cv_type_mode_t" >&6
+echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5
+echo "${ECHO_T}$ac_cv_type_mode_t" >&6; }
 if test $ac_cv_type_mode_t = yes; then
   :
 else
@@ -4029,8 +4903,8 @@ _ACEOF
 
 fi
 
-echo "$as_me:$LINENO: checking for pid_t" >&5
-echo $ECHO_N "checking for pid_t... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for pid_t" >&5
+echo $ECHO_N "checking for pid_t... $ECHO_C" >&6; }
 if test "${ac_cv_type_pid_t+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -4041,36 +4915,49 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 $ac_includes_default
+typedef pid_t ac__type_new_;
 int
 main ()
 {
-if ((pid_t *) 0)
+if ((ac__type_new_ *) 0)
   return 0;
-if (sizeof (pid_t))
+if (sizeof (ac__type_new_))
   return 0;
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -4079,12 +4966,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_type_pid_t=no
+       ac_cv_type_pid_t=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5
-echo "${ECHO_T}$ac_cv_type_pid_t" >&6
+echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5
+echo "${ECHO_T}$ac_cv_type_pid_t" >&6; }
 if test $ac_cv_type_pid_t = yes; then
   :
 else
@@ -4095,8 +4983,8 @@ _ACEOF
 
 fi
 
-echo "$as_me:$LINENO: checking for size_t" >&5
-echo $ECHO_N "checking for size_t... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for size_t" >&5
+echo $ECHO_N "checking for size_t... $ECHO_C" >&6; }
 if test "${ac_cv_type_size_t+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -4107,36 +4995,49 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 $ac_includes_default
+typedef size_t ac__type_new_;
 int
 main ()
 {
-if ((size_t *) 0)
+if ((ac__type_new_ *) 0)
   return 0;
-if (sizeof (size_t))
+if (sizeof (ac__type_new_))
   return 0;
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -4145,24 +5046,25 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_type_size_t=no
+       ac_cv_type_size_t=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
-echo "${ECHO_T}$ac_cv_type_size_t" >&6
+echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
+echo "${ECHO_T}$ac_cv_type_size_t" >&6; }
 if test $ac_cv_type_size_t = yes; then
   :
 else
 
 cat >>confdefs.h <<_ACEOF
-#define size_t unsigned
+#define size_t unsigned int
 _ACEOF
 
 fi
 
-echo "$as_me:$LINENO: checking return type of signal handlers" >&5
-echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking return type of signal handlers" >&5
+echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6; }
 if test "${ac_cv_type_signal+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -4174,64 +5076,69 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <sys/types.h>
 #include <signal.h>
-#ifdef signal
-# undef signal
-#endif
-#ifdef __cplusplus
-extern "C" void (*signal (int, void (*)(int)))(int);
-#else
-void (*signal ()) ();
-#endif
 
 int
 main ()
 {
-int i;
+return *(signal (0, 0)) (0) == 1;
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_cv_type_signal=void
+  ac_cv_type_signal=int
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_type_signal=int
+       ac_cv_type_signal=void
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5
-echo "${ECHO_T}$ac_cv_type_signal" >&6
+echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5
+echo "${ECHO_T}$ac_cv_type_signal" >&6; }
 
 cat >>confdefs.h <<_ACEOF
 #define RETSIGTYPE $ac_cv_type_signal
 _ACEOF
 
 
-echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5
-echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5
+echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6; }
 if test "${ac_cv_header_time+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -4255,24 +5162,36 @@ return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -4281,12 +5200,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_time=no
+       ac_cv_header_time=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
-echo "${ECHO_T}$ac_cv_header_time" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
+echo "${ECHO_T}$ac_cv_header_time" >&6; }
 if test $ac_cv_header_time = yes; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -4295,8 +5215,8 @@ _ACEOF
 
 fi
 
-echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5
-echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6; }
 if test "${ac_cv_header_sys_wait_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -4309,7 +5229,7 @@ cat >>conftest.$ac_ext <<_ACEOF
 #include <sys/types.h>
 #include <sys/wait.h>
 #ifndef WEXITSTATUS
-# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
+# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8)
 #endif
 #ifndef WIFEXITED
 # define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
@@ -4326,24 +5246,36 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -4352,12 +5284,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_sys_wait_h=no
+       ac_cv_header_sys_wait_h=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
-echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
+echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6; }
 if test $ac_cv_header_sys_wait_h = yes; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -4374,9 +5307,9 @@ fi
 ac_header_dirent=no
 for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
   as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5
-echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5
+echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -4398,24 +5331,36 @@ return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -4424,12 +5369,14 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_Header=no"
+       eval "$as_ac_Header=no"
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
 #define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
@@ -4441,13 +5388,12 @@ fi
 done
 # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
 if test $ac_header_dirent = dirent.h; then
-  echo "$as_me:$LINENO: checking for library containing opendir" >&5
-echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for library containing opendir" >&5
+echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; }
 if test "${ac_cv_search_opendir+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_func_search_save_LIBS=$LIBS
-ac_cv_search_opendir=no
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -4455,249 +5401,196 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char opendir ();
 int
 main ()
 {
-opendir ();
+return opendir ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+for ac_lib in '' dir; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_cv_search_opendir="none required"
+  ac_cv_search_opendir=$ac_res
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+
 fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-if test "$ac_cv_search_opendir" = no; then
-  for ac_lib in dir; do
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-    cat >conftest.$ac_ext <<_ACEOF
+
+rm -f core conftest.err conftest.$ac_objext \
+      conftest$ac_exeext
+  if test "${ac_cv_search_opendir+set}" = set; then
+  break
+fi
+done
+if test "${ac_cv_search_opendir+set}" = set; then
+  :
+else
+  ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
+echo "${ECHO_T}$ac_cv_search_opendir" >&6; }
+ac_res=$ac_cv_search_opendir
+if test "$ac_res" != no; then
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+else
+  { echo "$as_me:$LINENO: checking for library containing opendir" >&5
+echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; }
+if test "${ac_cv_search_opendir+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char opendir ();
 int
 main ()
 {
-opendir ();
+return opendir ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+for ac_lib in '' x; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_cv_search_opendir="-l$ac_lib"
-break
+  ac_cv_search_opendir=$ac_res
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-  done
-fi
-LIBS=$ac_func_search_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
-echo "${ECHO_T}$ac_cv_search_opendir" >&6
-if test "$ac_cv_search_opendir" != no; then
-  test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS"
 
 fi
 
-else
-  echo "$as_me:$LINENO: checking for library containing opendir" >&5
-echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6
-if test "${ac_cv_search_opendir+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-ac_cv_search_opendir=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char opendir ();
-int
-main ()
-{
-opendir ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_search_opendir="none required"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
+rm -f core conftest.err conftest.$ac_objext \
+      conftest$ac_exeext
+  if test "${ac_cv_search_opendir+set}" = set; then
+  break
 fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-if test "$ac_cv_search_opendir" = no; then
-  for ac_lib in x; do
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char opendir ();
-int
-main ()
-{
-opendir ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_search_opendir="-l$ac_lib"
-break
+done
+if test "${ac_cv_search_opendir+set}" = set; then
+  :
 else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-  done
+  ac_cv_search_opendir=no
 fi
+rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
-echo "${ECHO_T}$ac_cv_search_opendir" >&6
-if test "$ac_cv_search_opendir" != no; then
-  test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS"
+{ echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
+echo "${ECHO_T}$ac_cv_search_opendir" >&6; }
+ac_res=$ac_cv_search_opendir
+if test "$ac_res" != no; then
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 
 fi
 
-echo "$as_me:$LINENO: checking how to call gettimeofday" >&5
-echo $ECHO_N "checking how to call gettimeofday... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking how to call gettimeofday" >&5
+echo $ECHO_N "checking how to call gettimeofday... $ECHO_C" >&6; }
   if test "${ac_cv_gettimeofday_args+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -4719,24 +5612,36 @@ struct timeval tv; struct timezone tzp;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -4745,7 +5650,7 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-cat >conftest.$ac_ext <<_ACEOF
+       cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -4762,24 +5667,36 @@ struct timeval tv; gettimeofday(&tv);
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -4788,11 +5705,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_gettimeofday_args=0
+       ac_gettimeofday_args=0
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     ac_cv_gettimeofday_args=$ac_gettimeofday_args
 fi
 
@@ -4802,8 +5721,8 @@ fi
 #define HAVE_GETTIMEOFDAY 1
 _ACEOF
 
-    echo "$as_me:$LINENO: result: one argument" >&5
-echo "${ECHO_T}one argument" >&6
+    echo "$as_me:$LINENO: result: one argument" >&5
+echo "${ECHO_T}one argument" >&6; }
   elif test "$ac_gettimeofday_args" = 2 ; then
     cat >>confdefs.h <<\_ACEOF
 #define HAVE_GETTIMEOFDAY 1
@@ -4813,11 +5732,11 @@ _ACEOF
 #define GETTIMEOFDAY_TWO_ARGS 1
 _ACEOF
 
-    echo "$as_me:$LINENO: result: two arguments" >&5
-echo "${ECHO_T}two arguments" >&6
+    echo "$as_me:$LINENO: result: two arguments" >&5
+echo "${ECHO_T}two arguments" >&6; }
   else
-    echo "$as_me:$LINENO: result: unknown" >&5
-echo "${ECHO_T}unknown" >&6
+    echo "$as_me:$LINENO: result: unknown" >&5
+echo "${ECHO_T}unknown" >&6; }
   fi
 
 
@@ -4832,9 +5751,9 @@ echo "${ECHO_T}unknown" >&6
 for ac_func in select fcntl uname nice setpriority getcwd getwd putenv sbrk
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -4860,53 +5779,59 @@ cat >>conftest.$ac_ext <<_ACEOF
 
 #undef $ac_func
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
-{
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char $ac_func ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+#if defined __stub_$ac_func || defined __stub___$ac_func
 choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
 #endif
 
 int
 main ()
 {
-return f != $ac_func;
+return $ac_func ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -4915,13 +5840,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_var=no"
+       eval "$as_ac_var=no"
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ac_res=`eval echo '${'$as_ac_var'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
 #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
@@ -4937,9 +5864,9 @@ done
 for ac_func in sigaction syslog realpath setrlimit
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -4965,53 +5892,59 @@ cat >>conftest.$ac_ext <<_ACEOF
 
 #undef $ac_func
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
-{
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char $ac_func ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+#if defined __stub_$ac_func || defined __stub___$ac_func
 choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
 #endif
 
 int
 main ()
 {
-return f != $ac_func;
+return $ac_func ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -5020,13 +5953,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_var=no"
+       eval "$as_ac_var=no"
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ac_res=`eval echo '${'$as_ac_var'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
 #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
@@ -5039,9 +5974,9 @@ done
 for ac_func in setlocale
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -5067,53 +6002,59 @@ cat >>conftest.$ac_ext <<_ACEOF
 
 #undef $ac_func
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
-{
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char $ac_func ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+#if defined __stub_$ac_func || defined __stub___$ac_func
 choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
 #endif
 
 int
 main ()
 {
-return f != $ac_func;
+return $ac_func ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -5122,13 +6063,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_var=no"
+       eval "$as_ac_var=no"
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ac_res=`eval echo '${'$as_ac_var'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
 #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
@@ -5137,8 +6080,8 @@ _ACEOF
 fi
 done
 
-echo "$as_me:$LINENO: checking for struct icmp" >&5
-echo $ECHO_N "checking for struct icmp... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for struct icmp" >&5
+echo $ECHO_N "checking for struct icmp... $ECHO_C" >&6; }
 if test "${ac_cv_have_icmp+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5191,24 +6134,36 @@ struct icmp i;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -5217,20 +6172,21 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_have_icmp=no
+       ac_cv_have_icmp=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_have_icmp" >&5
-echo "${ECHO_T}$ac_cv_have_icmp" >&6
+echo "$as_me:$LINENO: result: $ac_cv_have_icmp" >&5
+echo "${ECHO_T}$ac_cv_have_icmp" >&6; }
  if test "$ac_cv_have_icmp" = yes ; then
    cat >>confdefs.h <<\_ACEOF
 #define HAVE_ICMP 1
 _ACEOF
 
  fi
-echo "$as_me:$LINENO: checking for struct icmphdr" >&5
-echo $ECHO_N "checking for struct icmphdr... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for struct icmphdr" >&5
+echo $ECHO_N "checking for struct icmphdr... $ECHO_C" >&6; }
 if test "${ac_cv_have_icmphdr+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5278,24 +6234,36 @@ struct icmphdr i;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -5304,12 +6272,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_have_icmphdr=no
+       ac_cv_have_icmphdr=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_have_icmphdr" >&5
-echo "${ECHO_T}$ac_cv_have_icmphdr" >&6
+echo "$as_me:$LINENO: result: $ac_cv_have_icmphdr" >&5
+echo "${ECHO_T}$ac_cv_have_icmphdr" >&6; }
  if test "$ac_cv_have_icmphdr" = yes ; then
    cat >>confdefs.h <<\_ACEOF
 #define HAVE_ICMPHDR 1
@@ -5321,18 +6290,19 @@ _ACEOF
 for ac_header in crypt.h sys/select.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -5343,24 +6313,36 @@ $ac_includes_default
 #include <$ac_header>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -5369,15 +6351,16 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+       ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
 
 # Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -5386,8 +6369,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -5411,9 +6399,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -5437,25 +6426,19 @@ echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\
 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 
 fi
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
@@ -5471,8 +6454,8 @@ for ac_prog in perl5 perl
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_path_PERL+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5487,42 +6470,43 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
   ;;
 esac
 fi
 PERL=$ac_cv_path_PERL
-
 if test -n "$PERL"; then
-  echo "$as_me:$LINENO: result: $PERL" >&5
-echo "${ECHO_T}$PERL" >&6
+  echo "$as_me:$LINENO: result: $PERL" >&5
+echo "${ECHO_T}$PERL" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
   test -n "$PERL" && break
 done
 
   if test -z "$PERL" ; then
     PERL_VERSION=0
   else
-    echo "$as_me:$LINENO: checking perl version" >&5
-echo $ECHO_N "checking perl version... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking perl version" >&5
+echo $ECHO_N "checking perl version... $ECHO_C" >&6; }
 if test "${ac_cv_perl_version+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_cv_perl_version=`$PERL -e "$perl_version_cmd"`
 fi
-echo "$as_me:$LINENO: result: $ac_cv_perl_version" >&5
-echo "${ECHO_T}$ac_cv_perl_version" >&6
+echo "$as_me:$LINENO: result: $ac_cv_perl_version" >&5
+echo "${ECHO_T}$ac_cv_perl_version" >&6; }
     PERL_VERSION=$ac_cv_perl_version
   fi
 
@@ -5532,44 +6516,49 @@ if test -z "$PERL" ; then
   PERL=/usr/bin/perl
 fi
 
-echo "$as_me:$LINENO: checking for X" >&5
-echo $ECHO_N "checking for X... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for X" >&5
+echo $ECHO_N "checking for X... $ECHO_C" >&6; }
 
 
-# Check whether --with-x or --without-x was given.
+# Check whether --with-x was given.
 if test "${with_x+set}" = set; then
-  withval="$with_x"
+  withval=$with_x;
+fi
 
-fi;
 # $have_x is `yes', `no', `disabled', or empty when we do not yet know.
 if test "x$with_x" = xno; then
   # The user explicitly disabled X.
   have_x=disabled
 else
-  if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then
-    # Both variables are already set.
-    have_x=yes
-  else
-    if test "${ac_cv_have_x+set}" = set; then
+  case $x_includes,$x_libraries in #(
+    *\'*) { { echo "$as_me:$LINENO: error: Cannot use X directory names containing '" >&5
+echo "$as_me: error: Cannot use X directory names containing '" >&2;}
+   { (exit 1); exit 1; }; };; #(
+    *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   # One or both of the vars are not set, and there is no cached value.
 ac_x_includes=no ac_x_libraries=no
-rm -fr conftest.dir
+rm -f -r conftest.dir
 if mkdir conftest.dir; then
   cd conftest.dir
-  # Make sure to not put "make" in the Imakefile rules, since we grep it out.
   cat >Imakefile <<'_ACEOF'
-acfindx:
-       @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"'
-_ACEOF
-  if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
+incroot:
+       @echo incroot='${INCROOT}'
+usrlibdir:
+       @echo usrlibdir='${USRLIBDIR}'
+libdir:
+       @echo libdir='${LIBDIR}'
+_ACEOF
+  if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
     # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-    eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
+    for ac_var in incroot usrlibdir libdir; do
+      eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
+    done
     # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
     for ac_extension in a so sl; do
-      if test ! -f $ac_im_usrlibdir/libX11.$ac_extension &&
-        test -f $ac_im_libdir/libX11.$ac_extension; then
+      if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" &&
+        test -f "$ac_im_libdir/libX11.$ac_extension"; then
        ac_im_usrlibdir=$ac_im_libdir; break
       fi
     done
@@ -5577,7 +6566,7 @@ _ACEOF
     # bogus both because they are the default anyway, and because
     # using them would break gcc on systems where it needs fixed includes.
     case $ac_im_incroot in
-       /usr/include) ;;
+       /usr/include) ac_x_includes= ;;
        *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;;
     esac
     case $ac_im_usrlibdir in
@@ -5586,7 +6575,7 @@ _ACEOF
     esac
   fi
   cd ..
-  rm -fr conftest.dir
+  rm -f -r conftest.dir
 fi
 
 # Standard set of common directories for X headers.
@@ -5627,7 +6616,7 @@ ac_x_header_dirs='
 /usr/openwin/share/include'
 
 if test "$ac_x_includes" = no; then
-  # Guess where to find include files, by looking for Intrinsic.h.
+  # Guess where to find include files, by looking for Xlib.h.
   # First, try using that file with no special directory specified.
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -5635,10 +6624,15 @@ _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <X11/Intrinsic.h>
+#include <X11/Xlib.h>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -5662,12 +6656,13 @@ else
 sed 's/^/| /' conftest.$ac_ext >&5
 
   for ac_dir in $ac_x_header_dirs; do
-  if test -r "$ac_dir/X11/Intrinsic.h"; then
+  if test -r "$ac_dir/X11/Xlib.h"; then
     ac_x_includes=$ac_dir
     break
   fi
 done
 fi
+
 rm -f conftest.err conftest.$ac_ext
 fi # $ac_x_includes = no
 
@@ -5683,34 +6678,46 @@ _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <X11/Intrinsic.h>
+#include <X11/Xlib.h>
 int
 main ()
 {
-XtMalloc (0)
+XrmInitialize ()
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -5721,49 +6728,54 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-LIBS=$ac_save_LIBS
+       LIBS=$ac_save_LIBS
 for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
 do
   # Don't even attempt the hair of trying to link an X program!
   for ac_extension in a so sl; do
-    if test -r $ac_dir/libXt.$ac_extension; then
+    if test -r "$ac_dir/libXt.$ac_extension"; then
       ac_x_libraries=$ac_dir
       break 2
     fi
   done
 done
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 fi # $ac_x_libraries = no
 
-if test "$ac_x_includes" = no || test "$ac_x_libraries" = no; then
-  # Didn't find X anywhere.  Cache the known absence of X.
-  ac_cv_have_x="have_x=no"
-else
-  # Record where we found X for the cache.
-  ac_cv_have_x="have_x=yes \
-               ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries"
-fi
+case $ac_x_includes,$ac_x_libraries in #(
+  no,* | *,no | *\'*)
+    # Didn't find X, or a directory has "'" in its name.
+    ac_cv_have_x="have_x=no";; #(
+  *)
+    # Record where we found X for the cache.
+    ac_cv_have_x="have_x=yes\
+       ac_x_includes='$ac_x_includes'\
+       ac_x_libraries='$ac_x_libraries'"
+esac
 fi
-
-  fi
+;; #(
+    *) have_x=yes;;
+  esac
   eval "$ac_cv_have_x"
 fi # $with_x != no
 
 if test "$have_x" != yes; then
-  echo "$as_me:$LINENO: result: $have_x" >&5
-echo "${ECHO_T}$have_x" >&6
+  echo "$as_me:$LINENO: result: $have_x" >&5
+echo "${ECHO_T}$have_x" >&6; }
   no_x=yes
 else
   # If each of the values was on the command line, it overrides each guess.
   test "x$x_includes" = xNONE && x_includes=$ac_x_includes
   test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
   # Update the cache value to reflect the command line values.
-  ac_cv_have_x="have_x=yes \
-               ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
-  echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5
-echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6
+  ac_cv_have_x="have_x=yes\
+       ac_x_includes='$x_includes'\
+       ac_x_libraries='$x_libraries'"
+  { echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5
+echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6; }
 fi
 
 if test "$no_x" = yes; then
@@ -5786,8 +6798,8 @@ else
     # others require no space.  Words are not sufficient . . . .
     case `(uname -sr) 2>/dev/null` in
     "SunOS 5"*)
-      echo "$as_me:$LINENO: checking whether -R must be followed by a space" >&5
-echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6
+      echo "$as_me:$LINENO: checking whether -R must be followed by a space" >&5
+echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6; }
       ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
       cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -5805,24 +6817,36 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -5831,13 +6855,14 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_R_nospace=no
+       ac_R_nospace=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
       if test $ac_R_nospace = yes; then
-       echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+       echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
        X_LIBS="$X_LIBS -R$x_libraries"
       else
        LIBS="$ac_xsave_LIBS -R $x_libraries"
@@ -5857,24 +6882,36 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -5883,17 +6920,18 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_R_space=no
+       ac_R_space=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
        if test $ac_R_space = yes; then
-         echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+         echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
          X_LIBS="$X_LIBS -R $x_libraries"
        else
-         echo "$as_me:$LINENO: result: neither works" >&5
-echo "${ECHO_T}neither works" >&6
+         echo "$as_me:$LINENO: result: neither works" >&5
+echo "${ECHO_T}neither works" >&6; }
        fi
       fi
       LIBS=$ac_xsave_LIBS
@@ -5918,40 +6956,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char XOpenDisplay ();
 int
 main ()
 {
-XOpenDisplay ();
+return XOpenDisplay ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -5960,8 +7010,8 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet" >&5
-echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6
+       { echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet" >&5
+echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6; }
 if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5974,40 +7024,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char dnet_ntoa ();
 int
 main ()
 {
-dnet_ntoa ();
+return dnet_ntoa ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -6016,21 +7078,22 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_dnet_dnet_ntoa=no
+       ac_cv_lib_dnet_dnet_ntoa=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
-echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
+echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6; }
 if test $ac_cv_lib_dnet_dnet_ntoa = yes; then
   X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
 fi
 
     if test $ac_cv_lib_dnet_dnet_ntoa = no; then
-      echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet_stub" >&5
-echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6
+      echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet_stub" >&5
+echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6; }
 if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -6043,40 +7106,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char dnet_ntoa ();
 int
 main ()
 {
-dnet_ntoa ();
+return dnet_ntoa ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -6085,21 +7160,23 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_dnet_stub_dnet_ntoa=no
+       ac_cv_lib_dnet_stub_dnet_ntoa=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
-echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
+echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; }
 if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then
   X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
 fi
 
     fi
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
     LIBS="$ac_xsave_LIBS"
 
@@ -6111,8 +7188,8 @@ rm -f conftest.err conftest.$ac_objext \
     # on Irix 5.2, according to T.E. Dickey.
     # The functions gethostbyname, getservbyname, and inet_addr are
     # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
-    echo "$as_me:$LINENO: checking for gethostbyname" >&5
-echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for gethostbyname" >&5
+echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6; }
 if test "${ac_cv_func_gethostbyname+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -6139,53 +7216,59 @@ cat >>conftest.$ac_ext <<_ACEOF
 
 #undef gethostbyname
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
-{
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char gethostbyname ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname)
+#if defined __stub_gethostbyname || defined __stub___gethostbyname
 choke me
-#else
-char (*f) () = gethostbyname;
-#endif
-#ifdef __cplusplus
-}
 #endif
 
 int
 main ()
 {
-return f != gethostbyname;
+return gethostbyname ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -6194,17 +7277,18 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_func_gethostbyname=no
+       ac_cv_func_gethostbyname=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5
-echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6
+echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5
+echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6; }
 
     if test $ac_cv_func_gethostbyname = no; then
-      echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5
-echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6
+      echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5
+echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6; }
 if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -6217,40 +7301,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char gethostbyname ();
 int
 main ()
 {
-gethostbyname ();
+return gethostbyname ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -6259,21 +7355,22 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_nsl_gethostbyname=no
+       ac_cv_lib_nsl_gethostbyname=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5
-echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5
+echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6; }
 if test $ac_cv_lib_nsl_gethostbyname = yes; then
   X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
 fi
 
       if test $ac_cv_lib_nsl_gethostbyname = no; then
-       echo "$as_me:$LINENO: checking for gethostbyname in -lbsd" >&5
-echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6
+       echo "$as_me:$LINENO: checking for gethostbyname in -lbsd" >&5
+echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6; }
 if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -6286,40 +7383,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char gethostbyname ();
 int
 main ()
 {
-gethostbyname ();
+return gethostbyname ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -6328,14 +7437,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_bsd_gethostbyname=no
+       ac_cv_lib_bsd_gethostbyname=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gethostbyname" >&5
-echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gethostbyname" >&5
+echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6; }
 if test $ac_cv_lib_bsd_gethostbyname = yes; then
   X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
 fi
@@ -6350,8 +7460,8 @@ fi
     # variants that don't use the name server (or something).  -lsocket
     # must be given before -lnsl if both are needed.  We assume that
     # if connect needs -lnsl, so does gethostbyname.
-    echo "$as_me:$LINENO: checking for connect" >&5
-echo $ECHO_N "checking for connect... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for connect" >&5
+echo $ECHO_N "checking for connect... $ECHO_C" >&6; }
 if test "${ac_cv_func_connect+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -6378,53 +7488,59 @@ cat >>conftest.$ac_ext <<_ACEOF
 
 #undef connect
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
-{
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char connect ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_connect) || defined (__stub___connect)
+#if defined __stub_connect || defined __stub___connect
 choke me
-#else
-char (*f) () = connect;
-#endif
-#ifdef __cplusplus
-}
 #endif
 
 int
 main ()
 {
-return f != connect;
+return connect ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -6433,17 +7549,18 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_func_connect=no
+       ac_cv_func_connect=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5
-echo "${ECHO_T}$ac_cv_func_connect" >&6
+echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5
+echo "${ECHO_T}$ac_cv_func_connect" >&6; }
 
     if test $ac_cv_func_connect = no; then
-      echo "$as_me:$LINENO: checking for connect in -lsocket" >&5
-echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6
+      echo "$as_me:$LINENO: checking for connect in -lsocket" >&5
+echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6; }
 if test "${ac_cv_lib_socket_connect+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -6456,40 +7573,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char connect ();
 int
 main ()
 {
-connect ();
+return connect ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -6498,14 +7627,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_socket_connect=no
+       ac_cv_lib_socket_connect=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5
-echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5
+echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6; }
 if test $ac_cv_lib_socket_connect = yes; then
   X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
 fi
@@ -6513,8 +7643,8 @@ fi
     fi
 
     # Guillermo Gomez says -lposix is necessary on A/UX.
-    echo "$as_me:$LINENO: checking for remove" >&5
-echo $ECHO_N "checking for remove... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for remove" >&5
+echo $ECHO_N "checking for remove... $ECHO_C" >&6; }
 if test "${ac_cv_func_remove+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -6541,53 +7671,59 @@ cat >>conftest.$ac_ext <<_ACEOF
 
 #undef remove
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
-{
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char remove ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_remove) || defined (__stub___remove)
+#if defined __stub_remove || defined __stub___remove
 choke me
-#else
-char (*f) () = remove;
-#endif
-#ifdef __cplusplus
-}
 #endif
 
 int
 main ()
 {
-return f != remove;
+return remove ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -6596,17 +7732,18 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_func_remove=no
+       ac_cv_func_remove=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_func_remove" >&5
-echo "${ECHO_T}$ac_cv_func_remove" >&6
+echo "$as_me:$LINENO: result: $ac_cv_func_remove" >&5
+echo "${ECHO_T}$ac_cv_func_remove" >&6; }
 
     if test $ac_cv_func_remove = no; then
-      echo "$as_me:$LINENO: checking for remove in -lposix" >&5
-echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6
+      echo "$as_me:$LINENO: checking for remove in -lposix" >&5
+echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6; }
 if test "${ac_cv_lib_posix_remove+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -6619,40 +7756,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char remove ();
 int
 main ()
 {
-remove ();
+return remove ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -6661,14 +7810,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_posix_remove=no
+       ac_cv_lib_posix_remove=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_posix_remove" >&5
-echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_posix_remove" >&5
+echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6; }
 if test $ac_cv_lib_posix_remove = yes; then
   X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
 fi
@@ -6676,8 +7826,8 @@ fi
     fi
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
-    echo "$as_me:$LINENO: checking for shmat" >&5
-echo $ECHO_N "checking for shmat... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for shmat" >&5
+echo $ECHO_N "checking for shmat... $ECHO_C" >&6; }
 if test "${ac_cv_func_shmat+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -6704,53 +7854,59 @@ cat >>conftest.$ac_ext <<_ACEOF
 
 #undef shmat
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
-{
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char shmat ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_shmat) || defined (__stub___shmat)
+#if defined __stub_shmat || defined __stub___shmat
 choke me
-#else
-char (*f) () = shmat;
-#endif
-#ifdef __cplusplus
-}
 #endif
 
 int
 main ()
 {
-return f != shmat;
+return shmat ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -6759,17 +7915,18 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_func_shmat=no
+       ac_cv_func_shmat=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_func_shmat" >&5
-echo "${ECHO_T}$ac_cv_func_shmat" >&6
+echo "$as_me:$LINENO: result: $ac_cv_func_shmat" >&5
+echo "${ECHO_T}$ac_cv_func_shmat" >&6; }
 
     if test $ac_cv_func_shmat = no; then
-      echo "$as_me:$LINENO: checking for shmat in -lipc" >&5
-echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6
+      echo "$as_me:$LINENO: checking for shmat in -lipc" >&5
+echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6; }
 if test "${ac_cv_lib_ipc_shmat+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -6782,40 +7939,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char shmat ();
 int
 main ()
 {
-shmat ();
+return shmat ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -6824,14 +7993,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_ipc_shmat=no
+       ac_cv_lib_ipc_shmat=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_ipc_shmat" >&5
-echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_ipc_shmat" >&5
+echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6; }
 if test $ac_cv_lib_ipc_shmat = yes; then
   X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
 fi
@@ -6848,8 +8018,8 @@ fi
   # These have to be linked with before -lX11, unlike the other
   # libraries we check for below, so use a different variable.
   # John Interrante, Karl Berry
-  echo "$as_me:$LINENO: checking for IceConnectionNumber in -lICE" >&5
-echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for IceConnectionNumber in -lICE" >&5
+echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6; }
 if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -6862,40 +8032,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char IceConnectionNumber ();
 int
 main ()
 {
-IceConnectionNumber ();
+return IceConnectionNumber ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -6904,14 +8086,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_ICE_IceConnectionNumber=no
+       ac_cv_lib_ICE_IceConnectionNumber=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
-echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
+echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6; }
 if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then
   X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
 fi
@@ -6928,8 +8111,8 @@ echo "$as_me: error: Couldn't find X11 headers/libs.  Try \`$0 --help'." >&2;}
 fi
 
 
-    echo "$as_me:$LINENO: checking for X app-defaults directory" >&5
-echo $ECHO_N "checking for X app-defaults directory... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for X app-defaults directory" >&5
+echo $ECHO_N "checking for X app-defaults directory... $ECHO_C" >&6; }
 if test "${ac_cv_x_app_defaults+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -7016,8 +8199,8 @@ EOF
         ac_cv_x_app_defaults="$ac_x_app_defaults"
       fi
 fi
-echo "$as_me:$LINENO: result: $ac_cv_x_app_defaults" >&5
-echo "${ECHO_T}$ac_cv_x_app_defaults" >&6
+echo "$as_me:$LINENO: result: $ac_cv_x_app_defaults" >&5
+echo "${ECHO_T}$ac_cv_x_app_defaults" >&6; }
     eval ac_x_app_defaults="$ac_cv_x_app_defaults"
 case "$host" in
     *-hpux*)
@@ -7135,8 +8318,8 @@ case "$host" in
         MOTIF_LIBS="$MOTIF_LIBS -L/usr/dt/lib -R/usr/dt/lib"
 
         # Some versions of Slowlaris Motif require -lgen.  But not all.  Why?
-        echo "$as_me:$LINENO: checking for regcmp in -lgen" >&5
-echo $ECHO_N "checking for regcmp in -lgen... $ECHO_C" >&6
+        echo "$as_me:$LINENO: checking for regcmp in -lgen" >&5
+echo $ECHO_N "checking for regcmp in -lgen... $ECHO_C" >&6; }
 if test "${ac_cv_lib_gen_regcmp+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -7149,40 +8332,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char regcmp ();
 int
 main ()
 {
-regcmp ();
+return regcmp ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -7191,14 +8386,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_gen_regcmp=no
+       ac_cv_lib_gen_regcmp=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_gen_regcmp" >&5
-echo "${ECHO_T}$ac_cv_lib_gen_regcmp" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_gen_regcmp" >&5
+echo "${ECHO_T}$ac_cv_lib_gen_regcmp" >&6; }
 if test $ac_cv_lib_gen_regcmp = yes; then
   MOTIF_LIBS="$MOTIF_LIBS -lgen"
 fi
@@ -7216,8 +8412,8 @@ fi
       fi
     ;;
   esac
-echo "$as_me:$LINENO: checking for XPointer" >&5
-echo $ECHO_N "checking for XPointer... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for XPointer" >&5
+echo $ECHO_N "checking for XPointer... $ECHO_C" >&6; }
 if test "${ac_cv_xpointer+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -7243,24 +8439,36 @@ XPointer foo = (XPointer) 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -7269,13 +8477,14 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_xpointer=no
+       ac_cv_xpointer=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   CPPFLAGS="$ac_save_CPPFLAGS"
 fi
-echo "$as_me:$LINENO: result: $ac_cv_xpointer" >&5
-echo "${ECHO_T}$ac_cv_xpointer" >&6
+echo "$as_me:$LINENO: result: $ac_cv_xpointer" >&5
+echo "${ECHO_T}$ac_cv_xpointer" >&6; }
   if test "$ac_cv_xpointer" != yes; then
    cat >>confdefs.h <<\_ACEOF
 #define XPointer char*
@@ -7283,24 +8492,24 @@ _ACEOF
 
   fi
 
-echo "$as_me:$LINENO: checking whether this is MacOS X" >&5
-echo $ECHO_N "checking whether this is MacOS X... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking whether this is MacOS X" >&5
+echo $ECHO_N "checking whether this is MacOS X... $ECHO_C" >&6; }
   ac_macosx=no
   case "$host" in
     *-apple-darwin* )
       ac_macosx=yes
     ;;
   esac
-echo "$as_me:$LINENO: result: $ac_macosx" >&5
-echo "${ECHO_T}$ac_macosx" >&6
+echo "$as_me:$LINENO: result: $ac_macosx" >&5
+echo "${ECHO_T}$ac_macosx" >&6; }
 
 
 if test "$ac_macosx" = yes; then
   if test -n "$GCC"; then
     # Without these, every link against libGL gets a bunch of useless warnings.
     osx_crud="-bind_at_load -multiply_defined suppress"
-    echo "$as_me:$LINENO: result: adding \"$osx_crud\" to LDFLAGS" >&5
-echo "${ECHO_T}adding \"$osx_crud\" to LDFLAGS" >&6
+    echo "$as_me:$LINENO: result: adding \"$osx_crud\" to LDFLAGS" >&5
+echo "${ECHO_T}adding \"$osx_crud\" to LDFLAGS" >&6; }
      LDFLAGS="$LDFLAGS $osx_crud"
   fi
 fi
@@ -7314,8 +8523,8 @@ fi
 
 
 if test -n ""; then
-    echo "$as_me:$LINENO: checking for intltool >= " >&5
-echo $ECHO_N "checking for intltool >= ... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for intltool >= " >&5
+echo $ECHO_N "checking for intltool >= ... $ECHO_C" >&6; }
 
     INTLTOOL_REQUIRED_VERSION_AS_INT=`echo  | awk -F. '{ printf "%d", $1 * 100 + $2; }'`
     INTLTOOL_APPLIED_VERSION=`awk -F\" '/\\$VERSION / { printf $2; }'  < intltool-update.in`
@@ -7324,11 +8533,11 @@ echo $ECHO_N "checking for intltool >= ... $ECHO_C" >&6
 
 
     if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT"; then
-       echo "$as_me:$LINENO: result: $INTLTOOL_APPLIED_VERSION found" >&5
-echo "${ECHO_T}$INTLTOOL_APPLIED_VERSION found" >&6
+       echo "$as_me:$LINENO: result: $INTLTOOL_APPLIED_VERSION found" >&5
+echo "${ECHO_T}$INTLTOOL_APPLIED_VERSION found" >&6; }
     else
-       echo "$as_me:$LINENO: result: $INTLTOOL_APPLIED_VERSION found. Your intltool is too old.  You need intltool  or later." >&5
-echo "${ECHO_T}$INTLTOOL_APPLIED_VERSION found. Your intltool is too old.  You need intltool  or later." >&6
+       echo "$as_me:$LINENO: result: $INTLTOOL_APPLIED_VERSION found. Your intltool is too old.  You need intltool  or later." >&5
+echo "${ECHO_T}$INTLTOOL_APPLIED_VERSION found. Your intltool is too old.  You need intltool  or later." >&6; }
        exit 1
     fi
 fi
@@ -7369,8 +8578,8 @@ INTLTOOL_UPDATE='$(top_builddir)/intltool-update'
 
 # Extract the first word of "perl", so it can be a program name with args.
 set dummy perl; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_path_INTLTOOL_PERL+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -7385,27 +8594,28 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
   ;;
 esac
 fi
 INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL
-
 if test -n "$INTLTOOL_PERL"; then
-  echo "$as_me:$LINENO: result: $INTLTOOL_PERL" >&5
-echo "${ECHO_T}$INTLTOOL_PERL" >&6
+  echo "$as_me:$LINENO: result: $INTLTOOL_PERL" >&5
+echo "${ECHO_T}$INTLTOOL_PERL" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
 if test -z "$INTLTOOL_PERL"; then
    { { echo "$as_me:$LINENO: error: perl not found; required for intltool" >&5
 echo "$as_me: error: perl not found; required for intltool" >&2;}
@@ -7427,7 +8637,7 @@ fi
 
 # Manually sed perl in so people don't have to put the intltool scripts in AC_OUTPUT.
 
-          ac_config_commands="$ac_config_commands default-1"
+ac_config_commands="$ac_config_commands default-1"
 
 
 
@@ -7448,8 +8658,8 @@ ALL_LINGUAS="ca da de es et fi fr hu it ja ko nb nl no pl pt pt_BR ru sk sv vi w
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_RANLIB+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -7462,32 +8672,34 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 RANLIB=$ac_cv_prog_RANLIB
 if test -n "$RANLIB"; then
-  echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6
+  echo "$as_me:$LINENO: result: $RANLIB" >&5
+echo "${ECHO_T}$RANLIB" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
 fi
 if test -z "$ac_cv_prog_RANLIB"; then
   ac_ct_RANLIB=$RANLIB
   # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -7500,33 +8712,47 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_RANLIB="ranlib"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
-  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
 fi
 fi
 ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 if test -n "$ac_ct_RANLIB"; then
-  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6
+  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+echo "${ECHO_T}$ac_ct_RANLIB" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
-  RANLIB=$ac_ct_RANLIB
+  if test "x$ac_ct_RANLIB" = x; then
+    RANLIB=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    RANLIB=$ac_ct_RANLIB
+  fi
 else
   RANLIB="$ac_cv_prog_RANLIB"
 fi
 
-echo "$as_me:$LINENO: checking for off_t" >&5
-echo $ECHO_N "checking for off_t... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for off_t" >&5
+echo $ECHO_N "checking for off_t... $ECHO_C" >&6; }
 if test "${ac_cv_type_off_t+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -7537,36 +8763,49 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 $ac_includes_default
+typedef off_t ac__type_new_;
 int
 main ()
 {
-if ((off_t *) 0)
+if ((ac__type_new_ *) 0)
   return 0;
-if (sizeof (off_t))
+if (sizeof (ac__type_new_))
   return 0;
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -7575,26 +8814,27 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_type_off_t=no
+       ac_cv_type_off_t=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
-echo "${ECHO_T}$ac_cv_type_off_t" >&6
+echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
+echo "${ECHO_T}$ac_cv_type_off_t" >&6; }
 if test $ac_cv_type_off_t = yes; then
   :
 else
 
 cat >>confdefs.h <<_ACEOF
-#define off_t long
+#define off_t long int
 _ACEOF
 
 fi
 
 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 # for constant arguments.  Useless!
-echo "$as_me:$LINENO: checking for working alloca.h" >&5
-echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for working alloca.h" >&5
+echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6; }
 if test "${ac_cv_working_alloca_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -7609,29 +8849,42 @@ int
 main ()
 {
 char *p = (char *) alloca (2 * sizeof (int));
+                         if (p) return 0;
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -7640,13 +8893,14 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_working_alloca_h=no
+       ac_cv_working_alloca_h=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5
-echo "${ECHO_T}$ac_cv_working_alloca_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5
+echo "${ECHO_T}$ac_cv_working_alloca_h" >&6; }
 if test $ac_cv_working_alloca_h = yes; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -7655,8 +8909,8 @@ _ACEOF
 
 fi
 
-echo "$as_me:$LINENO: checking for alloca" >&5
-echo $ECHO_N "checking for alloca... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for alloca" >&5
+echo $ECHO_N "checking for alloca... $ECHO_C" >&6; }
 if test "${ac_cv_func_alloca_works+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -7691,29 +8945,42 @@ int
 main ()
 {
 char *p = (char *) alloca (1);
+                                   if (p) return 0;
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -7722,13 +8989,14 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_func_alloca_works=no
+       ac_cv_func_alloca_works=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5
-echo "${ECHO_T}$ac_cv_func_alloca_works" >&6
+echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5
+echo "${ECHO_T}$ac_cv_func_alloca_works" >&6; }
 
 if test $ac_cv_func_alloca_works = yes; then
 
@@ -7742,15 +9010,15 @@ else
 # contain a buggy version.  If you still want to use their alloca,
 # use ar to extract alloca.o from them instead of compiling alloca.c.
 
-ALLOCA=alloca.$ac_objext
+ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
 
 cat >>confdefs.h <<\_ACEOF
 #define C_ALLOCA 1
 _ACEOF
 
 
-echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5
-echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5
+echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6; }
 if test "${ac_cv_os_cray+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -7760,7 +9028,7 @@ _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#if defined(CRAY) && ! defined(CRAY2)
+#if defined CRAY && ! defined CRAY2
 webecray
 #else
 wenotbecray
@@ -7776,14 +9044,14 @@ fi
 rm -f conftest*
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5
-echo "${ECHO_T}$ac_cv_os_cray" >&6
+echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5
+echo "${ECHO_T}$ac_cv_os_cray" >&6; }
 if test $ac_cv_os_cray = yes; then
   for ac_func in _getb67 GETB67 getb67; do
     as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -7809,53 +9077,59 @@ cat >>conftest.$ac_ext <<_ACEOF
 
 #undef $ac_func
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
-{
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char $ac_func ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+#if defined __stub_$ac_func || defined __stub___$ac_func
 choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
 #endif
 
 int
 main ()
 {
-return f != $ac_func;
+return $ac_func ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -7864,13 +9138,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_var=no"
+       eval "$as_ac_var=no"
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ac_res=`eval echo '${'$as_ac_var'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 if test `eval echo '${'$as_ac_var'}'` = yes; then
 
 cat >>confdefs.h <<_ACEOF
@@ -7883,8 +9159,8 @@ fi
   done
 fi
 
-echo "$as_me:$LINENO: checking stack direction for C alloca" >&5
-echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking stack direction for C alloca" >&5
+echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6; }
 if test "${ac_cv_c_stack_direction+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -7897,6 +9173,7 @@ _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+$ac_includes_default
 int
 find_stack_direction ()
 {
@@ -7914,17 +9191,26 @@ find_stack_direction ()
 int
 main ()
 {
-  exit (find_stack_direction () < 0);
+  return find_stack_direction () < 0;
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -7937,11 +9223,13 @@ sed 's/^/| /' conftest.$ac_ext >&5
 ( exit $ac_status )
 ac_cv_c_stack_direction=-1
 fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
+
+
 fi
-echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5
-echo "${ECHO_T}$ac_cv_c_stack_direction" >&6
+echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5
+echo "${ECHO_T}$ac_cv_c_stack_direction" >&6; }
 
 cat >>confdefs.h <<_ACEOF
 #define STACK_DIRECTION $ac_cv_c_stack_direction
@@ -7955,18 +9243,19 @@ fi
 for ac_header in stdlib.h unistd.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -7977,24 +9266,36 @@ $ac_includes_default
 #include <$ac_header>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -8003,15 +9304,16 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+       ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
 
 # Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -8020,8 +9322,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -8045,9 +9352,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -8071,25 +9379,19 @@ echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\
 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 
 fi
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
@@ -8105,9 +9407,9 @@ done
 for ac_func in getpagesize
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -8133,53 +9435,59 @@ cat >>conftest.$ac_ext <<_ACEOF
 
 #undef $ac_func
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
-{
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char $ac_func ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+#if defined __stub_$ac_func || defined __stub___$ac_func
 choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
 #endif
 
 int
 main ()
 {
-return f != $ac_func;
+return $ac_func ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -8188,13 +9496,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_var=no"
+       eval "$as_ac_var=no"
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ac_res=`eval echo '${'$as_ac_var'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
 #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
@@ -8203,8 +9513,8 @@ _ACEOF
 fi
 done
 
-echo "$as_me:$LINENO: checking for working mmap" >&5
-echo $ECHO_N "checking for working mmap... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for working mmap" >&5
+echo $ECHO_N "checking for working mmap... $ECHO_C" >&6; }
 if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -8299,15 +9609,15 @@ main ()
   /* First, make a file with some known garbage in it. */
   data = (char *) malloc (pagesize);
   if (!data)
-    exit (1);
+    return 1;
   for (i = 0; i < pagesize; ++i)
     *(data + i) = rand ();
   umask (0);
   fd = creat ("conftest.mmap", 0600);
   if (fd < 0)
-    exit (1);
+    return 1;
   if (write (fd, data, pagesize) != pagesize)
-    exit (1);
+    return 1;
   close (fd);
 
   /* Next, try to mmap the file at a fixed address which already has
@@ -8315,17 +9625,17 @@ main ()
      we see the same garbage.  */
   fd = open ("conftest.mmap", O_RDWR);
   if (fd < 0)
-    exit (1);
+    return 1;
   data2 = (char *) malloc (2 * pagesize);
   if (!data2)
-    exit (1);
-  data2 += (pagesize - ((long) data2 & (pagesize - 1))) & (pagesize - 1);
+    return 1;
+  data2 += (pagesize - ((long int) data2 & (pagesize - 1))) & (pagesize - 1);
   if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
                     MAP_PRIVATE | MAP_FIXED, fd, 0L))
-    exit (1);
+    return 1;
   for (i = 0; i < pagesize; ++i)
     if (*(data + i) != *(data2 + i))
-      exit (1);
+      return 1;
 
   /* Finally, make sure that changes to the mapped area do not
      percolate back to the file as seen by read().  (This is a bug on
@@ -8334,24 +9644,33 @@ main ()
     *(data2 + i) = *(data2 + i) + 1;
   data3 = (char *) malloc (pagesize);
   if (!data3)
-    exit (1);
+    return 1;
   if (read (fd, data3, pagesize) != pagesize)
-    exit (1);
+    return 1;
   for (i = 0; i < pagesize; ++i)
     if (*(data + i) != *(data3 + i))
-      exit (1);
+      return 1;
   close (fd);
-  exit (0);
+  return 0;
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -8364,11 +9683,13 @@ sed 's/^/| /' conftest.$ac_ext >&5
 ( exit $ac_status )
 ac_cv_func_mmap_fixed_mapped=no
 fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
+
+
 fi
-echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5
-echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6
+echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5
+echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6; }
 if test $ac_cv_func_mmap_fixed_mapped = yes; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -8391,18 +9712,19 @@ for ac_header in argz.h limits.h locale.h nl_types.h malloc.h string.h \
 unistd.h sys/param.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -8413,24 +9735,36 @@ $ac_includes_default
 #include <$ac_header>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -8439,15 +9773,16 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+       ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
 
 # Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -8456,8 +9791,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -8481,9 +9821,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -8507,25 +9848,19 @@ echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\
 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 
 fi
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
@@ -8552,9 +9887,9 @@ for ac_func in getcwd munmap putenv setenv setlocale strchr strcasecmp \
 strdup __argz_count __argz_stringify __argz_next
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -8580,53 +9915,59 @@ cat >>conftest.$ac_ext <<_ACEOF
 
 #undef $ac_func
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
-{
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char $ac_func ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+#if defined __stub_$ac_func || defined __stub___$ac_func
 choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
 #endif
 
 int
 main ()
 {
-return f != $ac_func;
+return $ac_func ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -8635,13 +9976,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_var=no"
+       eval "$as_ac_var=no"
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ac_res=`eval echo '${'$as_ac_var'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
 #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
@@ -8652,8 +9995,8 @@ done
 
 
    if test $ac_cv_header_locale_h = yes; then
-    echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5
-echo $ECHO_N "checking for LC_MESSAGES... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5
+echo $ECHO_N "checking for LC_MESSAGES... $ECHO_C" >&6; }
 if test "${am_cv_val_LC_MESSAGES+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -8673,24 +10016,36 @@ return LC_MESSAGES
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -8699,13 +10054,14 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-am_cv_val_LC_MESSAGES=no
+       am_cv_val_LC_MESSAGES=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5
-echo "${ECHO_T}$am_cv_val_LC_MESSAGES" >&6
+echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5
+echo "${ECHO_T}$am_cv_val_LC_MESSAGES" >&6; }
     if test $am_cv_val_LC_MESSAGES = yes; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -8726,17 +10082,17 @@ _ACEOF
       CATOBJEXT=NONE
 
       if test "${ac_cv_header_libintl_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for libintl.h" >&5
-echo $ECHO_N "checking for libintl.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for libintl.h" >&5
+echo $ECHO_N "checking for libintl.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_libintl_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5
-echo "${ECHO_T}$ac_cv_header_libintl_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5
+echo "${ECHO_T}$ac_cv_header_libintl_h" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking libintl.h usability" >&5
-echo $ECHO_N "checking libintl.h usability... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking libintl.h usability" >&5
+echo $ECHO_N "checking libintl.h usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -8747,24 +10103,36 @@ $ac_includes_default
 #include <libintl.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -8773,15 +10141,16 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+       ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
 
 # Is the header present?
-echo "$as_me:$LINENO: checking libintl.h presence" >&5
-echo $ECHO_N "checking libintl.h presence... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking libintl.h presence" >&5
+echo $ECHO_N "checking libintl.h presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -8790,8 +10159,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <libintl.h>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -8815,9 +10189,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -8841,30 +10216,23 @@ echo "$as_me: WARNING: libintl.h:     section \"Present But Cannot Be Compiled\"
 echo "$as_me: WARNING: libintl.h: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: libintl.h: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: libintl.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for libintl.h" >&5
-echo $ECHO_N "checking for libintl.h... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for libintl.h" >&5
+echo $ECHO_N "checking for libintl.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_libintl_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_cv_header_libintl_h=$ac_header_preproc
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5
-echo "${ECHO_T}$ac_cv_header_libintl_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5
+echo "${ECHO_T}$ac_cv_header_libintl_h" >&6; }
 
 fi
 if test $ac_cv_header_libintl_h = yes; then
-  echo "$as_me:$LINENO: checking for dgettext in libc" >&5
-echo $ECHO_N "checking for dgettext in libc... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for dgettext in libc" >&5
+echo $ECHO_N "checking for dgettext in libc... $ECHO_C" >&6; }
 if test "${gt_cv_func_dgettext_libc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -8884,24 +10252,36 @@ return (int) dgettext ("","")
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -8910,17 +10290,18 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-gt_cv_func_dgettext_libc=no
+       gt_cv_func_dgettext_libc=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $gt_cv_func_dgettext_libc" >&5
-echo "${ECHO_T}$gt_cv_func_dgettext_libc" >&6
+echo "$as_me:$LINENO: result: $gt_cv_func_dgettext_libc" >&5
+echo "${ECHO_T}$gt_cv_func_dgettext_libc" >&6; }
 
          if test "$gt_cv_func_dgettext_libc" != "yes"; then
-           echo "$as_me:$LINENO: checking for bindtextdomain in -lintl" >&5
-echo $ECHO_N "checking for bindtextdomain in -lintl... $ECHO_C" >&6
+           echo "$as_me:$LINENO: checking for bindtextdomain in -lintl" >&5
+echo $ECHO_N "checking for bindtextdomain in -lintl... $ECHO_C" >&6; }
 if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -8933,40 +10314,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char bindtextdomain ();
 int
 main ()
 {
-bindtextdomain ();
+return bindtextdomain ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -8975,22 +10368,23 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_intl_bindtextdomain=no
+       ac_cv_lib_intl_bindtextdomain=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_intl_bindtextdomain" >&5
-echo "${ECHO_T}$ac_cv_lib_intl_bindtextdomain" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_intl_bindtextdomain" >&5
+echo "${ECHO_T}$ac_cv_lib_intl_bindtextdomain" >&6; }
 if test $ac_cv_lib_intl_bindtextdomain = yes; then
-  echo "$as_me:$LINENO: checking for dgettext in libintl" >&5
-echo $ECHO_N "checking for dgettext in libintl... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for dgettext in libintl" >&5
+echo $ECHO_N "checking for dgettext in libintl... $ECHO_C" >&6; }
 if test "${gt_cv_func_dgettext_libintl+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  echo "$as_me:$LINENO: checking for dgettext in -lintl" >&5
-echo $ECHO_N "checking for dgettext in -lintl... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for dgettext in -lintl" >&5
+echo $ECHO_N "checking for dgettext in -lintl... $ECHO_C" >&6; }
 if test "${ac_cv_lib_intl_dgettext+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -9003,40 +10397,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char dgettext ();
 int
 main ()
 {
-dgettext ();
+return dgettext ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -9045,14 +10451,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_intl_dgettext=no
+       ac_cv_lib_intl_dgettext=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5
-echo "${ECHO_T}$ac_cv_lib_intl_dgettext" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5
+echo "${ECHO_T}$ac_cv_lib_intl_dgettext" >&6; }
 if test $ac_cv_lib_intl_dgettext = yes; then
   gt_cv_func_dgettext_libintl=yes
 else
@@ -9060,8 +10467,8 @@ else
 fi
 
 fi
-echo "$as_me:$LINENO: result: $gt_cv_func_dgettext_libintl" >&5
-echo "${ECHO_T}$gt_cv_func_dgettext_libintl" >&6
+echo "$as_me:$LINENO: result: $gt_cv_func_dgettext_libintl" >&5
+echo "${ECHO_T}$gt_cv_func_dgettext_libintl" >&6; }
 fi
 
          fi
@@ -9079,8 +10486,8 @@ _ACEOF
 
            # Extract the first word of "msgfmt", so it can be a program name with args.
 set dummy msgfmt; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_path_MSGFMT+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -9106,20 +10513,20 @@ esac
 fi
 MSGFMT="$ac_cv_path_MSGFMT"
 if test -n "$MSGFMT"; then
-  echo "$as_me:$LINENO: result: $MSGFMT" >&5
-echo "${ECHO_T}$MSGFMT" >&6
+  echo "$as_me:$LINENO: result: $MSGFMT" >&5
+echo "${ECHO_T}$MSGFMT" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
            if test "$MSGFMT" != "no"; then
 
 for ac_func in dcgettext
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -9145,53 +10552,59 @@ cat >>conftest.$ac_ext <<_ACEOF
 
 #undef $ac_func
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
-{
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char $ac_func ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+#if defined __stub_$ac_func || defined __stub___$ac_func
 choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
 #endif
 
 int
 main ()
 {
-return f != $ac_func;
+return $ac_func ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -9200,13 +10613,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_var=no"
+       eval "$as_ac_var=no"
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ac_res=`eval echo '${'$as_ac_var'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
 #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
@@ -9217,8 +10632,8 @@ done
 
              # Extract the first word of "gmsgfmt", so it can be a program name with args.
 set dummy gmsgfmt; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_path_GMSGFMT+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
   test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
   ;;
 esac
 fi
 GMSGFMT=$ac_cv_path_GMSGFMT
-
 if test -n "$GMSGFMT"; then
-  echo "$as_me:$LINENO: result: $GMSGFMT" >&5
-echo "${ECHO_T}$GMSGFMT" >&6
+  echo "$as_me:$LINENO: result: $GMSGFMT" >&5
+echo "${ECHO_T}$GMSGFMT" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
              # Extract the first word of "xgettext", so it can be a program name with args.
 set dummy xgettext; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_path_XGETTEXT+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -9284,11 +10700,11 @@ esac
 fi
 XGETTEXT="$ac_cv_path_XGETTEXT"
 if test -n "$XGETTEXT"; then
-  echo "$as_me:$LINENO: result: $XGETTEXT" >&5
-echo "${ECHO_T}$XGETTEXT" >&6
+  echo "$as_me:$LINENO: result: $XGETTEXT" >&5
+echo "${ECHO_T}$XGETTEXT" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
              cat >conftest.$ac_ext <<_ACEOF
@@ -9308,24 +10724,36 @@ extern int _nl_msg_cat_cntr;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -9335,10 +10763,11 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-CATOBJEXT=.mo
+       CATOBJEXT=.mo
                 DATADIRNAME=lib
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
              INSTOBJEXT=.mo
            fi
@@ -9374,8 +10803,8 @@ _ACEOF
                   if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
         : ;
       else
-        echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5
-echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6
+        echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5
+echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6; }
         XGETTEXT=":"
       fi
     fi
@@ -9383,7 +10812,7 @@ echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6
     # We need to process the po/ directory.
     POSUB=po
 
-              ac_config_commands="$ac_config_commands default-2"
+    ac_config_commands="$ac_config_commands default-2"
 
 
                 for lang in $ALL_LINGUAS; do
@@ -9407,8 +10836,8 @@ echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6
      if test "x$ALL_LINGUAS" = "x"; then
        LINGUAS=
      else
-       echo "$as_me:$LINENO: checking for catalogs to be installed" >&5
-echo $ECHO_N "checking for catalogs to be installed... $ECHO_C" >&6
+       echo "$as_me:$LINENO: checking for catalogs to be installed" >&5
+echo $ECHO_N "checking for catalogs to be installed... $ECHO_C" >&6; }
        NEW_LINGUAS=
        for lang in ${LINGUAS=$ALL_LINGUAS}; do
          case "$ALL_LINGUAS" in
@@ -9416,8 +10845,8 @@ echo $ECHO_N "checking for catalogs to be installed... $ECHO_C" >&6
          esac
        done
        LINGUAS=$NEW_LINGUAS
-       echo "$as_me:$LINENO: result: $LINGUAS" >&5
-echo "${ECHO_T}$LINGUAS" >&6
+       echo "$as_me:$LINENO: result: $LINGUAS" >&5
+echo "${ECHO_T}$LINGUAS" >&6; }
      fi
 
           if test -n "$LINGUAS"; then
@@ -9428,17 +10857,17 @@ echo "${ECHO_T}$LINGUAS" >&6
             test -d po || mkdir po
    if test "$CATOBJEXT" = ".cat"; then
      if test "${ac_cv_header_linux_version_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for linux/version.h" >&5
-echo $ECHO_N "checking for linux/version.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for linux/version.h" >&5
+echo $ECHO_N "checking for linux/version.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_linux_version_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_linux_version_h" >&5
-echo "${ECHO_T}$ac_cv_header_linux_version_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_linux_version_h" >&5
+echo "${ECHO_T}$ac_cv_header_linux_version_h" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking linux/version.h usability" >&5
-echo $ECHO_N "checking linux/version.h usability... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking linux/version.h usability" >&5
+echo $ECHO_N "checking linux/version.h usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -9449,24 +10878,36 @@ $ac_includes_default
 #include <linux/version.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -9475,15 +10916,16 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+       ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
 
 # Is the header present?
-echo "$as_me:$LINENO: checking linux/version.h presence" >&5
-echo $ECHO_N "checking linux/version.h presence... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking linux/version.h presence" >&5
+echo $ECHO_N "checking linux/version.h presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -9492,8 +10934,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <linux/version.h>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -9517,9 +10964,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -9543,25 +10991,18 @@ echo "$as_me: WARNING: linux/version.h:     section \"Present But Cannot Be Comp
 echo "$as_me: WARNING: linux/version.h: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: linux/version.h: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: linux/version.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for linux/version.h" >&5
-echo $ECHO_N "checking for linux/version.h... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for linux/version.h" >&5
+echo $ECHO_N "checking for linux/version.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_linux_version_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_cv_header_linux_version_h=$ac_header_preproc
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_linux_version_h" >&5
-echo "${ECHO_T}$ac_cv_header_linux_version_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_linux_version_h" >&5
+echo "${ECHO_T}$ac_cv_header_linux_version_h" >&6; }
 
 fi
 if test $ac_cv_header_linux_version_h = yes; then
@@ -9624,8 +11065,8 @@ have_xmu=no
     CPPFLAGS="$CPPFLAGS -I$includedir"
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-  echo "$as_me:$LINENO: checking for X11/Xmu/Error.h" >&5
-echo $ECHO_N "checking for X11/Xmu/Error.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for X11/Xmu/Error.h" >&5
+echo $ECHO_N "checking for X11/Xmu/Error.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_X11_Xmu_Error_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -9642,24 +11083,36 @@ cat >>conftest.$ac_ext <<_ACEOF
 #include <X11/Xmu/Error.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -9668,12 +11121,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_X11_Xmu_Error_h=no
+       ac_cv_header_X11_Xmu_Error_h=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_X11_Xmu_Error_h" >&5
-echo "${ECHO_T}$ac_cv_header_X11_Xmu_Error_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_X11_Xmu_Error_h" >&5
+echo "${ECHO_T}$ac_cv_header_X11_Xmu_Error_h" >&6; }
 if test $ac_cv_header_X11_Xmu_Error_h = yes; then
   have_xmu=yes
 fi
@@ -9706,8 +11160,8 @@ fi
 if test "$have_xmu" = yes ; then
   case "$host" in
     *-sunos4*)
-    echo "$as_me:$LINENO: checking for the SunOS 4.1.x _get_wmShellWidgetClass bug" >&5
-echo $ECHO_N "checking for the SunOS 4.1.x _get_wmShellWidgetClass bug... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for the SunOS 4.1.x _get_wmShellWidgetClass bug" >&5
+echo $ECHO_N "checking for the SunOS 4.1.x _get_wmShellWidgetClass bug... $ECHO_C" >&6; }
 if test "${ac_cv_sunos_xmu_bug+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -9735,24 +11189,36 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -9761,17 +11227,18 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_sunos_xmu_bug=yes
+       ac_cv_sunos_xmu_bug=yes
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
                     LDFLAGS="$ac_save_LDFLAGS"
 fi
-echo "$as_me:$LINENO: result: $ac_cv_sunos_xmu_bug" >&5
-echo "${ECHO_T}$ac_cv_sunos_xmu_bug" >&6
+echo "$as_me:$LINENO: result: $ac_cv_sunos_xmu_bug" >&5
+echo "${ECHO_T}$ac_cv_sunos_xmu_bug" >&6; }
     if test "$ac_cv_sunos_xmu_bug" = yes ; then
-      echo "$as_me:$LINENO: checking whether the compiler understands -static" >&5
-echo $ECHO_N "checking whether the compiler understands -static... $ECHO_C" >&6
+      echo "$as_me:$LINENO: checking whether the compiler understands -static" >&5
+echo $ECHO_N "checking whether the compiler understands -static... $ECHO_C" >&6; }
 if test "${ac_cv_ld_static+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -9793,24 +11260,36 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -9819,14 +11298,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_ld_static=no
+       ac_cv_ld_static=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
                     LDFLAGS="$ac_save_LDFLAGS"
 fi
-echo "$as_me:$LINENO: result: $ac_cv_ld_static" >&5
-echo "${ECHO_T}$ac_cv_ld_static" >&6
+echo "$as_me:$LINENO: result: $ac_cv_ld_static" >&5
+echo "${ECHO_T}$ac_cv_ld_static" >&6; }
       if test "$ac_cv_ld_static" = yes ; then
         LDFLAGS="$LDFLAGS -static"
       else
 have_hackdir=yes
 with_hackdir_req=unspecified
 
-# Check whether --with-hackdir or --without-hackdir was given.
+# Check whether --with-hackdir was given.
 if test "${with_hackdir+set}" = set; then
-  withval="$with_hackdir"
-  with_hackdir="$withval"; with_hackdir_req="$withval"
+  withval=$with_hackdir; with_hackdir="$withval"; with_hackdir_req="$withval"
 else
   with_hackdir=yes
-fi;
+fi
+
 
 if test x"$with_hackdir" = xyes; then
   HACKDIR='${libexecdir}/xscreensaver'
@@ -9875,11 +11355,11 @@ eval HACKDIR_FULL=${HACKDIR_FULL}
 # used, since configure brain-damagedly ignores unknown --enable options.
 
 obsolete_enable=
-# Check whether --enable-subdir or --disable-subdir was given.
+# Check whether --enable-subdir was given.
 if test "${enable_subdir+set}" = set; then
-  enableval="$enable_subdir"
-  obsolete_enable=yes
-fi;
+  enableval=$enable_subdir; obsolete_enable=yes
+fi
+
 if test -n "$obsolete_enable"; then
   echo "error: the --enable-subdir option has been replaced with"
   echo "       the new --with-hackdir option; see \`configure --help'"
 have_configdir=yes
 with_configdir_req=unspecified
 
-# Check whether --with-configdir or --without-configdir was given.
+# Check whether --with-configdir was given.
 if test "${with_configdir+set}" = set; then
-  withval="$with_configdir"
-  with_configdir="$withval"; with_configdir_req="$withval"
+  withval=$with_configdir; with_configdir="$withval"; with_configdir_req="$withval"
 else
   with_configdir=yes
-fi;
+fi
+
 
 if test x"$with_configdir" = xyes; then
   HACK_CONF_DIR='${datadir}/xscreensaver/config'
 have_sgi=no
 with_sgi_req=unspecified
 
-# Check whether --with-sgi-ext or --without-sgi-ext was given.
+# Check whether --with-sgi-ext was given.
 if test "${with_sgi_ext+set}" = set; then
-  withval="$with_sgi_ext"
-  with_sgi="$withval"; with_sgi_req="$withval"
+  withval=$with_sgi_ext; with_sgi="$withval"; with_sgi_req="$withval"
 else
   with_sgi=yes
-fi;
+fi
+
 
 
    case "$with_sgi" in
@@ -9948,28 +11428,28 @@ fi;
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for SGI SCREEN_SAVER headers" >&5
-echo $ECHO_N "checking for SGI SCREEN_SAVER headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for SGI SCREEN_SAVER headers" >&5
+echo $ECHO_N "checking for SGI SCREEN_SAVER headers... $ECHO_C" >&6; }
      d=$with_sgi/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for SGI SCREEN_SAVER libs" >&5
-echo $ECHO_N "checking for SGI SCREEN_SAVER libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for SGI SCREEN_SAVER libs" >&5
+echo $ECHO_N "checking for SGI SCREEN_SAVER libs... $ECHO_C" >&6; }
      d=$with_sgi/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -9994,8 +11474,8 @@ if test "$with_sgi" = yes; then
     CPPFLAGS="$CPPFLAGS -I$includedir"
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-  echo "$as_me:$LINENO: checking for X11/extensions/XScreenSaver.h" >&5
-echo $ECHO_N "checking for X11/extensions/XScreenSaver.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for X11/extensions/XScreenSaver.h" >&5
+echo $ECHO_N "checking for X11/extensions/XScreenSaver.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_X11_extensions_XScreenSaver_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -10010,24 +11490,36 @@ cat >>conftest.$ac_ext <<_ACEOF
 #include <X11/extensions/XScreenSaver.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -10036,12 +11528,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_X11_extensions_XScreenSaver_h=no
+       ac_cv_header_X11_extensions_XScreenSaver_h=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_XScreenSaver_h" >&5
-echo "${ECHO_T}$ac_cv_header_X11_extensions_XScreenSaver_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_XScreenSaver_h" >&5
+echo "${ECHO_T}$ac_cv_header_X11_extensions_XScreenSaver_h" >&6; }
 if test $ac_cv_header_X11_extensions_XScreenSaver_h = yes; then
   have_sgi=yes
                      cat >>confdefs.h <<\_ACEOF
 have_xidle=no
 with_xidle_req=unspecified
 
-# Check whether --with-xidle-ext or --without-xidle-ext was given.
+# Check whether --with-xidle-ext was given.
 if test "${with_xidle_ext+set}" = set; then
-  withval="$with_xidle_ext"
-  with_xidle="$withval"; with_xidle_req="$withval"
+  withval=$with_xidle_ext; with_xidle="$withval"; with_xidle_req="$withval"
 else
   with_xidle=yes
-fi;
+fi
+
 
 
    case "$with_xidle" in
@@ -10082,28 +11575,28 @@ fi;
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for XIDLE headers" >&5
-echo $ECHO_N "checking for XIDLE headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for XIDLE headers" >&5
+echo $ECHO_N "checking for XIDLE headers... $ECHO_C" >&6; }
      d=$with_xidle/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for XIDLE libs" >&5
-echo $ECHO_N "checking for XIDLE libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for XIDLE libs" >&5
+echo $ECHO_N "checking for XIDLE libs... $ECHO_C" >&6; }
      d=$with_xidle/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -10128,8 +11621,8 @@ if test "$with_xidle" = yes; then
     CPPFLAGS="$CPPFLAGS -I$includedir"
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-  echo "$as_me:$LINENO: checking for X11/extensions/xidle.h" >&5
-echo $ECHO_N "checking for X11/extensions/xidle.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for X11/extensions/xidle.h" >&5
+echo $ECHO_N "checking for X11/extensions/xidle.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_X11_extensions_xidle_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -10144,24 +11637,36 @@ cat >>conftest.$ac_ext <<_ACEOF
 #include <X11/extensions/xidle.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -10170,12 +11675,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_X11_extensions_xidle_h=no
+       ac_cv_header_X11_extensions_xidle_h=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_xidle_h" >&5
-echo "${ECHO_T}$ac_cv_header_X11_extensions_xidle_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_xidle_h" >&5
+echo "${ECHO_T}$ac_cv_header_X11_extensions_xidle_h" >&6; }
 if test $ac_cv_header_X11_extensions_xidle_h = yes; then
   have_xidle=yes
                      cat >>confdefs.h <<\_ACEOF
 have_sgivc=no
 with_sgivc_req=unspecified
 
-# Check whether --with-sgivc-ext or --without-sgivc-ext was given.
+# Check whether --with-sgivc-ext was given.
 if test "${with_sgivc_ext+set}" = set; then
-  withval="$with_sgivc_ext"
-  with_sgivc="$withval"; with_sgivc_req="$withval"
+  withval=$with_sgivc_ext; with_sgivc="$withval"; with_sgivc_req="$withval"
 else
   with_sgivc=yes
-fi;
+fi
+
 
 
    case "$with_sgivc" in
@@ -10215,28 +11721,28 @@ fi;
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for SGI-VIDEO-CONTROL headers" >&5
-echo $ECHO_N "checking for SGI-VIDEO-CONTROL headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for SGI-VIDEO-CONTROL headers" >&5
+echo $ECHO_N "checking for SGI-VIDEO-CONTROL headers... $ECHO_C" >&6; }
      d=$with_sgivc/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for SGI-VIDEO-CONTROL libs" >&5
-echo $ECHO_N "checking for SGI-VIDEO-CONTROL libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for SGI-VIDEO-CONTROL libs" >&5
+echo $ECHO_N "checking for SGI-VIDEO-CONTROL libs... $ECHO_C" >&6; }
      d=$with_sgivc/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -10263,8 +11769,8 @@ if test "$with_sgivc" = yes; then
     CPPFLAGS="$CPPFLAGS -I$includedir"
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-  echo "$as_me:$LINENO: checking for X11/extensions/XSGIvc.h" >&5
-echo $ECHO_N "checking for X11/extensions/XSGIvc.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for X11/extensions/XSGIvc.h" >&5
+echo $ECHO_N "checking for X11/extensions/XSGIvc.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_X11_extensions_XSGIvc_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -10279,24 +11785,36 @@ cat >>conftest.$ac_ext <<_ACEOF
 #include <X11/extensions/XSGIvc.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -10305,12 +11823,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_X11_extensions_XSGIvc_h=no
+       ac_cv_header_X11_extensions_XSGIvc_h=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_XSGIvc_h" >&5
-echo "${ECHO_T}$ac_cv_header_X11_extensions_XSGIvc_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_XSGIvc_h" >&5
+echo "${ECHO_T}$ac_cv_header_X11_extensions_XSGIvc_h" >&6; }
 if test $ac_cv_header_X11_extensions_XSGIvc_h = yes; then
   have_sgivc=yes
 fi
@@ -10338,8 +11857,8 @@ fi
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for XSGIvcQueryGammaMap in -lXsgivc" >&5
-echo $ECHO_N "checking for XSGIvcQueryGammaMap in -lXsgivc... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for XSGIvcQueryGammaMap in -lXsgivc" >&5
+echo $ECHO_N "checking for XSGIvcQueryGammaMap in -lXsgivc... $ECHO_C" >&6; }
 if test "${ac_cv_lib_Xsgivc_XSGIvcQueryGammaMap+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -10352,40 +11871,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char XSGIvcQueryGammaMap ();
 int
 main ()
 {
-XSGIvcQueryGammaMap ();
+return XSGIvcQueryGammaMap ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -10394,14 +11925,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_Xsgivc_XSGIvcQueryGammaMap=no
+       ac_cv_lib_Xsgivc_XSGIvcQueryGammaMap=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_Xsgivc_XSGIvcQueryGammaMap" >&5
-echo "${ECHO_T}$ac_cv_lib_Xsgivc_XSGIvcQueryGammaMap" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_Xsgivc_XSGIvcQueryGammaMap" >&5
+echo "${ECHO_T}$ac_cv_lib_Xsgivc_XSGIvcQueryGammaMap" >&6; }
 if test $ac_cv_lib_Xsgivc_XSGIvcQueryGammaMap = yes; then
   have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"
 else
 have_dpms=no
 with_dpms_req=unspecified
 
-# Check whether --with-dpms-ext or --without-dpms-ext was given.
+# Check whether --with-dpms-ext was given.
 if test "${with_dpms_ext+set}" = set; then
-  withval="$with_dpms_ext"
-  with_dpms="$withval"; with_dpms_req="$withval"
+  withval=$with_dpms_ext; with_dpms="$withval"; with_dpms_req="$withval"
 else
   with_dpms=yes
-fi;
+fi
+
 
 
    case "$with_dpms" in
@@ -10451,28 +11983,28 @@ fi;
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for DPMS headers" >&5
-echo $ECHO_N "checking for DPMS headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for DPMS headers" >&5
+echo $ECHO_N "checking for DPMS headers... $ECHO_C" >&6; }
      d=$with_dpms/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for DPMS libs" >&5
-echo $ECHO_N "checking for DPMS libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for DPMS libs" >&5
+echo $ECHO_N "checking for DPMS libs... $ECHO_C" >&6; }
      d=$with_dpms/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -10499,8 +12031,8 @@ if test "$with_dpms" = yes; then
     CPPFLAGS="$CPPFLAGS -I$includedir"
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-  echo "$as_me:$LINENO: checking for X11/extensions/dpms.h" >&5
-echo $ECHO_N "checking for X11/extensions/dpms.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for X11/extensions/dpms.h" >&5
+echo $ECHO_N "checking for X11/extensions/dpms.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_X11_extensions_dpms_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -10516,24 +12048,36 @@ cat >>conftest.$ac_ext <<_ACEOF
 #include <X11/extensions/dpms.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -10542,12 +12086,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_X11_extensions_dpms_h=no
+       ac_cv_header_X11_extensions_dpms_h=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_dpms_h" >&5
-echo "${ECHO_T}$ac_cv_header_X11_extensions_dpms_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_dpms_h" >&5
+echo "${ECHO_T}$ac_cv_header_X11_extensions_dpms_h" >&6; }
 if test $ac_cv_header_X11_extensions_dpms_h = yes; then
   have_dpms=yes
 fi
@@ -10577,8 +12122,8 @@ fi
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for DPMSInfo in -lXext" >&5
-echo $ECHO_N "checking for DPMSInfo in -lXext... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for DPMSInfo in -lXext" >&5
+echo $ECHO_N "checking for DPMSInfo in -lXext... $ECHO_C" >&6; }
 if test "${ac_cv_lib_Xext_DPMSInfo+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -10591,40 +12136,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char DPMSInfo ();
 int
 main ()
 {
-DPMSInfo ();
+return DPMSInfo ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -10633,14 +12190,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_Xext_DPMSInfo=no
+       ac_cv_lib_Xext_DPMSInfo=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_Xext_DPMSInfo" >&5
-echo "${ECHO_T}$ac_cv_lib_Xext_DPMSInfo" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_Xext_DPMSInfo" >&5
+echo "${ECHO_T}$ac_cv_lib_Xext_DPMSInfo" >&6; }
 if test $ac_cv_lib_Xext_DPMSInfo = yes; then
   have_dpms=yes
 else
@@ -10671,8 +12229,8 @@ fi
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for DPMSInfo in -lXdpms" >&5
-echo $ECHO_N "checking for DPMSInfo in -lXdpms... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for DPMSInfo in -lXdpms" >&5
+echo $ECHO_N "checking for DPMSInfo in -lXdpms... $ECHO_C" >&6; }
 if test "${ac_cv_lib_Xdpms_DPMSInfo+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -10685,40 +12243,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char DPMSInfo ();
 int
 main ()
 {
-DPMSInfo ();
+return DPMSInfo ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -10727,14 +12297,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_Xdpms_DPMSInfo=no
+       ac_cv_lib_Xdpms_DPMSInfo=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_Xdpms_DPMSInfo" >&5
-echo "${ECHO_T}$ac_cv_lib_Xdpms_DPMSInfo" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_Xdpms_DPMSInfo" >&5
+echo "${ECHO_T}$ac_cv_lib_Xdpms_DPMSInfo" >&6; }
 if test $ac_cv_lib_Xdpms_DPMSInfo = yes; then
   have_dpms=yes; XDPMS_LIBS="-lXdpms"
 else
 have_xinerama=no
 with_xinerama_req=unspecified
 
-# Check whether --with-xinerama-ext or --without-xinerama-ext was given.
+# Check whether --with-xinerama-ext was given.
 if test "${with_xinerama_ext+set}" = set; then
-  withval="$with_xinerama_ext"
-  with_xinerama="$withval"; with_xinerama_req="$withval"
+  withval=$with_xinerama_ext; with_xinerama="$withval"; with_xinerama_req="$withval"
 else
   with_xinerama=yes
-fi;
+fi
+
 
 
    case "$with_xinerama" in
@@ -10786,28 +12357,28 @@ fi;
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for XINERAMA headers" >&5
-echo $ECHO_N "checking for XINERAMA headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for XINERAMA headers" >&5
+echo $ECHO_N "checking for XINERAMA headers... $ECHO_C" >&6; }
      d=$with_xinerama/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for XINERAMA libs" >&5
-echo $ECHO_N "checking for XINERAMA libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for XINERAMA libs" >&5
+echo $ECHO_N "checking for XINERAMA libs... $ECHO_C" >&6; }
      d=$with_xinerama/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -10834,8 +12405,8 @@ if test "$with_xinerama" = yes; then
     CPPFLAGS="$CPPFLAGS -I$includedir"
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-  echo "$as_me:$LINENO: checking for X11/extensions/Xinerama.h" >&5
-echo $ECHO_N "checking for X11/extensions/Xinerama.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for X11/extensions/Xinerama.h" >&5
+echo $ECHO_N "checking for X11/extensions/Xinerama.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_X11_extensions_Xinerama_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -10850,24 +12421,36 @@ cat >>conftest.$ac_ext <<_ACEOF
 #include <X11/extensions/Xinerama.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -10876,12 +12459,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_X11_extensions_Xinerama_h=no
+       ac_cv_header_X11_extensions_Xinerama_h=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_Xinerama_h" >&5
-echo "${ECHO_T}$ac_cv_header_X11_extensions_Xinerama_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_Xinerama_h" >&5
+echo "${ECHO_T}$ac_cv_header_X11_extensions_Xinerama_h" >&6; }
 if test $ac_cv_header_X11_extensions_Xinerama_h = yes; then
   have_xinerama=yes
 fi
@@ -10911,8 +12495,8 @@ fi
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for XineramaQueryScreens in -lXext" >&5
-echo $ECHO_N "checking for XineramaQueryScreens in -lXext... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for XineramaQueryScreens in -lXext" >&5
+echo $ECHO_N "checking for XineramaQueryScreens in -lXext... $ECHO_C" >&6; }
 if test "${ac_cv_lib_Xext_XineramaQueryScreens+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -10925,40 +12509,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char XineramaQueryScreens ();
 int
 main ()
 {
-XineramaQueryScreens ();
+return XineramaQueryScreens ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -10967,14 +12563,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_Xext_XineramaQueryScreens=no
+       ac_cv_lib_Xext_XineramaQueryScreens=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_Xext_XineramaQueryScreens" >&5
-echo "${ECHO_T}$ac_cv_lib_Xext_XineramaQueryScreens" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_Xext_XineramaQueryScreens" >&5
+echo "${ECHO_T}$ac_cv_lib_Xext_XineramaQueryScreens" >&6; }
 if test $ac_cv_lib_Xext_XineramaQueryScreens = yes; then
   have_xinerama=yes
 else
@@ -11005,8 +12602,8 @@ fi
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for XineramaQueryScreens in -lXinerama" >&5
-echo $ECHO_N "checking for XineramaQueryScreens in -lXinerama... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for XineramaQueryScreens in -lXinerama" >&5
+echo $ECHO_N "checking for XineramaQueryScreens in -lXinerama... $ECHO_C" >&6; }
 if test "${ac_cv_lib_Xinerama_XineramaQueryScreens+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -11019,40 +12616,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char XineramaQueryScreens ();
 int
 main ()
 {
-XineramaQueryScreens ();
+return XineramaQueryScreens ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -11061,14 +12670,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_Xinerama_XineramaQueryScreens=no
+       ac_cv_lib_Xinerama_XineramaQueryScreens=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_Xinerama_XineramaQueryScreens" >&5
-echo "${ECHO_T}$ac_cv_lib_Xinerama_XineramaQueryScreens" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_Xinerama_XineramaQueryScreens" >&5
+echo "${ECHO_T}$ac_cv_lib_Xinerama_XineramaQueryScreens" >&6; }
 if test $ac_cv_lib_Xinerama_XineramaQueryScreens = yes; then
   have_xinerama=yes; XINERAMA_LIBS="-lXinerama"
 else
 have_xf86vmode=no
 with_xf86vmode_req=unspecified
 
-# Check whether --with-xf86vmode-ext or --without-xf86vmode-ext was given.
+# Check whether --with-xf86vmode-ext was given.
 if test "${with_xf86vmode_ext+set}" = set; then
-  withval="$with_xf86vmode_ext"
-  with_xf86vmode="$withval"; with_xf86vmode_req="$withval"
+  withval=$with_xf86vmode_ext; with_xf86vmode="$withval"; with_xf86vmode_req="$withval"
 else
   with_xf86vmode=yes
-fi;
+fi
+
 
 
    case "$with_xf86vmode" in
@@ -11119,28 +12729,28 @@ fi;
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for xf86vmode headers" >&5
-echo $ECHO_N "checking for xf86vmode headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for xf86vmode headers" >&5
+echo $ECHO_N "checking for xf86vmode headers... $ECHO_C" >&6; }
      d=$with_xf86vmode/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for xf86vmode libs" >&5
-echo $ECHO_N "checking for xf86vmode libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for xf86vmode libs" >&5
+echo $ECHO_N "checking for xf86vmode libs... $ECHO_C" >&6; }
      d=$with_xf86vmode/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -11169,8 +12779,8 @@ if test "$with_xf86vmode" = yes; then
     CPPFLAGS="$CPPFLAGS -I$includedir"
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-  echo "$as_me:$LINENO: checking for X11/extensions/xf86vmode.h" >&5
-echo $ECHO_N "checking for X11/extensions/xf86vmode.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for X11/extensions/xf86vmode.h" >&5
+echo $ECHO_N "checking for X11/extensions/xf86vmode.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_X11_extensions_xf86vmode_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -11185,24 +12795,36 @@ cat >>conftest.$ac_ext <<_ACEOF
 #include <X11/extensions/xf86vmode.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -11211,12 +12833,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_X11_extensions_xf86vmode_h=no
+       ac_cv_header_X11_extensions_xf86vmode_h=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_xf86vmode_h" >&5
-echo "${ECHO_T}$ac_cv_header_X11_extensions_xf86vmode_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_xf86vmode_h" >&5
+echo "${ECHO_T}$ac_cv_header_X11_extensions_xf86vmode_h" >&6; }
 if test $ac_cv_header_X11_extensions_xf86vmode_h = yes; then
   have_xf86vmode=yes
 fi
@@ -11244,8 +12867,8 @@ fi
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for XF86VidModeGetViewPort in -lXxf86vm" >&5
-echo $ECHO_N "checking for XF86VidModeGetViewPort in -lXxf86vm... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for XF86VidModeGetViewPort in -lXxf86vm" >&5
+echo $ECHO_N "checking for XF86VidModeGetViewPort in -lXxf86vm... $ECHO_C" >&6; }
 if test "${ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -11258,40 +12881,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char XF86VidModeGetViewPort ();
 int
 main ()
 {
-XF86VidModeGetViewPort ();
+return XF86VidModeGetViewPort ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -11300,14 +12935,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort=no
+       ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort" >&5
-echo "${ECHO_T}$ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort" >&5
+echo "${ECHO_T}$ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort" >&6; }
 if test $ac_cv_lib_Xxf86vm_XF86VidModeGetViewPort = yes; then
   have_xf86vmode=yes;
                    VIDMODE_LIBS="-lXxf86vm";
@@ -11346,13 +12982,13 @@ have_xf86gamma=no
 have_xf86gamma_ramp=no
 with_xf86gamma_req=unspecified
 
-# Check whether --with-xf86gamma-ext or --without-xf86gamma-ext was given.
+# Check whether --with-xf86gamma-ext was given.
 if test "${with_xf86gamma_ext+set}" = set; then
-  withval="$with_xf86gamma_ext"
-  with_xf86gamma="$withval"; with_xf86gamma_req="$withval"
+  withval=$with_xf86gamma_ext; with_xf86gamma="$withval"; with_xf86gamma_req="$withval"
 else
   with_xf86gamma=yes
-fi;
+fi
+
 
 
    case "$with_xf86gamma" in
@@ -11360,28 +12996,28 @@ fi;
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for xf86gamma headers" >&5
-echo $ECHO_N "checking for xf86gamma headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for xf86gamma headers" >&5
+echo $ECHO_N "checking for xf86gamma headers... $ECHO_C" >&6; }
      d=$with_xf86gamma/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for xf86gamma libs" >&5
-echo $ECHO_N "checking for xf86gamma libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for xf86gamma libs" >&5
+echo $ECHO_N "checking for xf86gamma libs... $ECHO_C" >&6; }
      d=$with_xf86gamma/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -11411,8 +13047,8 @@ if test "$with_xf86gamma" = yes; then
     CPPFLAGS="$CPPFLAGS -I$includedir"
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-  echo "$as_me:$LINENO: checking for X11/extensions/xf86vmode.h" >&5
-echo $ECHO_N "checking for X11/extensions/xf86vmode.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for X11/extensions/xf86vmode.h" >&5
+echo $ECHO_N "checking for X11/extensions/xf86vmode.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_X11_extensions_xf86vmode_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -11427,24 +13063,36 @@ cat >>conftest.$ac_ext <<_ACEOF
 #include <X11/extensions/xf86vmode.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -11453,12 +13101,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_X11_extensions_xf86vmode_h=no
+       ac_cv_header_X11_extensions_xf86vmode_h=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_xf86vmode_h" >&5
-echo "${ECHO_T}$ac_cv_header_X11_extensions_xf86vmode_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_xf86vmode_h" >&5
+echo "${ECHO_T}$ac_cv_header_X11_extensions_xf86vmode_h" >&6; }
 if test $ac_cv_header_X11_extensions_xf86vmode_h = yes; then
   have_xf86gamma=yes
 fi
@@ -11487,8 +13136,8 @@ fi
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for XF86VidModeSetGamma in -lXxf86vm" >&5
-echo $ECHO_N "checking for XF86VidModeSetGamma in -lXxf86vm... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for XF86VidModeSetGamma in -lXxf86vm" >&5
+echo $ECHO_N "checking for XF86VidModeSetGamma in -lXxf86vm... $ECHO_C" >&6; }
 if test "${ac_cv_lib_Xxf86vm_XF86VidModeSetGamma+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -11501,40 +13150,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char XF86VidModeSetGamma ();
 int
 main ()
 {
-XF86VidModeSetGamma ();
+return XF86VidModeSetGamma ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -11543,14 +13204,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_Xxf86vm_XF86VidModeSetGamma=no
+       ac_cv_lib_Xxf86vm_XF86VidModeSetGamma=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_Xxf86vm_XF86VidModeSetGamma" >&5
-echo "${ECHO_T}$ac_cv_lib_Xxf86vm_XF86VidModeSetGamma" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_Xxf86vm_XF86VidModeSetGamma" >&5
+echo "${ECHO_T}$ac_cv_lib_Xxf86vm_XF86VidModeSetGamma" >&6; }
 if test $ac_cv_lib_Xxf86vm_XF86VidModeSetGamma = yes; then
   have_xf86gamma=yes
 else
@@ -11583,8 +13245,8 @@ fi
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for XF86VidModeSetGammaRamp in -lXxf86vm" >&5
-echo $ECHO_N "checking for XF86VidModeSetGammaRamp in -lXxf86vm... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for XF86VidModeSetGammaRamp in -lXxf86vm" >&5
+echo $ECHO_N "checking for XF86VidModeSetGammaRamp in -lXxf86vm... $ECHO_C" >&6; }
 if test "${ac_cv_lib_Xxf86vm_XF86VidModeSetGammaRamp+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -11597,40 +13259,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char XF86VidModeSetGammaRamp ();
 int
 main ()
 {
-XF86VidModeSetGammaRamp ();
+return XF86VidModeSetGammaRamp ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -11639,14 +13313,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_Xxf86vm_XF86VidModeSetGammaRamp=no
+       ac_cv_lib_Xxf86vm_XF86VidModeSetGammaRamp=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_Xxf86vm_XF86VidModeSetGammaRamp" >&5
-echo "${ECHO_T}$ac_cv_lib_Xxf86vm_XF86VidModeSetGammaRamp" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_Xxf86vm_XF86VidModeSetGammaRamp" >&5
+echo "${ECHO_T}$ac_cv_lib_Xxf86vm_XF86VidModeSetGammaRamp" >&6; }
 if test $ac_cv_lib_Xxf86vm_XF86VidModeSetGammaRamp = yes; then
   have_xf86gamma_ramp=yes
 else
 have_randr=no
 with_randr_req=unspecified
 
-# Check whether --with-randr-ext or --without-randr-ext was given.
+# Check whether --with-randr-ext was given.
 if test "${with_randr_ext+set}" = set; then
-  withval="$with_randr_ext"
-  with_randr="$withval"; with_randr_req="$withval"
+  withval=$with_randr_ext; with_randr="$withval"; with_randr_req="$withval"
 else
   with_randr=yes
-fi;
+fi
+
 
 
    case "$with_randr" in
@@ -11712,28 +13387,28 @@ fi;
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for RANDR headers" >&5
-echo $ECHO_N "checking for RANDR headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for RANDR headers" >&5
+echo $ECHO_N "checking for RANDR headers... $ECHO_C" >&6; }
      d=$with_randr/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for RANDR libs" >&5
-echo $ECHO_N "checking for RANDR libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for RANDR libs" >&5
+echo $ECHO_N "checking for RANDR libs... $ECHO_C" >&6; }
      d=$with_randr/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -11760,8 +13435,8 @@ if test "$with_randr" = yes; then
     CPPFLAGS="$CPPFLAGS -I$includedir"
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-  echo "$as_me:$LINENO: checking for X11/extensions/Xrandr.h" >&5
-echo $ECHO_N "checking for X11/extensions/Xrandr.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for X11/extensions/Xrandr.h" >&5
+echo $ECHO_N "checking for X11/extensions/Xrandr.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_X11_extensions_Xrandr_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -11776,24 +13451,36 @@ cat >>conftest.$ac_ext <<_ACEOF
 #include <X11/extensions/Xrandr.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -11802,12 +13489,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_X11_extensions_Xrandr_h=no
+       ac_cv_header_X11_extensions_Xrandr_h=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_Xrandr_h" >&5
-echo "${ECHO_T}$ac_cv_header_X11_extensions_Xrandr_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_Xrandr_h" >&5
+echo "${ECHO_T}$ac_cv_header_X11_extensions_Xrandr_h" >&6; }
 if test $ac_cv_header_X11_extensions_Xrandr_h = yes; then
   have_randr=yes
 fi
@@ -11837,8 +13525,8 @@ fi
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for XRenderSetSubpixelOrder in -lXrender" >&5
-echo $ECHO_N "checking for XRenderSetSubpixelOrder in -lXrender... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for XRenderSetSubpixelOrder in -lXrender" >&5
+echo $ECHO_N "checking for XRenderSetSubpixelOrder in -lXrender... $ECHO_C" >&6; }
 if test "${ac_cv_lib_Xrender_XRenderSetSubpixelOrder+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -11851,40 +13539,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char XRenderSetSubpixelOrder ();
 int
 main ()
 {
-XRenderSetSubpixelOrder ();
+return XRenderSetSubpixelOrder ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -11893,14 +13593,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_Xrender_XRenderSetSubpixelOrder=no
+       ac_cv_lib_Xrender_XRenderSetSubpixelOrder=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_Xrender_XRenderSetSubpixelOrder" >&5
-echo "${ECHO_T}$ac_cv_lib_Xrender_XRenderSetSubpixelOrder" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_Xrender_XRenderSetSubpixelOrder" >&5
+echo "${ECHO_T}$ac_cv_lib_Xrender_XRenderSetSubpixelOrder" >&6; }
 if test $ac_cv_lib_Xrender_XRenderSetSubpixelOrder = yes; then
   xrender_libs="-lXrender"
 else
@@ -11931,8 +13632,8 @@ fi
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for XRRGetScreenInfo in -lXext" >&5
-echo $ECHO_N "checking for XRRGetScreenInfo in -lXext... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for XRRGetScreenInfo in -lXext" >&5
+echo $ECHO_N "checking for XRRGetScreenInfo in -lXext... $ECHO_C" >&6; }
 if test "${ac_cv_lib_Xext_XRRGetScreenInfo+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -11945,40 +13646,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char XRRGetScreenInfo ();
 int
 main ()
 {
-XRRGetScreenInfo ();
+return XRRGetScreenInfo ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -11987,14 +13700,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_Xext_XRRGetScreenInfo=no
+       ac_cv_lib_Xext_XRRGetScreenInfo=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_Xext_XRRGetScreenInfo" >&5
-echo "${ECHO_T}$ac_cv_lib_Xext_XRRGetScreenInfo" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_Xext_XRRGetScreenInfo" >&5
+echo "${ECHO_T}$ac_cv_lib_Xext_XRRGetScreenInfo" >&6; }
 if test $ac_cv_lib_Xext_XRRGetScreenInfo = yes; then
   have_randr=yes; SAVER_LIBS="$SAVER_LIBS $xrender_libs"
 else
@@ -12025,8 +13739,8 @@ fi
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for XRRGetScreenInfo in -lXrandr" >&5
-echo $ECHO_N "checking for XRRGetScreenInfo in -lXrandr... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for XRRGetScreenInfo in -lXrandr" >&5
+echo $ECHO_N "checking for XRRGetScreenInfo in -lXrandr... $ECHO_C" >&6; }
 if test "${ac_cv_lib_Xrandr_XRRGetScreenInfo+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -12039,40 +13753,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char XRRGetScreenInfo ();
 int
 main ()
 {
-XRRGetScreenInfo ();
+return XRRGetScreenInfo ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -12081,14 +13807,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_Xrandr_XRRGetScreenInfo=no
+       ac_cv_lib_Xrandr_XRRGetScreenInfo=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_Xrandr_XRRGetScreenInfo" >&5
-echo "${ECHO_T}$ac_cv_lib_Xrandr_XRRGetScreenInfo" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_Xrandr_XRRGetScreenInfo" >&5
+echo "${ECHO_T}$ac_cv_lib_Xrandr_XRRGetScreenInfo" >&6; }
 if test $ac_cv_lib_Xrandr_XRRGetScreenInfo = yes; then
   have_randr=yes; SAVER_LIBS="$SAVER_LIBS -lXrandr $xrender_libs"
 else
@@ -12142,8 +13869,8 @@ if test "$have_xf86gamma" = yes -o "$have_xf86vmode" = yes; then
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for XF86MiscSetGrabKeysState in -lXxf86misc" >&5
-echo $ECHO_N "checking for XF86MiscSetGrabKeysState in -lXxf86misc... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for XF86MiscSetGrabKeysState in -lXxf86misc" >&5
+echo $ECHO_N "checking for XF86MiscSetGrabKeysState in -lXxf86misc... $ECHO_C" >&6; }
 if test "${ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -12156,40 +13883,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char XF86MiscSetGrabKeysState ();
 int
 main ()
 {
-XF86MiscSetGrabKeysState ();
+return XF86MiscSetGrabKeysState ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -12198,14 +13937,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState=no
+       ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState" >&5
-echo "${ECHO_T}$ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState" >&5
+echo "${ECHO_T}$ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState" >&6; }
 if test $ac_cv_lib_Xxf86misc_XF86MiscSetGrabKeysState = yes; then
   have_xf86miscsetgrabkeysstate=yes
 else
@@ -12232,8 +13972,8 @@ fi
 #
 ###############################################################################
 
-echo "$as_me:$LINENO: checking for XHPDisableReset in X11/XHPlib.h" >&5
-echo $ECHO_N "checking for XHPDisableReset in X11/XHPlib.h... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for XHPDisableReset in X11/XHPlib.h" >&5
+echo $ECHO_N "checking for XHPDisableReset in X11/XHPlib.h... $ECHO_C" >&6; }
 
   ac_save_CPPFLAGS="$CPPFLAGS"
   if test \! -z "$includedir" ; then
@@ -12256,11 +13996,11 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 _ACEOF
 
                    SAVER_LIBS="-lXhp11 $SAVER_LIBS"
-                   echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+                   echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 rm -f conftest*
 
@@ -12276,13 +14016,13 @@ rm -f conftest*
 have_proc_interrupts=no
 with_proc_interrupts_req=unspecified
 
-# Check whether --with-proc-interrupts or --without-proc-interrupts was given.
+# Check whether --with-proc-interrupts was given.
 if test "${with_proc_interrupts+set}" = set; then
-  withval="$with_proc_interrupts"
-  with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"
+  withval=$with_proc_interrupts; with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"
 else
   with_proc_interrupts=yes
-fi;
+fi
+
 
 if test "$with_proc_interrupts" = yes; then
 
@@ -12293,8 +14033,8 @@ if test "$with_proc_interrupts" = yes; then
   have_proc_interrupts=yes
 
   if test -f /proc/interrupts; then
-   echo "$as_me:$LINENO: checking whether /proc/interrupts contains keyboard data" >&5
-echo $ECHO_N "checking whether /proc/interrupts contains keyboard data... $ECHO_C" >&6
+   echo "$as_me:$LINENO: checking whether /proc/interrupts contains keyboard data" >&5
+echo $ECHO_N "checking whether /proc/interrupts contains keyboard data... $ECHO_C" >&6; }
 if test "${ac_cv_have_proc_interrupts+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -12304,8 +14044,8 @@ else
      fi
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_have_proc_interrupts" >&5
-echo "${ECHO_T}$ac_cv_have_proc_interrupts" >&6
+echo "$as_me:$LINENO: result: $ac_cv_have_proc_interrupts" >&5
+echo "${ECHO_T}$ac_cv_have_proc_interrupts" >&6; }
    have_proc_interrupts=$ac_cv_have_proc_interrupts
   fi
 
 #
 ###############################################################################
 
-# Check whether --enable-locking or --disable-locking was given.
+# Check whether --enable-locking was given.
 if test "${enable_locking+set}" = set; then
-  enableval="$enable_locking"
-  enable_locking="$enableval"
+  enableval=$enable_locking; enable_locking="$enableval"
 else
   enable_locking=yes
-fi;
+fi
+
 if test "$enable_locking" = yes; then
   true
 elif test "$enable_locking" = no; then
@@ -12351,8 +14091,8 @@ fi
 #
 if test "$ac_macosx" = yes; then
   if test "$enable_locking" = yes; then
-    echo "$as_me:$LINENO: result: locking disabled: it doesn't work on MacOS X" >&5
-echo "${ECHO_T}locking disabled: it doesn't work on MacOS X" >&6
+    echo "$as_me:$LINENO: result: locking disabled: it doesn't work on MacOS X" >&5
+echo "${ECHO_T}locking disabled: it doesn't work on MacOS X" >&6; }
     enable_locking=no
     cat >>confdefs.h <<\_ACEOF
 #define NO_LOCKING 1
 #       Whether to allow root password to unblank.
 #
 ###############################################################################
-# Check whether --enable-root-passwd or --disable-root-passwd was given.
+# Check whether --enable-root-passwd was given.
 if test "${enable_root_passwd+set}" = set; then
-  enableval="$enable_root_passwd"
-  enable_root_passwd="$enableval"
+  enableval=$enable_root_passwd; enable_root_passwd="$enableval"
 else
   enable_root_passwd=yes
-fi;
+fi
+
 if test "$enable_root_passwd" = yes; then
   cat >>confdefs.h <<\_ACEOF
 #define ALLOW_ROOT_PASSWD 1
@@ -12407,22 +14147,22 @@ have_pam=no
 with_pam_req=unspecified
 
 
-# Check whether --with-pam or --without-pam was given.
+# Check whether --with-pam was given.
 if test "${with_pam+set}" = set; then
-  withval="$with_pam"
-  with_pam="$withval"; with_pam_req="$withval"
+  withval=$with_pam; with_pam="$withval"; with_pam_req="$withval"
 else
   with_pam=$with_pam_default
-fi;
+fi
+
 
 
-# Check whether --with-pam_service_name or --without-pam_service_name was given.
+# Check whether --with-pam_service_name was given.
 if test "${with_pam_service_name+set}" = set; then
-  withval="$with_pam_service_name"
-  pam_service_name="$withval"
+  withval=$with_pam_service_name; pam_service_name="$withval"
 else
   pam_service_name="xscreensaver"
-fi;
+fi
+
 
 
    case "$with_pam" in
@@ -12430,28 +14170,28 @@ fi;
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for PAM headers" >&5
-echo $ECHO_N "checking for PAM headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for PAM headers" >&5
+echo $ECHO_N "checking for PAM headers... $ECHO_C" >&6; }
      d=$with_pam/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for PAM libs" >&5
-echo $ECHO_N "checking for PAM libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for PAM libs" >&5
+echo $ECHO_N "checking for PAM libs... $ECHO_C" >&6; }
      d=$with_pam/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -12470,8 +14210,8 @@ echo "${ECHO_T}not found ($d: no such directory)" >&6
 
 
 if test "$enable_locking" = yes -a "$with_pam" = yes; then
-  echo "$as_me:$LINENO: checking for PAM" >&5
-echo $ECHO_N "checking for PAM... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for PAM" >&5
+echo $ECHO_N "checking for PAM... $ECHO_C" >&6; }
 if test "${ac_cv_pam+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -12497,24 +14237,36 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -12523,13 +14275,14 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_pam=no
+       ac_cv_pam=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   CPPFLAGS="$ac_save_CPPFLAGS"
 fi
-echo "$as_me:$LINENO: result: $ac_cv_pam" >&5
-echo "${ECHO_T}$ac_cv_pam" >&6
+echo "$as_me:$LINENO: result: $ac_cv_pam" >&5
+echo "${ECHO_T}$ac_cv_pam" >&6; }
   if test "$ac_cv_pam" = yes ; then
     have_pam=yes
     cat >>confdefs.h <<\_ACEOF
@@ -12545,8 +14298,8 @@ _ACEOF
 
     # libpam typically requires dlopen and dlsym.  On FreeBSD,
     # those are in libc.  On Linux and Solaris, they're in libdl.
-    echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
 if test "${ac_cv_lib_dl_dlopen+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -12559,40 +14312,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char dlopen ();
 int
 main ()
 {
-dlopen ();
+return dlopen ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -12601,14 +14366,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_dl_dlopen=no
+       ac_cv_lib_dl_dlopen=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
 if test $ac_cv_lib_dl_dlopen = yes; then
   PASSWD_LIBS="${PASSWD_LIBS} -ldl"
 fi
@@ -12616,8 +14382,8 @@ fi
 
     # On Linux, sigtimedwait() is in libc; on Solaris, it's in librt.
     have_timedwait=no
-    echo "$as_me:$LINENO: checking for sigtimedwait in -lc" >&5
-echo $ECHO_N "checking for sigtimedwait in -lc... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for sigtimedwait in -lc" >&5
+echo $ECHO_N "checking for sigtimedwait in -lc... $ECHO_C" >&6; }
 if test "${ac_cv_lib_c_sigtimedwait+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -12630,40 +14396,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char sigtimedwait ();
 int
 main ()
 {
-sigtimedwait ();
+return sigtimedwait ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -12672,21 +14450,22 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_c_sigtimedwait=no
+       ac_cv_lib_c_sigtimedwait=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_c_sigtimedwait" >&5
-echo "${ECHO_T}$ac_cv_lib_c_sigtimedwait" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_c_sigtimedwait" >&5
+echo "${ECHO_T}$ac_cv_lib_c_sigtimedwait" >&6; }
 if test $ac_cv_lib_c_sigtimedwait = yes; then
   have_timedwait=yes
 fi
 
     if test "$have_timedwait" = no ; then
-      echo "$as_me:$LINENO: checking for sigtimedwait in -lrt" >&5
-echo $ECHO_N "checking for sigtimedwait in -lrt... $ECHO_C" >&6
+      echo "$as_me:$LINENO: checking for sigtimedwait in -lrt" >&5
+echo $ECHO_N "checking for sigtimedwait in -lrt... $ECHO_C" >&6; }
 if test "${ac_cv_lib_rt_sigtimedwait+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -12699,40 +14478,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char sigtimedwait ();
 int
 main ()
 {
-sigtimedwait ();
+return sigtimedwait ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -12741,22 +14532,23 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_rt_sigtimedwait=no
+       ac_cv_lib_rt_sigtimedwait=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_rt_sigtimedwait" >&5
-echo "${ECHO_T}$ac_cv_lib_rt_sigtimedwait" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_rt_sigtimedwait" >&5
+echo "${ECHO_T}$ac_cv_lib_rt_sigtimedwait" >&6; }
 if test $ac_cv_lib_rt_sigtimedwait = yes; then
   PASSWD_LIBS="${PASSWD_LIBS} -lrt"
 fi
 
     fi
 
-    echo "$as_me:$LINENO: checking how to call pam_strerror" >&5
-echo $ECHO_N "checking how to call pam_strerror... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking how to call pam_strerror" >&5
+echo $ECHO_N "checking how to call pam_strerror... $ECHO_C" >&6; }
     if test "${ac_cv_pam_strerror_args+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -12779,24 +14571,36 @@ pam_handle_t *pamh = 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -12805,7 +14609,7 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-cat >conftest.$ac_ext <<_ACEOF
+       cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -12824,24 +14628,36 @@ char *s =
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -12850,33 +14666,35 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_pam_strerror_args=0
+       ac_pam_strerror_args=0
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
       ac_cv_pam_strerror_args=$ac_pam_strerror_args
 fi
 
     ac_pam_strerror_args=$ac_cv_pam_strerror_args
     if test "$ac_pam_strerror_args" = 1 ; then
-      echo "$as_me:$LINENO: result: one argument" >&5
-echo "${ECHO_T}one argument" >&6
+      echo "$as_me:$LINENO: result: one argument" >&5
+echo "${ECHO_T}one argument" >&6; }
     elif test "$ac_pam_strerror_args" = 2 ; then
       cat >>confdefs.h <<\_ACEOF
 #define PAM_STRERROR_TWO_ARGS 1
 _ACEOF
 
-      echo "$as_me:$LINENO: result: two arguments" >&5
-echo "${ECHO_T}two arguments" >&6
+      echo "$as_me:$LINENO: result: two arguments" >&5
+echo "${ECHO_T}two arguments" >&6; }
     else
-      echo "$as_me:$LINENO: result: unknown" >&5
-echo "${ECHO_T}unknown" >&6
+      echo "$as_me:$LINENO: result: unknown" >&5
+echo "${ECHO_T}unknown" >&6; }
     fi
 
 # Check pam_fail_delay
-    echo "$as_me:$LINENO: checking pam_fail_delay in -lpam" >&5
-echo $ECHO_N "checking pam_fail_delay in -lpam... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking pam_fail_delay in -lpam" >&5
+echo $ECHO_N "checking pam_fail_delay in -lpam... $ECHO_C" >&6; }
     if test "${ac_cv_pam_fail_delay+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -12900,24 +14718,36 @@ pam_handle_t *pamh = 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -12926,25 +14756,26 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_pam_fail_delay=no
+       ac_pam_fail_delay=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
       ac_cv_pam_fail_delay=$ac_pam_fail_delay,
-      LD_FLAGS=$ac_save_LDFLAGS
+      LDFLAGS=$ac_save_LDFLAGS
 fi
 
 
       if test "$ac_pam_fail_delay" = yes ; then
-        echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+        echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
         cat >>confdefs.h <<\_ACEOF
 #define HAVE_PAM_FAIL_DELAY 1
 _ACEOF
 
       else
-        echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+        echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
       fi
 
   fi
@@ -12962,13 +14793,13 @@ have_kerberos5=no
 with_kerberos_req=unspecified
 
 
-# Check whether --with-kerberos or --without-kerberos was given.
+# Check whether --with-kerberos was given.
 if test "${with_kerberos+set}" = set; then
-  withval="$with_kerberos"
-  with_kerberos="$withval"; with_kerberos_req="$withval"
+  withval=$with_kerberos; with_kerberos="$withval"; with_kerberos_req="$withval"
 else
   with_kerberos=yes
-fi;
+fi
+
 
 
    case "$with_kerberos" in
@@ -12976,28 +14807,28 @@ fi;
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for Kerberos headers" >&5
-echo $ECHO_N "checking for Kerberos headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for Kerberos headers" >&5
+echo $ECHO_N "checking for Kerberos headers... $ECHO_C" >&6; }
      d=$with_kerberos/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for Kerberos libs" >&5
-echo $ECHO_N "checking for Kerberos libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for Kerberos libs" >&5
+echo $ECHO_N "checking for Kerberos libs... $ECHO_C" >&6; }
      d=$with_kerberos/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -13016,8 +14847,8 @@ echo "${ECHO_T}not found ($d: no such directory)" >&6
 
 
 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
-  echo "$as_me:$LINENO: checking for Kerberos 4" >&5
-echo $ECHO_N "checking for Kerberos 4... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for Kerberos 4" >&5
+echo $ECHO_N "checking for Kerberos 4... $ECHO_C" >&6; }
 if test "${ac_cv_kerberos+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -13043,24 +14874,36 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -13069,15 +14912,16 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_kerberos=no
+       ac_cv_kerberos=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   CPPFLAGS="$ac_save_CPPFLAGS"
 fi
-echo "$as_me:$LINENO: result: $ac_cv_kerberos" >&5
-echo "${ECHO_T}$ac_cv_kerberos" >&6
-  echo "$as_me:$LINENO: checking for Kerberos 5" >&5
-echo $ECHO_N "checking for Kerberos 5... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $ac_cv_kerberos" >&5
+echo "${ECHO_T}$ac_cv_kerberos" >&6; }
+  echo "$as_me:$LINENO: checking for Kerberos 5" >&5
+echo $ECHO_N "checking for Kerberos 5... $ECHO_C" >&6; }
 if test "${ac_cv_kerberos5+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -13103,24 +14947,36 @@ main ()
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -13129,13 +14985,14 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_kerberos5=no
+       ac_cv_kerberos5=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   CPPFLAGS="$ac_save_CPPFLAGS"
 fi
-echo "$as_me:$LINENO: result: $ac_cv_kerberos5" >&5
-echo "${ECHO_T}$ac_cv_kerberos5" >&6
+echo "$as_me:$LINENO: result: $ac_cv_kerberos5" >&5
+echo "${ECHO_T}$ac_cv_kerberos5" >&6; }
 
   if test "$ac_cv_kerberos" = yes ; then
     have_kerberos=yes
@@ -13174,8 +15031,8 @@ _ACEOF
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for krb_get_tf_realm in -lkrb4" >&5
-echo $ECHO_N "checking for krb_get_tf_realm in -lkrb4... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for krb_get_tf_realm in -lkrb4" >&5
+echo $ECHO_N "checking for krb_get_tf_realm in -lkrb4... $ECHO_C" >&6; }
 if test "${ac_cv_lib_krb4_krb_get_tf_realm+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -13188,40 +15045,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char krb_get_tf_realm ();
 int
 main ()
 {
-krb_get_tf_realm ();
+return krb_get_tf_realm ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -13230,14 +15099,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_krb4_krb_get_tf_realm=no
+       ac_cv_lib_krb4_krb_get_tf_realm=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_krb4_krb_get_tf_realm" >&5
-echo "${ECHO_T}$ac_cv_lib_krb4_krb_get_tf_realm" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_krb4_krb_get_tf_realm" >&5
+echo "${ECHO_T}$ac_cv_lib_krb4_krb_get_tf_realm" >&6; }
 if test $ac_cv_lib_krb4_krb_get_tf_realm = yes; then
   have_kerberos=yes
 else
@@ -13290,8 +15160,8 @@ echo "$as_me: WARNING: Cannot find compat lib (libkrb4) needed to use Kerberos 5
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for crypt in -lcrypt" >&5
-echo $ECHO_N "checking for crypt in -lcrypt... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for crypt in -lcrypt" >&5
+echo $ECHO_N "checking for crypt in -lcrypt... $ECHO_C" >&6; }
 if test "${ac_cv_lib_crypt_crypt+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -13304,40 +15174,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char crypt ();
 int
 main ()
 {
-crypt ();
+return crypt ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -13346,14 +15228,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_crypt_crypt=no
+       ac_cv_lib_crypt_crypt=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5
-echo "${ECHO_T}$ac_cv_lib_crypt_crypt" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5
+echo "${ECHO_T}$ac_cv_lib_crypt_crypt" >&6; }
 if test $ac_cv_lib_crypt_crypt = yes; then
   PASSWD_LIBS="$PASSWD_LIBS -lcrypt"
 fi
@@ -13369,8 +15252,8 @@ fi
   fi
 
   if test "$have_kerberos" = yes ; then
-    echo "$as_me:$LINENO: checking for res_search" >&5
-echo $ECHO_N "checking for res_search... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for res_search" >&5
+echo $ECHO_N "checking for res_search... $ECHO_C" >&6; }
 if test "${ac_cv_func_res_search+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -13397,53 +15280,59 @@ cat >>conftest.$ac_ext <<_ACEOF
 
 #undef res_search
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
-{
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char res_search ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_res_search) || defined (__stub___res_search)
+#if defined __stub_res_search || defined __stub___res_search
 choke me
-#else
-char (*f) () = res_search;
-#endif
-#ifdef __cplusplus
-}
 #endif
 
 int
 main ()
 {
-return f != res_search;
+return res_search ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -13452,18 +15341,19 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_func_res_search=no
+       ac_cv_func_res_search=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_func_res_search" >&5
-echo "${ECHO_T}$ac_cv_func_res_search" >&6
+echo "$as_me:$LINENO: result: $ac_cv_func_res_search" >&5
+echo "${ECHO_T}$ac_cv_func_res_search" >&6; }
 if test $ac_cv_func_res_search = yes; then
   :
 else
-  echo "$as_me:$LINENO: checking for res_search in -lresolv" >&5
-echo $ECHO_N "checking for res_search in -lresolv... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for res_search in -lresolv" >&5
+echo $ECHO_N "checking for res_search in -lresolv... $ECHO_C" >&6; }
 if test "${ac_cv_lib_resolv_res_search+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -13476,40 +15366,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char res_search ();
 int
 main ()
 {
-res_search ();
+return res_search ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -13518,14 +15420,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_resolv_res_search=no
+       ac_cv_lib_resolv_res_search=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_res_search" >&5
-echo "${ECHO_T}$ac_cv_lib_resolv_res_search" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_res_search" >&5
+echo "${ECHO_T}$ac_cv_lib_resolv_res_search" >&6; }
 if test $ac_cv_lib_resolv_res_search = yes; then
   PASSWD_LIBS="${PASSWD_LIBS} -lresolv"
 else
@@ -13552,13 +15455,13 @@ have_shadow=no
 with_shadow_req=unspecified
 
 
-# Check whether --with-shadow or --without-shadow was given.
+# Check whether --with-shadow was given.
 if test "${with_shadow+set}" = set; then
-  withval="$with_shadow"
-  with_shadow="$withval"; with_shadow_req="$withval"
+  withval=$with_shadow; with_shadow="$withval"; with_shadow_req="$withval"
 else
   with_shadow=yes
-fi;
+fi
+
 
 
    case "$with_shadow" in
@@ -13566,28 +15469,28 @@ fi;
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for shadow password headers" >&5
-echo $ECHO_N "checking for shadow password headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for shadow password headers" >&5
+echo $ECHO_N "checking for shadow password headers... $ECHO_C" >&6; }
      d=$with_shadow/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for shadow password libs" >&5
-echo $ECHO_N "checking for shadow password libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for shadow password libs" >&5
+echo $ECHO_N "checking for shadow password libs... $ECHO_C" >&6; }
      d=$with_shadow/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -13618,8 +15521,8 @@ fi
 ###############################################################################
 
 if test "$with_shadow" = yes ; then
-  echo "$as_me:$LINENO: checking for Sun-style shadow passwords" >&5
-echo $ECHO_N "checking for Sun-style shadow passwords... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for Sun-style shadow passwords" >&5
+echo $ECHO_N "checking for Sun-style shadow passwords... $ECHO_C" >&6; }
 if test "${ac_cv_sun_adjunct+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -13651,24 +15554,36 @@ struct passwd_adjunct *p = getpwanam("nobody");
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -13677,13 +15592,14 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_sun_adjunct=no
+       ac_cv_sun_adjunct=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   CPPFLAGS="$ac_save_CPPFLAGS"
 fi
-echo "$as_me:$LINENO: result: $ac_cv_sun_adjunct" >&5
-echo "${ECHO_T}$ac_cv_sun_adjunct" >&6
+echo "$as_me:$LINENO: result: $ac_cv_sun_adjunct" >&5
+echo "${ECHO_T}$ac_cv_sun_adjunct" >&6; }
   if test "$ac_cv_sun_adjunct" = yes; then
     have_shadow_adjunct=yes
     have_shadow=yes
@@ -13699,8 +15615,8 @@ fi
 ###############################################################################
 
 if test "$with_shadow" = yes ; then
-  echo "$as_me:$LINENO: checking for DEC-style shadow passwords" >&5
-echo $ECHO_N "checking for DEC-style shadow passwords... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for DEC-style shadow passwords" >&5
+echo $ECHO_N "checking for DEC-style shadow passwords... $ECHO_C" >&6; }
 if test "${ac_cv_enhanced_passwd+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -13736,24 +15652,36 @@ struct pr_passwd *p;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -13762,13 +15690,14 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_enhanced_passwd=no
+       ac_cv_enhanced_passwd=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   CPPFLAGS="$ac_save_CPPFLAGS"
 fi
-echo "$as_me:$LINENO: result: $ac_cv_enhanced_passwd" >&5
-echo "${ECHO_T}$ac_cv_enhanced_passwd" >&6
+echo "$as_me:$LINENO: result: $ac_cv_enhanced_passwd" >&5
+echo "${ECHO_T}$ac_cv_enhanced_passwd" >&6; }
   if test $ac_cv_enhanced_passwd = yes; then
     have_shadow_enhanced=yes
     have_shadow=yes
@@ -13778,8 +15707,8 @@ echo "${ECHO_T}$ac_cv_enhanced_passwd" >&6
     # (I'm told it needs -lcurses too, but I don't understand why.)
     # But on DEC, it's in -lsecurity.
     #
-    echo "$as_me:$LINENO: checking for getprpwnam in -lprot" >&5
-echo $ECHO_N "checking for getprpwnam in -lprot... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for getprpwnam in -lprot" >&5
+echo $ECHO_N "checking for getprpwnam in -lprot... $ECHO_C" >&6; }
 if test "${ac_cv_lib_prot_getprpwnam+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -13792,40 +15721,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char getprpwnam ();
 int
 main ()
 {
-getprpwnam ();
+return getprpwnam ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -13834,19 +15775,20 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_prot_getprpwnam=no
+       ac_cv_lib_prot_getprpwnam=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_prot_getprpwnam" >&5
-echo "${ECHO_T}$ac_cv_lib_prot_getprpwnam" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_prot_getprpwnam" >&5
+echo "${ECHO_T}$ac_cv_lib_prot_getprpwnam" >&6; }
 if test $ac_cv_lib_prot_getprpwnam = yes; then
   PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"
 else
-  echo "$as_me:$LINENO: checking for getprpwnam in -lsecurity" >&5
-echo $ECHO_N "checking for getprpwnam in -lsecurity... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for getprpwnam in -lsecurity" >&5
+echo $ECHO_N "checking for getprpwnam in -lsecurity... $ECHO_C" >&6; }
 if test "${ac_cv_lib_security_getprpwnam+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -13859,40 +15801,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char getprpwnam ();
 int
 main ()
 {
-getprpwnam ();
+return getprpwnam ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -13901,14 +15855,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_security_getprpwnam=no
+       ac_cv_lib_security_getprpwnam=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_security_getprpwnam" >&5
-echo "${ECHO_T}$ac_cv_lib_security_getprpwnam" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_security_getprpwnam" >&5
+echo "${ECHO_T}$ac_cv_lib_security_getprpwnam" >&6; }
 if test $ac_cv_lib_security_getprpwnam = yes; then
   PASSWD_LIBS="$PASSWD_LIBS -lsecurity"
 fi
@@ -13925,8 +15880,8 @@ fi
 ###############################################################################
 
 if test "$with_shadow" = yes ; then
-  echo "$as_me:$LINENO: checking for HP-style shadow passwords" >&5
-echo $ECHO_N "checking for HP-style shadow passwords... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for HP-style shadow passwords" >&5
+echo $ECHO_N "checking for HP-style shadow passwords... $ECHO_C" >&6; }
 if test "${ac_cv_hpux_passwd+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -13958,24 +15913,36 @@ struct s_passwd *p = getspwnam("nobody");
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -13984,21 +15951,22 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_hpux_passwd=no
+       ac_cv_hpux_passwd=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   CPPFLAGS="$ac_save_CPPFLAGS"
 fi
-echo "$as_me:$LINENO: result: $ac_cv_hpux_passwd" >&5
-echo "${ECHO_T}$ac_cv_hpux_passwd" >&6
+echo "$as_me:$LINENO: result: $ac_cv_hpux_passwd" >&5
+echo "${ECHO_T}$ac_cv_hpux_passwd" >&6; }
   if test "$ac_cv_hpux_passwd" = yes; then
     have_shadow_hpux=yes
     have_shadow=yes
     need_setuid=yes
 
     # on HPUX, bigcrypt is in -lsec
-    echo "$as_me:$LINENO: checking for bigcrypt in -lsec" >&5
-echo $ECHO_N "checking for bigcrypt in -lsec... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for bigcrypt in -lsec" >&5
+echo $ECHO_N "checking for bigcrypt in -lsec... $ECHO_C" >&6; }
 if test "${ac_cv_lib_sec_bigcrypt+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -14011,40 +15979,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char bigcrypt ();
 int
 main ()
 {
-bigcrypt ();
+return bigcrypt ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -14053,14 +16033,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_sec_bigcrypt=no
+       ac_cv_lib_sec_bigcrypt=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_sec_bigcrypt" >&5
-echo "${ECHO_T}$ac_cv_lib_sec_bigcrypt" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_sec_bigcrypt" >&5
+echo "${ECHO_T}$ac_cv_lib_sec_bigcrypt" >&6; }
 if test $ac_cv_lib_sec_bigcrypt = yes; then
   PASSWD_LIBS="$PASSWD_LIBS -lsec"
 fi
@@ -14082,8 +16063,8 @@ fi
 ###############################################################################
 
 if test "$with_shadow" = yes ; then
-  echo "$as_me:$LINENO: checking for FreeBSD-style shadow passwords" >&5
-echo $ECHO_N "checking for FreeBSD-style shadow passwords... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for FreeBSD-style shadow passwords" >&5
+echo $ECHO_N "checking for FreeBSD-style shadow passwords... $ECHO_C" >&6; }
 if test "${ac_cv_master_passwd+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -14093,8 +16074,8 @@ else
                     ac_cv_master_passwd=no
                   fi
 fi
-echo "$as_me:$LINENO: result: $ac_cv_master_passwd" >&5
-echo "${ECHO_T}$ac_cv_master_passwd" >&6
+echo "$as_me:$LINENO: result: $ac_cv_master_passwd" >&5
+echo "${ECHO_T}$ac_cv_master_passwd" >&6; }
   if test "$ac_cv_master_passwd" = yes; then
     need_setuid=yes
   fi
@@ -14108,8 +16089,8 @@ fi
 ###############################################################################
 
 if test "$with_shadow" = yes ; then
-  echo "$as_me:$LINENO: checking for generic shadow passwords" >&5
-echo $ECHO_N "checking for generic shadow passwords... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for generic shadow passwords" >&5
+echo $ECHO_N "checking for generic shadow passwords... $ECHO_C" >&6; }
 if test "${ac_cv_shadow+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -14140,24 +16121,36 @@ struct spwd *p = getspnam("nobody");
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -14166,21 +16159,22 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_shadow=no
+       ac_cv_shadow=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   CPPFLAGS="$ac_save_CPPFLAGS"
 fi
-echo "$as_me:$LINENO: result: $ac_cv_shadow" >&5
-echo "${ECHO_T}$ac_cv_shadow" >&6
+echo "$as_me:$LINENO: result: $ac_cv_shadow" >&5
+echo "${ECHO_T}$ac_cv_shadow" >&6; }
   if test "$ac_cv_shadow" = yes; then
     have_shadow=yes
     need_setuid=yes
 
     # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
     have_getspnam=no
-    echo "$as_me:$LINENO: checking for getspnam in -lc" >&5
-echo $ECHO_N "checking for getspnam in -lc... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for getspnam in -lc" >&5
+echo $ECHO_N "checking for getspnam in -lc... $ECHO_C" >&6; }
 if test "${ac_cv_lib_c_getspnam+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -14193,40 +16187,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char getspnam ();
 int
 main ()
 {
-getspnam ();
+return getspnam ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -14235,21 +16241,22 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_c_getspnam=no
+       ac_cv_lib_c_getspnam=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_c_getspnam" >&5
-echo "${ECHO_T}$ac_cv_lib_c_getspnam" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_c_getspnam" >&5
+echo "${ECHO_T}$ac_cv_lib_c_getspnam" >&6; }
 if test $ac_cv_lib_c_getspnam = yes; then
   have_getspnam=yes
 fi
 
     if test "$have_getspnam" = no ; then
-      echo "$as_me:$LINENO: checking for getspnam in -lgen" >&5
-echo $ECHO_N "checking for getspnam in -lgen... $ECHO_C" >&6
+      echo "$as_me:$LINENO: checking for getspnam in -lgen" >&5
+echo $ECHO_N "checking for getspnam in -lgen... $ECHO_C" >&6; }
 if test "${ac_cv_lib_gen_getspnam+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -14262,40 +16269,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char getspnam ();
 int
 main ()
 {
-getspnam ();
+return getspnam ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -14304,14 +16323,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_gen_getspnam=no
+       ac_cv_lib_gen_getspnam=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_gen_getspnam" >&5
-echo "${ECHO_T}$ac_cv_lib_gen_getspnam" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_gen_getspnam" >&5
+echo "${ECHO_T}$ac_cv_lib_gen_getspnam" >&6; }
 if test $ac_cv_lib_gen_getspnam = yes; then
   have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"
 fi
@@ -14331,8 +16351,8 @@ if test "$enable_locking" = yes ; then
 
   # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
   have_crypt=no
-  echo "$as_me:$LINENO: checking for crypt in -lc" >&5
-echo $ECHO_N "checking for crypt in -lc... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for crypt in -lc" >&5
+echo $ECHO_N "checking for crypt in -lc... $ECHO_C" >&6; }
 if test "${ac_cv_lib_c_crypt+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -14345,40 +16365,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char crypt ();
 int
 main ()
 {
-crypt ();
+return crypt ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -14387,21 +16419,22 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_c_crypt=no
+       ac_cv_lib_c_crypt=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_c_crypt" >&5
-echo "${ECHO_T}$ac_cv_lib_c_crypt" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_c_crypt" >&5
+echo "${ECHO_T}$ac_cv_lib_c_crypt" >&6; }
 if test $ac_cv_lib_c_crypt = yes; then
   have_crypt=yes
 fi
 
   if test "$have_crypt" = no ; then
-    echo "$as_me:$LINENO: checking for crypt in -lcrypt" >&5
-echo $ECHO_N "checking for crypt in -lcrypt... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for crypt in -lcrypt" >&5
+echo $ECHO_N "checking for crypt in -lcrypt... $ECHO_C" >&6; }
 if test "${ac_cv_lib_crypt_crypt+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -14414,40 +16447,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char crypt ();
 int
 main ()
 {
-crypt ();
+return crypt ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -14456,14 +16501,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_crypt_crypt=no
+       ac_cv_lib_crypt_crypt=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5
-echo "${ECHO_T}$ac_cv_lib_crypt_crypt" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5
+echo "${ECHO_T}$ac_cv_lib_crypt_crypt" >&6; }
 if test $ac_cv_lib_crypt_crypt = yes; then
   have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"
 fi
@@ -14525,13 +16571,13 @@ have_passwd_helper=no
 with_passwd_helper_req=unspecified
 
 
-# Check whether --with-passwd-helper or --without-passwd-helper was given.
+# Check whether --with-passwd-helper was given.
 if test "${with_passwd_helper+set}" = set; then
-  withval="$with_passwd_helper"
-  with_passwd_helper="$withval"; with_passwd_helper_req="$withval"
+  withval=$with_passwd_helper; with_passwd_helper="$withval"; with_passwd_helper_req="$withval"
 else
   with_passwd_helper=no
-fi;
+fi
+
 # no HANDLE_X_PATH_ARG for this one
 
 if test "$enable_locking" = no ; then
@@ -14565,13 +16611,13 @@ with_login_manager_req=unspecified
 default_login_manager='gdmflexiserver -l'
 
 
-# Check whether --with-login-manager or --without-login-manager was given.
+# Check whether --with-login-manager was given.
 if test "${with_login_manager+set}" = set; then
-  withval="$with_login_manager"
-  with_login_manager="$withval"; with_login_manager_req="$withval"
+  withval=$with_login_manager; with_login_manager="$withval"; with_login_manager_req="$withval"
 else
   with_login_manager=no
-fi;
+fi
+
 # no HANDLE_X_PATH_ARG for this one
 
 if test "$enable_locking" = no ; then
@@ -14590,14 +16636,14 @@ if test -n "$with_login_manager_req" ; then
     /*)
       # absolute path
       set dummy $with_login_manager_req ; login_manager_tmp=$2
-      echo "$as_me:$LINENO: checking for $login_manager_tmp" >&5
-echo $ECHO_N "checking for $login_manager_tmp... $ECHO_C" >&6
+      echo "$as_me:$LINENO: checking for $login_manager_tmp" >&5
+echo $ECHO_N "checking for $login_manager_tmp... $ECHO_C" >&6; }
       if test -x "$login_manager_tmp" ; then
-        echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+        echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
       else
-        echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+        echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
         with_login_manager=""
       fi
     ;;
@@ -14608,8 +16654,8 @@ echo "${ECHO_T}no" >&6
       unset ac_cv_path_login_manager_tmp
       # Extract the first word of "$login_manager_tmp", so it can be a program name with args.
 set dummy $login_manager_tmp; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_path_login_manager_tmp+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_login_manager_tmp="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
   ;;
 esac
 fi
 login_manager_tmp=$ac_cv_path_login_manager_tmp
-
 if test -n "$login_manager_tmp"; then
-  echo "$as_me:$LINENO: result: $login_manager_tmp" >&5
-echo "${ECHO_T}$login_manager_tmp" >&6
+  echo "$as_me:$LINENO: result: $login_manager_tmp" >&5
+echo "${ECHO_T}$login_manager_tmp" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
       if test -z "$login_manager_tmp" ; then
         with_login_manager=""
       else
@@ -14655,8 +16702,8 @@ fi
   ac_cv_login_manager_program="$with_login_manager"
 
 elif test -n "$ac_cv_login_manager_program"; then
-  echo "$as_me:$LINENO: result: checking for login_manager... (cached) $ac_cv_login_manager_program" >&5
-echo "${ECHO_T}checking for login_manager... (cached) $ac_cv_login_manager_program" >&6
+  echo "$as_me:$LINENO: result: checking for login_manager... (cached) $ac_cv_login_manager_program" >&5
+echo "${ECHO_T}checking for login_manager... (cached) $ac_cv_login_manager_program" >&6; }
 fi
 
 NEW_LOGIN_COMMAND_P=''
 have_gtk=no
 with_gtk_req=unspecified
 
-# Check whether --with-gtk or --without-gtk was given.
+# Check whether --with-gtk was given.
 if test "${with_gtk+set}" = set; then
-  withval="$with_gtk"
-  with_gtk="$withval"; with_gtk_req="$withval"
+  withval=$with_gtk; with_gtk="$withval"; with_gtk_req="$withval"
 else
   with_gtk=yes
-fi;
+fi
+
 
 # if --with-gtk=/directory/ was specified, remember that directory so that
 # we can also look for the `gtk-config' program in that directory.
@@ -14703,28 +16750,28 @@ esac
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for Gtk headers" >&5
-echo $ECHO_N "checking for Gtk headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for Gtk headers" >&5
+echo $ECHO_N "checking for Gtk headers... $ECHO_C" >&6; }
      d=$with_gtk/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for Gtk libs" >&5
-echo $ECHO_N "checking for Gtk libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for Gtk libs" >&5
+echo $ECHO_N "checking for Gtk libs... $ECHO_C" >&6; }
      d=$with_gtk/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -14775,8 +16822,8 @@ for ac_prog in pkg-config
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_path_pkg_config+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_pkg_config="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
   ;;
 esac
 fi
 pkg_config=$ac_cv_path_pkg_config
-
 if test -n "$pkg_config"; then
-  echo "$as_me:$LINENO: result: $pkg_config" >&5
-echo "${ECHO_T}$pkg_config" >&6
+  echo "$as_me:$LINENO: result: $pkg_config" >&5
+echo "${ECHO_T}$pkg_config" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
   test -n "$pkg_config" && break
 done
 
@@ -14830,24 +16878,24 @@ pkg_check_version() {
   if test "$ok" = yes ; then
     req="$1"
     min="$2"
-    echo "$as_me:$LINENO: checking for $req" >&5
-echo $ECHO_N "checking for $req... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for $req" >&5
+echo $ECHO_N "checking for $req... $ECHO_C" >&6; }
     if $pkg_config --exists "$req" ; then
       vers=`$pkg_config --modversion "$req"`
       if $pkg_config --exists "$req >= $min" ; then
-        echo "$as_me:$LINENO: result: $vers" >&5
-echo "${ECHO_T}$vers" >&6
+        echo "$as_me:$LINENO: result: $vers" >&5
+echo "${ECHO_T}$vers" >&6; }
         pkgs="$pkgs $req"
         return 1
       else
-        echo "$as_me:$LINENO: result: $vers (wanted >= $min)" >&5
-echo "${ECHO_T}$vers (wanted >= $min)" >&6
+        echo "$as_me:$LINENO: result: $vers (wanted >= $min)" >&5
+echo "${ECHO_T}$vers (wanted >= $min)" >&6; }
         ok=no
         return 0
       fi
     else
-      echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+      echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
       ok=no
       return 0
     fi
@@ -14883,24 +16931,24 @@ if test "$with_gtk" = yes; then
   fi
 
   if test "$have_gtk" = yes; then
-    echo "$as_me:$LINENO: checking for Gtk includes" >&5
-echo $ECHO_N "checking for Gtk includes... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for Gtk includes" >&5
+echo $ECHO_N "checking for Gtk includes... $ECHO_C" >&6; }
 if test "${ac_cv_gtk_config_cflags+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_cv_gtk_config_cflags=`$pkg_config --cflags $pkgs`
 fi
-echo "$as_me:$LINENO: result: $ac_cv_gtk_config_cflags" >&5
-echo "${ECHO_T}$ac_cv_gtk_config_cflags" >&6
-    echo "$as_me:$LINENO: checking for Gtk libs" >&5
-echo $ECHO_N "checking for Gtk libs... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $ac_cv_gtk_config_cflags" >&5
+echo "${ECHO_T}$ac_cv_gtk_config_cflags" >&6; }
+    echo "$as_me:$LINENO: checking for Gtk libs" >&5
+echo $ECHO_N "checking for Gtk libs... $ECHO_C" >&6; }
 if test "${ac_cv_gtk_config_libs+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_cv_gtk_config_libs=`$pkg_config --libs $pkgs`
 fi
-echo "$as_me:$LINENO: result: $ac_cv_gtk_config_libs" >&5
-echo "${ECHO_T}$ac_cv_gtk_config_libs" >&6
+echo "$as_me:$LINENO: result: $ac_cv_gtk_config_libs" >&5
+echo "${ECHO_T}$ac_cv_gtk_config_libs" >&6; }
   fi
 
   ac_gtk_config_cflags=$ac_cv_gtk_config_cflags
@@ -14941,8 +16989,8 @@ if test "$have_gtk" = yes; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_gnome_open_program+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_gnome_open_program="$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 gnome_open_program=$ac_cv_prog_gnome_open_program
 if test -n "$gnome_open_program"; then
-  echo "$as_me:$LINENO: result: $gnome_open_program" >&5
-echo "${ECHO_T}$gnome_open_program" >&6
+  echo "$as_me:$LINENO: result: $gnome_open_program" >&5
+echo "${ECHO_T}$gnome_open_program" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
   test -n "$gnome_open_program" && break
 done
 
@@ -14981,8 +17031,8 @@ done
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_gnome_url_show_program+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_gnome_url_show_program="$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 gnome_url_show_program=$ac_cv_prog_gnome_url_show_program
 if test -n "$gnome_url_show_program"; then
-  echo "$as_me:$LINENO: result: $gnome_url_show_program" >&5
-echo "${ECHO_T}$gnome_url_show_program" >&6
+  echo "$as_me:$LINENO: result: $gnome_url_show_program" >&5
+echo "${ECHO_T}$gnome_url_show_program" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
   test -n "$gnome_url_show_program" && break
 done
 
 have_motif=no
 with_motif_req=unspecified
 
-# Check whether --with-motif or --without-motif was given.
+# Check whether --with-motif was given.
 if test "${with_motif+set}" = set; then
-  withval="$with_motif"
-  with_motif="$withval"; with_motif_req="$withval"
+  withval=$with_motif; with_motif="$withval"; with_motif_req="$withval"
 else
   with_motif=no
-fi;
+fi
+
 
 
    case "$with_motif" in
@@ -15043,28 +17095,28 @@ fi;
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for Motif headers" >&5
-echo $ECHO_N "checking for Motif headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for Motif headers" >&5
+echo $ECHO_N "checking for Motif headers... $ECHO_C" >&6; }
      d=$with_motif/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for Motif libs" >&5
-echo $ECHO_N "checking for Motif libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for Motif libs" >&5
+echo $ECHO_N "checking for Motif libs... $ECHO_C" >&6; }
      d=$with_motif/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -15095,8 +17147,8 @@ if test "$with_motif" = yes; then
     CPPFLAGS="$CPPFLAGS -I$includedir"
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-  echo "$as_me:$LINENO: checking for Xm/Xm.h" >&5
-echo $ECHO_N "checking for Xm/Xm.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for Xm/Xm.h" >&5
+echo $ECHO_N "checking for Xm/Xm.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_Xm_Xm_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -15113,24 +17165,36 @@ cat >>conftest.$ac_ext <<_ACEOF
 #include <Xm/Xm.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -15139,12 +17203,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_Xm_Xm_h=no
+       ac_cv_header_Xm_Xm_h=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_Xm_Xm_h" >&5
-echo "${ECHO_T}$ac_cv_header_Xm_Xm_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_Xm_Xm_h" >&5
+echo "${ECHO_T}$ac_cv_header_Xm_Xm_h" >&6; }
 if test $ac_cv_header_Xm_Xm_h = yes; then
   have_motif=yes
                      cat >>confdefs.h <<\_ACEOF
@@ -15166,8 +17231,8 @@ if test "$have_motif" = yes; then
     CPPFLAGS="$CPPFLAGS -I$includedir"
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-  echo "$as_me:$LINENO: checking for Xm/ComboBox.h" >&5
-echo $ECHO_N "checking for Xm/ComboBox.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for Xm/ComboBox.h" >&5
+echo $ECHO_N "checking for Xm/ComboBox.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_Xm_ComboBox_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -15184,24 +17249,36 @@ cat >>conftest.$ac_ext <<_ACEOF
 #include <Xm/ComboBox.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -15210,12 +17287,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_Xm_ComboBox_h=no
+       ac_cv_header_Xm_ComboBox_h=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_Xm_ComboBox_h" >&5
-echo "${ECHO_T}$ac_cv_header_Xm_ComboBox_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_Xm_ComboBox_h" >&5
+echo "${ECHO_T}$ac_cv_header_Xm_ComboBox_h" >&6; }
 if test $ac_cv_header_Xm_ComboBox_h = yes; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_XMCOMBOBOX 1
@@ -15236,8 +17314,8 @@ fi
 
 have_lesstif=no
 if test "$have_motif" = yes ; then
-  echo "$as_me:$LINENO: checking whether Motif is really LessTif" >&5
-echo $ECHO_N "checking whether Motif is really LessTif... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking whether Motif is really LessTif" >&5
+echo $ECHO_N "checking whether Motif is really LessTif... $ECHO_C" >&6; }
 if test "${ac_cv_have_lesstif+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -15263,24 +17341,36 @@ long vers = LesstifVersion;
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -15289,13 +17379,14 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_have_lesstif=no
+       ac_cv_have_lesstif=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   CPPFLAGS="$ac_save_CPPFLAGS"
 fi
-echo "$as_me:$LINENO: result: $ac_cv_have_lesstif" >&5
-echo "${ECHO_T}$ac_cv_have_lesstif" >&6
+echo "$as_me:$LINENO: result: $ac_cv_have_lesstif" >&5
+echo "${ECHO_T}$ac_cv_have_lesstif" >&6; }
   have_lesstif=$ac_cv_have_lesstif
 fi
 
@@ -15306,8 +17397,8 @@ lesstif_version_string=unknown
 if test "$have_lesstif" = yes ; then
   ltv=unknown
   echo unknown > conftest-lt
-  echo "$as_me:$LINENO: checking LessTif version number" >&5
-echo $ECHO_N "checking LessTif version number... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking LessTif version number" >&5
+echo $ECHO_N "checking LessTif version number... $ECHO_C" >&6; }
 if test "${ac_cv_lesstif_version_string+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -15339,13 +17430,22 @@ cat >>conftest.$ac_ext <<_ACEOF
                      }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -15361,12 +17461,14 @@ sed 's/^/| /' conftest.$ac_ext >&5
 ac_cv_lesstif_version=unknown
                      ac_cv_lesstif_version_string=unknown
 fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
+
+
   CPPFLAGS="$ac_save_CPPFLAGS"
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lesstif_version_string" >&5
-echo "${ECHO_T}$ac_cv_lesstif_version_string" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lesstif_version_string" >&5
+echo "${ECHO_T}$ac_cv_lesstif_version_string" >&6; }
   rm -f conftest-lt
   lesstif_version=$ac_cv_lesstif_version
   lesstif_version_string=$ac_cv_lesstif_version_string
@@ -15377,8 +17479,8 @@ fi
 if test "$have_motif" = yes ; then
   mtv=unknown
   echo unknown > conftest-mt
-  echo "$as_me:$LINENO: checking Motif version number" >&5
-echo $ECHO_N "checking Motif version number... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking Motif version number" >&5
+echo $ECHO_N "checking Motif version number... $ECHO_C" >&6; }
 if test "${ac_cv_motif_version_string+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -15410,13 +17512,22 @@ cat >>conftest.$ac_ext <<_ACEOF
                      }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -15432,12 +17543,14 @@ sed 's/^/| /' conftest.$ac_ext >&5
 ac_cv_motif_version=unknown
                      ac_cv_motif_version_string=unknown
 fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
+
+
   CPPFLAGS="$ac_save_CPPFLAGS"
 fi
-echo "$as_me:$LINENO: result: $ac_cv_motif_version_string" >&5
-echo "${ECHO_T}$ac_cv_motif_version_string" >&6
+echo "$as_me:$LINENO: result: $ac_cv_motif_version_string" >&5
+echo "${ECHO_T}$ac_cv_motif_version_string" >&6; }
   rm -f conftest-mt
   motif_version=$ac_cv_motif_version
   motif_version_string=$ac_cv_motif_version_string
 
 motif_requires_xpm=no
 if test "$have_motif" = yes ; then
-   echo "$as_me:$LINENO: checking whether Motif requires XPM" >&5
-echo $ECHO_N "checking whether Motif requires XPM... $ECHO_C" >&6
+   echo "$as_me:$LINENO: checking whether Motif requires XPM" >&5
+echo $ECHO_N "checking whether Motif requires XPM... $ECHO_C" >&6; }
    if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
    then
      motif_requires_xpm=yes
-     echo "$as_me:$LINENO: result: maybe" >&5
-echo "${ECHO_T}maybe" >&6
+     echo "$as_me:$LINENO: result: maybe" >&5
+echo "${ECHO_T}maybe" >&6; }
    else
-     echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+     echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
    fi
 fi
 
@@ -15506,8 +17619,8 @@ if test "$have_motif" = yes ; then
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for XpQueryExtension in -lXp" >&5
-echo $ECHO_N "checking for XpQueryExtension in -lXp... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for XpQueryExtension in -lXp" >&5
+echo $ECHO_N "checking for XpQueryExtension in -lXp... $ECHO_C" >&6; }
 if test "${ac_cv_lib_Xp_XpQueryExtension+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -15520,40 +17633,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char XpQueryExtension ();
 int
 main ()
 {
-XpQueryExtension ();
+return XpQueryExtension ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -15562,14 +17687,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_Xp_XpQueryExtension=no
+       ac_cv_lib_Xp_XpQueryExtension=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_Xp_XpQueryExtension" >&5
-echo "${ECHO_T}$ac_cv_lib_Xp_XpQueryExtension" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_Xp_XpQueryExtension" >&5
+echo "${ECHO_T}$ac_cv_lib_Xp_XpQueryExtension" >&6; }
 if test $ac_cv_lib_Xp_XpQueryExtension = yes; then
   have_xp_ext=yes; MOTIF_LIBS="$MOTIF_LIBS -lXp"
 else
@@ -15608,8 +17734,8 @@ if test "$have_motif" = yes ; then
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for _Xsetlocale in -lXintl" >&5
-echo $ECHO_N "checking for _Xsetlocale in -lXintl... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for _Xsetlocale in -lXintl" >&5
+echo $ECHO_N "checking for _Xsetlocale in -lXintl... $ECHO_C" >&6; }
 if test "${ac_cv_lib_Xintl__Xsetlocale+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -15622,40 +17748,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char _Xsetlocale ();
 int
 main ()
 {
-_Xsetlocale ();
+return _Xsetlocale ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -15664,14 +17802,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_Xintl__Xsetlocale=no
+       ac_cv_lib_Xintl__Xsetlocale=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_Xintl__Xsetlocale" >&5
-echo "${ECHO_T}$ac_cv_lib_Xintl__Xsetlocale" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_Xintl__Xsetlocale" >&5
+echo "${ECHO_T}$ac_cv_lib_Xintl__Xsetlocale" >&6; }
 if test $ac_cv_lib_Xintl__Xsetlocale = yes; then
   have_xintl=yes
 else
@@ -15699,13 +17838,13 @@ ac_have_mesa_gl=no
 with_gl_req=unspecified
 gl_halfassed=no
 
-# Check whether --with-gl or --without-gl was given.
+# Check whether --with-gl was given.
 if test "${with_gl+set}" = set; then
-  withval="$with_gl"
-  with_gl="$withval"; with_gl_req="$withval"
+  withval=$with_gl; with_gl="$withval"; with_gl_req="$withval"
 else
   with_gl=yes
-fi;
+fi
+
 
 
    case "$with_gl" in
@@ -15713,28 +17852,28 @@ fi;
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for GL headers" >&5
-echo $ECHO_N "checking for GL headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for GL headers" >&5
+echo $ECHO_N "checking for GL headers... $ECHO_C" >&6; }
      d=$with_gl/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for GL libs" >&5
-echo $ECHO_N "checking for GL libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for GL libs" >&5
+echo $ECHO_N "checking for GL libs... $ECHO_C" >&6; }
      d=$with_gl/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -15763,17 +17902,17 @@ if test "$with_gl" = yes; then
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   if test "${ac_cv_header_GL_gl_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for GL/gl.h" >&5
-echo $ECHO_N "checking for GL/gl.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for GL/gl.h" >&5
+echo $ECHO_N "checking for GL/gl.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_GL_gl_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_GL_gl_h" >&5
-echo "${ECHO_T}$ac_cv_header_GL_gl_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_GL_gl_h" >&5
+echo "${ECHO_T}$ac_cv_header_GL_gl_h" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking GL/gl.h usability" >&5
-echo $ECHO_N "checking GL/gl.h usability... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking GL/gl.h usability" >&5
+echo $ECHO_N "checking GL/gl.h usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -15784,24 +17923,36 @@ $ac_includes_default
 #include <GL/gl.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -15810,15 +17961,16 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+       ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
 
 # Is the header present?
-echo "$as_me:$LINENO: checking GL/gl.h presence" >&5
-echo $ECHO_N "checking GL/gl.h presence... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking GL/gl.h presence" >&5
+echo $ECHO_N "checking GL/gl.h presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -15827,8 +17979,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <GL/gl.h>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -15852,9 +18009,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -15878,25 +18036,18 @@ echo "$as_me: WARNING: GL/gl.h:     section \"Present But Cannot Be Compiled\""
 echo "$as_me: WARNING: GL/gl.h: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: GL/gl.h: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: GL/gl.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for GL/gl.h" >&5
-echo $ECHO_N "checking for GL/gl.h... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for GL/gl.h" >&5
+echo $ECHO_N "checking for GL/gl.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_GL_gl_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_cv_header_GL_gl_h=$ac_header_preproc
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_GL_gl_h" >&5
-echo "${ECHO_T}$ac_cv_header_GL_gl_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_GL_gl_h" >&5
+echo "${ECHO_T}$ac_cv_header_GL_gl_h" >&6; }
 
 fi
 if test $ac_cv_header_GL_gl_h = yes; then
@@ -15914,8 +18065,8 @@ fi
     CPPFLAGS="$CPPFLAGS -I$includedir"
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-  echo "$as_me:$LINENO: checking for GL/glx.h" >&5
-echo $ECHO_N "checking for GL/glx.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for GL/glx.h" >&5
+echo $ECHO_N "checking for GL/glx.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_GL_glx_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -15930,24 +18081,36 @@ cat >>conftest.$ac_ext <<_ACEOF
 #include <GL/glx.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -15956,12 +18119,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_GL_glx_h=no
+       ac_cv_header_GL_glx_h=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_GL_glx_h" >&5
-echo "${ECHO_T}$ac_cv_header_GL_glx_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_GL_glx_h" >&5
+echo "${ECHO_T}$ac_cv_header_GL_glx_h" >&6; }
 if test $ac_cv_header_GL_glx_h = yes; then
   have_gl=yes
 else
@@ -15979,8 +18143,8 @@ fi
     # We need to know whether it's MesaGL so that we know which libraries
     # to link against.
     #
-    echo "$as_me:$LINENO: checking whether GL is really MesaGL" >&5
-echo $ECHO_N "checking whether GL is really MesaGL... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking whether GL is really MesaGL" >&5
+echo $ECHO_N "checking whether GL is really MesaGL... $ECHO_C" >&6; }
 if test "${ac_cv_have_mesa_gl+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -16009,8 +18173,8 @@ rm -f conftest*
   CPPFLAGS="$ac_save_CPPFLAGS"
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_have_mesa_gl" >&5
-echo "${ECHO_T}$ac_cv_have_mesa_gl" >&6
+echo "$as_me:$LINENO: result: $ac_cv_have_mesa_gl" >&5
+echo "${ECHO_T}$ac_cv_have_mesa_gl" >&6; }
     ac_have_mesa_gl=$ac_cv_have_mesa_gl
 
 
@@ -16023,8 +18187,8 @@ echo "${ECHO_T}$ac_cv_have_mesa_gl" >&6
     # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.)
     #
     if test "$ac_have_mesa_gl" = yes; then
-      echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5
-echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6
+      echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5
+echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6; }
 if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -16037,40 +18201,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char pthread_create ();
 int
 main ()
 {
-pthread_create ();
+return pthread_create ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -16079,14 +18255,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_pthread_pthread_create=no
+       ac_cv_lib_pthread_pthread_create=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5
-echo "${ECHO_T}$ac_cv_lib_pthread_pthread_create" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5
+echo "${ECHO_T}$ac_cv_lib_pthread_pthread_create" >&6; }
 if test $ac_cv_lib_pthread_pthread_create = yes; then
   GL_LIBS="-lpthread"
 fi
@@ -16117,8 +18294,8 @@ fi
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for glXCreateContext in -lMesaGL" >&5
-echo $ECHO_N "checking for glXCreateContext in -lMesaGL... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for glXCreateContext in -lMesaGL" >&5
+echo $ECHO_N "checking for glXCreateContext in -lMesaGL... $ECHO_C" >&6; }
 if test "${ac_cv_lib_MesaGL_glXCreateContext+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -16131,40 +18308,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char glXCreateContext ();
 int
 main ()
 {
-glXCreateContext ();
+return glXCreateContext ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -16173,14 +18362,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_MesaGL_glXCreateContext=no
+       ac_cv_lib_MesaGL_glXCreateContext=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_MesaGL_glXCreateContext" >&5
-echo "${ECHO_T}$ac_cv_lib_MesaGL_glXCreateContext" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_MesaGL_glXCreateContext" >&5
+echo "${ECHO_T}$ac_cv_lib_MesaGL_glXCreateContext" >&6; }
 if test $ac_cv_lib_MesaGL_glXCreateContext = yes; then
   gl_lib_1="MesaGL"
                       GL_LIBS="-lMesaGL -lMesaGLU $VIDMODE_LIBS $GL_LIBS"
@@ -16210,8 +18400,8 @@ fi
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for glXCreateContext in -lGL" >&5
-echo $ECHO_N "checking for glXCreateContext in -lGL... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for glXCreateContext in -lGL" >&5
+echo $ECHO_N "checking for glXCreateContext in -lGL... $ECHO_C" >&6; }
 if test "${ac_cv_lib_GL_glXCreateContext+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -16224,40 +18414,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char glXCreateContext ();
 int
 main ()
 {
-glXCreateContext ();
+return glXCreateContext ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -16266,14 +18468,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_GL_glXCreateContext=no
+       ac_cv_lib_GL_glXCreateContext=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_GL_glXCreateContext" >&5
-echo "${ECHO_T}$ac_cv_lib_GL_glXCreateContext" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_GL_glXCreateContext" >&5
+echo "${ECHO_T}$ac_cv_lib_GL_glXCreateContext" >&6; }
 if test $ac_cv_lib_GL_glXCreateContext = yes; then
   gl_lib_1="GL"
                       GL_LIBS="-lGL -lGLU $VIDMODE_LIBS $GL_LIBS"
@@ -16315,13 +18518,13 @@ _ACEOF
     #
     if test "$ac_have_mesa_gl" = yes; then
 
-      echo "$as_me:$LINENO: checking MesaGL version number" >&5
-echo $ECHO_N "checking MesaGL version number... $ECHO_C" >&6
+      echo "$as_me:$LINENO: checking MesaGL version number" >&5
+echo $ECHO_N "checking MesaGL version number... $ECHO_C" >&6; }
 if test "${ac_cv_mesagl_version_string+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16328 "configure"
+#line 18531 "configure"
 #include "confdefs.h"
 #include <GL/gl.h>
 #ifndef MESA_MAJOR_VERSION
@@ -16391,8 +18594,8 @@ EOF
          ac_cv_mesagl_version_string=$ac_mesagl_version_string
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_mesagl_version_string" >&5
-echo "${ECHO_T}$ac_cv_mesagl_version_string" >&6
+echo "$as_me:$LINENO: result: $ac_cv_mesagl_version_string" >&5
+echo "${ECHO_T}$ac_cv_mesagl_version_string" >&6; }
       ac_mesagl_version=$ac_cv_mesagl_version
       ac_mesagl_version_string=$ac_cv_mesagl_version_string
     fi
@@ -16418,9 +18621,9 @@ echo "${ECHO_T}$ac_cv_mesagl_version_string" >&6
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
   as_ac_Lib=`echo "ac_cv_lib_$gl_lib_1''_glBindTexture" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for glBindTexture in -l$gl_lib_1" >&5
-echo $ECHO_N "checking for glBindTexture in -l$gl_lib_1... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Lib+set}\" = set"; then
+echo "$as_me:$LINENO: checking for glBindTexture in -l$gl_lib_1" >&5
+echo $ECHO_N "checking for glBindTexture in -l$gl_lib_1... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -16432,40 +18635,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char glBindTexture ();
 int
 main ()
 {
-glBindTexture ();
+return glBindTexture ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -16474,14 +18689,16 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_Lib=no"
+       eval "$as_ac_Lib=no"
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Lib'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 if test `eval echo '${'$as_ac_Lib'}'` = yes; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_GLBINDTEXTURE 1
@@ -16513,13 +18730,13 @@ have_gle=no
 with_gle_req=unspecified
 gle_halfassed=no
 
-# Check whether --with-gle or --without-gle was given.
+# Check whether --with-gle was given.
 if test "${with_gle+set}" = set; then
-  withval="$with_gle"
-  with_gle="$withval"; with_gle_req="$withval"
+  withval=$with_gle; with_gle="$withval"; with_gle_req="$withval"
 else
   with_gle=yes
-fi;
+fi
+
 
 
    case "$with_gle" in
@@ -16527,28 +18744,28 @@ fi;
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for GLE headers" >&5
-echo $ECHO_N "checking for GLE headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for GLE headers" >&5
+echo $ECHO_N "checking for GLE headers... $ECHO_C" >&6; }
      d=$with_gle/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for GLE libs" >&5
-echo $ECHO_N "checking for GLE libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for GLE libs" >&5
+echo $ECHO_N "checking for GLE libs... $ECHO_C" >&6; }
      d=$with_gle/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -16578,8 +18795,8 @@ elif test "$with_gle" = yes; then
     CPPFLAGS="$CPPFLAGS -I$includedir"
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-  echo "$as_me:$LINENO: checking for GL/gle.h" >&5
-echo $ECHO_N "checking for GL/gle.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for GL/gle.h" >&5
+echo $ECHO_N "checking for GL/gle.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_GL_gle_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -16594,24 +18811,36 @@ cat >>conftest.$ac_ext <<_ACEOF
 #include <GL/gle.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -16620,12 +18849,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_GL_gle_h=no
+       ac_cv_header_GL_gle_h=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_GL_gle_h" >&5
-echo "${ECHO_T}$ac_cv_header_GL_gle_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_GL_gle_h" >&5
+echo "${ECHO_T}$ac_cv_header_GL_gle_h" >&6; }
 if test $ac_cv_header_GL_gle_h = yes; then
   have_gle3=yes
 else
@@ -16643,8 +18873,8 @@ fi
     CPPFLAGS="$CPPFLAGS -I$includedir"
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-  echo "$as_me:$LINENO: checking for GL/gutil.h" >&5
-echo $ECHO_N "checking for GL/gutil.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for GL/gutil.h" >&5
+echo $ECHO_N "checking for GL/gutil.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_GL_gutil_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -16659,24 +18889,36 @@ cat >>conftest.$ac_ext <<_ACEOF
 #include <GL/gutil.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -16685,12 +18927,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_GL_gutil_h=no
+       ac_cv_header_GL_gutil_h=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_GL_gutil_h" >&5
-echo "${ECHO_T}$ac_cv_header_GL_gutil_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_GL_gutil_h" >&5
+echo "${ECHO_T}$ac_cv_header_GL_gutil_h" >&6; }
 if test $ac_cv_header_GL_gutil_h = yes; then
   have_gle=yes
 else
@@ -16706,8 +18949,8 @@ fi
     CPPFLAGS="$CPPFLAGS -I$includedir"
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-  echo "$as_me:$LINENO: checking for GL/tube.h" >&5
-echo $ECHO_N "checking for GL/tube.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for GL/tube.h" >&5
+echo $ECHO_N "checking for GL/tube.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_GL_tube_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -16722,24 +18965,36 @@ cat >>conftest.$ac_ext <<_ACEOF
 #include <GL/tube.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -16748,12 +19003,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_GL_tube_h=no
+       ac_cv_header_GL_tube_h=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_GL_tube_h" >&5
-echo "${ECHO_T}$ac_cv_header_GL_tube_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_GL_tube_h" >&5
+echo "${ECHO_T}$ac_cv_header_GL_tube_h" >&6; }
 if test $ac_cv_header_GL_tube_h = yes; then
   have_gle=yes
 else
@@ -16785,8 +19041,8 @@ fi
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for gleCreateGC in -lgle" >&5
-echo $ECHO_N "checking for gleCreateGC in -lgle... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for gleCreateGC in -lgle" >&5
+echo $ECHO_N "checking for gleCreateGC in -lgle... $ECHO_C" >&6; }
 if test "${ac_cv_lib_gle_gleCreateGC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -16799,40 +19055,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char gleCreateGC ();
 int
 main ()
 {
-gleCreateGC ();
+return gleCreateGC ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -16841,14 +19109,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_gle_gleCreateGC=no
+       ac_cv_lib_gle_gleCreateGC=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_gle_gleCreateGC" >&5
-echo "${ECHO_T}$ac_cv_lib_gle_gleCreateGC" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_gle_gleCreateGC" >&5
+echo "${ECHO_T}$ac_cv_lib_gle_gleCreateGC" >&6; }
 if test $ac_cv_lib_gle_gleCreateGC = yes; then
   have_gle=yes; gle_halfassed=no; GLE_LIBS="-lgle"
 fi
@@ -16892,8 +19161,8 @@ fi
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for uview_direction in -lgle" >&5
-echo $ECHO_N "checking for uview_direction in -lgle... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for uview_direction in -lgle" >&5
+echo $ECHO_N "checking for uview_direction in -lgle... $ECHO_C" >&6; }
 if test "${ac_cv_lib_gle_uview_direction+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -16906,40 +19175,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char uview_direction ();
 int
 main ()
 {
-uview_direction ();
+return uview_direction ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -16948,14 +19229,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_gle_uview_direction=no
+       ac_cv_lib_gle_uview_direction=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_gle_uview_direction" >&5
-echo "${ECHO_T}$ac_cv_lib_gle_uview_direction" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_gle_uview_direction" >&5
+echo "${ECHO_T}$ac_cv_lib_gle_uview_direction" >&6; }
 if test $ac_cv_lib_gle_uview_direction = yes; then
   have_gle=yes; gle_halfassed=no
 fi
@@ -16984,8 +19266,8 @@ fi
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for uview_direction_d in -lmatrix" >&5
-echo $ECHO_N "checking for uview_direction_d in -lmatrix... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for uview_direction_d in -lmatrix" >&5
+echo $ECHO_N "checking for uview_direction_d in -lmatrix... $ECHO_C" >&6; }
 if test "${ac_cv_lib_matrix_uview_direction_d+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -16998,40 +19280,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char uview_direction_d ();
 int
 main ()
 {
-uview_direction_d ();
+return uview_direction_d ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -17040,14 +19334,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_matrix_uview_direction_d=no
+       ac_cv_lib_matrix_uview_direction_d=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_matrix_uview_direction_d" >&5
-echo "${ECHO_T}$ac_cv_lib_matrix_uview_direction_d" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_matrix_uview_direction_d" >&5
+echo "${ECHO_T}$ac_cv_lib_matrix_uview_direction_d" >&6; }
 if test $ac_cv_lib_matrix_uview_direction_d = yes; then
   have_gle=yes; gle_halfassed=no;
                       GLE_LIBS="$GLE_LIBS -lmatrix"
 have_gdk_pixbuf=no
 with_gdk_pixbuf_req=unspecified
 
-# Check whether --with-pixbuf or --without-pixbuf was given.
+# Check whether --with-pixbuf was given.
 if test "${with_pixbuf+set}" = set; then
-  withval="$with_pixbuf"
-  with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"
+  withval=$with_pixbuf; with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"
 else
   with_gdk_pixbuf=yes
-fi;
+fi
+
 
 # if --with-pixbuf=/directory/ was specified, remember that directory so that
 # we can also look for the `gdk-pixbuf-config' program in that directory.
@@ -17118,28 +19413,28 @@ esac
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for GDK_PIXBUF headers" >&5
-echo $ECHO_N "checking for GDK_PIXBUF headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for GDK_PIXBUF headers" >&5
+echo $ECHO_N "checking for GDK_PIXBUF headers... $ECHO_C" >&6; }
      d=$with_gdk_pixbuf/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for GDK_PIXBUF libs" >&5
-echo $ECHO_N "checking for GDK_PIXBUF libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for GDK_PIXBUF libs" >&5
+echo $ECHO_N "checking for GDK_PIXBUF libs... $ECHO_C" >&6; }
      d=$with_gdk_pixbuf/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -17173,24 +19468,24 @@ if test "$with_gdk_pixbuf" = yes; then
   have_gdk_pixbuf="$ok"
 
   if test "$have_gdk_pixbuf" = yes; then
-    echo "$as_me:$LINENO: checking for gdk-pixbuf includes" >&5
-echo $ECHO_N "checking for gdk-pixbuf includes... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for gdk-pixbuf includes" >&5
+echo $ECHO_N "checking for gdk-pixbuf includes... $ECHO_C" >&6; }
 if test "${ac_cv_gdk_pixbuf_config_cflags+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_cv_gdk_pixbuf_config_cflags=`$pkg_config --cflags $pkgs`
 fi
-echo "$as_me:$LINENO: result: $ac_cv_gdk_pixbuf_config_cflags" >&5
-echo "${ECHO_T}$ac_cv_gdk_pixbuf_config_cflags" >&6
-    echo "$as_me:$LINENO: checking for gdk-pixbuf libs" >&5
-echo $ECHO_N "checking for gdk-pixbuf libs... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $ac_cv_gdk_pixbuf_config_cflags" >&5
+echo "${ECHO_T}$ac_cv_gdk_pixbuf_config_cflags" >&6; }
+    echo "$as_me:$LINENO: checking for gdk-pixbuf libs" >&5
+echo $ECHO_N "checking for gdk-pixbuf libs... $ECHO_C" >&6; }
 if test "${ac_cv_gdk_pixbuf_config_libs+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_cv_gdk_pixbuf_config_libs=`$pkg_config --libs $pkgs`
 fi
-echo "$as_me:$LINENO: result: $ac_cv_gdk_pixbuf_config_libs" >&5
-echo "${ECHO_T}$ac_cv_gdk_pixbuf_config_libs" >&6
+echo "$as_me:$LINENO: result: $ac_cv_gdk_pixbuf_config_libs" >&5
+echo "${ECHO_T}$ac_cv_gdk_pixbuf_config_libs" >&6; }
   fi
 
   ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags
@@ -17214,17 +19509,17 @@ echo "${ECHO_T}$ac_cv_gdk_pixbuf_config_libs" >&6
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   if test "${ac_cv_header_gdk_pixbuf_gdk_pixbuf_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for gdk-pixbuf/gdk-pixbuf.h" >&5
-echo $ECHO_N "checking for gdk-pixbuf/gdk-pixbuf.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for gdk-pixbuf/gdk-pixbuf.h" >&5
+echo $ECHO_N "checking for gdk-pixbuf/gdk-pixbuf.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_gdk_pixbuf_gdk_pixbuf_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_gdk_pixbuf_gdk_pixbuf_h" >&5
-echo "${ECHO_T}$ac_cv_header_gdk_pixbuf_gdk_pixbuf_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_gdk_pixbuf_gdk_pixbuf_h" >&5
+echo "${ECHO_T}$ac_cv_header_gdk_pixbuf_gdk_pixbuf_h" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking gdk-pixbuf/gdk-pixbuf.h usability" >&5
-echo $ECHO_N "checking gdk-pixbuf/gdk-pixbuf.h usability... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking gdk-pixbuf/gdk-pixbuf.h usability" >&5
+echo $ECHO_N "checking gdk-pixbuf/gdk-pixbuf.h usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -17235,24 +19530,36 @@ $ac_includes_default
 #include <gdk-pixbuf/gdk-pixbuf.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -17261,15 +19568,16 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+       ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
 
 # Is the header present?
-echo "$as_me:$LINENO: checking gdk-pixbuf/gdk-pixbuf.h presence" >&5
-echo $ECHO_N "checking gdk-pixbuf/gdk-pixbuf.h presence... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking gdk-pixbuf/gdk-pixbuf.h presence" >&5
+echo $ECHO_N "checking gdk-pixbuf/gdk-pixbuf.h presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -17278,8 +19586,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <gdk-pixbuf/gdk-pixbuf.h>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -17303,9 +19616,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -17329,25 +19643,18 @@ echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf.h:     section \"Present But Cannot
 echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf.h: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf.h: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for gdk-pixbuf/gdk-pixbuf.h" >&5
-echo $ECHO_N "checking for gdk-pixbuf/gdk-pixbuf.h... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for gdk-pixbuf/gdk-pixbuf.h" >&5
+echo $ECHO_N "checking for gdk-pixbuf/gdk-pixbuf.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_gdk_pixbuf_gdk_pixbuf_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_cv_header_gdk_pixbuf_gdk_pixbuf_h=$ac_header_preproc
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_gdk_pixbuf_gdk_pixbuf_h" >&5
-echo "${ECHO_T}$ac_cv_header_gdk_pixbuf_gdk_pixbuf_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_gdk_pixbuf_gdk_pixbuf_h" >&5
+echo "${ECHO_T}$ac_cv_header_gdk_pixbuf_gdk_pixbuf_h" >&6; }
 
 fi
 if test $ac_cv_header_gdk_pixbuf_gdk_pixbuf_h = yes; then
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   if test "${ac_cv_header_gdk_pixbuf_gdk_pixbuf_xlib_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for gdk-pixbuf/gdk-pixbuf-xlib.h" >&5
-echo $ECHO_N "checking for gdk-pixbuf/gdk-pixbuf-xlib.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for gdk-pixbuf/gdk-pixbuf-xlib.h" >&5
+echo $ECHO_N "checking for gdk-pixbuf/gdk-pixbuf-xlib.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_gdk_pixbuf_gdk_pixbuf_xlib_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_gdk_pixbuf_gdk_pixbuf_xlib_h" >&5
-echo "${ECHO_T}$ac_cv_header_gdk_pixbuf_gdk_pixbuf_xlib_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_gdk_pixbuf_gdk_pixbuf_xlib_h" >&5
+echo "${ECHO_T}$ac_cv_header_gdk_pixbuf_gdk_pixbuf_xlib_h" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking gdk-pixbuf/gdk-pixbuf-xlib.h usability" >&5
-echo $ECHO_N "checking gdk-pixbuf/gdk-pixbuf-xlib.h usability... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking gdk-pixbuf/gdk-pixbuf-xlib.h usability" >&5
+echo $ECHO_N "checking gdk-pixbuf/gdk-pixbuf-xlib.h usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -17389,24 +19696,36 @@ $ac_includes_default
 #include <gdk-pixbuf/gdk-pixbuf-xlib.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -17415,15 +19734,16 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+       ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
 
 # Is the header present?
-echo "$as_me:$LINENO: checking gdk-pixbuf/gdk-pixbuf-xlib.h presence" >&5
-echo $ECHO_N "checking gdk-pixbuf/gdk-pixbuf-xlib.h presence... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking gdk-pixbuf/gdk-pixbuf-xlib.h presence" >&5
+echo $ECHO_N "checking gdk-pixbuf/gdk-pixbuf-xlib.h presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -17432,8 +19752,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <gdk-pixbuf/gdk-pixbuf-xlib.h>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -17457,9 +19782,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -17483,25 +19809,18 @@ echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h:     section \"Present But C
 echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: gdk-pixbuf/gdk-pixbuf-xlib.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for gdk-pixbuf/gdk-pixbuf-xlib.h" >&5
-echo $ECHO_N "checking for gdk-pixbuf/gdk-pixbuf-xlib.h... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for gdk-pixbuf/gdk-pixbuf-xlib.h" >&5
+echo $ECHO_N "checking for gdk-pixbuf/gdk-pixbuf-xlib.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_gdk_pixbuf_gdk_pixbuf_xlib_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_cv_header_gdk_pixbuf_gdk_pixbuf_xlib_h=$ac_header_preproc
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_gdk_pixbuf_gdk_pixbuf_xlib_h" >&5
-echo "${ECHO_T}$ac_cv_header_gdk_pixbuf_gdk_pixbuf_xlib_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_gdk_pixbuf_gdk_pixbuf_xlib_h" >&5
+echo "${ECHO_T}$ac_cv_header_gdk_pixbuf_gdk_pixbuf_xlib_h" >&6; }
 
 fi
 if test $ac_cv_header_gdk_pixbuf_gdk_pixbuf_xlib_h = yes; then
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   if test "${ac_cv_header_gdk_pixbuf_xlib_gdk_pixbuf_xlib_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for gdk-pixbuf-xlib/gdk-pixbuf-xlib.h" >&5
-echo $ECHO_N "checking for gdk-pixbuf-xlib/gdk-pixbuf-xlib.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for gdk-pixbuf-xlib/gdk-pixbuf-xlib.h" >&5
+echo $ECHO_N "checking for gdk-pixbuf-xlib/gdk-pixbuf-xlib.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_gdk_pixbuf_xlib_gdk_pixbuf_xlib_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_gdk_pixbuf_xlib_gdk_pixbuf_xlib_h" >&5
-echo "${ECHO_T}$ac_cv_header_gdk_pixbuf_xlib_gdk_pixbuf_xlib_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_gdk_pixbuf_xlib_gdk_pixbuf_xlib_h" >&5
+echo "${ECHO_T}$ac_cv_header_gdk_pixbuf_xlib_gdk_pixbuf_xlib_h" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking gdk-pixbuf-xlib/gdk-pixbuf-xlib.h usability" >&5
-echo $ECHO_N "checking gdk-pixbuf-xlib/gdk-pixbuf-xlib.h usability... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking gdk-pixbuf-xlib/gdk-pixbuf-xlib.h usability" >&5
+echo $ECHO_N "checking gdk-pixbuf-xlib/gdk-pixbuf-xlib.h usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -17544,24 +19863,36 @@ $ac_includes_default
 #include <gdk-pixbuf-xlib/gdk-pixbuf-xlib.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -17570,15 +19901,16 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+       ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
 
 # Is the header present?
-echo "$as_me:$LINENO: checking gdk-pixbuf-xlib/gdk-pixbuf-xlib.h presence" >&5
-echo $ECHO_N "checking gdk-pixbuf-xlib/gdk-pixbuf-xlib.h presence... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking gdk-pixbuf-xlib/gdk-pixbuf-xlib.h presence" >&5
+echo $ECHO_N "checking gdk-pixbuf-xlib/gdk-pixbuf-xlib.h presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -17587,8 +19919,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <gdk-pixbuf-xlib/gdk-pixbuf-xlib.h>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -17612,9 +19949,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -17638,25 +19976,18 @@ echo "$as_me: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h:     section \"Present
 echo "$as_me: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: gdk-pixbuf-xlib/gdk-pixbuf-xlib.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for gdk-pixbuf-xlib/gdk-pixbuf-xlib.h" >&5
-echo $ECHO_N "checking for gdk-pixbuf-xlib/gdk-pixbuf-xlib.h... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for gdk-pixbuf-xlib/gdk-pixbuf-xlib.h" >&5
+echo $ECHO_N "checking for gdk-pixbuf-xlib/gdk-pixbuf-xlib.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_gdk_pixbuf_xlib_gdk_pixbuf_xlib_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_cv_header_gdk_pixbuf_xlib_gdk_pixbuf_xlib_h=$ac_header_preproc
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_gdk_pixbuf_xlib_gdk_pixbuf_xlib_h" >&5
-echo "${ECHO_T}$ac_cv_header_gdk_pixbuf_xlib_gdk_pixbuf_xlib_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_gdk_pixbuf_xlib_gdk_pixbuf_xlib_h" >&5
+echo "${ECHO_T}$ac_cv_header_gdk_pixbuf_xlib_gdk_pixbuf_xlib_h" >&6; }
 
 fi
 if test $ac_cv_header_gdk_pixbuf_xlib_gdk_pixbuf_xlib_h = yes; then
@@ -17676,8 +20007,8 @@ fi
     have_gdk_pixbuf=no
     gdk_pixbuf_halfassed=yes
 
-    echo "$as_me:$LINENO: result: checking for gdk_pixbuf usability..." >&5
-echo "${ECHO_T}checking for gdk_pixbuf usability..." >&6
+    echo "$as_me:$LINENO: result: checking for gdk_pixbuf usability..." >&5
+echo "${ECHO_T}checking for gdk_pixbuf usability..." >&6; }
 
     # library A...
 
@@ -17697,8 +20028,8 @@ echo "${ECHO_T}checking for gdk_pixbuf usability..." >&6
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for gdk_pixbuf_new_from_file in -lc" >&5
-echo $ECHO_N "checking for gdk_pixbuf_new_from_file in -lc... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for gdk_pixbuf_new_from_file in -lc" >&5
+echo $ECHO_N "checking for gdk_pixbuf_new_from_file in -lc... $ECHO_C" >&6; }
 if test "${ac_cv_lib_c_gdk_pixbuf_new_from_file+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -17711,40 +20042,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char gdk_pixbuf_new_from_file ();
 int
 main ()
 {
-gdk_pixbuf_new_from_file ();
+return gdk_pixbuf_new_from_file ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -17753,14 +20096,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_c_gdk_pixbuf_new_from_file=no
+       ac_cv_lib_c_gdk_pixbuf_new_from_file=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_c_gdk_pixbuf_new_from_file" >&5
-echo "${ECHO_T}$ac_cv_lib_c_gdk_pixbuf_new_from_file" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_c_gdk_pixbuf_new_from_file" >&5
+echo "${ECHO_T}$ac_cv_lib_c_gdk_pixbuf_new_from_file" >&6; }
 if test $ac_cv_lib_c_gdk_pixbuf_new_from_file = yes; then
   have_gdk_pixbuf=yes
 fi
@@ -17789,8 +20133,8 @@ fi
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for gdk_pixbuf_xlib_init in -lc" >&5
-echo $ECHO_N "checking for gdk_pixbuf_xlib_init in -lc... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for gdk_pixbuf_xlib_init in -lc" >&5
+echo $ECHO_N "checking for gdk_pixbuf_xlib_init in -lc... $ECHO_C" >&6; }
 if test "${ac_cv_lib_c_gdk_pixbuf_xlib_init+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -17803,40 +20147,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char gdk_pixbuf_xlib_init ();
 int
 main ()
 {
-gdk_pixbuf_xlib_init ();
+return gdk_pixbuf_xlib_init ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -17845,14 +20201,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_c_gdk_pixbuf_xlib_init=no
+       ac_cv_lib_c_gdk_pixbuf_xlib_init=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_c_gdk_pixbuf_xlib_init" >&5
-echo "${ECHO_T}$ac_cv_lib_c_gdk_pixbuf_xlib_init" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_c_gdk_pixbuf_xlib_init" >&5
+echo "${ECHO_T}$ac_cv_lib_c_gdk_pixbuf_xlib_init" >&6; }
 if test $ac_cv_lib_c_gdk_pixbuf_xlib_init = yes; then
   have_gdk_pixbuf=yes
                       gdk_pixbuf_halfassed=no
@@ -17873,8 +20230,8 @@ fi
 _ACEOF
 
   else
-    echo "$as_me:$LINENO: result: checking for gdk_pixbuf usability... no" >&5
-echo "${ECHO_T}checking for gdk_pixbuf usability... no" >&6
+    echo "$as_me:$LINENO: result: checking for gdk_pixbuf usability... no" >&5
+echo "${ECHO_T}checking for gdk_pixbuf usability... no" >&6; }
   fi
 fi
 
 have_xpm=no
 with_xpm_req=unspecified
 
-# Check whether --with-xpm or --without-xpm was given.
+# Check whether --with-xpm was given.
 if test "${with_xpm+set}" = set; then
-  withval="$with_xpm"
-  with_xpm="$withval"; with_xpm_req="$withval"
+  withval=$with_xpm; with_xpm="$withval"; with_xpm_req="$withval"
 else
   with_xpm=yes
-fi;
+fi
+
 
 
    case "$with_xpm" in
@@ -17902,28 +20259,28 @@ fi;
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for XPM headers" >&5
-echo $ECHO_N "checking for XPM headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for XPM headers" >&5
+echo $ECHO_N "checking for XPM headers... $ECHO_C" >&6; }
      d=$with_xpm/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for XPM libs" >&5
-echo $ECHO_N "checking for XPM libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for XPM libs" >&5
+echo $ECHO_N "checking for XPM libs... $ECHO_C" >&6; }
      d=$with_xpm/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -17948,8 +20305,8 @@ if test "$with_xpm" = yes; then
     CPPFLAGS="$CPPFLAGS -I$includedir"
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-  echo "$as_me:$LINENO: checking for X11/xpm.h" >&5
-echo $ECHO_N "checking for X11/xpm.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for X11/xpm.h" >&5
+echo $ECHO_N "checking for X11/xpm.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_X11_xpm_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -17964,24 +20321,36 @@ cat >>conftest.$ac_ext <<_ACEOF
 #include <X11/xpm.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -17990,12 +20359,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_X11_xpm_h=no
+       ac_cv_header_X11_xpm_h=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_X11_xpm_h" >&5
-echo "${ECHO_T}$ac_cv_header_X11_xpm_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_X11_xpm_h" >&5
+echo "${ECHO_T}$ac_cv_header_X11_xpm_h" >&6; }
 if test $ac_cv_header_X11_xpm_h = yes; then
   have_xpm=yes
                     cat >>confdefs.h <<\_ACEOF
@@ -18036,13 +20406,13 @@ have_jpeg=no
 with_jpeg_req=unspecified
 jpeg_halfassed=no
 
-# Check whether --with-jpeg or --without-jpeg was given.
+# Check whether --with-jpeg was given.
 if test "${with_jpeg+set}" = set; then
-  withval="$with_jpeg"
-  with_jpeg="$withval"; with_jpeg_req="$withval"
+  withval=$with_jpeg; with_jpeg="$withval"; with_jpeg_req="$withval"
 else
   with_jpeg=yes
-fi;
+fi
+
 
 
    case "$with_jpeg" in
@@ -18050,28 +20420,28 @@ fi;
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for JPEG headers" >&5
-echo $ECHO_N "checking for JPEG headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for JPEG headers" >&5
+echo $ECHO_N "checking for JPEG headers... $ECHO_C" >&6; }
      d=$with_jpeg/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for JPEG libs" >&5
-echo $ECHO_N "checking for JPEG libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for JPEG libs" >&5
+echo $ECHO_N "checking for JPEG libs... $ECHO_C" >&6; }
      d=$with_jpeg/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -18104,17 +20474,17 @@ if test "$with_jpeg" = yes; then
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   if test "${ac_cv_header_jpeglib_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for jpeglib.h" >&5
-echo $ECHO_N "checking for jpeglib.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for jpeglib.h" >&5
+echo $ECHO_N "checking for jpeglib.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_jpeglib_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_jpeglib_h" >&5
-echo "${ECHO_T}$ac_cv_header_jpeglib_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_jpeglib_h" >&5
+echo "${ECHO_T}$ac_cv_header_jpeglib_h" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking jpeglib.h usability" >&5
-echo $ECHO_N "checking jpeglib.h usability... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking jpeglib.h usability" >&5
+echo $ECHO_N "checking jpeglib.h usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -18125,24 +20495,36 @@ $ac_includes_default
 #include <jpeglib.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -18151,15 +20533,16 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+       ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
 
 # Is the header present?
-echo "$as_me:$LINENO: checking jpeglib.h presence" >&5
-echo $ECHO_N "checking jpeglib.h presence... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking jpeglib.h presence" >&5
+echo $ECHO_N "checking jpeglib.h presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -18168,8 +20551,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <jpeglib.h>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -18193,9 +20581,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -18219,25 +20608,18 @@ echo "$as_me: WARNING: jpeglib.h:     section \"Present But Cannot Be Compiled\"
 echo "$as_me: WARNING: jpeglib.h: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: jpeglib.h: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: jpeglib.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for jpeglib.h" >&5
-echo $ECHO_N "checking for jpeglib.h... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for jpeglib.h" >&5
+echo $ECHO_N "checking for jpeglib.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_jpeglib_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_cv_header_jpeglib_h=$ac_header_preproc
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_jpeglib_h" >&5
-echo "${ECHO_T}$ac_cv_header_jpeglib_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_jpeglib_h" >&5
+echo "${ECHO_T}$ac_cv_header_jpeglib_h" >&6; }
 
 fi
 if test $ac_cv_header_jpeglib_h = yes; then
@@ -18268,8 +20650,8 @@ fi
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for jpeg_start_compress in -ljpeg" >&5
-echo $ECHO_N "checking for jpeg_start_compress in -ljpeg... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for jpeg_start_compress in -ljpeg" >&5
+echo $ECHO_N "checking for jpeg_start_compress in -ljpeg... $ECHO_C" >&6; }
 if test "${ac_cv_lib_jpeg_jpeg_start_compress+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -18282,40 +20664,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char jpeg_start_compress ();
 int
 main ()
 {
-jpeg_start_compress ();
+return jpeg_start_compress ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -18324,14 +20718,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_jpeg_jpeg_start_compress=no
+       ac_cv_lib_jpeg_jpeg_start_compress=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_jpeg_jpeg_start_compress" >&5
-echo "${ECHO_T}$ac_cv_lib_jpeg_jpeg_start_compress" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_jpeg_jpeg_start_compress" >&5
+echo "${ECHO_T}$ac_cv_lib_jpeg_jpeg_start_compress" >&6; }
 if test $ac_cv_lib_jpeg_jpeg_start_compress = yes; then
   have_jpeg=yes
                     jpeg_halfassed=no
@@ -18363,18 +20758,19 @@ PTY_LIBS=
 for ac_header in pty.h util.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -18385,24 +20781,36 @@ $ac_includes_default
 #include <$ac_header>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -18411,15 +20819,16 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+       ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
 
 # Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -18428,8 +20837,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -18453,9 +20867,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -18479,25 +20894,19 @@ echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\
 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+              { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 
 fi
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
@@ -18526,8 +20935,8 @@ done
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for forkpty in -lutil" >&5
-echo $ECHO_N "checking for forkpty in -lutil... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for forkpty in -lutil" >&5
+echo $ECHO_N "checking for forkpty in -lutil... $ECHO_C" >&6; }
 if test "${ac_cv_lib_util_forkpty+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -18540,40 +20949,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char forkpty ();
 int
 main ()
 {
-forkpty ();
+return forkpty ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -18582,14 +21003,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_util_forkpty=no
+       ac_cv_lib_util_forkpty=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_util_forkpty" >&5
-echo "${ECHO_T}$ac_cv_lib_util_forkpty" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_util_forkpty" >&5
+echo "${ECHO_T}$ac_cv_lib_util_forkpty" >&6; }
 if test $ac_cv_lib_util_forkpty = yes; then
   PTY_LIBS="-lutil"
                 ac_have_forkpty=yes
@@ -18623,8 +21045,8 @@ if test "$ac_have_forkpty" != yes ; then
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for forkpty in -lc" >&5
-echo $ECHO_N "checking for forkpty in -lc... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for forkpty in -lc" >&5
+echo $ECHO_N "checking for forkpty in -lc... $ECHO_C" >&6; }
 if test "${ac_cv_lib_c_forkpty+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -18637,40 +21059,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char forkpty ();
 int
 main ()
 {
-forkpty ();
+return forkpty ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -18679,14 +21113,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_c_forkpty=no
+       ac_cv_lib_c_forkpty=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_c_forkpty" >&5
-echo "${ECHO_T}$ac_cv_lib_c_forkpty" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_c_forkpty" >&5
+echo "${ECHO_T}$ac_cv_lib_c_forkpty" >&6; }
 if test $ac_cv_lib_c_forkpty = yes; then
   PTY_LIBS=""
                   cat >>confdefs.h <<\_ACEOF
 have_xshm=no
 with_xshm_req=unspecified
 
-# Check whether --with-xshm-ext or --without-xshm-ext was given.
+# Check whether --with-xshm-ext was given.
 if test "${with_xshm_ext+set}" = set; then
-  withval="$with_xshm_ext"
-  with_xshm="$withval"; with_xshm_req="$withval"
+  withval=$with_xshm_ext; with_xshm="$withval"; with_xshm_req="$withval"
 else
   with_xshm=yes
-fi;
+fi
+
 
 
    case "$with_xshm" in
@@ -18724,28 +21159,28 @@ fi;
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for XSHM headers" >&5
-echo $ECHO_N "checking for XSHM headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for XSHM headers" >&5
+echo $ECHO_N "checking for XSHM headers... $ECHO_C" >&6; }
      d=$with_xshm/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for XSHM libs" >&5
-echo $ECHO_N "checking for XSHM libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for XSHM libs" >&5
+echo $ECHO_N "checking for XSHM libs... $ECHO_C" >&6; }
      d=$with_xshm/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -18772,8 +21207,8 @@ if test "$with_xshm" = yes; then
     CPPFLAGS="$CPPFLAGS -I$includedir"
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-  echo "$as_me:$LINENO: checking for X11/extensions/XShm.h" >&5
-echo $ECHO_N "checking for X11/extensions/XShm.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for X11/extensions/XShm.h" >&5
+echo $ECHO_N "checking for X11/extensions/XShm.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_X11_extensions_XShm_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -18788,24 +21223,36 @@ cat >>conftest.$ac_ext <<_ACEOF
 #include <X11/extensions/XShm.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -18814,12 +21261,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_X11_extensions_XShm_h=no
+       ac_cv_header_X11_extensions_XShm_h=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_XShm_h" >&5
-echo "${ECHO_T}$ac_cv_header_X11_extensions_XShm_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_XShm_h" >&5
+echo "${ECHO_T}$ac_cv_header_X11_extensions_XShm_h" >&6; }
 if test $ac_cv_header_X11_extensions_XShm_h = yes; then
   have_xshm=yes
 fi
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   if test "${ac_cv_header_sys_ipc_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for sys/ipc.h" >&5
-echo $ECHO_N "checking for sys/ipc.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for sys/ipc.h" >&5
+echo $ECHO_N "checking for sys/ipc.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_sys_ipc_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_sys_ipc_h" >&5
-echo "${ECHO_T}$ac_cv_header_sys_ipc_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_sys_ipc_h" >&5
+echo "${ECHO_T}$ac_cv_header_sys_ipc_h" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking sys/ipc.h usability" >&5
-echo $ECHO_N "checking sys/ipc.h usability... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking sys/ipc.h usability" >&5
+echo $ECHO_N "checking sys/ipc.h usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -18858,24 +21306,36 @@ $ac_includes_default
 #include <sys/ipc.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -18884,15 +21344,16 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+       ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
 
 # Is the header present?
-echo "$as_me:$LINENO: checking sys/ipc.h presence" >&5
-echo $ECHO_N "checking sys/ipc.h presence... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking sys/ipc.h presence" >&5
+echo $ECHO_N "checking sys/ipc.h presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -18901,8 +21362,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <sys/ipc.h>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -18926,9 +21392,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -18952,25 +21419,18 @@ echo "$as_me: WARNING: sys/ipc.h:     section \"Present But Cannot Be Compiled\"
 echo "$as_me: WARNING: sys/ipc.h: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: sys/ipc.h: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: sys/ipc.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for sys/ipc.h" >&5
-echo $ECHO_N "checking for sys/ipc.h... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for sys/ipc.h" >&5
+echo $ECHO_N "checking for sys/ipc.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_sys_ipc_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_cv_header_sys_ipc_h=$ac_header_preproc
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_sys_ipc_h" >&5
-echo "${ECHO_T}$ac_cv_header_sys_ipc_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_sys_ipc_h" >&5
+echo "${ECHO_T}$ac_cv_header_sys_ipc_h" >&6; }
 
 fi
 if test $ac_cv_header_sys_ipc_h = yes; then
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   if test "${ac_cv_header_sys_shm_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for sys/shm.h" >&5
-echo $ECHO_N "checking for sys/shm.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for sys/shm.h" >&5
+echo $ECHO_N "checking for sys/shm.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_sys_shm_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_sys_shm_h" >&5
-echo "${ECHO_T}$ac_cv_header_sys_shm_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_sys_shm_h" >&5
+echo "${ECHO_T}$ac_cv_header_sys_shm_h" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking sys/shm.h usability" >&5
-echo $ECHO_N "checking sys/shm.h usability... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking sys/shm.h usability" >&5
+echo $ECHO_N "checking sys/shm.h usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -19012,24 +21472,36 @@ $ac_includes_default
 #include <sys/shm.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -19038,15 +21510,16 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+       ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
 
 # Is the header present?
-echo "$as_me:$LINENO: checking sys/shm.h presence" >&5
-echo $ECHO_N "checking sys/shm.h presence... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking sys/shm.h presence" >&5
+echo $ECHO_N "checking sys/shm.h presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -19055,8 +21528,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <sys/shm.h>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -19080,9 +21558,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -19106,25 +21585,18 @@ echo "$as_me: WARNING: sys/shm.h:     section \"Present But Cannot Be Compiled\"
 echo "$as_me: WARNING: sys/shm.h: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: sys/shm.h: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: sys/shm.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for sys/shm.h" >&5
-echo $ECHO_N "checking for sys/shm.h... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for sys/shm.h" >&5
+echo $ECHO_N "checking for sys/shm.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_sys_shm_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_cv_header_sys_shm_h=$ac_header_preproc
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_sys_shm_h" >&5
-echo "${ECHO_T}$ac_cv_header_sys_shm_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_sys_shm_h" >&5
+echo "${ECHO_T}$ac_cv_header_sys_shm_h" >&6; }
 
 fi
 if test $ac_cv_header_sys_shm_h = yes; then
@@ -19162,8 +21634,8 @@ fi
   # note: $X_LIBS includes $x_libraries
   LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
 
-  echo "$as_me:$LINENO: checking for XShmQueryExtension in -lXextSam" >&5
-echo $ECHO_N "checking for XShmQueryExtension in -lXextSam... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for XShmQueryExtension in -lXextSam" >&5
+echo $ECHO_N "checking for XShmQueryExtension in -lXextSam... $ECHO_C" >&6; }
 if test "${ac_cv_lib_XextSam_XShmQueryExtension+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -19176,40 +21648,52 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char XShmQueryExtension ();
 int
 main ()
 {
-XShmQueryExtension ();
+return XShmQueryExtension ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -19218,14 +21702,15 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_XextSam_XShmQueryExtension=no
+       ac_cv_lib_XextSam_XShmQueryExtension=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_XextSam_XShmQueryExtension" >&5
-echo "${ECHO_T}$ac_cv_lib_XextSam_XShmQueryExtension" >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_XextSam_XShmQueryExtension" >&5
+echo "${ECHO_T}$ac_cv_lib_XextSam_XShmQueryExtension" >&6; }
 if test $ac_cv_lib_XextSam_XShmQueryExtension = yes; then
   have_xshm=yes; X_EXTRA_LIBS="$X_EXTRA_LIBS -lXextSam"
 else
 have_xdbe=no
 with_xdbe_req=unspecified
 
-# Check whether --with-xdbe-ext or --without-xdbe-ext was given.
+# Check whether --with-xdbe-ext was given.
 if test "${with_xdbe_ext+set}" = set; then
-  withval="$with_xdbe_ext"
-  with_xdbe="$withval"; with_xdbe_req="$withval"
+  withval=$with_xdbe_ext; with_xdbe="$withval"; with_xdbe_req="$withval"
 else
   with_xdbe=yes
-fi;
+fi
+
 
 
    case "$with_xdbe" in
@@ -19277,28 +21762,28 @@ fi;
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for DOUBLE-BUFFER headers" >&5
-echo $ECHO_N "checking for DOUBLE-BUFFER headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for DOUBLE-BUFFER headers" >&5
+echo $ECHO_N "checking for DOUBLE-BUFFER headers... $ECHO_C" >&6; }
      d=$with_xdbe/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for DOUBLE-BUFFER libs" >&5
-echo $ECHO_N "checking for DOUBLE-BUFFER libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for DOUBLE-BUFFER libs" >&5
+echo $ECHO_N "checking for DOUBLE-BUFFER libs... $ECHO_C" >&6; }
      d=$with_xdbe/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -19324,8 +21809,8 @@ if test "$with_xdbe" = yes; then
     CPPFLAGS="$CPPFLAGS -I$includedir"
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-  echo "$as_me:$LINENO: checking for X11/extensions/Xdbe.h" >&5
-echo $ECHO_N "checking for X11/extensions/Xdbe.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for X11/extensions/Xdbe.h" >&5
+echo $ECHO_N "checking for X11/extensions/Xdbe.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_X11_extensions_Xdbe_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -19340,24 +21825,36 @@ cat >>conftest.$ac_ext <<_ACEOF
 #include <X11/extensions/Xdbe.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -19366,12 +21863,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_X11_extensions_Xdbe_h=no
+       ac_cv_header_X11_extensions_Xdbe_h=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_Xdbe_h" >&5
-echo "${ECHO_T}$ac_cv_header_X11_extensions_Xdbe_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_Xdbe_h" >&5
+echo "${ECHO_T}$ac_cv_header_X11_extensions_Xdbe_h" >&6; }
 if test $ac_cv_header_X11_extensions_Xdbe_h = yes; then
   have_xdbe=yes
 fi
 have_readdisplay=no
 with_readdisplay_req=unspecified
 
-# Check whether --with-readdisplay or --without-readdisplay was given.
+# Check whether --with-readdisplay was given.
 if test "${with_readdisplay+set}" = set; then
-  withval="$with_readdisplay"
-  with_readdisplay="$withval"; with_readdisplay_req="$withval"
+  withval=$with_readdisplay; with_readdisplay="$withval"; with_readdisplay_req="$withval"
 else
   with_readdisplay=yes
-fi;
+fi
+
 
 
    case "$with_readdisplay" in
@@ -19418,28 +21916,28 @@ fi;
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for XReadDisplay headers" >&5
-echo $ECHO_N "checking for XReadDisplay headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for XReadDisplay headers" >&5
+echo $ECHO_N "checking for XReadDisplay headers... $ECHO_C" >&6; }
      d=$with_readdisplay/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for XReadDisplay libs" >&5
-echo $ECHO_N "checking for XReadDisplay libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for XReadDisplay libs" >&5
+echo $ECHO_N "checking for XReadDisplay libs... $ECHO_C" >&6; }
      d=$with_readdisplay/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -19464,8 +21962,8 @@ if test "$with_readdisplay" = yes; then
     CPPFLAGS="$CPPFLAGS -I$includedir"
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-  echo "$as_me:$LINENO: checking for X11/extensions/readdisplay.h" >&5
-echo $ECHO_N "checking for X11/extensions/readdisplay.h... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for X11/extensions/readdisplay.h" >&5
+echo $ECHO_N "checking for X11/extensions/readdisplay.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_X11_extensions_readdisplay_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -19480,24 +21978,36 @@ cat >>conftest.$ac_ext <<_ACEOF
 #include <X11/extensions/readdisplay.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+        { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -19506,12 +22016,13 @@ else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_X11_extensions_readdisplay_h=no
+       ac_cv_header_X11_extensions_readdisplay_h=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_readdisplay_h" >&5
-echo "${ECHO_T}$ac_cv_header_X11_extensions_readdisplay_h" >&6
+echo "$as_me:$LINENO: result: $ac_cv_header_X11_extensions_readdisplay_h" >&5
+echo "${ECHO_T}$ac_cv_header_X11_extensions_readdisplay_h" >&6; }
 if test $ac_cv_header_X11_extensions_readdisplay_h = yes; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_READ_DISPLAY_EXTENSION 1
@@ -19538,26 +22049,26 @@ have_imagedir=no
 with_imagedir_req=unspecified
 
 
-# Check whether --with-image-directory or --without-image-directory was given.
+# Check whether --with-image-directory was given.
 if test "${with_image_directory+set}" = set; then
-  withval="$with_image_directory"
-  with_imagedir="$withval"; with_imagedir_req="$withval"
+  withval=$with_image_directory; with_imagedir="$withval"; with_imagedir_req="$withval"
 else
   with_imagedir=yes
-fi;
+fi
+
 # no HANDLE_X_PATH_ARG for this one
 
 case "$with_imagedir" in
   /*)
     # absolute path
-    echo "$as_me:$LINENO: checking for image directory $with_imagedir" >&5
-echo $ECHO_N "checking for image directory $with_imagedir... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for image directory $with_imagedir" >&5
+echo $ECHO_N "checking for image directory $with_imagedir... $ECHO_C" >&6; }
     if test -d "$with_imagedir" ; then
-      echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+      echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
     else
-      echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+      echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
       with_imagedir=""
     fi
   ;;
@@ -19571,15 +22082,15 @@ echo "${ECHO_T}no" >&6
       "/Library/Desktop Pictures/"              \
     ; do
       if test -z "$with_imagedir"; then
-        echo "$as_me:$LINENO: checking for image directory $dd" >&5
-echo $ECHO_N "checking for image directory $dd... $ECHO_C" >&6
+        echo "$as_me:$LINENO: checking for image directory $dd" >&5
+echo $ECHO_N "checking for image directory $dd... $ECHO_C" >&6; }
         if test -d "$dd" ; then
-          echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+          echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
           with_imagedir="$dd"
         else
-          echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+          echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
         fi
       fi
     done
@@ -19616,26 +22127,26 @@ have_textfile=no
 with_textfile_req=unspecified
 
 
-# Check whether --with-text-file or --without-text-file was given.
+# Check whether --with-text-file was given.
 if test "${with_text_file+set}" = set; then
-  withval="$with_text_file"
-  with_textfile="$withval"; with_textfile_req="$withval"
+  withval=$with_text_file; with_textfile="$withval"; with_textfile_req="$withval"
 else
   with_textfile=yes
-fi;
+fi
+
 # no HANDLE_X_PATH_ARG for this one
 
 case "$with_textfile" in
   /*)
     # absolute path
-    echo "$as_me:$LINENO: checking for text file $with_textfile" >&5
-echo $ECHO_N "checking for text file $with_textfile... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for text file $with_textfile" >&5
+echo $ECHO_N "checking for text file $with_textfile... $ECHO_C" >&6; }
     if test -f "$with_textfile" ; then
-      echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+      echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
     else
-      echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+      echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
       with_textfile=""
     fi
   ;;
@@ -19649,15 +22160,15 @@ echo "${ECHO_T}no" >&6
       "/usr/X11R6/README"                      \
     ; do
       if test -z "$with_textfile"; then
-        echo "$as_me:$LINENO: checking for text file $f" >&5
-echo $ECHO_N "checking for text file $f... $ECHO_C" >&6
+        echo "$as_me:$LINENO: checking for text file $f" >&5
+echo $ECHO_N "checking for text file $f... $ECHO_C" >&6; }
         if test -f "$f" ; then
-          echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+          echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
           with_textfile="$f"
         else
-          echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+          echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
         fi
       fi
     done
@@ -19687,13 +22198,13 @@ have_browser=no
 with_browser_req=unspecified
 
 
-# Check whether --with-browser or --without-browser was given.
+# Check whether --with-browser was given.
 if test "${with_browser+set}" = set; then
-  withval="$with_browser"
-  with_browser="$withval"; with_browser_req="$withval"
+  withval=$with_browser; with_browser="$withval"; with_browser_req="$withval"
 else
   with_browser=no
-fi;
+fi
+
 # no HANDLE_X_PATH_ARG for this one
 
 case "$with_browser" in
@@ -19702,18 +22213,18 @@ case "$with_browser" in
   * )
     WITH_BROWSER=$with_browser
     gnome_open_program=$with_browser
-    echo "$as_me:$LINENO: checking for browser $with_browser" >&5
-echo $ECHO_N "checking for browser $with_browser... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for browser $with_browser" >&5
+echo $ECHO_N "checking for browser $with_browser... $ECHO_C" >&6; }
     with_browser_fullpath=`which $with_browser 2>/dev/null`
     case $with_browser_fullpath in
         /* )
-               echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+               echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
                 have_browser=yes
                 ;;
        * )
-              echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+              echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 # Only warning: we don't want to install all packages for the
 # dependency of the browser in building stage...
               echo "WARNING: browser not found: --with-browser=$with_browser"
@@ -19733,13 +22244,13 @@ ac_cv_browser="$with_browser"
 setuid_hacks_default=no
 setuid_hacks="$setuid_hacks_default"
 
-# Check whether --with-setuid-hacks or --without-setuid-hacks was given.
+# Check whether --with-setuid-hacks was given.
 if test "${with_setuid_hacks+set}" = set; then
-  withval="$with_setuid_hacks"
-  setuid_hacks="$withval"
+  withval=$with_setuid_hacks; setuid_hacks="$withval"
 else
   setuid_hacks="$setuid_hacks_default"
-fi;
+fi
+
 
 
    case "$setuid_hacks" in
@@ -19747,28 +22258,28 @@ fi;
     no)  ;;
 
     /*)
-     echo "$as_me:$LINENO: checking for setuid hacks headers" >&5
-echo $ECHO_N "checking for setuid hacks headers... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for setuid hacks headers" >&5
+echo $ECHO_N "checking for setuid hacks headers... $ECHO_C" >&6; }
      d=$setuid_hacks/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
-     echo "$as_me:$LINENO: checking for setuid hacks libs" >&5
-echo $ECHO_N "checking for setuid hacks libs... $ECHO_C" >&6
+     echo "$as_me:$LINENO: checking for setuid hacks libs" >&5
+echo $ECHO_N "checking for setuid hacks libs... $ECHO_C" >&6; }
      d=$setuid_hacks/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
-       echo "$as_me:$LINENO: result: $d" >&5
-echo "${ECHO_T}$d" >&6
+       echo "$as_me:$LINENO: result: $d" >&5
+echo "${ECHO_T}$d" >&6; }
      else
-       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
-echo "${ECHO_T}not found ($d: no such directory)" >&6
+       echo "$as_me:$LINENO: result: not found ($d: no such directory)" >&5
+echo "${ECHO_T}not found ($d: no such directory)" >&6; }
      fi
 
      # replace the directory string with "yes".
@@ -19918,8 +22429,8 @@ fi
 
 # Set PO_DATADIR to something sensible.
 #
-echo "$as_me:$LINENO: checking for locale directory" >&5
-echo $ECHO_N "checking for locale directory... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for locale directory" >&5
+echo $ECHO_N "checking for locale directory... $ECHO_C" >&6; }
 if test -n "$GTK_DATADIR" ; then
   PO_DATADIR="$GTK_DATADIR"
 elif test "$have_gtk" = yes; then
@@ -19942,8 +22453,8 @@ if test -z "$PO_DATADIR" ; then
   PO_DATADIR=`echo $dd | sed 's@/X11R6/@/@'`
 fi
 
-echo "$as_me:$LINENO: result: $PO_DATADIR/locale" >&5
-echo "${ECHO_T}$PO_DATADIR/locale" >&6
+echo "$as_me:$LINENO: result: $PO_DATADIR/locale" >&5
+echo "${ECHO_T}$PO_DATADIR/locale" >&6; }
 
 
 # canonicalize slashes.
@@ -20036,7 +22547,8 @@ APPDEFAULTS=$ac_x_app_defaults
 
 
 
-                                                                      ac_config_files="$ac_config_files Makefile utils/Makefile driver/Makefile hacks/Makefile hacks/glx/Makefile po/Makefile.in driver/XScreenSaver.ad"
+ac_config_files="$ac_config_files Makefile utils/Makefile driver/Makefile hacks/Makefile hacks/glx/Makefile po/Makefile.in driver/XScreenSaver.ad"
+
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure
@@ -20055,39 +22567,58 @@ _ACEOF
 
 # The following way of writing the cache mishandles newlines in values,
 # but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
+# So, we kill variables containing newlines.
 # Ultrix sh set writes to stderr and can't be redirected directly,
 # and sets the high bit in the cache file unless we assign to the vars.
-{
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
+echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      *) $as_unset $ac_var ;;
+      esac ;;
+    esac
+  done
+
   (set) 2>&1 |
-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
       # `set' does not quote correctly, so add quotes (double-quote
       # substitution turns \\\\ into \\, and sed turns \\ into \).
       sed -n \
        "s/'/'\\\\''/g;
          s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;;
+      ;; #(
     *)
       # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n \
-       "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
       ;;
-    esac;
-} |
+    esac |
+    sort
+) |
   sed '
+     /^ac_cv_env_/b end
      t clear
-     : clear
+     :clear
      s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
      t end
-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
-  if test -w $cache_file; then
-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+  if test -w "$cache_file"; then
+    test "x$cache_file" != "x/dev/null" &&
+      { echo "$as_me:$LINENO: updating cache $cache_file" >&5
+echo "$as_me: updating cache $cache_file" >&6;}
     cat confcache >$cache_file
   else
-    echo "not updating unwritable cache $cache_file"
+    { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+echo "$as_me: not updating unwritable cache $cache_file" >&6;}
   fi
 fi
 rm -f confcache
@@ -20096,32 +22627,18 @@ test "x$prefix" = xNONE && prefix=$ac_default_prefix
 # Let make expand exec_prefix.
 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
 
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[         ]*VPATH[        ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[    ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[      ]*$//;
-}'
-fi
-
 DEFS=-DHAVE_CONFIG_H
 
 ac_libobjs=
 ac_ltlibobjs=
 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   # 1. Remove the extension, and $U if already installed.
-  ac_i=`echo "$ac_i" |
-        sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
-  # 2. Add them.
-  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+  ac_i=`echo "$ac_i" | sed "$ac_script"`
+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+  #    will be set to the directory where LIBOBJS objects are built.
+  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
 done
 LIBOBJS=$ac_libobjs
 
@@ -20166,11 +22683,35 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
 fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
 DUALCASE=1; export DUALCASE # for MKS sh
 
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
 # Support unset when possible.
 if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
   as_unset=unset
@@ -20179,8 +22720,43 @@ else
 fi
 
 
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+as_nl='
+'
+IFS=" ""       $as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+case $0 in
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  { (exit 1); exit 1; }
+fi
+
 # Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
 PS1='$ '
 PS2='> '
 PS4='+ '
   if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
     eval $as_var=C; export $as_var
   else
-    $as_unset $as_var
+    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
   fi
 done
 
 # Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
 else
   as_expr=false
 fi
 
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
   as_basename=basename
 else
   as_basename=false
 
 
 # Name of the executable.
-as_me=`$as_basename "$0" ||
+as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
         X"$0" : 'X\(//\)$' \| \
-        X"$0" : 'X\(/\)$' \| \
-        .     : '\(.\)' 2>/dev/null ||
+        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
 echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-         /^X\/\(\/\/\)$/{ s//\1/; q; }
-         /^X\/\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
 
+# CDPATH.
+$as_unset CDPATH
 
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
 
 
   as_lineno_1=$LINENO
   as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
   test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-        case $as_dir in
-        /*)
-          if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-            $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-            $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-            CONFIG_SHELL=$as_dir/$as_base
-            export CONFIG_SHELL
-            exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-          fi;;
-        esac
-       done
-done
-;;
-  esac
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
 
   # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
   # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
+  # line-number line after each line using $LINENO; the second 'sed'
+  # does the real work.  The second script uses 'N' to pair each
+  # line-number line with the line containing $LINENO, and appends
+  # trailing '-' during substitution so that $LINENO is not a special
+  # case at line end.
   # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
+  # scripts with optimization help from Paolo Bonzini.  Blame Lee
+  # E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
     sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
       N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
       t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
+      s/-\n.*//
     ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+  chmod +x "$as_me.lineno" ||
+    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
    { (exit 1); exit 1; }; }
 
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
   # Exit status is that of the last command.
   exit
 }
 
 
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='     ' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in
+-n*)
+  case `echo 'x\c'` in
+  *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
+  *)   ECHO_C='\c';;
+  esac;;
+*)
+  ECHO_N='-n';;
 esac
 
-if expr a : '\(a\)' >/dev/null 2>&1; then
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
 else
   as_expr=false
 fi
 
 rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir
+fi
 echo >conf$$.file
 if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
+  as_ln_s='ln -s'
+  # ... but there are two gotchas:
+  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+  # In both cases, we have to default to `cp -p'.
+  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
     as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
 elif ln conf$$.file conf$$ 2>/dev/null; then
   as_ln_s=ln
 else
   as_ln_s='cp -p'
 fi
-rm -f conf$$ conf$$.exe conf$$.file
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
 
 if mkdir -p . 2>/dev/null; then
   as_mkdir_p=:
@@ -20374,7 +22912,19 @@ else
   as_mkdir_p=false
 fi
 
-as_executable_p="test -f"
+# Find out whether ``test -x'' works.  Don't use a zero-byte file, as
+# systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+  as_executable_p="test -x"
+else
+  as_executable_p=:
+fi
+rm -f conf$$.file
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -20383,31 +22933,14 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS="  $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
 exec 6>&1
 
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# Save the log message, to keep $[0] and so on meaningful, and to
 # report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.  Logging --version etc. is OK.
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
+# values after options handling.
+ac_log="
 This file was extended by $as_me, which was
-generated by GNU Autoconf 2.59.  Invocation command line was
+generated by GNU Autoconf 2.60.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -20415,30 +22948,20 @@ generated by GNU Autoconf 2.59.  Invocation command line was
   CONFIG_COMMANDS = $CONFIG_COMMANDS
   $ $0 $@
 
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
 _ACEOF
 
+cat >>$CONFIG_STATUS <<_ACEOF
 # Files that config.status was made for.
-if test -n "$ac_config_files"; then
-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
 
-if test -n "$ac_config_commands"; then
-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
+_ACEOF
 
 cat >>$CONFIG_STATUS <<\_ACEOF
-
 ac_cs_usage="\
 \`$as_me' instantiates files from templates according to the
 current configuration.
@@ -20465,19 +22988,21 @@ Configuration commands:
 $config_commands
 
 Report bugs to <bug-autoconf@gnu.org>."
-_ACEOF
 
+_ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
 config.status
-configured by $0, generated by GNU Autoconf 2.59,
-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+configured by $0, generated by GNU Autoconf 2.60,
+  with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
-Copyright (C) 2003 Free Software Foundation, Inc.
+Copyright (C) 2006 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-INSTALL="$INSTALL"
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
 _ACEOF
 
 cat >>$CONFIG_STATUS <<\_ACEOF
@@ -20488,39 +23013,24 @@ while test $# != 0
 do
   case $1 in
   --*=*)
-    ac_option=`expr "x$1" : 'x\([^=]*\)='`
-    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
     ac_shift=:
     ;;
-  -*)
+  *)
     ac_option=$1
     ac_optarg=$2
     ac_shift=shift
     ;;
-  *) # This is not an option, so the user has probably given explicit
-     # arguments.
-     ac_option=$1
-     ac_need_defaults=false;;
   esac
 
   case $ac_option in
   # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
     ac_cs_recheck=: ;;
-  --version | --vers* | -V )
-    echo "$ac_cs_version"; exit 0 ;;
-  --he | --h)
-    # Conflict between --help and --header
-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; };;
-  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit 0 ;;
-  --debug | --d* | -d )
+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+    echo "$ac_cs_version"; exit ;;
+  --debug | --debu | --deb | --de | --d | -d )
     debug=: ;;
   --file | --fil | --fi | --f )
     $ac_shift
@@ -20530,18 +23040,24 @@ Try \`$0 --help' for more information." >&2;}
     $ac_shift
     CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
     ac_need_defaults=false;;
+  --he | --h)
+    # Conflict between --help and --header
+    { echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; };;
+  --help | --hel | -h )
+    echo "$ac_cs_usage"; exit ;;
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
   | -silent | --silent | --silen | --sile | --sil | --si | --s)
     ac_cs_silent=: ;;
 
   # This is an error.
-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
+  -*) { echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2
    { (exit 1); exit 1; }; } ;;
 
-  *) ac_config_targets="$ac_config_targets $1" ;;
+  *) ac_config_targets="$ac_config_targets $1"
+     ac_need_defaults=false ;;
 
   esac
   shift
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 if \$ac_cs_recheck; then
-  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+  CONFIG_SHELL=$SHELL
+  export CONFIG_SHELL
+  exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
 fi
 
 _ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+  echo "$ac_log"
+} >&5
 
+_ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 #
-# INIT-COMMANDS section.
+# INIT-COMMANDS
 #
-
 INTLTOOL_PERL=${INTLTOOL_PERL}
 
 
 _ACEOF
 
-
-
 cat >>$CONFIG_STATUS <<\_ACEOF
+
+# Handling of arguments.
 for ac_config_target in $ac_config_targets
 do
-  case "$ac_config_target" in
-  # Handling of arguments.
-  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-  "utils/Makefile" ) CONFIG_FILES="$CONFIG_FILES utils/Makefile" ;;
-  "driver/Makefile" ) CONFIG_FILES="$CONFIG_FILES driver/Makefile" ;;
-  "hacks/Makefile" ) CONFIG_FILES="$CONFIG_FILES hacks/Makefile" ;;
-  "hacks/glx/Makefile" ) CONFIG_FILES="$CONFIG_FILES hacks/glx/Makefile" ;;
-  "po/Makefile.in" ) CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
-  "driver/XScreenSaver.ad" ) CONFIG_FILES="$CONFIG_FILES driver/XScreenSaver.ad" ;;
-  "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
-  "default-2" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-2" ;;
-  "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+  case $ac_config_target in
+    "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+    "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
+    "default-2") CONFIG_COMMANDS="$CONFIG_COMMANDS default-2" ;;
+    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+    "utils/Makefile") CONFIG_FILES="$CONFIG_FILES utils/Makefile" ;;
+    "driver/Makefile") CONFIG_FILES="$CONFIG_FILES driver/Makefile" ;;
+    "hacks/Makefile") CONFIG_FILES="$CONFIG_FILES hacks/Makefile" ;;
+    "hacks/glx/Makefile") CONFIG_FILES="$CONFIG_FILES hacks/glx/Makefile" ;;
+    "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
+    "driver/XScreenSaver.ad") CONFIG_FILES="$CONFIG_FILES driver/XScreenSaver.ad" ;;
+
   *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
 echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
    { (exit 1); exit 1; }; };;
   esac
 done
 
+
 # If the user did not use the arguments to specify the items to instantiate,
 # then the envvar interface is used.  Set only those that are not.
 # We use the long form for the default assignment because of an extremely
@@ -20607,412 +23135,521 @@ if $ac_need_defaults; then
 fi
 
 # Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason to put it here, and in addition,
+# simply because there is no reason against having it here, and in addition,
 # creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
 $debug ||
 {
-  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+  tmp=
+  trap 'exit_status=$?
+  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+' 0
   trap '{ (exit 1); exit 1; }' 1 2 13 15
 }
-
 # Create a (secure) tmp directory for tmp files.
 
 {
-  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
   test -n "$tmp" && test -d "$tmp"
 }  ||
 {
-  tmp=./confstat$$-$RANDOM
-  (umask 077 && mkdir $tmp)
+  tmp=./conf$$-$RANDOM
+  (umask 077 && mkdir "$tmp")
 } ||
 {
    echo "$me: cannot create a temporary directory in ." >&2
    { (exit 1); exit 1; }
 }
 
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
 #
-# CONFIG_FILES section.
+# Set up the sed scripts for CONFIG_FILES section.
 #
 
 # No need to generate the scripts if there are no CONFIG_FILES.
 # This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
-  # Protect against being on the right side of a sed subst in config.status.
-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s,@SHELL@,$SHELL,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s,@exec_prefix@,$exec_prefix,;t t
-s,@prefix@,$prefix,;t t
-s,@program_transform_name@,$program_transform_name,;t t
-s,@bindir@,$bindir,;t t
-s,@sbindir@,$sbindir,;t t
-s,@libexecdir@,$libexecdir,;t t
-s,@datadir@,$datadir,;t t
-s,@sysconfdir@,$sysconfdir,;t t
-s,@sharedstatedir@,$sharedstatedir,;t t
-s,@localstatedir@,$localstatedir,;t t
-s,@libdir@,$libdir,;t t
-s,@includedir@,$includedir,;t t
-s,@oldincludedir@,$oldincludedir,;t t
-s,@infodir@,$infodir,;t t
-s,@mandir@,$mandir,;t t
-s,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;t t
-s,@LIBS@,$LIBS,;t t
-s,@build@,$build,;t t
-s,@build_cpu@,$build_cpu,;t t
-s,@build_vendor@,$build_vendor,;t t
-s,@build_os@,$build_os,;t t
-s,@host@,$host,;t t
-s,@host_cpu@,$host_cpu,;t t
-s,@host_vendor@,$host_vendor,;t t
-s,@host_os@,$host_os,;t t
-s,@CC@,$CC,;t t
-s,@CFLAGS@,$CFLAGS,;t t
-s,@LDFLAGS@,$LDFLAGS,;t t
-s,@CPPFLAGS@,$CPPFLAGS,;t t
-s,@ac_ct_CC@,$ac_ct_CC,;t t
-s,@EXEEXT@,$EXEEXT,;t t
-s,@OBJEXT@,$OBJEXT,;t t
-s,@CPP@,$CPP,;t t
-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
-s,@SET_MAKE@,$SET_MAKE,;t t
-s,@EGREP@,$EGREP,;t t
-s,@PERL@,$PERL,;t t
-s,@X_CFLAGS@,$X_CFLAGS,;t t
-s,@X_PRE_LIBS@,$X_PRE_LIBS,;t t
-s,@X_LIBS@,$X_LIBS,;t t
-s,@X_EXTRA_LIBS@,$X_EXTRA_LIBS,;t t
-s,@INTLTOOL_DESKTOP_RULE@,$INTLTOOL_DESKTOP_RULE,;t t
-s,@INTLTOOL_DIRECTORY_RULE@,$INTLTOOL_DIRECTORY_RULE,;t t
-s,@INTLTOOL_KEYS_RULE@,$INTLTOOL_KEYS_RULE,;t t
-s,@INTLTOOL_OAF_RULE@,$INTLTOOL_OAF_RULE,;t t
-s,@INTLTOOL_PONG_RULE@,$INTLTOOL_PONG_RULE,;t t
-s,@INTLTOOL_SERVER_RULE@,$INTLTOOL_SERVER_RULE,;t t
-s,@INTLTOOL_SHEET_RULE@,$INTLTOOL_SHEET_RULE,;t t
-s,@INTLTOOL_SOUNDLIST_RULE@,$INTLTOOL_SOUNDLIST_RULE,;t t
-s,@INTLTOOL_UI_RULE@,$INTLTOOL_UI_RULE,;t t
-s,@INTLTOOL_XML_RULE@,$INTLTOOL_XML_RULE,;t t
-s,@INTLTOOL_CAVES_RULE@,$INTLTOOL_CAVES_RULE,;t t
-s,@INTLTOOL_EXTRACT@,$INTLTOOL_EXTRACT,;t t
-s,@INTLTOOL_MERGE@,$INTLTOOL_MERGE,;t t
-s,@INTLTOOL_UPDATE@,$INTLTOOL_UPDATE,;t t
-s,@INTLTOOL_PERL@,$INTLTOOL_PERL,;t t
-s,@GETTEXT_PACKAGE@,$GETTEXT_PACKAGE,;t t
-s,@RANLIB@,$RANLIB,;t t
-s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
-s,@ALLOCA@,$ALLOCA,;t t
-s,@USE_NLS@,$USE_NLS,;t t
-s,@MSGFMT@,$MSGFMT,;t t
-s,@GMSGFMT@,$GMSGFMT,;t t
-s,@XGETTEXT@,$XGETTEXT,;t t
-s,@CATALOGS@,$CATALOGS,;t t
-s,@CATOBJEXT@,$CATOBJEXT,;t t
-s,@DATADIRNAME@,$DATADIRNAME,;t t
-s,@GMOFILES@,$GMOFILES,;t t
-s,@INSTOBJEXT@,$INSTOBJEXT,;t t
-s,@INTLDEPS@,$INTLDEPS,;t t
-s,@INTLLIBS@,$INTLLIBS,;t t
-s,@INTLOBJS@,$INTLOBJS,;t t
-s,@POFILES@,$POFILES,;t t
-s,@POSUB@,$POSUB,;t t
-s,@MKINSTALLDIRS@,$MKINSTALLDIRS,;t t
-s,@login_manager_tmp@,$login_manager_tmp,;t t
-s,@pkg_config@,$pkg_config,;t t
-s,@gnome_open_program@,$gnome_open_program,;t t
-s,@gnome_url_show_program@,$gnome_url_show_program,;t t
-s,@INCLUDES@,$INCLUDES,;t t
-s,@PREFERRED_DEMO_PROGRAM@,$PREFERRED_DEMO_PROGRAM,;t t
-s,@ALL_DEMO_PROGRAMS@,$ALL_DEMO_PROGRAMS,;t t
-s,@SAVER_LIBS@,$SAVER_LIBS,;t t
-s,@MOTIF_LIBS@,$MOTIF_LIBS,;t t
-s,@GTK_LIBS@,$GTK_LIBS,;t t
-s,@XML_LIBS@,$XML_LIBS,;t t
-s,@JPEG_LIBS@,$JPEG_LIBS,;t t
-s,@HACK_LIBS@,$HACK_LIBS,;t t
-s,@XPM_LIBS@,$XPM_LIBS,;t t
-s,@PTY_LIBS@,$PTY_LIBS,;t t
-s,@GL_LIBS@,$GL_LIBS,;t t
-s,@GLE_LIBS@,$GLE_LIBS,;t t
-s,@XDPMS_LIBS@,$XDPMS_LIBS,;t t
-s,@XINERAMA_LIBS@,$XINERAMA_LIBS,;t t
-s,@PASSWD_LIBS@,$PASSWD_LIBS,;t t
-s,@INSTALL_SETUID@,$INSTALL_SETUID,;t t
-s,@SETUID_HACKS@,$SETUID_HACKS,;t t
-s,@INSTALL_DIRS@,$INSTALL_DIRS,;t t
-s,@NEED_SETUID@,$NEED_SETUID,;t t
-s,@INSTALL_PAM@,$INSTALL_PAM,;t t
-s,@HAVE_PAM_FAIL_DELAY@,$HAVE_PAM_FAIL_DELAY,;t t
-s,@NEW_LOGIN_COMMAND@,$NEW_LOGIN_COMMAND,;t t
-s,@NEW_LOGIN_COMMAND_P@,$NEW_LOGIN_COMMAND_P,;t t
-s,@DEFAULT_IMAGES_P@,$DEFAULT_IMAGES_P,;t t
-s,@DEFAULT_IMAGE_DIRECTORY@,$DEFAULT_IMAGE_DIRECTORY,;t t
-s,@DEFAULT_TEXT_FILE@,$DEFAULT_TEXT_FILE,;t t
-s,@WITH_BROWSER@,$WITH_BROWSER,;t t
-s,@OBJCC@,$OBJCC,;t t
-s,@EXES_OSX@,$EXES_OSX,;t t
-s,@SCRIPTS_OSX@,$SCRIPTS_OSX,;t t
-s,@MEN_OSX@,$MEN_OSX,;t t
-s,@PASSWD_SRCS@,$PASSWD_SRCS,;t t
-s,@PASSWD_OBJS@,$PASSWD_OBJS,;t t
-s,@XMU_SRCS@,$XMU_SRCS,;t t
-s,@XMU_OBJS@,$XMU_OBJS,;t t
-s,@XMU_LIBS@,$XMU_LIBS,;t t
-s,@SAVER_GL_SRCS@,$SAVER_GL_SRCS,;t t
-s,@SAVER_GL_OBJS@,$SAVER_GL_OBJS,;t t
-s,@SAVER_GL_LIBS@,$SAVER_GL_LIBS,;t t
-s,@LOCK_SRCS@,$LOCK_SRCS,;t t
-s,@LOCK_OBJS@,$LOCK_OBJS,;t t
-s,@JPEG_EXES@,$JPEG_EXES,;t t
-s,@GL_EXES@,$GL_EXES,;t t
-s,@GL_UTIL_EXES@,$GL_UTIL_EXES,;t t
-s,@GL_MEN@,$GL_MEN,;t t
-s,@GL_KLUDGE@,$GL_KLUDGE,;t t
-s,@GLE_EXES@,$GLE_EXES,;t t
-s,@GLE_KLUDGE@,$GLE_KLUDGE,;t t
-s,@GNOME24@,$GNOME24,;t t
-s,@GNOME22@,$GNOME22,;t t
-s,@NOGNOME@,$NOGNOME,;t t
-s,@HACKDIR@,$HACKDIR,;t t
-s,@HACKDIR_FULL@,$HACKDIR_FULL,;t t
-s,@GTK_DATADIR@,$GTK_DATADIR,;t t
-s,@PO_DATADIR@,$PO_DATADIR,;t t
-s,@HACK_CONF_DIR@,$HACK_CONF_DIR,;t t
-s,@GTK_EXTRA_OBJS@,$GTK_EXTRA_OBJS,;t t
-s,@APPDEFAULTS@,$APPDEFAULTS,;t t
-s,@DEPEND@,$DEPEND,;t t
-s,@DEPEND_FLAGS@,$DEPEND_FLAGS,;t t
-s,@DEPEND_DEFINES@,$DEPEND_DEFINES,;t t
-s,@LIBOBJS@,$LIBOBJS,;t t
-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
-CEOF
-
-_ACEOF
-
-  cat >>$CONFIG_STATUS <<\_ACEOF
-  # Split the substitutions into bite-sized pieces for seds with
-  # small command number limits, like on Digital OSF/1 and HP-UX.
-  ac_max_sed_lines=48
-  ac_sed_frag=1 # Number of current file.
-  ac_beg=1 # First line for current file.
-  ac_end=$ac_max_sed_lines # Line after last line for current file.
-  ac_more_lines=:
-  ac_sed_cmds=
-  while $ac_more_lines; do
-    if test $ac_beg -gt 1; then
-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    else
-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    fi
-    if test ! -s $tmp/subs.frag; then
-      ac_more_lines=false
-    else
-      # The purpose of the label and of the branching condition is to
-      # speed up the sed processing (if there are no `@' at all, there
-      # is no need to browse any of the substitutions).
-      # These are the two extra sed commands mentioned above.
-      (echo ':t
-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
-      if test -z "$ac_sed_cmds"; then
-       ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
-      else
-       ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
-      fi
-      ac_sed_frag=`expr $ac_sed_frag + 1`
-      ac_beg=$ac_end
-      ac_end=`expr $ac_end + $ac_max_sed_lines`
-    fi
-  done
-  if test -z "$ac_sed_cmds"; then
-    ac_sed_cmds=cat
+if test -n "$CONFIG_FILES"; then
+
+_ACEOF
+
+
+
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  cat >conf$$subs.sed <<_ACEOF
+SHELL!$SHELL$ac_delim
+PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim
+PACKAGE_NAME!$PACKAGE_NAME$ac_delim
+PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim
+PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim
+PACKAGE_STRING!$PACKAGE_STRING$ac_delim
+PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim
+exec_prefix!$exec_prefix$ac_delim
+prefix!$prefix$ac_delim
+program_transform_name!$program_transform_name$ac_delim
+bindir!$bindir$ac_delim
+sbindir!$sbindir$ac_delim
+libexecdir!$libexecdir$ac_delim
+datarootdir!$datarootdir$ac_delim
+datadir!$datadir$ac_delim
+sysconfdir!$sysconfdir$ac_delim
+sharedstatedir!$sharedstatedir$ac_delim
+localstatedir!$localstatedir$ac_delim
+includedir!$includedir$ac_delim
+oldincludedir!$oldincludedir$ac_delim
+docdir!$docdir$ac_delim
+infodir!$infodir$ac_delim
+htmldir!$htmldir$ac_delim
+dvidir!$dvidir$ac_delim
+pdfdir!$pdfdir$ac_delim
+psdir!$psdir$ac_delim
+libdir!$libdir$ac_delim
+localedir!$localedir$ac_delim
+mandir!$mandir$ac_delim
+DEFS!$DEFS$ac_delim
+ECHO_C!$ECHO_C$ac_delim
+ECHO_N!$ECHO_N$ac_delim
+ECHO_T!$ECHO_T$ac_delim
+LIBS!$LIBS$ac_delim
+build_alias!$build_alias$ac_delim
+host_alias!$host_alias$ac_delim
+target_alias!$target_alias$ac_delim
+build!$build$ac_delim
+build_cpu!$build_cpu$ac_delim
+build_vendor!$build_vendor$ac_delim
+build_os!$build_os$ac_delim
+host!$host$ac_delim
+host_cpu!$host_cpu$ac_delim
+host_vendor!$host_vendor$ac_delim
+host_os!$host_os$ac_delim
+CC!$CC$ac_delim
+CFLAGS!$CFLAGS$ac_delim
+LDFLAGS!$LDFLAGS$ac_delim
+CPPFLAGS!$CPPFLAGS$ac_delim
+ac_ct_CC!$ac_ct_CC$ac_delim
+EXEEXT!$EXEEXT$ac_delim
+OBJEXT!$OBJEXT$ac_delim
+CPP!$CPP$ac_delim
+INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
+INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
+INSTALL_DATA!$INSTALL_DATA$ac_delim
+SET_MAKE!$SET_MAKE$ac_delim
+GREP!$GREP$ac_delim
+EGREP!$EGREP$ac_delim
+PERL!$PERL$ac_delim
+XMKMF!$XMKMF$ac_delim
+X_CFLAGS!$X_CFLAGS$ac_delim
+X_PRE_LIBS!$X_PRE_LIBS$ac_delim
+X_LIBS!$X_LIBS$ac_delim
+X_EXTRA_LIBS!$X_EXTRA_LIBS$ac_delim
+INTLTOOL_DESKTOP_RULE!$INTLTOOL_DESKTOP_RULE$ac_delim
+INTLTOOL_DIRECTORY_RULE!$INTLTOOL_DIRECTORY_RULE$ac_delim
+INTLTOOL_KEYS_RULE!$INTLTOOL_KEYS_RULE$ac_delim
+INTLTOOL_OAF_RULE!$INTLTOOL_OAF_RULE$ac_delim
+INTLTOOL_PONG_RULE!$INTLTOOL_PONG_RULE$ac_delim
+INTLTOOL_SERVER_RULE!$INTLTOOL_SERVER_RULE$ac_delim
+INTLTOOL_SHEET_RULE!$INTLTOOL_SHEET_RULE$ac_delim
+INTLTOOL_SOUNDLIST_RULE!$INTLTOOL_SOUNDLIST_RULE$ac_delim
+INTLTOOL_UI_RULE!$INTLTOOL_UI_RULE$ac_delim
+INTLTOOL_XML_RULE!$INTLTOOL_XML_RULE$ac_delim
+INTLTOOL_CAVES_RULE!$INTLTOOL_CAVES_RULE$ac_delim
+INTLTOOL_EXTRACT!$INTLTOOL_EXTRACT$ac_delim
+INTLTOOL_MERGE!$INTLTOOL_MERGE$ac_delim
+INTLTOOL_UPDATE!$INTLTOOL_UPDATE$ac_delim
+INTLTOOL_PERL!$INTLTOOL_PERL$ac_delim
+GETTEXT_PACKAGE!$GETTEXT_PACKAGE$ac_delim
+RANLIB!$RANLIB$ac_delim
+ALLOCA!$ALLOCA$ac_delim
+USE_NLS!$USE_NLS$ac_delim
+MSGFMT!$MSGFMT$ac_delim
+GMSGFMT!$GMSGFMT$ac_delim
+XGETTEXT!$XGETTEXT$ac_delim
+CATALOGS!$CATALOGS$ac_delim
+CATOBJEXT!$CATOBJEXT$ac_delim
+DATADIRNAME!$DATADIRNAME$ac_delim
+GMOFILES!$GMOFILES$ac_delim
+INSTOBJEXT!$INSTOBJEXT$ac_delim
+INTLDEPS!$INTLDEPS$ac_delim
+INTLLIBS!$INTLLIBS$ac_delim
+INTLOBJS!$INTLOBJS$ac_delim
+POFILES!$POFILES$ac_delim
+POSUB!$POSUB$ac_delim
+_ACEOF
+
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
+    break
+  elif $ac_last_try; then
+    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
-fi # test -n "$CONFIG_FILES"
+done
+
+ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
+if test -n "$ac_eof"; then
+  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
+  ac_eof=`expr $ac_eof + 1`
+fi
+
+cat >>$CONFIG_STATUS <<_ACEOF
+cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+_ACEOF
+sed '
+s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
+s/^/s,@/; s/!/@,|#_!!_#|/
+:n
+t n
+s/'"$ac_delim"'$/,g/; t
+s/$/\\/; p
+N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
+' >>$CONFIG_STATUS <conf$$subs.sed
+rm -f conf$$subs.sed
+cat >>$CONFIG_STATUS <<_ACEOF
+CEOF$ac_eof
+_ACEOF
+
+
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  cat >conf$$subs.sed <<_ACEOF
+MKINSTALLDIRS!$MKINSTALLDIRS$ac_delim
+login_manager_tmp!$login_manager_tmp$ac_delim
+pkg_config!$pkg_config$ac_delim
+gnome_open_program!$gnome_open_program$ac_delim
+gnome_url_show_program!$gnome_url_show_program$ac_delim
+INCLUDES!$INCLUDES$ac_delim
+PREFERRED_DEMO_PROGRAM!$PREFERRED_DEMO_PROGRAM$ac_delim
+ALL_DEMO_PROGRAMS!$ALL_DEMO_PROGRAMS$ac_delim
+SAVER_LIBS!$SAVER_LIBS$ac_delim
+MOTIF_LIBS!$MOTIF_LIBS$ac_delim
+GTK_LIBS!$GTK_LIBS$ac_delim
+XML_LIBS!$XML_LIBS$ac_delim
+JPEG_LIBS!$JPEG_LIBS$ac_delim
+HACK_LIBS!$HACK_LIBS$ac_delim
+XPM_LIBS!$XPM_LIBS$ac_delim
+PTY_LIBS!$PTY_LIBS$ac_delim
+GL_LIBS!$GL_LIBS$ac_delim
+GLE_LIBS!$GLE_LIBS$ac_delim
+XDPMS_LIBS!$XDPMS_LIBS$ac_delim
+XINERAMA_LIBS!$XINERAMA_LIBS$ac_delim
+PASSWD_LIBS!$PASSWD_LIBS$ac_delim
+INSTALL_SETUID!$INSTALL_SETUID$ac_delim
+SETUID_HACKS!$SETUID_HACKS$ac_delim
+INSTALL_DIRS!$INSTALL_DIRS$ac_delim
+NEED_SETUID!$NEED_SETUID$ac_delim
+INSTALL_PAM!$INSTALL_PAM$ac_delim
+HAVE_PAM_FAIL_DELAY!$HAVE_PAM_FAIL_DELAY$ac_delim
+NEW_LOGIN_COMMAND!$NEW_LOGIN_COMMAND$ac_delim
+NEW_LOGIN_COMMAND_P!$NEW_LOGIN_COMMAND_P$ac_delim
+DEFAULT_IMAGES_P!$DEFAULT_IMAGES_P$ac_delim
+DEFAULT_IMAGE_DIRECTORY!$DEFAULT_IMAGE_DIRECTORY$ac_delim
+DEFAULT_TEXT_FILE!$DEFAULT_TEXT_FILE$ac_delim
+WITH_BROWSER!$WITH_BROWSER$ac_delim
+OBJCC!$OBJCC$ac_delim
+EXES_OSX!$EXES_OSX$ac_delim
+SCRIPTS_OSX!$SCRIPTS_OSX$ac_delim
+MEN_OSX!$MEN_OSX$ac_delim
+PASSWD_SRCS!$PASSWD_SRCS$ac_delim
+PASSWD_OBJS!$PASSWD_OBJS$ac_delim
+XMU_SRCS!$XMU_SRCS$ac_delim
+XMU_OBJS!$XMU_OBJS$ac_delim
+XMU_LIBS!$XMU_LIBS$ac_delim
+SAVER_GL_SRCS!$SAVER_GL_SRCS$ac_delim
+SAVER_GL_OBJS!$SAVER_GL_OBJS$ac_delim
+SAVER_GL_LIBS!$SAVER_GL_LIBS$ac_delim
+LOCK_SRCS!$LOCK_SRCS$ac_delim
+LOCK_OBJS!$LOCK_OBJS$ac_delim
+JPEG_EXES!$JPEG_EXES$ac_delim
+GL_EXES!$GL_EXES$ac_delim
+GL_UTIL_EXES!$GL_UTIL_EXES$ac_delim
+GL_MEN!$GL_MEN$ac_delim
+GL_KLUDGE!$GL_KLUDGE$ac_delim
+GLE_EXES!$GLE_EXES$ac_delim
+GLE_KLUDGE!$GLE_KLUDGE$ac_delim
+GNOME24!$GNOME24$ac_delim
+GNOME22!$GNOME22$ac_delim
+NOGNOME!$NOGNOME$ac_delim
+HACKDIR!$HACKDIR$ac_delim
+HACKDIR_FULL!$HACKDIR_FULL$ac_delim
+GTK_DATADIR!$GTK_DATADIR$ac_delim
+PO_DATADIR!$PO_DATADIR$ac_delim
+HACK_CONF_DIR!$HACK_CONF_DIR$ac_delim
+GTK_EXTRA_OBJS!$GTK_EXTRA_OBJS$ac_delim
+APPDEFAULTS!$APPDEFAULTS$ac_delim
+DEPEND!$DEPEND$ac_delim
+DEPEND_FLAGS!$DEPEND_FLAGS$ac_delim
+DEPEND_DEFINES!$DEPEND_DEFINES$ac_delim
+LIBOBJS!$LIBOBJS$ac_delim
+LTLIBOBJS!$LTLIBOBJS$ac_delim
+_ACEOF
+
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 69; then
+    break
+  elif $ac_last_try; then
+    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
+if test -n "$ac_eof"; then
+  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
+  ac_eof=`expr $ac_eof + 1`
+fi
 
+cat >>$CONFIG_STATUS <<_ACEOF
+cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
+_ACEOF
+sed '
+s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
+s/^/s,@/; s/!/@,|#_!!_#|/
+:n
+t n
+s/'"$ac_delim"'$/,g/; t
+s/$/\\/; p
+N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
+' >>$CONFIG_STATUS <conf$$subs.sed
+rm -f conf$$subs.sed
+cat >>$CONFIG_STATUS <<_ACEOF
+:end
+s/|#_!!_#|//g
+CEOF$ac_eof
 _ACEOF
+
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[         ]*VPATH[        ]*=/{
+s/:*\$(srcdir):*/:/
+s/:*\${srcdir}:*/:/
+s/:*@srcdir@:*/:/
+s/^\([^=]*=[    ]*\):*/\1/
+s/:*$//
+s/^[^=]*=[      ]*$//
+}'
+fi
+
 cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-       cat >$tmp/stdin
-       ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-       ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-       ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
+fi # test -n "$CONFIG_FILES"
+
+
+for ac_tag in  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS
+do
+  case $ac_tag in
+  :[FHLC]) ac_mode=$ac_tag; continue;;
+  esac
+  case $ac_mode$ac_tag in
+  :[FHL]*:*);;
+  :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
+echo "$as_me: error: Invalid tag $ac_tag." >&2;}
+   { (exit 1); exit 1; }; };;
+  :[FH]-) ac_tag=-:-;;
+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+  esac
+  ac_save_IFS=$IFS
+  IFS=:
+  set x $ac_tag
+  IFS=$ac_save_IFS
+  shift
+  ac_file=$1
+  shift
+
+  case $ac_mode in
+  :L) ac_source=$1;;
+  :[FH])
+    ac_file_inputs=
+    for ac_f
+    do
+      case $ac_f in
+      -) ac_f="$tmp/stdin";;
+      *) # Look for the file first in the build tree, then in the source tree
+        # (if the path is not absolute).  The absolute path cannot be DOS-style,
+        # because $ac_f cannot contain `:'.
+        test -f "$ac_f" ||
+          case $ac_f in
+          [\\/$]*) false;;
+          *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+          esac ||
+          { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
+echo "$as_me: error: cannot find input file: $ac_f" >&2;}
+   { (exit 1); exit 1; }; };;
+      esac
+      ac_file_inputs="$ac_file_inputs $ac_f"
+    done
+
+    # Let's still pretend it is `configure' which instantiates (i.e., don't
+    # use $as_me), people would be surprised to read:
+    #    /* config.h.  Generated by config.status.  */
+    configure_input="Generated from "`IFS=:
+         echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
+    if test x"$ac_file" != x-; then
+      configure_input="$ac_file.  $configure_input"
+      { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+    fi
+
+    case $ac_tag in
+    *:-:* | *:-) cat >"$tmp/stdin";;
+    esac
+    ;;
   esac
 
-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+  ac_dir=`$as_dirname -- "$ac_file" ||
 $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
         X"$ac_file" : 'X\(//\)[^/]' \| \
         X"$ac_file" : 'X\(//\)$' \| \
-        X"$ac_file" : 'X\(/\)' \| \
-        .     : '\(.\)' 2>/dev/null ||
+        X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
 echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-         /^X\(\/\/\)$/{ s//\1/; q; }
-         /^X\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+  { as_dir="$ac_dir"
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
     as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
 $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
         X"$as_dir" : 'X\(//\)[^/]' \| \
         X"$as_dir" : 'X\(//\)$' \| \
-        X"$as_dir" : 'X\(/\)' \| \
-        .     : '\(.\)' 2>/dev/null ||
+        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
 echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-         /^X\(\/\/\)$/{ s//\1/; q; }
-         /^X\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+      test -d "$as_dir" && break
     done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+echo "$as_me: error: cannot create directory $as_dir" >&2;}
    { (exit 1); exit 1; }; }; }
-
   ac_builddir=.
 
-if test "$ac_dir" != .; then
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
   ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
 
 case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
+  .)  # We are building in place.
     ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
     ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
 esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
 
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
 
+  case $ac_mode in
+  :F)
+  #
+  # CONFIG_FILE
+  #
 
   case $INSTALL in
   [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
   esac
+_ACEOF
 
-  if test x"$ac_file" != x-; then
-    { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    rm -f "$ac_file"
-  fi
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    configure_input=
-  else
-    configure_input="$ac_file.  "
-  fi
-  configure_input=$configure_input"Generated from `echo $ac_file_in |
-                                    sed 's,.*/,,'` by configure."
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-        # Absolute (can't be DOS-style, as IFS=:)
-        test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-        echo "$f";;
-      *) # Relative
-        if test -f "$f"; then
-          # Build tree
-          echo "$f"
-        elif test -f "$srcdir/$f"; then
-          # Source tree
-          echo "$srcdir/$f"
-        else
-          # /dev/null tree
-          { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-        fi;;
-      esac
-    done` || { (exit 1); exit 1; }
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+
+case `sed -n '/datarootdir/ {
+  p
+  q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p
+' $ac_file_inputs` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+  { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+  ac_datarootdir_hack='
+  s&@datadir@&$datadir&g
+  s&@docdir@&$docdir&g
+  s&@infodir@&$infodir&g
+  s&@localedir@&$localedir&g
+  s&@mandir@&$mandir&g
+    s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
 _ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
 cat >>$CONFIG_STATUS <<_ACEOF
   sed "$ac_vpsub
 $extrasub
@@ -21020,365 +23657,140 @@ _ACEOF
 cat >>$CONFIG_STATUS <<\_ACEOF
 :t
 /@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;t t
-s,@srcdir@,$ac_srcdir,;t t
-s,@abs_srcdir@,$ac_abs_srcdir,;t t
-s,@top_srcdir@,$ac_top_srcdir,;t t
-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s,@builddir@,$ac_builddir,;t t
-s,@abs_builddir@,$ac_abs_builddir,;t t
-s,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-s,@INSTALL@,$ac_INSTALL,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
-  rm -f $tmp/stdin
-  if test x"$ac_file" != x-; then
-    mv $tmp/out $ac_file
-  else
-    cat $tmp/out
-    rm -f $tmp/out
-  fi
-
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_HEADER section.
-#
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s,^\([   ]*\)#\([        ]*define[       ][      ]*\)'
-ac_dB='[        ].*$,\1#\2'
-ac_dC=' '
-ac_dD=',;t'
-# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_uA='s,^\([   ]*\)#\([        ]*\)undef\([    ][      ]*\)'
-ac_uB='$,\1#\2define\3'
-ac_uC=' '
-ac_uD=',;t'
-
-for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+s&@configure_input@&$configure_input&;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+$ac_datarootdir_hack
+" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+  { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined." >&5
+echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined." >&2;}
+
+  rm -f "$tmp/stdin"
   case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-       cat >$tmp/stdin
-       ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-       ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-       ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
+  -) cat "$tmp/out"; rm -f "$tmp/out";;
+  *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;
   esac
+ ;;
+  :H)
+  #
+  # CONFIG_HEADER
+  #
+_ACEOF
 
-  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-        # Absolute (can't be DOS-style, as IFS=:)
-        test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-        # Do quote $f, to prevent DOS paths from being IFS'd.
-        echo "$f";;
-      *) # Relative
-        if test -f "$f"; then
-          # Build tree
-          echo "$f"
-        elif test -f "$srcdir/$f"; then
-          # Source tree
-          echo "$srcdir/$f"
-        else
-          # /dev/null tree
-          { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-        fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-  # Remove the trailing spaces.
-  sed 's/[      ]*$//' $ac_file_inputs >$tmp/in
-
-_ACEOF
-
-# Transform confdefs.h into two sed scripts, `conftest.defines' and
-# `conftest.undefs', that substitutes the proper values into
-# config.h.in to produce config.h.  The first handles `#define'
-# templates, and the second `#undef' templates.
-# And first: Protect against being on the right side of a sed subst in
-# config.status.  Protect against being in an unquoted here document
-# in config.status.
-rm -f conftest.defines conftest.undefs
-# Using a here document instead of a string reduces the quoting nightmare.
-# Putting comments in sed scripts is not portable.
-#
-# `end' is used to avoid that the second main sed command (meant for
-# 0-ary CPP macros) applies to n-ary macro definitions.
-# See the Autoconf documentation for `clear'.
-cat >confdef2sed.sed <<\_ACEOF
-s/[\\&,]/\\&/g
-s,[\\$`],\\&,g
-t clear
-: clear
-s,^[    ]*#[    ]*define[       ][      ]*\([^  (][^    (]*\)\(([^)]*)\)[       ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
-t end
-s,^[    ]*#[    ]*define[       ][      ]*\([^  ][^     ]*\)[   ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
-: end
-_ACEOF
-# If some macros were called several times there might be several times
-# the same #defines, which is useless.  Nevertheless, we may not want to
-# sort them, since we want the *last* AC-DEFINE to be honored.
-uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
-sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
-rm -f confdef2sed.sed
-
-# This sed command replaces #undef with comments.  This is necessary, for
+# Transform confdefs.h into a sed script `conftest.defines', that
+# substitutes the proper values into config.h.in to produce config.h.
+rm -f conftest.defines conftest.tail
+# First, append a space to every undef/define line, to ease matching.
+echo 's/$/ /' >conftest.defines
+# Then, protect against being on the right side of a sed subst, or in
+# an unquoted here document, in config.status.  If some macros were
+# called several times there might be several #defines for the same
+# symbol, which is useless.  But do not sort them, since the last
+# AC_DEFINE must be honored.
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where
+# NAME is the cpp macro being defined, VALUE is the value it is being given.
+# PARAMS is the parameter list in the macro definition--in most cases, it's
+# just an empty string.
+ac_dA='s,^\\([  #]*\\)[^        ]*\\([  ]*'
+ac_dB='\\)[     (].*,\\1define\\2'
+ac_dC=' '
+ac_dD=' ,'
+
+uniq confdefs.h |
+  sed -n '
+       t rset
+       :rset
+       s/^[     ]*#[    ]*define[       ][      ]*//
+       t ok
+       d
+       :ok
+       s/[\\&,]/\\&/g
+       s/^\('"$ac_word_re"'\)\(([^()]*)\)[      ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p
+       s/^\('"$ac_word_re"'\)[  ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p
+  ' >>conftest.defines
+
+# Remove the space that was appended to ease matching.
+# Then replace #undef with comments.  This is necessary, for
 # example, in the case of _POSIX_SOURCE, which is predefined and required
 # on some systems where configure will not decide to define it.
-cat >>conftest.undefs <<\_ACEOF
-s,^[    ]*#[    ]*undef[        ][      ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
-_ACEOF
-
-# Break up conftest.defines because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo '  if grep "^[     ]*#[    ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
-echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
-echo '  :' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.defines >/dev/null
+# (The regexp can be short, since the line contains either #define or #undef.)
+echo 's/ $//
+s,^[    #]*u.*,/* & */,' >>conftest.defines
+
+# Break up conftest.defines:
+ac_max_sed_lines=50
+
+# First sed command is:         sed -f defines.sed $ac_file_inputs >"$tmp/out1"
+# Second one is:        sed -f defines.sed "$tmp/out1" >"$tmp/out2"
+# Third one will be:    sed -f defines.sed "$tmp/out2" >"$tmp/out1"
+# et cetera.
+ac_in='$ac_file_inputs'
+ac_out='"$tmp/out1"'
+ac_nxt='"$tmp/out2"'
+
+while :
 do
-  # Write a limited-size here document to $tmp/defines.sed.
-  echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
-  # Speed up: don't consider the non `#define' lines.
-  echo '/^[     ]*#[    ]*define/!b' >>$CONFIG_STATUS
-  # Work around the forget-to-reset-the-flag bug.
-  echo 't clr' >>$CONFIG_STATUS
-  echo ': clr' >>$CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
+  # Write a here document:
+    cat >>$CONFIG_STATUS <<_ACEOF
+    # First, check the format of the line:
+    cat >"\$tmp/defines.sed" <<\\CEOF
+/^[     ]*#[    ]*undef[        ][      ]*$ac_word_re[  ]*\$/b def
+/^[     ]*#[    ]*define[       ][      ]*$ac_word_re[(         ]/b def
+b
+:def
+_ACEOF
+  sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS
   echo 'CEOF
-  sed -f $tmp/defines.sed $tmp/in >$tmp/out
-  rm -f $tmp/in
-  mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
+    sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS
+  ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in
+  sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail
+  grep . conftest.tail >/dev/null || break
   rm -f conftest.defines
   mv conftest.tail conftest.defines
 done
-rm -f conftest.defines
-echo '  fi # grep' >>$CONFIG_STATUS
-echo >>$CONFIG_STATUS
-
-# Break up conftest.undefs because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.undefs >/dev/null
-do
-  # Write a limited-size here document to $tmp/undefs.sed.
-  echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
-  # Speed up: don't consider the non `#undef'
-  echo '/^[     ]*#[    ]*undef/!b' >>$CONFIG_STATUS
-  # Work around the forget-to-reset-the-flag bug.
-  echo 't clr' >>$CONFIG_STATUS
-  echo ': clr' >>$CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
-  echo 'CEOF
-  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
-  rm -f $tmp/in
-  mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
-  rm -f conftest.undefs
-  mv conftest.tail conftest.undefs
-done
-rm -f conftest.undefs
+rm -f conftest.defines conftest.tail
 
+echo "ac_result=$ac_in" >>$CONFIG_STATUS
 cat >>$CONFIG_STATUS <<\_ACEOF
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    echo "/* Generated by configure.  */" >$tmp/config.h
-  else
-    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
-  fi
-  cat $tmp/in >>$tmp/config.h
-  rm -f $tmp/in
   if test x"$ac_file" != x-; then
-    if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
+    echo "/* $configure_input  */" >"$tmp/config.h"
+    cat "$ac_result" >>"$tmp/config.h"
+    if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then
       { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
 echo "$as_me: $ac_file is unchanged" >&6;}
     else
-      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$ac_file" : 'X\(//\)[^/]' \| \
-        X"$ac_file" : 'X\(//\)$' \| \
-        X"$ac_file" : 'X\(/\)' \| \
-        .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-         /^X\(\/\/\)$/{ s//\1/; q; }
-         /^X\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
-      { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$as_dir" : 'X\(//\)[^/]' \| \
-        X"$as_dir" : 'X\(//\)$' \| \
-        X"$as_dir" : 'X\(/\)' \| \
-        .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-         /^X\(\/\/\)$/{ s//\1/; q; }
-         /^X\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
       rm -f $ac_file
-      mv $tmp/config.h $ac_file
+      mv "$tmp/config.h" $ac_file
     fi
   else
-    cat $tmp/config.h
-    rm -f $tmp/config.h
+    echo "/* $configure_input  */"
+    cat "$ac_result"
   fi
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_COMMANDS section.
-#
-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
-  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
-  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
-  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$ac_dest" : 'X\(//\)[^/]' \| \
-        X"$ac_dest" : 'X\(//\)$' \| \
-        X"$ac_dest" : 'X\(/\)' \| \
-        .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_dest" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-         /^X\(\/\/\)$/{ s//\1/; q; }
-         /^X\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$as_dir" : 'X\(//\)[^/]' \| \
-        X"$as_dir" : 'X\(//\)$' \| \
-        X"$as_dir" : 'X\(/\)' \| \
-        .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-         /^X\(\/\/\)$/{ s//\1/; q; }
-         /^X\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
+  rm -f "$tmp/out12"
+ ;;
 
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
+  :C)  { echo "$as_me:$LINENO: executing $ac_file commands" >&5
+echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+  esac
 
 
-  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
-echo "$as_me: executing $ac_dest commands" >&6;}
-  case $ac_dest in
-    default-1 )
+  case $ac_file$ac_mode in
+    "default-1":C)
 
 sed -e "s:@INTLTOOL_PERL@:${INTLTOOL_PERL}:;" < ${srcdir}/intltool-extract.in > intltool-extract.out
 if cmp -s intltool-extract intltool-extract.out 2>/dev/null; then
@@ -21408,14 +23820,13 @@ chmod ugo+x intltool-update
 chmod u+w intltool-update
 
  ;;
-    default-2 ) case "$CONFIG_FILES" in *po/Makefile.in*)
+    "default-2":C) case "$CONFIG_FILES" in *po/Makefile.in*)
         sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
       esac ;;
+
   esac
-done
-_ACEOF
+done # for ac_tag
 
-cat >>$CONFIG_STATUS <<\_ACEOF
 
 { (exit 0); exit 0; }
 _ACEOF
index 8793c578d529302af61eaf2fcd2c05b05ac681e3..fcc8f886c69725142cddb90a3c3f4d556bda348f 100644 (file)
@@ -1909,7 +1909,7 @@ if test "$enable_locking" = yes -a "$with_pam" = yes; then
                   [ac_pam_fail_delay=yes],
                   [ac_pam_fail_delay=no])
       ac_cv_pam_fail_delay=$ac_pam_fail_delay,
-      LD_FLAGS=$ac_save_LDFLAGS])
+      LDFLAGS=$ac_save_LDFLAGS])
 
       if test "$ac_pam_fail_delay" = yes ; then
         AC_MSG_RESULT(yes)
index e7a07d9c4dea9b00349b071ad7f19508d2f60d69..2f9fb89f3681a4aff9b0a38fe39bda09ef6ab619 100644 (file)
@@ -115,10 +115,10 @@ NOLOCK_OBJS_1     = lock.o
 
 TEST_SRCS      = test-passwd.c test-uid.c  test-xdpms.c    test-grab.c \
                  test-apm.c    test-fade.c test-xinerama.c test-vp.c   \
-                 test-randr.c  xdpyinfo.c
+                 test-randr.c  xdpyinfo.c  test-mlstring.c
 TEST_EXES      = test-passwd   test-uid    test-xdpms      test-grab   \
                  test-apm      test-fade   test-xinerama   test-vp     \
-                 test-randr    xdpyinfo
+                 test-randr    xdpyinfo    test-mlstring
 
 MOTIF_LIBS     = @MOTIF_LIBS@ @XPM_LIBS@ $(XMU_LIBS)
 GTK_LIBS       = @GTK_LIBS@ $(XMU_LIBS)
@@ -179,9 +179,9 @@ GETIMG_OBJS = $(GETIMG_OBJS_1) \
                  $(XMU_OBJS)
 
 SAVER_SRCS_1   = xscreensaver.c windows.c timers.c subprocs.c exec.c \
-                 xset.c splash.c setuid.c stderr.c
+                 xset.c splash.c setuid.c stderr.c mlstring.c
 SAVER_OBJS_1   = xscreensaver.o windows.o timers.o subprocs.o exec.o \
-                 xset.o splash.o setuid.o stderr.o
+                 xset.o splash.o setuid.o stderr.o mlstring.o
 
 SAVER_SRCS     = $(SAVER_SRCS_1) prefs.c dpms.c $(LOCK_SRCS) \
                  $(SAVER_UTIL_SRCS) $(GL_SRCS) $(XMU_SRCS)
@@ -225,7 +225,7 @@ SCRIPTS             = $(SCRIPTS_1) @SCRIPTS_OSX@
 HDRS           = XScreenSaver_ad.h XScreenSaver_Xm_ad.h \
                  xscreensaver.h prefs.h remote.h exec.h \
                  demo-Gtk-widgets.h demo-Gtk-stubs.h demo-Gtk-support.h \
-                 demo-Gtk-conf.h
+                 demo-Gtk-conf.h auth.h mlstring.h types.h
 MEN_1          = xscreensaver.man xscreensaver-demo.man \
                  xscreensaver-command.man \
                  xscreensaver-text.man \
@@ -805,7 +805,7 @@ pdf2jpeg: $(PDF2JPEG_OBJS)
 
 
 TEST_PASSWD_OBJS = test-passwd.o $(LOCK_OBJS_1) $(PASSWD_OBJS) \
-        subprocs.o setuid.o splash.o prefs.o \
+        subprocs.o setuid.o splash.o prefs.o mlstring.o exec.o \
        $(SAVER_UTIL_OBJS)
 test-passwd.o: XScreenSaver_ad.h
 
@@ -820,7 +820,7 @@ test-xdpms: test-xdpms.o
        $(X_PRE_LIBS) -lXt -lX11 -lXext $(X_EXTRA_LIBS)
 
 test-xinerama: test-xinerama.o
-       $(CC) $(LDFLAGS) -o $@ test-xinerama.o $(LIBS) $(X_LIBS) $(SAVER_LIBS)\
+       $(CC) $(LDFLAGS) -o $@ test-xinerama.o $(LIBS) $(X_LIBS) $(SAVER_LIBS) \
        $(X_PRE_LIBS) $(XINERAMA_LIBS) -lXt -lX11 -lXext $(X_EXTRA_LIBS)
 
 test-vp: test-vp.o
@@ -837,6 +837,10 @@ test-grab: test-grab.o
 test-apm: test-apm.o
        $(CC) $(LDFLAGS) -o $@ test-apm.o $(SAVER_LIBS) -lapm
 
+test-mlstring.o: mlstring.c
+test-mlstring: test-mlstring.o
+       $(CC) -DTEST $(LDFLAGS) -o $@ test-mlstring.o $(SAVER_LIBS)
+
 TEST_FADE_OBJS = test-fade.o $(UTILS_SRC)/fade.o $(DEMO_UTIL_OBJS)
 test-fade: test-fade.o $(UTILS_BIN)/fade.o
        $(CC) $(LDFLAGS) -o $@ $(TEST_FADE_OBJS) $(SAVER_LIBS)
@@ -858,6 +862,7 @@ xdpyinfo: xdpyinfo.o
 
 demo-Gtk-conf.o: ../config.h
 demo-Gtk-conf.o: $(srcdir)/demo-Gtk-conf.h
+demo-Gtk-conf.o: $(UTILS_SRC)/xscreensaver-intl.h
 demo-Gtk.o: XScreenSaver_ad.h
 demo-Gtk.o: ../config.h
 demo-Gtk.o: $(srcdir)/demo-Gtk-conf.h
@@ -865,6 +870,14 @@ demo-Gtk.o: $(srcdir)/demo-Gtk-support.h
 demo-Gtk.o: $(srcdir)/demo-Gtk-widgets.h
 demo-Gtk.o: $(srcdir)/prefs.h
 demo-Gtk.o: $(srcdir)/remote.h
+demo-Gtk.o: $(srcdir)/types.h
+demo-Gtk.o: $(UTILS_SRC)/images/logo-180.xpm
+demo-Gtk.o: $(UTILS_SRC)/images/logo-50.xpm
+demo-Gtk.o: $(UTILS_SRC)/resources.h
+demo-Gtk.o: $(UTILS_SRC)/usleep.h
+demo-Gtk.o: $(UTILS_SRC)/version.h
+demo-Gtk.o: $(UTILS_SRC)/visual.h
+demo-Gtk.o: $(UTILS_SRC)/xscreensaver-intl.h
 demo-Gtk-support.o: ../config.h
 demo-Gtk-support.o: $(srcdir)/demo-Gtk-support.h
 demo-Gtk-widgets.o: ../config.h
@@ -875,39 +888,67 @@ demo-Xm.o: ../config.h
 demo-Xm-widgets.o: ../config.h
 dpms.o: ../config.h
 dpms.o: $(srcdir)/prefs.h
+dpms.o: $(srcdir)/types.h
 dpms.o: $(srcdir)/xscreensaver.h
 exec.o: ../config.h
 exec.o: $(srcdir)/exec.h
+lock.o: $(srcdir)/auth.h
 lock.o: ../config.h
+lock.o: $(srcdir)/mlstring.h
 lock.o: $(srcdir)/prefs.h
+lock.o: $(srcdir)/types.h
+lock.o: $(UTILS_SRC)/resources.h
 lock.o: $(srcdir)/xscreensaver.h
+mlstring.o: $(srcdir)/mlstring.h
+passwd.o: $(srcdir)/auth.h
 passwd.o: ../config.h
+passwd.o: $(srcdir)/types.h
 passwd-pwent.o: ../config.h
 prefs.o: ../config.h
 prefs.o: $(srcdir)/prefs.h
+prefs.o: $(srcdir)/types.h
+prefs.o: $(UTILS_SRC)/resources.h
 remote.o: ../config.h
 remote.o: $(srcdir)/remote.h
 setuid.o: ../config.h
 setuid.o: $(srcdir)/prefs.h
+setuid.o: $(srcdir)/types.h
 setuid.o: $(srcdir)/xscreensaver.h
 splash.o: ../config.h
 splash.o: $(srcdir)/prefs.h
+splash.o: $(srcdir)/types.h
+splash.o: $(UTILS_SRC)/resources.h
 splash.o: $(srcdir)/xscreensaver.h
 stderr.o: ../config.h
 stderr.o: $(srcdir)/prefs.h
+stderr.o: $(srcdir)/types.h
+stderr.o: $(UTILS_SRC)/resources.h
+stderr.o: $(UTILS_SRC)/visual.h
 stderr.o: $(srcdir)/xscreensaver.h
 subprocs.o: ../config.h
 subprocs.o: $(srcdir)/exec.h
 subprocs.o: $(srcdir)/prefs.h
+subprocs.o: $(srcdir)/types.h
+subprocs.o: $(UTILS_SRC)/visual.h
+subprocs.o: $(UTILS_SRC)/yarandom.h
 subprocs.o: $(srcdir)/xscreensaver.h
 test-apm.o: ../config.h
 test-fade.o: ../config.h
 test-fade.o: $(srcdir)/prefs.h
+test-fade.o: $(srcdir)/types.h
+test-fade.o: $(UTILS_SRC)/fade.h
 test-fade.o: $(srcdir)/xscreensaver.h
 test-grab.o: ../config.h
+test-mlstring.o: $(srcdir)/mlstring.c
+test-mlstring.o: $(srcdir)/mlstring.h
 test-passwd.o: XScreenSaver_ad.h
+test-passwd.o: $(srcdir)/auth.h
 test-passwd.o: ../config.h
 test-passwd.o: $(srcdir)/prefs.h
+test-passwd.o: $(srcdir)/types.h
+test-passwd.o: $(UTILS_SRC)/resources.h
+test-passwd.o: $(UTILS_SRC)/version.h
+test-passwd.o: $(UTILS_SRC)/visual.h
 test-passwd.o: $(srcdir)/xscreensaver.h
 test-randr.o: ../config.h
 test-uid.o: ../config.h
@@ -916,20 +957,42 @@ test-xdpms.o: ../config.h
 test-xinerama.o: ../config.h
 timers.o: ../config.h
 timers.o: $(srcdir)/prefs.h
+timers.o: $(srcdir)/types.h
 timers.o: $(srcdir)/xscreensaver.h
 windows.o: ../config.h
 windows.o: $(srcdir)/prefs.h
+windows.o: $(srcdir)/types.h
+windows.o: $(UTILS_SRC)/fade.h
+windows.o: $(UTILS_SRC)/visual.h
 windows.o: $(srcdir)/xscreensaver.h
 xscreensaver-command.o: ../config.h
 xscreensaver-command.o: $(srcdir)/remote.h
+xscreensaver-command.o: $(UTILS_SRC)/version.h
 xscreensaver-getimage.o: ../config.h
 xscreensaver-getimage.o: XScreenSaver_ad.h
 xscreensaver-getimage.o: $(srcdir)/prefs.h
+xscreensaver-getimage.o: $(srcdir)/types.h
+xscreensaver-getimage.o: $(UTILS_SRC)/colorbars.h
+xscreensaver-getimage.o: $(UTILS_SRC)/grabscreen.h
+xscreensaver-getimage.o: $(UTILS_SRC)/resources.h
+xscreensaver-getimage.o: $(UTILS_SRC)/utils.h
+xscreensaver-getimage.o: $(UTILS_SRC)/version.h
+xscreensaver-getimage.o: $(UTILS_SRC)/visual.h
+xscreensaver-getimage.o: $(UTILS_SRC)/vroot.h
+xscreensaver-getimage.o: $(UTILS_SRC)/yarandom.h
 xscreensaver.o: XScreenSaver_ad.h
+xscreensaver.o: $(srcdir)/auth.h
 xscreensaver.o: ../config.h
 xscreensaver.o: $(srcdir)/prefs.h
+xscreensaver.o: $(srcdir)/types.h
+xscreensaver.o: $(UTILS_SRC)/resources.h
+xscreensaver.o: $(UTILS_SRC)/usleep.h
+xscreensaver.o: $(UTILS_SRC)/version.h
+xscreensaver.o: $(UTILS_SRC)/visual.h
+xscreensaver.o: $(UTILS_SRC)/yarandom.h
 xscreensaver.o: $(srcdir)/xscreensaver.h
 xset.o: ../config.h
 xset.o: $(srcdir)/prefs.h
+xset.o: $(srcdir)/types.h
 xset.o: $(srcdir)/xscreensaver.h
 
index 840252df4c5bd37d2b6662fe3af0bdd776432c69..f7d563e3858fadb4949f7312039f032b627945a2 100644 (file)
@@ -4,8 +4,8 @@
 !            a screen saver and locker for the X window system
 !                            by Jamie Zawinski
 !
-!                              version 5.01b2
-!                              18-Sep-2006
+!                              version 5.02
+!                              20-Apr-2007
 !
 ! See "man xscreensaver" for more info.  The latest version is always
 ! available at http://www.jwz.org/xscreensaver/
@@ -452,10 +452,10 @@ XScreenSaver.bourneShell:         /bin/sh
 *Dialog.shadowThickness:       2
 
 *passwd.heading.label:         XScreenSaver %s
-*passwd.body.label:            Please enter your password.
+*passwd.body.label:            This screen is locked.
+*passwd.unlock.label:          OK
 *passwd.login.label:           New Login
 *passwd.user.label:            Username:
-*passwd.passwd.label:          Password:
 *passwd.thermometer.width:     8
 *passwd.asterisks:              True
 *passwd.uname:                  True
index c6776b5798821abc91a8bc17876debe88a8ad1bf..2843bdcc6cbdfbd9ec468d6e38f0f8116cb537b2 100644 (file)
 "*Dialog.borderWidth:          1",
 "*Dialog.shadowThickness:      2",
 "*passwd.heading.label:                XScreenSaver %s",
-"*passwd.body.label:           Please enter your password.",
+"*passwd.body.label:           This screen is locked.",
+"*passwd.unlock.label:         OK",
 "*passwd.login.label:          New Login",
 "*passwd.user.label:           Username:",
-"*passwd.passwd.label:         Password:",
 "*passwd.thermometer.width:    8",
 "*passwd.asterisks:              True",
 "*passwd.uname:                  True",
diff --git a/driver/auth.h b/driver/auth.h
new file mode 100644 (file)
index 0000000..65e00f3
--- /dev/null
@@ -0,0 +1,54 @@
+/* auth.h --- Providing authentication mechanisms.
+ *
+ * (c) 2007, Quest Software, Inc. All rights reserved.
+ *
+ * This file is part of XScreenSaver,
+ * Copyright (c) 1993-2004 Jamie Zawinski <jwz@jwz.org>
+ *
+ * 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.
+ */
+#ifndef XSS_AUTH_H
+#define XSS_AUTH_H
+
+#include "types.h"
+
+#undef Bool
+#undef True
+#undef False
+#define Bool int
+#define True 1
+#define False 0
+
+struct auth_message {
+  enum {
+    AUTH_MSGTYPE_INFO,
+    AUTH_MSGTYPE_ERROR,
+    AUTH_MSGTYPE_PROMPT_NOECHO,
+    AUTH_MSGTYPE_PROMPT_ECHO
+  } type;
+  const char *msg;
+};
+
+struct auth_response {
+  char *response;
+};
+
+int
+gui_auth_conv(int num_msg,
+         const struct auth_message auth_msgs[],
+         struct auth_response **resp,
+         saver_info *si);
+
+void
+xss_authenticate(saver_info *si, Bool verbose_p);
+
+void
+auth_finished_cb (saver_info *si);
+
+#endif
index b4ac7c862f9328e108c3f6591a49f9db30069da2..66e34773f40b8105bf0d34c302d5f5dea4706078 100644 (file)
@@ -1,5 +1,5 @@
 /* demo-Gtk.c --- implements the interactive demo-mode and options dialogs.
- * xscreensaver, Copyright (c) 1993-2006 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1993-2007 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -152,6 +152,13 @@ static void hack_subproc_environment (Window preview_window_id, Bool debug_p);
 #define countof(x) (sizeof((x))/sizeof((*x)))
 
 
+/* You might think that to read an array of 32-bit quantities out of a
+   server-side property, you would pass an array of 32-bit data quantities
+   into XGetWindowProperty().  You would be wrong.  You have to use an array
+   of longs, even if long is 64 bits (using 32 of each 64.)
+ */
+typedef long PROP32;
+
 char *progname = 0;
 char *progclass = "XScreenSaver";
 XrmDatabase db;
@@ -2338,7 +2345,7 @@ server_current_hack (void)
       && nitems >= 3
       && dataP)
     {
-      CARD32 *data = (CARD32 *) dataP;
+      PROP32 *data = (PROP32 *) dataP;
       hack_number = (int) data[2] - 1;
     }
 
index cb3053dd66383d6a9d7e1cb47ad5fcaf6e10e591..bba326b0be97f10e1e4568ac9e13e0fa9b715bad 100644 (file)
@@ -1,5 +1,5 @@
 /* lock.c --- handling the password dialog for locking-mode.
- * xscreensaver, Copyright (c) 1993-2006 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1993-2007 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -25,6 +25,8 @@
 #include <sys/time.h>
 #include "xscreensaver.h"
 #include "resources.h"
+#include "mlstring.h"
+#include "auth.h"
 
 #ifndef NO_LOCKING              /* (mostly) whole file */
 
@@ -74,18 +76,19 @@ vms_passwd_valid_p(char *pw, Bool verbose_p)
 
 #endif /* VMS */
 
+#define SAMPLE_INPUT "MMMMMMMMMMMM"
+
 
 #undef MAX
 #define MAX(a,b) ((a)>(b)?(a):(b))
 
-enum passwd_state { pw_read, pw_ok, pw_null, pw_fail, pw_cancel, pw_time };
+typedef struct info_dialog_data info_dialog_data;
 
 struct passwd_dialog_data {
 
   saver_screen_info *prompt_screen;
   int previous_mouse_x, previous_mouse_y;
 
-  enum passwd_state state;
   char typed_passwd [80];
   XtIntervalId timer;
   int i_beam;
@@ -96,16 +99,20 @@ struct passwd_dialog_data {
   Dimension height;
   Dimension border_width;
 
+  Bool echo_input;
   Bool show_stars_p; /* "I regret that I have but one asterisk for my country."
                         -- Nathan Hale, 1776. */
 
   char *heading_label;
   char *body_label;
   char *user_label;
-  char *passwd_label;
+  mlstring *info_label;
+  /* The entry field shall only be displayed if prompt_label is not NULL */
+  mlstring *prompt_label;
   char *date_label;
-  char *user_string;
   char *passwd_string;
+  Bool passwd_changed_p; /* Whether the user entry field needs redrawing */
+  char *unlock_label;
   char *login_label;
   char *uname_label;
 
@@ -130,8 +137,8 @@ struct passwd_dialog_data {
   Pixel button_foreground;
   Pixel button_background;
 
-  Dimension logo_width;
-  Dimension logo_height;
+  Dimension preferred_logo_width, logo_width;
+  Dimension preferred_logo_height, logo_height;
   Dimension thermo_width;
   Dimension internal_border;
   Dimension shadow_width;
@@ -139,6 +146,9 @@ struct passwd_dialog_data {
   Dimension passwd_field_x, passwd_field_y;
   Dimension passwd_field_width, passwd_field_height;
 
+  Dimension unlock_button_x, unlock_button_y;
+  Dimension unlock_button_width, unlock_button_height;
+
   Dimension login_button_x, login_button_y;
   Dimension login_button_width, login_button_height;
 
@@ -151,11 +161,14 @@ struct passwd_dialog_data {
   unsigned long *logo_pixels;
 
   Cursor passwd_cursor;
+  Bool unlock_button_down_p;
   Bool login_button_down_p;
   Bool login_button_p;
   Bool login_button_enabled_p;
+  Bool button_state_changed_p; /* Refers to both buttons */
 
   Pixmap save_under;
+  Pixmap user_entry_pixmap;
 };
 
 static void draw_passwd_window (saver_info *si);
@@ -163,30 +176,31 @@ static void update_passwd_window (saver_info *si, const char *printed_passwd,
                                  float ratio);
 static void destroy_passwd_window (saver_info *si);
 static void undo_vp_motion (saver_info *si);
-static void handle_passwd_button (saver_info *si, XEvent *event);
+static void finished_typing_passwd (saver_info *si, passwd_dialog_data *pw);
+static void cleanup_passwd_window (saver_info *si);
+static void restore_background (saver_info *si);
 
+extern void xss_authenticate(saver_info *si, Bool verbose_p);
 
 static void
-make_passwd_window (saver_info *si)
+new_passwd_window (saver_info *si)
 {
-  struct passwd *p = getpwuid (getuid ());
-  XSetWindowAttributes attrs;
-  unsigned long attrmask = 0;
-  passwd_dialog_data *pw = (passwd_dialog_data *) calloc (1, sizeof(*pw));
+  passwd_dialog_data *pw;
   Screen *screen;
   Colormap cmap;
   char *f;
   saver_screen_info *ssi = &si->screens [mouse_screen (si)];
 
+  pw = (passwd_dialog_data *) calloc (1, sizeof(*pw));
+  if (!pw)
+    return;
+
   /* Display the button only if the "newLoginCommand" pref is non-null.
    */
   pw->login_button_p = (si->prefs.new_login_command &&
                         *si->prefs.new_login_command);
 
-  if (pw->login_button_p)
-    pw->passwd_cursor = XCreateFontCursor (si->dpy, XC_top_left_arrow);
-  else
-    pw->passwd_cursor = 0;
+  pw->passwd_cursor = XCreateFontCursor (si->dpy, XC_top_left_arrow);
 
   pw->prompt_screen = ssi;
   if (si->prefs.verbose_p)
@@ -196,8 +210,6 @@ make_passwd_window (saver_info *si)
   screen = pw->prompt_screen->screen;
   cmap = DefaultColormapOfScreen (screen);
 
-  pw->ratio = 1.0;
-
   pw->show_stars_p = get_boolean_resource(si->dpy, "passwd.asterisks", 
                                          "Boolean");
   
@@ -207,8 +219,8 @@ make_passwd_window (saver_info *si)
                                        "Dialog.Label.Label");
   pw->user_label = get_string_resource (si->dpy, "passwd.user.label",
                                        "Dialog.Label.Label");
-  pw->passwd_label = get_string_resource (si->dpy, "passwd.passwd.label",
-                                         "Dialog.Label.Label");
+  pw->unlock_label = get_string_resource (si->dpy, "passwd.unlock.label",
+                                         "Dialog.Button.Label");
   pw->login_label = get_string_resource (si->dpy, "passwd.login.label",
                                          "Dialog.Button.Label");
 
@@ -219,8 +231,8 @@ make_passwd_window (saver_info *si)
   if (!pw->body_label)
     pw->body_label = strdup("ERROR: RESOURCES NOT INSTALLED CORRECTLY");
   if (!pw->user_label) pw->user_label = strdup("ERROR");
-  if (!pw->passwd_label) pw->passwd_label = strdup("ERROR");
   if (!pw->date_label) pw->date_label = strdup("ERROR");
+  if (!pw->unlock_label) pw->unlock_label = strdup("ERROR (UNLOCK)");
   if (!pw->login_label) pw->login_label = strdup ("ERROR (LOGIN)") ;
 
   /* Put the version number in the label. */
@@ -254,7 +266,6 @@ make_passwd_window (saver_info *si)
   }
 # endif
 
-  pw->user_string = strdup (p && p->pw_name ? p->pw_name : "???");
   pw->passwd_string = strdup("");
 
   f = get_string_resource (si->dpy, "passwd.headingFont", "Dialog.Font");
@@ -333,10 +344,10 @@ make_passwd_window (saver_info *si)
                                          "passwd.bottomShadowColor",
                                          "Dialog.Background" );
 
-  pw->logo_width = get_integer_resource (si->dpy, "passwd.logo.width",
-                                        "Dialog.Logo.Width");
-  pw->logo_height = get_integer_resource (si->dpy, "passwd.logo.height",
-                                         "Dialog.Logo.Height");
+  pw->preferred_logo_width = get_integer_resource (si->dpy, "passwd.logo.width",
+                                                  "Dialog.Logo.Width");
+  pw->preferred_logo_height = get_integer_resource (si->dpy, "passwd.logo.height",
+                                                   "Dialog.Logo.Height");
   pw->thermo_width = get_integer_resource (si->dpy, "passwd.thermometer.width",
                                           "Dialog.Thermometer.Width");
   pw->internal_border = get_integer_resource (si->dpy, "passwd.internalBorderWidth",
@@ -344,12 +355,118 @@ make_passwd_window (saver_info *si)
   pw->shadow_width = get_integer_resource (si->dpy, "passwd.shadowThickness",
                                           "Dialog.ShadowThickness");
 
-  if (pw->logo_width == 0)  pw->logo_width = 150;
-  if (pw->logo_height == 0) pw->logo_height = 150;
+  if (pw->preferred_logo_width == 0)  pw->preferred_logo_width = 150;
+  if (pw->preferred_logo_height == 0) pw->preferred_logo_height = 150;
   if (pw->internal_border == 0) pw->internal_border = 15;
   if (pw->shadow_width == 0) pw->shadow_width = 4;
   if (pw->thermo_width == 0) pw->thermo_width = pw->shadow_width;
 
+
+  /* We need to remember the mouse position and restore it afterward, or
+     sometimes (perhaps only with Xinerama?) the mouse gets warped to
+     inside the bounds of the lock dialog window.
+   */
+  {
+    Window pointer_root, pointer_child;
+    int root_x, root_y, win_x, win_y;
+    unsigned int mask;
+    pw->previous_mouse_x = 0;
+    pw->previous_mouse_y = 0;
+    if (XQueryPointer (si->dpy, RootWindowOfScreen (pw->prompt_screen->screen),
+                       &pointer_root, &pointer_child,
+                       &root_x, &root_y, &win_x, &win_y, &mask))
+      {
+        pw->previous_mouse_x = root_x;
+        pw->previous_mouse_y = root_y;
+        if (si->prefs.verbose_p)
+          fprintf (stderr, "%s: %d: mouse is at %d,%d.\n",
+                   blurb(), pw->prompt_screen->number,
+                   pw->previous_mouse_x, pw->previous_mouse_y);
+      }
+    else if (si->prefs.verbose_p)
+      fprintf (stderr, "%s: %d: unable to determine mouse position?\n",
+               blurb(), pw->prompt_screen->number);
+  }
+
+  /* Before mapping the window, save a pixmap of the current screen.
+     When we lower the window, we
+     restore these bits.  This works, because the running screenhack
+     has already been sent SIGSTOP, so we know nothing else is drawing
+     right now! */
+  {
+    XGCValues gcv;
+    GC gc;
+    pw->save_under = XCreatePixmap (si->dpy,
+                                   pw->prompt_screen->screensaver_window,
+                                   pw->prompt_screen->width,
+                                   pw->prompt_screen->height,
+                                   pw->prompt_screen->current_depth);
+    gcv.function = GXcopy;
+    gc = XCreateGC (si->dpy, pw->save_under, GCFunction, &gcv);
+    XCopyArea (si->dpy, pw->prompt_screen->screensaver_window,
+              pw->save_under, gc,
+              0, 0,
+              pw->prompt_screen->width, pw->prompt_screen->height,
+              0, 0);
+    XFreeGC (si->dpy, gc);
+  }
+
+  si->pw_data = pw;
+}
+
+
+/**
+ * info_msg and prompt may be NULL.
+ */
+static void
+make_passwd_window (saver_info *si,
+                   const char *info_msg,
+                   const char *prompt,
+                   Bool echo)
+{
+  XSetWindowAttributes attrs;
+  unsigned long attrmask = 0;
+  passwd_dialog_data *pw;
+  Screen *screen;
+  Colormap cmap;
+  Dimension max_string_width_px;
+  saver_screen_info *ssi = &si->screens [mouse_screen (si)];
+
+  cleanup_passwd_window (si);
+
+  if (!si->pw_data)
+    new_passwd_window (si);
+
+  if (!(pw = si->pw_data))
+    return;
+
+  pw->ratio = 1.0;
+
+  pw->prompt_screen = ssi;
+  if (si->prefs.verbose_p)
+    fprintf (stderr, "%s: %d: creating password dialog.\n",
+             blurb(), pw->prompt_screen->number);
+
+  screen = pw->prompt_screen->screen;
+  cmap = DefaultColormapOfScreen (screen);
+
+  pw->echo_input = echo;
+
+  max_string_width_px = ssi->width
+      - pw->shadow_width * 4
+      - pw->border_width * 2
+      - pw->thermo_width
+      - pw->preferred_logo_width
+      - pw->internal_border * 2;
+  /* As the string wraps it makes the window taller which makes the logo wider
+   * which leaves less room for the text which makes the string wrap. Uh-oh, a
+   * loop. By wrapping at a bit less than the available width, there's some
+   * room for the dialog to grow without going off the edge of the screen. */
+  max_string_width_px *= 0.75;
+
+  pw->info_label = mlstring_new(info_msg ? info_msg : pw->body_label,
+                               pw->label_font, max_string_width_px);
+
   {
     int direction, ascent, descent;
     XCharStruct overall;
@@ -374,17 +491,10 @@ make_passwd_window (saver_info *si)
        pw->height += ascent + descent;
       }
 
-    /* Measure the body_label. */
-    XTextExtents (pw->body_font,
-                 pw->body_label, strlen(pw->body_label),
-                 &direction, &ascent, &descent, &overall);
-    if (overall.width > pw->width) pw->width = overall.width;
-    pw->height += ascent + descent;
-
     {
       Dimension w2 = 0, w3 = 0, button_w = 0;
       Dimension h2 = 0, h3 = 0, button_h = 0;
-      const char *passwd_string = "MMMMMMMMMMMM";
+      const char *passwd_string = SAMPLE_INPUT;
 
       /* Measure the user_label. */
       XTextExtents (pw->label_font,
@@ -393,34 +503,62 @@ make_passwd_window (saver_info *si)
       if (overall.width > w2)  w2 = overall.width;
       h2 += ascent + descent;
 
-      /* Measure the passwd_label. */
-      XTextExtents (pw->label_font,
-                   pw->passwd_label, strlen(pw->passwd_label),
-                   &direction, &ascent, &descent, &overall);
-      if (overall.width > w2)  w2 = overall.width;
-      h2 += ascent + descent;
+      /* Measure the info_label. */
+      if (pw->info_label->overall_width > pw->width) pw->width = pw->info_label->overall_width;
+       h2 += pw->info_label->overall_height;
 
-      /* Measure the user_string. */
+      /* Measure the user string. */
       XTextExtents (pw->passwd_font,
-                   pw->user_string, strlen(pw->user_string),
+                   si->user, strlen(si->user),
                    &direction, &ascent, &descent, &overall);
       overall.width += (pw->shadow_width * 4);
       ascent += (pw->shadow_width * 4);
       if (overall.width > w3)  w3 = overall.width;
       h3 += ascent + descent;
 
-      /* Measure the (maximally-sized, dummy) passwd_string. */
-      XTextExtents (pw->passwd_font,
-                   passwd_string, strlen(passwd_string),
+      /* Measure the (dummy) passwd_string. */
+      if (prompt)
+       {
+         XTextExtents (pw->passwd_font,
+                       passwd_string, strlen(passwd_string),
+                       &direction, &ascent, &descent, &overall);
+         overall.width += (pw->shadow_width * 4);
+         ascent += (pw->shadow_width * 4);
+         if (overall.width > w3)  w3 = overall.width;
+         h3 += ascent + descent;
+
+         /* Measure the prompt_label. */
+         max_string_width_px -= w3;
+         pw->prompt_label = mlstring_new(prompt, pw->label_font, max_string_width_px);
+
+         if (pw->prompt_label->overall_width > w2) w2 = pw->prompt_label->overall_width;
+
+         h2 += pw->prompt_label->overall_height;
+
+         w2 = w2 + w3 + (pw->shadow_width * 2);
+         h2 = MAX (h2, h3);
+       }
+
+      /* The "Unlock" button. */
+      XTextExtents (pw->label_font,
+                   pw->unlock_label, strlen(pw->unlock_label),
                    &direction, &ascent, &descent, &overall);
-      overall.width += (pw->shadow_width * 4);
-      ascent += (pw->shadow_width * 4);
-      if (overall.width > w3)  w3 = overall.width;
-      h3 += ascent + descent;
+      button_w = overall.width;
+      button_h = ascent + descent;
+
+      /* Add some horizontal padding inside the button. */
+      button_w += ascent;
+      
+      button_w += ((ascent + descent) / 2) + (pw->shadow_width * 2);
+      button_h += ((ascent + descent) / 2) + (pw->shadow_width * 2);
+
+      pw->unlock_button_width = button_w;
+      pw->unlock_button_height = button_h;
 
-      w2 = w2 + w3 + (pw->shadow_width * 2);
-      h2 = MAX (h2, h3);
+      w2 = MAX (w2, button_w);
+      h2 += button_h * 1.5;
 
+      /* The "New Login" button */
       pw->login_button_width = 0;
       pw->login_button_height = 0;
 
@@ -444,8 +582,12 @@ make_passwd_window (saver_info *si)
           pw->login_button_width = button_w;
           pw->login_button_height = button_h;
 
-          w2 = MAX (w2, button_w);
-          h2 += button_h * 1.5;
+         if (button_h > pw->unlock_button_height)
+           h2 += (button_h * 1.5 - pw->unlock_button_height * 1.5);
+
+         /* Use (2 * shadow_width) spacing between the buttons. Another
+            (2 * shadow_width) is required to account for button shadows. */
+         w2 = MAX (w2, button_w + pw->unlock_button_width + (pw->shadow_width * 4));
         }
 
       if (w2 > pw->width)  pw->width  = w2;
@@ -457,9 +599,9 @@ make_passwd_window (saver_info *si)
 
     pw->width += pw->thermo_width + (pw->shadow_width * 3);
 
-    if (pw->logo_height > pw->height)
-      pw->height = pw->logo_height;
-    else if (pw->height > pw->logo_height)
+    if (pw->preferred_logo_height > pw->height)
+      pw->height = pw->logo_height = pw->preferred_logo_height;
+    else if (pw->height > pw->preferred_logo_height)
       pw->logo_height = pw->height;
 
     pw->logo_width = pw->logo_height;
@@ -473,32 +615,6 @@ make_passwd_window (saver_info *si)
   attrs.event_mask = (ExposureMask | KeyPressMask |
                       ButtonPressMask | ButtonReleaseMask);
 
-  /* We need to remember the mouse position and restore it afterward, or
-     sometimes (perhaps only with Xinerama?) the mouse gets warped to
-     inside the bounds of the lock dialog window.
-   */
-  {
-    Window pointer_root, pointer_child;
-    int root_x, root_y, win_x, win_y;
-    unsigned int mask;
-    pw->previous_mouse_x = 0;
-    pw->previous_mouse_y = 0;
-    if (XQueryPointer (si->dpy, RootWindowOfScreen (pw->prompt_screen->screen),
-                       &pointer_root, &pointer_child,
-                       &root_x, &root_y, &win_x, &win_y, &mask))
-      {
-        pw->previous_mouse_x = root_x;
-        pw->previous_mouse_y = root_y;
-        if (si->prefs.verbose_p)
-          fprintf (stderr, "%s: %d: mouse is at %d,%d.\n",
-                   blurb(), pw->prompt_screen->number,
-                   pw->previous_mouse_x, pw->previous_mouse_y);
-      }
-    else if (si->prefs.verbose_p)
-      fprintf (stderr, "%s: %d: unable to determine mouse position?\n",
-               blurb(), pw->prompt_screen->number);
-  }
-
   /* Figure out where on the desktop to place the window so that it will
      actually be visible; this takes into account virtual viewports as
      well as Xinerama. */
@@ -517,56 +633,48 @@ make_passwd_window (saver_info *si)
   pw->border_width = get_integer_resource (si->dpy, "passwd.borderWidth",
                                            "Dialog.BorderWidth");
 
-  si->passwd_dialog =
-    XCreateWindow (si->dpy,
-                  RootWindowOfScreen(screen),
-                  pw->x, pw->y, pw->width, pw->height, pw->border_width,
-                  DefaultDepthOfScreen (screen), InputOutput,
-                  DefaultVisualOfScreen(screen),
-                  attrmask, &attrs);
-  XSetWindowBackground (si->dpy, si->passwd_dialog, pw->background);
-
-  /* We use the default visual, not ssi->visual, so that the logo pixmap's
-     visual matches that of the si->passwd_dialog window. */
-  pw->logo_pixmap = xscreensaver_logo (ssi->screen,
-                                       /* ssi->current_visual, */
-                                       DefaultVisualOfScreen(screen),
-                                       si->passwd_dialog, cmap,
-                                       pw->background, 
-                                       &pw->logo_pixels, &pw->logo_npixels,
-                                       &pw->logo_clipmask, True);
-
-  /* Before mapping the window, save the bits that are underneath the
-     rectangle the window will occlude.  When we lower the window, we
-     restore these bits.  This works, because the running screenhack
-     has already been sent SIGSTOP, so we know nothing else is drawing
-     right now! */
-  {
-    XGCValues gcv;
-    GC gc;
-    pw->save_under = XCreatePixmap (si->dpy,
-                                    pw->prompt_screen->screensaver_window,
-                                    pw->width + (pw->border_width*2) + 1,
-                                    pw->height + (pw->border_width*2) + 1,
-                                    pw->prompt_screen->current_depth);
-    gcv.function = GXcopy;
-    gc = XCreateGC (si->dpy, pw->save_under, GCFunction, &gcv);
-    XCopyArea (si->dpy, pw->prompt_screen->screensaver_window,
-               pw->save_under, gc,
-               pw->x - pw->border_width, pw->y - pw->border_width,
-               pw->width + (pw->border_width*2) + 1,
-               pw->height + (pw->border_width*2) + 1,
-               0, 0);
-    XFreeGC (si->dpy, gc);
-  }
+  /* Only create the window the first time around */
+  if (!si->passwd_dialog)
+    {
+      si->passwd_dialog =
+       XCreateWindow (si->dpy,
+                      RootWindowOfScreen(screen),
+                      pw->x, pw->y, pw->width, pw->height, pw->border_width,
+                      DefaultDepthOfScreen (screen), InputOutput,
+                      DefaultVisualOfScreen(screen),
+                      attrmask, &attrs);
+      XSetWindowBackground (si->dpy, si->passwd_dialog, pw->background);
+
+      /* We use the default visual, not ssi->visual, so that the logo pixmap's
+        visual matches that of the si->passwd_dialog window. */
+      pw->logo_pixmap = xscreensaver_logo (ssi->screen,
+                                          /* ssi->current_visual, */
+                                          DefaultVisualOfScreen(screen),
+                                          si->passwd_dialog, cmap,
+                                          pw->background, 
+                                          &pw->logo_pixels, &pw->logo_npixels,
+                                          &pw->logo_clipmask, True);
+    }
+  else /* On successive prompts, just resize the window */
+    {
+      XWindowChanges wc;
+      unsigned int mask = CWX | CWY | CWWidth | CWHeight;
+
+      wc.x = pw->x;
+      wc.y = pw->y;
+      wc.width = pw->width;
+      wc.height = pw->height;
+
+      XConfigureWindow (si->dpy, si->passwd_dialog, mask, &wc);
+    }
+
+  restore_background(si);
 
   XMapRaised (si->dpy, si->passwd_dialog);
   XSync (si->dpy, False);
 
   move_mouse_grab (si, si->passwd_dialog,
-                   (pw->passwd_cursor
-                    ? pw->passwd_cursor
-                    : pw->prompt_screen->cursor),
+                   pw->passwd_cursor,
                    pw->prompt_screen->number);
   undo_vp_motion (si);
 
@@ -575,7 +683,6 @@ make_passwd_window (saver_info *si)
   if (cmap)
     XInstallColormap (si->dpy, cmap);
   draw_passwd_window (si);
-  XSync (si->dpy, False);
 }
 
 
@@ -590,24 +697,30 @@ draw_passwd_window (saver_info *si)
   int sw;
   int tb_height;
 
+  /* Force redraw */
+  pw->passwd_changed_p = True;
+  pw->button_state_changed_p = True;
+
+  /* This height is the height of all the elements, not to be confused with
+   * the overall window height which is pw->height. It is used to compute
+   * the amount of spacing (padding) between elements. */
   height = (pw->heading_font->ascent + pw->heading_font->descent +
-            pw->body_font->ascent + pw->body_font->descent +
-            (2 * MAX ((pw->label_font->ascent + pw->label_font->descent),
-                      (pw->passwd_font->ascent + pw->passwd_font->descent +
-                       (pw->shadow_width * 4)))) +
+           pw->info_label->overall_height +
+           MAX (((pw->label_font->ascent + pw->label_font->descent) +
+                 (pw->prompt_label ? pw->prompt_label->overall_height : 0)),
+                ((pw->passwd_font->ascent + pw->passwd_font->descent) +
+                 (pw->shadow_width * 2)) * (pw->prompt_label ? 2 : 1)) +
             pw->date_font->ascent + pw->date_font->descent);
 
   if ((strlen(pw->uname_label)) && pw->show_uname_p)
     height += (pw->uname_font->ascent + pw->uname_font->descent); /* for uname */
 
-  if (pw->login_button_p)
-    height += ((pw->button_font->ascent + pw->button_font->descent) * 2 +
-               2 * pw->shadow_width);
+  height += ((pw->button_font->ascent + pw->button_font->descent) * 2 +
+             2 * pw->shadow_width);
 
-  spacing = (((pw->height
-               - ((pw->login_button_p ? 4 : 2) * pw->shadow_width)
-               - pw->internal_border - height))
-             / 8);
+  spacing = ((pw->height - 2 * pw->shadow_width
+               - pw->internal_border - height)
+             / 10);
 
   if (spacing < 0) spacing = 0;
 
@@ -639,14 +752,13 @@ draw_passwd_window (saver_info *si)
                   pw->uname_label, strlen(pw->uname_label));
     }
 
-  /* text below uname
+  /* the info_label (below uname)
    */
-  XSetFont (si->dpy, gc1, pw->body_font->fid);
-  y1 += spacing + pw->body_font->ascent + pw->body_font->descent;
-  sw = string_width (pw->body_font, pw->body_label);
-  x2 = (x1 + ((x3 - x1 - sw) / 2));
-  XDrawString (si->dpy, si->passwd_dialog, gc1, x2, y1,
-              pw->body_label, strlen(pw->body_label));
+  x2 = (x1 + ((x3 - x1 - pw->info_label->overall_width) / 2));
+  y1 += spacing + pw->info_label->font_height / 2;
+  mlstring_draw(si->dpy, si->passwd_dialog, gc1, pw->info_label,
+               x2, y1);
+  y1 += pw->info_label->overall_height;
 
 
   tb_height = (pw->passwd_font->ascent + pw->passwd_font->descent +
@@ -654,34 +766,32 @@ draw_passwd_window (saver_info *si)
 
   /* the "User:" prompt
    */
-  y1 += spacing;
   y2 = y1;
   XSetForeground (si->dpy, gc1, pw->foreground);
   XSetFont (si->dpy, gc1, pw->label_font->fid);
-  y1 += (spacing + tb_height);
+  y1 += (spacing + tb_height + pw->shadow_width);
   x2 = (x1 + pw->internal_border +
        MAX(string_width (pw->label_font, pw->user_label),
-           string_width (pw->label_font, pw->passwd_label)));
+           pw->prompt_label ? pw->prompt_label->overall_width : 0));
   XDrawString (si->dpy, si->passwd_dialog, gc1,
               x2 - string_width (pw->label_font, pw->user_label),
               y1 - pw->passwd_font->descent,
               pw->user_label, strlen(pw->user_label));
 
-  /* the "Password:" prompt
+  /* the prompt_label prompt
    */
-  y1 += (spacing + tb_height);
-  XDrawString (si->dpy, si->passwd_dialog, gc1,
-              x2 - string_width (pw->label_font, pw->passwd_label),
-              y1 - pw->passwd_font->descent,
-              pw->passwd_label, strlen(pw->passwd_label));
-
-
-  XSetForeground (si->dpy, gc2, pw->passwd_background);
+  if (pw->prompt_label)
+    {
+      y1 += tb_height - pw->label_font->ascent + pw->shadow_width;
+      mlstring_draw(si->dpy, si->passwd_dialog, gc1, pw->prompt_label,
+                   x2 - pw->prompt_label->overall_width, y1);
+    }
 
   /* the "user name" text field
    */
   y1 = y2;
   XSetForeground (si->dpy, gc1, pw->passwd_foreground);
+  XSetForeground (si->dpy, gc2, pw->passwd_background);
   XSetFont (si->dpy, gc1, pw->passwd_font->fid);
   y1 += (spacing + tb_height);
   x2 += (pw->shadow_width * 4);
@@ -698,15 +808,18 @@ draw_passwd_window (saver_info *si)
   XDrawString (si->dpy, si->passwd_dialog, gc1,
                x2,
                y1 - pw->passwd_font->descent,
-              pw->user_string, strlen(pw->user_string));
+              si->user, strlen(si->user));
 
-  /* the "password" text field
+  /* the password/prompt text field
    */
-  y1 += (spacing + tb_height);
+  if (pw->prompt_label)
+    {
+      y1 += (spacing + pw->prompt_label->overall_height + pw->shadow_width * 2);
 
-  pw->passwd_field_x = x2 - pw->shadow_width;
-  pw->passwd_field_y = y1 - (pw->passwd_font->ascent +
-                            pw->passwd_font->descent);
+      pw->passwd_field_x = x2 - pw->shadow_width;
+      pw->passwd_field_y = y1 - (pw->passwd_font->ascent +
+                                pw->passwd_font->descent);
+    }
 
   /* The shadow around the text fields
    */
@@ -721,12 +834,14 @@ draw_passwd_window (saver_info *si)
                         pw->shadow_width,
                         pw->shadow_bottom, pw->shadow_top);
 
-  y1 += (spacing + pw->passwd_font->ascent + pw->passwd_font->descent +
-        (pw->shadow_width * 4));
-  draw_shaded_rectangle (si->dpy, si->passwd_dialog,
-                        x1, y1, x2, y2,
-                        pw->shadow_width,
-                        pw->shadow_bottom, pw->shadow_top);
+  if (pw->prompt_label)
+    {
+      y1 += (spacing + pw->prompt_label->overall_height + pw->shadow_width * 2);
+      draw_shaded_rectangle (si->dpy, si->passwd_dialog,
+                            x1, y1, x2, y2,
+                            pw->shadow_width,
+                            pw->shadow_bottom, pw->shadow_top);
+    }
 
 
   /* The date, below the text fields
@@ -747,33 +862,38 @@ draw_passwd_window (saver_info *si)
     XDrawString (si->dpy, si->passwd_dialog, gc1, x2, y1, buf, strlen(buf));
   }
 
+  /* Set up the GCs for the "New Login" and "Unlock" buttons.
+   */
+  XSetForeground(si->dpy, gc1, pw->button_foreground);
+  XSetForeground(si->dpy, gc2, pw->button_background);
+  XSetFont(si->dpy, gc1, pw->button_font->fid);
+
+  /* The "Unlock" button */
+  x2 = pw->width - pw->internal_border - (pw->shadow_width * 2);
+
+  /* right aligned button */
+  x1 = x2 - pw->unlock_button_width;
+
+  /* Add half the difference between y1 and the internal edge.
+   * It actually looks better if the internal border is ignored. */
+  y1 += ((pw->height - MAX (pw->unlock_button_height, pw->login_button_height)
+         - spacing - y1)
+         / 2);
+
+  pw->unlock_button_x = x1;
+  pw->unlock_button_y = y1;
+
   /* The "New Login" button
    */
   if (pw->login_button_p)
     {
-      XSetForeground (si->dpy, gc1, pw->button_foreground);
-      XSetForeground (si->dpy, gc2, pw->button_background);
-      XSetFont (si->dpy, gc1, pw->button_font->fid);
+      /* Using the same GC as for the Unlock button */
 
       sw = string_width (pw->button_font, pw->login_label);
 
-      x2 = pw->width - pw->internal_border - (pw->shadow_width * 2);
-
-      /* right aligned button */
-      /* x1 = x2 - pw->login_button_width;  */
-
-      /* centered button */
+      /* left aligned button */
       x1 = (pw->logo_width + pw->thermo_width + (pw->shadow_width * 3) +
-            pw->internal_border);
-      x1 = x1 + (x2 - x1 - pw->login_button_width) / 2;
-
-      y1 = (pw->height - pw->internal_border - pw->login_button_height +
-            spacing);
-      y2 = (y1 +
-            ((pw->login_button_height -
-              (pw->button_font->ascent + pw->button_font->descent))
-             / 2) +
-            pw->button_font->ascent);
+           pw->internal_border);
 
       pw->login_button_x = x1;
       pw->login_button_y = y1;
@@ -864,6 +984,51 @@ draw_passwd_window (saver_info *si)
   update_passwd_window (si, pw->passwd_string, pw->ratio);
 }
 
+static void
+draw_button(Display *dpy,
+           Drawable dialog,
+           XFontStruct *font,
+           unsigned long foreground, unsigned long background,
+           char *label,
+           int x, int y,
+           int width, int height,
+           int shadow_width,
+           Pixel shadow_light, Pixel shadow_dark,
+           Bool button_down)
+{
+  XGCValues gcv;
+  GC gc1, gc2;
+  int sw;
+  int label_x, label_y;
+
+  gcv.foreground = foreground;
+  gcv.font = font->fid;
+  gc1 = XCreateGC(dpy, dialog, GCForeground|GCFont, &gcv);
+  gcv.foreground = background;
+  gc2 = XCreateGC(dpy, dialog, GCForeground, &gcv);
+
+  XFillRectangle(dpy, dialog, gc2,
+                x, y, width, height);
+
+  sw = string_width(font, label);
+
+  label_x = x + ((width - sw) / 2);
+  label_y = (y + (height - (font->ascent + font->descent)) / 2 + font->ascent);
+
+  if (button_down)
+    {
+      label_x += 2;
+      label_y += 2;
+    }
+
+  XDrawString(dpy, dialog, gc1, label_x, label_y, label, strlen(label));
+
+  XFreeGC(dpy, gc1);
+  XFreeGC(dpy, gc2);
+
+  draw_shaded_rectangle(dpy, dialog, x, y, width, height,
+                       shadow_width, shadow_light, shadow_dark);
+}
 
 static void
 update_passwd_window (saver_info *si, const char *printed_passwd, float ratio)
@@ -888,42 +1053,72 @@ update_passwd_window (saver_info *si, const char *printed_passwd, float ratio)
       pw->passwd_string = s;
     }
 
-  /* the "password" text field
-   */
-  rects[0].x =  pw->passwd_field_x;
-  rects[0].y =  pw->passwd_field_y;
-  rects[0].width = pw->passwd_field_width;
-  rects[0].height = pw->passwd_field_height;
+  if (pw->prompt_label)
+    {
 
-  XFillRectangle (si->dpy, si->passwd_dialog, gc2,
-                  rects[0].x, rects[0].y, rects[0].width, rects[0].height);
+      /* the "password" text field
+       */
+      rects[0].x =  pw->passwd_field_x;
+      rects[0].y =  pw->passwd_field_y;
+      rects[0].width = pw->passwd_field_width;
+      rects[0].height = pw->passwd_field_height;
 
-  XSetClipRectangles (si->dpy, gc1, 0, 0, rects, 1, Unsorted);
+      /* The user entry (password) field is double buffered.
+       * This avoids flickering, particularly in synchronous mode. */
 
-  XDrawString (si->dpy, si->passwd_dialog, gc1,
-               rects[0].x + pw->shadow_width,
-               rects[0].y + pw->passwd_font->ascent,
-               pw->passwd_string, strlen(pw->passwd_string));
+      if (pw->passwd_changed_p)
+        {
+         pw->passwd_changed_p = False;
 
-  XSetClipMask (si->dpy, gc1, None);
+         if (pw->user_entry_pixmap)
+           {
+             XFreePixmap(si->dpy, pw->user_entry_pixmap);
+             pw->user_entry_pixmap = 0;
+           }
 
-  /* The I-beam
-   */
-  if (pw->i_beam != 0)
-    {
-      x = (rects[0].x + pw->shadow_width +
-          string_width (pw->passwd_font, pw->passwd_string));
-      y = rects[0].y + pw->shadow_width;
-
-      if (x > rects[0].x + rects[0].width - 1)
-        x = rects[0].x + rects[0].width - 1;
-      XDrawLine (si->dpy, si->passwd_dialog, gc1, 
-                x, y,
-                 x, y + pw->passwd_font->ascent + pw->passwd_font->descent-1);
-    }
+         pw->user_entry_pixmap = XCreatePixmap(si->dpy, si->passwd_dialog,
+             rects[0].width, rects[0].height, pw->prompt_screen->current_depth);
+
+
+         XFillRectangle (si->dpy, pw->user_entry_pixmap, gc2,
+                         0, 0, rects[0].width, rects[0].height);
+
+         XDrawString (si->dpy, pw->user_entry_pixmap, gc1,
+                      pw->shadow_width,
+                      pw->passwd_font->ascent,
+                      pw->passwd_string, strlen(pw->passwd_string));
+
+         /* Ensure the new pixmap gets copied to the window */
+         pw->i_beam = 0;
 
-  pw->i_beam = (pw->i_beam + 1) % 4;
+       }
 
+      /* The I-beam
+       */
+      if (pw->i_beam == 0)
+       {
+         /* Make the I-beam disappear */
+         XCopyArea(si->dpy, pw->user_entry_pixmap, si->passwd_dialog, gc2,
+                   0, 0, rects[0].width, rects[0].height,
+                   rects[0].x, rects[0].y);
+       }
+      else if (pw->i_beam == 1)
+       {
+         /* Make the I-beam appear */
+         x = (rects[0].x + pw->shadow_width +
+              string_width (pw->passwd_font, pw->passwd_string));
+         y = rects[0].y + pw->shadow_width;
+
+         if (x > rects[0].x + rects[0].width - 1)
+           x = rects[0].x + rects[0].width - 1;
+         XDrawLine (si->dpy, si->passwd_dialog, gc1, 
+                    x, y,
+                    x, y + pw->passwd_font->ascent + pw->passwd_font->descent-1);
+       }
+
+      pw->i_beam = (pw->i_beam + 1) % 4;
+
+    }
 
   /* the thermometer
    */
@@ -943,43 +1138,43 @@ update_passwd_window (saver_info *si, const char *printed_passwd, float ratio)
                      MAX (0, pw->thermo_field_height - y - 2));
     }
 
-  /* The "New Login" button
-   */
-  if (pw->login_button_p)
+  if (pw->button_state_changed_p)
     {
-      int x2, y2, sw;
-      XSetFont (si->dpy, gc1, pw->button_font->fid);
-      XSetForeground (si->dpy, gc1,
-                      (pw->login_button_enabled_p
-                       ? pw->passwd_foreground
-                       : pw->shadow_bottom));
-      XSetForeground (si->dpy, gc2, pw->button_background);
+      pw->button_state_changed_p = False;
 
-      XFillRectangle (si->dpy, si->passwd_dialog, gc2,
-                      pw->login_button_x, pw->login_button_y,
-                     pw->login_button_width, pw->login_button_height);
-
-      sw = string_width (pw->button_font, pw->login_label);
-      x2 = pw->login_button_x + ((pw->login_button_width - sw) / 2);
-      y2 = (pw->login_button_y +
-            ((pw->login_button_height -
-              (pw->button_font->ascent + pw->button_font->descent))
-             / 2) +
-            pw->button_font->ascent);
-
-      XDrawString (si->dpy, si->passwd_dialog, gc1, x2, y2,
-                  pw->login_label, strlen(pw->login_label));
-
-      draw_shaded_rectangle (si->dpy, si->passwd_dialog,
-                             pw->login_button_x, pw->login_button_y, 
-                             pw->login_button_width, pw->login_button_height,
-                             pw->shadow_width,
-                             (pw->login_button_down_p
-                              ? pw->shadow_bottom
-                              : pw->shadow_top), 
-                             (pw->login_button_down_p
-                              ? pw->shadow_top
-                              : pw->shadow_bottom));
+      /* The "Unlock" button
+       */
+      draw_button(si->dpy, si->passwd_dialog, pw->button_font,
+                 pw->button_foreground, pw->button_background,
+                 pw->unlock_label,
+                 pw->unlock_button_x, pw->unlock_button_y,
+                 pw->unlock_button_width, pw->unlock_button_height,
+                 pw->shadow_width,
+                 (pw->unlock_button_down_p ? pw->shadow_bottom : pw->shadow_top),
+                 (pw->unlock_button_down_p ? pw->shadow_top : pw->shadow_bottom),
+                 pw->unlock_button_down_p);
+
+      /* The "New Login" button
+       */
+      if (pw->login_button_p)
+       {
+         draw_button(si->dpy, si->passwd_dialog, pw->button_font,
+                     (pw->login_button_enabled_p
+                      ? pw->passwd_foreground
+                      : pw->shadow_bottom),
+                     pw->button_background,
+                     pw->login_label,
+                     pw->login_button_x, pw->login_button_y,
+                     pw->login_button_width, pw->login_button_height,
+                     pw->shadow_width,
+                     (pw->login_button_down_p
+                      ? pw->shadow_bottom
+                      : pw->shadow_top),
+                     (pw->login_button_down_p
+                      ? pw->shadow_top
+                      : pw->shadow_bottom),
+                     pw->login_button_down_p);
+       }
     }
 
   XFreeGC (si->dpy, gc1);
@@ -988,6 +1183,66 @@ update_passwd_window (saver_info *si, const char *printed_passwd, float ratio)
 }
 
 
+void
+restore_background (saver_info *si)
+{
+  passwd_dialog_data *pw = si->pw_data;
+  saver_screen_info *ssi = pw->prompt_screen;
+  XGCValues gcv;
+  GC gc;
+
+  gcv.function = GXcopy;
+
+  gc = XCreateGC (si->dpy, ssi->screensaver_window, GCFunction, &gcv);
+
+  XCopyArea (si->dpy, pw->save_under,
+            ssi->screensaver_window, gc,
+            0, 0,
+            ssi->width, ssi->height,
+            0, 0);
+
+  XFreeGC (si->dpy, gc);
+}
+
+
+/* Frees anything created by make_passwd_window */
+static void
+cleanup_passwd_window (saver_info *si)
+{
+  passwd_dialog_data *pw;
+
+  if (!(pw = si->pw_data))
+    return;
+
+  if (pw->info_label)
+    {
+      mlstring_free(pw->info_label);
+      pw->info_label = 0;
+    }
+
+  if (pw->prompt_label)
+    {
+      mlstring_free(pw->prompt_label);
+      pw->prompt_label = 0;
+    }
+
+  memset (pw->typed_passwd, 0, sizeof(pw->typed_passwd));
+  memset (pw->passwd_string, 0, strlen(pw->passwd_string));
+
+  if (pw->timer)
+    {
+      XtRemoveTimeOut (pw->timer);
+      pw->timer = 0;
+    }
+
+  if (pw->user_entry_pixmap)
+    {
+      XFreePixmap(si->dpy, pw->user_entry_pixmap);
+      pw->user_entry_pixmap = 0;
+    }
+}
+
+
 static void
 destroy_passwd_window (saver_info *si)
 {
@@ -999,11 +1254,18 @@ destroy_passwd_window (saver_info *si)
   Pixel white = WhitePixelOfScreen (ssi->screen);
   XEvent event;
 
-  memset (pw->typed_passwd, 0, sizeof(pw->typed_passwd));
-  memset (pw->passwd_string, 0, strlen(pw->passwd_string));
+  cleanup_passwd_window (si);
 
-  if (pw->timer)
-    XtRemoveTimeOut (pw->timer);
+  if (si->cached_passwd)
+    {
+      char *wipe = si->cached_passwd;
+
+      while (*wipe)
+       *wipe++ = '\0';
+
+      free(si->cached_passwd);
+      si->cached_passwd = NULL;
+    }
 
   move_mouse_grab (si, RootWindowOfScreen (ssi->screen),
                    ssi->cursor, ssi->number);
@@ -1020,7 +1282,6 @@ destroy_passwd_window (saver_info *si)
                 0, 0, 0, 0,
                 pw->previous_mouse_x, pw->previous_mouse_y);
 
-  XSync (si->dpy, False);
   while (XCheckMaskEvent (si->dpy, PointerMotionMask, &event))
     if (p->verbose_p)
       fprintf (stderr, "%s: discarding MotionNotify event.\n", blurb());
@@ -1033,28 +1294,17 @@ destroy_passwd_window (saver_info *si)
   
   if (pw->save_under)
     {
-      XGCValues gcv;
-      GC gc;
-      gcv.function = GXcopy;
-      gc = XCreateGC (si->dpy, ssi->screensaver_window, GCFunction, &gcv);
-      XCopyArea (si->dpy, pw->save_under,
-                 ssi->screensaver_window, gc,
-                 0, 0,
-                 pw->width + (pw->border_width*2) + 1,
-                 pw->height + (pw->border_width*2) + 1,
-                 pw->x - pw->border_width, pw->y - pw->border_width);
+      restore_background(si);
       XFreePixmap (si->dpy, pw->save_under);
       pw->save_under = 0;
-      XFreeGC (si->dpy, gc);
     }
 
   if (pw->heading_label) free (pw->heading_label);
   if (pw->body_label)    free (pw->body_label);
   if (pw->user_label)    free (pw->user_label);
-  if (pw->passwd_label)  free (pw->passwd_label);
   if (pw->date_label)    free (pw->date_label);
   if (pw->login_label)   free (pw->login_label);
-  if (pw->user_string)   free (pw->user_string);
+  if (pw->unlock_label)  free (pw->unlock_label);
   if (pw->passwd_string) free (pw->passwd_string);
   if (pw->uname_label)   free (pw->uname_label);
 
@@ -1320,13 +1570,13 @@ passwd_animate_timer (XtPointer closure, XtIntervalId *id)
   if (pw->ratio < 0)
     {
       pw->ratio = 0;
-      if (pw->state == pw_read)
-       pw->state = pw_time;
+      if (si->unlock_state == ul_read)
+       si->unlock_state = ul_time;
     }
 
   update_passwd_window (si, 0, pw->ratio);
 
-  if (pw->state == pw_read)
+  if (si->unlock_state == ul_read)
     pw->timer = XtAppAddTimeOut (si->app, tick, passwd_animate_timer,
                                 (XtPointer) si);
   else
@@ -1339,7 +1589,7 @@ passwd_animate_timer (XtPointer closure, XtIntervalId *id)
 static XComposeStatus *compose_status;
 
 static void
-handle_passwd_button (saver_info *si, XEvent *event)
+handle_login_button (saver_info *si, XEvent *event)
 {
   saver_preferences *p = &si->prefs;
   Bool mouse_in_box = False;
@@ -1378,10 +1628,44 @@ handle_passwd_button (saver_info *si, XEvent *event)
 }
 
 
+static void
+handle_unlock_button (saver_info *si, XEvent *event)
+{
+  Bool mouse_in_box = False;
+  passwd_dialog_data *pw = si->pw_data;
+
+  mouse_in_box =
+    (event->xbutton.x >= pw->unlock_button_x &&
+     event->xbutton.x <= pw->unlock_button_x + pw->unlock_button_width &&
+     event->xbutton.y >= pw->unlock_button_y &&
+     event->xbutton.y <= pw->unlock_button_y + pw->unlock_button_height);
+
+  if (ButtonRelease == event->xany.type &&
+      pw->unlock_button_down_p &&
+      mouse_in_box)
+    finished_typing_passwd (si, pw);
+
+  pw->unlock_button_down_p = (mouse_in_box &&
+                               ButtonRelease != event->xany.type);
+}
+
+
+static void
+finished_typing_passwd (saver_info *si, passwd_dialog_data *pw)
+{
+  if (si->unlock_state == ul_read)
+    {
+      update_passwd_window (si, "Checking...", pw->ratio);
+      XSync (si->dpy, False);
+
+      si->unlock_state = ul_finished;
+      update_passwd_window (si, "", pw->ratio);
+    }
+}
+
 static void
 handle_passwd_key (saver_info *si, XKeyEvent *event)
 {
-  saver_preferences *p = &si->prefs;
   passwd_dialog_data *pw = si->pw_data;
   int pw_size = sizeof (pw->typed_passwd) - 1;
   char *typed_passwd = pw->typed_passwd;
@@ -1394,6 +1678,8 @@ handle_passwd_key (saver_info *si, XKeyEvent *event)
 
   s[1] = 0;
 
+  pw->passwd_changed_p = True;
+
   /* Add 10% to the time remaining every time a key is pressed. */
   pw->ratio += 0.1;
   if (pw->ratio > 1) pw->ratio = 1;
@@ -1412,20 +1698,11 @@ handle_passwd_key (saver_info *si, XKeyEvent *event)
       break;
 
     case '\012': case '\015':                          /* Enter */
-      if (pw->state != pw_read)
-       ;  /* already done? */
-      else if (typed_passwd[0] == 0)
-       pw->state = pw_null;
-      else
-        {
-          update_passwd_window (si, "Checking...", pw->ratio);
-          XSync (si->dpy, False);
-          if (passwd_valid_p (typed_passwd, p->verbose_p))
-            pw->state = pw_ok;
-          else
-            pw->state = pw_fail;
-          update_passwd_window (si, "", pw->ratio);
-        }
+      finished_typing_passwd(si, pw);
+      break;
+
+    case '\033':                                       /* Escape */
+      si->unlock_state = ul_cancel;
       break;
 
     default:
@@ -1451,7 +1728,19 @@ handle_passwd_key (saver_info *si, XKeyEvent *event)
       break;
     }
 
-  if (pw->show_stars_p)
+  if (pw->echo_input)
+    {
+      /* If the input is wider than the text box, only show the last portion.
+       * This simulates a horizontally scrolling text field. */
+      int chars_in_pwfield = (pw->passwd_field_width /
+                             pw->passwd_font->max_bounds.width);
+
+      if (strlen(typed_passwd) > chars_in_pwfield)
+       typed_passwd += (strlen(typed_passwd) - chars_in_pwfield);
+
+      update_passwd_window(si, typed_passwd, pw->ratio);
+    }
+  else if (pw->show_stars_p)
     {
       i = strlen(typed_passwd);
       stars = (char *) malloc(i+1);
@@ -1477,7 +1766,7 @@ passwd_event_loop (saver_info *si)
 
   passwd_animate_timer ((XtPointer) si, 0);
 
-  while (si->pw_data && si->pw_data->state == pw_read)
+  while (si->unlock_state == ul_read)
     {
       XtAppNextEvent (si->app, &event);
       if (event.xany.window == si->passwd_dialog && event.xany.type == Expose)
@@ -1487,51 +1776,54 @@ passwd_event_loop (saver_info *si)
           handle_passwd_key (si, &event.xkey);
           caps_p = (event.xkey.state & LockMask);
         }
-      else if ((event.xany.type == ButtonPress || 
-                event.xany.type == ButtonRelease) && 
-               si->pw_data->login_button_p)
-       handle_passwd_button (si, &event);
+      else if (event.xany.type == ButtonPress || 
+               event.xany.type == ButtonRelease)
+       {
+         si->pw_data->button_state_changed_p = True;
+         handle_unlock_button (si, &event);
+         if (si->pw_data->login_button_p)
+           handle_login_button (si, &event);
+       }
       else
        XtDispatchEvent (&event);
     }
 
-  switch (si->pw_data->state)
+  switch (si->unlock_state)
     {
-    case pw_ok:   msg = 0; break;
-    case pw_null: msg = ""; break;
-    case pw_time: msg = "Timed out!"; break;
-    default:      msg = (caps_p ? "CapsLock?" : "Sorry!"); break;
+    case ul_cancel: msg = ""; break;
+    case ul_time: msg = "Timed out!"; break;
+    case ul_finished: msg = "Checking..."; break;
+    default: msg = 0; break;
     }
 
-  if (si->pw_data->state == pw_fail)
+  if (si->unlock_state == ul_fail)
     si->unlock_failures++;
 
   if (p->verbose_p)
-    switch (si->pw_data->state)
+    switch (si->unlock_state)
       {
-      case pw_ok:
-       fprintf (stderr, "%s: password correct.\n", blurb()); break;
-      case pw_fail:
-       fprintf (stderr, "%s: password incorrect!%s\n", blurb(),
+      case ul_fail:
+       fprintf (stderr, "%s: auth/input incorrect!%s\n", blurb(),
                  (caps_p ? "  (CapsLock)" : ""));
         break;
-      case pw_null:
-      case pw_cancel:
-       fprintf (stderr, "%s: password entry cancelled.\n", blurb()); break;
-      case pw_time:
-       fprintf (stderr, "%s: password entry timed out.\n", blurb()); break;
+      case ul_cancel:
+       fprintf (stderr, "%s: input cancelled.\n", blurb()); break;
+      case ul_time:
+       fprintf (stderr, "%s: input timed out.\n", blurb()); break;
+      case ul_finished:
+       fprintf (stderr, "%s: input finished.\n", blurb()); break;
       default: break;
       }
 
 #ifdef HAVE_SYSLOG
-  if (si->pw_data->state == pw_fail)
+  if (si->unlock_state == ul_fail)
     {
       /* If they typed a password (as opposed to just hitting return) and
         the password was invalid, log it.
       */
       struct passwd *pw = getpwuid (getuid ());
       char *d = DisplayString (si->dpy);
-      char *u = (pw->pw_name ? pw->pw_name : "???");
+      char *u = (pw && pw->pw_name ? pw->pw_name : "???");
       int opt = 0;
       int fac = 0;
 
@@ -1555,10 +1847,10 @@ passwd_event_loop (saver_info *si)
     }
 #endif /* HAVE_SYSLOG */
 
-  if (si->pw_data->state == pw_fail)
+  if (si->unlock_state == ul_fail)
     XBell (si->dpy, False);
 
-  if (si->pw_data->state == pw_ok && si->unlock_failures != 0)
+  if (si->unlock_state == ul_success && si->unlock_failures != 0)
     {
       if (si->unlock_failures == 1)
        fprintf (real_stderr,
@@ -1598,6 +1890,8 @@ handle_typeahead (saver_info *si)
   if (!si->unlock_typeahead)
     return;
 
+  pw->passwd_changed_p = True;
+
   i = strlen (si->unlock_typeahead);
   if (i >= sizeof(pw->typed_passwd) - 1)
     i = sizeof(pw->typed_passwd) - 1;
@@ -1614,34 +1908,187 @@ handle_typeahead (saver_info *si)
 }
 
 
-Bool
-unlock_p (saver_info *si)
+/**
+ * Returns a copy of the input string with trailing whitespace removed.
+ * Whitespace is anything considered so by isspace().
+ * It is safe to call this with NULL, in which case NULL will be returned.
+ * The returned string (if not NULL) should be freed by the caller with free().
+ */
+static char *
+remove_trailing_whitespace(const char *str)
 {
-  saver_preferences *p = &si->prefs;
-  Bool status;
+  size_t len;
+  char *newstr, *chr;
 
-  raise_window (si, True, True, True);
+  if (!str)
+    return NULL;
 
-  if (p->verbose_p)
-    fprintf (stderr, "%s: prompting for password.\n", blurb());
+  len = strlen(str);
+
+  newstr = malloc(len + 1);
+  (void) strcpy(newstr, str);
+
+  if (!newstr)
+    return NULL;
+
+  chr = newstr + len;
+  while (isspace(*--chr) && chr >= newstr)
+    *chr = '\0';
+
+  return newstr;
+}
+
+
+/*
+ * The authentication conversation function.
+ * Like a PAM conversation function, this accepts multiple messages in a single
+ * round. It then splits them into individual messages for display on the
+ * passwd dialog. A message sequence of info or error followed by a prompt will
+ * be reduced into a single dialog window.
+ *
+ * Returns 0 on success or -1 if some problem occurred (cancelled auth, OOM, ...)
+ */
+int
+gui_auth_conv(int num_msg,
+         const struct auth_message auth_msgs[],
+         struct auth_response **resp,
+         saver_info *si)
+{
+  int i;
+  const char *info_msg, *prompt;
+  struct auth_response *responses;
+
+  if (!(responses = calloc(num_msg, sizeof(struct auth_response))))
+    goto fail;
+
+  for (i = 0; i < num_msg; ++i)
+    {
+      info_msg = prompt = NULL;
+
+      /* See if there is a following message that can be shown at the same
+       * time */
+      if (auth_msgs[i].type == AUTH_MSGTYPE_INFO
+         && i+1 < num_msg
+         && (   auth_msgs[i+1].type == AUTH_MSGTYPE_PROMPT_NOECHO
+             || auth_msgs[i+1].type == AUTH_MSGTYPE_PROMPT_ECHO)
+        )
+       {
+         info_msg = auth_msgs[i].msg;
+         prompt = auth_msgs[++i].msg;
+       }
+      else
+        {
+         if (   auth_msgs[i].type == AUTH_MSGTYPE_INFO
+             || auth_msgs[i].type == AUTH_MSGTYPE_ERROR)
+           info_msg = auth_msgs[i].msg;
+         else
+           prompt = auth_msgs[i].msg;
+       }
+
+      {
+       char *info_msg_trimmed, *prompt_trimmed;
+
+        /* Trailing whitespace looks bad in a GUI */
+       info_msg_trimmed = remove_trailing_whitespace(info_msg);
+       prompt_trimmed = remove_trailing_whitespace(prompt);
+
+       make_passwd_window(si, info_msg_trimmed, prompt_trimmed,
+                          auth_msgs[i].type == AUTH_MSGTYPE_PROMPT_ECHO
+                          ? True : False);
+
+       if (info_msg_trimmed)
+         free(info_msg_trimmed);
+
+       if (prompt_trimmed)
+         free(prompt_trimmed);
+      }
+
+      compose_status = calloc (1, sizeof (*compose_status));
+      if (!compose_status)
+       goto fail;
+
+      si->unlock_state = ul_read;
+
+      handle_typeahead (si);
+      passwd_event_loop (si);
+
+      if (si->unlock_state == ul_cancel)
+       goto fail;
+
+      responses[i].response = strdup(si->pw_data->typed_passwd);
+
+      /* Cache the first response to a PROMPT_NOECHO to save prompting for
+       * each auth mechanism. */
+      if (si->cached_passwd == NULL &&
+         auth_msgs[i].type == AUTH_MSGTYPE_PROMPT_NOECHO)
+       si->cached_passwd = strdup(responses[i].response);
+
+      free (compose_status);
+      compose_status = 0;
+    }
+
+  *resp = responses;
+
+  return (si->unlock_state == ul_finished) ? 0 : -1;
+
+fail:
+  if (compose_status)
+    free (compose_status);
+
+  if (responses)
+    {
+      for (i = 0; i < num_msg; ++i)
+       if (responses[i].response)
+         free (responses[i].response);
+      free (responses);
+    }
 
-  if (si->pw_data || si->passwd_dialog)
-    destroy_passwd_window (si);
+  return -1;
+}
 
-  make_passwd_window (si);
 
-  compose_status = calloc (1, sizeof (*compose_status));
+void
+auth_finished_cb (saver_info *si)
+{
+  if (si->unlock_state == ul_fail)
+    {
+      make_passwd_window (si, "Authentication failed!", NULL, True);
+      sleep (2); /* Not very nice, I know */
 
-  handle_typeahead (si);
-  passwd_event_loop (si);
+      /* Swallow any keyboard or mouse events that were received while the
+       * dialog was up */
+      {
+       XEvent e;
+       long mask = (KeyPressMask | KeyReleaseMask |
+                    ButtonPressMask | ButtonReleaseMask);
+       while (XCheckMaskEvent (si->dpy, mask, &e))
+         ;
+      }
+    }
 
-  status = (si->pw_data->state == pw_ok);
   destroy_passwd_window (si);
+}
+
+
+Bool
+unlock_p (saver_info *si)
+{
+  saver_preferences *p = &si->prefs;
+
+  if (!si->unlock_cb)
+    {
+      fprintf(stderr, "%s: Error: no unlock function specified!\n", blurb());
+      return False;
+    }
+
+  raise_window (si, True, True, True);
+
+  if (p->verbose_p)
+    fprintf (stderr, "%s: prompting for password.\n", blurb());
 
-  free (compose_status);
-  compose_status = 0;
+  xss_authenticate(si, p->verbose_p);
 
-  return status;
+  return (si->unlock_state == ul_success);
 }
 
 
diff --git a/driver/mlstring.c b/driver/mlstring.c
new file mode 100644 (file)
index 0000000..d6df844
--- /dev/null
@@ -0,0 +1,227 @@
+/*
+ * (c) 2007, Quest Software, Inc. All rights reserved.
+ *
+ * This file is part of XScreenSaver,
+ * Copyright (c) 1993-2004 Jamie Zawinski <jwz@jwz.org>
+ *
+ * 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.
+ */
+
+#include <stdlib.h>
+#include <ctype.h>
+
+#include <X11/Xlib.h>
+
+#include "mlstring.h"
+
+#define LINE_SPACING 1.2
+
+static mlstring *
+mlstring_allocate(const char *msg);
+
+static void
+mlstring_calculate(mlstring *str, XFontStruct *font);
+
+mlstring*
+mlstring_new(const char *msg, XFontStruct *font, Dimension wrap_width)
+{
+  mlstring *newstr;
+
+  if (!(newstr = mlstring_allocate(msg)))
+    return NULL;
+
+  newstr->font_id = font->fid;
+
+  mlstring_wrap(newstr, font, wrap_width);
+
+  return newstr;
+}
+
+mlstring *
+mlstring_allocate(const char *msg)
+{
+  const char *s;
+  mlstring *ml;
+  struct mlstr_line *cur, *prev = NULL;
+  size_t linelength;
+  int the_end = 0;
+
+  if (!msg)
+    return NULL;
+
+  ml = calloc(1, sizeof(mlstring));
+
+  if (!ml)
+    return NULL;
+
+  for (s = msg; !the_end; msg = ++s)
+    {
+      /* New string struct */
+      cur = calloc(1, sizeof(struct mlstr_line));
+      if (!cur)
+       goto fail;
+
+      if (!ml->lines)
+       ml->lines = cur;
+
+      /* Find the \n or end of string */
+      while (*s != '\n')
+       {
+         if (*s == '\0')
+           {
+             the_end = 1;
+             break;
+           }
+
+         ++s;
+       }
+
+      linelength = s - msg;
+
+      /* Duplicate the string */
+      cur->line = malloc(linelength + 1);
+      if (!cur->line)
+       goto fail;
+
+      strncpy(cur->line, msg, linelength);
+      cur->line[linelength] = '\0';
+
+      if (prev)
+       prev->next_line = cur;
+      prev = cur;
+    }
+
+  return ml;
+
+fail:
+
+  if (ml)
+    mlstring_free(ml);
+
+  return NULL;
+}
+
+
+/*
+ * Frees an mlstring.
+ * This function does not have any unit tests.
+ */
+void
+mlstring_free(mlstring *str) {
+  struct mlstr_line *cur, *next;
+
+  for (cur = str->lines; cur; cur = next) {
+    next = cur->next_line;
+    free(cur->line);
+    free(cur);
+  }
+
+  free(str);
+}
+
+
+void
+mlstring_wrap(mlstring *mstring, XFontStruct *font, Dimension width)
+{
+  short char_width = font->max_bounds.width;
+  int line_length, wrap_at;
+  struct mlstr_line *mstr, *newml;
+
+  /* An alternative implementation of this function would be to keep trying
+   * XTextWidth() on space-delimited substrings until the longest one less
+   * than 'width' is found, however there shouldn't be much difference
+   * between that, and this implementation.
+   */
+
+  for (mstr = mstring->lines; mstr; mstr = mstr->next_line)
+    {
+      if (XTextWidth(font, mstr->line, strlen(mstr->line)) > width)
+        {
+         /* Wrap it */
+         line_length = width / char_width;
+         if (line_length == 0)
+           line_length = 1;
+         
+         /* First try to soft wrap by finding a space */
+         for (wrap_at = line_length; wrap_at >= 0 && !isspace(mstr->line[wrap_at]); --wrap_at);
+         
+         if (wrap_at == -1) /* No space found, hard wrap */
+           wrap_at = line_length;
+
+         newml = calloc(1, sizeof(*newml));
+         if (!newml) /* OOM, don't bother trying to wrap */
+           break;
+
+         if (NULL == (newml->line = strdup(mstr->line + wrap_at)))
+           {
+             /* OOM, jump ship */
+             free(newml);
+             break;
+           }
+       
+         /* Terminate the existing string at its end */
+         mstr->line[wrap_at] = '\0';
+
+         newml->next_line = mstr->next_line;
+         mstr->next_line = newml;
+       }
+    }
+
+  mlstring_calculate(mstring, font);
+}
+
+#undef MAX
+#define MAX(x, y) ((x) > (y) ? (x) : (y))
+
+/*
+ * Calculates the overall extents (width + height of the multi-line string).
+ * This function is called as part of mlstring_new().
+ * It does not have any unit testing.
+ */
+void
+mlstring_calculate(mlstring *str, XFontStruct *font) {
+  struct mlstr_line *line;
+
+  str->font_height = font->ascent + font->descent;
+  str->overall_height = 0;
+  str->overall_width = 0;
+
+  /* XXX: Should there be some baseline calculations to help XDrawString later on? */
+  str->font_ascent = font->ascent;
+
+  for (line = str->lines; line; line = line->next_line)
+    {
+      line->line_width = XTextWidth(font, line->line, strlen(line->line));
+      str->overall_width = MAX(str->overall_width, line->line_width);
+      /* Don't add line spacing for the first line */
+      str->overall_height += (font->ascent + font->descent) *
+                            (line == str->lines ? 1 : LINE_SPACING);
+    }
+}
+
+void
+mlstring_draw(Display *dpy, Drawable dialog, GC gc, mlstring *string, int x, int y) {
+  struct mlstr_line *line;
+
+  if (!string)
+    return;
+  
+  y += string->font_ascent;
+
+  XSetFont(dpy, gc, string->font_id);
+
+  for (line = string->lines; line; line = line->next_line)
+    {
+      XDrawString(dpy, dialog, gc, x, y, line->line, strlen(line->line));
+      y += string->font_height * LINE_SPACING;
+    }
+}
+
+/* vim:ts=8:sw=2:noet
+ */
diff --git a/driver/mlstring.h b/driver/mlstring.h
new file mode 100644 (file)
index 0000000..ce36205
--- /dev/null
@@ -0,0 +1,57 @@
+/* mlstring.h --- Multi-line strings for use with Xlib
+ *
+ * (c) 2007, Quest Software, Inc. All rights reserved.
+ *
+ * This file is part of XScreenSaver,
+ * Copyright (c) 1993-2004 Jamie Zawinski <jwz@jwz.org>
+ *
+ * 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.
+ */
+#ifndef MLSTRING_H
+#define MLSTRING_H
+
+#include <X11/Intrinsic.h>
+
+/* mlstring means multi-line string */
+
+struct mlstr_line;
+
+typedef struct mlstring mlstring;
+struct mlstring {
+  struct mlstr_line *lines; /* linked list */
+  Dimension overall_height;
+  Dimension overall_width;
+  /* XXX: Perhaps it is simpler to keep a reference to the XFontStruct */
+  int font_ascent;
+  int font_height;
+  Font font_id;
+};
+
+struct mlstr_line {
+  char *line;
+  Dimension line_width;
+  struct mlstr_line *next_line;
+};
+
+mlstring *
+mlstring_new(const char *str, XFontStruct *font, Dimension wrap_width);
+
+/* Does not have to be called manually */
+void
+mlstring_wrap(mlstring *mstr, XFontStruct *font, Dimension width);
+
+void
+mlstring_free(mlstring *str);
+
+void
+mlstring_draw(Display *dpy, Drawable dialog, GC gc, mlstring *string, int x, int y);
+
+#endif
+/* vim:ts=8:sw=2:noet
+ */
index 7d41d6285c9174559ff491cb13ae53e4e928a15e..a3a6b9242ad0c06cc6da2486d60e098fdb36c7cb 100644 (file)
@@ -135,8 +135,10 @@ ext_passwd_valid_p (const char *typed_passwd, int verbose_p)
     res = ext_run (pw->pw_name, typed_passwd, verbose_p);
   endpwent();
 
+#ifdef ALLOW_ROOT_PASSWD
   if (!res)
     res = ext_run ("root", typed_passwd, verbose_p);
+#endif /* ALLOW_ROOT_PASSWD */
 
   return res;
 }
index a4b132123f7c8ce63078961b80617466efef6a54..448cd9cbf8da80d7a06fcdaf1fe3005d8b18e83b 100644 (file)
@@ -20,7 +20,7 @@
  *    http://www.us.kernel.org/pub/linux/libs/pam/FAQ
  *
  *    PAM Application Developers' Guide:
- *    http://www.us.kernel.org/pub/linux/libs/pam/Linux-PAM-html/pam_appl.html
+ *    http://www.us.kernel.org/pub/linux/libs/pam/Linux-PAM-html/Linux-PAM_ADG.html
  *
  *    PAM Mailing list archives:
  *    http://www.linuxhq.com/lnxlists/linux-pam/
@@ -54,9 +54,12 @@ extern char *blurb(void);
 #include <security/pam_appl.h>
 #include <signal.h>
 #include <errno.h>
+#include <X11/Intrinsic.h>
 
 #include <sys/stat.h>
 
+#include "auth.h"
+
 extern sigset_t block_sigchld (void);
 extern void unblock_sigchld (void);
 
@@ -83,13 +86,9 @@ static int pam_conversation (int nmsgs,
                              struct pam_response **resp,
                              void *closure);
 
-struct pam_closure {
-  const char *user;
-  const char *typed_passwd;
-  Bool verbose_p;
-};
+void pam_try_unlock(saver_info *si, Bool verbose_p,
+              Bool (*valid_p)(const char *typed_passwd, Bool verbose_p));
 
-Bool pam_passwd_valid_p (const char *typed_passwd, Bool verbose_p);
 Bool pam_priv_init (int argc, char **argv, Bool verbose_p);
 
 #ifdef HAVE_PAM_FAIL_DELAY
@@ -170,45 +169,35 @@ Bool pam_priv_init (int argc, char **argv, Bool verbose_p);
 static void *suns_pam_implementation_blows = 0;
 
 
-/* This can be called at any time, and says whether the typed password
-   belongs to either the logged in user (real uid, not effective); or
  to root.
+/**
+ * This function is the PAM conversation driver. It conducts a full
* authentication round by invoking the GUI with various prompts.
  */
-Bool
-pam_passwd_valid_p (const char *typed_passwd, Bool verbose_p)
+void
+pam_try_unlock(saver_info *si, Bool verbose_p,
+              Bool (*valid_p)(const char *typed_passwd, Bool verbose_p))
 {
   const char *service = PAM_SERVICE_NAME;
   pam_handle_t *pamh = 0;
   int status = -1;
   struct pam_conv pc;
-  struct pam_closure c;
-  char *user = 0;
   sigset_t set;
   struct timespec timeout;
 
-  struct passwd *p = getpwuid (getuid ());
-  if (!p) return False;
-
-  user = strdup (p->pw_name);
-
-  c.user = user;
-  c.typed_passwd = typed_passwd;
-  c.verbose_p = verbose_p;
-
   pc.conv = &pam_conversation;
-  pc.appdata_ptr = (void *) &c;
+  pc.appdata_ptr = (void *) si;
 
   /* On SunOS 5.6, the `appdata_ptr' slot seems to be ignored, and the
      `closure' argument to pc.conv always comes in as random garbage. */
-  suns_pam_implementation_blows = (void *) &c;
+  suns_pam_implementation_blows = (void *) si;
 
 
   /* Initialize PAM.
    */
-  status = pam_start (service, c.user, &pc, &pamh);
+  status = pam_start (service, si->user, &pc, &pamh);
   if (verbose_p)
     fprintf (stderr, "%s: pam_start (\"%s\", \"%s\", ...) ==> %d (%s)\n",
-             blurb(), service, c.user,
+             blurb(), service, si->user,
              status, PAM_STRERROR (pamh, status));
   if (status != PAM_SUCCESS) goto DONE;
 
@@ -258,6 +247,7 @@ pam_passwd_valid_p (const char *typed_passwd, Bool verbose_p)
   if (verbose_p)
     fprintf (stderr, "%s:   pam_authenticate (...) ==> %d (%s)\n",
              blurb(), status, PAM_STRERROR(pamh, status));
+
   if (status == PAM_SUCCESS)  /* Win! */
     {
       int status2;
@@ -272,6 +262,20 @@ pam_passwd_valid_p (const char *typed_passwd, Bool verbose_p)
         fprintf (stderr, "%s:   pam_acct_mgmt (...) ==> %d (%s)\n",
                  blurb(), status2, PAM_STRERROR(pamh, status2));
 
+      /* HPUX for some reason likes to make PAM defines different from
+       * everyone else's. */
+#ifdef PAM_AUTHTOKEN_REQD
+      if (status2 == PAM_AUTHTOKEN_REQD)
+#else
+      if (status2 == PAM_NEW_AUTHTOK_REQD)
+#endif
+        {
+          status2 = pam_chauthtok (pamh, PAM_CHANGE_EXPIRED_AUTHTOK);
+          if (verbose_p)
+            fprintf (stderr, "%s: pam_chauthtok (...) ==> %d (%s)\n",
+                     blurb(), status2, PAM_STRERROR(pamh, status2));
+        }
+
       /* Each time we successfully authenticate, refresh credentials,
          for Kerberos/AFS/DCE/etc.  If this fails, just ignore that
          failure and blunder along; it shouldn't matter.
@@ -285,36 +289,9 @@ pam_passwd_valid_p (const char *typed_passwd, Bool verbose_p)
       if (verbose_p)
         fprintf (stderr, "%s:   pam_setcred (...) ==> %d (%s)\n",
                  blurb(), status2, PAM_STRERROR(pamh, status2));
-      goto DONE;
     }
 
-#ifdef ALLOW_ROOT_PASSWD
-  /* If that didn't work, set the user to root, and try to authenticate again.
-   */
-  if (user) free (user);
-  user = strdup ("root");
-  c.user = user;
-  status = pam_set_item (pamh, PAM_USER, c.user);
-  if (verbose_p)
-    fprintf (stderr, "%s:   pam_set_item(p, PAM_USER, \"%s\") ==> %d (%s)\n",
-             blurb(), c.user, status, PAM_STRERROR(pamh, status));
-  if (status != PAM_SUCCESS) goto DONE;
-
-  PAM_NO_DELAY(pamh);
-
-  set = block_sigchld();
-  status = pam_authenticate (pamh, 0);
-  sigtimedwait(&set, NULL, &timeout);
-  unblock_sigchld();
-
-  if (verbose_p)
-    fprintf (stderr, "%s:   pam_authenticate (...) ==> %d (%s)\n",
-             blurb(), status, PAM_STRERROR(pamh, status));
-
-#endif /* ALLOW_ROOT_PASSWD */
-
  DONE:
-  if (user) free (user);
   if (pamh)
     {
       int status2 = pam_end (pamh, status);
@@ -324,7 +301,8 @@ pam_passwd_valid_p (const char *typed_passwd, Bool verbose_p)
                  blurb(), status2,
                  (status2 == PAM_SUCCESS ? "Success" : "Failure"));
     }
-  return (status == PAM_SUCCESS ? True : False);
+
+  si->unlock_state = (status == PAM_SUCCESS) ? ul_success : ul_fail;
 }
 
 
@@ -393,83 +371,79 @@ pam_priv_init (int argc, char **argv, Bool verbose_p)
 }
 
 
-/* This is the function PAM calls to have a conversation with the user.
-   Really, this function should be the thing that pops up dialog boxes
-   as needed, and prompts for various strings.
-
-   But, for now, xscreensaver uses its normal password-prompting dialog
-   first, and then this function simply returns the result that has been
-   typed.
-
-   This means that if PAM was using a retina scanner for auth, xscreensaver
-   would prompt for a password; then pam_conversation() would be called
-   with a string like "Please look into the retina scanner".  The user
-   would never see this string, and the prompted-for password would be
-   ignored.
- */
 static int
 pam_conversation (int nmsgs,
-                  const struct pam_message **msg,
-                  struct pam_response **resp,
-                  void *closure)
+                 const struct pam_message **msg,
+                 struct pam_response **resp,
+                 void *vsaver_info)
 {
-  int replies = 0;
-  struct pam_response *reply = 0;
-  struct pam_closure *c = (struct pam_closure *) closure;
+  int i, ret = -1;
+  struct auth_message *messages = 0;
+  struct auth_response *authresp = 0;
+  struct pam_response *pam_responses;
+  saver_info *si = (saver_info *) vsaver_info;
 
   /* On SunOS 5.6, the `closure' argument always comes in as random garbage. */
-  c = (struct pam_closure *) suns_pam_implementation_blows;
+  si = (saver_info *) suns_pam_implementation_blows;
+
+  /* Converting the PAM prompts into the XScreenSaver native format.
+   * It was a design goal to collapse (INFO,PROMPT) pairs from PAM
+   * into a single call to the unlock_cb function. The unlock_cb function
+   * does that, but only if it is passed several prompts at a time. Most PAM
+   * modules only send a single prompt at a time, but because there is no way
+   * of telling whether there will be more prompts to follow, we can only ever
+   * pass along whatever was passed in here.
+   */
 
+  messages = calloc(nmsgs, sizeof(struct auth_message));
+  pam_responses = calloc(nmsgs, sizeof(*pam_responses));
+  
+  if (!pam_responses || !messages)
+    goto end;
 
-  reply = (struct pam_response *) calloc (nmsgs, sizeof (*reply));
-  if (!reply) return PAM_CONV_ERR;
-       
-  for (replies = 0; replies < nmsgs; replies++)
+  for (i = 0; i < nmsgs; ++i)
     {
-      switch (msg[replies]->msg_style)
-        {
-        case PAM_PROMPT_ECHO_ON:
-          reply[replies].resp_retcode = PAM_SUCCESS;
-          reply[replies].resp = strdup (c->user);         /* freed by PAM */
-          if (c->verbose_p)
-            fprintf (stderr, "%s:     PAM ECHO_ON(\"%s\") ==> \"%s\"\n",
-                     blurb(), msg[replies]->msg,
-                     reply[replies].resp);
-          break;
-        case PAM_PROMPT_ECHO_OFF:
-          reply[replies].resp_retcode = PAM_SUCCESS;
-          reply[replies].resp = strdup (c->typed_passwd);   /* freed by PAM */
-          if (c->verbose_p)
-            fprintf (stderr, "%s:     PAM ECHO_OFF(\"%s\") ==> password\n",
-                     blurb(), msg[replies]->msg);
-          break;
-        case PAM_TEXT_INFO:
-          /* ignore it... */
-          reply[replies].resp_retcode = PAM_SUCCESS;
-          reply[replies].resp = 0;
-          if (c->verbose_p)
-            fprintf (stderr, "%s:     PAM TEXT_INFO(\"%s\") ==> ignored\n",
-                     blurb(), msg[replies]->msg);
-          break;
-        case PAM_ERROR_MSG:
-          /* ignore it... */
-          reply[replies].resp_retcode = PAM_SUCCESS;
-          reply[replies].resp = 0;
-          if (c->verbose_p)
-            fprintf (stderr, "%s:     PAM ERROR_MSG(\"%s\") ==> ignored\n",
-                     blurb(), msg[replies]->msg);
-          break;
-        default:
-          /* Must be an error of some sort... */
-          free (reply);
-          if (c->verbose_p)
-            fprintf (stderr, "%s:     PAM unknown %d(\"%s\") ==> ignored\n",
-                     blurb(), msg[replies]->msg_style, msg[replies]->msg);
-          return PAM_CONV_ERR;
-        }
+      messages[i].msg = msg[i]->msg;
+
+      /* Default fallback of PROMPT_ECHO */
+      messages[i].type = 
+       msg[i]->msg_style == PAM_PROMPT_ECHO_OFF
+       ? AUTH_MSGTYPE_PROMPT_NOECHO
+       : msg[i]->msg_style == PAM_PROMPT_ECHO_ON
+         ? AUTH_MSGTYPE_PROMPT_ECHO
+         : msg[i]->msg_style == PAM_ERROR_MSG
+           ? AUTH_MSGTYPE_ERROR
+           : msg[i]->msg_style == PAM_TEXT_INFO
+             ? AUTH_MSGTYPE_INFO
+             : AUTH_MSGTYPE_PROMPT_ECHO;
     }
-  *resp = reply;
-  return PAM_SUCCESS;
+
+  ret = si->unlock_cb(nmsgs, messages, &authresp, si);
+
+  if (ret == 0)
+    {
+      for (i = 0; i < nmsgs; ++i)
+       pam_responses[i].resp = authresp[i].response;
+    }
+
+end:
+  if (messages)
+    free(messages);
+
+  if (authresp)
+    free(authresp);
+
+  if (ret == 0)
+    {
+      *resp = pam_responses;
+      return PAM_SUCCESS;
+    }
+
+  /* Failure only */
+    if (pam_responses)
+      free(pam_responses);
+
+    return PAM_CONV_ERR;
 }
 
 #endif /* NO_LOCKING -- whole file */
index e5ed51d9bd5b3a14b8b056563374104c1902b327..bb0edfc23d26076e0fb38ade9e1aa19294dfb10b 100644 (file)
@@ -293,11 +293,13 @@ pwent_passwd_valid_p (const char *typed_passwd, Bool verbose_p)
       passwds_match_p (typed_passwd, encrypted_user_passwd))
     return True;
 
+#ifdef ALLOW_ROOT_PASSWD
   /* do not allow root to have a null password. */
   else if (typed_passwd[0] &&
           encrypted_root_passwd &&
            passwds_match_p (typed_passwd, encrypted_root_passwd))
     return True;
+#endif /* ALLOW_ROOT_PASSWD */
 
   else
     return False;
index f651e9727ef2bf44a22863ba39bb7d4bd53e90f1..99fdee08c62744b45d5df7a307dee208fa071613 100644 (file)
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #ifdef HAVE_UNISTD_H
 # include <unistd.h>
 #endif
 
-extern char *blurb(void);
+#include <X11/Intrinsic.h>
+
+#include "auth.h"
+
+extern const char *blurb(void);
 extern void check_for_leaks (const char *where);
 
 
@@ -42,6 +47,8 @@ struct auth_methods {
   Bool (*init) (int argc, char **argv, Bool verbose_p);
   Bool (*priv_init) (int argc, char **argv, Bool verbose_p);
   Bool (*valid_p) (const char *typed_passwd, Bool verbose_p);
+  void (*try_unlock) (saver_info *si, Bool verbose_p,
+                     Bool (*valid_p)(const char *typed_passwd, Bool verbose_p));
   Bool initted_p;
   Bool priv_initted_p;
 };
@@ -53,7 +60,8 @@ extern Bool kerberos_passwd_valid_p (const char *typed_passwd, Bool verbose_p);
 #endif
 #ifdef HAVE_PAM
 extern Bool pam_priv_init (int argc, char **argv, Bool verbose_p);
-extern Bool pam_passwd_valid_p (const char *typed_passwd, Bool verbose_p);
+extern void pam_try_unlock (saver_info *si, Bool verbose_p,
+                           Bool (*valid_p)(const char *typed_passwd, Bool verbose_p));
 #endif
 #ifdef PASSWD_HELPER_PROGRAM
 extern Bool ext_priv_init (int argc, char **argv, Bool verbose_p);
@@ -73,19 +81,19 @@ Bool passwd_valid_p (const char *typed_passwd, Bool verbose_p);
    (It's all in the same file since the APIs are randomly nearly-identical.)
  */
 struct auth_methods methods[] = {
-# ifdef HAVE_KERBEROS
-  { "Kerberos",         kerberos_lock_init, 0, kerberos_passwd_valid_p,
+# ifdef HAVE_PAM
+  { "PAM",              0, pam_priv_init, 0, pam_try_unlock,
                         False, False },
 # endif
-# ifdef HAVE_PAM
-  { "PAM",              0, pam_priv_init, pam_passwd_valid_p, 
+# ifdef HAVE_KERBEROS
+  { "Kerberos",         kerberos_lock_init, 0, kerberos_passwd_valid_p, 0,
                         False, False },
 # endif
 # ifdef PASSWD_HELPER_PROGRAM
-  { "external",                0, ext_priv_init, ext_passwd_valid_p,
+  { "external",                0, ext_priv_init, ext_passwd_valid_p, 0,
                        False, False },
-#endif
-  { "normal",           pwent_lock_init, pwent_priv_init, pwent_passwd_valid_p,
+# endif
+  { "normal",           pwent_lock_init, pwent_priv_init, pwent_passwd_valid_p, 0,
                         False, False }
 };
 
@@ -138,18 +146,66 @@ lock_init (int argc, char **argv, Bool verbose_p)
 }
 
 
-Bool 
-passwd_valid_p (const char *typed_passwd, Bool verbose_p)
+/* A basic auth driver that simply prompts for a password then runs it through
+ * valid_p to determine whether the password is correct.
+ */
+static void
+try_unlock_password(saver_info *si,
+                  Bool verbose_p,
+                  Bool (*valid_p)(const char *typed_passwd, Bool verbose_p))
+{
+  struct auth_message message;
+  struct auth_response *response = NULL;
+
+  memset(&message, 0, sizeof(message));
+
+  /* Call the auth_conv function with "Password:", then feed
+   * the result into valid_p()
+   */
+  message.type = AUTH_MSGTYPE_PROMPT_NOECHO;
+  message.msg = "Password:";
+
+  si->unlock_cb(1, &message, &response, si);
+
+  if (!response)
+    return;
+
+  si->unlock_state = valid_p(response->response, verbose_p) ? ul_success : ul_fail;
+
+  if (response->response)
+    free(response->response);
+  free(response);
+}
+
+
+/**
+ * Runs through each authentication driver calling its try_unlock function.
+ * Called xss_authenticate() because AIX beat us to the name authenticate().
+ */
+void
+xss_authenticate(saver_info *si, Bool verbose_p)
 {
   int i, j;
+
   for (i = 0; i < countof(methods); i++)
     {
-      int ok_p = (methods[i].initted_p &&
-                  methods[i].valid_p (typed_passwd, verbose_p));
+      if (!methods[i].initted_p)
+        continue;
+
+      if (si->cached_passwd != NULL && methods[i].valid_p)
+       si->unlock_state = (methods[i].valid_p(si->cached_passwd, verbose_p) == True)
+                          ? ul_success : ul_fail;
+      else if (methods[i].try_unlock != NULL)
+        methods[i].try_unlock(si, verbose_p, methods[i].valid_p);
+      else if (methods[i].valid_p)
+        try_unlock_password(si, verbose_p, methods[i].valid_p);
+      else /* Ze goggles, zey do nozing! */
+        fprintf(stderr, "%s: authentication method %s does nothing.\n",
+                blurb(), methods[i].name);
 
       check_for_leaks (methods[i].name);
 
-      if (ok_p)
+      if (si->unlock_state == ul_success)
         {
           /* If we successfully authenticated by method N, but attempting
              to authenticate by method N-1 failed, mention that (since if
@@ -160,19 +216,23 @@ passwd_valid_p (const char *typed_passwd, Bool verbose_p)
             {
               for (j = 0; j < i; j++)
                 if (methods[j].initted_p)
-                  fprintf (stderr,
-                           "%s: authentication via %s passwords failed.\n",
-                           blurb(), methods[j].name);
+                    fprintf (stderr,
+                             "%s: authentication via %s failed.\n",
+                             blurb(), methods[j].name);
               fprintf (stderr,
-                       "%s: authentication via %s passwords succeeded.\n",
+                       "%s: authentication via %s succeeded.\n",
                        blurb(), methods[i].name);
             }
-
-          return True;         /* Successfully authenticated! */
+          goto DONE;           /* Successfully authenticated! */
         }
     }
 
-  return False;                        /* Authentication failure. */
+  if (verbose_p)
+    fprintf(stderr, "%s: All authentication mechanisms failed.\n", blurb());
+
+DONE:
+  if (si->auth_finished_cb)
+    si->auth_finished_cb (si);
 }
 
 #endif /* NO_LOCKING -- whole file */
index c0c047babbf062851419d37b869b1df1da16f82d..eeb272ef1dc0a443773461791ee206ff16dba6cf 100644 (file)
 #ifndef __XSCREENSAVER_PREFS_H__
 #define __XSCREENSAVER_PREFS_H__
 
-typedef struct screenhack screenhack;
-struct screenhack {
-  Bool enabled_p;
-  char *visual;
-  char *name;
-  char *command;
-};
-
-typedef enum {
-  RANDOM_HACKS, ONE_HACK, BLANK_ONLY, DONT_BLANK, RANDOM_HACKS_SAME
-} saver_mode;
-
-typedef enum {
-  TEXT_DATE, TEXT_LITERAL, TEXT_FILE, TEXT_PROGRAM, TEXT_URL
-} text_mode;
-
-typedef struct saver_preferences saver_preferences;
-
-
-/* This structure holds all the user-specified parameters, read from the
-   command line, the resource database, or entered through a dialog box.
- */
-struct saver_preferences {
-
-  XrmDatabase db;              /* The resource database into which the
-                                  init file is merged, and out of which the
-                                  preferences are parsed. */
-
-  time_t init_file_date;       /* The date (from stat()) of the .xscreensaver
-                                  file the last time this process read or
-                                  wrote it. */
-
-  Bool verbose_p;              /* whether to print out lots of status info */
-  Bool timestamp_p;            /* whether to mark messages with a timestamp */
-  Bool capture_stderr_p;       /* whether to redirect stdout/stderr  */
-  Bool ignore_uninstalled_p;   /* whether to avoid displaying or complaining
-                                   about hacks that are not on $PATH */
-  Bool debug_p;                        /* pay no mind to the man behind the curtain */
-  Bool xsync_p;                        /* whether XSynchronize has been called */
-
-  Bool lock_p;                 /* whether to lock as well as save */
-
-  Bool fade_p;                 /* whether to fade to black, if possible */
-  Bool unfade_p;               /* whether to fade from black, if possible */
-  Time fade_seconds;           /* how long that should take */
-  int fade_ticks;              /* how many ticks should be used */
-  Bool splash_p;               /* whether to do a splash screen at startup */
-
-  Bool install_cmap_p;         /* whether we should use our own colormap
-                                  when using the screen's default visual. */
-
-# ifdef QUAD_MODE
-  Bool quad_p;                 /* whether to run four savers per monitor */
-# endif /* QUAD_MODE */
-
-  screenhack **screenhacks;    /* the programs to run */
-  int screenhacks_count;
-
-  saver_mode mode;             /* hack-selection mode */
-  int selected_hack;           /* in one_hack mode, this is the one */
-
-  int nice_inferior;           /* nice value for subprocs */
-  int inferior_memory_limit;   /* setrlimit(LIMIT_AS) value for subprocs */
-
-  Time initial_delay;          /* how long to sleep after launch */
-  Time splash_duration;                /* how long the splash screen stays up */
-  Time timeout;                        /* how much idle time before activation */
-  Time lock_timeout;           /* how long after activation locking starts */
-  Time cycle;                  /* how long each hack should run */
-  Time passwd_timeout;         /* how much time before pw dialog goes down */
-  Time pointer_timeout;                /* how often to check mouse position */
-  Time notice_events_timeout;  /* how long after window creation to select */
-  Time watchdog_timeout;       /* how often to re-raise and re-blank screen */
-  int pointer_hysteresis;      /* mouse motions less than N/sec are ignored */
-
-  Bool dpms_enabled_p;         /* Whether to power down the monitor */
-  Time dpms_standby;           /* how long until monitor goes black */
-  Time dpms_suspend;           /* how long until monitor power-saves */
-  Time dpms_off;               /* how long until monitor powers down */
-
-  Bool grab_desktop_p;         /* These are not used by "xscreensaver" */
-  Bool grab_video_p;           /*  itself: they are used by the external */
-  Bool random_image_p;         /*  "xscreensaver-getimage" program, and set */
-  char *image_directory;       /*  by the "xscreensaver-demo" configurator. */
-
-  text_mode tmode;             /* How we generate text to display. */
-  char *text_literal;          /* used when tmode is TEXT_LITERAL. */
-  char *text_file;             /* used when tmode is TEXT_FILE.    */
-  char *text_program;          /* used when tmode is TEXT_PROGRAM. */
-  char *text_url;              /* used when tmode is TEXT_URL.     */
-
-  Bool use_xidle_extension;    /* which extension to use, if possible */
-  Bool use_mit_saver_extension;
-  Bool use_sgi_saver_extension;
-  Bool use_proc_interrupts;
-
-  Bool getviewport_full_of_lies_p; /* XFree86 bug #421 */
-
-  char *shell;                 /* where to find /bin/sh */
-
-  char *demo_command;          /* How to enter demo mode. */
-  char *prefs_command;         /* How to edit preferences. */
-  char *help_url;              /* Where the help document resides. */
-  char *load_url_command;      /* How one loads URLs. */
-  char *new_login_command;     /* Command for the "New Login" button. */
-};
-
+#include "types.h"
 
 extern void load_init_file (Display *, saver_preferences *);
 extern Bool init_file_changed_p (saver_preferences *);
index 52c21ad6c0e21881df9b1c0e0bf5a5dfed72007e..ead36d7c1c38179eefc5377dc62650bf65b79fb3 100644 (file)
@@ -87,10 +87,7 @@ draw_shaded_rectangle (Display *dpy, Window window,
 int
 string_width (XFontStruct *font, char *s)
 {
-  int direction, ascent, descent;
-  XCharStruct overall;
-  XTextExtents (font, s, strlen(s), &direction, &ascent, &descent, &overall);
-  return overall.width;
+  return XTextWidth(font, s, strlen(s));
 }
 
 
index 0bbe4a87609c836239b693642957276d33f64a89..2196eadfb1d3d5282fe603d8565a98bc6e3d3d2e 100644 (file)
@@ -360,12 +360,20 @@ static int block_sigchld_handler = 0;
 block_sigchld (void)
 {
 #ifdef HAVE_SIGACTION
+  struct sigaction sa;
   sigset_t child_set;
+
+  memset (&sa, 0, sizeof (sa));
+  sa.sa_handler = SIG_IGN;
+  sigaction (SIGPIPE, &sa, NULL);
+
   sigemptyset (&child_set);
   sigaddset (&child_set, SIGCHLD);
-  sigaddset (&child_set, SIGPIPE);
   sigprocmask (SIG_BLOCK, &child_set, 0);
-#endif /* HAVE_SIGACTION */
+
+#else  /* !HAVE_SIGACTION */
+  signal (SIGPIPE, SIG_IGN);
+#endif /* !HAVE_SIGACTION */
 
   block_sigchld_handler++;
 
@@ -380,12 +388,20 @@ void
 unblock_sigchld (void)
 {
 #ifdef HAVE_SIGACTION
+  struct sigaction sa;
   sigset_t child_set;
+
+  memset(&sa, 0, sizeof (sa));
+  sa.sa_handler = SIG_DFL;
+  sigaction(SIGPIPE, &sa, NULL);
+
   sigemptyset(&child_set);
   sigaddset(&child_set, SIGCHLD);
-  sigaddset(&child_set, SIGPIPE);
   sigprocmask(SIG_UNBLOCK, &child_set, 0);
-#endif /* HAVE_SIGACTION */
+
+#else /* !HAVE_SIGACTION */
+  signal(SIGPIPE, SIG_DFL);
+#endif /* !HAVE_SIGACTION */
 
   block_sigchld_handler--;
 }
diff --git a/driver/test-mlstring.c b/driver/test-mlstring.c
new file mode 100644 (file)
index 0000000..e269a00
--- /dev/null
@@ -0,0 +1,312 @@
+/* 
+ * (c) 2007, Quest Software, Inc. All rights reserved.
+ *
+ * This file is part of XScreenSaver,
+ * Copyright (c) 1993-2004 Jamie Zawinski <jwz@jwz.org>
+ *
+ * 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.
+ */
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "mlstring.c"  /* hokey, but whatever */
+
+#define WRAP_WIDTH_PX 100
+
+#undef Bool
+#undef True
+#undef False
+typedef int Bool;
+#define True 1
+#define False 0
+
+#define SKIPPED -1
+#define SUCCESS 0
+#define FAILURE 1
+
+#define FAIL(msg, ...)                 \
+  do {                                 \
+    ++failcount;                       \
+    fprintf(stderr, "[FAIL] ");        \
+    fprintf(stderr, msg, __VA_ARGS__); \
+    putc('\n', stderr);                \
+    return FAILURE;                    \
+  } while (0)
+
+#define SUCCEED(testname)                          \
+  do {                                             \
+    fprintf(stderr, "[SUCCESS] %s\n", (testname)); \
+  } while (0)
+
+#define SKIP(testname)                             \
+  do {                                             \
+    fprintf(stderr, "[SKIPPED] %s\n", (testname)); \
+  } while (0)
+
+extern mlstring* mlstring_allocate(const char *msg);
+extern void mlstring_wrap(mlstring *mstr, XFontStruct *font, Dimension width);
+
+static int failcount = 0;
+
+static char *mlstring_to_cstr(const mlstring *mlstr) {
+  char *cstr;
+  size_t cstrlen = 0, alloclen = 1024;
+  const struct mlstr_line *line;
+
+  cstr = malloc(alloclen);
+  if (!cstr)
+    return NULL;
+  cstr[0] = '\0';
+
+  for (line = mlstr->lines; line; line = line->next_line) {
+    /* Extend the buffer if necessary. */
+    if (cstrlen + strlen(line->line) + 1 > alloclen) {
+      cstr = realloc(cstr, alloclen *= 2);
+      if (!cstr)
+       return NULL;
+    }
+
+    /* If this is not the first line */
+    if (line != mlstr->lines) {
+      /* Append a newline character */
+      cstr[cstrlen] = '\n';
+      ++cstrlen;
+      cstr[cstrlen] = '\0';
+    }
+
+    strcat(cstr, line->line);
+    cstrlen += strlen(line->line);
+  }
+  return cstr;
+}
+
+/* Pass -1 for expect_min or expect_exact to not check that value.
+ * expect_empty_p means an empty line is expected at some point in the string.
+ * Also ensures that the string was not too wide after wrapping. */
+static int mlstring_expect_lines(const mlstring *mlstr, int expect_min, int expect_exact, Bool expect_empty_p)
+{
+  int count;
+  Bool got_empty_line = False;
+  const struct mlstr_line *line = mlstr->lines;
+
+  for (count = 0; line; line = line->next_line) {
+    if (line->line[0] == '\0') {
+      if (!expect_empty_p)
+       FAIL("Not expecting empty lines, but got one on line %d of [%s]", count + 1, mlstring_to_cstr(mlstr));
+      got_empty_line = True;
+    }
+    ++count;
+  }
+
+  if (expect_empty_p && !got_empty_line)
+    FAIL("Expecting an empty line, but none found in [%s]", mlstring_to_cstr(mlstr));
+
+  if (expect_exact != -1 && expect_exact != count)
+    FAIL("Expected %d lines, got %d", expect_exact, count);
+  
+  if (expect_min != -1 && count < expect_min)
+    FAIL("Expected at least %d lines, got %d", expect_min, count);
+
+  return SUCCESS;
+}
+
+static int mlstring_expect(const char *msg, int expect_lines, const mlstring *mlstr, Bool expect_empty_p)
+{
+  char *str, *str_top;
+  const struct mlstr_line *cur;
+  int linecount = 0;
+
+  /* Duplicate msg so we can chop it up */
+  str_top = strdup(msg);
+  if (!str_top)
+    return SKIPPED;
+
+  /* Replace all newlines with NUL */
+  str = str_top;
+  while ((str = strchr(str, '\n')))
+    *str++ = '\0';
+
+  /* str is now used to point to the expected string */
+  str = str_top;
+
+  for (cur = mlstr->lines; cur; cur = cur->next_line)
+    {
+      ++linecount;
+      if (strcmp(cur->line, str))
+       FAIL("lines didn't match; expected [%s], got [%s]", str, cur->line);
+
+      str += strlen(str) + 1; /* Point to the next expected string */
+    }
+
+  free(str_top);
+
+  return mlstring_expect_lines(mlstr, -1, expect_lines, expect_empty_p);
+}
+
+/* Ensures that the width has been set properly after wrapping */
+static int check_width(const char *msg, const mlstring *mlstr) {
+  if (mlstr->overall_width == 0)
+    FAIL("Overall width was zero for string [%s]", msg);
+
+  if (mlstr->overall_width > WRAP_WIDTH_PX)
+    FAIL("Overall width was %hu but the maximum wrap width was %d", mlstr->overall_width, WRAP_WIDTH_PX);
+
+  return SUCCESS;
+}
+
+/* FAIL() actually returns the wrong return codes in main, but it
+ * prints a message which is what we want. */
+
+#define TRY_NEW(str, numl, expect_empty)                      \
+  do {                                                        \
+    mlstr = mlstring_allocate((str));                         \
+    if (!mlstr)                                               \
+      FAIL("%s", #str);                                       \
+    if (SUCCESS == mlstring_expect((str), (numl), mlstr, (expect_empty))) \
+      SUCCEED(#str);                                          \
+    free(mlstr);                                              \
+  } while (0)
+
+/* Expects an XFontStruct* font, and tries to wrap to 100px */
+#define TRY_WRAP(str, minl, expect_empty)                        \
+  do {                                                           \
+    mltest = mlstring_allocate((str));                           \
+    if (!mltest)                                                 \
+      SKIP(#str);                                                \
+    else {                                                       \
+      mlstring_wrap(mltest, font, WRAP_WIDTH_PX);                \
+      check_width((str), mltest);                                \
+      if (SUCCESS == mlstring_expect_lines(mltest, (minl), -1, (expect_empty)))  \
+       SUCCEED(#str);                                           \
+      free(mltest);                                              \
+      mltest = NULL;                                             \
+    }                                                            \
+  } while (0)
+
+
+/* Ideally this function would use stub functions rather than real Xlib.
+ * Then it would be possible to test for exact line counts, which would be
+ * more reliable.
+ * It also doesn't handle Xlib errors.
+ *
+ * Don't print anything based on the return value of this function, it only
+ * returns a value so that I can use the FAIL() macro without warning.
+ *
+ * Anyone who understands this function wins a cookie ;)
+ */
+static int test_wrapping(void)
+{
+  Display *dpy = NULL;
+  XFontStruct *font = NULL;
+  mlstring *mltest = NULL;
+  int ok = 0;
+  int chars_per_line, chars_first_word, i;
+  
+  const char *test_short = "a";
+  const char *test_hardwrap = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+    "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+    "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
+  const char *test_withnewlines = "a\nb";
+  char *test_softwrap = NULL;
+
+  dpy = XOpenDisplay(NULL);
+  if (!dpy)
+    goto end;
+  
+  font = XLoadQueryFont(dpy, "fixed");
+  if (!font)
+    goto end;
+
+  TRY_WRAP(test_short, 1, False);
+  TRY_WRAP(test_hardwrap, 2, False);
+  TRY_WRAP(test_withnewlines, 2, False);
+
+  /* See if wrapping splits on word boundaries like it should */
+  chars_per_line = WRAP_WIDTH_PX / font->max_bounds.width;
+  if (chars_per_line < 3)
+    goto end;
+
+  /* Allocate for 2 lines + \0 */
+  test_softwrap = malloc(chars_per_line * 2 + 1);
+  if (!test_softwrap)
+    goto end;
+
+  /* 2 = strlen(' a'); that is, the minimum space required to start a new word
+   * on the same line. */
+  chars_first_word = chars_per_line - 2;
+
+  for (i = 0; i < chars_first_word; ++i) {
+    test_softwrap[i] = 'a'; /* first word */
+    test_softwrap[i + chars_per_line] = 'b'; /* second word */
+  }
+  /* space between first & second words */
+  test_softwrap[chars_first_word] = ' ';
+  /* first char of second word (last char of first line) */
+  test_softwrap[chars_first_word + 1] = 'b';
+  /* after second word */
+  test_softwrap[chars_per_line * 2] = '\0';
+
+  mltest = mlstring_allocate(test_softwrap);
+  mlstring_wrap(mltest, font, WRAP_WIDTH_PX);
+
+  /* reusing 'i' for a moment here to make freeing mltest easier */
+  i = strlen(mltest->lines->line);
+  free(mltest);
+
+  if (i != chars_first_word)
+    FAIL("Soft wrap failed, expected the first line to be %d chars, but it was %d.", chars_first_word, i);
+  SUCCEED("Soft wrap");
+
+  ok = 1;
+
+end:
+  if (test_softwrap)
+    free(test_softwrap);
+
+  if (font)
+    XFreeFont(dpy, font);
+
+  if (dpy)
+    XCloseDisplay(dpy);
+
+  if (!ok)
+    SKIP("wrapping");
+
+  return ok ? SUCCESS : SKIPPED; /* Unused, actually */
+}
+
+
+int main(int argc, char *argv[])
+{
+  const char *oneline = "1Foo";
+  const char *twolines = "2Foo\nBar";
+  const char *threelines = "3Foo\nBar\nWhippet";
+  const char *trailnewline = "4Foo\n";
+  const char *trailnewlines = "5Foo\n\n";
+  const char *embeddednewlines = "6Foo\n\nBar";
+  mlstring *mlstr;
+
+  TRY_NEW(oneline, 1, False);
+  TRY_NEW(twolines, 2, False);
+  TRY_NEW(threelines, 3, False);
+  TRY_NEW(trailnewline, 2, True);
+  TRY_NEW(trailnewlines, 3, True);
+  TRY_NEW(embeddednewlines, 3, True);
+
+  (void) test_wrapping();
+
+  fprintf(stdout, "%d test failures.\n", failcount);
+
+  return !!failcount;
+}
+
+/* vim:ts=8:sw=2:noet
+ */
index a42d466bc4cfea1a252792f0f90b6180d35d89b9..e8eeacad28d91a2f05496f6789a070d2f2c8c510 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1998-2005 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1998-2007 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -32,6 +32,7 @@
 #include "resources.h"
 #include "version.h"
 #include "visual.h"
+#include "auth.h"
 
 char *progname = 0;
 char *progclass = 0;
@@ -58,8 +59,6 @@ void saver_exit (saver_info *si, int status, const char *core) { exit(status);}
 int move_mouse_grab (saver_info *si, Window to, Cursor c, int ts) { return 0; }
 int mouse_screen (saver_info *si) { return 0; }
 void check_for_leaks (const char *where) { }
-void exec_command (const char *shell, const char *command, int nice) { }
-int on_path_p (const char *program) { return 0; }
 void shutdown_stderr (saver_info *si) { }
 
 const char *blurb(void) { return progname; }
@@ -80,7 +79,6 @@ get_screen_viewport (saver_screen_info *ssi,
   if (*w_ret > *h_ret * 2) *w_ret /= 2;  /* xinerama kludge */
 }
 
-
 void
 idle_timer (XtPointer closure, XtIntervalId *id)
 {
@@ -93,6 +91,51 @@ idle_timer (XtPointer closure, XtIntervalId *id)
 }
 
 
+static int
+text_auth_conv (
+  int num_msg,
+  const struct auth_message *auth_msgs,
+  struct auth_response **resp,
+  saver_info *si)
+{
+  char *input;
+  char buf[255];
+  struct auth_response *responses;
+  int i;
+
+  responses = calloc(num_msg, sizeof(struct auth_response));
+  if (!responses)
+    return -1;
+
+  /* The unlock state won't actually be used until this function returns and
+   * the auth module processes the response, but set it anyway for consistency
+   */
+  si->unlock_state = ul_read;
+
+  for (i = 0; i < num_msg; ++i)
+    {
+      printf ("\n%s: %s", progname, auth_msgs[i].msg);
+      if (   auth_msgs[i].type == AUTH_MSGTYPE_PROMPT_NOECHO
+          || auth_msgs[i].type == AUTH_MSGTYPE_PROMPT_ECHO)
+        {
+          input = fgets (buf, sizeof(buf)-1, stdin);
+          if (!input || !*input)
+            exit (0);
+          if (input[strlen(input)-1] == '\n')
+            input[strlen(input)-1] = 0;
+
+          responses[i].response = strdup(input);
+        }
+    }
+
+  *resp = responses;
+
+  si->unlock_state = ul_finished;
+
+  return 0;
+}
+
+
 #ifdef __GNUC__
  __extension__     /* shut up about "string length is greater than the length
                       ISO C89 compilers are required to support" when including
@@ -113,6 +156,7 @@ main (int argc, char **argv)
   saver_info sip;
   saver_info *si = &sip;
   saver_preferences *p = &si->prefs;
+  struct passwd *pw;
 
   memset(&sip, 0, sizeof(sip));
   memset(&ssip, 0, sizeof(ssip));
@@ -186,6 +230,11 @@ main (int argc, char **argv)
         visual_depth(si->default_screen->screen,
                      si->default_screen->current_visual);
 
+      /* I could call get_screen_viewport(), but it is not worthwhile.
+       * These are used by the save_under pixmap. */
+      ssip.width = WidthOfScreen(ssip.screen);
+      ssip.height = HeightOfScreen(ssip.screen);
+
       db = p->db;
       XtGetApplicationNameAndClass (si->dpy, &progname, &progclass);
 
@@ -194,15 +243,22 @@ main (int argc, char **argv)
 
   p->verbose_p = True;
 
+  pw = getpwuid (getuid ());
+  si->user = strdup (pw->pw_name);
+
   while (1)
     {
 #ifndef NO_LOCKING
       if (which == PASS)
         {
-          if (unlock_p (si))
-            fprintf (stderr, "%s: password correct\n", progname);
+         si->unlock_cb = gui_auth_conv;
+
+         xss_authenticate(si, True);
+
+          if (si->unlock_state == ul_success)
+            fprintf (stderr, "%s: authentication succeeded\n", progname);
           else
-            fprintf (stderr, "%s: password INCORRECT!\n", progname);
+            fprintf (stderr, "%s: authentication FAILED!\n", progname);
 
           XSync(si->dpy, False);
           sleep (3);
@@ -225,27 +281,23 @@ main (int argc, char **argv)
           XSync (si->dpy, False);
           sleep (1);
         }
+#ifndef NO_LOCKING
       else if (which == TTY)
         {
-          char *pass;
-          char buf[255];
-          struct passwd *p = getpwuid (getuid ());
-          printf ("\n%s: %s's password: ", progname, p->pw_name);
+          si->unlock_cb = text_auth_conv;
 
-          pass = fgets (buf, sizeof(buf)-1, stdin);
-          if (!pass || !*pass)
-            exit (0);
-          if (pass[strlen(pass)-1] == '\n')
-            pass[strlen(pass)-1] = 0;
+          printf ("%s: Authenticating user %s\n", progname, si->user);
+          xss_authenticate(si, True);
 
-#ifndef NO_LOCKING
-          if (passwd_valid_p (pass, True))
+          if (si->unlock_state == ul_success)
             printf ("%s: Ok!\n", progname);
           else
             printf ("%s: Wrong!\n", progname);
-#endif
         }
+#endif
       else
         abort();
     }
+
+  free(si->user);
 }
diff --git a/driver/types.h b/driver/types.h
new file mode 100644 (file)
index 0000000..4832187
--- /dev/null
@@ -0,0 +1,410 @@
+/* types.h
+ *
+ * This file is part of XScreenSaver,
+ * Copyright (c) 1993-2004 Jamie Zawinski <jwz@jwz.org>
+ *
+ * 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.
+ */
+
+#ifndef TYPES_H
+#define TYPES_H
+
+typedef struct saver_info saver_info;
+
+/* Unlock states. Old pw_* equivalents in square brackets:
+ * ul_read - reading input (or ready to do so) [pw_read]
+ * ul_success - auth success, unlock the screen [pw_ok]
+ * ul_fail - authentication failed [pw_fail]
+ * ul_cancel - user cancelled auth [pw_cancel or pw_null]
+ * ul_time - timed out, user took too long [pw_time]
+ * ul_finished - user pressed enter on the current prompt, process input
+ */
+enum unlock_state { ul_read, ul_success, ul_fail, ul_cancel, ul_time, ul_finished };
+
+typedef struct screenhack screenhack;
+struct screenhack {
+  Bool enabled_p;
+  char *visual;
+  char *name;
+  char *command;
+};
+
+typedef enum {
+  RANDOM_HACKS, ONE_HACK, BLANK_ONLY, DONT_BLANK, RANDOM_HACKS_SAME
+} saver_mode;
+
+typedef enum {
+  TEXT_DATE, TEXT_LITERAL, TEXT_FILE, TEXT_PROGRAM, TEXT_URL
+} text_mode;
+
+struct auth_message;
+struct auth_response;
+
+typedef int (*auth_conv_cb_t) (
+  int num_msg,
+  const struct auth_message *msg,
+  struct auth_response **resp,
+  saver_info *si);
+
+typedef struct saver_preferences saver_preferences;
+typedef struct saver_screen_info saver_screen_info;
+typedef struct passwd_dialog_data passwd_dialog_data;
+typedef struct splash_dialog_data splash_dialog_data;
+
+
+/* This structure holds all the user-specified parameters, read from the
+   command line, the resource database, or entered through a dialog box.
+ */
+struct saver_preferences {
+
+  XrmDatabase db;              /* The resource database into which the
+                                  init file is merged, and out of which the
+                                  preferences are parsed. */
+
+  time_t init_file_date;       /* The date (from stat()) of the .xscreensaver
+                                  file the last time this process read or
+                                  wrote it. */
+
+  Bool verbose_p;              /* whether to print out lots of status info */
+  Bool timestamp_p;            /* whether to mark messages with a timestamp */
+  Bool capture_stderr_p;       /* whether to redirect stdout/stderr  */
+  Bool ignore_uninstalled_p;   /* whether to avoid displaying or complaining
+                                   about hacks that are not on $PATH */
+  Bool debug_p;                        /* pay no mind to the man behind the curtain */
+  Bool xsync_p;                        /* whether XSynchronize has been called */
+
+  Bool lock_p;                 /* whether to lock as well as save */
+
+  Bool fade_p;                 /* whether to fade to black, if possible */
+  Bool unfade_p;               /* whether to fade from black, if possible */
+  Time fade_seconds;           /* how long that should take */
+  int fade_ticks;              /* how many ticks should be used */
+  Bool splash_p;               /* whether to do a splash screen at startup */
+
+  Bool install_cmap_p;         /* whether we should use our own colormap
+                                  when using the screen's default visual. */
+
+# ifdef QUAD_MODE
+  Bool quad_p;                 /* whether to run four savers per monitor */
+# endif
+
+  screenhack **screenhacks;    /* the programs to run */
+  int screenhacks_count;
+
+  saver_mode mode;             /* hack-selection mode */
+  int selected_hack;           /* in one_hack mode, this is the one */
+
+  int nice_inferior;           /* nice value for subprocs */
+  int inferior_memory_limit;   /* setrlimit(LIMIT_AS) value for subprocs */
+
+  Time initial_delay;          /* how long to sleep after launch */
+  Time splash_duration;                /* how long the splash screen stays up */
+  Time timeout;                        /* how much idle time before activation */
+  Time lock_timeout;           /* how long after activation locking starts */
+  Time cycle;                  /* how long each hack should run */
+  Time passwd_timeout;         /* how much time before pw dialog goes down */
+  Time pointer_timeout;                /* how often to check mouse position */
+  Time notice_events_timeout;  /* how long after window creation to select */
+  Time watchdog_timeout;       /* how often to re-raise and re-blank screen */
+  int pointer_hysteresis;      /* mouse motions less than N/sec are ignored */
+
+  Bool dpms_enabled_p;         /* Whether to power down the monitor */
+  Time dpms_standby;           /* how long until monitor goes black */
+  Time dpms_suspend;           /* how long until monitor power-saves */
+  Time dpms_off;               /* how long until monitor powers down */
+
+  Bool grab_desktop_p;         /* These are not used by "xscreensaver" */
+  Bool grab_video_p;           /*  itself: they are used by the external */
+  Bool random_image_p;         /*  "xscreensaver-getimage" program, and set */
+  char *image_directory;       /*  by the "xscreensaver-demo" configurator. */
+
+  text_mode tmode;             /* How we generate text to display. */
+  char *text_literal;          /* used when tmode is TEXT_LITERAL. */
+  char *text_file;             /* used when tmode is TEXT_FILE.    */
+  char *text_program;          /* used when tmode is TEXT_PROGRAM. */
+  char *text_url;              /* used when tmode is TEXT_URL.     */
+
+  Bool use_xidle_extension;    /* which extension to use, if possible */
+  Bool use_mit_saver_extension;
+  Bool use_sgi_saver_extension;
+  Bool use_proc_interrupts;
+
+  Bool getviewport_full_of_lies_p; /* XFree86 bug #421 */
+
+  char *shell;                 /* where to find /bin/sh */
+
+  char *demo_command;          /* How to enter demo mode. */
+  char *prefs_command;         /* How to edit preferences. */
+  char *help_url;              /* Where the help document resides. */
+  char *load_url_command;      /* How one loads URLs. */
+  char *new_login_command;     /* Command for the "New Login" button. */
+};
+
+/* This structure holds all the data that applies to the program as a whole,
+   or to the non-screen-specific parts of the display connection.
+
+   The saver_preferences structure (prefs.h) holds all the user-specified
+   parameters, read from the command line, the resource database, or entered
+   through a dialog box.
+ */
+struct saver_info {
+  char *version;
+  saver_preferences prefs;
+
+  int nscreens;
+  saver_screen_info *screens;
+  saver_screen_info *default_screen;   /* ...on which dialogs will appear. */
+
+
+  /* =======================================================================
+     global connection info
+     ======================================================================= */
+
+  XtAppContext app;
+  Display *dpy;
+
+  /* =======================================================================
+     server extension info
+     ======================================================================= */
+
+  Bool xinerama_p;                /* Whether Xinerama is in use.            */
+  Bool using_xidle_extension;     /* which extension is being used.         */
+  Bool using_mit_saver_extension;  /* Note that `p->use_*' is the *request*, */
+  Bool using_sgi_saver_extension;  /* and `si->using_*' is the *reality*.    */
+  Bool using_proc_interrupts;
+
+# ifdef HAVE_MIT_SAVER_EXTENSION
+  int mit_saver_ext_event_number;
+  int mit_saver_ext_error_number;
+# endif
+# ifdef HAVE_SGI_SAVER_EXTENSION
+  int sgi_saver_ext_event_number;
+  int sgi_saver_ext_error_number;
+# endif
+# ifdef HAVE_RANDR
+  int randr_event_number;
+  int randr_error_number;
+# endif
+
+
+  /* =======================================================================
+     blanking
+     ======================================================================= */
+
+  Bool screen_blanked_p;       /* Whether the saver is currently active. */
+  Window mouse_grab_window;    /* Window holding our mouse grab */
+  Window keyboard_grab_window; /* Window holding our keyboard grab */
+  int mouse_grab_screen;       /* The screen number the mouse grab is on */
+  int keyboard_grab_screen;    /* The screen number the keyboard grab is on */
+  Bool fading_possible_p;      /* Whether fading to/from black is possible. */
+  Bool throttled_p;             /* Whether we should temporarily just blank
+                                   the screen, not run hacks. (Deprecated:
+                                   users should use "xset dpms force off"
+                                   instead.) */
+  time_t blank_time;           /* The time at which the screen was blanked
+                                   (if currently blanked) or unblanked (if
+                                   not blanked.) */
+
+
+  /* =======================================================================
+     locking and runtime privileges
+     ======================================================================= */
+
+  Bool locked_p;               /* Whether the screen is currently locked. */
+  Bool dbox_up_p;              /* Whether the demo-mode or passwd dialogs
+                                  are currently visible */
+
+  Bool locking_disabled_p;     /* Sometimes locking is impossible. */
+  char *nolock_reason;         /* This is why. */
+
+  char *orig_uid;              /* What uid/gid we had at startup, before
+                                  discarding privileges. */
+  char *uid_message;           /* Any diagnostics from our attempt to
+                                  discard privileges (printed only in
+                                  -verbose mode.) */
+  Bool dangerous_uid_p;                /* Set to true if we're running as a user id
+                                  which is known to not be a normal, non-
+                                  privileged user. */
+
+  Window passwd_dialog;                /* The password dialog, if it's up. */
+  passwd_dialog_data *pw_data; /* Other info necessary to draw it. */
+
+  int unlock_failures;         /* Counts failed login attempts while the
+                                  screen is locked. */
+
+  char *unlock_typeahead;      /* If the screen is locked, and the user types
+                                   a character, we assume that it is the first
+                                   character of the password.  It's stored here
+                                   for the password dialog to use to populate
+                                   itself. */
+
+  char *user;                  /* The user whose session is locked. */
+  char *cached_passwd;         /* Cached password, used to avoid multiple
+                                  prompts for password-only auth mechanisms.*/
+  enum unlock_state unlock_state;
+
+  auth_conv_cb_t unlock_cb;    /* The function used to prompt for creds. */
+  void (*auth_finished_cb) (saver_info *si);
+                               /* Called when authentication has finished,
+                                  regardless of success or failure.
+                                  May be NULL. */
+
+
+  /* =======================================================================
+     demoing
+     ======================================================================= */
+
+  Bool demoing_p;              /* Whether we are demoing a single hack
+                                  (without UI.) */
+
+  Window splash_dialog;                /* The splash dialog, if its up. */
+  splash_dialog_data *sp_data; /* Other info necessary to draw it. */
+
+
+  /* =======================================================================
+     timers
+     ======================================================================= */
+
+  XtIntervalId lock_id;                /* Timer to implement `prefs.lock_timeout' */
+  XtIntervalId cycle_id;       /* Timer to implement `prefs.cycle' */
+  XtIntervalId timer_id;       /* Timer to implement `prefs.timeout' */
+  XtIntervalId watchdog_id;    /* Timer to implement `prefs.watchdog */
+  XtIntervalId check_pointer_timer_id; /* `prefs.pointer_timeout' */
+
+  XtIntervalId de_race_id;     /* Timer to make sure screen un-blanks */
+  int de_race_ticks;
+
+  time_t last_activity_time;              /* Used only when no server exts. */
+  time_t last_wall_clock_time;             /* Used to detect laptop suspend. */
+  saver_screen_info *last_activity_screen;
+
+  Bool emergency_lock_p;        /* Set when the wall clock has jumped
+                                   (presumably due to laptop suspend) and we
+                                   need to lock down right away instead of
+                                   waiting for the lock timer to go off. */
+
+
+  /* =======================================================================
+     remote control
+     ======================================================================= */
+
+  int selection_mode;          /* Set to -1 if the NEXT ClientMessage has just
+                                  been received; set to -2 if PREV has just
+                                  been received; set to N if SELECT or DEMO N
+                                  has been received.  (This is kind of nasty.)
+                                */
+
+  /* =======================================================================
+     subprocs
+     ======================================================================= */
+
+  XtIntervalId stderr_popup_timer;
+
+};
+
+/* This structure holds all the data that applies to the screen-specific parts
+   of the display connection; if the display has multiple screens, there will
+   be one of these for each screen.
+ */
+struct saver_screen_info {
+  saver_info *global;
+
+  int number;                  /* The internal ordinal of this screen,
+                                   counting Xinerama rectangles as separate
+                                   screens. */
+  int real_screen_number;      /* The number of the underlying X screen on
+                                   which this rectangle lies. */
+  Screen *screen;              /* The X screen in question. */
+
+  int x, y, width, height;     /* The size and position of this rectangle
+                                   on its underlying X screen. */
+
+  Bool real_screen_p;          /* This will be true of exactly one ssi per
+                                   X screen. */
+
+  Widget toplevel_shell;
+
+  /* =======================================================================
+     blanking
+     ======================================================================= */
+
+  Window screensaver_window;   /* The window that will impersonate the root,
+                                  when the screensaver activates.  Note that
+                                  the window stored here may change, as we
+                                  destroy and recreate it on different
+                                  visuals. */
+  Colormap cmap;               /* The colormap that goes with the window. */
+  Bool install_cmap_p;         /* Whether this screen should have its own
+                                   colormap installed, for whichever of several
+                                   reasons.  This is definitive (even a false
+                                   value here overrides prefs->install_cmap_p.)
+                                 */
+  Visual *current_visual;      /* The visual of the window. */
+  int current_depth;           /* How deep the visual (and the window) are. */
+
+  Visual *default_visual;      /* visual to use when none other specified */
+  Visual *best_gl_visual;      /* visual to use for GL hacks */
+
+  Window real_vroot;           /* The original virtual-root window. */
+  Window real_vroot_value;     /* What was in the __SWM_VROOT property. */
+
+  Cursor cursor;               /* A blank cursor that goes with the
+                                  real root window. */
+  unsigned long black_pixel;   /* Black, allocated from `cmap'. */
+
+  int blank_vp_x, blank_vp_y;   /* Where the virtual-scrolling viewport was
+                                   when the screen went blank.  We need to
+                                   prevent the X server from letting the mouse
+                                   bump the edges to scroll while the screen
+                                   is locked, so we reset to this when it has
+                                   moved, and the lock dialog is up... */
+
+# ifdef HAVE_MIT_SAVER_EXTENSION
+  Window server_mit_saver_window;
+# endif
+
+
+  /* =======================================================================
+     demoing
+     ======================================================================= */
+
+  Colormap demo_cmap;          /* The colormap that goes with the dialogs:
+                                  this might be the same as `cmap' so care
+                                  must be taken not to free it while it's
+                                  still in use. */
+
+  /* =======================================================================
+     timers
+     ======================================================================= */
+
+  int poll_mouse_last_root_x;          /* Used only when no server exts. */
+  int poll_mouse_last_root_y;
+  Window poll_mouse_last_child;
+  unsigned int poll_mouse_last_mask;
+  time_t poll_mouse_last_time;
+
+
+  /* =======================================================================
+     subprocs
+     ======================================================================= */
+
+  int current_hack;            /* Index into `prefs.screenhacks' */
+  pid_t pid;
+
+  int stderr_text_x;
+  int stderr_text_y;
+  int stderr_line_height;
+  XFontStruct *stderr_font;
+  GC stderr_gc;
+  Window stderr_overlay_window;    /* Used if the server has overlay planes */
+  Colormap stderr_cmap;
+};
+
+
+#endif
index ff7d6ddc998375d1d9b2596aecb9d84951f18f1c..23ba01ff3fa75f9ac15e1c6272016c723731bd01 100644 (file)
@@ -1,5 +1,5 @@
 /* windows.c --- turning the screen black; dealing with visuals, virtual roots.
- * xscreensaver, Copyright (c) 1991-2006 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1991-2007 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -1602,9 +1602,21 @@ resize_screensaver_window (saver_info *si)
        */
       int nscreens;
       XineramaScreenInfo *xsi = XineramaQueryScreens (si->dpy, &nscreens);
-      if (nscreens != si->nscreens) abort();
+
+      if (nscreens != si->nscreens) {
+        /* Apparently some Xinerama implementations let you use a hot-key
+           to change the number of screens in use!  This is, of course,
+           documented nowhere.  Let's try to do something marginally less
+           bad than crashing.
+         */
+        fprintf (stderr, "%s: bad craziness: xinerama screen count changed "
+                 "from %d to %d!\n", blurb(), si->nscreens, nscreens);
+        if (nscreens > si->nscreens)
+          nscreens = si->nscreens;
+      }
+
       if (!xsi) abort();
-      for (i = 0; i < si->nscreens; i++)
+      for (i = 0; i < nscreens; i++)
         {
           saver_screen_info *ssi = &si->screens[i];
           if (p->verbose_p &&
index 0193ddb3bf52019d60982bdc2e023665dcc00e94..7c18942579c426b230ecf0173d8170e9b225876f 100644 (file)
@@ -13,7 +13,6 @@ xscreensaver\-text - prints some text to stdout, for use by screen savers.
 The \fIxscreensaver\-text\fP script prints out some text for use by
 various screensavers, according to the options set in the ~/.xscreensaver
 file.  This may dump the contents of a file, run a program, or load a URL.
-.EE
 .SH OPTIONS
 .I xscreensaver\-text
 accepts the following options:
index a560131f4dbad091be9aedb6b708b664733a4cc9..3f0c7409edb20e9a5a062f2731cccb8819282e0d 100644 (file)
 #include <time.h>
 #include <sys/time.h>
 #include <netdb.h>     /* for gethostbyname() */
+#include <sys/types.h>
+#include <pwd.h>
 #ifdef HAVE_XMU
 # ifndef VMS
 #  include <X11/Xmu/Error.h>
 #include "resources.h"
 #include "visual.h"
 #include "usleep.h"
+#include "auth.h"
 
 saver_info *global_si_kludge = 0;      /* I hate C so much... */
 
@@ -1383,6 +1386,7 @@ main (int argc, char **argv)
   saver_info the_si;
   saver_info *si = &the_si;
   saver_preferences *p = &si->prefs;
+  struct passwd *spasswd;
   int i;
 
   memset(si, 0, sizeof(*si));
@@ -1398,6 +1402,21 @@ main (int argc, char **argv)
   privileged_initialization (si, &argc, argv);
   hack_environment (si);
 
+  spasswd = getpwuid(getuid());
+  if (!spasswd)
+    {
+      fprintf(stderr, "Could not figure out who the current user is!\n");
+      fprintf(stderr, "spasswd is %x\n", (unsigned int) spasswd);
+      return 1;
+    }
+
+  si->user = strdup(spasswd->pw_name ? spasswd->pw_name : "(unknown)");
+
+# ifndef NO_LOCKING
+  si->unlock_cb = gui_auth_conv;
+  si->auth_finished_cb = auth_finished_cb;
+# endif /* !NO_LOCKING */
+
   shell = connect_to_server (si, &argc, argv);
   process_command_line (si, &argc, argv);
   print_banner (si);
index 4e430c32be2be4e6c8378f6a05efcb4386f9123b..5490e8eaa0ce3aac38c2178a036c0e0f082e5978 100644 (file)
 extern char *progname;
 extern char *progclass;
 
-typedef struct saver_info saver_info;
-typedef struct saver_screen_info saver_screen_info;
-typedef struct passwd_dialog_data passwd_dialog_data;
-typedef struct splash_dialog_data splash_dialog_data;
-
 #undef countof
 #define countof(x) (sizeof((x))/sizeof((*x)))
 
-
-
-/* This structure holds all the data that applies to the program as a whole,
-   or to the non-screen-specific parts of the display connection.
-
-   The saver_preferences structure (prefs.h) holds all the user-specified
-   parameters, read from the command line, the resource database, or entered
-   through a dialog box.
- */
-struct saver_info {
-  char *version;
-  saver_preferences prefs;
-
-  int nscreens;
-  saver_screen_info *screens;
-  saver_screen_info *default_screen;   /* ...on which dialogs will appear. */
-
-
-  /* =======================================================================
-     global connection info
-     ======================================================================= */
-
-  XtAppContext app;
-  Display *dpy;
-
-  /* =======================================================================
-     server extension info
-     ======================================================================= */
-
-  Bool xinerama_p;                /* Whether Xinerama is in use.            */
-  Bool using_xidle_extension;     /* which extension is being used.         */
-  Bool using_mit_saver_extension;  /* Note that `p->use_*' is the *request*, */
-  Bool using_sgi_saver_extension;  /* and `si->using_*' is the *reality*.    */
-  Bool using_proc_interrupts;
-
-# ifdef HAVE_MIT_SAVER_EXTENSION
-  int mit_saver_ext_event_number;
-  int mit_saver_ext_error_number;
-# endif
-# ifdef HAVE_SGI_SAVER_EXTENSION
-  int sgi_saver_ext_event_number;
-  int sgi_saver_ext_error_number;
-# endif
-# ifdef HAVE_RANDR
-  int randr_event_number;
-  int randr_error_number;
-# endif
-
-
-  /* =======================================================================
-     blanking
-     ======================================================================= */
-
-  Bool screen_blanked_p;       /* Whether the saver is currently active. */
-  Window mouse_grab_window;    /* Window holding our mouse grab */
-  Window keyboard_grab_window; /* Window holding our keyboard grab */
-  int mouse_grab_screen;       /* The screen number the mouse grab is on */
-  int keyboard_grab_screen;    /* The screen number the keyboard grab is on */
-  Bool fading_possible_p;      /* Whether fading to/from black is possible. */
-  Bool throttled_p;             /* Whether we should temporarily just blank
-                                   the screen, not run hacks. (Deprecated:
-                                   users should use "xset dpms force off"
-                                   instead.) */
-  time_t blank_time;           /* The time at which the screen was blanked
-                                   (if currently blanked) or unblanked (if
-                                   not blanked.) */
-
-
-  /* =======================================================================
-     locking and runtime privileges
-     ======================================================================= */
-
-  Bool locked_p;               /* Whether the screen is currently locked. */
-  Bool dbox_up_p;              /* Whether the demo-mode or passwd dialogs
-                                  are currently visible */
-
-  Bool locking_disabled_p;     /* Sometimes locking is impossible. */
-  char *nolock_reason;         /* This is why. */
-
-  char *orig_uid;              /* What uid/gid we had at startup, before
-                                  discarding privileges. */
-  char *uid_message;           /* Any diagnostics from our attempt to
-                                  discard privileges (printed only in
-                                  -verbose mode.) */
-  Bool dangerous_uid_p;                /* Set to true if we're running as a user id
-                                  which is known to not be a normal, non-
-                                  privileged user. */
-
-  Window passwd_dialog;                /* The password dialog, if its up. */
-  passwd_dialog_data *pw_data; /* Other info necessary to draw it. */
-
-  int unlock_failures;         /* Counts failed login attempts while the
-                                  screen is locked. */
-
-  char *unlock_typeahead;      /* If the screen is locked, and the user types
-                                   a character, we assume that it is the first
-                                   character of the password.  It's stored here
-                                   for the password dialog to use to populate
-                                   itself. */
-
-
-  /* =======================================================================
-     demoing
-     ======================================================================= */
-
-  Bool demoing_p;              /* Whether we are demoing a single hack
-                                  (without UI.) */
-
-  Window splash_dialog;                /* The splash dialog, if its up. */
-  splash_dialog_data *sp_data; /* Other info necessary to draw it. */
-
-
-  /* =======================================================================
-     timers
-     ======================================================================= */
-
-  XtIntervalId lock_id;                /* Timer to implement `prefs.lock_timeout' */
-  XtIntervalId cycle_id;       /* Timer to implement `prefs.cycle' */
-  XtIntervalId timer_id;       /* Timer to implement `prefs.timeout' */
-  XtIntervalId watchdog_id;    /* Timer to implement `prefs.watchdog */
-  XtIntervalId check_pointer_timer_id; /* `prefs.pointer_timeout' */
-
-  XtIntervalId de_race_id;     /* Timer to make sure screen un-blanks */
-  int de_race_ticks;
-
-  time_t last_activity_time;              /* Used only when no server exts. */
-  time_t last_wall_clock_time;             /* Used to detect laptop suspend. */
-  saver_screen_info *last_activity_screen;
-
-  Bool emergency_lock_p;        /* Set when the wall clock has jumped
-                                   (presumably due to laptop suspend) and we
-                                   need to lock down right away instead of
-                                   waiting for the lock timer to go off. */
-
-
-  /* =======================================================================
-     remote control
-     ======================================================================= */
-
-  int selection_mode;          /* Set to -1 if the NEXT ClientMessage has just
-                                  been received; set to -2 if PREV has just
-                                  been received; set to N if SELECT or DEMO N
-                                  has been received.  (This is kind of nasty.)
-                                */
-
-  /* =======================================================================
-     subprocs
-     ======================================================================= */
-
-  XtIntervalId stderr_popup_timer;
-
-};
-
-
-/* This structure holds all the data that applies to the screen-specific parts
-   of the display connection; if the display has multiple screens, there will
-   be one of these for each screen.
- */
-struct saver_screen_info {
-  saver_info *global;
-
-  int number;                  /* The internal ordinal of this screen,
-                                   counting Xinerama rectangles as separate
-                                   screens. */
-  int real_screen_number;      /* The number of the underlying X screen on
-                                   which this rectangle lies. */
-  Screen *screen;              /* The X screen in question. */
-
-  int x, y, width, height;     /* The size and position of this rectangle
-                                   on its underlying X screen. */
-
-  Bool real_screen_p;          /* This will be true of exactly one ssi per
-                                   X screen. */
-
-  Widget toplevel_shell;
-
-  /* =======================================================================
-     blanking
-     ======================================================================= */
-
-  Window screensaver_window;   /* The window that will impersonate the root,
-                                  when the screensaver activates.  Note that
-                                  the window stored here may change, as we
-                                  destroy and recreate it on different
-                                  visuals. */
-  Colormap cmap;               /* The colormap that goes with the window. */
-  Bool install_cmap_p;         /* Whether this screen should have its own
-                                   colormap installed, for whichever of several
-                                   reasons.  This is definitive (even a false
-                                   value here overrides prefs->install_cmap_p.)
-                                 */
-  Visual *current_visual;      /* The visual of the window. */
-  int current_depth;           /* How deep the visual (and the window) are. */
-
-  Visual *default_visual;      /* visual to use when none other specified */
-  Visual *best_gl_visual;      /* visual to use for GL hacks */
-
-  Window real_vroot;           /* The original virtual-root window. */
-  Window real_vroot_value;     /* What was in the __SWM_VROOT property. */
-
-  Cursor cursor;               /* A blank cursor that goes with the
-                                  real root window. */
-  unsigned long black_pixel;   /* Black, allocated from `cmap'. */
-
-  int blank_vp_x, blank_vp_y;   /* Where the virtual-scrolling viewport was
-                                   when the screen went blank.  We need to
-                                   prevent the X server from letting the mouse
-                                   bump the edges to scroll while the screen
-                                   is locked, so we reset to this when it has
-                                   moved, and the lock dialog is up... */
-
-# ifdef HAVE_MIT_SAVER_EXTENSION
-  Window server_mit_saver_window;
-# endif
-
-
-  /* =======================================================================
-     demoing
-     ======================================================================= */
-
-  Colormap demo_cmap;          /* The colormap that goes with the dialogs:
-                                  this might be the same as `cmap' so care
-                                  must be taken not to free it while it's
-                                  still in use. */
-
-  /* =======================================================================
-     timers
-     ======================================================================= */
-
-  int poll_mouse_last_root_x;          /* Used only when no server exts. */
-  int poll_mouse_last_root_y;
-  Window poll_mouse_last_child;
-  unsigned int poll_mouse_last_mask;
-  time_t poll_mouse_last_time;
-
-
-  /* =======================================================================
-     subprocs
-     ======================================================================= */
-
-  int current_hack;            /* Index into `prefs.screenhacks' */
-  pid_t pid;
-
-  int stderr_text_x;
-  int stderr_text_y;
-  int stderr_line_height;
-  XFontStruct *stderr_font;
-  GC stderr_gc;
-  Window stderr_overlay_window;    /* Used if the server has overlay planes */
-  Colormap stderr_cmap;
-};
-
-
 \f
 
 /* =======================================================================
index 22afca50ee45df32f72ccbe20f0b2297b0f722b0..ae934eb05c040309adb1dbe1b861a7a8a2d44bfc 100644 (file)
@@ -110,7 +110,8 @@ SRCS                = attraction.c blitspin.c bouboule.c braid.c bubbles.c \
                  mismunch.c pacman.c pacman_ai.c pacman_level.c \
                  fuzzyflakes.c anemotaxis.c memscroller.c substrate.c \
                  intermomentary.c fireworkx.c fireworkx_mmx.S fiberlamp.c \
-                 boxfit.c interaggregate.c celtic.c
+                 boxfit.c interaggregate.c celtic.c webcollage-cocoa.m \
+                 webcollage-helper-cocoa.m
 SCRIPTS                = vidwhacker webcollage ljlatest
 
 # Programs that are mentioned in XScreenSaver.ad, and that have XML files,
@@ -147,7 +148,8 @@ OBJS                = attraction.o blitspin.o bouboule.o braid.o bubbles.o \
                  mismunch.o pacman.o pacman_ai.o pacman_level.o \
                  fuzzyflakes.o anemotaxis.o memscroller.o substrate.o \
                  intermomentary.o fireworkx.o fiberlamp.o boxfit.o \
-                 interaggregate.o celtic.o
+                 interaggregate.o celtic.o webcollage-cocoa.o \
+                 webcollage-helper-cocoa.o
 
 NEXES          = attraction blitspin bouboule braid bubbles decayscreen deco \
                  drift flag flame forest vines galaxy grav greynetic halo \
@@ -987,19 +989,58 @@ webcollage-helper: webcollage-helper.o
 analogtv.o: $(srcdir)/analogtv.h
 analogtv.o: ../config.h
 analogtv.o: $(srcdir)/images/6x10font.xbm
+analogtv.o: $(UTILS_SRC)/grabscreen.h
+analogtv.o: $(UTILS_SRC)/resources.h
+analogtv.o: $(UTILS_SRC)/utils.h
+analogtv.o: $(UTILS_SRC)/xshm.h
+analogtv.o: $(UTILS_SRC)/yarandom.h
 anemone.o: ../config.h
 anemone.o: $(srcdir)/screenhackI.h
 anemone.o: $(srcdir)/screenhack.h
+anemone.o: $(UTILS_SRC)/colors.h
+anemone.o: $(UTILS_SRC)/grabscreen.h
+anemone.o: $(UTILS_SRC)/hsv.h
+anemone.o: $(UTILS_SRC)/resources.h
+anemone.o: $(UTILS_SRC)/usleep.h
+anemone.o: $(UTILS_SRC)/visual.h
+anemone.o: $(UTILS_SRC)/xdbe.h
+anemone.o: $(UTILS_SRC)/yarandom.h
 anemotaxis.o: ../config.h
 anemotaxis.o: $(srcdir)/screenhackI.h
 anemotaxis.o: $(srcdir)/screenhack.h
+anemotaxis.o: $(UTILS_SRC)/colors.h
+anemotaxis.o: $(UTILS_SRC)/grabscreen.h
+anemotaxis.o: $(UTILS_SRC)/hsv.h
+anemotaxis.o: $(UTILS_SRC)/resources.h
+anemotaxis.o: $(UTILS_SRC)/usleep.h
+anemotaxis.o: $(UTILS_SRC)/visual.h
+anemotaxis.o: $(UTILS_SRC)/xdbe.h
+anemotaxis.o: $(UTILS_SRC)/yarandom.h
 ant.o: $(srcdir)/automata.h
 ant.o: ../config.h
 ant.o: $(srcdir)/screenhackI.h
+ant.o: $(UTILS_SRC)/colors.h
+ant.o: $(UTILS_SRC)/erase.h
+ant.o: $(UTILS_SRC)/grabscreen.h
+ant.o: $(UTILS_SRC)/hsv.h
+ant.o: $(UTILS_SRC)/resources.h
+ant.o: $(UTILS_SRC)/usleep.h
+ant.o: $(UTILS_SRC)/visual.h
+ant.o: $(UTILS_SRC)/xshm.h
+ant.o: $(UTILS_SRC)/yarandom.h
 ant.o: $(srcdir)/xlockmoreI.h
 ant.o: $(srcdir)/xlockmore.h
 apollonian.o: ../config.h
 apollonian.o: $(srcdir)/screenhackI.h
+apollonian.o: $(UTILS_SRC)/colors.h
+apollonian.o: $(UTILS_SRC)/erase.h
+apollonian.o: $(UTILS_SRC)/grabscreen.h
+apollonian.o: $(UTILS_SRC)/hsv.h
+apollonian.o: $(UTILS_SRC)/resources.h
+apollonian.o: $(UTILS_SRC)/usleep.h
+apollonian.o: $(UTILS_SRC)/visual.h
+apollonian.o: $(UTILS_SRC)/xshm.h
+apollonian.o: $(UTILS_SRC)/yarandom.h
 apollonian.o: $(srcdir)/xlockmoreI.h
 apollonian.o: $(srcdir)/xlockmore.h
 apple2-main.o: $(srcdir)/analogtv.h
@@ -1007,35 +1048,104 @@ apple2-main.o: $(srcdir)/apple2.h
 apple2-main.o: ../config.h
 apple2-main.o: $(srcdir)/screenhackI.h
 apple2-main.o: $(srcdir)/screenhack.h
+apple2-main.o: $(UTILS_SRC)/colors.h
+apple2-main.o: $(UTILS_SRC)/grabscreen.h
+apple2-main.o: $(UTILS_SRC)/hsv.h
+apple2-main.o: $(UTILS_SRC)/resources.h
+apple2-main.o: $(UTILS_SRC)/usleep.h
+apple2-main.o: $(UTILS_SRC)/visual.h
+apple2-main.o: $(UTILS_SRC)/xshm.h
+apple2-main.o: $(UTILS_SRC)/yarandom.h
 apple2.o: $(srcdir)/analogtv.h
 apple2.o: $(srcdir)/apple2.h
 apple2.o: ../config.h
 apple2.o: $(srcdir)/images/apple2font.xbm
 apple2.o: $(srcdir)/screenhackI.h
+apple2.o: $(UTILS_SRC)/colors.h
+apple2.o: $(UTILS_SRC)/grabscreen.h
+apple2.o: $(UTILS_SRC)/hsv.h
+apple2.o: $(UTILS_SRC)/resources.h
+apple2.o: $(UTILS_SRC)/usleep.h
+apple2.o: $(UTILS_SRC)/visual.h
+apple2.o: $(UTILS_SRC)/xshm.h
+apple2.o: $(UTILS_SRC)/yarandom.h
 attraction.o: ../config.h
 attraction.o: $(srcdir)/screenhackI.h
 attraction.o: $(srcdir)/screenhack.h
+attraction.o: $(UTILS_SRC)/colors.h
+attraction.o: $(UTILS_SRC)/grabscreen.h
+attraction.o: $(UTILS_SRC)/hsv.h
+attraction.o: $(UTILS_SRC)/resources.h
+attraction.o: $(UTILS_SRC)/spline.h
+attraction.o: $(UTILS_SRC)/usleep.h
+attraction.o: $(UTILS_SRC)/visual.h
+attraction.o: $(UTILS_SRC)/yarandom.h
 barcode.o: ../config.h
 barcode.o: $(srcdir)/screenhackI.h
 barcode.o: $(srcdir)/screenhack.h
+barcode.o: $(UTILS_SRC)/colors.h
+barcode.o: $(UTILS_SRC)/grabscreen.h
+barcode.o: $(UTILS_SRC)/hsv.h
+barcode.o: $(UTILS_SRC)/resources.h
+barcode.o: $(UTILS_SRC)/usleep.h
+barcode.o: $(UTILS_SRC)/visual.h
+barcode.o: $(UTILS_SRC)/yarandom.h
 blaster.o: ../config.h
 blaster.o: $(srcdir)/screenhackI.h
 blaster.o: $(srcdir)/screenhack.h
+blaster.o: $(UTILS_SRC)/colors.h
+blaster.o: $(UTILS_SRC)/grabscreen.h
+blaster.o: $(UTILS_SRC)/hsv.h
+blaster.o: $(UTILS_SRC)/resources.h
+blaster.o: $(UTILS_SRC)/usleep.h
+blaster.o: $(UTILS_SRC)/visual.h
+blaster.o: $(UTILS_SRC)/yarandom.h
 blitspin.o: ../config.h
 blitspin.o: $(srcdir)/images/som.xbm
 blitspin.o: $(srcdir)/screenhackI.h
 blitspin.o: $(srcdir)/screenhack.h
+blitspin.o: $(UTILS_SRC)/colors.h
+blitspin.o: $(UTILS_SRC)/grabscreen.h
+blitspin.o: $(UTILS_SRC)/hsv.h
+blitspin.o: $(UTILS_SRC)/resources.h
+blitspin.o: $(UTILS_SRC)/usleep.h
+blitspin.o: $(UTILS_SRC)/visual.h
+blitspin.o: $(UTILS_SRC)/yarandom.h
 blitspin.o: $(srcdir)/xpm-pixmap.h
 bouboule.o: ../config.h
 bouboule.o: $(srcdir)/screenhackI.h
+bouboule.o: $(UTILS_SRC)/colors.h
+bouboule.o: $(UTILS_SRC)/grabscreen.h
+bouboule.o: $(UTILS_SRC)/hsv.h
+bouboule.o: $(UTILS_SRC)/resources.h
+bouboule.o: $(UTILS_SRC)/usleep.h
+bouboule.o: $(UTILS_SRC)/visual.h
+bouboule.o: $(UTILS_SRC)/xshm.h
+bouboule.o: $(UTILS_SRC)/yarandom.h
 bouboule.o: $(srcdir)/xlockmoreI.h
 bouboule.o: $(srcdir)/xlockmore.h
 boxfit.o: ../config.h
 boxfit.o: $(srcdir)/screenhackI.h
 boxfit.o: $(srcdir)/screenhack.h
+boxfit.o: $(UTILS_SRC)/colors.h
+boxfit.o: $(UTILS_SRC)/grabscreen.h
+boxfit.o: $(UTILS_SRC)/hsv.h
+boxfit.o: $(UTILS_SRC)/resources.h
+boxfit.o: $(UTILS_SRC)/usleep.h
+boxfit.o: $(UTILS_SRC)/visual.h
+boxfit.o: $(UTILS_SRC)/yarandom.h
 boxfit.o: $(srcdir)/xpm-pixmap.h
 braid.o: ../config.h
 braid.o: $(srcdir)/screenhackI.h
+braid.o: $(UTILS_SRC)/colors.h
+braid.o: $(UTILS_SRC)/erase.h
+braid.o: $(UTILS_SRC)/grabscreen.h
+braid.o: $(UTILS_SRC)/hsv.h
+braid.o: $(UTILS_SRC)/resources.h
+braid.o: $(UTILS_SRC)/usleep.h
+braid.o: $(UTILS_SRC)/visual.h
+braid.o: $(UTILS_SRC)/xshm.h
+braid.o: $(UTILS_SRC)/yarandom.h
 braid.o: $(srcdir)/xlockmoreI.h
 braid.o: $(srcdir)/xlockmore.h
 bsod.o: $(srcdir)/analogtv.h
@@ -1046,8 +1156,18 @@ bsod.o: $(srcdir)/images/atari.xbm
 bsod.o: $(srcdir)/images/hmac.xpm
 bsod.o: $(srcdir)/images/macbomb.xbm
 bsod.o: $(srcdir)/images/mac.xbm
+bsod.o: $(srcdir)/images/osx_10_2.xpm
+bsod.o: $(srcdir)/images/osx_10_3.xpm
 bsod.o: $(srcdir)/screenhackI.h
 bsod.o: $(srcdir)/screenhack.h
+bsod.o: $(UTILS_SRC)/colors.h
+bsod.o: $(UTILS_SRC)/grabscreen.h
+bsod.o: $(UTILS_SRC)/hsv.h
+bsod.o: $(UTILS_SRC)/resources.h
+bsod.o: $(UTILS_SRC)/usleep.h
+bsod.o: $(UTILS_SRC)/visual.h
+bsod.o: $(UTILS_SRC)/xshm.h
+bsod.o: $(UTILS_SRC)/yarandom.h
 bsod.o: $(srcdir)/xpm-pixmap.h
 bubbles-default.o: $(srcdir)/bubbles.h
 bubbles-default.o: ../config.h
@@ -1095,229 +1215,728 @@ bubbles-default.o: $(srcdir)/images/bubbles/jade6.xpm
 bubbles-default.o: $(srcdir)/images/bubbles/jade7.xpm
 bubbles-default.o: $(srcdir)/images/bubbles/jade8.xpm
 bubbles-default.o: $(srcdir)/images/bubbles/jade9.xpm
+bubbles-default.o: $(UTILS_SRC)/yarandom.h
 bubbles.o: $(srcdir)/bubbles.h
 bubbles.o: ../config.h
 bubbles.o: $(srcdir)/screenhackI.h
 bubbles.o: $(srcdir)/screenhack.h
+bubbles.o: $(UTILS_SRC)/colors.h
+bubbles.o: $(UTILS_SRC)/grabscreen.h
+bubbles.o: $(UTILS_SRC)/hsv.h
+bubbles.o: $(UTILS_SRC)/resources.h
+bubbles.o: $(UTILS_SRC)/usleep.h
+bubbles.o: $(UTILS_SRC)/visual.h
+bubbles.o: $(UTILS_SRC)/yarandom.h
 bubbles.o: $(srcdir)/xpm-pixmap.h
 bumps.o: $(srcdir)/bumps.h
 bumps.o: ../config.h
 bumps.o: $(srcdir)/screenhackI.h
 bumps.o: $(srcdir)/screenhack.h
+bumps.o: $(UTILS_SRC)/colors.h
+bumps.o: $(UTILS_SRC)/grabscreen.h
+bumps.o: $(UTILS_SRC)/hsv.h
+bumps.o: $(UTILS_SRC)/resources.h
+bumps.o: $(UTILS_SRC)/usleep.h
+bumps.o: $(UTILS_SRC)/visual.h
+bumps.o: $(UTILS_SRC)/yarandom.h
 ccurve.o: ../config.h
 ccurve.o: $(srcdir)/screenhackI.h
 ccurve.o: $(srcdir)/screenhack.h
+ccurve.o: $(UTILS_SRC)/colors.h
+ccurve.o: $(UTILS_SRC)/erase.h
+ccurve.o: $(UTILS_SRC)/grabscreen.h
+ccurve.o: $(UTILS_SRC)/hsv.h
+ccurve.o: $(UTILS_SRC)/resources.h
+ccurve.o: $(UTILS_SRC)/usleep.h
+ccurve.o: $(UTILS_SRC)/visual.h
+ccurve.o: $(UTILS_SRC)/yarandom.h
 celtic.o: ../config.h
 celtic.o: $(srcdir)/screenhackI.h
 celtic.o: $(srcdir)/screenhack.h
+celtic.o: $(UTILS_SRC)/colors.h
+celtic.o: $(UTILS_SRC)/erase.h
+celtic.o: $(UTILS_SRC)/grabscreen.h
+celtic.o: $(UTILS_SRC)/hsv.h
+celtic.o: $(UTILS_SRC)/resources.h
+celtic.o: $(UTILS_SRC)/usleep.h
+celtic.o: $(UTILS_SRC)/visual.h
+celtic.o: $(UTILS_SRC)/yarandom.h
 cloudlife.o: ../config.h
 cloudlife.o: $(srcdir)/screenhackI.h
 cloudlife.o: $(srcdir)/screenhack.h
+cloudlife.o: $(UTILS_SRC)/colors.h
+cloudlife.o: $(UTILS_SRC)/grabscreen.h
+cloudlife.o: $(UTILS_SRC)/hsv.h
+cloudlife.o: $(UTILS_SRC)/resources.h
+cloudlife.o: $(UTILS_SRC)/usleep.h
+cloudlife.o: $(UTILS_SRC)/visual.h
+cloudlife.o: $(UTILS_SRC)/yarandom.h
 compass.o: ../config.h
 compass.o: $(srcdir)/screenhackI.h
 compass.o: $(srcdir)/screenhack.h
+compass.o: $(UTILS_SRC)/colors.h
+compass.o: $(UTILS_SRC)/grabscreen.h
+compass.o: $(UTILS_SRC)/hsv.h
+compass.o: $(UTILS_SRC)/resources.h
+compass.o: $(UTILS_SRC)/usleep.h
+compass.o: $(UTILS_SRC)/visual.h
+compass.o: $(UTILS_SRC)/xdbe.h
+compass.o: $(UTILS_SRC)/yarandom.h
 coral.o: ../config.h
 coral.o: $(srcdir)/screenhackI.h
 coral.o: $(srcdir)/screenhack.h
+coral.o: $(UTILS_SRC)/colors.h
+coral.o: $(UTILS_SRC)/erase.h
+coral.o: $(UTILS_SRC)/grabscreen.h
+coral.o: $(UTILS_SRC)/hsv.h
+coral.o: $(UTILS_SRC)/resources.h
+coral.o: $(UTILS_SRC)/usleep.h
+coral.o: $(UTILS_SRC)/visual.h
+coral.o: $(UTILS_SRC)/yarandom.h
 critical.o: ../config.h
 critical.o: $(srcdir)/screenhackI.h
 critical.o: $(srcdir)/screenhack.h
+critical.o: $(UTILS_SRC)/colors.h
+critical.o: $(UTILS_SRC)/erase.h
+critical.o: $(UTILS_SRC)/grabscreen.h
+critical.o: $(UTILS_SRC)/hsv.h
+critical.o: $(UTILS_SRC)/resources.h
+critical.o: $(UTILS_SRC)/usleep.h
+critical.o: $(UTILS_SRC)/visual.h
+critical.o: $(UTILS_SRC)/yarandom.h
 crystal.o: ../config.h
 crystal.o: $(srcdir)/screenhackI.h
+crystal.o: $(UTILS_SRC)/colors.h
+crystal.o: $(UTILS_SRC)/grabscreen.h
+crystal.o: $(UTILS_SRC)/hsv.h
+crystal.o: $(UTILS_SRC)/resources.h
+crystal.o: $(UTILS_SRC)/usleep.h
+crystal.o: $(UTILS_SRC)/visual.h
+crystal.o: $(UTILS_SRC)/xshm.h
+crystal.o: $(UTILS_SRC)/yarandom.h
 crystal.o: $(srcdir)/xlockmoreI.h
 crystal.o: $(srcdir)/xlockmore.h
 cynosure.o: ../config.h
 cynosure.o: $(srcdir)/screenhackI.h
 cynosure.o: $(srcdir)/screenhack.h
+cynosure.o: $(UTILS_SRC)/colors.h
+cynosure.o: $(UTILS_SRC)/grabscreen.h
+cynosure.o: $(UTILS_SRC)/hsv.h
+cynosure.o: $(UTILS_SRC)/resources.h
+cynosure.o: $(UTILS_SRC)/usleep.h
+cynosure.o: $(UTILS_SRC)/visual.h
+cynosure.o: $(UTILS_SRC)/yarandom.h
 decayscreen.o: ../config.h
 decayscreen.o: $(srcdir)/screenhackI.h
 decayscreen.o: $(srcdir)/screenhack.h
+decayscreen.o: $(UTILS_SRC)/colors.h
+decayscreen.o: $(UTILS_SRC)/grabscreen.h
+decayscreen.o: $(UTILS_SRC)/hsv.h
+decayscreen.o: $(UTILS_SRC)/resources.h
+decayscreen.o: $(UTILS_SRC)/usleep.h
+decayscreen.o: $(UTILS_SRC)/visual.h
+decayscreen.o: $(UTILS_SRC)/yarandom.h
 deco.o: ../config.h
 deco.o: $(srcdir)/screenhackI.h
 deco.o: $(srcdir)/screenhack.h
+deco.o: $(UTILS_SRC)/colors.h
+deco.o: $(UTILS_SRC)/grabscreen.h
+deco.o: $(UTILS_SRC)/hsv.h
+deco.o: $(UTILS_SRC)/resources.h
+deco.o: $(UTILS_SRC)/usleep.h
+deco.o: $(UTILS_SRC)/visual.h
+deco.o: $(UTILS_SRC)/yarandom.h
 deluxe.o: ../config.h
 deluxe.o: $(srcdir)/screenhackI.h
 deluxe.o: $(srcdir)/screenhack.h
+deluxe.o: $(UTILS_SRC)/alpha.h
+deluxe.o: $(UTILS_SRC)/colors.h
+deluxe.o: $(UTILS_SRC)/grabscreen.h
+deluxe.o: $(UTILS_SRC)/hsv.h
+deluxe.o: $(UTILS_SRC)/resources.h
+deluxe.o: $(UTILS_SRC)/usleep.h
+deluxe.o: $(UTILS_SRC)/visual.h
+deluxe.o: $(UTILS_SRC)/xdbe.h
+deluxe.o: $(UTILS_SRC)/yarandom.h
 demon.o: $(srcdir)/automata.h
 demon.o: ../config.h
 demon.o: $(srcdir)/screenhackI.h
+demon.o: $(UTILS_SRC)/colors.h
+demon.o: $(UTILS_SRC)/grabscreen.h
+demon.o: $(UTILS_SRC)/hsv.h
+demon.o: $(UTILS_SRC)/resources.h
+demon.o: $(UTILS_SRC)/usleep.h
+demon.o: $(UTILS_SRC)/visual.h
+demon.o: $(UTILS_SRC)/xshm.h
+demon.o: $(UTILS_SRC)/yarandom.h
 demon.o: $(srcdir)/xlockmoreI.h
 demon.o: $(srcdir)/xlockmore.h
 discrete.o: ../config.h
 discrete.o: $(srcdir)/screenhackI.h
+discrete.o: $(UTILS_SRC)/colors.h
+discrete.o: $(UTILS_SRC)/erase.h
+discrete.o: $(UTILS_SRC)/grabscreen.h
+discrete.o: $(UTILS_SRC)/hsv.h
+discrete.o: $(UTILS_SRC)/resources.h
+discrete.o: $(UTILS_SRC)/usleep.h
+discrete.o: $(UTILS_SRC)/visual.h
+discrete.o: $(UTILS_SRC)/xshm.h
+discrete.o: $(UTILS_SRC)/yarandom.h
 discrete.o: $(srcdir)/xlockmoreI.h
 discrete.o: $(srcdir)/xlockmore.h
 distort.o: ../config.h
 distort.o: $(srcdir)/screenhackI.h
 distort.o: $(srcdir)/screenhack.h
+distort.o: $(UTILS_SRC)/colors.h
+distort.o: $(UTILS_SRC)/grabscreen.h
+distort.o: $(UTILS_SRC)/hsv.h
+distort.o: $(UTILS_SRC)/resources.h
+distort.o: $(UTILS_SRC)/usleep.h
+distort.o: $(UTILS_SRC)/visual.h
+distort.o: $(UTILS_SRC)/yarandom.h
 drift.o: ../config.h
 drift.o: $(srcdir)/screenhackI.h
+drift.o: $(UTILS_SRC)/colors.h
+drift.o: $(UTILS_SRC)/erase.h
+drift.o: $(UTILS_SRC)/grabscreen.h
+drift.o: $(UTILS_SRC)/hsv.h
+drift.o: $(UTILS_SRC)/resources.h
+drift.o: $(UTILS_SRC)/usleep.h
+drift.o: $(UTILS_SRC)/visual.h
+drift.o: $(UTILS_SRC)/xshm.h
+drift.o: $(UTILS_SRC)/yarandom.h
 drift.o: $(srcdir)/xlockmoreI.h
 drift.o: $(srcdir)/xlockmore.h
 epicycle.o: ../config.h
 epicycle.o: $(srcdir)/screenhackI.h
 epicycle.o: $(srcdir)/screenhack.h
+epicycle.o: $(UTILS_SRC)/colors.h
+epicycle.o: $(UTILS_SRC)/erase.h
+epicycle.o: $(UTILS_SRC)/grabscreen.h
+epicycle.o: $(UTILS_SRC)/hsv.h
+epicycle.o: $(UTILS_SRC)/resources.h
+epicycle.o: $(UTILS_SRC)/usleep.h
+epicycle.o: $(UTILS_SRC)/visual.h
+epicycle.o: $(UTILS_SRC)/yarandom.h
 eruption.o: ../config.h
 eruption.o: $(srcdir)/screenhackI.h
 eruption.o: $(srcdir)/screenhack.h
+eruption.o: $(UTILS_SRC)/colors.h
+eruption.o: $(UTILS_SRC)/grabscreen.h
+eruption.o: $(UTILS_SRC)/hsv.h
+eruption.o: $(UTILS_SRC)/resources.h
+eruption.o: $(UTILS_SRC)/usleep.h
+eruption.o: $(UTILS_SRC)/visual.h
+eruption.o: $(UTILS_SRC)/yarandom.h
 euler2d.o: ../config.h
 euler2d.o: $(srcdir)/screenhackI.h
+euler2d.o: $(UTILS_SRC)/colors.h
+euler2d.o: $(UTILS_SRC)/grabscreen.h
+euler2d.o: $(UTILS_SRC)/hsv.h
+euler2d.o: $(UTILS_SRC)/resources.h
+euler2d.o: $(UTILS_SRC)/usleep.h
+euler2d.o: $(UTILS_SRC)/visual.h
+euler2d.o: $(UTILS_SRC)/xshm.h
+euler2d.o: $(UTILS_SRC)/yarandom.h
 euler2d.o: $(srcdir)/xlockmoreI.h
 euler2d.o: $(srcdir)/xlockmore.h
 fadeplot.o: ../config.h
 fadeplot.o: $(srcdir)/screenhackI.h
+fadeplot.o: $(UTILS_SRC)/colors.h
+fadeplot.o: $(UTILS_SRC)/grabscreen.h
+fadeplot.o: $(UTILS_SRC)/hsv.h
+fadeplot.o: $(UTILS_SRC)/resources.h
+fadeplot.o: $(UTILS_SRC)/usleep.h
+fadeplot.o: $(UTILS_SRC)/visual.h
+fadeplot.o: $(UTILS_SRC)/xshm.h
+fadeplot.o: $(UTILS_SRC)/yarandom.h
 fadeplot.o: $(srcdir)/xlockmoreI.h
 fadeplot.o: $(srcdir)/xlockmore.h
 fiberlamp.o: ../config.h
 fiberlamp.o: $(srcdir)/screenhackI.h
+fiberlamp.o: $(UTILS_SRC)/colors.h
+fiberlamp.o: $(UTILS_SRC)/grabscreen.h
+fiberlamp.o: $(UTILS_SRC)/hsv.h
+fiberlamp.o: $(UTILS_SRC)/resources.h
+fiberlamp.o: $(UTILS_SRC)/usleep.h
+fiberlamp.o: $(UTILS_SRC)/visual.h
+fiberlamp.o: $(UTILS_SRC)/xshm.h
+fiberlamp.o: $(UTILS_SRC)/yarandom.h
 fiberlamp.o: $(srcdir)/xlockmoreI.h
 fiberlamp.o: $(srcdir)/xlockmore.h
 fireworkx.o: ../config.h
 fireworkx.o: $(srcdir)/screenhackI.h
 fireworkx.o: $(srcdir)/screenhack.h
+fireworkx.o: $(UTILS_SRC)/colors.h
+fireworkx.o: $(UTILS_SRC)/grabscreen.h
+fireworkx.o: $(UTILS_SRC)/hsv.h
+fireworkx.o: $(UTILS_SRC)/resources.h
+fireworkx.o: $(UTILS_SRC)/usleep.h
+fireworkx.o: $(UTILS_SRC)/visual.h
+fireworkx.o: $(UTILS_SRC)/yarandom.h
 flag.o: ../config.h
 flag.o: $(srcdir)/images/bob.xbm
 flag.o: $(srcdir)/screenhackI.h
+flag.o: $(UTILS_SRC)/colors.h
+flag.o: $(UTILS_SRC)/grabscreen.h
+flag.o: $(UTILS_SRC)/hsv.h
+flag.o: $(UTILS_SRC)/resources.h
+flag.o: $(UTILS_SRC)/usleep.h
+flag.o: $(UTILS_SRC)/visual.h
+flag.o: $(UTILS_SRC)/xshm.h
+flag.o: $(UTILS_SRC)/yarandom.h
 flag.o: $(srcdir)/xlockmoreI.h
 flag.o: $(srcdir)/xlockmore.h
 flag.o: $(srcdir)/xpm-pixmap.h
 flame.o: ../config.h
 flame.o: $(srcdir)/screenhackI.h
 flame.o: $(srcdir)/screenhack.h
+flame.o: $(UTILS_SRC)/colors.h
+flame.o: $(UTILS_SRC)/grabscreen.h
+flame.o: $(UTILS_SRC)/hsv.h
+flame.o: $(UTILS_SRC)/resources.h
+flame.o: $(UTILS_SRC)/usleep.h
+flame.o: $(UTILS_SRC)/visual.h
+flame.o: $(UTILS_SRC)/yarandom.h
 flow.o: ../config.h
 flow.o: $(srcdir)/screenhackI.h
+flow.o: $(UTILS_SRC)/colors.h
+flow.o: $(UTILS_SRC)/grabscreen.h
+flow.o: $(UTILS_SRC)/hsv.h
+flow.o: $(UTILS_SRC)/resources.h
+flow.o: $(UTILS_SRC)/usleep.h
+flow.o: $(UTILS_SRC)/visual.h
+flow.o: $(UTILS_SRC)/xshm.h
+flow.o: $(UTILS_SRC)/yarandom.h
 flow.o: $(srcdir)/xlockmoreI.h
 flow.o: $(srcdir)/xlockmore.h
 fluidballs.o: ../config.h
 fluidballs.o: $(srcdir)/screenhackI.h
 fluidballs.o: $(srcdir)/screenhack.h
+fluidballs.o: $(UTILS_SRC)/colors.h
+fluidballs.o: $(UTILS_SRC)/grabscreen.h
+fluidballs.o: $(UTILS_SRC)/hsv.h
+fluidballs.o: $(UTILS_SRC)/resources.h
+fluidballs.o: $(UTILS_SRC)/usleep.h
+fluidballs.o: $(UTILS_SRC)/visual.h
+fluidballs.o: $(UTILS_SRC)/xdbe.h
+fluidballs.o: $(UTILS_SRC)/yarandom.h
 fontglide.o: ../config.h
 fontglide.o: $(srcdir)/screenhackI.h
 fontglide.o: $(srcdir)/screenhack.h
+fontglide.o: $(UTILS_SRC)/colors.h
+fontglide.o: $(UTILS_SRC)/grabscreen.h
+fontglide.o: $(UTILS_SRC)/hsv.h
+fontglide.o: $(UTILS_SRC)/resources.h
+fontglide.o: $(UTILS_SRC)/usleep.h
+fontglide.o: $(UTILS_SRC)/visual.h
+fontglide.o: $(UTILS_SRC)/xdbe.h
+fontglide.o: $(UTILS_SRC)/yarandom.h
 forest.o: ../config.h
 forest.o: $(srcdir)/screenhackI.h
+forest.o: $(UTILS_SRC)/colors.h
+forest.o: $(UTILS_SRC)/grabscreen.h
+forest.o: $(UTILS_SRC)/hsv.h
+forest.o: $(UTILS_SRC)/resources.h
+forest.o: $(UTILS_SRC)/usleep.h
+forest.o: $(UTILS_SRC)/visual.h
+forest.o: $(UTILS_SRC)/xshm.h
+forest.o: $(UTILS_SRC)/yarandom.h
 forest.o: $(srcdir)/xlockmoreI.h
 forest.o: $(srcdir)/xlockmore.h
 fuzzyflakes.o: ../config.h
 fuzzyflakes.o: $(srcdir)/screenhackI.h
 fuzzyflakes.o: $(srcdir)/screenhack.h
+fuzzyflakes.o: $(UTILS_SRC)/colors.h
+fuzzyflakes.o: $(UTILS_SRC)/grabscreen.h
+fuzzyflakes.o: $(UTILS_SRC)/hsv.h
+fuzzyflakes.o: $(UTILS_SRC)/resources.h
+fuzzyflakes.o: $(UTILS_SRC)/usleep.h
+fuzzyflakes.o: $(UTILS_SRC)/visual.h
+fuzzyflakes.o: $(UTILS_SRC)/yarandom.h
 galaxy.o: ../config.h
 galaxy.o: $(srcdir)/screenhackI.h
+galaxy.o: $(UTILS_SRC)/colors.h
+galaxy.o: $(UTILS_SRC)/grabscreen.h
+galaxy.o: $(UTILS_SRC)/hsv.h
+galaxy.o: $(UTILS_SRC)/resources.h
+galaxy.o: $(UTILS_SRC)/usleep.h
+galaxy.o: $(UTILS_SRC)/visual.h
+galaxy.o: $(UTILS_SRC)/xshm.h
+galaxy.o: $(UTILS_SRC)/yarandom.h
 galaxy.o: $(srcdir)/xlockmoreI.h
 galaxy.o: $(srcdir)/xlockmore.h
 goop.o: ../config.h
 goop.o: $(srcdir)/screenhackI.h
 goop.o: $(srcdir)/screenhack.h
+goop.o: $(UTILS_SRC)/alpha.h
+goop.o: $(UTILS_SRC)/colors.h
+goop.o: $(UTILS_SRC)/grabscreen.h
+goop.o: $(UTILS_SRC)/hsv.h
+goop.o: $(UTILS_SRC)/resources.h
+goop.o: $(UTILS_SRC)/spline.h
+goop.o: $(UTILS_SRC)/usleep.h
+goop.o: $(UTILS_SRC)/visual.h
+goop.o: $(UTILS_SRC)/yarandom.h
 grav.o: ../config.h
 grav.o: $(srcdir)/screenhackI.h
+grav.o: $(UTILS_SRC)/colors.h
+grav.o: $(UTILS_SRC)/grabscreen.h
+grav.o: $(UTILS_SRC)/hsv.h
+grav.o: $(UTILS_SRC)/resources.h
+grav.o: $(UTILS_SRC)/usleep.h
+grav.o: $(UTILS_SRC)/visual.h
+grav.o: $(UTILS_SRC)/xshm.h
+grav.o: $(UTILS_SRC)/yarandom.h
 grav.o: $(srcdir)/xlockmoreI.h
 grav.o: $(srcdir)/xlockmore.h
 greynetic.o: ../config.h
 greynetic.o: $(srcdir)/screenhackI.h
 greynetic.o: $(srcdir)/screenhack.h
+greynetic.o: $(UTILS_SRC)/colors.h
+greynetic.o: $(UTILS_SRC)/grabscreen.h
+greynetic.o: $(UTILS_SRC)/hsv.h
+greynetic.o: $(UTILS_SRC)/resources.h
+greynetic.o: $(UTILS_SRC)/usleep.h
+greynetic.o: $(UTILS_SRC)/visual.h
+greynetic.o: $(UTILS_SRC)/yarandom.h
 halftone.o: ../config.h
 halftone.o: $(srcdir)/screenhackI.h
 halftone.o: $(srcdir)/screenhack.h
+halftone.o: $(UTILS_SRC)/colors.h
+halftone.o: $(UTILS_SRC)/grabscreen.h
+halftone.o: $(UTILS_SRC)/hsv.h
+halftone.o: $(UTILS_SRC)/resources.h
+halftone.o: $(UTILS_SRC)/usleep.h
+halftone.o: $(UTILS_SRC)/visual.h
+halftone.o: $(UTILS_SRC)/yarandom.h
 halo.o: ../config.h
 halo.o: $(srcdir)/screenhackI.h
 halo.o: $(srcdir)/screenhack.h
+halo.o: $(UTILS_SRC)/colors.h
+halo.o: $(UTILS_SRC)/grabscreen.h
+halo.o: $(UTILS_SRC)/hsv.h
+halo.o: $(UTILS_SRC)/resources.h
+halo.o: $(UTILS_SRC)/usleep.h
+halo.o: $(UTILS_SRC)/visual.h
+halo.o: $(UTILS_SRC)/yarandom.h
 helix.o: ../config.h
 helix.o: $(srcdir)/screenhackI.h
 helix.o: $(srcdir)/screenhack.h
+helix.o: $(UTILS_SRC)/colors.h
+helix.o: $(UTILS_SRC)/erase.h
+helix.o: $(UTILS_SRC)/grabscreen.h
+helix.o: $(UTILS_SRC)/hsv.h
+helix.o: $(UTILS_SRC)/resources.h
+helix.o: $(UTILS_SRC)/usleep.h
+helix.o: $(UTILS_SRC)/visual.h
+helix.o: $(UTILS_SRC)/yarandom.h
 hopalong.o: ../config.h
 hopalong.o: $(srcdir)/screenhackI.h
+hopalong.o: $(UTILS_SRC)/colors.h
+hopalong.o: $(UTILS_SRC)/erase.h
+hopalong.o: $(UTILS_SRC)/grabscreen.h
+hopalong.o: $(UTILS_SRC)/hsv.h
+hopalong.o: $(UTILS_SRC)/resources.h
+hopalong.o: $(UTILS_SRC)/usleep.h
+hopalong.o: $(UTILS_SRC)/visual.h
+hopalong.o: $(UTILS_SRC)/xshm.h
+hopalong.o: $(UTILS_SRC)/yarandom.h
 hopalong.o: $(srcdir)/xlockmoreI.h
 hopalong.o: $(srcdir)/xlockmore.h
 hyperball.o: ../config.h
 hyperball.o: $(srcdir)/screenhackI.h
 hyperball.o: $(srcdir)/screenhack.h
+hyperball.o: $(UTILS_SRC)/colors.h
+hyperball.o: $(UTILS_SRC)/grabscreen.h
+hyperball.o: $(UTILS_SRC)/hsv.h
+hyperball.o: $(UTILS_SRC)/resources.h
+hyperball.o: $(UTILS_SRC)/usleep.h
+hyperball.o: $(UTILS_SRC)/visual.h
+hyperball.o: $(UTILS_SRC)/yarandom.h
 hypercube.o: ../config.h
 hypercube.o: $(srcdir)/screenhackI.h
 hypercube.o: $(srcdir)/screenhack.h
+hypercube.o: $(UTILS_SRC)/colors.h
+hypercube.o: $(UTILS_SRC)/grabscreen.h
+hypercube.o: $(UTILS_SRC)/hsv.h
+hypercube.o: $(UTILS_SRC)/resources.h
+hypercube.o: $(UTILS_SRC)/usleep.h
+hypercube.o: $(UTILS_SRC)/visual.h
+hypercube.o: $(UTILS_SRC)/yarandom.h
 ifs.o: ../config.h
 ifs.o: $(srcdir)/screenhackI.h
 ifs.o: $(srcdir)/screenhack.h
+ifs.o: $(UTILS_SRC)/colors.h
+ifs.o: $(UTILS_SRC)/grabscreen.h
+ifs.o: $(UTILS_SRC)/hsv.h
+ifs.o: $(UTILS_SRC)/resources.h
+ifs.o: $(UTILS_SRC)/usleep.h
+ifs.o: $(UTILS_SRC)/visual.h
+ifs.o: $(UTILS_SRC)/yarandom.h
 imsmap.o: ../config.h
 imsmap.o: $(srcdir)/screenhackI.h
 imsmap.o: $(srcdir)/screenhack.h
+imsmap.o: $(UTILS_SRC)/colors.h
+imsmap.o: $(UTILS_SRC)/grabscreen.h
+imsmap.o: $(UTILS_SRC)/hsv.h
+imsmap.o: $(UTILS_SRC)/resources.h
+imsmap.o: $(UTILS_SRC)/usleep.h
+imsmap.o: $(UTILS_SRC)/visual.h
+imsmap.o: $(UTILS_SRC)/yarandom.h
 interaggregate.o: ../config.h
 interaggregate.o: $(srcdir)/screenhackI.h
 interaggregate.o: $(srcdir)/screenhack.h
+interaggregate.o: $(UTILS_SRC)/colors.h
+interaggregate.o: $(UTILS_SRC)/grabscreen.h
+interaggregate.o: $(UTILS_SRC)/hsv.h
+interaggregate.o: $(UTILS_SRC)/resources.h
+interaggregate.o: $(UTILS_SRC)/usleep.h
+interaggregate.o: $(UTILS_SRC)/visual.h
+interaggregate.o: $(UTILS_SRC)/yarandom.h
 interference.o: ../config.h
 interference.o: $(srcdir)/screenhackI.h
 interference.o: $(srcdir)/screenhack.h
+interference.o: $(UTILS_SRC)/colors.h
+interference.o: $(UTILS_SRC)/grabscreen.h
+interference.o: $(UTILS_SRC)/hsv.h
+interference.o: $(UTILS_SRC)/resources.h
+interference.o: $(UTILS_SRC)/usleep.h
+interference.o: $(UTILS_SRC)/visual.h
+interference.o: $(UTILS_SRC)/xdbe.h
+interference.o: $(UTILS_SRC)/yarandom.h
 intermomentary.o: ../config.h
 intermomentary.o: $(srcdir)/screenhackI.h
 intermomentary.o: $(srcdir)/screenhack.h
+intermomentary.o: $(UTILS_SRC)/colors.h
+intermomentary.o: $(UTILS_SRC)/grabscreen.h
+intermomentary.o: $(UTILS_SRC)/hsv.h
+intermomentary.o: $(UTILS_SRC)/resources.h
+intermomentary.o: $(UTILS_SRC)/usleep.h
+intermomentary.o: $(UTILS_SRC)/visual.h
+intermomentary.o: $(UTILS_SRC)/yarandom.h
 jigsaw.o: ../config.h
 jigsaw.o: $(srcdir)/screenhackI.h
 jigsaw.o: $(srcdir)/screenhack.h
+jigsaw.o: $(UTILS_SRC)/colors.h
+jigsaw.o: $(UTILS_SRC)/grabscreen.h
+jigsaw.o: $(UTILS_SRC)/hsv.h
+jigsaw.o: $(UTILS_SRC)/resources.h
+jigsaw.o: $(UTILS_SRC)/spline.h
+jigsaw.o: $(UTILS_SRC)/usleep.h
+jigsaw.o: $(UTILS_SRC)/visual.h
+jigsaw.o: $(UTILS_SRC)/yarandom.h
 juggle.o: ../config.h
 juggle.o: $(srcdir)/screenhackI.h
+juggle.o: $(UTILS_SRC)/colors.h
+juggle.o: $(UTILS_SRC)/grabscreen.h
+juggle.o: $(UTILS_SRC)/hsv.h
+juggle.o: $(UTILS_SRC)/resources.h
+juggle.o: $(UTILS_SRC)/usleep.h
+juggle.o: $(UTILS_SRC)/visual.h
+juggle.o: $(UTILS_SRC)/xshm.h
+juggle.o: $(UTILS_SRC)/yarandom.h
 juggle.o: $(srcdir)/xlockmoreI.h
 juggle.o: $(srcdir)/xlockmore.h
 julia.o: ../config.h
 julia.o: $(srcdir)/screenhackI.h
+julia.o: $(UTILS_SRC)/colors.h
+julia.o: $(UTILS_SRC)/grabscreen.h
+julia.o: $(UTILS_SRC)/hsv.h
+julia.o: $(UTILS_SRC)/resources.h
+julia.o: $(UTILS_SRC)/usleep.h
+julia.o: $(UTILS_SRC)/visual.h
+julia.o: $(UTILS_SRC)/xshm.h
+julia.o: $(UTILS_SRC)/yarandom.h
 julia.o: $(srcdir)/xlockmoreI.h
 julia.o: $(srcdir)/xlockmore.h
 kaleidescope.o: ../config.h
 kaleidescope.o: $(srcdir)/screenhackI.h
 kaleidescope.o: $(srcdir)/screenhack.h
+kaleidescope.o: $(UTILS_SRC)/colors.h
+kaleidescope.o: $(UTILS_SRC)/grabscreen.h
+kaleidescope.o: $(UTILS_SRC)/hsv.h
+kaleidescope.o: $(UTILS_SRC)/resources.h
+kaleidescope.o: $(UTILS_SRC)/spline.h
+kaleidescope.o: $(UTILS_SRC)/usleep.h
+kaleidescope.o: $(UTILS_SRC)/visual.h
+kaleidescope.o: $(UTILS_SRC)/yarandom.h
 kumppa.o: ../config.h
 kumppa.o: $(srcdir)/screenhackI.h
 kumppa.o: $(srcdir)/screenhack.h
+kumppa.o: $(UTILS_SRC)/colors.h
+kumppa.o: $(UTILS_SRC)/grabscreen.h
+kumppa.o: $(UTILS_SRC)/hsv.h
+kumppa.o: $(UTILS_SRC)/resources.h
+kumppa.o: $(UTILS_SRC)/usleep.h
+kumppa.o: $(UTILS_SRC)/visual.h
+kumppa.o: $(UTILS_SRC)/xdbe.h
+kumppa.o: $(UTILS_SRC)/yarandom.h
 laser.o: ../config.h
 laser.o: $(srcdir)/screenhackI.h
+laser.o: $(UTILS_SRC)/colors.h
+laser.o: $(UTILS_SRC)/grabscreen.h
+laser.o: $(UTILS_SRC)/hsv.h
+laser.o: $(UTILS_SRC)/resources.h
+laser.o: $(UTILS_SRC)/usleep.h
+laser.o: $(UTILS_SRC)/visual.h
+laser.o: $(UTILS_SRC)/xshm.h
+laser.o: $(UTILS_SRC)/yarandom.h
 laser.o: $(srcdir)/xlockmoreI.h
 laser.o: $(srcdir)/xlockmore.h
 lightning.o: ../config.h
 lightning.o: $(srcdir)/screenhackI.h
+lightning.o: $(UTILS_SRC)/colors.h
+lightning.o: $(UTILS_SRC)/grabscreen.h
+lightning.o: $(UTILS_SRC)/hsv.h
+lightning.o: $(UTILS_SRC)/resources.h
+lightning.o: $(UTILS_SRC)/usleep.h
+lightning.o: $(UTILS_SRC)/visual.h
+lightning.o: $(UTILS_SRC)/xshm.h
+lightning.o: $(UTILS_SRC)/yarandom.h
 lightning.o: $(srcdir)/xlockmoreI.h
 lightning.o: $(srcdir)/xlockmore.h
 lisa.o: ../config.h
 lisa.o: $(srcdir)/screenhackI.h
+lisa.o: $(UTILS_SRC)/colors.h
+lisa.o: $(UTILS_SRC)/grabscreen.h
+lisa.o: $(UTILS_SRC)/hsv.h
+lisa.o: $(UTILS_SRC)/resources.h
+lisa.o: $(UTILS_SRC)/usleep.h
+lisa.o: $(UTILS_SRC)/visual.h
+lisa.o: $(UTILS_SRC)/xshm.h
+lisa.o: $(UTILS_SRC)/yarandom.h
 lisa.o: $(srcdir)/xlockmoreI.h
 lisa.o: $(srcdir)/xlockmore.h
 lissie.o: ../config.h
 lissie.o: $(srcdir)/screenhackI.h
+lissie.o: $(UTILS_SRC)/colors.h
+lissie.o: $(UTILS_SRC)/grabscreen.h
+lissie.o: $(UTILS_SRC)/hsv.h
+lissie.o: $(UTILS_SRC)/resources.h
+lissie.o: $(UTILS_SRC)/usleep.h
+lissie.o: $(UTILS_SRC)/visual.h
+lissie.o: $(UTILS_SRC)/xshm.h
+lissie.o: $(UTILS_SRC)/yarandom.h
 lissie.o: $(srcdir)/xlockmoreI.h
 lissie.o: $(srcdir)/xlockmore.h
 lmorph.o: ../config.h
 lmorph.o: $(srcdir)/screenhackI.h
 lmorph.o: $(srcdir)/screenhack.h
+lmorph.o: $(UTILS_SRC)/colors.h
+lmorph.o: $(UTILS_SRC)/grabscreen.h
+lmorph.o: $(UTILS_SRC)/hsv.h
+lmorph.o: $(UTILS_SRC)/resources.h
+lmorph.o: $(UTILS_SRC)/usleep.h
+lmorph.o: $(UTILS_SRC)/visual.h
+lmorph.o: $(UTILS_SRC)/yarandom.h
 loop.o: $(srcdir)/automata.h
 loop.o: ../config.h
 loop.o: $(srcdir)/screenhackI.h
+loop.o: $(UTILS_SRC)/colors.h
+loop.o: $(UTILS_SRC)/grabscreen.h
+loop.o: $(UTILS_SRC)/hsv.h
+loop.o: $(UTILS_SRC)/resources.h
+loop.o: $(UTILS_SRC)/usleep.h
+loop.o: $(UTILS_SRC)/visual.h
+loop.o: $(UTILS_SRC)/xshm.h
+loop.o: $(UTILS_SRC)/yarandom.h
 loop.o: $(srcdir)/xlockmoreI.h
 loop.o: $(srcdir)/xlockmore.h
 maze.o: ../config.h
 maze.o: $(srcdir)/screenhackI.h
 maze.o: $(srcdir)/screenhack.h
+maze.o: $(UTILS_SRC)/colors.h
+maze.o: $(UTILS_SRC)/erase.h
+maze.o: $(UTILS_SRC)/grabscreen.h
+maze.o: $(UTILS_SRC)/hsv.h
+maze.o: $(UTILS_SRC)/resources.h
+maze.o: $(UTILS_SRC)/usleep.h
+maze.o: $(UTILS_SRC)/visual.h
+maze.o: $(UTILS_SRC)/yarandom.h
 memscroller.o: ../config.h
 memscroller.o: $(srcdir)/screenhackI.h
 memscroller.o: $(srcdir)/screenhack.h
+memscroller.o: $(UTILS_SRC)/colors.h
+memscroller.o: $(UTILS_SRC)/grabscreen.h
+memscroller.o: $(UTILS_SRC)/hsv.h
+memscroller.o: $(UTILS_SRC)/resources.h
+memscroller.o: $(UTILS_SRC)/usleep.h
+memscroller.o: $(UTILS_SRC)/visual.h
+memscroller.o: $(UTILS_SRC)/yarandom.h
 metaballs.o: ../config.h
 metaballs.o: $(srcdir)/screenhackI.h
 metaballs.o: $(srcdir)/screenhack.h
+metaballs.o: $(UTILS_SRC)/colors.h
+metaballs.o: $(UTILS_SRC)/grabscreen.h
+metaballs.o: $(UTILS_SRC)/hsv.h
+metaballs.o: $(UTILS_SRC)/resources.h
+metaballs.o: $(UTILS_SRC)/usleep.h
+metaballs.o: $(UTILS_SRC)/visual.h
+metaballs.o: $(UTILS_SRC)/yarandom.h
 mismunch.o: ../config.h
 mismunch.o: $(srcdir)/screenhackI.h
 mismunch.o: $(srcdir)/screenhack.h
+mismunch.o: $(UTILS_SRC)/colors.h
+mismunch.o: $(UTILS_SRC)/grabscreen.h
+mismunch.o: $(UTILS_SRC)/hsv.h
+mismunch.o: $(UTILS_SRC)/resources.h
+mismunch.o: $(UTILS_SRC)/usleep.h
+mismunch.o: $(UTILS_SRC)/visual.h
+mismunch.o: $(UTILS_SRC)/yarandom.h
 moire2.o: ../config.h
 moire2.o: $(srcdir)/screenhackI.h
 moire2.o: $(srcdir)/screenhack.h
+moire2.o: $(UTILS_SRC)/colors.h
+moire2.o: $(UTILS_SRC)/grabscreen.h
+moire2.o: $(UTILS_SRC)/hsv.h
+moire2.o: $(UTILS_SRC)/resources.h
+moire2.o: $(UTILS_SRC)/usleep.h
+moire2.o: $(UTILS_SRC)/visual.h
+moire2.o: $(UTILS_SRC)/xdbe.h
+moire2.o: $(UTILS_SRC)/yarandom.h
 moire.o: ../config.h
 moire.o: $(srcdir)/screenhackI.h
 moire.o: $(srcdir)/screenhack.h
+moire.o: $(UTILS_SRC)/colors.h
+moire.o: $(UTILS_SRC)/grabscreen.h
+moire.o: $(UTILS_SRC)/hsv.h
+moire.o: $(UTILS_SRC)/resources.h
+moire.o: $(UTILS_SRC)/usleep.h
+moire.o: $(UTILS_SRC)/visual.h
+moire.o: $(UTILS_SRC)/yarandom.h
 mountain.o: ../config.h
 mountain.o: $(srcdir)/screenhackI.h
+mountain.o: $(UTILS_SRC)/colors.h
+mountain.o: $(UTILS_SRC)/grabscreen.h
+mountain.o: $(UTILS_SRC)/hsv.h
+mountain.o: $(UTILS_SRC)/resources.h
+mountain.o: $(UTILS_SRC)/usleep.h
+mountain.o: $(UTILS_SRC)/visual.h
+mountain.o: $(UTILS_SRC)/xshm.h
+mountain.o: $(UTILS_SRC)/yarandom.h
 mountain.o: $(srcdir)/xlockmoreI.h
 mountain.o: $(srcdir)/xlockmore.h
 munch.o: ../config.h
 munch.o: $(srcdir)/screenhackI.h
 munch.o: $(srcdir)/screenhack.h
+munch.o: $(UTILS_SRC)/colors.h
+munch.o: $(UTILS_SRC)/grabscreen.h
+munch.o: $(UTILS_SRC)/hsv.h
+munch.o: $(UTILS_SRC)/resources.h
+munch.o: $(UTILS_SRC)/usleep.h
+munch.o: $(UTILS_SRC)/visual.h
+munch.o: $(UTILS_SRC)/yarandom.h
 nerverot.o: ../config.h
 nerverot.o: $(srcdir)/screenhackI.h
 nerverot.o: $(srcdir)/screenhack.h
+nerverot.o: $(UTILS_SRC)/colors.h
+nerverot.o: $(UTILS_SRC)/grabscreen.h
+nerverot.o: $(UTILS_SRC)/hsv.h
+nerverot.o: $(UTILS_SRC)/resources.h
+nerverot.o: $(UTILS_SRC)/usleep.h
+nerverot.o: $(UTILS_SRC)/visual.h
+nerverot.o: $(UTILS_SRC)/yarandom.h
 noseguy.o: ../config.h
 noseguy.o: $(srcdir)/images/noseguy/nose-f1.xpm
 noseguy.o: $(srcdir)/images/noseguy/nose-f2.xpm
@@ -1329,18 +1948,41 @@ noseguy.o: $(srcdir)/images/noseguy/nose-r1.xpm
 noseguy.o: $(srcdir)/images/noseguy/nose-r2.xpm
 noseguy.o: $(srcdir)/screenhackI.h
 noseguy.o: $(srcdir)/screenhack.h
+noseguy.o: $(UTILS_SRC)/colors.h
+noseguy.o: $(UTILS_SRC)/grabscreen.h
+noseguy.o: $(UTILS_SRC)/hsv.h
+noseguy.o: $(UTILS_SRC)/resources.h
+noseguy.o: $(UTILS_SRC)/usleep.h
+noseguy.o: $(UTILS_SRC)/visual.h
+noseguy.o: $(UTILS_SRC)/yarandom.h
 noseguy.o: $(srcdir)/xpm-pixmap.h
 pacman_ai.o: ../config.h
 pacman_ai.o: $(srcdir)/pacman_ai.h
 pacman_ai.o: $(srcdir)/pacman.h
 pacman_ai.o: $(srcdir)/pacman_level.h
 pacman_ai.o: $(srcdir)/screenhackI.h
+pacman_ai.o: $(UTILS_SRC)/colors.h
+pacman_ai.o: $(UTILS_SRC)/grabscreen.h
+pacman_ai.o: $(UTILS_SRC)/hsv.h
+pacman_ai.o: $(UTILS_SRC)/resources.h
+pacman_ai.o: $(UTILS_SRC)/usleep.h
+pacman_ai.o: $(UTILS_SRC)/visual.h
+pacman_ai.o: $(UTILS_SRC)/xshm.h
+pacman_ai.o: $(UTILS_SRC)/yarandom.h
 pacman_ai.o: $(srcdir)/xlockmoreI.h
 pacman_ai.o: $(srcdir)/xpm-pixmap.h
 pacman_level.o: ../config.h
 pacman_level.o: $(srcdir)/pacman.h
 pacman_level.o: $(srcdir)/pacman_level.h
 pacman_level.o: $(srcdir)/screenhackI.h
+pacman_level.o: $(UTILS_SRC)/colors.h
+pacman_level.o: $(UTILS_SRC)/grabscreen.h
+pacman_level.o: $(UTILS_SRC)/hsv.h
+pacman_level.o: $(UTILS_SRC)/resources.h
+pacman_level.o: $(UTILS_SRC)/usleep.h
+pacman_level.o: $(UTILS_SRC)/visual.h
+pacman_level.o: $(UTILS_SRC)/xshm.h
+pacman_level.o: $(UTILS_SRC)/yarandom.h
 pacman_level.o: $(srcdir)/xlockmoreI.h
 pacman_level.o: $(srcdir)/xpm-pixmap.h
 pacman.o: ../config.h
@@ -1382,176 +2024,571 @@ pacman.o: $(srcdir)/pacman_ai.h
 pacman.o: $(srcdir)/pacman.h
 pacman.o: $(srcdir)/pacman_level.h
 pacman.o: $(srcdir)/screenhackI.h
+pacman.o: $(UTILS_SRC)/colors.h
+pacman.o: $(UTILS_SRC)/grabscreen.h
+pacman.o: $(UTILS_SRC)/hsv.h
+pacman.o: $(UTILS_SRC)/resources.h
+pacman.o: $(UTILS_SRC)/usleep.h
+pacman.o: $(UTILS_SRC)/visual.h
+pacman.o: $(UTILS_SRC)/xshm.h
+pacman.o: $(UTILS_SRC)/yarandom.h
 pacman.o: $(srcdir)/xlockmoreI.h
 pacman.o: $(srcdir)/xlockmore.h
 pacman.o: $(srcdir)/xpm-pixmap.h
 pedal.o: ../config.h
 pedal.o: $(srcdir)/screenhackI.h
 pedal.o: $(srcdir)/screenhack.h
+pedal.o: $(UTILS_SRC)/colors.h
+pedal.o: $(UTILS_SRC)/erase.h
+pedal.o: $(UTILS_SRC)/grabscreen.h
+pedal.o: $(UTILS_SRC)/hsv.h
+pedal.o: $(UTILS_SRC)/resources.h
+pedal.o: $(UTILS_SRC)/usleep.h
+pedal.o: $(UTILS_SRC)/visual.h
+pedal.o: $(UTILS_SRC)/yarandom.h
 penetrate.o: ../config.h
 penetrate.o: $(srcdir)/screenhackI.h
 penetrate.o: $(srcdir)/screenhack.h
+penetrate.o: $(UTILS_SRC)/colors.h
+penetrate.o: $(UTILS_SRC)/grabscreen.h
+penetrate.o: $(UTILS_SRC)/hsv.h
+penetrate.o: $(UTILS_SRC)/resources.h
+penetrate.o: $(UTILS_SRC)/usleep.h
+penetrate.o: $(UTILS_SRC)/visual.h
+penetrate.o: $(UTILS_SRC)/yarandom.h
 penrose.o: ../config.h
 penrose.o: $(srcdir)/screenhackI.h
+penrose.o: $(UTILS_SRC)/colors.h
+penrose.o: $(UTILS_SRC)/grabscreen.h
+penrose.o: $(UTILS_SRC)/hsv.h
+penrose.o: $(UTILS_SRC)/resources.h
+penrose.o: $(UTILS_SRC)/usleep.h
+penrose.o: $(UTILS_SRC)/visual.h
+penrose.o: $(UTILS_SRC)/xshm.h
+penrose.o: $(UTILS_SRC)/yarandom.h
 penrose.o: $(srcdir)/xlockmoreI.h
 penrose.o: $(srcdir)/xlockmore.h
 petri.o: ../config.h
 petri.o: $(srcdir)/screenhackI.h
 petri.o: $(srcdir)/screenhack.h
+petri.o: $(UTILS_SRC)/colors.h
+petri.o: $(UTILS_SRC)/grabscreen.h
+petri.o: $(UTILS_SRC)/hsv.h
+petri.o: $(UTILS_SRC)/resources.h
+petri.o: $(UTILS_SRC)/spline.h
+petri.o: $(UTILS_SRC)/usleep.h
+petri.o: $(UTILS_SRC)/visual.h
+petri.o: $(UTILS_SRC)/yarandom.h
 phosphor.o: ../config.h
 phosphor.o: $(srcdir)/images/6x10font.xbm
 phosphor.o: $(srcdir)/screenhackI.h
 phosphor.o: $(srcdir)/screenhack.h
+phosphor.o: $(UTILS_SRC)/colors.h
+phosphor.o: $(UTILS_SRC)/grabscreen.h
+phosphor.o: $(UTILS_SRC)/hsv.h
+phosphor.o: $(UTILS_SRC)/resources.h
+phosphor.o: $(UTILS_SRC)/usleep.h
+phosphor.o: $(UTILS_SRC)/visual.h
+phosphor.o: $(UTILS_SRC)/yarandom.h
 piecewise.o: ../config.h
 piecewise.o: $(srcdir)/screenhackI.h
 piecewise.o: $(srcdir)/screenhack.h
+piecewise.o: $(UTILS_SRC)/colors.h
+piecewise.o: $(UTILS_SRC)/grabscreen.h
+piecewise.o: $(UTILS_SRC)/hsv.h
+piecewise.o: $(UTILS_SRC)/resources.h
+piecewise.o: $(UTILS_SRC)/usleep.h
+piecewise.o: $(UTILS_SRC)/visual.h
+piecewise.o: $(UTILS_SRC)/xdbe.h
+piecewise.o: $(UTILS_SRC)/yarandom.h
 polyominoes.o: ../config.h
 polyominoes.o: $(srcdir)/screenhackI.h
+polyominoes.o: $(UTILS_SRC)/colors.h
+polyominoes.o: $(UTILS_SRC)/erase.h
+polyominoes.o: $(UTILS_SRC)/grabscreen.h
+polyominoes.o: $(UTILS_SRC)/hsv.h
+polyominoes.o: $(UTILS_SRC)/resources.h
+polyominoes.o: $(UTILS_SRC)/usleep.h
+polyominoes.o: $(UTILS_SRC)/visual.h
+polyominoes.o: $(UTILS_SRC)/xshm.h
+polyominoes.o: $(UTILS_SRC)/yarandom.h
 polyominoes.o: $(srcdir)/xlockmoreI.h
 polyominoes.o: $(srcdir)/xlockmore.h
 pong.o: $(srcdir)/analogtv.h
 pong.o: ../config.h
 pong.o: $(srcdir)/screenhackI.h
 pong.o: $(srcdir)/screenhack.h
+pong.o: $(UTILS_SRC)/colors.h
+pong.o: $(UTILS_SRC)/grabscreen.h
+pong.o: $(UTILS_SRC)/hsv.h
+pong.o: $(UTILS_SRC)/resources.h
+pong.o: $(UTILS_SRC)/usleep.h
+pong.o: $(UTILS_SRC)/visual.h
+pong.o: $(UTILS_SRC)/xshm.h
+pong.o: $(UTILS_SRC)/yarandom.h
 popsquares.o: ../config.h
 popsquares.o: $(srcdir)/screenhackI.h
 popsquares.o: $(srcdir)/screenhack.h
+popsquares.o: $(UTILS_SRC)/colors.h
+popsquares.o: $(UTILS_SRC)/grabscreen.h
+popsquares.o: $(UTILS_SRC)/hsv.h
+popsquares.o: $(UTILS_SRC)/resources.h
+popsquares.o: $(UTILS_SRC)/usleep.h
+popsquares.o: $(UTILS_SRC)/visual.h
+popsquares.o: $(UTILS_SRC)/xdbe.h
+popsquares.o: $(UTILS_SRC)/yarandom.h
 pyro.o: ../config.h
 pyro.o: $(srcdir)/screenhackI.h
 pyro.o: $(srcdir)/screenhack.h
+pyro.o: $(UTILS_SRC)/colors.h
+pyro.o: $(UTILS_SRC)/grabscreen.h
+pyro.o: $(UTILS_SRC)/hsv.h
+pyro.o: $(UTILS_SRC)/resources.h
+pyro.o: $(UTILS_SRC)/usleep.h
+pyro.o: $(UTILS_SRC)/visual.h
+pyro.o: $(UTILS_SRC)/yarandom.h
 qix.o: ../config.h
 qix.o: $(srcdir)/screenhackI.h
 qix.o: $(srcdir)/screenhack.h
+qix.o: $(UTILS_SRC)/alpha.h
+qix.o: $(UTILS_SRC)/colors.h
+qix.o: $(UTILS_SRC)/grabscreen.h
+qix.o: $(UTILS_SRC)/hsv.h
+qix.o: $(UTILS_SRC)/resources.h
+qix.o: $(UTILS_SRC)/usleep.h
+qix.o: $(UTILS_SRC)/visual.h
+qix.o: $(UTILS_SRC)/yarandom.h
 rd-bomb.o: ../config.h
 rd-bomb.o: $(srcdir)/screenhackI.h
 rd-bomb.o: $(srcdir)/screenhack.h
+rd-bomb.o: $(UTILS_SRC)/colors.h
+rd-bomb.o: $(UTILS_SRC)/grabscreen.h
+rd-bomb.o: $(UTILS_SRC)/hsv.h
+rd-bomb.o: $(UTILS_SRC)/resources.h
+rd-bomb.o: $(UTILS_SRC)/usleep.h
+rd-bomb.o: $(UTILS_SRC)/visual.h
+rd-bomb.o: $(UTILS_SRC)/yarandom.h
 ripples.o: ../config.h
 ripples.o: $(srcdir)/screenhackI.h
 ripples.o: $(srcdir)/screenhack.h
+ripples.o: $(UTILS_SRC)/colors.h
+ripples.o: $(UTILS_SRC)/grabscreen.h
+ripples.o: $(UTILS_SRC)/hsv.h
+ripples.o: $(UTILS_SRC)/resources.h
+ripples.o: $(UTILS_SRC)/usleep.h
+ripples.o: $(UTILS_SRC)/visual.h
+ripples.o: $(UTILS_SRC)/yarandom.h
 rocks.o: ../config.h
 rocks.o: $(srcdir)/screenhackI.h
 rocks.o: $(srcdir)/screenhack.h
+rocks.o: $(UTILS_SRC)/colors.h
+rocks.o: $(UTILS_SRC)/grabscreen.h
+rocks.o: $(UTILS_SRC)/hsv.h
+rocks.o: $(UTILS_SRC)/resources.h
+rocks.o: $(UTILS_SRC)/usleep.h
+rocks.o: $(UTILS_SRC)/visual.h
+rocks.o: $(UTILS_SRC)/yarandom.h
 rorschach.o: ../config.h
 rorschach.o: $(srcdir)/screenhackI.h
 rorschach.o: $(srcdir)/screenhack.h
+rorschach.o: $(UTILS_SRC)/colors.h
+rorschach.o: $(UTILS_SRC)/erase.h
+rorschach.o: $(UTILS_SRC)/grabscreen.h
+rorschach.o: $(UTILS_SRC)/hsv.h
+rorschach.o: $(UTILS_SRC)/resources.h
+rorschach.o: $(UTILS_SRC)/usleep.h
+rorschach.o: $(UTILS_SRC)/visual.h
+rorschach.o: $(UTILS_SRC)/yarandom.h
 rotor.o: ../config.h
 rotor.o: $(srcdir)/screenhackI.h
+rotor.o: $(UTILS_SRC)/colors.h
+rotor.o: $(UTILS_SRC)/grabscreen.h
+rotor.o: $(UTILS_SRC)/hsv.h
+rotor.o: $(UTILS_SRC)/resources.h
+rotor.o: $(UTILS_SRC)/usleep.h
+rotor.o: $(UTILS_SRC)/visual.h
+rotor.o: $(UTILS_SRC)/xshm.h
+rotor.o: $(UTILS_SRC)/yarandom.h
 rotor.o: $(srcdir)/xlockmoreI.h
 rotor.o: $(srcdir)/xlockmore.h
 rotzoomer.o: ../config.h
 rotzoomer.o: $(srcdir)/screenhackI.h
 rotzoomer.o: $(srcdir)/screenhack.h
+rotzoomer.o: $(UTILS_SRC)/colors.h
+rotzoomer.o: $(UTILS_SRC)/grabscreen.h
+rotzoomer.o: $(UTILS_SRC)/hsv.h
+rotzoomer.o: $(UTILS_SRC)/resources.h
+rotzoomer.o: $(UTILS_SRC)/usleep.h
+rotzoomer.o: $(UTILS_SRC)/visual.h
+rotzoomer.o: $(UTILS_SRC)/yarandom.h
 screenhack.o: ../config.h
 screenhack.o: $(srcdir)/screenhackI.h
+screenhack.o: $(UTILS_SRC)/colors.h
+screenhack.o: $(UTILS_SRC)/grabscreen.h
+screenhack.o: $(UTILS_SRC)/hsv.h
+screenhack.o: $(UTILS_SRC)/resources.h
+screenhack.o: $(UTILS_SRC)/usleep.h
+screenhack.o: $(UTILS_SRC)/version.h
+screenhack.o: $(UTILS_SRC)/visual.h
+screenhack.o: $(UTILS_SRC)/vroot.h
+screenhack.o: $(UTILS_SRC)/xmu.h
+screenhack.o: $(UTILS_SRC)/yarandom.h
 shadebobs.o: ../config.h
 shadebobs.o: $(srcdir)/screenhackI.h
 shadebobs.o: $(srcdir)/screenhack.h
+shadebobs.o: $(UTILS_SRC)/colors.h
+shadebobs.o: $(UTILS_SRC)/grabscreen.h
+shadebobs.o: $(UTILS_SRC)/hsv.h
+shadebobs.o: $(UTILS_SRC)/resources.h
+shadebobs.o: $(UTILS_SRC)/usleep.h
+shadebobs.o: $(UTILS_SRC)/visual.h
+shadebobs.o: $(UTILS_SRC)/yarandom.h
 sierpinski.o: ../config.h
 sierpinski.o: $(srcdir)/screenhackI.h
+sierpinski.o: $(UTILS_SRC)/colors.h
+sierpinski.o: $(UTILS_SRC)/grabscreen.h
+sierpinski.o: $(UTILS_SRC)/hsv.h
+sierpinski.o: $(UTILS_SRC)/resources.h
+sierpinski.o: $(UTILS_SRC)/usleep.h
+sierpinski.o: $(UTILS_SRC)/visual.h
+sierpinski.o: $(UTILS_SRC)/xshm.h
+sierpinski.o: $(UTILS_SRC)/yarandom.h
 sierpinski.o: $(srcdir)/xlockmoreI.h
 sierpinski.o: $(srcdir)/xlockmore.h
 slidescreen.o: ../config.h
 slidescreen.o: $(srcdir)/screenhackI.h
 slidescreen.o: $(srcdir)/screenhack.h
+slidescreen.o: $(UTILS_SRC)/colors.h
+slidescreen.o: $(UTILS_SRC)/grabscreen.h
+slidescreen.o: $(UTILS_SRC)/hsv.h
+slidescreen.o: $(UTILS_SRC)/resources.h
+slidescreen.o: $(UTILS_SRC)/usleep.h
+slidescreen.o: $(UTILS_SRC)/visual.h
+slidescreen.o: $(UTILS_SRC)/yarandom.h
 slip.o: ../config.h
 slip.o: $(srcdir)/screenhackI.h
+slip.o: $(UTILS_SRC)/colors.h
+slip.o: $(UTILS_SRC)/grabscreen.h
+slip.o: $(UTILS_SRC)/hsv.h
+slip.o: $(UTILS_SRC)/resources.h
+slip.o: $(UTILS_SRC)/usleep.h
+slip.o: $(UTILS_SRC)/visual.h
+slip.o: $(UTILS_SRC)/xshm.h
+slip.o: $(UTILS_SRC)/yarandom.h
 slip.o: $(srcdir)/xlockmoreI.h
 slip.o: $(srcdir)/xlockmore.h
 sonar.o: ../config.h
 sonar.o: $(srcdir)/screenhackI.h
 sonar.o: $(srcdir)/screenhack.h
+sonar.o: $(UTILS_SRC)/colors.h
+sonar.o: $(UTILS_SRC)/grabscreen.h
+sonar.o: $(UTILS_SRC)/hsv.h
+sonar.o: $(UTILS_SRC)/resources.h
+sonar.o: $(UTILS_SRC)/usleep.h
+sonar.o: $(UTILS_SRC)/visual.h
+sonar.o: $(UTILS_SRC)/yarandom.h
 speedmine.o: ../config.h
 speedmine.o: $(srcdir)/screenhackI.h
 speedmine.o: $(srcdir)/screenhack.h
+speedmine.o: $(UTILS_SRC)/colors.h
+speedmine.o: $(UTILS_SRC)/erase.h
+speedmine.o: $(UTILS_SRC)/grabscreen.h
+speedmine.o: $(UTILS_SRC)/hsv.h
+speedmine.o: $(UTILS_SRC)/resources.h
+speedmine.o: $(UTILS_SRC)/usleep.h
+speedmine.o: $(UTILS_SRC)/visual.h
+speedmine.o: $(UTILS_SRC)/yarandom.h
 sphere.o: ../config.h
 sphere.o: $(srcdir)/screenhackI.h
+sphere.o: $(UTILS_SRC)/colors.h
+sphere.o: $(UTILS_SRC)/grabscreen.h
+sphere.o: $(UTILS_SRC)/hsv.h
+sphere.o: $(UTILS_SRC)/resources.h
+sphere.o: $(UTILS_SRC)/usleep.h
+sphere.o: $(UTILS_SRC)/visual.h
+sphere.o: $(UTILS_SRC)/xshm.h
+sphere.o: $(UTILS_SRC)/yarandom.h
 sphere.o: $(srcdir)/xlockmoreI.h
 sphere.o: $(srcdir)/xlockmore.h
 spiral.o: ../config.h
 spiral.o: $(srcdir)/screenhackI.h
+spiral.o: $(UTILS_SRC)/colors.h
+spiral.o: $(UTILS_SRC)/grabscreen.h
+spiral.o: $(UTILS_SRC)/hsv.h
+spiral.o: $(UTILS_SRC)/resources.h
+spiral.o: $(UTILS_SRC)/usleep.h
+spiral.o: $(UTILS_SRC)/visual.h
+spiral.o: $(UTILS_SRC)/xshm.h
+spiral.o: $(UTILS_SRC)/yarandom.h
 spiral.o: $(srcdir)/xlockmoreI.h
 spiral.o: $(srcdir)/xlockmore.h
 spotlight.o: ../config.h
 spotlight.o: $(srcdir)/screenhackI.h
 spotlight.o: $(srcdir)/screenhack.h
+spotlight.o: $(UTILS_SRC)/colors.h
+spotlight.o: $(UTILS_SRC)/grabscreen.h
+spotlight.o: $(UTILS_SRC)/hsv.h
+spotlight.o: $(UTILS_SRC)/resources.h
+spotlight.o: $(UTILS_SRC)/usleep.h
+spotlight.o: $(UTILS_SRC)/visual.h
+spotlight.o: $(UTILS_SRC)/yarandom.h
 squiral.o: ../config.h
 squiral.o: $(srcdir)/screenhackI.h
 squiral.o: $(srcdir)/screenhack.h
+squiral.o: $(UTILS_SRC)/colors.h
+squiral.o: $(UTILS_SRC)/erase.h
+squiral.o: $(UTILS_SRC)/grabscreen.h
+squiral.o: $(UTILS_SRC)/hsv.h
+squiral.o: $(UTILS_SRC)/resources.h
+squiral.o: $(UTILS_SRC)/usleep.h
+squiral.o: $(UTILS_SRC)/visual.h
+squiral.o: $(UTILS_SRC)/yarandom.h
 starfish.o: ../config.h
 starfish.o: $(srcdir)/screenhackI.h
 starfish.o: $(srcdir)/screenhack.h
+starfish.o: $(UTILS_SRC)/colors.h
+starfish.o: $(UTILS_SRC)/grabscreen.h
+starfish.o: $(UTILS_SRC)/hsv.h
+starfish.o: $(UTILS_SRC)/resources.h
+starfish.o: $(UTILS_SRC)/spline.h
+starfish.o: $(UTILS_SRC)/usleep.h
+starfish.o: $(UTILS_SRC)/visual.h
+starfish.o: $(UTILS_SRC)/yarandom.h
 strange.o: ../config.h
 strange.o: $(srcdir)/screenhackI.h
+strange.o: $(UTILS_SRC)/colors.h
+strange.o: $(UTILS_SRC)/grabscreen.h
+strange.o: $(UTILS_SRC)/hsv.h
+strange.o: $(UTILS_SRC)/resources.h
+strange.o: $(UTILS_SRC)/usleep.h
+strange.o: $(UTILS_SRC)/visual.h
+strange.o: $(UTILS_SRC)/xshm.h
+strange.o: $(UTILS_SRC)/yarandom.h
 strange.o: $(srcdir)/xlockmoreI.h
 strange.o: $(srcdir)/xlockmore.h
 substrate.o: ../config.h
 substrate.o: $(srcdir)/screenhackI.h
 substrate.o: $(srcdir)/screenhack.h
+substrate.o: $(UTILS_SRC)/colors.h
+substrate.o: $(UTILS_SRC)/grabscreen.h
+substrate.o: $(UTILS_SRC)/hsv.h
+substrate.o: $(UTILS_SRC)/resources.h
+substrate.o: $(UTILS_SRC)/usleep.h
+substrate.o: $(UTILS_SRC)/visual.h
+substrate.o: $(UTILS_SRC)/yarandom.h
 swirl.o: ../config.h
 swirl.o: $(srcdir)/screenhackI.h
+swirl.o: $(UTILS_SRC)/colors.h
+swirl.o: $(UTILS_SRC)/grabscreen.h
+swirl.o: $(UTILS_SRC)/hsv.h
+swirl.o: $(UTILS_SRC)/resources.h
+swirl.o: $(UTILS_SRC)/usleep.h
+swirl.o: $(UTILS_SRC)/visual.h
+swirl.o: $(UTILS_SRC)/xshm.h
+swirl.o: $(UTILS_SRC)/yarandom.h
 swirl.o: $(srcdir)/xlockmoreI.h
 swirl.o: $(srcdir)/xlockmore.h
 t3d.o: ../config.h
 t3d.o: $(srcdir)/screenhackI.h
 t3d.o: $(srcdir)/screenhack.h
+t3d.o: $(UTILS_SRC)/colors.h
+t3d.o: $(UTILS_SRC)/grabscreen.h
+t3d.o: $(UTILS_SRC)/hsv.h
+t3d.o: $(UTILS_SRC)/resources.h
+t3d.o: $(UTILS_SRC)/usleep.h
+t3d.o: $(UTILS_SRC)/visual.h
+t3d.o: $(UTILS_SRC)/yarandom.h
 thornbird.o: ../config.h
 thornbird.o: $(srcdir)/screenhackI.h
+thornbird.o: $(UTILS_SRC)/colors.h
+thornbird.o: $(UTILS_SRC)/grabscreen.h
+thornbird.o: $(UTILS_SRC)/hsv.h
+thornbird.o: $(UTILS_SRC)/resources.h
+thornbird.o: $(UTILS_SRC)/usleep.h
+thornbird.o: $(UTILS_SRC)/visual.h
+thornbird.o: $(UTILS_SRC)/xshm.h
+thornbird.o: $(UTILS_SRC)/yarandom.h
 thornbird.o: $(srcdir)/xlockmoreI.h
 thornbird.o: $(srcdir)/xlockmore.h
 triangle.o: ../config.h
 triangle.o: $(srcdir)/screenhackI.h
+triangle.o: $(UTILS_SRC)/colors.h
+triangle.o: $(UTILS_SRC)/grabscreen.h
+triangle.o: $(UTILS_SRC)/hsv.h
+triangle.o: $(UTILS_SRC)/resources.h
+triangle.o: $(UTILS_SRC)/usleep.h
+triangle.o: $(UTILS_SRC)/visual.h
+triangle.o: $(UTILS_SRC)/xshm.h
+triangle.o: $(UTILS_SRC)/yarandom.h
 triangle.o: $(srcdir)/xlockmoreI.h
 triangle.o: $(srcdir)/xlockmore.h
 truchet.o: ../config.h
 truchet.o: $(srcdir)/screenhackI.h
 truchet.o: $(srcdir)/screenhack.h
+truchet.o: $(UTILS_SRC)/colors.h
+truchet.o: $(UTILS_SRC)/grabscreen.h
+truchet.o: $(UTILS_SRC)/hsv.h
+truchet.o: $(UTILS_SRC)/resources.h
+truchet.o: $(UTILS_SRC)/usleep.h
+truchet.o: $(UTILS_SRC)/visual.h
+truchet.o: $(UTILS_SRC)/yarandom.h
 twang.o: ../config.h
 twang.o: $(srcdir)/screenhackI.h
 twang.o: $(srcdir)/screenhack.h
+twang.o: $(UTILS_SRC)/colors.h
+twang.o: $(UTILS_SRC)/grabscreen.h
+twang.o: $(UTILS_SRC)/hsv.h
+twang.o: $(UTILS_SRC)/resources.h
+twang.o: $(UTILS_SRC)/usleep.h
+twang.o: $(UTILS_SRC)/visual.h
+twang.o: $(UTILS_SRC)/yarandom.h
 vermiculate.o: ../config.h
 vermiculate.o: $(srcdir)/screenhackI.h
 vermiculate.o: $(srcdir)/screenhack.h
+vermiculate.o: $(UTILS_SRC)/colors.h
+vermiculate.o: $(UTILS_SRC)/grabscreen.h
+vermiculate.o: $(UTILS_SRC)/hsv.h
+vermiculate.o: $(UTILS_SRC)/resources.h
+vermiculate.o: $(UTILS_SRC)/usleep.h
+vermiculate.o: $(UTILS_SRC)/visual.h
+vermiculate.o: $(UTILS_SRC)/yarandom.h
 vines.o: ../config.h
 vines.o: $(srcdir)/screenhackI.h
+vines.o: $(UTILS_SRC)/colors.h
+vines.o: $(UTILS_SRC)/erase.h
+vines.o: $(UTILS_SRC)/grabscreen.h
+vines.o: $(UTILS_SRC)/hsv.h
+vines.o: $(UTILS_SRC)/resources.h
+vines.o: $(UTILS_SRC)/usleep.h
+vines.o: $(UTILS_SRC)/visual.h
+vines.o: $(UTILS_SRC)/xshm.h
+vines.o: $(UTILS_SRC)/yarandom.h
 vines.o: $(srcdir)/xlockmoreI.h
 vines.o: $(srcdir)/xlockmore.h
 wander.o: ../config.h
 wander.o: $(srcdir)/screenhackI.h
 wander.o: $(srcdir)/screenhack.h
+wander.o: $(UTILS_SRC)/colors.h
+wander.o: $(UTILS_SRC)/erase.h
+wander.o: $(UTILS_SRC)/grabscreen.h
+wander.o: $(UTILS_SRC)/hsv.h
+wander.o: $(UTILS_SRC)/resources.h
+wander.o: $(UTILS_SRC)/usleep.h
+wander.o: $(UTILS_SRC)/visual.h
+wander.o: $(UTILS_SRC)/yarandom.h
+webcollage-cocoa.o: ../config.h
+webcollage-cocoa.o: $(srcdir)/screenhackI.h
+webcollage-cocoa.o: $(srcdir)/screenhack.h
+webcollage-cocoa.o: $(UTILS_SRC)/colors.h
+webcollage-cocoa.o: $(UTILS_SRC)/grabscreen.h
+webcollage-cocoa.o: $(UTILS_SRC)/hsv.h
+webcollage-cocoa.o: $(UTILS_SRC)/resources.h
+webcollage-cocoa.o: $(UTILS_SRC)/usleep.h
+webcollage-cocoa.o: $(UTILS_SRC)/visual.h
+webcollage-cocoa.o: $(UTILS_SRC)/yarandom.h
 webcollage-helper.o: ../config.h
 whirlwindwarp.o: ../config.h
 whirlwindwarp.o: $(srcdir)/screenhackI.h
 whirlwindwarp.o: $(srcdir)/screenhack.h
+whirlwindwarp.o: $(UTILS_SRC)/colors.h
+whirlwindwarp.o: $(UTILS_SRC)/erase.h
+whirlwindwarp.o: $(UTILS_SRC)/grabscreen.h
+whirlwindwarp.o: $(UTILS_SRC)/hsv.h
+whirlwindwarp.o: $(UTILS_SRC)/resources.h
+whirlwindwarp.o: $(UTILS_SRC)/usleep.h
+whirlwindwarp.o: $(UTILS_SRC)/visual.h
+whirlwindwarp.o: $(UTILS_SRC)/yarandom.h
 whirlygig.o: ../config.h
 whirlygig.o: $(srcdir)/screenhackI.h
 whirlygig.o: $(srcdir)/screenhack.h
+whirlygig.o: $(UTILS_SRC)/colors.h
+whirlygig.o: $(UTILS_SRC)/grabscreen.h
+whirlygig.o: $(UTILS_SRC)/hsv.h
+whirlygig.o: $(UTILS_SRC)/resources.h
+whirlygig.o: $(UTILS_SRC)/usleep.h
+whirlygig.o: $(UTILS_SRC)/visual.h
+whirlygig.o: $(UTILS_SRC)/xdbe.h
+whirlygig.o: $(UTILS_SRC)/yarandom.h
 wormhole.o: ../config.h
 wormhole.o: $(srcdir)/screenhackI.h
 wormhole.o: $(srcdir)/screenhack.h
+wormhole.o: $(UTILS_SRC)/colors.h
+wormhole.o: $(UTILS_SRC)/grabscreen.h
+wormhole.o: $(UTILS_SRC)/hsv.h
+wormhole.o: $(UTILS_SRC)/resources.h
+wormhole.o: $(UTILS_SRC)/usleep.h
+wormhole.o: $(UTILS_SRC)/visual.h
+wormhole.o: $(UTILS_SRC)/yarandom.h
 worm.o: ../config.h
 worm.o: $(srcdir)/screenhackI.h
+worm.o: $(UTILS_SRC)/colors.h
+worm.o: $(UTILS_SRC)/grabscreen.h
+worm.o: $(UTILS_SRC)/hsv.h
+worm.o: $(UTILS_SRC)/resources.h
+worm.o: $(UTILS_SRC)/usleep.h
+worm.o: $(UTILS_SRC)/visual.h
+worm.o: $(UTILS_SRC)/xshm.h
+worm.o: $(UTILS_SRC)/yarandom.h
 worm.o: $(srcdir)/xlockmoreI.h
 worm.o: $(srcdir)/xlockmore.h
 xanalogtv.o: $(srcdir)/analogtv.h
 xanalogtv.o: ../config.h
 xanalogtv.o: $(srcdir)/screenhackI.h
 xanalogtv.o: $(srcdir)/screenhack.h
+xanalogtv.o: $(UTILS_SRC)/colors.h
+xanalogtv.o: $(UTILS_SRC)/grabscreen.h
+xanalogtv.o: $(UTILS_SRC)/hsv.h
+xanalogtv.o: $(UTILS_SRC)/images/logo-50.xpm
+xanalogtv.o: $(UTILS_SRC)/resources.h
+xanalogtv.o: $(UTILS_SRC)/usleep.h
+xanalogtv.o: $(UTILS_SRC)/visual.h
+xanalogtv.o: $(UTILS_SRC)/xshm.h
+xanalogtv.o: $(UTILS_SRC)/yarandom.h
 xanalogtv.o: $(srcdir)/xpm-pixmap.h
 xflame.o: ../config.h
 xflame.o: $(srcdir)/images/bob.xbm
 xflame.o: $(srcdir)/screenhackI.h
 xflame.o: $(srcdir)/screenhack.h
+xflame.o: $(UTILS_SRC)/colors.h
+xflame.o: $(UTILS_SRC)/grabscreen.h
+xflame.o: $(UTILS_SRC)/hsv.h
+xflame.o: $(UTILS_SRC)/resources.h
+xflame.o: $(UTILS_SRC)/usleep.h
+xflame.o: $(UTILS_SRC)/visual.h
+xflame.o: $(UTILS_SRC)/yarandom.h
 xflame.o: $(srcdir)/xpm-pixmap.h
 xjack.o: ../config.h
 xjack.o: $(srcdir)/screenhackI.h
 xjack.o: $(srcdir)/screenhack.h
+xjack.o: $(UTILS_SRC)/colors.h
+xjack.o: $(UTILS_SRC)/grabscreen.h
+xjack.o: $(UTILS_SRC)/hsv.h
+xjack.o: $(UTILS_SRC)/resources.h
+xjack.o: $(UTILS_SRC)/usleep.h
+xjack.o: $(UTILS_SRC)/visual.h
+xjack.o: $(UTILS_SRC)/yarandom.h
 xlockmore.o: ../config.h
 xlockmore.o: $(srcdir)/screenhackI.h
 xlockmore.o: $(srcdir)/screenhack.h
+xlockmore.o: $(UTILS_SRC)/colors.h
+xlockmore.o: $(UTILS_SRC)/grabscreen.h
+xlockmore.o: $(UTILS_SRC)/hsv.h
+xlockmore.o: $(UTILS_SRC)/resources.h
+xlockmore.o: $(UTILS_SRC)/usleep.h
+xlockmore.o: $(UTILS_SRC)/visual.h
+xlockmore.o: $(UTILS_SRC)/xshm.h
+xlockmore.o: $(UTILS_SRC)/yarandom.h
 xlockmore.o: $(srcdir)/xlockmoreI.h
 xlyap.o: ../config.h
 xlyap.o: $(srcdir)/screenhackI.h
 xlyap.o: $(srcdir)/screenhack.h
+xlyap.o: $(UTILS_SRC)/colors.h
+xlyap.o: $(UTILS_SRC)/grabscreen.h
+xlyap.o: $(UTILS_SRC)/hsv.h
+xlyap.o: $(UTILS_SRC)/resources.h
+xlyap.o: $(UTILS_SRC)/usleep.h
+xlyap.o: $(UTILS_SRC)/visual.h
+xlyap.o: $(UTILS_SRC)/yarandom.h
 xmatrix.o: ../config.h
 xmatrix.o: $(srcdir)/images/matrix1b.xbm
 xmatrix.o: $(srcdir)/images/matrix1b.xpm
@@ -1563,16 +2600,51 @@ xmatrix.o: $(srcdir)/images/matrix2.xbm
 xmatrix.o: $(srcdir)/images/matrix2.xpm
 xmatrix.o: $(srcdir)/screenhackI.h
 xmatrix.o: $(srcdir)/screenhack.h
+xmatrix.o: $(UTILS_SRC)/colors.h
+xmatrix.o: $(UTILS_SRC)/grabscreen.h
+xmatrix.o: $(UTILS_SRC)/hsv.h
+xmatrix.o: $(UTILS_SRC)/resources.h
+xmatrix.o: $(UTILS_SRC)/usleep.h
+xmatrix.o: $(UTILS_SRC)/visual.h
+xmatrix.o: $(UTILS_SRC)/yarandom.h
 xmatrix.o: $(srcdir)/xpm-pixmap.h
 xpm-pixmap.o: ../config.h
+xpm-pixmap.o: $(UTILS_SRC)/visual.h
 xpm-pixmap.o: $(srcdir)/xpm-pixmap.h
 xrayswarm.o: ../config.h
 xrayswarm.o: $(srcdir)/screenhackI.h
 xrayswarm.o: $(srcdir)/screenhack.h
+xrayswarm.o: $(UTILS_SRC)/colors.h
+xrayswarm.o: $(UTILS_SRC)/grabscreen.h
+xrayswarm.o: $(UTILS_SRC)/hsv.h
+xrayswarm.o: $(UTILS_SRC)/resources.h
+xrayswarm.o: $(UTILS_SRC)/usleep.h
+xrayswarm.o: $(UTILS_SRC)/visual.h
+xrayswarm.o: $(UTILS_SRC)/yarandom.h
+xscreensaver-sgigl.o: $(UTILS_SRC)/vroot.h
 xspirograph.o: ../config.h
 xspirograph.o: $(srcdir)/screenhackI.h
 xspirograph.o: $(srcdir)/screenhack.h
+xspirograph.o: $(UTILS_SRC)/colors.h
+xspirograph.o: $(UTILS_SRC)/erase.h
+xspirograph.o: $(UTILS_SRC)/grabscreen.h
+xspirograph.o: $(UTILS_SRC)/hsv.h
+xspirograph.o: $(UTILS_SRC)/resources.h
+xspirograph.o: $(UTILS_SRC)/usleep.h
+xspirograph.o: $(UTILS_SRC)/visual.h
+xspirograph.o: $(UTILS_SRC)/yarandom.h
+xsublim.o: $(UTILS_SRC)/resources.h
+xsublim.o: $(UTILS_SRC)/usleep.h
+xsublim.o: $(UTILS_SRC)/vroot.h
+xsublim.o: $(UTILS_SRC)/yarandom.h
 zoom.o: ../config.h
 zoom.o: $(srcdir)/screenhackI.h
 zoom.o: $(srcdir)/screenhack.h
+zoom.o: $(UTILS_SRC)/colors.h
+zoom.o: $(UTILS_SRC)/grabscreen.h
+zoom.o: $(UTILS_SRC)/hsv.h
+zoom.o: $(UTILS_SRC)/resources.h
+zoom.o: $(UTILS_SRC)/usleep.h
+zoom.o: $(UTILS_SRC)/visual.h
+zoom.o: $(UTILS_SRC)/yarandom.h
 
index e42d708202b8c09b75798058ecd691bc977ae7b4..a38f151fe54d986ce6f9c7c364daaa7b1d367e4b 100644 (file)
@@ -56,6 +56,8 @@
 #ifdef DO_XPM
 # include "images/amiga.xpm"
 # include "images/hmac.xpm"
+# include "images/osx_10_2.xpm"
+# include "images/osx_10_3.xpm"
 #endif
 #include "images/atari.xbm"
 #include "images/mac.xbm"
@@ -69,7 +71,7 @@ typedef enum { EOF=0,
                LEFT, CENTER, RIGHT, 
                LEFT_FULL, CENTER_FULL, RIGHT_FULL, 
                COLOR, INVERT, MOVETO, MARGINS,
-               CURSOR_BLOCK, CURSOR_LINE, RECT, COPY, IMG,
+               CURSOR_BLOCK, CURSOR_LINE, RECT, COPY, PIXMAP, IMG,
                PAUSE, CHAR_DELAY, LINE_DELAY,
                LOOP
 } bsod_event_type;
@@ -91,6 +93,8 @@ struct bsod_state {
   Bool wrap_p;
   Bool scroll_p;
 
+  Pixmap pixmap;               /* Source image used by BSOD_PIXMAP */
+
   int x, y;                    /* current text-drawing position */
   int current_left;            /* don't use this */
 
@@ -236,6 +240,13 @@ struct bsod_state {
   (bst)->pos++; \
   } while (0)
 
+/* Copy a rect from bst->pixmap to the window.
+ */
+#define BSOD_PIXMAP(bst,srcx,srcy,w,h,tox,toy) do { \
+  BSOD_COPY(bst,srcx,srcy,w,h,tox,toy); \
+  (bst)->queue[(bst)->pos-1].type = PIXMAP; \
+  } while (0)
+
 /* Load a random image (or the desktop) onto the window.
  */
 #define BSOD_IMG(bst) do { \
@@ -496,6 +507,7 @@ bsod_pop (struct bsod_state *bst)
       return 0;
     }
   case COPY:
+  case PIXMAP:
     {
       int srcx = (long) bst->queue[bst->pos].arg1;
       int srcy = (long) bst->queue[bst->pos].arg2;
@@ -503,7 +515,9 @@ bsod_pop (struct bsod_state *bst)
       int h    = (long) bst->queue[bst->pos].arg4;
       int tox  = (long) bst->queue[bst->pos].arg5;
       int toy  = (long) bst->queue[bst->pos].arg6;
-      XCopyArea (bst->dpy, bst->window, bst->window, bst->gc,
+      XCopyArea (bst->dpy, 
+                 (type == PIXMAP ? bst->pixmap : bst->window), 
+                 bst->window, bst->gc,
                  srcx, srcy, w, h, tox, toy);
       bst->pos++;
       return 0;
@@ -675,12 +689,14 @@ make_bsod_state (Display *dpy, Window window,
 
 
 static void
-free_bsod_state ( struct bsod_state *bst)
+free_bsod_state (struct bsod_state *bst)
 {
   int i;
 
   if (bst->free_cb)
     bst->free_cb (bst);
+  if (bst->pixmap)
+    XFreePixmap(bst->dpy, bst->pixmap);
 
   XFreeFont (bst->dpy, bst->font);
   XFreeGC (bst->dpy, bst->gc);
@@ -1487,7 +1503,7 @@ mac1 (Display *dpy, Window window)
    English, French, German, and Japanese overlayed transparently.
  */
 static struct bsod_state *
-macx (Display *dpy, Window window)
+macx_10_0 (Display *dpy, Window window)
 {
   struct bsod_state *bst = make_bsod_state (dpy, window, "macx", "MacX");
 
@@ -1558,6 +1574,62 @@ macx (Display *dpy, Window window)
 }
 
 
+# ifdef DO_XPM
+static struct bsod_state *
+macx_10_2 (Display *dpy, Window window, Bool v10_3_p)
+{
+  struct bsod_state *bst = make_bsod_state (dpy, window, "macx", "MacX");
+
+  Pixmap pixmap = 0;
+  int pix_w = 0, pix_h = 0;
+  int x, y;
+
+  pixmap = xpm_data_to_pixmap (dpy, window, 
+                               (char **) (v10_3_p ? osx_10_3 : osx_10_2),
+                               &pix_w, &pix_h, 0);
+  if (! pixmap) abort();
+
+#if 0
+  if (bst->xgwa.height > 600)  /* scale up the bitmap */
+    {
+      pixmap = double_pixmap (dpy, bst->gc, bst->xgwa.visual, bst->xgwa.depth,
+                              pixmap, pix_w, pix_h);
+      if (! pixmap) abort();
+      pix_w *= 2;
+      pix_h *= 2;
+    }
+#endif
+
+  BSOD_IMG (bst);
+  BSOD_PAUSE (bst, 2000000);
+
+  bst->pixmap = pixmap;
+
+  x = (bst->xgwa.width - pix_w) / 2;
+  y = ((bst->xgwa.height - pix_h) / 2);
+  BSOD_PIXMAP (bst, 0, 0, pix_w, pix_h, x, y);
+
+  return bst;
+}
+# endif /* DO_XPM */
+
+
+static struct bsod_state *
+macx (Display *dpy, Window window)
+{
+# ifdef DO_XPM
+  switch (random() % 3) {
+  case 0: return macx_10_0 (dpy, window);        break;
+  case 1: return macx_10_2 (dpy, window, False); break;
+  case 2: return macx_10_2 (dpy, window, True);  break;
+  default: abort();
+  }
+# else  /* !DO_XPM */
+  return macx_10_0 (dpy, window);
+# endif /* !DO_XPM */
+}
+
+
 #ifndef HAVE_COCOA /* #### I have no idea how to implement this without
                            real plane-masks.  I don't think it would look
                            right if done with alpha-transparency... */
@@ -2212,15 +2284,14 @@ hppa_linux (Display *dpy, Window window)
     make_bsod_state (dpy, window, "hppalinux", "HPPALinux");
 
   int i = 0;
-  const char *sysname;
+  const char *release, *sysname, *gccversion, *version;
   long int linedelay = 0;
 
   __extension__
   struct { long int delay; const char *string; } linux_panic[] =
     {{ 0, "\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\n\n"
           "\n\n\n\n\n\n\n\n\n\n\n\n\n" },
-     { 0, "Linux version 2.6.0-test11-pa2 (root@%s) "
-          "(gcc version 3.3.2 (Debian)) #2 Mon Dec 8 06:09:27 GMT 2003\n" },
+     { 0, "Linux version %s (root@%s) (gcc version %s) %s\n" },
      { 4000, "FP[0] enabled: Rev 1 Model 16\n" },
      { 10, "The 32-bit Kernel has started...\n" },
      { -1, "Determining PDC firmware type: System Map.\n" },
@@ -2290,7 +2361,7 @@ hppa_linux (Display *dpy, Window window)
      { -1, "Soft power switch enabled, polling @ 0xf0400804.\n" },
      { -1, "pty: 256 Unix98 ptys configured\n" },
      { -1, "Generic RTC Driver v1.07\n" },
-     { -1, "Serial: 8250/16550 driver $Revision: 1.85 $ 13 ports, "
+     { -1, "Serial: 8250/16550 driver $Revision: 1.88 $ 13 ports, "
            "IRQ sharing disabled\n" },
      { -1, "ttyS0 at I/O 0x3f8 (irq = 0) is a 16550A\n" },
      { -1, "ttyS1 at I/O 0x2f8 (irq = 0) is a 16550A\n" },
@@ -2350,22 +2421,38 @@ hppa_linux (Display *dpy, Window window)
   bst->left_margin = bst->right_margin = 10;
   bst->top_margin = bst->bottom_margin = 10;
 
+  release = "2.6.0-test11-pa2";
   sysname = "hppa";
+  version = "#2 Mon Dec 8 06:09:27 GMT 2003";
 # ifdef HAVE_UNAME
   {
     struct utsname uts;
     char *s;
     if (uname (&uts) >= 0)
-      sysname = uts.nodename;
+      {
+       sysname = uts.nodename;
+       if (!strcmp (uts.sysname, "Linux"))
+         {
+           release = uts.release;
+           version = uts.version;
+         }
+      }
     s = strchr (sysname, '.');
     if (s) *s = 0;
   }
 # endif        /* !HAVE_UNAME */
 
+# if (defined (__GNUC__) && defined (__VERSION__))
+  gccversion = __VERSION__;
+# else /* !(defined (__GNUC__) && defined (__VERSION__)) */
+  gccversion = "3.3.2 (Debian)";
+# endif /* !(defined (__GNUC__) && defined (__VERSION__)) */
+
   /* Insert current host name into banner on line 2 */
   {
     char ss[1024];
-    sprintf (ss, linux_panic[1].string, sysname);
+    snprintf (ss, 1024, linux_panic[1].string, 
+             release, sysname, gccversion, version);
     linux_panic[1].string = ss;
   }
 
index 36d9d53006a11b38ff3c2814d1ce4b6222dcc4da..a0b5d7635534f1b8111be30b2a85b88664dc084d 100644 (file)
@@ -124,7 +124,9 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) VERMICULATE.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) VINES.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) WANDER.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) WEBCOLLAGE-COCOA.M
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) WEBCOLLAGE-HELPER.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) WEBCOLLAGE-HELPER-COCOA.M
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) WHIRLWINDWARP.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) WHIRLYGIG.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) WORM.C
index 36d9d53006a11b38ff3c2814d1ce4b6222dcc4da..a0b5d7635534f1b8111be30b2a85b88664dc084d 100644 (file)
@@ -124,7 +124,9 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) VERMICULATE.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) VINES.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) WANDER.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) WEBCOLLAGE-COCOA.M
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) WEBCOLLAGE-HELPER.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) WEBCOLLAGE-HELPER-COCOA.M
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) WHIRLWINDWARP.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) WHIRLYGIG.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) WORM.C
index 77597ca2ca0736c1e9c4450dda820e3731885194..af3616c2745c10b84d68caa23089c35cf19db27c 100644 (file)
@@ -4,8 +4,8 @@
             a screen saver and locker for the X window system
                             by Jamie Zawinski
 
-                              version 5.01b2
-                               18-Sep-2006
+                              version 5.02
+                               20-Apr-2007
 
                      http://www.jwz.org/xscreensaver/
 
index 6f267cd4200c8e77622c49001cbb69d5ca94d891..3b4a6b845a0c0a1fac4e0ccf9a548d55a05afed1 100644 (file)
@@ -9,7 +9,7 @@
           low="0" high="50000" default="10000"
           convert="invert"/>
 
-  <number id="delay" type="slider" arg="-delay2 %"
+  <number id="delay2" type="slider" arg="-delay2 %"
           _label="Pause" _low-label="Short" _high-label="Long"
           low="0" high="10" default="5"/>
 
index cb3c8a678fa3024983a4604c2ceab442bfd44c64..8e347b377d61f7aaab168b5ec13712f252bcc5c1 100644 (file)
@@ -10,7 +10,7 @@
           convert="invert"/>
 
   <number id="count" type="spinbutton" arg="-parts %"
-          _label="Parts" low="1" high="50" default="10"/>
+          _label="Parts" low="1" high="30" default="10"/>
 
   <boolean id="spin"   _label="Spin" arg-unset="-no-spin"/>
 
index 150d0cb190265c965d78f78d065d4997392655ea..b6110873655d36365a3e9c10572c2ea6be39ae16 100644 (file)
@@ -15,9 +15,8 @@
           convert="invert"/>
 
   <number id="spin" type="slider" arg="-spin %"
-          _label="Speed" _low-label="Stopped" _high-label="Whirlwind"
-          low="0" high="1.0" default="0.1"
-          convert="invert"/>
+          _label="Spin" _low-label="Stopped" _high-label="Whirlwind"
+          low="0" high="3.0" default="0.1"/>
 
   <select id="mode">
     <option id="tiles"  _label="Tiles"/>
index 4da4dcf16675a5c685ea2e4902b5d90f5a214e5f..24e12775732126cd9fc879f2f50f495ed370dab0 100644 (file)
@@ -20,7 +20,7 @@
             _label="Number of Colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="200"/>
 
-  <number id="ncolors" type="slider" arg="-size %"
+  <number id="size" type="slider" arg="-size %"
             _label="Length of trails" _low-label="Short" _high-label="Long"
             low="-20" high="-2" default="-10" convert="invert"/>
 
index 4b97c3c54ebfb04c63823484a0f9f1ae26ecfaef..d9b0f34b04f2156477c18ea9ed23f836b34743a4 100644 (file)
@@ -5,7 +5,7 @@
        <command arg="-root"/>
        
        <number id="count" type="spinbutton" arg="-count %"
-         _label="Number of Disks" default="0" low="0" high="200"/>
+         _label="Number of Disks" default="0" low="0" high="31"/>
        
        <boolean id="fog" _label="Enable fog" arg-set="-fog"/>
 
index 975eda927c94f4a9c2c582e19e4750ab60282770..a719a95181da780b9ea0904eebfc2a1db0481ce6 100644 (file)
@@ -13,7 +13,7 @@
           convert="invert"/>
 
   <boolean id="decay" _label="Orbital Decay" arg-unset="-no-decay"/>
-  <boolean id="decay" _label="Object Trails" arg-unset="-no-trail"/>
+  <boolean id="trail" _label="Object Trails" arg-unset="-no-trail"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
             _label="Number of Colors" _low-label="Two" _high-label="Many"
index 65dc2a7b7315d7f2040bca3d24a99241ec033e59..78972e1c34ae7fad91552713697c70e91a559a3d 100644 (file)
@@ -24,6 +24,8 @@
     _label="Number of Colours" _low-label="2" _high-label="Many"
     low="2" high="255" default="200" />
 
+<!-- <boolean id="multi" _label="Multi-colored" arg-unset="-no-multi"/> -->
+  
   <_description>
 
 This one draws spinning, colliding iterated-function-system images.
index 0fd9be32eec6340a60b60a7294437e51ae88a917..453be8c5dfb211d26f379d7aa391b51cfcc54fa3 100644 (file)
 
   <number id="cycles" type="slider" arg="-cycles %"
            _label="Steps" _low-label="Few" _high-label="Many"
-          low="1" high="1000" default="256"/>
+          low="1" high="1000" default="768"/>
 
   <number id="delay" type="slider" arg="-delay %"
           _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="25000"
+          low="0" high="50000" default="17000"
           convert="invert"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
             _label="Number of Colors" _low-label="Two" _high-label="Many"
-            low="1" high="255" default="200"/>
+            low="1" high="255" default="64"/>
 
   <number id="size" type="spinbutton" arg="-size %"
            _label="Size" low="-10" high="10" default="-1"/>
index 4aa4207f04257ab818a10ebd087fd8afea6d8e19..96f4b9ae2c37f8b39536cf2fb31c67306ca16cfe 100644 (file)
@@ -9,47 +9,54 @@
           low="0" high="20000" default="10000"
           convert="invert"/>
 
-  <number id="hold_time" type="slider" arg="-hold_time %"
-          _label="Time until loading a new image:"
-          _low-label="10 Seconds" _high-label="5 Minutes"
-          low="10" high="300" default="30"/>
-
-  <number id="fade_speed" type="slider" arg="-fade_time %"
-          _label="Crossfade Duration:"
-          _low-label="None" _high-label="30 Seconds"
-          low="0" high="30" default="5"/>
-
-<!--
-  <number id="x_res" type="slider" arg="-x_res %"
-          _label="X Resolution" low="5" high="500" default="60"/>
-
-  <number id="y_res" type="slider" arg="-y_res %"
-          _label="Y Resolution" low="5" high="500" default="32"/>
-
-  <number id="field_points" type="slider" arg="-field_points %"
-          _label="Field Points" low="0" high="50" default="10"/>
--->
-
-  <xscreensaver-image />
-
-  <select id="Calculation Method">
-    <option id="blobby"   _label="Blobby"/>
-    <option id="calm"     _label="Calm"           arg-set="-incremental 1"/>
-    <option id="freaky"   _label="Freaky"       arg-set="-incremental 3"/>
-    <option id="vfreaky"  _label="Very Freaky" arg-set="-incremental 2"/>
+  <number id="zoom" type="slider" arg="-zoom %"
+          _label="Zoom"
+          _low-label="0.1x" _high-label="3.0x"
+          low="0.1" high="3.0" default="1.0"/>
+
+  <number id="hold_time" type="slider" arg="-hold-time %"
+          _label="Time until loading a new image"
+          _low-label="5 Sec" _high-label="5 Min"
+          low="5.0" high="300.0" default="30.0"/>
+
+  <number id="fade_speed" type="slider" arg="-fade-time %"
+          _label="Transition Duration"
+          _low-label="None" _high-label="30 Sec"
+          low="0.0" high="30.0" default="5.0"/>
+
+  <number id="resolution" type="slider" arg="-resolution %"
+           _low-label="Low" _high-label="High"
+           _label="Resolution" low="4" high="50" default="16"/>
+
+  <number id="bumps" type="slider" arg="-bumps %"
+          _low-label="None" _high-label="50 bumps"
+          _label="Bumps" low="0" high="50" default="10"/>
+
+  <number id="blend" type="slider" arg="-blend %"
+          _low-label="Clear" _high-label="Opaque"
+          _label="Transparency" low="0.1" high="1.0" default="0.0"/>
+
+  <select id="render">
+      <option id="wire"  _label="Wireframe" arg-set="-wire"/>
+      <option id="solid" _label="Solid Surface"/>
   </select>
 
-  <boolean id="walls" _label="Enable Walls" arg-unset="-no-walls"/>
+   <hgroup>
+   <vgroup>
+  <boolean id="walls" _label="Enable Walls" arg-set="-walls"/>
   <boolean id="colour" _label="Enable Colouring" arg-set="-colour"/>
   <boolean id="texture" _label="Enable Reflected Image" arg-unset="-no-texture"/>
-  <boolean id="offset_texture" _label="Offset Texture Coordinates" arg-set="-offset_texture"/>
-
-  <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
+   </vgroup>
+   <vgroup>
+  <boolean id="backgound" _label="Show image on background" arg-unset="-no-paint-background"/>
+  <boolean id="offset_texture" _label="Offset Texture Coordinates" arg-set="-offset-texture"/>
   <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+   </vgroup>
+  </hgroup>
 
   <_description>
 Draws a wobbly blob that distorts the image behind it.
-
+Requires OpenGL hardware acceleration for nice animation.
 Written by Jon Dowdall; 2003.
   </_description>
 </screensaver>
index 10455a6b3e8f6e7ff3087c5f88e9f34e8cd64e6f..a2998f362f204af136028ed04a94762f6a77d4b6 100644 (file)
@@ -33,7 +33,7 @@
           _label="Fertility" _low-label="Low" _high-label="High"
           low="0.0" high="0.25" default="0.0015"/>
 
-  <number id="anychan" type="slider" arg="-minorchan %"
+  <number id="minorchan" type="slider" arg="-minorchan %"
           _label="Offspring" _low-label="Few" _high-label="Many"
           low="0.0" high="1.0" default="0.5"/>
 
index 6cce501b3f4bdcb0390a758dce9f960d11a88f74..f48a0de5a985687dd08d5132835e09aea53ceeba 100644 (file)
@@ -10,7 +10,7 @@
     <option id="fit"    _label="Bolted Fittings"/>
   </select>
 
-  <number id="size" type="slider" arg="-cycles %"
+  <number id="cycles" type="slider" arg="-cycles %"
           _label="Number of Pipes" _low-label="One" _high-label="A Hundred"
           low="1" high="100" default="10"/>
 
index 746da2bc73d6e52e60f97cbe365dbe04ca120b90..f91ee51622613ca5caec64ecf8acd75a93db72c9 100644 (file)
@@ -10,7 +10,8 @@
 
   <number id="delay" type="slider" arg="-delay %"
           _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="250000" default="20000"/>
+          low="0" high="250000" default="20000"
+          convert="invert"/>
 
   <number id="speed" type="slider" arg="-speed %"
            _label="Wander Speed" _low-label="Slow" _high-label="Fast"
index 746da2bc73d6e52e60f97cbe365dbe04ca120b90..f91ee51622613ca5caec64ecf8acd75a93db72c9 100644 (file)
@@ -10,7 +10,8 @@
 
   <number id="delay" type="slider" arg="-delay %"
           _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="250000" default="20000"/>
+          low="0" high="250000" default="20000"
+          convert="invert"/>
 
   <number id="speed" type="slider" arg="-speed %"
            _label="Wander Speed" _low-label="Slow" _high-label="Fast"
index 3b2229126f841f9fd8c9fb225117f428f4051df0..dd78444212340c763e2cf1a6a243201a2e25283d 100644 (file)
@@ -18,7 +18,7 @@
 
   <hgroup>
     <boolean id="rotate" _label="Rotation" arg-unset="-no-rotate"/>
-    <boolean id="rotate" _label="Steering" arg-unset="-no-move"/>
+    <boolean id="steer" _label="Steering" arg-unset="-no-move"/>
   </hgroup>
   <boolean id="3d" _label="Do Red/Blue 3D separation" arg-set="-3d"/>
 
index 9ba8dcbae8f56420b0ecf6aabd1ab1bcb3050406..63c6f349acd79dfd147e36d11bb356645355b337 100644 (file)
@@ -43,7 +43,7 @@
 
   <hgroup>
     <boolean id="smooth" _label="Anti-aliased Lines" arg-unset="-no-smooth"/>
-    <boolean id="fade"   _label="Thick Lines"        arg-unset="-no-thick"/>
+    <boolean id="thick"  _label="Thick Lines"        arg-unset="-no-thick"/>
     <boolean id="fade"   _label="Fade Out"           arg-unset="-no-fade"/>
   </hgroup>
 
index 191985098979969dca514f2299fd0d871c768de1..2e6fd72741cec6fb20340206a1eea818c4ebfb8e 100644 (file)
@@ -637,8 +637,8 @@ molecule:   molecule.o      $(MOLECULE_OBJS)
 gleidescope:   gleidescope.o   xpm-ximage.o $(HACK_GRAB_OBJS)
        $(CC_HACK) -o $@ $@.o   xpm-ximage.o $(HACK_GRAB_OBJS) $(XPM_LIBS)
 
-mirrorblob:    mirrorblob.o    $(HACK_GRAB_OBJS)
-       $(CC_HACK) -o $@ $@.o   $(HACK_GRAB_OBJS) $(XPM_LIBS)
+mirrorblob:    mirrorblob.o    $(HACK_TRACK_GRAB_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_GRAB_OBJS) $(XPM_LIBS)
 
 blinkbox:      blinkbox.o      sphere.o $(HACK_OBJS)
        $(CC_HACK) -o $@ $@.o   sphere.o $(HACK_OBJS) $(HACK_LIBS)
@@ -707,18 +707,62 @@ glschool: $(SCHOOL_OBJS)
 
 antinspect.o: ../../config.h
 antinspect.o: $(srcdir)/gltrackball.h
+antinspect.o: $(HACK_SRC)/screenhackI.h
+antinspect.o: $(UTILS_SRC)/colors.h
+antinspect.o: $(UTILS_SRC)/grabscreen.h
+antinspect.o: $(UTILS_SRC)/hsv.h
+antinspect.o: $(UTILS_SRC)/resources.h
+antinspect.o: $(UTILS_SRC)/usleep.h
+antinspect.o: $(UTILS_SRC)/visual.h
+antinspect.o: $(UTILS_SRC)/xshm.h
+antinspect.o: $(UTILS_SRC)/yarandom.h
+antinspect.o: $(HACK_SRC)/xlockmoreI.h
+antinspect.o: $(HACK_SRC)/xlockmore.h
 antmaze.o: $(srcdir)/ants.h
 antmaze.o: ../../config.h
 antmaze.o: $(srcdir)/gltrackball.h
 antmaze.o: $(srcdir)/rotator.h
+antmaze.o: $(HACK_SRC)/screenhackI.h
+antmaze.o: $(UTILS_SRC)/colors.h
+antmaze.o: $(UTILS_SRC)/grabscreen.h
+antmaze.o: $(UTILS_SRC)/hsv.h
+antmaze.o: $(UTILS_SRC)/resources.h
+antmaze.o: $(UTILS_SRC)/usleep.h
+antmaze.o: $(UTILS_SRC)/visual.h
+antmaze.o: $(UTILS_SRC)/xshm.h
+antmaze.o: $(UTILS_SRC)/yarandom.h
+antmaze.o: $(HACK_SRC)/xlockmoreI.h
+antmaze.o: $(HACK_SRC)/xlockmore.h
 antspotlight.o: $(srcdir)/ants.h
 antspotlight.o: ../../config.h
 antspotlight.o: $(srcdir)/gltrackball.h
 antspotlight.o: $(srcdir)/grab-ximage.h
 antspotlight.o: $(srcdir)/rotator.h
+antspotlight.o: $(HACK_SRC)/screenhackI.h
+antspotlight.o: $(UTILS_SRC)/colors.h
+antspotlight.o: $(UTILS_SRC)/grabscreen.h
+antspotlight.o: $(UTILS_SRC)/hsv.h
+antspotlight.o: $(UTILS_SRC)/resources.h
+antspotlight.o: $(UTILS_SRC)/usleep.h
+antspotlight.o: $(UTILS_SRC)/visual.h
+antspotlight.o: $(UTILS_SRC)/xshm.h
+antspotlight.o: $(UTILS_SRC)/yarandom.h
+antspotlight.o: $(HACK_SRC)/xlockmoreI.h
+antspotlight.o: $(HACK_SRC)/xlockmore.h
 atlantis.o: $(srcdir)/atlantis.h
 atlantis.o: ../../config.h
 atlantis.o: $(HACK_SRC)/images/sea-texture.xpm
+atlantis.o: $(HACK_SRC)/screenhackI.h
+atlantis.o: $(UTILS_SRC)/colors.h
+atlantis.o: $(UTILS_SRC)/grabscreen.h
+atlantis.o: $(UTILS_SRC)/hsv.h
+atlantis.o: $(UTILS_SRC)/resources.h
+atlantis.o: $(UTILS_SRC)/usleep.h
+atlantis.o: $(UTILS_SRC)/visual.h
+atlantis.o: $(UTILS_SRC)/xshm.h
+atlantis.o: $(UTILS_SRC)/yarandom.h
+atlantis.o: $(HACK_SRC)/xlockmoreI.h
+atlantis.o: $(HACK_SRC)/xlockmore.h
 atlantis.o: $(srcdir)/xpm-ximage.h
 atunnel.o: ../../config.h
 atunnel.o: $(HACK_SRC)/images/tunnel0.xpm
@@ -727,41 +771,181 @@ 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: $(HACK_SRC)/screenhackI.h
 atunnel.o: $(srcdir)/tunnel_draw.h
+atunnel.o: $(UTILS_SRC)/colors.h
+atunnel.o: $(UTILS_SRC)/grabscreen.h
+atunnel.o: $(UTILS_SRC)/hsv.h
+atunnel.o: $(UTILS_SRC)/resources.h
+atunnel.o: $(UTILS_SRC)/usleep.h
+atunnel.o: $(UTILS_SRC)/visual.h
+atunnel.o: $(UTILS_SRC)/xshm.h
+atunnel.o: $(UTILS_SRC)/yarandom.h
+atunnel.o: $(HACK_SRC)/xlockmoreI.h
+atunnel.o: $(HACK_SRC)/xlockmore.h
 atunnel.o: $(srcdir)/xpm-ximage.h
 b_draw.o: $(srcdir)/bubble3d.h
 b_draw.o: ../../config.h
+b_draw.o: $(HACK_SRC)/screenhackI.h
+b_draw.o: $(UTILS_SRC)/colors.h
+b_draw.o: $(UTILS_SRC)/grabscreen.h
+b_draw.o: $(UTILS_SRC)/hsv.h
+b_draw.o: $(UTILS_SRC)/resources.h
+b_draw.o: $(UTILS_SRC)/usleep.h
+b_draw.o: $(UTILS_SRC)/visual.h
+b_draw.o: $(UTILS_SRC)/xshm.h
+b_draw.o: $(UTILS_SRC)/yarandom.h
+b_draw.o: $(HACK_SRC)/xlockmoreI.h
 blinkbox.o: ../../config.h
+blinkbox.o: $(HACK_SRC)/screenhackI.h
 blinkbox.o: $(srcdir)/sphere.h
+blinkbox.o: $(UTILS_SRC)/colors.h
+blinkbox.o: $(UTILS_SRC)/grabscreen.h
+blinkbox.o: $(UTILS_SRC)/hsv.h
+blinkbox.o: $(UTILS_SRC)/resources.h
+blinkbox.o: $(UTILS_SRC)/usleep.h
+blinkbox.o: $(UTILS_SRC)/visual.h
+blinkbox.o: $(UTILS_SRC)/xshm.h
+blinkbox.o: $(UTILS_SRC)/yarandom.h
+blinkbox.o: $(HACK_SRC)/xlockmoreI.h
+blinkbox.o: $(HACK_SRC)/xlockmore.h
 b_lockglue.o: $(srcdir)/bubble3d.h
 b_lockglue.o: ../../config.h
+b_lockglue.o: $(HACK_SRC)/screenhackI.h
+b_lockglue.o: $(UTILS_SRC)/colors.h
+b_lockglue.o: $(UTILS_SRC)/grabscreen.h
+b_lockglue.o: $(UTILS_SRC)/hsv.h
+b_lockglue.o: $(UTILS_SRC)/resources.h
+b_lockglue.o: $(UTILS_SRC)/usleep.h
+b_lockglue.o: $(UTILS_SRC)/visual.h
+b_lockglue.o: $(UTILS_SRC)/xshm.h
+b_lockglue.o: $(UTILS_SRC)/yarandom.h
+b_lockglue.o: $(HACK_SRC)/xlockmoreI.h
+b_lockglue.o: $(HACK_SRC)/xlockmore.h
 blocktube.o: ../../config.h
 blocktube.o: $(HACK_SRC)/images/blocktube.xpm
+blocktube.o: $(HACK_SRC)/screenhackI.h
+blocktube.o: $(UTILS_SRC)/colors.h
+blocktube.o: $(UTILS_SRC)/grabscreen.h
+blocktube.o: $(UTILS_SRC)/hsv.h
+blocktube.o: $(UTILS_SRC)/resources.h
+blocktube.o: $(UTILS_SRC)/usleep.h
+blocktube.o: $(UTILS_SRC)/visual.h
+blocktube.o: $(UTILS_SRC)/xshm.h
+blocktube.o: $(UTILS_SRC)/yarandom.h
+blocktube.o: $(HACK_SRC)/xlockmoreI.h
+blocktube.o: $(HACK_SRC)/xlockmore.h
 blocktube.o: $(srcdir)/xpm-ximage.h
 boing.o: ../../config.h
 boing.o: $(srcdir)/gltrackball.h
+boing.o: $(HACK_SRC)/screenhackI.h
+boing.o: $(UTILS_SRC)/colors.h
+boing.o: $(UTILS_SRC)/grabscreen.h
+boing.o: $(UTILS_SRC)/hsv.h
+boing.o: $(UTILS_SRC)/resources.h
+boing.o: $(UTILS_SRC)/usleep.h
+boing.o: $(UTILS_SRC)/visual.h
+boing.o: $(UTILS_SRC)/xshm.h
+boing.o: $(UTILS_SRC)/yarandom.h
+boing.o: $(HACK_SRC)/xlockmoreI.h
+boing.o: $(HACK_SRC)/xlockmore.h
 bouncingcow.o: ../../config.h
 bouncingcow.o: $(srcdir)/gllist.h
 bouncingcow.o: $(srcdir)/gltrackball.h
 bouncingcow.o: $(srcdir)/rotator.h
+bouncingcow.o: $(HACK_SRC)/screenhackI.h
+bouncingcow.o: $(UTILS_SRC)/colors.h
+bouncingcow.o: $(UTILS_SRC)/grabscreen.h
+bouncingcow.o: $(UTILS_SRC)/hsv.h
+bouncingcow.o: $(UTILS_SRC)/resources.h
+bouncingcow.o: $(UTILS_SRC)/usleep.h
+bouncingcow.o: $(UTILS_SRC)/visual.h
+bouncingcow.o: $(UTILS_SRC)/xshm.h
+bouncingcow.o: $(UTILS_SRC)/yarandom.h
+bouncingcow.o: $(HACK_SRC)/xlockmoreI.h
+bouncingcow.o: $(HACK_SRC)/xlockmore.h
 bouncingcow.o: $(srcdir)/xpm-ximage.h
 boxed.o: $(srcdir)/boxed.h
 boxed.o: ../../config.h
+boxed.o: $(HACK_SRC)/screenhackI.h
+boxed.o: $(UTILS_SRC)/colors.h
+boxed.o: $(UTILS_SRC)/grabscreen.h
+boxed.o: $(UTILS_SRC)/hsv.h
+boxed.o: $(UTILS_SRC)/resources.h
+boxed.o: $(UTILS_SRC)/usleep.h
+boxed.o: $(UTILS_SRC)/visual.h
+boxed.o: $(UTILS_SRC)/xshm.h
+boxed.o: $(UTILS_SRC)/yarandom.h
+boxed.o: $(HACK_SRC)/xlockmoreI.h
+boxed.o: $(HACK_SRC)/xlockmore.h
 b_sphere.o: $(srcdir)/bubble3d.h
 b_sphere.o: ../../config.h
+b_sphere.o: $(HACK_SRC)/screenhackI.h
+b_sphere.o: $(UTILS_SRC)/colors.h
+b_sphere.o: $(UTILS_SRC)/grabscreen.h
+b_sphere.o: $(UTILS_SRC)/hsv.h
+b_sphere.o: $(UTILS_SRC)/resources.h
+b_sphere.o: $(UTILS_SRC)/usleep.h
+b_sphere.o: $(UTILS_SRC)/visual.h
+b_sphere.o: $(UTILS_SRC)/xshm.h
+b_sphere.o: $(UTILS_SRC)/yarandom.h
+b_sphere.o: $(HACK_SRC)/xlockmoreI.h
 bubble3d.o: $(srcdir)/bubble3d.h
 bubble3d.o: ../../config.h
+bubble3d.o: $(HACK_SRC)/screenhackI.h
+bubble3d.o: $(UTILS_SRC)/colors.h
+bubble3d.o: $(UTILS_SRC)/grabscreen.h
+bubble3d.o: $(UTILS_SRC)/hsv.h
+bubble3d.o: $(UTILS_SRC)/resources.h
+bubble3d.o: $(UTILS_SRC)/usleep.h
+bubble3d.o: $(UTILS_SRC)/visual.h
+bubble3d.o: $(UTILS_SRC)/xshm.h
+bubble3d.o: $(UTILS_SRC)/yarandom.h
+bubble3d.o: $(HACK_SRC)/xlockmoreI.h
 buildlwo.o: $(srcdir)/buildlwo.h
 cage.o: ../../config.h
 cage.o: $(srcdir)/e_textures.h
+cage.o: $(HACK_SRC)/screenhackI.h
+cage.o: $(UTILS_SRC)/colors.h
+cage.o: $(UTILS_SRC)/grabscreen.h
+cage.o: $(UTILS_SRC)/hsv.h
+cage.o: $(UTILS_SRC)/resources.h
+cage.o: $(UTILS_SRC)/usleep.h
+cage.o: $(UTILS_SRC)/visual.h
+cage.o: $(UTILS_SRC)/xshm.h
+cage.o: $(UTILS_SRC)/yarandom.h
+cage.o: $(HACK_SRC)/xlockmoreI.h
+cage.o: $(HACK_SRC)/xlockmore.h
 carousel.o: ../../config.h
 carousel.o: $(srcdir)/gltrackball.h
 carousel.o: $(srcdir)/grab-ximage.h
 carousel.o: $(srcdir)/rotator.h
+carousel.o: $(HACK_SRC)/screenhackI.h
 carousel.o: $(srcdir)/texfont.h
+carousel.o: $(UTILS_SRC)/colors.h
+carousel.o: $(UTILS_SRC)/grabscreen.h
+carousel.o: $(UTILS_SRC)/hsv.h
+carousel.o: $(UTILS_SRC)/resources.h
+carousel.o: $(UTILS_SRC)/usleep.h
+carousel.o: $(UTILS_SRC)/visual.h
+carousel.o: $(UTILS_SRC)/xshm.h
+carousel.o: $(UTILS_SRC)/yarandom.h
+carousel.o: $(HACK_SRC)/xlockmoreI.h
+carousel.o: $(HACK_SRC)/xlockmore.h
 chessmodels.o: $(srcdir)/chessmodels.h
 circuit.o: ../../config.h
 circuit.o: $(srcdir)/font-ximage.h
+circuit.o: $(HACK_SRC)/screenhackI.h
+circuit.o: $(UTILS_SRC)/colors.h
+circuit.o: $(UTILS_SRC)/grabscreen.h
+circuit.o: $(UTILS_SRC)/hsv.h
+circuit.o: $(UTILS_SRC)/resources.h
+circuit.o: $(UTILS_SRC)/usleep.h
+circuit.o: $(UTILS_SRC)/visual.h
+circuit.o: $(UTILS_SRC)/xshm.h
+circuit.o: $(UTILS_SRC)/yarandom.h
+circuit.o: $(HACK_SRC)/xlockmoreI.h
+circuit.o: $(HACK_SRC)/xlockmore.h
 cow_face.o: $(srcdir)/gllist.h
 cow_hide.o: $(srcdir)/gllist.h
 cow_hoofs.o: $(srcdir)/gllist.h
@@ -769,33 +953,129 @@ cow_horns.o: $(srcdir)/gllist.h
 cow_tail.o: $(srcdir)/gllist.h
 cow_udder.o: $(srcdir)/gllist.h
 crackberg.o: ../../config.h
+crackberg.o: $(HACK_SRC)/screenhackI.h
+crackberg.o: $(UTILS_SRC)/colors.h
+crackberg.o: $(UTILS_SRC)/grabscreen.h
+crackberg.o: $(UTILS_SRC)/hsv.h
+crackberg.o: $(UTILS_SRC)/resources.h
+crackberg.o: $(UTILS_SRC)/usleep.h
+crackberg.o: $(UTILS_SRC)/visual.h
+crackberg.o: $(UTILS_SRC)/xshm.h
+crackberg.o: $(UTILS_SRC)/yarandom.h
+crackberg.o: $(HACK_SRC)/xlockmoreI.h
+crackberg.o: $(HACK_SRC)/xlockmore.h
 cube21.o: ../../config.h
+cube21.o: $(HACK_SRC)/screenhackI.h
+cube21.o: $(UTILS_SRC)/colors.h
+cube21.o: $(UTILS_SRC)/grabscreen.h
+cube21.o: $(UTILS_SRC)/hsv.h
+cube21.o: $(UTILS_SRC)/resources.h
+cube21.o: $(UTILS_SRC)/usleep.h
+cube21.o: $(UTILS_SRC)/visual.h
+cube21.o: $(UTILS_SRC)/xshm.h
+cube21.o: $(UTILS_SRC)/yarandom.h
+cube21.o: $(HACK_SRC)/xlockmoreI.h
+cube21.o: $(HACK_SRC)/xlockmore.h
 cubenetic.o: ../../config.h
 cubenetic.o: $(srcdir)/gltrackball.h
 cubenetic.o: $(srcdir)/rotator.h
+cubenetic.o: $(HACK_SRC)/screenhackI.h
+cubenetic.o: $(UTILS_SRC)/colors.h
+cubenetic.o: $(UTILS_SRC)/grabscreen.h
+cubenetic.o: $(UTILS_SRC)/hsv.h
+cubenetic.o: $(UTILS_SRC)/resources.h
+cubenetic.o: $(UTILS_SRC)/usleep.h
+cubenetic.o: $(UTILS_SRC)/visual.h
+cubenetic.o: $(UTILS_SRC)/xshm.h
+cubenetic.o: $(UTILS_SRC)/yarandom.h
+cubenetic.o: $(HACK_SRC)/xlockmoreI.h
+cubenetic.o: $(HACK_SRC)/xlockmore.h
 cubestorm.o: ../../config.h
 cubestorm.o: $(srcdir)/gltrackball.h
 cubestorm.o: $(srcdir)/rotator.h
+cubestorm.o: $(HACK_SRC)/screenhackI.h
+cubestorm.o: $(UTILS_SRC)/colors.h
+cubestorm.o: $(UTILS_SRC)/grabscreen.h
+cubestorm.o: $(UTILS_SRC)/hsv.h
+cubestorm.o: $(UTILS_SRC)/resources.h
+cubestorm.o: $(UTILS_SRC)/usleep.h
+cubestorm.o: $(UTILS_SRC)/visual.h
+cubestorm.o: $(UTILS_SRC)/xshm.h
+cubestorm.o: $(UTILS_SRC)/yarandom.h
+cubestorm.o: $(HACK_SRC)/xlockmoreI.h
+cubestorm.o: $(HACK_SRC)/xlockmore.h
 dangerball.o: ../../config.h
 dangerball.o: $(srcdir)/gltrackball.h
 dangerball.o: $(srcdir)/rotator.h
+dangerball.o: $(HACK_SRC)/screenhackI.h
 dangerball.o: $(srcdir)/sphere.h
 dangerball.o: $(srcdir)/tube.h
+dangerball.o: $(UTILS_SRC)/colors.h
+dangerball.o: $(UTILS_SRC)/grabscreen.h
+dangerball.o: $(UTILS_SRC)/hsv.h
+dangerball.o: $(UTILS_SRC)/resources.h
+dangerball.o: $(UTILS_SRC)/usleep.h
+dangerball.o: $(UTILS_SRC)/visual.h
+dangerball.o: $(UTILS_SRC)/xshm.h
+dangerball.o: $(UTILS_SRC)/yarandom.h
+dangerball.o: $(HACK_SRC)/xlockmoreI.h
+dangerball.o: $(HACK_SRC)/xlockmore.h
 dnalogo.o: ../../config.h
 dnalogo.o: $(srcdir)/gltrackball.h
 dnalogo.o: $(srcdir)/normals.h
 dnalogo.o: $(srcdir)/rotator.h
+dnalogo.o: $(HACK_SRC)/screenhackI.h
 dnalogo.o: $(srcdir)/tube.h
+dnalogo.o: $(UTILS_SRC)/colors.h
+dnalogo.o: $(UTILS_SRC)/grabscreen.h
+dnalogo.o: $(UTILS_SRC)/hsv.h
+dnalogo.o: $(UTILS_SRC)/resources.h
+dnalogo.o: $(UTILS_SRC)/usleep.h
+dnalogo.o: $(UTILS_SRC)/visual.h
+dnalogo.o: $(UTILS_SRC)/xshm.h
+dnalogo.o: $(UTILS_SRC)/yarandom.h
+dnalogo.o: $(HACK_SRC)/xlockmoreI.h
+dnalogo.o: $(HACK_SRC)/xlockmore.h
 dolphin.o: $(srcdir)/atlantis.h
 dolphin.o: ../../config.h
+dolphin.o: $(HACK_SRC)/screenhackI.h
+dolphin.o: $(UTILS_SRC)/colors.h
+dolphin.o: $(UTILS_SRC)/grabscreen.h
+dolphin.o: $(UTILS_SRC)/hsv.h
+dolphin.o: $(UTILS_SRC)/resources.h
+dolphin.o: $(UTILS_SRC)/usleep.h
+dolphin.o: $(UTILS_SRC)/visual.h
+dolphin.o: $(UTILS_SRC)/yarandom.h
 endgame.o: $(srcdir)/chessgames.h
 endgame.o: $(srcdir)/chessmodels.h
 endgame.o: ../../config.h
 endgame.o: $(srcdir)/gltrackball.h
+endgame.o: $(HACK_SRC)/screenhackI.h
+endgame.o: $(UTILS_SRC)/colors.h
+endgame.o: $(UTILS_SRC)/grabscreen.h
+endgame.o: $(UTILS_SRC)/hsv.h
+endgame.o: $(UTILS_SRC)/resources.h
+endgame.o: $(UTILS_SRC)/usleep.h
+endgame.o: $(UTILS_SRC)/visual.h
+endgame.o: $(UTILS_SRC)/xshm.h
+endgame.o: $(UTILS_SRC)/yarandom.h
+endgame.o: $(HACK_SRC)/xlockmoreI.h
+endgame.o: $(HACK_SRC)/xlockmore.h
 engine.o: ../../config.h
 engine.o: $(srcdir)/gltrackball.h
 engine.o: $(srcdir)/glxfonts.h
 engine.o: $(srcdir)/rotator.h
+engine.o: $(HACK_SRC)/screenhackI.h
+engine.o: $(UTILS_SRC)/colors.h
+engine.o: $(UTILS_SRC)/grabscreen.h
+engine.o: $(UTILS_SRC)/hsv.h
+engine.o: $(UTILS_SRC)/resources.h
+engine.o: $(UTILS_SRC)/usleep.h
+engine.o: $(UTILS_SRC)/visual.h
+engine.o: $(UTILS_SRC)/xshm.h
+engine.o: $(UTILS_SRC)/yarandom.h
+engine.o: $(HACK_SRC)/xlockmoreI.h
+engine.o: $(HACK_SRC)/xlockmore.h
 extrusion-helix2.o: ../../config.h
 extrusion-helix2.o: $(srcdir)/extrusion.h
 extrusion-helix3.o: ../../config.h
@@ -808,6 +1088,17 @@ extrusion.o: ../../config.h
 extrusion.o: $(srcdir)/extrusion.h
 extrusion.o: $(srcdir)/gltrackball.h
 extrusion.o: $(srcdir)/rotator.h
+extrusion.o: $(HACK_SRC)/screenhackI.h
+extrusion.o: $(UTILS_SRC)/colors.h
+extrusion.o: $(UTILS_SRC)/grabscreen.h
+extrusion.o: $(UTILS_SRC)/hsv.h
+extrusion.o: $(UTILS_SRC)/resources.h
+extrusion.o: $(UTILS_SRC)/usleep.h
+extrusion.o: $(UTILS_SRC)/visual.h
+extrusion.o: $(UTILS_SRC)/xshm.h
+extrusion.o: $(UTILS_SRC)/yarandom.h
+extrusion.o: $(HACK_SRC)/xlockmoreI.h
+extrusion.o: $(HACK_SRC)/xlockmore.h
 extrusion.o: $(srcdir)/xpm-ximage.h
 extrusion-screw.o: ../../config.h
 extrusion-screw.o: $(srcdir)/extrusion.h
@@ -817,76 +1108,245 @@ extrusion-twistoid.o: ../../config.h
 extrusion-twistoid.o: $(srcdir)/extrusion.h
 flipflop.o: ../../config.h
 flipflop.o: $(srcdir)/gltrackball.h
+flipflop.o: $(HACK_SRC)/screenhackI.h
+flipflop.o: $(UTILS_SRC)/colors.h
+flipflop.o: $(UTILS_SRC)/grabscreen.h
+flipflop.o: $(UTILS_SRC)/hsv.h
+flipflop.o: $(UTILS_SRC)/resources.h
+flipflop.o: $(UTILS_SRC)/usleep.h
+flipflop.o: $(UTILS_SRC)/visual.h
+flipflop.o: $(UTILS_SRC)/xshm.h
+flipflop.o: $(UTILS_SRC)/yarandom.h
+flipflop.o: $(HACK_SRC)/xlockmoreI.h
+flipflop.o: $(HACK_SRC)/xlockmore.h
 flipscreen3d.o: ../../config.h
 flipscreen3d.o: $(srcdir)/gltrackball.h
 flipscreen3d.o: $(srcdir)/grab-ximage.h
+flipscreen3d.o: $(HACK_SRC)/screenhackI.h
+flipscreen3d.o: $(UTILS_SRC)/colors.h
+flipscreen3d.o: $(UTILS_SRC)/grabscreen.h
+flipscreen3d.o: $(UTILS_SRC)/hsv.h
+flipscreen3d.o: $(UTILS_SRC)/resources.h
+flipscreen3d.o: $(UTILS_SRC)/usleep.h
+flipscreen3d.o: $(UTILS_SRC)/visual.h
+flipscreen3d.o: $(UTILS_SRC)/xshm.h
+flipscreen3d.o: $(UTILS_SRC)/yarandom.h
+flipscreen3d.o: $(HACK_SRC)/xlockmoreI.h
+flipscreen3d.o: $(HACK_SRC)/xlockmore.h
 fliptext.o: ../../config.h
+fliptext.o: $(HACK_SRC)/screenhackI.h
 fliptext.o: $(srcdir)/texfont.h
+fliptext.o: $(UTILS_SRC)/colors.h
+fliptext.o: $(UTILS_SRC)/grabscreen.h
+fliptext.o: $(UTILS_SRC)/hsv.h
+fliptext.o: $(UTILS_SRC)/resources.h
+fliptext.o: $(UTILS_SRC)/usleep.h
+fliptext.o: $(UTILS_SRC)/visual.h
+fliptext.o: $(UTILS_SRC)/xshm.h
+fliptext.o: $(UTILS_SRC)/yarandom.h
+fliptext.o: $(HACK_SRC)/xlockmoreI.h
+fliptext.o: $(HACK_SRC)/xlockmore.h
 flurry.o: ../../config.h
 flurry.o: $(srcdir)/flurry.h
 flurry.o: $(srcdir)/gltrackball.h
 flurry.o: $(srcdir)/rotator.h
+flurry.o: $(HACK_SRC)/screenhackI.h
+flurry.o: $(UTILS_SRC)/colors.h
+flurry.o: $(UTILS_SRC)/grabscreen.h
+flurry.o: $(UTILS_SRC)/hsv.h
+flurry.o: $(UTILS_SRC)/resources.h
+flurry.o: $(UTILS_SRC)/usleep.h
+flurry.o: $(UTILS_SRC)/visual.h
+flurry.o: $(UTILS_SRC)/xshm.h
+flurry.o: $(UTILS_SRC)/yarandom.h
+flurry.o: $(HACK_SRC)/xlockmoreI.h
+flurry.o: $(HACK_SRC)/xlockmore.h
 flurry-smoke.o: ../../config.h
 flurry-smoke.o: $(srcdir)/flurry.h
 flurry-smoke.o: $(srcdir)/gltrackball.h
 flurry-smoke.o: $(srcdir)/rotator.h
+flurry-smoke.o: $(UTILS_SRC)/yarandom.h
 flurry-spark.o: ../../config.h
 flurry-spark.o: $(srcdir)/flurry.h
 flurry-spark.o: $(srcdir)/gltrackball.h
 flurry-spark.o: $(srcdir)/rotator.h
+flurry-spark.o: $(UTILS_SRC)/yarandom.h
 flurry-star.o: ../../config.h
 flurry-star.o: $(srcdir)/flurry.h
 flurry-star.o: $(srcdir)/gltrackball.h
 flurry-star.o: $(srcdir)/rotator.h
+flurry-star.o: $(UTILS_SRC)/yarandom.h
 flurry-texture.o: ../../config.h
 flurry-texture.o: $(srcdir)/flurry.h
 flurry-texture.o: $(srcdir)/gltrackball.h
 flurry-texture.o: $(srcdir)/rotator.h
+flurry-texture.o: $(UTILS_SRC)/yarandom.h
 flyingtoasters.o: ../../config.h
 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: $(HACK_SRC)/screenhackI.h
+flyingtoasters.o: $(UTILS_SRC)/colors.h
+flyingtoasters.o: $(UTILS_SRC)/grabscreen.h
+flyingtoasters.o: $(UTILS_SRC)/hsv.h
+flyingtoasters.o: $(UTILS_SRC)/resources.h
+flyingtoasters.o: $(UTILS_SRC)/usleep.h
+flyingtoasters.o: $(UTILS_SRC)/visual.h
+flyingtoasters.o: $(UTILS_SRC)/xshm.h
+flyingtoasters.o: $(UTILS_SRC)/yarandom.h
+flyingtoasters.o: $(HACK_SRC)/xlockmoreI.h
+flyingtoasters.o: $(HACK_SRC)/xlockmore.h
 flyingtoasters.o: $(srcdir)/xpm-ximage.h
 font-ximage.o: ../../config.h
 font-ximage.o: $(srcdir)/font-ximage.h
 fps.o: ../../config.h
+fps.o: $(HACK_SRC)/screenhackI.h
+fps.o: $(UTILS_SRC)/colors.h
+fps.o: $(UTILS_SRC)/grabscreen.h
+fps.o: $(UTILS_SRC)/hsv.h
+fps.o: $(UTILS_SRC)/resources.h
+fps.o: $(UTILS_SRC)/usleep.h
+fps.o: $(UTILS_SRC)/visual.h
+fps.o: $(UTILS_SRC)/xshm.h
+fps.o: $(UTILS_SRC)/yarandom.h
+fps.o: $(HACK_SRC)/xlockmoreI.h
 gears.o: ../../config.h
 gears.o: $(srcdir)/gltrackball.h
 gears.o: $(srcdir)/rotator.h
+gears.o: $(HACK_SRC)/screenhackI.h
+gears.o: $(UTILS_SRC)/colors.h
+gears.o: $(UTILS_SRC)/grabscreen.h
+gears.o: $(UTILS_SRC)/hsv.h
+gears.o: $(UTILS_SRC)/resources.h
+gears.o: $(UTILS_SRC)/usleep.h
+gears.o: $(UTILS_SRC)/visual.h
+gears.o: $(UTILS_SRC)/xshm.h
+gears.o: $(UTILS_SRC)/yarandom.h
+gears.o: $(HACK_SRC)/xlockmoreI.h
+gears.o: $(HACK_SRC)/xlockmore.h
 gflux.o: ../../config.h
 gflux.o: $(srcdir)/gltrackball.h
 gflux.o: $(srcdir)/grab-ximage.h
+gflux.o: $(HACK_SRC)/screenhackI.h
+gflux.o: $(UTILS_SRC)/colors.h
+gflux.o: $(UTILS_SRC)/grabscreen.h
+gflux.o: $(UTILS_SRC)/hsv.h
+gflux.o: $(UTILS_SRC)/resources.h
+gflux.o: $(UTILS_SRC)/usleep.h
+gflux.o: $(UTILS_SRC)/visual.h
+gflux.o: $(UTILS_SRC)/xshm.h
+gflux.o: $(UTILS_SRC)/yarandom.h
+gflux.o: $(HACK_SRC)/xlockmoreI.h
+gflux.o: $(HACK_SRC)/xlockmore.h
 glblur.o: ../../config.h
 glblur.o: $(srcdir)/gltrackball.h
 glblur.o: $(srcdir)/rotator.h
+glblur.o: $(HACK_SRC)/screenhackI.h
+glblur.o: $(UTILS_SRC)/colors.h
+glblur.o: $(UTILS_SRC)/grabscreen.h
+glblur.o: $(UTILS_SRC)/hsv.h
+glblur.o: $(UTILS_SRC)/resources.h
+glblur.o: $(UTILS_SRC)/usleep.h
+glblur.o: $(UTILS_SRC)/visual.h
+glblur.o: $(UTILS_SRC)/xshm.h
+glblur.o: $(UTILS_SRC)/yarandom.h
+glblur.o: $(HACK_SRC)/xlockmoreI.h
+glblur.o: $(HACK_SRC)/xlockmore.h
 gleidescope.o: ../../config.h
 gleidescope.o: $(srcdir)/grab-ximage.h
+gleidescope.o: $(HACK_SRC)/screenhackI.h
+gleidescope.o: $(UTILS_SRC)/colors.h
+gleidescope.o: $(UTILS_SRC)/grabscreen.h
+gleidescope.o: $(UTILS_SRC)/hsv.h
+gleidescope.o: $(UTILS_SRC)/resources.h
+gleidescope.o: $(UTILS_SRC)/usleep.h
+gleidescope.o: $(UTILS_SRC)/visual.h
+gleidescope.o: $(UTILS_SRC)/xshm.h
+gleidescope.o: $(UTILS_SRC)/yarandom.h
+gleidescope.o: $(HACK_SRC)/xlockmoreI.h
+gleidescope.o: $(HACK_SRC)/xlockmore.h
 gleidescope.o: $(srcdir)/xpm-ximage.h
 glforestfire.o: ../../config.h
 glforestfire.o: $(srcdir)/gltrackball.h
 glforestfire.o: $(HACK_SRC)/images/ground.xpm
 glforestfire.o: $(HACK_SRC)/images/tree.xpm
+glforestfire.o: $(HACK_SRC)/screenhackI.h
+glforestfire.o: $(UTILS_SRC)/colors.h
+glforestfire.o: $(UTILS_SRC)/grabscreen.h
+glforestfire.o: $(UTILS_SRC)/hsv.h
+glforestfire.o: $(UTILS_SRC)/resources.h
+glforestfire.o: $(UTILS_SRC)/usleep.h
+glforestfire.o: $(UTILS_SRC)/visual.h
+glforestfire.o: $(UTILS_SRC)/xshm.h
+glforestfire.o: $(UTILS_SRC)/yarandom.h
+glforestfire.o: $(HACK_SRC)/xlockmoreI.h
+glforestfire.o: $(HACK_SRC)/xlockmore.h
 glforestfire.o: $(srcdir)/xpm-ximage.h
 glhanoi.o: ../../config.h
 glhanoi.o: $(srcdir)/rotator.h
+glhanoi.o: $(HACK_SRC)/screenhackI.h
+glhanoi.o: $(UTILS_SRC)/colors.h
+glhanoi.o: $(UTILS_SRC)/grabscreen.h
+glhanoi.o: $(UTILS_SRC)/hsv.h
+glhanoi.o: $(UTILS_SRC)/resources.h
+glhanoi.o: $(UTILS_SRC)/usleep.h
+glhanoi.o: $(UTILS_SRC)/visual.h
+glhanoi.o: $(UTILS_SRC)/xshm.h
+glhanoi.o: $(UTILS_SRC)/yarandom.h
+glhanoi.o: $(HACK_SRC)/xlockmoreI.h
+glhanoi.o: $(HACK_SRC)/xlockmore.h
 glknots.o: ../../config.h
 glknots.o: $(srcdir)/gltrackball.h
 glknots.o: $(srcdir)/rotator.h
+glknots.o: $(HACK_SRC)/screenhackI.h
 glknots.o: $(srcdir)/tube.h
+glknots.o: $(UTILS_SRC)/colors.h
+glknots.o: $(UTILS_SRC)/grabscreen.h
+glknots.o: $(UTILS_SRC)/hsv.h
+glknots.o: $(UTILS_SRC)/resources.h
+glknots.o: $(UTILS_SRC)/usleep.h
+glknots.o: $(UTILS_SRC)/visual.h
+glknots.o: $(UTILS_SRC)/xshm.h
+glknots.o: $(UTILS_SRC)/yarandom.h
+glknots.o: $(HACK_SRC)/xlockmoreI.h
+glknots.o: $(HACK_SRC)/xlockmore.h
 gllist.o: $(srcdir)/gllist.h
 glmatrix.o: ../../config.h
 glmatrix.o: $(srcdir)/gllist.h
 glmatrix.o: $(HACK_SRC)/images/matrix3.xpm
+glmatrix.o: $(HACK_SRC)/screenhackI.h
+glmatrix.o: $(UTILS_SRC)/colors.h
+glmatrix.o: $(UTILS_SRC)/grabscreen.h
+glmatrix.o: $(UTILS_SRC)/hsv.h
+glmatrix.o: $(UTILS_SRC)/resources.h
+glmatrix.o: $(UTILS_SRC)/usleep.h
+glmatrix.o: $(UTILS_SRC)/visual.h
+glmatrix.o: $(UTILS_SRC)/xshm.h
+glmatrix.o: $(UTILS_SRC)/yarandom.h
+glmatrix.o: $(HACK_SRC)/xlockmoreI.h
+glmatrix.o: $(HACK_SRC)/xlockmore.h
 glmatrix.o: $(srcdir)/xpm-ximage.h
 glplanet.o: ../../config.h
 glplanet.o: $(srcdir)/gltrackball.h
 glplanet.o: $(HACK_SRC)/images/earth.xpm
 glplanet.o: $(srcdir)/rotator.h
+glplanet.o: $(HACK_SRC)/screenhackI.h
 glplanet.o: $(srcdir)/sphere.h
+glplanet.o: $(UTILS_SRC)/colors.h
+glplanet.o: $(UTILS_SRC)/grabscreen.h
+glplanet.o: $(UTILS_SRC)/hsv.h
+glplanet.o: $(UTILS_SRC)/resources.h
+glplanet.o: $(UTILS_SRC)/usleep.h
+glplanet.o: $(UTILS_SRC)/visual.h
+glplanet.o: $(UTILS_SRC)/xshm.h
+glplanet.o: $(UTILS_SRC)/yarandom.h
+glplanet.o: $(HACK_SRC)/xlockmoreI.h
+glplanet.o: $(HACK_SRC)/xlockmore.h
 glplanet.o: $(srcdir)/xpm-ximage.h
 glschool_alg.o: ../../config.h
 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)/sphere.h
@@ -895,17 +1355,61 @@ glschool.o: ../../config.h
 glschool.o: $(srcdir)/glschool_alg.h
 glschool.o: $(srcdir)/glschool_gl.h
 glschool.o: $(srcdir)/glschool.h
+glschool.o: $(HACK_SRC)/screenhackI.h
+glschool.o: $(UTILS_SRC)/colors.h
+glschool.o: $(UTILS_SRC)/grabscreen.h
+glschool.o: $(UTILS_SRC)/hsv.h
+glschool.o: $(UTILS_SRC)/resources.h
+glschool.o: $(UTILS_SRC)/usleep.h
+glschool.o: $(UTILS_SRC)/visual.h
+glschool.o: $(UTILS_SRC)/xshm.h
+glschool.o: $(UTILS_SRC)/yarandom.h
+glschool.o: $(HACK_SRC)/xlockmoreI.h
+glschool.o: $(HACK_SRC)/xlockmore.h
 glslideshow.o: ../../config.h
 glslideshow.o: $(srcdir)/glxfonts.h
 glslideshow.o: $(srcdir)/grab-ximage.h
+glslideshow.o: $(HACK_SRC)/screenhackI.h
+glslideshow.o: $(UTILS_SRC)/colors.h
+glslideshow.o: $(UTILS_SRC)/grabscreen.h
+glslideshow.o: $(UTILS_SRC)/hsv.h
+glslideshow.o: $(UTILS_SRC)/resources.h
+glslideshow.o: $(UTILS_SRC)/usleep.h
+glslideshow.o: $(UTILS_SRC)/visual.h
+glslideshow.o: $(UTILS_SRC)/xshm.h
+glslideshow.o: $(UTILS_SRC)/yarandom.h
+glslideshow.o: $(HACK_SRC)/xlockmoreI.h
+glslideshow.o: $(HACK_SRC)/xlockmore.h
 glsnake.o: ../../config.h
 glsnake.o: $(srcdir)/glxfonts.h
+glsnake.o: $(HACK_SRC)/screenhackI.h
+glsnake.o: $(UTILS_SRC)/colors.h
+glsnake.o: $(UTILS_SRC)/grabscreen.h
+glsnake.o: $(UTILS_SRC)/hsv.h
+glsnake.o: $(UTILS_SRC)/resources.h
+glsnake.o: $(UTILS_SRC)/usleep.h
+glsnake.o: $(UTILS_SRC)/visual.h
+glsnake.o: $(UTILS_SRC)/xshm.h
+glsnake.o: $(UTILS_SRC)/yarandom.h
+glsnake.o: $(HACK_SRC)/xlockmoreI.h
+glsnake.o: $(HACK_SRC)/xlockmore.h
 gltext.o: ../../config.h
 gltext.o: $(srcdir)/gltrackball.h
 gltext.o: $(srcdir)/glut_roman.h
 gltext.o: $(srcdir)/glutstroke.h
 gltext.o: $(srcdir)/rotator.h
+gltext.o: $(HACK_SRC)/screenhackI.h
 gltext.o: $(srcdir)/tube.h
+gltext.o: $(UTILS_SRC)/colors.h
+gltext.o: $(UTILS_SRC)/grabscreen.h
+gltext.o: $(UTILS_SRC)/hsv.h
+gltext.o: $(UTILS_SRC)/resources.h
+gltext.o: $(UTILS_SRC)/usleep.h
+gltext.o: $(UTILS_SRC)/visual.h
+gltext.o: $(UTILS_SRC)/xshm.h
+gltext.o: $(UTILS_SRC)/yarandom.h
+gltext.o: $(HACK_SRC)/xlockmoreI.h
+gltext.o: $(HACK_SRC)/xlockmore.h
 gltrackball.o: ../../config.h
 gltrackball.o: $(srcdir)/gltrackball.h
 gltrackball.o: $(srcdir)/trackball.h
@@ -915,29 +1419,100 @@ glut_swidth.o: ../../config.h
 glut_swidth.o: $(srcdir)/glutstroke.h
 glxfonts.o: ../../config.h
 glxfonts.o: $(srcdir)/glxfonts.h
+glxfonts.o: $(UTILS_SRC)/resources.h
 grab-ximage.o: ../../config.h
 grab-ximage.o: $(srcdir)/grab-ximage.h
+grab-ximage.o: $(UTILS_SRC)/grabscreen.h
+grab-ximage.o: $(UTILS_SRC)/resources.h
+grab-ximage.o: $(UTILS_SRC)/visual.h
+grab-ximage.o: $(UTILS_SRC)/xshm.h
 hypertorus.o: ../../config.h
 hypertorus.o: $(srcdir)/gltrackball.h
+hypertorus.o: $(HACK_SRC)/screenhackI.h
+hypertorus.o: $(UTILS_SRC)/colors.h
+hypertorus.o: $(UTILS_SRC)/grabscreen.h
+hypertorus.o: $(UTILS_SRC)/hsv.h
+hypertorus.o: $(UTILS_SRC)/resources.h
+hypertorus.o: $(UTILS_SRC)/usleep.h
+hypertorus.o: $(UTILS_SRC)/visual.h
+hypertorus.o: $(UTILS_SRC)/xshm.h
+hypertorus.o: $(UTILS_SRC)/yarandom.h
+hypertorus.o: $(HACK_SRC)/xlockmoreI.h
+hypertorus.o: $(HACK_SRC)/xlockmore.h
 jigglypuff.o: ../../config.h
 jigglypuff.o: $(srcdir)/gltrackball.h
 jigglypuff.o: $(HACK_SRC)/images/jigglymap.xpm
+jigglypuff.o: $(HACK_SRC)/screenhackI.h
+jigglypuff.o: $(UTILS_SRC)/colors.h
+jigglypuff.o: $(UTILS_SRC)/grabscreen.h
+jigglypuff.o: $(UTILS_SRC)/hsv.h
+jigglypuff.o: $(UTILS_SRC)/resources.h
+jigglypuff.o: $(UTILS_SRC)/usleep.h
+jigglypuff.o: $(UTILS_SRC)/visual.h
+jigglypuff.o: $(UTILS_SRC)/xshm.h
+jigglypuff.o: $(UTILS_SRC)/yarandom.h
+jigglypuff.o: $(HACK_SRC)/xlockmoreI.h
+jigglypuff.o: $(HACK_SRC)/xlockmore.h
 jigglypuff.o: $(srcdir)/xpm-ximage.h
 juggler3d.o: ../../config.h
 juggler3d.o: $(srcdir)/gltrackball.h
+juggler3d.o: $(HACK_SRC)/screenhackI.h
+juggler3d.o: $(UTILS_SRC)/colors.h
+juggler3d.o: $(UTILS_SRC)/grabscreen.h
+juggler3d.o: $(UTILS_SRC)/hsv.h
+juggler3d.o: $(UTILS_SRC)/resources.h
+juggler3d.o: $(UTILS_SRC)/usleep.h
+juggler3d.o: $(UTILS_SRC)/visual.h
+juggler3d.o: $(UTILS_SRC)/xshm.h
+juggler3d.o: $(UTILS_SRC)/yarandom.h
+juggler3d.o: $(HACK_SRC)/xlockmoreI.h
+juggler3d.o: $(HACK_SRC)/xlockmore.h
 klein.o: ../../config.h
 klein.o: $(srcdir)/gltrackball.h
 klein.o: $(srcdir)/rotator.h
+klein.o: $(HACK_SRC)/screenhackI.h
+klein.o: $(UTILS_SRC)/colors.h
+klein.o: $(UTILS_SRC)/grabscreen.h
+klein.o: $(UTILS_SRC)/hsv.h
+klein.o: $(UTILS_SRC)/resources.h
+klein.o: $(UTILS_SRC)/usleep.h
+klein.o: $(UTILS_SRC)/visual.h
+klein.o: $(UTILS_SRC)/xshm.h
+klein.o: $(UTILS_SRC)/yarandom.h
+klein.o: $(HACK_SRC)/xlockmoreI.h
+klein.o: $(HACK_SRC)/xlockmore.h
 lament.o: ../../config.h
 lament.o: $(srcdir)/gltrackball.h
 lament.o: $(HACK_SRC)/images/lament.xpm
 lament.o: $(srcdir)/normals.h
 lament.o: $(srcdir)/rotator.h
+lament.o: $(HACK_SRC)/screenhackI.h
+lament.o: $(UTILS_SRC)/colors.h
+lament.o: $(UTILS_SRC)/grabscreen.h
+lament.o: $(UTILS_SRC)/hsv.h
+lament.o: $(UTILS_SRC)/resources.h
+lament.o: $(UTILS_SRC)/usleep.h
+lament.o: $(UTILS_SRC)/visual.h
+lament.o: $(UTILS_SRC)/xshm.h
+lament.o: $(UTILS_SRC)/yarandom.h
+lament.o: $(HACK_SRC)/xlockmoreI.h
+lament.o: $(HACK_SRC)/xlockmore.h
 lament.o: $(srcdir)/xpm-ximage.h
 lavalite.o: ../../config.h
 lavalite.o: $(srcdir)/gltrackball.h
 lavalite.o: $(srcdir)/marching.h
 lavalite.o: $(srcdir)/rotator.h
+lavalite.o: $(HACK_SRC)/screenhackI.h
+lavalite.o: $(UTILS_SRC)/colors.h
+lavalite.o: $(UTILS_SRC)/grabscreen.h
+lavalite.o: $(UTILS_SRC)/hsv.h
+lavalite.o: $(UTILS_SRC)/resources.h
+lavalite.o: $(UTILS_SRC)/usleep.h
+lavalite.o: $(UTILS_SRC)/visual.h
+lavalite.o: $(UTILS_SRC)/xshm.h
+lavalite.o: $(UTILS_SRC)/yarandom.h
+lavalite.o: $(HACK_SRC)/xlockmoreI.h
+lavalite.o: $(HACK_SRC)/xlockmore.h
 lavalite.o: $(srcdir)/xpm-ximage.h
 marching.o: ../../config.h
 marching.o: $(srcdir)/marching.h
@@ -945,49 +1520,205 @@ marching.o: $(srcdir)/normals.h
 menger.o: ../../config.h
 menger.o: $(srcdir)/gltrackball.h
 menger.o: $(srcdir)/rotator.h
+menger.o: $(HACK_SRC)/screenhackI.h
+menger.o: $(UTILS_SRC)/colors.h
+menger.o: $(UTILS_SRC)/grabscreen.h
+menger.o: $(UTILS_SRC)/hsv.h
+menger.o: $(UTILS_SRC)/resources.h
+menger.o: $(UTILS_SRC)/usleep.h
+menger.o: $(UTILS_SRC)/visual.h
+menger.o: $(UTILS_SRC)/xshm.h
+menger.o: $(UTILS_SRC)/yarandom.h
+menger.o: $(HACK_SRC)/xlockmoreI.h
+menger.o: $(HACK_SRC)/xlockmore.h
 mirrorblob.o: ../../config.h
+mirrorblob.o: $(srcdir)/gltrackball.h
 mirrorblob.o: $(srcdir)/grab-ximage.h
+mirrorblob.o: $(HACK_SRC)/screenhackI.h
+mirrorblob.o: $(UTILS_SRC)/colors.h
+mirrorblob.o: $(UTILS_SRC)/grabscreen.h
+mirrorblob.o: $(UTILS_SRC)/hsv.h
+mirrorblob.o: $(UTILS_SRC)/resources.h
+mirrorblob.o: $(UTILS_SRC)/usleep.h
+mirrorblob.o: $(UTILS_SRC)/visual.h
+mirrorblob.o: $(UTILS_SRC)/xshm.h
+mirrorblob.o: $(UTILS_SRC)/yarandom.h
+mirrorblob.o: $(HACK_SRC)/xlockmoreI.h
+mirrorblob.o: $(HACK_SRC)/xlockmore.h
 moebius.o: ../../config.h
 moebius.o: $(srcdir)/e_textures.h
 moebius.o: $(srcdir)/gltrackball.h
 moebius.o: $(srcdir)/rotator.h
+moebius.o: $(HACK_SRC)/screenhackI.h
+moebius.o: $(UTILS_SRC)/colors.h
+moebius.o: $(UTILS_SRC)/grabscreen.h
+moebius.o: $(UTILS_SRC)/hsv.h
+moebius.o: $(UTILS_SRC)/resources.h
+moebius.o: $(UTILS_SRC)/usleep.h
+moebius.o: $(UTILS_SRC)/visual.h
+moebius.o: $(UTILS_SRC)/xshm.h
+moebius.o: $(UTILS_SRC)/yarandom.h
+moebius.o: $(HACK_SRC)/xlockmoreI.h
+moebius.o: $(HACK_SRC)/xlockmore.h
 molecule.o: ../../config.h
 molecule.o: $(srcdir)/gltrackball.h
 molecule.o: $(srcdir)/glxfonts.h
 molecule.o: molecules.h
 molecule.o: $(srcdir)/rotator.h
+molecule.o: $(HACK_SRC)/screenhackI.h
 molecule.o: $(srcdir)/sphere.h
 molecule.o: $(srcdir)/tube.h
+molecule.o: $(UTILS_SRC)/colors.h
+molecule.o: $(UTILS_SRC)/grabscreen.h
+molecule.o: $(UTILS_SRC)/hsv.h
+molecule.o: $(UTILS_SRC)/resources.h
+molecule.o: $(UTILS_SRC)/usleep.h
+molecule.o: $(UTILS_SRC)/visual.h
+molecule.o: $(UTILS_SRC)/xshm.h
+molecule.o: $(UTILS_SRC)/yarandom.h
+molecule.o: $(HACK_SRC)/xlockmoreI.h
+molecule.o: $(HACK_SRC)/xlockmore.h
 morph3d.o: ../../config.h
+morph3d.o: $(HACK_SRC)/screenhackI.h
+morph3d.o: $(UTILS_SRC)/colors.h
+morph3d.o: $(UTILS_SRC)/grabscreen.h
+morph3d.o: $(UTILS_SRC)/hsv.h
+morph3d.o: $(UTILS_SRC)/resources.h
+morph3d.o: $(UTILS_SRC)/usleep.h
+morph3d.o: $(UTILS_SRC)/visual.h
+morph3d.o: $(UTILS_SRC)/xshm.h
+morph3d.o: $(UTILS_SRC)/yarandom.h
+morph3d.o: $(HACK_SRC)/xlockmoreI.h
+morph3d.o: $(HACK_SRC)/xlockmore.h
 noof.o: ../../config.h
+noof.o: $(HACK_SRC)/screenhackI.h
+noof.o: $(UTILS_SRC)/colors.h
+noof.o: $(UTILS_SRC)/grabscreen.h
+noof.o: $(UTILS_SRC)/hsv.h
+noof.o: $(UTILS_SRC)/resources.h
+noof.o: $(UTILS_SRC)/usleep.h
+noof.o: $(UTILS_SRC)/visual.h
+noof.o: $(UTILS_SRC)/xshm.h
+noof.o: $(UTILS_SRC)/yarandom.h
+noof.o: $(HACK_SRC)/xlockmoreI.h
+noof.o: $(HACK_SRC)/xlockmore.h
 normals.o: ../../config.h
 normals.o: $(srcdir)/normals.h
 pinion.o: ../../config.h
 pinion.o: $(srcdir)/gltrackball.h
 pinion.o: $(srcdir)/glxfonts.h
 pinion.o: $(srcdir)/normals.h
+pinion.o: $(HACK_SRC)/screenhackI.h
+pinion.o: $(UTILS_SRC)/colors.h
+pinion.o: $(UTILS_SRC)/grabscreen.h
+pinion.o: $(UTILS_SRC)/hsv.h
+pinion.o: $(UTILS_SRC)/resources.h
+pinion.o: $(UTILS_SRC)/usleep.h
+pinion.o: $(UTILS_SRC)/visual.h
+pinion.o: $(UTILS_SRC)/xshm.h
+pinion.o: $(UTILS_SRC)/yarandom.h
+pinion.o: $(HACK_SRC)/xlockmoreI.h
+pinion.o: $(HACK_SRC)/xlockmore.h
 pipeobjs.o: $(srcdir)/buildlwo.h
 pipes.o: $(srcdir)/buildlwo.h
 pipes.o: ../../config.h
+pipes.o: $(HACK_SRC)/screenhackI.h
+pipes.o: $(UTILS_SRC)/colors.h
+pipes.o: $(UTILS_SRC)/grabscreen.h
+pipes.o: $(UTILS_SRC)/hsv.h
+pipes.o: $(UTILS_SRC)/resources.h
+pipes.o: $(UTILS_SRC)/usleep.h
+pipes.o: $(UTILS_SRC)/visual.h
+pipes.o: $(UTILS_SRC)/xshm.h
+pipes.o: $(UTILS_SRC)/yarandom.h
+pipes.o: $(HACK_SRC)/xlockmoreI.h
+pipes.o: $(HACK_SRC)/xlockmore.h
 polyhedra-gl.o: ../../config.h
 polyhedra-gl.o: $(srcdir)/gltrackball.h
 polyhedra-gl.o: $(srcdir)/glxfonts.h
 polyhedra-gl.o: $(srcdir)/normals.h
 polyhedra-gl.o: $(srcdir)/polyhedra.h
 polyhedra-gl.o: $(srcdir)/rotator.h
+polyhedra-gl.o: $(HACK_SRC)/screenhackI.h
+polyhedra-gl.o: $(UTILS_SRC)/colors.h
+polyhedra-gl.o: $(UTILS_SRC)/grabscreen.h
+polyhedra-gl.o: $(UTILS_SRC)/hsv.h
+polyhedra-gl.o: $(UTILS_SRC)/resources.h
+polyhedra-gl.o: $(UTILS_SRC)/usleep.h
+polyhedra-gl.o: $(UTILS_SRC)/visual.h
+polyhedra-gl.o: $(UTILS_SRC)/xshm.h
+polyhedra-gl.o: $(UTILS_SRC)/yarandom.h
+polyhedra-gl.o: $(HACK_SRC)/xlockmoreI.h
+polyhedra-gl.o: $(HACK_SRC)/xlockmore.h
 polyhedra.o: ../../config.h
 polyhedra.o: $(srcdir)/polyhedra.h
 polytopes.o: ../../config.h
 polytopes.o: $(srcdir)/gltrackball.h
+polytopes.o: $(HACK_SRC)/screenhackI.h
+polytopes.o: $(UTILS_SRC)/colors.h
+polytopes.o: $(UTILS_SRC)/grabscreen.h
+polytopes.o: $(UTILS_SRC)/hsv.h
+polytopes.o: $(UTILS_SRC)/resources.h
+polytopes.o: $(UTILS_SRC)/usleep.h
+polytopes.o: $(UTILS_SRC)/visual.h
+polytopes.o: $(UTILS_SRC)/xshm.h
+polytopes.o: $(UTILS_SRC)/yarandom.h
+polytopes.o: $(HACK_SRC)/xlockmoreI.h
+polytopes.o: $(HACK_SRC)/xlockmore.h
 providence.o: ../../config.h
 providence.o: $(srcdir)/gltrackball.h
+providence.o: $(HACK_SRC)/screenhackI.h
+providence.o: $(UTILS_SRC)/colors.h
+providence.o: $(UTILS_SRC)/grabscreen.h
+providence.o: $(UTILS_SRC)/hsv.h
+providence.o: $(UTILS_SRC)/resources.h
+providence.o: $(UTILS_SRC)/usleep.h
+providence.o: $(UTILS_SRC)/visual.h
+providence.o: $(UTILS_SRC)/xshm.h
+providence.o: $(UTILS_SRC)/yarandom.h
+providence.o: $(HACK_SRC)/xlockmoreI.h
+providence.o: $(HACK_SRC)/xlockmore.h
 pulsar.o: ../../config.h
+pulsar.o: $(HACK_SRC)/screenhackI.h
+pulsar.o: $(UTILS_SRC)/colors.h
+pulsar.o: $(UTILS_SRC)/grabscreen.h
+pulsar.o: $(UTILS_SRC)/hsv.h
+pulsar.o: $(UTILS_SRC)/resources.h
+pulsar.o: $(UTILS_SRC)/usleep.h
+pulsar.o: $(UTILS_SRC)/visual.h
+pulsar.o: $(UTILS_SRC)/xshm.h
+pulsar.o: $(UTILS_SRC)/yarandom.h
+pulsar.o: $(HACK_SRC)/xlockmoreI.h
+pulsar.o: $(HACK_SRC)/xlockmore.h
 pulsar.o: $(srcdir)/xpm-ximage.h
 queens.o: ../../config.h
 queens.o: $(srcdir)/gltrackball.h
+queens.o: $(HACK_SRC)/screenhackI.h
+queens.o: $(UTILS_SRC)/colors.h
+queens.o: $(UTILS_SRC)/grabscreen.h
+queens.o: $(UTILS_SRC)/hsv.h
+queens.o: $(UTILS_SRC)/resources.h
+queens.o: $(UTILS_SRC)/usleep.h
+queens.o: $(UTILS_SRC)/visual.h
+queens.o: $(UTILS_SRC)/xshm.h
+queens.o: $(UTILS_SRC)/yarandom.h
+queens.o: $(HACK_SRC)/xlockmoreI.h
+queens.o: $(HACK_SRC)/xlockmore.h
 rotator.o: ../../config.h
 rotator.o: $(srcdir)/rotator.h
+rotator.o: $(UTILS_SRC)/yarandom.h
 rubik.o: ../../config.h
+rubik.o: $(HACK_SRC)/screenhackI.h
+rubik.o: $(UTILS_SRC)/colors.h
+rubik.o: $(UTILS_SRC)/grabscreen.h
+rubik.o: $(UTILS_SRC)/hsv.h
+rubik.o: $(UTILS_SRC)/resources.h
+rubik.o: $(UTILS_SRC)/usleep.h
+rubik.o: $(UTILS_SRC)/visual.h
+rubik.o: $(UTILS_SRC)/xshm.h
+rubik.o: $(UTILS_SRC)/yarandom.h
+rubik.o: $(HACK_SRC)/xlockmoreI.h
+rubik.o: $(HACK_SRC)/xlockmore.h
 s1_1.o: $(srcdir)/gllist.h
 s1_2.o: $(srcdir)/gllist.h
 s1_3.o: $(srcdir)/gllist.h
@@ -999,59 +1730,205 @@ sballs.o: ../../config.h
 sballs.o: $(srcdir)/gltrackball.h
 sballs.o: $(HACK_SRC)/images/sball-bg.xpm
 sballs.o: $(HACK_SRC)/images/sball.xpm
+sballs.o: $(HACK_SRC)/screenhackI.h
+sballs.o: $(UTILS_SRC)/colors.h
+sballs.o: $(UTILS_SRC)/grabscreen.h
+sballs.o: $(UTILS_SRC)/hsv.h
+sballs.o: $(UTILS_SRC)/resources.h
+sballs.o: $(UTILS_SRC)/usleep.h
+sballs.o: $(UTILS_SRC)/visual.h
+sballs.o: $(UTILS_SRC)/xshm.h
+sballs.o: $(UTILS_SRC)/yarandom.h
+sballs.o: $(HACK_SRC)/xlockmoreI.h
+sballs.o: $(HACK_SRC)/xlockmore.h
 sballs.o: $(srcdir)/xpm-ximage.h
 shark.o: $(srcdir)/atlantis.h
 shark.o: ../../config.h
+shark.o: $(HACK_SRC)/screenhackI.h
+shark.o: $(UTILS_SRC)/colors.h
+shark.o: $(UTILS_SRC)/grabscreen.h
+shark.o: $(UTILS_SRC)/hsv.h
+shark.o: $(UTILS_SRC)/resources.h
+shark.o: $(UTILS_SRC)/usleep.h
+shark.o: $(UTILS_SRC)/visual.h
+shark.o: $(UTILS_SRC)/yarandom.h
 sierpinski3d.o: ../../config.h
 sierpinski3d.o: $(srcdir)/gltrackball.h
 sierpinski3d.o: $(srcdir)/rotator.h
+sierpinski3d.o: $(HACK_SRC)/screenhackI.h
+sierpinski3d.o: $(UTILS_SRC)/colors.h
+sierpinski3d.o: $(UTILS_SRC)/grabscreen.h
+sierpinski3d.o: $(UTILS_SRC)/hsv.h
+sierpinski3d.o: $(UTILS_SRC)/resources.h
+sierpinski3d.o: $(UTILS_SRC)/usleep.h
+sierpinski3d.o: $(UTILS_SRC)/visual.h
+sierpinski3d.o: $(UTILS_SRC)/xshm.h
+sierpinski3d.o: $(UTILS_SRC)/yarandom.h
+sierpinski3d.o: $(HACK_SRC)/xlockmoreI.h
+sierpinski3d.o: $(HACK_SRC)/xlockmore.h
 spheremonics.o: ../../config.h
 spheremonics.o: $(srcdir)/gltrackball.h
 spheremonics.o: $(srcdir)/glxfonts.h
 spheremonics.o: $(srcdir)/normals.h
 spheremonics.o: $(srcdir)/rotator.h
+spheremonics.o: $(HACK_SRC)/screenhackI.h
+spheremonics.o: $(UTILS_SRC)/colors.h
+spheremonics.o: $(UTILS_SRC)/grabscreen.h
+spheremonics.o: $(UTILS_SRC)/hsv.h
+spheremonics.o: $(UTILS_SRC)/resources.h
+spheremonics.o: $(UTILS_SRC)/usleep.h
+spheremonics.o: $(UTILS_SRC)/visual.h
+spheremonics.o: $(UTILS_SRC)/xshm.h
+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)/sphere.h
 sproingies.o: ../../config.h
 sproingies.o: $(srcdir)/gllist.h
+sproingies.o: $(HACK_SRC)/screenhackI.h
 sproingies.o: $(srcdir)/sproingies.h
+sproingies.o: $(UTILS_SRC)/colors.h
+sproingies.o: $(UTILS_SRC)/grabscreen.h
+sproingies.o: $(UTILS_SRC)/hsv.h
+sproingies.o: $(UTILS_SRC)/resources.h
+sproingies.o: $(UTILS_SRC)/usleep.h
+sproingies.o: $(UTILS_SRC)/visual.h
+sproingies.o: $(UTILS_SRC)/xshm.h
+sproingies.o: $(UTILS_SRC)/yarandom.h
+sproingies.o: $(HACK_SRC)/xlockmoreI.h
 sproingiewrap.o: ../../config.h
+sproingiewrap.o: $(HACK_SRC)/screenhackI.h
 sproingiewrap.o: $(srcdir)/sproingies.h
+sproingiewrap.o: $(UTILS_SRC)/colors.h
+sproingiewrap.o: $(UTILS_SRC)/grabscreen.h
+sproingiewrap.o: $(UTILS_SRC)/hsv.h
+sproingiewrap.o: $(UTILS_SRC)/resources.h
+sproingiewrap.o: $(UTILS_SRC)/usleep.h
+sproingiewrap.o: $(UTILS_SRC)/visual.h
+sproingiewrap.o: $(UTILS_SRC)/xshm.h
+sproingiewrap.o: $(UTILS_SRC)/yarandom.h
+sproingiewrap.o: $(HACK_SRC)/xlockmoreI.h
+sproingiewrap.o: $(HACK_SRC)/xlockmore.h
 stairs.o: ../../config.h
 stairs.o: $(srcdir)/e_textures.h
+stairs.o: $(HACK_SRC)/screenhackI.h
+stairs.o: $(UTILS_SRC)/colors.h
+stairs.o: $(UTILS_SRC)/grabscreen.h
+stairs.o: $(UTILS_SRC)/hsv.h
+stairs.o: $(UTILS_SRC)/resources.h
+stairs.o: $(UTILS_SRC)/usleep.h
+stairs.o: $(UTILS_SRC)/visual.h
+stairs.o: $(UTILS_SRC)/xshm.h
+stairs.o: $(UTILS_SRC)/yarandom.h
+stairs.o: $(HACK_SRC)/xlockmoreI.h
+stairs.o: $(HACK_SRC)/xlockmore.h
 starwars.o: ../../config.h
 starwars.o: $(srcdir)/glut_roman.h
 starwars.o: $(srcdir)/glutstroke.h
+starwars.o: $(HACK_SRC)/screenhackI.h
 starwars.o: $(srcdir)/texfont.h
+starwars.o: $(UTILS_SRC)/colors.h
+starwars.o: $(UTILS_SRC)/grabscreen.h
+starwars.o: $(UTILS_SRC)/hsv.h
+starwars.o: $(UTILS_SRC)/resources.h
+starwars.o: $(UTILS_SRC)/usleep.h
+starwars.o: $(UTILS_SRC)/visual.h
+starwars.o: $(UTILS_SRC)/xshm.h
+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)/stonerview.h
 stonerview-move.o: $(srcdir)/stonerview-move.h
 stonerview-move.o: $(srcdir)/stonerview-osc.h
+stonerview-move.o: $(UTILS_SRC)/yarandom.h
 stonerview.o: ../../config.h
 stonerview.o: $(srcdir)/gltrackball.h
+stonerview.o: $(HACK_SRC)/screenhackI.h
 stonerview.o: $(srcdir)/stonerview.h
 stonerview.o: $(srcdir)/stonerview-move.h
 stonerview.o: $(srcdir)/stonerview-osc.h
+stonerview.o: $(UTILS_SRC)/colors.h
+stonerview.o: $(UTILS_SRC)/grabscreen.h
+stonerview.o: $(UTILS_SRC)/hsv.h
+stonerview.o: $(UTILS_SRC)/resources.h
+stonerview.o: $(UTILS_SRC)/usleep.h
+stonerview.o: $(UTILS_SRC)/visual.h
+stonerview.o: $(UTILS_SRC)/xshm.h
+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)/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)/stonerview.h
 stonerview-view.o: $(srcdir)/stonerview-move.h
 stonerview-view.o: $(srcdir)/stonerview-osc.h
 superquadrics.o: ../../config.h
+superquadrics.o: $(HACK_SRC)/screenhackI.h
+superquadrics.o: $(UTILS_SRC)/colors.h
+superquadrics.o: $(UTILS_SRC)/grabscreen.h
+superquadrics.o: $(UTILS_SRC)/hsv.h
+superquadrics.o: $(UTILS_SRC)/resources.h
+superquadrics.o: $(UTILS_SRC)/usleep.h
+superquadrics.o: $(UTILS_SRC)/visual.h
+superquadrics.o: $(UTILS_SRC)/xshm.h
+superquadrics.o: $(UTILS_SRC)/yarandom.h
+superquadrics.o: $(HACK_SRC)/xlockmoreI.h
+superquadrics.o: $(HACK_SRC)/xlockmore.h
 swim.o: $(srcdir)/atlantis.h
 swim.o: ../../config.h
+swim.o: $(HACK_SRC)/screenhackI.h
+swim.o: $(UTILS_SRC)/colors.h
+swim.o: $(UTILS_SRC)/grabscreen.h
+swim.o: $(UTILS_SRC)/hsv.h
+swim.o: $(UTILS_SRC)/resources.h
+swim.o: $(UTILS_SRC)/usleep.h
+swim.o: $(UTILS_SRC)/visual.h
+swim.o: $(UTILS_SRC)/xshm.h
+swim.o: $(UTILS_SRC)/yarandom.h
+swim.o: $(HACK_SRC)/xlockmoreI.h
 tangram.o: ../../config.h
 tangram.o: $(srcdir)/glxfonts.h
+tangram.o: $(HACK_SRC)/screenhackI.h
 tangram.o: $(srcdir)/tangram_shapes.h
+tangram.o: $(UTILS_SRC)/colors.h
+tangram.o: $(UTILS_SRC)/grabscreen.h
+tangram.o: $(UTILS_SRC)/hsv.h
+tangram.o: $(UTILS_SRC)/resources.h
+tangram.o: $(UTILS_SRC)/usleep.h
+tangram.o: $(UTILS_SRC)/visual.h
+tangram.o: $(UTILS_SRC)/xshm.h
+tangram.o: $(UTILS_SRC)/yarandom.h
+tangram.o: $(HACK_SRC)/xlockmoreI.h
+tangram.o: $(HACK_SRC)/xlockmore.h
 tangram_shapes.o: $(srcdir)/tangram_shapes.h
 texfont.o: ../../config.h
 texfont.o: $(srcdir)/texfont.h
+texfont.o: $(UTILS_SRC)/resources.h
 timetunnel.o: ../../config.h
 timetunnel.o: $(srcdir)/gltrackball.h
+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)/rotator.h
+timetunnel.o: $(HACK_SRC)/screenhackI.h
+timetunnel.o: $(UTILS_SRC)/colors.h
+timetunnel.o: $(UTILS_SRC)/grabscreen.h
+timetunnel.o: $(UTILS_SRC)/hsv.h
+timetunnel.o: $(UTILS_SRC)/images/logo-180.xpm
+timetunnel.o: $(UTILS_SRC)/resources.h
+timetunnel.o: $(UTILS_SRC)/usleep.h
+timetunnel.o: $(UTILS_SRC)/visual.h
+timetunnel.o: $(UTILS_SRC)/xshm.h
+timetunnel.o: $(UTILS_SRC)/yarandom.h
+timetunnel.o: $(HACK_SRC)/xlockmoreI.h
+timetunnel.o: $(HACK_SRC)/xlockmore.h
 timetunnel.o: $(srcdir)/xpm-ximage.h
 toast2.o: $(srcdir)/gllist.h
 toaster_base.o: $(srcdir)/gllist.h
@@ -1065,18 +1942,59 @@ toaster_wing.o: $(srcdir)/gllist.h
 toast.o: $(srcdir)/gllist.h
 topblock.o: ../../config.h
 topblock.o: $(srcdir)/gltrackball.h
+topblock.o: $(HACK_SRC)/screenhackI.h
 topblock.o: $(srcdir)/sphere.h
 topblock.o: $(srcdir)/topblock.h
+topblock.o: $(UTILS_SRC)/colors.h
+topblock.o: $(UTILS_SRC)/grabscreen.h
+topblock.o: $(UTILS_SRC)/hsv.h
+topblock.o: $(UTILS_SRC)/resources.h
+topblock.o: $(UTILS_SRC)/usleep.h
+topblock.o: $(UTILS_SRC)/visual.h
+topblock.o: $(UTILS_SRC)/xshm.h
+topblock.o: $(UTILS_SRC)/yarandom.h
+topblock.o: $(HACK_SRC)/xlockmoreI.h
+topblock.o: $(HACK_SRC)/xlockmore.h
 trackball.o: ../../config.h
 trackball.o: $(srcdir)/trackball.h
 tube.o: ../../config.h
 tube.o: $(srcdir)/tube.h
 tunnel_draw.o: ../../config.h
+tunnel_draw.o: $(HACK_SRC)/screenhackI.h
 tunnel_draw.o: $(srcdir)/tunnel_draw.h
+tunnel_draw.o: $(UTILS_SRC)/colors.h
+tunnel_draw.o: $(UTILS_SRC)/grabscreen.h
+tunnel_draw.o: $(UTILS_SRC)/hsv.h
+tunnel_draw.o: $(UTILS_SRC)/resources.h
+tunnel_draw.o: $(UTILS_SRC)/usleep.h
+tunnel_draw.o: $(UTILS_SRC)/visual.h
+tunnel_draw.o: $(UTILS_SRC)/xshm.h
+tunnel_draw.o: $(UTILS_SRC)/yarandom.h
+tunnel_draw.o: $(HACK_SRC)/xlockmoreI.h
 whale.o: $(srcdir)/atlantis.h
 whale.o: ../../config.h
+whale.o: $(HACK_SRC)/screenhackI.h
+whale.o: $(UTILS_SRC)/colors.h
+whale.o: $(UTILS_SRC)/grabscreen.h
+whale.o: $(UTILS_SRC)/hsv.h
+whale.o: $(UTILS_SRC)/resources.h
+whale.o: $(UTILS_SRC)/usleep.h
+whale.o: $(UTILS_SRC)/visual.h
+whale.o: $(UTILS_SRC)/yarandom.h
 xlock-gl-utils.o: ../../config.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
+xlock-gl-utils.o: $(UTILS_SRC)/hsv.h
+xlock-gl-utils.o: $(UTILS_SRC)/resources.h
+xlock-gl-utils.o: $(UTILS_SRC)/usleep.h
+xlock-gl-utils.o: $(UTILS_SRC)/visual.h
+xlock-gl-utils.o: $(UTILS_SRC)/xshm.h
+xlock-gl-utils.o: $(UTILS_SRC)/yarandom.h
+xlock-gl-utils.o: $(HACK_SRC)/xlockmoreI.h
 xpm-ximage.o: ../../config.h
 xpm-ximage.o: $(srcdir)/xpm-ximage.h
 xscreensaver-gl-helper.o: ../../config.h
+xscreensaver-gl-helper.o: $(UTILS_SRC)/utils.h
+xscreensaver-gl-helper.o: $(UTILS_SRC)/visual.h
 
index bc9dfb655bfce299b540b71abacc716e03a946c9..d5de4924a4aa031485d6b5bd02037f59214654c8 100644 (file)
@@ -1,4 +1,4 @@
-/* carousel, Copyright (c) 2005-2006 Jamie Zawinski <jwz@jwz.org>
+/* carousel, Copyright (c) 2005-2007 Jamie Zawinski <jwz@jwz.org>
  * Loads a sequence of images and rotates them around.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
 #  include <X11/Intrinsic.h>     /* for XrmDatabase in -debug mode */
 # endif
 
+/* Should be in <GL/glext.h> */
+# ifndef  GL_TEXTURE_MAX_ANISOTROPY_EXT
+#  define GL_TEXTURE_MAX_ANISOTROPY_EXT     0x84FE
+# endif
+# ifndef  GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
+#  define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
+# endif
+
 typedef struct {
   double x, y, w, h;
 } rect;
@@ -80,6 +88,7 @@ typedef struct {
 
 typedef struct {
   GLXContext *glx_context;
+  GLfloat anisotropic;
   rotator *rot;
   trackball_state *trackball;
   Bool button_down_p;
@@ -259,6 +268,10 @@ image_loaded_cb (const char *filename, XRectangle *geom,
   glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
                    mipmap_p ? GL_LINEAR_MIPMAP_LINEAR : GL_LINEAR);
 
+  if (ss->anisotropic >= 1.0)
+    glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 
+                     ss->anisotropic);
+
   glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
   glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
 
@@ -578,6 +591,12 @@ init_carousel (ModeInfo *mi)
     ss->trackball = gltrackball_init ();
   }
 
+  if (strstr ((char *) glGetString(GL_EXTENSIONS),
+              "GL_EXT_texture_filter_anisotropic"))
+    glGetFloatv (GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &ss->anisotropic);
+  else
+    ss->anisotropic = 0.0;
+
   glDisable (GL_LIGHTING);
   glEnable (GL_DEPTH_TEST);
   glDisable (GL_CULL_FACE);
index 9e8f2dcf0b6cf8515e8e286da9fcadf675579aa9..856045bd5d0ebede2ee2caeabcc75a5975a9d284 100644 (file)
@@ -104,7 +104,7 @@ ModStruct   circuit_description =
 
 #endif
 
-#define MAX_COMPONENTS 30
+#define MAX_COMPONENTS 31
 #define MOVE_MULT 0.02
 
 static float f_rand(void)
@@ -2155,6 +2155,9 @@ Circuit *ci;
  ci->grid_col2[1] = 0.125;
  ci->grid_col2[2] = 0.05;
 
+ if (maxparts >= MAX_COMPONENTS)
+   maxparts = MAX_COMPONENTS-1;
+
  if ((ci->glx_context = init_GL(mi)) != NULL) {
       reshape_circuit(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
  } else {
index 95787ab08ab6a534f0141d2babaf3df80ececc9f..1c11d97fa90783c740b5b807b12cb9ff62ed0411 100644 (file)
@@ -18,7 +18,7 @@
 #define DEF_NSUBDIVS   "4"
 #define DEF_BORING     "False"
 #define DEF_CRACK      "True"
-#define DEF_NOWATER    "False"
+#define DEF_WATER      "True"
 #define DEF_FLAT       "True"
 #define DEF_COLOR      "plain"
 #define DEF_LIT        "True"
@@ -138,7 +138,7 @@ struct _cberg_state {
  ** */
 
 static unsigned int nsubdivs;
-static Bool crack, boring, nowater, flat, lit, letterbox;
+static Bool crack, boring, do_water, flat, lit, letterbox;
 static float visibility;
 static char *color;
 
@@ -149,8 +149,8 @@ static XrmOptionDescRec opts[] = {
   {"-boring",     ".boring",     XrmoptionNoArg,  "True"},
   {"-crack",      ".crack",      XrmoptionNoArg,  "True"},
   {"-no-crack",   ".crack",      XrmoptionNoArg,  "False"},
-  {"-water",      ".nowater",    XrmoptionNoArg,  "False"},
-  {"-no-water",   ".nowater",    XrmoptionNoArg,  "True"},
+  {"-water",      ".water",      XrmoptionNoArg,  "True"},
+  {"-no-water",   ".water",      XrmoptionNoArg,  "False"},
   {"-flat",       ".flat",       XrmoptionNoArg,  "True"},
   {"-no-flat",    ".flat",       XrmoptionNoArg,  "False"},
   {"-color",      ".color",      XrmoptionSepArg, 0},
@@ -164,7 +164,7 @@ static argtype vars[] = {
   {&nsubdivs,   "nsubdivs",   "nsubdivs",   DEF_NSUBDIVS,   t_Int},
   {&boring,     "boring",     "boring",     DEF_BORING,     t_Bool},
   {&crack,      "crack",      "crack",      DEF_CRACK,      t_Bool},
-  {&nowater,    "nowater",    "nowater",    DEF_NOWATER,    t_Bool},
+  {&do_water,   "water",      "water",      DEF_WATER,      t_Bool},
   {&flat,       "flat",       "flat",       DEF_FLAT,       t_Bool},
   {&color,      "color",      "color",      DEF_COLOR,      t_String},
   {&lit,        "lit",        "lit",        DEF_LIT,        t_Bool},
@@ -430,7 +430,7 @@ static inline void trile_draw_vertex(cberg_state *cberg, unsigned int ix,
 {
     glColor3d(0.0, 0.0, 0.0); /* don't ask. my card breaks otherwise. */
     
-    if (!nowater && zcur <= 0.0) {
+    if (do_water && zcur <= 0.0) {
         cberg->color->water(cberg, zcur); /* XXX use average-of-3 for color when flat?*/
         if (lit) glNormal3d(0.0,0.0,1.0);
         glVertex3d(x, y, 0.0); 
index a664dc41a3873e2a3bade88bb99a6def012e03de..e56c6f2c48fd0f2625469580a1668d495e5f7f0a 100644 (file)
@@ -1,8 +1,8 @@
 .TH XScreenSaver 1 "" "X Version 11"
 .SH NAME
-zephyr - Lose your way wandering some height fields, and enjoy candy.
+crackberg - Lose your way wandering some height fields, and enjoy candy.
 .SH SYNOPSIS
-.B zephyr
+.B crackberg
 [\-root]
 [\-window]
 [\-install]
@@ -39,7 +39,7 @@ Decrease and increase manual speed, respectively.
 .B Spacebar
 Return to automatic control.
 .SH OPTIONS
-.I zephyr
+.I crackberg
 accepts the following options:
 .TP 8
 .B \-root
index cb64ededcc8c293dbc6e3c1887beaadfe134fd96..0ccf2a3d5cee5c43dba803de404053cb49ed8e63 100644 (file)
@@ -4,7 +4,7 @@
  *
  * version 1.0 - June 6, 2002
  *
- * Copyright (C) 2002 Blair Tennessy (tennessb@unbc.ca)
+ * Copyright (C) 2002-2007 Blair Tennessy (tennessb@unbc.ca)
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -373,7 +373,7 @@ static void drawTakePiece(ModeInfo *mi, Chesscreen *cs, int shadow)
 
   glColor4f(shadow ? MaterialShadow[0] : cs->colors[cs->tpiece/7][0], 
            shadow ? MaterialShadow[1] : cs->colors[cs->tpiece/7][1], 
-           shadow ? MaterialShadow[0] : cs->colors[cs->tpiece/7][2],
+           shadow ? MaterialShadow[2] : cs->colors[cs->tpiece/7][2],
             (100-1.6*cs->steps)/100.0);
 
   glTranslatef(cs->to[1], 0.0, cs->to[0]);
@@ -459,10 +459,75 @@ static void draw_shadow_pieces(ModeInfo *mi, Chesscreen *cs, int wire)
     glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
   }
 
+  /* use the stencil */
+  glDisable(GL_LIGHTING);
+  glDisable(GL_COLOR_MATERIAL);
+  glDisable(GL_DEPTH_TEST);
+  glDisable(GL_TEXTURE_2D);
+  glDisable(GL_BLEND);
+
+  glClear(GL_STENCIL_BUFFER_BIT);
+  glColorMask(0,0,0,0);
+  glEnable(GL_STENCIL_TEST);
+
+  glStencilFunc(GL_ALWAYS, 1, 0xFFFFFFFFL);
+  glStencilOp(GL_KEEP, GL_KEEP, GL_INCR);
+  
+
+  glPushMatrix();
+  glTranslatef(0.0, 0.001, 0.0);
+
+  /* draw the pieces */
   drawPiecesShadow(mi, cs);
   if(cs->moving) drawMovingPiece(mi, cs, shadows);
   if(cs->take) drawTakePiece(mi, cs, shadows);
+
+  glPopMatrix();
+
+
+  /* turn on drawing into colour buffer */
+  glColorMask(1,1,1,1);
+
+  /* programming with effect */
+  glDisable(GL_LIGHTING);
+  glDisable(GL_COLOR_MATERIAL);
   glDisable(GL_TEXTURE_2D);
+
+  /* now draw the union of the shadows */
+
+  /* 
+     <todo>
+     want to keep alpha values (alpha is involved in transition
+     effects of the active pieces).
+     </todo>
+  */
+  glStencilFunc(GL_NOTEQUAL, 0, 0xFFFFFFFFL);
+  glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
+
+  glEnable(GL_BLEND);
+
+  glColor4fv(MaterialShadow);
+
+  /* draw the board generously to fill the shadows */
+  glBegin(GL_QUADS);
+
+  glVertex3f(-1.0, 0.0, -1.0);
+  glVertex3f(-1.0, 0.0, BOARDSIZE + 1.0);
+  glVertex3f(1.0 + BOARDSIZE, 0.0, BOARDSIZE + 1.0);
+  glVertex3f(1.0 + BOARDSIZE, 0.0, -1.0);
+
+  glEnd();
+
+  glDisable(GL_STENCIL_TEST);
+
+  /* "pop" attributes */
+  glEnable(GL_TEXTURE_2D);
+  glEnable(GL_COLOR_MATERIAL);
+  glEnable(GL_LIGHTING);
+  glEnable(GL_CULL_FACE);
+
+
+
 }
 
 enum {X, Y, Z, W};
@@ -559,16 +624,21 @@ static void display(ModeInfo *mi, Chesscreen *cs)
   glMatrixMode(GL_MODELVIEW);
   glLoadIdentity();
 
-  /** setup perspectif */
+  /** setup perspectiv */
   glTranslatef(0.0, 0.0, -1.5*BOARDSIZE);
   glRotatef(30.0, 1.0, 0.0, 0.0);
   gltrackball_rotate (cs->trackball);
   glRotatef(cs->theta*100, 0.0, 1.0, 0.0);
   glTranslatef(-0.5*BOARDSIZE, 0.0, -0.5*BOARDSIZE);
 
-  cs->position[0] = 4.0 + 1.0*-sin(cs->theta*100*M_PI/180.0);
-  cs->position[2] = 4.0 + 1.0* cos(cs->theta*100*M_PI/180.0);
-  cs->position[1] = 5.0;
+/*   cs->position[0] = 4.0 + 1.0*-sin(cs->theta*100*M_PI/180.0); */
+/*   cs->position[2] = 4.0 + 1.0* cos(cs->theta*100*M_PI/180.0); */
+/*   cs->position[1] = 5.0; */
+
+  /* this is the lone light that the shadow matrix is generated from */
+  cs->position[0] = 1.0;
+  cs->position[2] = 1.0;
+  cs->position[1] = 16.0;
 
   cs->position2[0] = 4.0 + 8.0*-sin(cs->theta*100*M_PI/180.0);
   cs->position2[2] = 4.0 + 8.0* cos(cs->theta*100*M_PI/180.0);
@@ -676,11 +746,17 @@ ENTRYPOINT void init_chess(ModeInfo *mi)
   cs->count = 99;
   cs->mod = 1.4;
 
+/*   cs->position[0] = 0.0; */
+/*   cs->position[1] = 5.0; */
+/*   cs->position[2] = 5.0; */
+/*   cs->position[3] = 1.0; */
+
   cs->position[0] = 0.0;
-  cs->position[1] = 5.0;
-  cs->position[2] = 5.0;
+  cs->position[1] = 24.0;
+  cs->position[2] = 2.0;
   cs->position[3] = 1.0;
 
+
   cs->position2[0] = 5.0;
   cs->position2[1] = 5.0;
   cs->position2[2] = 5.0;
index 12107e269e16b3e5ac8d5952d9a40df2c8fdf46a..996d7c75b610b94327c20a889a87632e4a528f8a 100644 (file)
 
 #ifdef USE_GL
 
+/* Should be in <GL/glext.h> */
+# ifndef  GL_TEXTURE_MAX_ANISOTROPY_EXT
+#  define GL_TEXTURE_MAX_ANISOTROPY_EXT     0x84FE
+# endif
+# ifndef  GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
+#  define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
+# endif
+
 static int rotate;
 
 #define QW 12
@@ -99,16 +107,14 @@ typedef struct {
   Bool waiting_for_image_p;
   Bool first_image_p;
 
+  GLfloat anisotropic;
+
 } Screenflip;
 
 static Screenflip *screenflip = NULL;
 
 #include "grab-ximage.h"
 
-#ifndef M_PI
-#define M_PI 3.14159265
-#endif
-
 static const GLfloat viewer[] = {0.0, 0.0, 15.0};
 
 
@@ -405,6 +411,10 @@ image_loaded_cb (const char *filename, XRectangle *geometry,
   glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
                    (c->mipmap_p ? GL_LINEAR_MIPMAP_LINEAR : GL_LINEAR));
 
+  if (c->anisotropic >= 1.0)
+    glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 
+                     c->anisotropic);
+
   c->waiting_for_image_p = False;
   c->first_image_p = False;
 }
@@ -469,6 +479,12 @@ ENTRYPOINT void init_screenflip(ModeInfo *mi)
      glDisable(GL_LIGHTING);
    }
 
+ if (strstr ((char *) glGetString(GL_EXTENSIONS),
+             "GL_EXT_texture_filter_anisotropic"))
+   glGetFloatv (GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &c->anisotropic);
+ else
+   c->anisotropic = 0.0;
+
  glGenTextures(1, &c->texid);
 
  c->first_image_p = True;
index d76be1354e09e21068cf3c3cfd45ef6fefc0626f..25dd84c7624f1f7627fedecb0fa48d0ff44df346 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * fliptext, Copyright (c) 2005-2006 Jamie Zawinski <jwz@jwz.org>
+ * fliptext, Copyright (c) 2005-2007 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
 
 #ifdef USE_GL /* whole file */
 
+/* Should be in <GL/glext.h> */
+# ifndef  GL_TEXTURE_MAX_ANISOTROPY_EXT
+#  define GL_TEXTURE_MAX_ANISOTROPY_EXT     0x84FE
+# endif
+# ifndef  GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
+#  define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
+# endif
+
+
 #define DEF_PROGRAM    "xscreensaver-text --cols 0"  /* don't wrap */
 #define DEF_LINES      "8"
 #define DEF_FONT_SIZE  "20"
@@ -925,15 +934,20 @@ init_fliptext (ModeInfo *mi)
       glEnable (GL_ALPHA_TEST);
       glEnable (GL_TEXTURE_2D);
 
-# ifdef GL_TEXTURE_MAX_ANISOTROPY_EXT
       /* "Anistropic filtering helps for quadrilateral-angled textures.
          A sharper image is accomplished by interpolating and filtering
          multiple samples from one or more mipmaps to better approximate
          very distorted textures.  This is the next level of filtering
          after trilinear filtering." */
-      glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 16);
-      clear_gl_error();
-# endif
+      if (strstr ((char *) glGetString(GL_EXTENSIONS),
+                  "GL_EXT_texture_filter_anisotropic"))
+      {
+        GLfloat anisotropic = 0.0;
+        glGetFloatv (GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &anisotropic);
+        if (anisotropic >= 1.0)
+          glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 
+                           anisotropic);
+      }
     }
   
   /* The default font is (by fiat) "18 points".
index 0210e018cff4fa517562b89c69f262dc9059576f..bd43d8dd6a78e10e229cf983d201ff23c6a38d9b 100644 (file)
@@ -2,7 +2,7 @@
 .SH NAME
 glblur - 3D radial blur texture fields
 .SH SYNOPSIS
-.B menger
+.B glblur
 [\-display \fIhost:display.screen\fP]
 [\-visual \fIvisual\fP]
 [\-window]
index ef10c20ec7b1d594e2002c893de1604970e7946c..8bc9a1c909422a2d4a7f84e7febc9bb78cc32675 100644 (file)
@@ -1312,6 +1312,11 @@ ENTRYPOINT void init_glhanoi(ModeInfo * mi)
     if (glhanoi->numberOfDisks <= 1)
       glhanoi->numberOfDisks = 3 + (int) BELLRAND(9);
 
+    /* magicnumber is a bitfield, so we can't have more than 31 discs
+       on a system with 4-byte ints. */
+    if (glhanoi->numberOfDisks >= 8 * sizeof(int))
+      glhanoi->numberOfDisks = (8 * sizeof(int)) - 1;
+
        glhanoi->maxDiskIdx = glhanoi->numberOfDisks - 1;
        glhanoi->wire = MI_IS_WIREFRAME(mi);
        glhanoi->light = light;
index 9c9132b32a5131ef7010804947e8da87a887e1f3..1669707d3eba7dcd9f5af649bc5ec750211b51ba 100644 (file)
@@ -4,7 +4,7 @@
 static const char sccsid[] = "@(#)hypertorus.c  1.2 05/09/28 xlockmore";
 #endif
 
-/* Copyright (c) 2003-2005 Carsten Steger <carsten@mirsanmir.org>. */
+/* Copyright (c) 2003-2007 Carsten Steger <carsten@mirsanmir.org>. */
 
 /*
  * Permission to use, copy, modify, and distribute this software and its
@@ -23,6 +23,7 @@ static const char sccsid[] = "@(#)hypertorus.c  1.2 05/09/28 xlockmore";
  * C. Steger - 03/05/18: Initial version
  * C. Steger - 05/09/28: Added the spirals appearance mode
  *                       and trackball support
+ * C. Steger - 07/01/23: Improved 4d trackball support
  */
 
 /*
@@ -105,7 +106,7 @@ static const char sccsid[] = "@(#)hypertorus.c  1.2 05/09/28 xlockmore";
 #define DTHETA                     2.1
 #define DTHETA_STR                "2.1"
 
-#define DEF_DISPLAY_MODE           DISP_SURFACE_STR   
+#define DEF_DISPLAY_MODE           DISP_TRANSPARENT_STR
 #define DEF_APPEARANCE             APPEARANCE_BANDS_STR
 #define DEF_COLORS                 COLORS_COLORWHEEL_STR
 #define DEF_3D_PROJECTION          DISP_3D_PERSPECTIVE_STR
@@ -403,8 +404,8 @@ static void rotateall(float al, float be, float de, float ze, float et,
   rotatewx(m,al);
   rotatewy(m,be);
   rotatewz(m,de);
-  rotatexy(m,ze);
   rotatexz(m,et);
+  rotatexy(m,ze);
   rotateyz(m,th);
 }
 
@@ -448,11 +449,11 @@ static void quats_to_rotmat(float p[4], float q[4], float m[4][4])
   r12 = 2.0*(q[1]*q[2]+q[0]*q[3]);
   r22 = 1.0-2.0*(q[1]*q[1]+q[0]*q[0]);
 
-  ze = atan2(-r12,r22)*180.0/M_PI;
-  et = atan2(r02,sqrt(r00*r00+r01*r01))*180.0/M_PI;
-  th = atan2(-r01,r00)*180.0/M_PI;
+  et = atan2(-r12,r22)*180.0/M_PI;
+  th = atan2(r02,sqrt(r00*r00+r01*r01))*180.0/M_PI;
+  ze = atan2(-r01,r00)*180.0/M_PI;
 
-  rotateall(al,be,de,ze,et,th,m);
+  rotateall(al,be,de,ze,et,-th,m);
 }
 
 
index c6a5c84d2f9d96870de85d644520ef9c71341e0b..fe6985e138e739063cfe0fc1071e2ac46e5db044 100644 (file)
  * 19-Oct-2003:  jon.dowdall@bigpond.com  Added texturing
  * 21-Oct-2003:                           Renamed to mirrorblob
  * 10-Feb-2004:  jon.dowdall@bigpond.com  Added motion blur
+ * 28-Jan-2006:  jon.dowdall@bigpond.com  Big clean up and bug fixes
  *
  * The mirrorblob screensaver draws a pulsing blob on the screen.  Options
- * include adding a background (via load_texture_async), texturing the blob,
+ * include adding a background (via screen_to_texture), texturing the blob,
  * making the blob semi-transparent and varying the resolution of the blob
  * tessellation.
  *
@@ -40,7 +41,9 @@
     "*useSHM:              True      \n"
 
 # define refresh_mirrorblob 0
+/*
 # define mirrorblob_handle_event 0
+*/
 # include "xlockmore.h"    /* from the xmirrorblob distribution */
 #else /* !STANDALONE */
 # include "xlock.h"        /* from the xlockmore distribution */
 #define DEF_DELAY            "10000"
 #define DEF_FPS              "False"
 #define DEF_WIRE             "False"
-#define DEF_BLEND            "False"
+#define DEF_BLEND            "1.0"
 #define DEF_FOG              "False"
 #define DEF_ANTIALIAS        "False"
-#define DEF_WALLS            "True"
+#define DEF_WALLS            "False"
 #define DEF_COLOUR           "False"
+#define DEF_ASYNC            "True"
 #define DEF_TEXTURE          "True"
 #define DEF_OFFSET_TEXTURE   "False"
 #define DEF_PAINT_BACKGROUND "True"
-#define DEF_X_RES            "60"
-#define DEF_Y_RES            "32"
-#define DEF_FIELD_POINTS     "5"
-#define DEF_MOTION_BLUR      "0"
+#define DEF_RESOLUTION       "30"
+#define DEF_BUMPS            "10"
+#define DEF_MOTION_BLUR      "0.0"
 #define DEF_INCREMENTAL      "0"
-#define DEF_HOLD_TIME        "30"
-#define DEF_FADE_TIME        "5"
+#define DEF_HOLD_TIME        "30.0"
+#define DEF_FADE_TIME        "5.0"
+#define DEF_ZOOM             "1.0"
 
 #ifdef HAVE_XMU
 # ifndef VMS
@@ -76,6 +80,7 @@
 # endif /* VMS */
 #endif
 
+#include "gltrackball.h"
 #include "grab-ximage.h"
 
 #undef countof
 
 #define PI  3.1415926535897
 
-/* */
-static int do_wire;
-static int do_blend;
-static int do_fog;
-static int do_antialias;
-static int do_walls;
-static int do_texture;
-static int do_paint_background;
-static int do_colour;
-static int offset_texture;
-static int x_resolution;
-static int y_resolution;
-static int field_points;
-static int motion_blur;
-static int incremental;
-static int fade_time;
-static int hold_time;
+/* Options from command line */
+static GLfloat blend;
+static Bool wireframe;
+static Bool do_fog;
+static Bool do_antialias;
+static Bool do_walls;
+static Bool do_texture;
+static Bool do_paint_background;
+static Bool do_colour;
+static Bool offset_texture;
+static int resolution;
+static int bumps;
+static float motion_blur;
+static float fade_time;
+static float hold_time;
+static float zoom;
+
+/* Internal parameters based on supplied options */
+static Bool culling;
+static Bool load_textures;
 
 static XrmOptionDescRec opts[] = {
-    {"-wireframe",        ".blob.wire",             XrmoptionNoArg, "true" },
-    {"+wireframe",        ".blob.wire",             XrmoptionNoArg, "false" },
-    {"-blend",            ".blob.blend",            XrmoptionNoArg, "true" },
-    {"+blend",            ".blob.blend",            XrmoptionNoArg, "false" },
+    {"-wire",             ".blob.wire",             XrmoptionNoArg, "true" },
+    {"+wire",             ".blob.wire",             XrmoptionNoArg, "false" },
+    {"-blend",            ".blob.blend",            XrmoptionSepArg, 0 },
     {"-fog",              ".blob.fog",              XrmoptionNoArg, "true" },
     {"+fog",              ".blob.fog",              XrmoptionNoArg, "false" },
     {"-antialias",        ".blob.antialias",        XrmoptionNoArg, "true" },
@@ -116,22 +123,21 @@ static XrmOptionDescRec opts[] = {
     {"+texture",          ".blob.texture",          XrmoptionNoArg, "false" },
     {"-colour",           ".blob.colour",           XrmoptionNoArg, "true" },
     {"+colour",           ".blob.colour",           XrmoptionNoArg, "false" },
-    {"-offset_texture",   ".blob.offset_texture",   XrmoptionNoArg, "true" },
-    {"+offset_texture",   ".blob.offset_texture",   XrmoptionNoArg, "false" },
-    {"-paint_background", ".blob.paint_background", XrmoptionNoArg, "true" },
-    {"+paint_background", ".blob.paint_background", XrmoptionNoArg, "false" },
-    {"-x_res",            ".blob.x_res",            XrmoptionSepArg, NULL },
-    {"-y_res",            ".blob.y_res",            XrmoptionSepArg, NULL },
-    {"-field_points",     ".blob.field_points",     XrmoptionSepArg, NULL },
-    {"-motion_blur",      ".blob.motion_blur",      XrmoptionSepArg, NULL },
-    {"-incremental",      ".blob.incremental",      XrmoptionSepArg, NULL },
-    {"-fade_time",        ".blob.fade_time",        XrmoptionSepArg, NULL },
-    {"-hold_time",        ".blob.hold_time",        XrmoptionSepArg, NULL },
+    {"-offset-texture",   ".blob.offset_texture",   XrmoptionNoArg, "true" },
+    {"+offset-texture",   ".blob.offset_texture",   XrmoptionNoArg, "false" },
+    {"-paint-background", ".blob.paint_background", XrmoptionNoArg, "true" },
+    {"+paint-background", ".blob.paint_background", XrmoptionNoArg, "false" },
+    {"-resolution",       ".blob.resolution",       XrmoptionSepArg, NULL },
+    {"-bumps",            ".blob.bumps",            XrmoptionSepArg, NULL },
+    {"-motion-blur",      ".blob.motion_blur",      XrmoptionSepArg, 0 },
+    {"-fade-time",        ".blob.fade_time",        XrmoptionSepArg, 0 },
+    {"-hold-time",        ".blob.hold_time",        XrmoptionSepArg, 0 },
+    {"-zoom",             ".blob.zoom",             XrmoptionSepArg, 0 },
 };
 
 static argtype vars[] = {
-    {&do_wire,      "wire",         "Wire",      DEF_WIRE,      t_Bool},
-    {&do_blend,     "blend",        "Blend",     DEF_BLEND,     t_Bool},
+    {&wireframe,    "wire",         "Wire",      DEF_WIRE,      t_Bool},
+    {&blend,        "blend",        "Blend",     DEF_BLEND,     t_Float},
     {&do_fog,       "fog",          "Fog",       DEF_FOG,       t_Bool},
     {&do_antialias, "antialias",    "Antialias", DEF_ANTIALIAS, t_Bool},
     {&do_walls,     "walls",        "Walls",     DEF_WALLS,     t_Bool},
@@ -139,13 +145,12 @@ static argtype vars[] = {
     {&do_colour,    "colour",       "Colour",    DEF_COLOUR,   t_Bool},
     {&offset_texture, "offset_texture","Offset_Texture", DEF_OFFSET_TEXTURE, t_Bool},
     {&do_paint_background,"paint_background","Paint_Background", DEF_PAINT_BACKGROUND, t_Bool},
-    {&x_resolution, "x_res",        "X_Res",        DEF_X_RES,        t_Int},
-    {&y_resolution, "y_res",        "Y_Res",        DEF_Y_RES,        t_Int},
-    {&field_points, "field_points", "Field_Points", DEF_FIELD_POINTS, t_Int},
-    {&motion_blur,  "motion_blur",  "Motion_Blur",  DEF_MOTION_BLUR,  t_Int},
-    {&incremental,  "incremental",  "Incremental",  DEF_INCREMENTAL,  t_Int},
-    {&fade_time,    "fade_time",    "Fade_Time",    DEF_FADE_TIME,    t_Int},
-    {&hold_time,    "hold_time",    "Hold_Time",    DEF_HOLD_TIME,    t_Int},
+    {&resolution,   "resolution",   "Resolution",   DEF_RESOLUTION,   t_Int},
+    {&bumps,        "bumps",        "Bump",         DEF_BUMPS, t_Int},
+    {&motion_blur,  "motion_blur",  "Motion_Blur",  DEF_MOTION_BLUR,  t_Float},
+    {&fade_time,    "fade_time",    "Fade_Time",    DEF_FADE_TIME,    t_Float},
+    {&hold_time,    "hold_time",    "Hold_Time",    DEF_HOLD_TIME,    t_Float},
+    {&zoom,         "zoom",         "Zoom",         DEF_ZOOM,         t_Float},
 };
 
 
@@ -160,11 +165,9 @@ static OptionStruct desc[] =
     {"-/+ colour", "whether to colour the blob"},
     {"-/+ offset_texture", "whether to offset texture co-ordinates"},
     {"-/+ paint_background", "whether to display a background texture (slower)"},
-    {"-x_res", "Blob resolution in x direction"},
-    {"-y_res", "Blob resolution in y direction"},
-    {"-field_points", "Number of field points used to disturb blob"},
+    {"-resolution", "Resolution of blob tesselation"},
+    {"-bumps", "Number of bumps used to disturb blob"},
     {"-motion_blur", "Fade blob images (higher number = faster fade)"},
-    {"-incremental", "Field summation method"},
     {"-fade_time", "Number of frames to transistion to next image"},
     {"-hold_time", "Number of frames before next image"},
 };
@@ -174,12 +177,11 @@ ENTRYPOINT ModeSpecOpt mirrorblob_opts = {countof(opts), opts, countof(vars), va
 #ifdef USE_MODULES
 ModStruct   mirrorblob_description =
 {"mirrorblob", "init_mirrorblob", "draw_mirrorblob", "release_mirrorblob",
- "draw_mirrorblob", "init_mirrorblob", NULL, &mirrorblob_opts,
+ "draw_mirrorblob", "init_mirrorblob", "handle_event", &mirrorblob_opts,
  1000, 1, 2, 1, 4, 1.0, "",
  "OpenGL mirrorblob", 0, NULL};
 #endif
 
-#define NUM_TEXTURES 2
 
 /*****************************************************************************
  * Types used in blob code
@@ -195,46 +197,83 @@ typedef struct
     GLdouble x, y, z;
 } Vector3D;
 
+typedef struct
+{
+    GLdouble w;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+} Quaternion;
+
 typedef struct
 {
     GLubyte red, green, blue, alpha;
 } Colour;
 
-/* Data used for sphere tessellation */
 typedef struct
 {
-    double cosyd, sinyd;
+    Vector3D initial_position;
+    Vector3D position;
+    Vector3D normal;
+} Node_Data;
 
-    /* Number of x points at each row of the blob */
-    int num_x_points;
-} Row_Data;
+typedef struct
+{
+    int node1, node2, node3;
+    Vector3D normal;
+    double length1, length2, length3;
+} Face_Data;
 
-/* Structure to hold sphere distortion data */
+/* Structure to hold data about bumps used to distortion sphere */
 typedef struct
 {
-    double cx, cy, cpower;
-    double mx, my, mpower;
-    double ax, ay, apower;
-    double vx, vy, vpower;
+    double cx, cy, cpower, csize;
+    double ax, ay, power, size;
+    double mx, my, mpower, msize;
+    double vx, vy, vpower, vsize;
     Vector3D pos;
-} Field_Data;
+} Bump_Data;
+
+/* Vertices of a tetrahedron */
+#define sqrt_3 0.5773502692
+/*#undef sqrt_3
+#define sqrt_3 1.0*/
+#define PPP {  sqrt_3,  sqrt_3,  sqrt_3 }       /* +X, +Y, +Z */
+#define MMP { -sqrt_3, -sqrt_3,  sqrt_3 }       /* -X, -Y, +Z */
+#define MPM { -sqrt_3,  sqrt_3, -sqrt_3 }       /* -X, +Y, -Z */
+#define PMM {  sqrt_3, -sqrt_3, -sqrt_3 }       /* +X, -Y, -Z */
+
+/* Structure describing a tetrahedron */
+Vector3D tetrahedron[4][3] = {
+    {PPP, MMP, MPM},
+    {PMM, MPM, MMP},
+    {PPP, MPM, PMM},
+    {PPP, PMM, MMP}
+};
+
+/*****************************************************************************
+ * Static blob data
+ *****************************************************************************/
+
+const Vector3D zero_vector = { 0.0, 0.0, 0.0 };
+
+/* Use 2 textures to allow a gradual fade between images */
+#define NUM_TEXTURES 2
+#define BUMP_ARRAY_SIZE 1024
 
 typedef enum
 {
-  HOLDING=0,
+  HOLDING,
+  LOADING,
   TRANSITIONING
 } Frame_State;
 
-
 /* structure for holding the mirrorblob data */
 typedef struct {
   int screen_width, screen_height;
   GLXContext *glx_context;
   Window window;
   XColor fg, bg;
-  double freak, v_freak;
-
-  Row_Data *row_data;
 
   /* Parameters controlling the position of the blob as a whole */
   Vector3D blob_center;
@@ -242,18 +281,22 @@ typedef struct {
   Vector3D blob_velocity;
   Vector3D blob_force;
 
-  /* Count of the total number of points */
-  int num_points;
+  /* Count of the total number of nodes and faces used to tesselate the blob */
+  int num_nodes;
+  int num_faces;
 
+  Node_Data *nodes;
+  Face_Data *faces;
+  
   Vector3D *dots;
   Vector3D *normals;
   Colour   *colours;
   Vector2D *tex_coords;
 
-  /* Pointer to the field function results */
-  double *field, *wall_field;
+  /* Pointer to the bump function results */
+  double *bump_shape, *wall_shape;
 
-  Field_Data *field_data;
+  Bump_Data *bump_data;
 
   /* Use 2 textures to allow a gradual fade between images */
   int current_texture;
@@ -271,6 +314,9 @@ typedef struct {
   Bool waiting_for_image_p;
   Bool first_image_p;
 
+  trackball_state *trackball;
+  int button_down;
+
 } mirrorblobstruct;
 
 static mirrorblobstruct *Mirrorblob = NULL;
@@ -310,6 +356,182 @@ reset_projection(int width, int height)
     glLoadIdentity ();
 }
 
+/******************************************************************************
+ *
+ * Calculate the dot product of two vectors u and v
+ * Dot product u.v = |u||v|cos(theta)
+ * Where theta = angle between u and v
+ */
+static inline double
+dot (const Vector3D u, const Vector3D v)
+{
+    return (u.x * v.x) + (u.y * v.y) + (u.z * v.z);
+}
+
+/******************************************************************************
+ *
+ * Calculate the cross product of two vectors.
+ * Gives a vector perpendicular to u and v with magnitude |u||v|sin(theta)
+ * Where theta = angle between u and v
+ */
+static inline Vector3D
+cross (const Vector3D u, const Vector3D v)
+{
+    Vector3D result;
+
+    result.x = (u.y * v.z - u.z * v.y);
+    result.y = (u.z * v.x - u.x * v.z);
+    result.z = (u.x * v.y - u.y * v.x);
+
+    return result;
+}
+
+/******************************************************************************
+ *
+ * Add vector v to vector u
+ */
+static inline void
+add (Vector3D *u, const Vector3D v)
+{
+    u->x = u->x + v.x;
+    u->y = u->y + v.y;
+    u->z = u->z + v.z;
+}
+
+/******************************************************************************
+ *
+ * Subtract vector v from vector u
+ */
+static inline Vector3D
+subtract (const Vector3D u, const Vector3D v)
+{
+    Vector3D result;
+
+    result.x = u.x - v.x;
+    result.y = u.y - v.y;
+    result.z = u.z - v.z;
+
+    return result;
+}
+
+/******************************************************************************
+ *
+ * multiply vector v by scalar s
+ */
+static inline Vector3D
+scale (const Vector3D v, const double s)
+{
+    Vector3D result;
+    
+    result.x = v.x * s;
+    result.y = v.y * s;
+    result.z = v.z * s;
+    return result;
+}
+
+/******************************************************************************
+ *
+ * normalise vector v
+ */
+static inline Vector3D
+normalise (const Vector3D v)
+{
+    Vector3D result;
+    double magnitude;
+
+    magnitude = sqrt (dot(v, v));
+
+    if (magnitude > 1e-300)
+    {
+        result = scale (v, 1.0 / magnitude);
+    }
+    else
+    {
+        printf("zero\n");
+        result = zero_vector;
+    }
+    return result;
+}
+
+/******************************************************************************
+ *
+ * Calculate the transform matrix for the given quaternion
+ */
+static void
+quaternion_transform (Quaternion q, GLdouble * transform)
+{
+    GLdouble x, y, z, w;
+    x = q.x;
+    y = q.y;
+    z = q.z;
+    w = q.w;
+
+    transform[0] = (w * w) + (x * x) - (y * y) - (z * z);
+    transform[1] = (2.0 * x * y) + (2.0 * w * z);
+    transform[2] = (2.0 * x * z) - (2.0 * w * y);
+    transform[3] = 0.0;
+
+    transform[4] = (2.0 * x * y) - (2.0 * w * z);
+    transform[5] = (w * w) - (x * x) + (y * y) - (z * z);
+    transform[6] = (2.0 * y * z) + (2.0 * w * x);
+    transform[7] = 0.0;
+
+    transform[8] = (2.0 * x * z) + (2.0 * w * y);
+    transform[9] = (2.0 * y * z) - (2.0 * w * x);
+    transform[10] = (w * w) - (x * x) - (y * y) + (z * z);
+    transform[11] = 0.0;
+
+    transform[12] = 0.0;
+    transform[13] = 0.0;
+    transform[14] = 0.0;
+    transform[15] = (w * w) + (x * x) + (y * y) + (z * z);
+}
+
+/******************************************************************************
+ *
+ * Apply a matrix transform to the given vector
+ */
+static inline Vector3D
+vector_transform (Vector3D u, GLdouble * t)
+{
+    Vector3D result;
+
+    result.x = (u.x * t[0] + u.y * t[4] + u.z * t[8] + 1.0 * t[12]);
+    result.y = (u.x * t[1] + u.y * t[5] + u.z * t[9] + 1.0 * t[13]);
+    result.z = (u.x * t[2] + u.y * t[6] + u.z * t[10] + 1.0 * t[14]);
+
+    return result;
+}
+
+/******************************************************************************
+ *
+ * Return a node that is on an arc between node1 and node2, where distance
+ * is the proportion of the distance from node1 to the total arc.
+ */
+static Vector3D
+partial (Vector3D node1, Vector3D node2, double distance)
+{
+    Vector3D result;
+    Vector3D rotation_axis;
+    GLdouble transformation[16];
+    double angle;
+    Quaternion rotation;
+
+    rotation_axis = normalise (cross (node1, node2));
+    angle = acos (dot (node1, node2)) * distance;
+
+    rotation.x = rotation_axis.x * sin (angle / 2.0);
+    rotation.y = rotation_axis.y * sin (angle / 2.0);
+    rotation.z = rotation_axis.z * sin (angle / 2.0);
+    rotation.w = cos (angle / 2.0);
+
+    quaternion_transform (rotation, transformation);
+
+    result = vector_transform (node1, transformation);
+
+    return result;
+}
+
 /****************************************************************************
  *
  * Load a texture.
@@ -367,76 +589,98 @@ grab_texture(ModeInfo *mi, int texture_index)
 
 /******************************************************************************
  *
- * Initialise the data used to calculate the blob shape.
+ * Generate internal parameters based on supplied options the parameters to
+ * ensure they are consistant.
+ */
+static void
+set_parameters(void)
+{
+    /* In wire frame mode do not draw a texture */
+    if (wireframe)
+    {
+        do_texture = False;
+        blend = 1.0;
+    }
+    
+    /* Need to load textures if either the blob or the backgound has an image */
+    if (do_texture || do_paint_background)
+    {
+        load_textures = True;
+    }
+    else
+    {
+        load_textures = False;
+    }
+    
+    /* If theres no texture don't calculate co-ordinates. */
+    if (!do_texture)
+    {
+        offset_texture = False;
+    }
+    
+    culling = True;
+}
+
+/******************************************************************************
+ *
+ * Initialise the openGL state data.
  */
 static void
 initialize_gl(ModeInfo *mi, GLsizei width, GLsizei height)
 {
     mirrorblobstruct *gp = &Mirrorblob[MI_SCREEN(mi)];
-
-    GLfloat fogColor[4] = { 0.1, 0.1, 0.1, 0.1 };
+    
     /* Lighting values */
+    GLfloat ambientLight[] = { 0.2f, 0.2f, 0.2f, 1.0f };
+
     GLfloat lightPos0[] = {500.0f, 100.0f, 200.0f, 1.0f };
-    GLfloat whiteLight0[] = { 0.1f, 0.1f, 0.1f, 1.0f };
-    GLfloat sourceLight0[] = { 1.0f, 1.0f, 1.0f, 1.0f };
-    GLfloat specularLight0[] = { 0.7f, 0.6f, 0.3f, 1.0f };
+    GLfloat whiteLight0[] = { 0.0f, 0.0f, 0.0f, 1.0f };
+    GLfloat sourceLight0[] = { 0.6f, 0.6f, 0.6f, 1.0f };
+    GLfloat specularLight0[] = { 0.8f, 0.8f, 0.9f, 1.0f };
 
     GLfloat lightPos1[] = {0.0f, -500.0f, 500.0f, 1.0f };
-    GLfloat whiteLight1[] = { 0.1f, 0.1f, 0.1f, 1.0f };
-    GLfloat sourceLight1[] = { 1.0f, 0.3f, 0.3f, 1.0f };
-    GLfloat specularLight1[] = { 0.7f, 0.6f, 0.3f, 1.0f };
+    GLfloat whiteLight1[] = { 0.0f, 0.0f, 0.0f, 1.0f };
+    GLfloat sourceLight1[] = { 0.6f, 0.6f, 0.6f, 1.0f };
+    GLfloat specularLight1[] = { 0.7f, 0.7f, 0.7f, 1.0f };
 
     GLfloat specref[] = { 1.0f, 1.0f, 1.0f, 1.0f };
 
-    /* Setup our viewport. */
-    glViewport (0, 0, width, height ); 
+    GLfloat fogColor[4] = { 0.4, 0.4, 0.5, 0.1 };
 
-    glEnable(GL_DEPTH_TEST);
+    /* Set the internal parameters based on the configuration settings */
+    set_parameters();
+
+    /* Set the viewport to the width and heigh of the window */
+    glViewport (0, 0, width, height ); 
 
     if (do_antialias)
     {
-        do_blend = 1;
+        blend = 1.0;
         glEnable(GL_LINE_SMOOTH);
+        glEnable(GL_POLYGON_SMOOTH);
     }
 
     /* The blend function is used for trasitioning between two images even when
      * blend is not selected.
      */
     glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-
-    if (do_wire)
-    {
-        glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
-    }
-    else
-    {
-        glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
-    }
-
     if (do_fog)
     {
         glEnable(GL_FOG);
-        glFogi(GL_FOG_MODE, GL_LINEAR);
         glFogfv(GL_FOG_COLOR, fogColor);
-        glFogf(GL_FOG_DENSITY, 0.35);
-        glFogf(GL_FOG_START, 2.0);
-        glFogf(GL_FOG_END, 10.0);
+        glFogf(GL_FOG_DENSITY, 0.50);
+        glFogf(GL_FOG_START, 15.0);
+        glFogf(GL_FOG_END, 30.0);
     }
 
-    /* Our shading model--Gouraud (smooth). */
+    /* Set the shading model to smooth (Gouraud shading). */
     glShadeModel (GL_SMOOTH);
 
-    /* Culling. */
-    glCullFace (GL_BACK);
-    glEnable (GL_CULL_FACE);
-    glEnable (GL_DEPTH_TEST);
-    glFrontFace (GL_CCW);
-
     /* Set the clear color. */
     glClearColor( 0, 0, 0, 0 );
 
-    glViewport( 0, 0, width, height );
-
+    glLightModelfv (GL_LIGHT_MODEL_AMBIENT, ambientLight);
     glLightfv (GL_LIGHT0, GL_AMBIENT, whiteLight0);
     glLightfv (GL_LIGHT0, GL_DIFFUSE, sourceLight0);
     glLightfv (GL_LIGHT0, GL_SPECULAR, specularLight0);
@@ -457,21 +701,28 @@ initialize_gl(ModeInfo *mi, GLsizei width, GLsizei height)
 
     /* Set all materials to have specular reflectivity */
     glMaterialfv (GL_FRONT, GL_SPECULAR, specref);
-    glMateriali (GL_FRONT, GL_SHININESS, 64);
+    glMateriali (GL_FRONT, GL_SHININESS, 32);
 
+    /* Let GL implementation scale normal vectors. */
     glEnable (GL_NORMALIZE);
 
     /* Enable Arrays */
-    if (do_texture)
+    if (load_textures)
     {
         glLightModeli (GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR);
-
         glEnable (GL_TEXTURE_2D);
+
         gp->current_texture = 0;
         glGenTextures (NUM_TEXTURES, gp->textures);
         grab_texture (mi, gp->current_texture);
 
-        glEnableClientState (GL_TEXTURE_COORD_ARRAY);
+        if (do_texture)
+        {
+            glEnableClientState (GL_TEXTURE_COORD_ARRAY);
+        }
+        glMatrixMode (GL_TEXTURE);
+        glRotated (180.0, 1.0, 0.0, 0.0);
+        glMatrixMode (GL_MODELVIEW);
     }
 
     if (do_colour)
@@ -487,41 +738,58 @@ initialize_gl(ModeInfo *mi, GLsizei width, GLsizei height)
 
 /******************************************************************************
  *
- * Calculate the normal vector for a plane given three points in the plane.
+ * Initialise the openGL state data.
  */
 static void
-calculate_normal (Vector3D point1,
-                  Vector3D point2,
-                  Vector3D point3,
-                  Vector3D *normal)
+set_blob_gl_state(GLdouble alpha)
 {
-    Vector3D vector1, vector2;
-    double magnitude;
-
-    vector1.x = point2.x - point1.x;
-    vector1.y = point2.y - point1.y;
-    vector1.z = point2.z - point1.z;
-
-    vector2.x = point3.x - point2.x;
-    vector2.y = point3.y - point2.y;
-    vector2.z = point3.z - point2.z;
-
-    (*normal).x = vector1.y * vector2.z - vector1.z * vector2.y;
-    (*normal).y = vector1.z * vector2.x - vector1.x * vector2.z;
-    (*normal).z = vector1.x * vector2.y - vector1.y * vector2.x;
+    if (do_antialias)
+    {
+        glEnable(GL_LINE_SMOOTH);
+        glEnable(GL_POLYGON_SMOOTH);
+    }
 
-    /* Adjust the normal to unit magnitude */
-    magnitude = sqrt ((*normal).x * (*normal).x
-                      + (*normal).y * (*normal).y
-                      + (*normal).z * (*normal).z);
+    if (wireframe)
+    {
+        glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+    }
+    else
+    {
+        glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
+    }
 
-    /* Watch out for divide by zero/underflow */
-    if (magnitude > 1e-300)
+    /* The blend function is used for trasitioning between two images even when
+     * blend is not selected.
+     */
+    glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+    /* Culling. */
+    if (culling)
+    {
+        glCullFace (GL_BACK);
+        glEnable (GL_CULL_FACE);
+        glFrontFace (GL_CCW);
+    }
+    else
     {
-        (*normal).x /= magnitude;
-        (*normal).y /= magnitude;
-        (*normal).z /= magnitude;
+        glDisable (GL_CULL_FACE);
     }
+    
+    if (blend < 1.0)
+    {
+        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);
+    }
+    else
+    {
+        glDisable(GL_BLEND);
+        glColor4d (0.9, 0.9, 1.0, 1.0);
+    }
+    
+    glEnable(GL_DEPTH_TEST);
+    glEnable(GL_LIGHTING);
 }
 
 /******************************************************************************
@@ -533,52 +801,65 @@ calculate_normal (Vector3D point1,
  */
 static int
 initialise_blob(mirrorblobstruct *gp,
-                int width, int height,
-                int field_array_size)
+                int width,
+                int height,
+                int bump_array_size)
 {
-    /* Loop variables */
-    int x, y, i;
-    double xd;
+     /* Loop variables */    
+    int i, u, v, node, side, face, base, base2 = 0;
+    int nodes_on_edge = resolution;
+    Vector3D node1, node2, result;
 
-    gp->colour_cycle = 0;
+    if (nodes_on_edge < 2)
+        return -1;
 
-    gp->row_data = (Row_Data *) malloc (y_resolution * sizeof (Row_Data));
-    if (!gp->row_data)
+    gp->num_nodes = 2 * nodes_on_edge * nodes_on_edge - 4 * nodes_on_edge + 4;
+    gp->num_faces = 4 * (nodes_on_edge - 1) * (nodes_on_edge - 1);
+    gp->nodes = (Node_Data *) malloc (gp->num_nodes * sizeof (Node_Data));
+    if (!gp->nodes)
     {
-        fprintf(stderr, "Couldn't allocate row data buffer\n");
+        fprintf (stderr, "Couldn't allocate gp->nodes buffer\n");
         return -1;
     }
 
-    gp->field_data = (Field_Data *) malloc (field_points * sizeof (Field_Data));
-    if (!gp->field_data)
+    gp->faces = (Face_Data *) malloc (gp->num_faces * sizeof (Face_Data));
+    if (!gp->faces)
     {
-        fprintf(stderr, "Couldn't allocate field data buffer\n");
+        fprintf (stderr, "Couldn't allocate faces data buffer\n");
         return -1;
     }
 
-    gp->field = (double *)malloc(field_array_size * sizeof(double));
-    if (!gp->field)
+    gp->bump_data = (Bump_Data *) malloc (bumps * sizeof (Bump_Data));
+    if (!gp->bump_data)
     {
-        fprintf(stderr, "Couldn't allocate field buffer\n");
+        fprintf(stderr, "Couldn't allocate bump data buffer\n");
         return -1;
     }
 
-    gp->wall_field = (double *)malloc(field_array_size * sizeof(double));
-    if (!gp->wall_field)
+    gp->bump_shape = (double *)malloc(bump_array_size * sizeof(double));
+    if (!gp->bump_shape)
     {
-        fprintf(stderr, "Couldn't allocate wall field buffer\n");
+        fprintf(stderr, "Couldn't allocate bump buffer\n");
         return -1;
     }
 
-    gp->dots = (Vector3D *)malloc(x_resolution * y_resolution * sizeof(Vector3D));
+    gp->wall_shape = (double *)malloc(bump_array_size * sizeof(double));
+    if (!gp->wall_shape)
+    {
+        fprintf(stderr, "Couldn't allocate wall bump buffer\n");
+        return -1;
+    }
+
+    gp->dots = (Vector3D *)malloc(gp->num_nodes * sizeof(Vector3D));
     if (!gp->dots)
     {
-        fprintf(stderr, "Couldn't allocate points buffer\n");
+        fprintf(stderr, "Couldn't allocate nodes buffer\n");
         return -1;
     }
     glVertexPointer (3, GL_DOUBLE, 0, (GLvoid *) gp->dots);
 
-    gp->normals = (Vector3D *)malloc(x_resolution * y_resolution * sizeof(Vector3D));
+    gp->normals = (Vector3D *)malloc(gp->num_nodes * sizeof(Vector3D));
     if (!gp->normals)
     {
         fprintf(stderr, "Couldn't allocate normals buffer\n");
@@ -588,7 +869,7 @@ initialise_blob(mirrorblobstruct *gp,
 
     if (do_colour)
     {
-        gp->colours = (Colour *)malloc(x_resolution * y_resolution * sizeof(Colour));
+        gp->colours = (Colour *)malloc(gp->num_nodes * sizeof(Colour));
         if (!gp->colours)
         {
             fprintf(stderr, "Couldn't allocate colours buffer\n");
@@ -599,89 +880,262 @@ initialise_blob(mirrorblobstruct *gp,
 
     if (do_texture)
     {
-        gp->tex_coords = (Vector2D *)malloc(x_resolution * y_resolution
-                                        * sizeof(Vector2D));
+        gp->tex_coords = (Vector2D *)malloc(gp->num_nodes * sizeof(Vector2D));
         if (!gp->tex_coords)
         {
-            fprintf(stderr, "Couldn't allocate tex_coords buffer\n");
+            fprintf(stderr, "Couldn't allocate gp->tex_coords buffer\n");
             return -1;
         }
         glTexCoordPointer (2, GL_DOUBLE, 0, (GLvoid *) gp->tex_coords);
     }
 
-    gp->num_points = 0;
-    /* Generate constant row data and count of total number of points */
-    for (y = 0; y < y_resolution; y++)
-    {
-        gp->row_data[y].cosyd = cos(PI * (double)(y * (y_resolution + 1))
-                                / (double)(y_resolution * y_resolution));
-        gp->row_data[y].sinyd = sin(PI * (double)(y * (y_resolution + 1))
-                                / (double)(y_resolution * y_resolution));
-        gp->row_data[y].num_x_points = (int)(x_resolution * gp->row_data[y].sinyd + 1.0);
-        gp->num_points += gp->row_data[y].num_x_points;
-    }
-
-    /* Initialise field data */
-    for (i = 0; i < field_points; i++)
+    /* Initialise bump data */
+    for (i = 0; i < bumps; i++)
     {
-        gp->field_data[i].ax = 2.0 * (((double)random() / (double)RAND_MAX) - 0.5);
-        gp->field_data[i].ay = 2.0 * (((double)random() / (double)RAND_MAX) - 0.5);
-        gp->field_data[i].apower = (((double)random() / (double)RAND_MAX) - 0.5);
-
-        gp->field_data[i].pos.x = 1.5 * sin(PI * gp->field_data[i].ay)
-            * cos(PI *  gp->field_data[i].ax);
-        gp->field_data[i].pos.y = 1.5 * cos(PI * gp->field_data[i].ay);
-        gp->field_data[i].pos.z = 1.5 * sin(PI * gp->field_data[i].ay)
-            * sin(PI *  gp->field_data[i].ax);
-
-        gp->field_data[i].cx = 2.0 * (((double)random() / (double)RAND_MAX) - 0.5);
-        gp->field_data[i].cy = 2.0 * (((double)random() / (double)RAND_MAX) - 0.5);
-        gp->field_data[i].cpower = (((double)random() / (double)RAND_MAX) - 0.5);
-
-        gp->field_data[i].vx = 0.0;
-        gp->field_data[i].vy = 0.0;
-        gp->field_data[i].vpower = 0.0;
-
-        gp->field_data[i].mx = 0.003 * ((double)random() / (double)RAND_MAX);
-        gp->field_data[i].my = 0.003 * ((double)random() / (double)RAND_MAX);
-        gp->field_data[i].mpower = 0.003 * ((double)random() / (double)RAND_MAX);
+        gp->bump_data[i].ax = 2.0 * (((double)random() / (double)RAND_MAX) - 0.5);
+        gp->bump_data[i].ay = 2.0 * (((double)random() / (double)RAND_MAX) - 0.5);
+        gp->bump_data[i].power = (5.0 / pow(bumps, 0.75)) * (((double)random() / (double)RAND_MAX) - 0.5);
+        gp->bump_data[i].size = 0.1 + 0.5 * (((double)random() / (double)RAND_MAX));
+
+        gp->bump_data[i].pos.x = 1.5 * sin(PI * gp->bump_data[i].ay)
+            * cos(PI *  gp->bump_data[i].ax);
+        gp->bump_data[i].pos.y = 1.5 * cos(PI * gp->bump_data[i].ay);
+        gp->bump_data[i].pos.z = 1.5 * sin(PI * gp->bump_data[i].ay)
+            * sin(PI *  gp->bump_data[i].ax);
+
+        gp->bump_data[i].cx = 2.0 * (((double)random() / (double)RAND_MAX) - 0.5);
+        gp->bump_data[i].cy = 2.0 * (((double)random() / (double)RAND_MAX) - 0.5);
+        gp->bump_data[i].cpower = (5.0 / pow(bumps, 0.75)) * (((double)random() / (double)RAND_MAX) - 0.5);
+        gp->bump_data[i].csize = 0.35; /*0.1 + 0.25 * (((double)random() / (double)RAND_MAX));*/
+
+        gp->bump_data[i].vx = 0.0;
+        gp->bump_data[i].vy = 0.0;
+        gp->bump_data[i].vpower = 0.0;
+        gp->bump_data[i].vsize = 0.0;
+
+        gp->bump_data[i].mx = 0.003 * ((double)random() / (double)RAND_MAX);
+        gp->bump_data[i].my = 0.003 * ((double)random() / (double)RAND_MAX);
+        gp->bump_data[i].mpower = 0.003 * ((double)random() / (double)RAND_MAX);
+        gp->bump_data[i].msize = 0.003 * ((double)random() / (double)RAND_MAX);
     }
 
-    /* Initialise lookup table of field strength */
-    for (i = 0; i < field_array_size; i++)
+    /* Initialise lookup table of bump strength */
+    for (i = 0; i < bump_array_size; i++)
     {
-        xd = 2.0 * (((double)i / (double)field_array_size));
+        double xd, xd2;
+        xd = i / (double)bump_array_size;
 
-        xd = 3.0 * xd * xd * xd * xd;
-        gp->field[i] = 0.4 / (field_points * (xd + 0.1));
+        xd2 = 48.0 * xd * xd;
+        gp->bump_shape[i] = 0.1 / (xd2 + 0.1);
 
-        xd = 10.0 * (((double)i / (double)field_array_size));
-        gp->wall_field[i] = 0.4 / (xd * xd * xd * xd + 1.0);
+        xd2 = 40.0 * xd * xd * xd * xd;
+        gp->wall_shape[i] = 0.4 / (xd2 + 0.1);
     }
 
-    for (y = 0; y < y_resolution; y++)
+    node = 0;
+    face = 0;
+    for (side = 0; side < 4; side++)
     {
-        for (x = 0; x < gp->row_data[y].num_x_points; x++)
+        base = node;
+        if (side == 2) 
         {
-            i = x + y * x_resolution;
-            xd = 2.0 * (((double)x / (double)gp->row_data[y].num_x_points) - 0.5);
-
-            gp->dots[i].x = gp->row_data[y].sinyd * cos(PI * xd);
-            gp->dots[i].y = gp->row_data[y].cosyd;
-            gp->dots[i].z = gp->row_data[y].sinyd * sin(PI * xd);
-            gp->normals[i].x = gp->row_data[y].sinyd * cos(PI * xd);
-            gp->normals[i].y = gp->row_data[y].cosyd;
-            gp->normals[i].z = gp->row_data[y].sinyd * sin(PI * xd);
-            if (do_texture)
+            base2 = node;
+        }
+        /*
+         * The start and end of the for loops below are modified based on the 
+         * side of the tetrahedron that is being calculated to avoid duplication
+         * of the gp->nodes that are on the edges of the tetrahedron. 
+         */
+        for (u = (side > 1); u < (nodes_on_edge - (side > 0)); u++)
+        {
+            node1 = partial (normalise (tetrahedron[side][0]),
+                              normalise (tetrahedron[side][1]),
+                              u / (double) (nodes_on_edge - 1));
+            node2 = partial (normalise (tetrahedron[side][0]),
+                              normalise (tetrahedron[side][2]),
+                              u / (double) (nodes_on_edge - 1));
+
+            for (v = (side > 1); v <= (u - (side > 2)); v++)
             {
-                gp->tex_coords[i].x = 2.0 - 2.0 * x / (float) gp->row_data[y].num_x_points;
-                gp->tex_coords[i].y = 1.0 - y / (float) y_resolution;
+                if (u > 0)
+                    result = partial (node1, node2, v / (double) u);
+                else
+                    result = node1;
+
+                gp->nodes[node].position = normalise (result);
+                gp->nodes[node].initial_position = gp->nodes[node].position;
+                gp->nodes[node].normal = zero_vector;
+                node++;
+            }
+        }
+        /*
+         * Determine which nodes make up each face.  The complexity is caused 
+         * by having to determine the correct nodes for the edges of the
+         * tetrahedron since the common nodes on the edges are only calculated
+         * once (see above).
+         */
+        for (u = 0; u < (nodes_on_edge - 1); u++)
+        {
+            for (v = 0; v <= u; v++)
+            {
+                {
+                    if (side < 2)
+                    {
+                        gp->faces[face].node1 = base + ((u * (u + 1)) / 2) + v;
+                        gp->faces[face].node2 =
+                            base + ((u + 1) * (u + 2)) / 2 + v + 1;
+                        gp->faces[face].node3 =
+                            base + ((u + 1) * (u + 2)) / 2 + v;
+
+                        if ((side == 1) && (u == (nodes_on_edge - 2)))
+                        {
+                            gp->faces[face].node3 =
+                                ((u + 1) * (u + 2)) / 2 +
+                                nodes_on_edge - v - 1;
+                            gp->faces[face].node2 =
+                                ((u + 1) * (u + 2)) / 2 +
+                                nodes_on_edge - v - 2;
+                        }
+                    }
+                    else if (side < 3)
+                    {
+                        gp->faces[face].node1 =
+                            base + (((u - 1) * u) / 2) + v - 1;
+                        gp->faces[face].node2 = base + ((u) * (u + 1)) / 2 + v;
+                        gp->faces[face].node3 =
+                            base + ((u) * (u + 1)) / 2 + v - 1;
+
+                        if (u == (nodes_on_edge - 2))
+                        {
+                            int n = nodes_on_edge - v - 1;
+                            gp->faces[face].node2 =
+                                ((nodes_on_edge *
+                                  (nodes_on_edge + 1)) / 2) +
+                                ((n - 1) * (n + 0)) / 2;
+                            gp->faces[face].node3 =
+                                ((nodes_on_edge *
+                                  (nodes_on_edge + 1)) / 2) +
+                                ((n + 0) * (n + 1)) / 2;
+                        }
+                        if (v == 0)
+                        {
+                            gp->faces[face].node1 = (((u + 1) * (u + 2)) / 2) - 1;
+                            gp->faces[face].node3 = (((u + 2) * (u + 3)) / 2) - 1;
+                        }
+                    }
+                    else
+                    {
+                        gp->faces[face].node1 =
+                            base + (((u - 2) * (u - 1)) / 2) + v - 1;
+                        gp->faces[face].node2 = base + ((u - 1) * u) / 2 + v;
+                        gp->faces[face].node3 = base + ((u - 1) * u) / 2 + v - 1;
+
+                        if (v == 0)
+                        {
+                            gp->faces[face].node1 =
+                                base2 + ((u * (u + 1)) / 2) - 1;
+                            gp->faces[face].node3 =
+                                base2 + ((u + 1) * (u + 2)) / 2 - 1;
+                        }
+                        if (u == (nodes_on_edge - 2))
+                        {
+                            gp->faces[face].node3 =
+                                ((nodes_on_edge *
+                                  (nodes_on_edge + 1)) / 2) +
+                                ((v + 1) * (v + 2)) / 2 - 1;
+                            gp->faces[face].node2 =
+                                ((nodes_on_edge *
+                                  (nodes_on_edge + 1)) / 2) +
+                                ((v + 2) * (v + 3)) / 2 - 1;
+                        }
+                        if (v == u)
+                        {
+                            gp->faces[face].node1 = (u * (u + 1)) / 2;
+                            gp->faces[face].node2 = ((u + 1) * (u + 2)) / 2;
+                        }
+                    }
+                    face++;
+                }
+
+                if (v < u)
+                {
+                    if (side < 2)
+                    {
+                        gp->faces[face].node1 = base + ((u * (u + 1)) / 2) + v;
+                        gp->faces[face].node2 =
+                            base + ((u * (u + 1)) / 2) + v + 1;
+                        gp->faces[face].node3 =
+                            base + (((u + 1) * (u + 2)) / 2) + v + 1;
+
+                        if ((side == 1) && (u == (nodes_on_edge - 2)))
+                        {
+                            gp->faces[face].node3 =
+                                ((u + 1) * (u + 2)) / 2 +
+                                nodes_on_edge - v - 2;
+                        }
+                    }
+                    else if (side < 3)
+                    {
+                        gp->faces[face].node1 =
+                            base + ((u * (u - 1)) / 2) + v - 1;
+                        gp->faces[face].node2 = base + ((u * (u - 1)) / 2) + v;
+                        gp->faces[face].node3 = base + ((u * (u + 1)) / 2) + v;
+
+                        if (u == (nodes_on_edge - 2))
+                        {
+                            int n = nodes_on_edge - v - 1;
+                            gp->faces[face].node3 =
+                                ((nodes_on_edge *
+                                  (nodes_on_edge + 1)) / 2) +
+                                ((n + 0) * (n - 1)) / 2;
+                        }
+                        if (v == 0)
+                        {
+                            gp->faces[face].node1 = (((u + 1) * (u + 2)) / 2) - 1;
+                        }
+                    }
+                    else
+                    {
+                        gp->faces[face].node1 =
+                            base + (((u - 2) * (u - 1)) / 2) + v - 1;
+                        gp->faces[face].node2 =
+                            base + (((u - 2) * (u - 1)) / 2) + v;
+                        gp->faces[face].node3 = base + (((u - 1) * u) / 2) + v;
+
+                        if (v == 0)
+                        {
+                            gp->faces[face].node1 = base2 + (u * (u + 1)) / 2 - 1;
+                        }
+                        if (u == (nodes_on_edge - 2))
+                        {
+                            gp->faces[face].node3 =
+                                ((nodes_on_edge * (nodes_on_edge + 1)) / 2) +
+                                ((v + 2) * (v + 3)) / 2 - 1;
+                        }
+                        if (v == (u - 1))
+                        {
+                            gp->faces[face].node2 = (u * (u + 1)) / 2;
+                        }
+                    }
+                    face++;
+                }
             }
         }
     }
+
     return 0;
 }
 
+/******************************************************************************
+ *
+ * Return the magnitude of the given vector
+ */
+static inline double
+length (Vector3D u)
+{
+    return sqrt (u.x * u.x + u.y * u.y + u.z * u.z);
+}
 
 /******************************************************************************
  *
@@ -689,398 +1143,234 @@ initialise_blob(mirrorblobstruct *gp,
  */
 static void
 calc_blob(mirrorblobstruct *gp,
-          int width, int height,
-          int field_array_size,
+          int width,
+          int height,
+          int bump_array_size,
           float limit,
           double fade)
 {
     /* Loop variables */
-    int x, y, i, index, index1, index2, index3;
-    /* position of a point */
-    double xd, yd, zd, offset_x, offset_y, offset_z;
-    double strength, radius;
-    double xdist, ydist, zdist;
+    int i, index, face;
+    /* position of a node */
+    Vector3D node;
+    Vector3D offset;
+    Vector3D bump_vector;
     int dist;
 
-    /* Color components */
-
-    gp->colour_cycle++;
-
-    /* Update position and strength of points used to distort the blob */
-    for (i = 0; i < field_points; i++)
+    /* Update position and strength of bumps used to distort the blob */
+    for (i = 0; i < bumps; i++)
     {
-        gp->field_data[i].vx += gp->field_data[i].mx*(gp->field_data[i].cx - gp->field_data[i].ax);
-        gp->field_data[i].vy += gp->field_data[i].my*(gp->field_data[i].cy - gp->field_data[i].ay);
-        gp->field_data[i].vpower += gp->field_data[i].mpower
-            * (gp->field_data[i].cpower - gp->field_data[i].apower);
-
-        gp->field_data[i].ax += 0.1 * gp->field_data[i].vx;
-        gp->field_data[i].ay += 0.1 * gp->field_data[i].vy;
-        gp->field_data[i].apower += 0.1 * gp->field_data[i].vpower;
-
-        gp->field_data[i].pos.x = 1.0 * sin(PI * gp->field_data[i].ay)
-            * cos(PI * gp->field_data[i].ax);
-        gp->field_data[i].pos.y = 1.0 * cos(PI * gp->field_data[i].ay);
-        gp->field_data[i].pos.z = 1.0 * sin(PI * gp->field_data[i].ay)
-            * sin(PI * gp->field_data[i].ax);
+        gp->bump_data[i].vx += gp->bump_data[i].mx*(gp->bump_data[i].cx - gp->bump_data[i].ax);
+        gp->bump_data[i].vy += gp->bump_data[i].my*(gp->bump_data[i].cy - gp->bump_data[i].ay);
+        gp->bump_data[i].vpower += gp->bump_data[i].mpower
+            * (gp->bump_data[i].cpower - gp->bump_data[i].power);
+        gp->bump_data[i].vsize += gp->bump_data[i].msize
+            * (gp->bump_data[i].csize - gp->bump_data[i].size);
+
+        gp->bump_data[i].ax += 0.1 * gp->bump_data[i].vx;
+        gp->bump_data[i].ay += 0.1 * gp->bump_data[i].vy;
+        gp->bump_data[i].power += 0.1 * gp->bump_data[i].vpower;
+        gp->bump_data[i].size += 0.1 * gp->bump_data[i].vsize;
+
+        gp->bump_data[i].pos.x = 1.0 * sin(PI * gp->bump_data[i].ay)
+            * cos(PI * gp->bump_data[i].ax);
+        gp->bump_data[i].pos.y = 1.0 * cos(PI * gp->bump_data[i].ay);
+        gp->bump_data[i].pos.z = 1.0 * sin(PI * gp->bump_data[i].ay)
+            * sin(PI * gp->bump_data[i].ax);
     }
 
-    gp->blob_force.x = 0.0;
-    gp->blob_force.y = 0.0;
-    gp->blob_force.z = 0.0;
-    for (y = 0; y < y_resolution; y++)
+    /* Update calculate new position for each vertex based on an offset from
+     * the initial position
+     */
+    gp->blob_force = zero_vector;
+    for (index = 0; index < gp->num_nodes; ++index)
     {
-        for (x = 0; x < gp->row_data[y].num_x_points; x++)
-        {
-            index = x + y * x_resolution;
-            xd = 2.0 * PI * (((double)x / (double)gp->row_data[y].num_x_points) - 0.5);
-
-            radius = 1.0 + 0.0 * sin (xd * 10);
+        node = gp->nodes[index].initial_position;
+        gp->nodes[index].normal = zero_vector;
 
-            zd = radius * gp->row_data[y].sinyd * sin(xd);
-            xd = radius * gp->row_data[y].sinyd * cos(xd);
-            yd = radius * gp->row_data[y].cosyd;
+        offset = zero_vector;
+        for ( i = 0; i < bumps; i++)
+        {
+            bump_vector = subtract(gp->bump_data[i].pos, node);
 
-            gp->normals[index].x = xd;
-            gp->normals[index].y = yd;
-            gp->normals[index].z = zd;
+            dist = bump_array_size * dot(bump_vector, bump_vector) * gp->bump_data[i].size;
 
-            offset_x = 0.0;
-            offset_y = 0.0;
-            offset_z = 0.0;
-            strength = 0.0;
-            for ( i = 0; i < field_points; i++)
+            if (dist < bump_array_size)
             {
-                xdist = gp->field_data[i].pos.x - xd;
-                ydist = gp->field_data[i].pos.y - yd;
-                zdist = gp->field_data[i].pos.z - zd;
-                dist = field_array_size * (xdist * xdist + ydist * ydist
-                                           + zdist * zdist) * 0.1;
-
-                strength += PI * gp->field_data[i].apower;
-
-                if (dist < field_array_size)
-                {
-                    offset_x += xd * gp->field_data[i].apower * gp->field[dist];
-                    offset_y += yd * gp->field_data[i].apower * gp->field[dist];
-                    offset_z += zd * gp->field_data[i].apower * gp->field[dist];
-
-                    gp->blob_force.x += 1.0 * xd * gp->field_data[i].apower * gp->field[dist];
-                    gp->blob_force.y += 1.0 * yd * gp->field_data[i].apower * gp->field[dist];
-                    gp->blob_force.z += 1.0 * zd * gp->field_data[i].apower * gp->field[dist];
+                add(&offset, scale(node, gp->bump_data[i].power * gp->bump_shape[dist]));
+                add(&gp->blob_force, scale(node, gp->bump_data[i].power * gp->bump_shape[dist]));
+            }
+        }
 
-                    strength *= 2.0 * gp->field[dist];
-                }
+        add(&node, offset);
+        node = scale(node, zoom);
+        add(&node, gp->blob_center);
 
-                if (incremental)
-                {
-                    xd += offset_x * gp->freak * gp->freak;
-                    yd += offset_y * gp->freak * gp->freak;
-                    zd += offset_z * gp->freak * gp->freak;
-                }
-                if (incremental == 1)
-                {
-                    offset_x = 0.0;
-                    offset_y = 0.0;
-                    offset_z = 0.0;
-                }
-            }
+        if (do_walls)
+        {
+            if (node.z < -limit) node.z = -limit;
+            if (node.z > limit) node.z = limit;
 
-            if (incremental < 3)
+            dist = bump_array_size * (node.z + limit) * (node.z + limit) * 0.5;
+            if (dist < bump_array_size)
             {
-                xd += offset_x;
-                yd += offset_y;
-                zd += offset_z;
+                node.x += (node.x - gp->blob_center.x) * gp->wall_shape[dist];
+                node.y += (node.y - gp->blob_center.y) * gp->wall_shape[dist];
+                gp->blob_force.z += (node.z + limit);
             }
-            xd += gp->blob_center.x;
-            yd += gp->blob_center.y;
-            zd += gp->blob_center.z;
-
-            if (do_colour)
+            else
             {
-                gp->colours[index].red = 128 + (int)(sin(strength + gp->colour_cycle * 0.01 + 2.0 * PI * x / gp->row_data[y].num_x_points) * 127.0);
-                gp->colours[index].green = 128 + (int)(cos(strength + gp->colour_cycle * 0.025) * 127.0);
-                gp->colours[index].blue = 128 + (int)(sin(strength + gp->colour_cycle * 0.03 + 2.0 * PI * y / y_resolution) * 127.0);
-                gp->colours[index].alpha = (int)(255.0 * fade);
-            }
+                dist = bump_array_size * (node.z - limit) * (node.z - limit) * 0.5;
+                if (dist < bump_array_size)
+                {
+                    node.x += (node.x - gp->blob_center.x) * gp->wall_shape[dist];
+                    node.y += (node.y - gp->blob_center.y) * gp->wall_shape[dist];
+                    gp->blob_force.z -= (node.z - limit);
+                }
 
-            /* Add walls */
-            if (do_walls)
-            {
-                if (zd < -limit) zd = -limit;
-                if (zd > limit) zd = limit;
+                if (node.y < -limit) node.y = -limit;
+                if (node.y > limit) node.y = limit;
 
-                dist = field_array_size * (zd + limit) * (zd + limit) * 0.5;
-                if (dist < field_array_size)
+                dist = bump_array_size * (node.y + limit) * (node.y + limit) * 0.5;
+                if (dist < bump_array_size)
                 {
-                    xd += (xd - gp->blob_center.x) * gp->wall_field[dist];
-                    yd += (yd - gp->blob_center.y) * gp->wall_field[dist];
-                    gp->blob_force.z += (zd + limit);
+                    node.x += (node.x - gp->blob_center.x) * gp->wall_shape[dist];
+                    node.z += (node.z - gp->blob_center.z) * gp->wall_shape[dist];
+                    gp->blob_force.y += (node.y + limit);
                 }
                 else
                 {
-                    dist = field_array_size * (zd - limit) * (zd - limit) * 0.5;
-                    if (dist < field_array_size)
-                    {
-                        xd += (xd - gp->blob_center.x) * gp->wall_field[dist];
-                        yd += (yd - gp->blob_center.y) * gp->wall_field[dist];
-                        gp->blob_force.z -= (zd - limit);
-                    }
-
-                    if (yd < -limit) yd = -limit;
-                    if (yd > limit) yd = limit;
-
-                    dist = field_array_size * (yd + limit) * (yd + limit) * 0.5;
-                    if (dist < field_array_size)
+                    dist = bump_array_size * (node.y - limit) * (node.y - limit) * 0.5;
+                    if (dist < bump_array_size)
                     {
-                        xd += (xd - gp->blob_center.x) * gp->wall_field[dist];
-                        zd += (zd - gp->blob_center.z) * gp->wall_field[dist];
-                        gp->blob_force.y += (yd + limit);
-                    }
-                    else
-                    {
-                        dist = field_array_size * (yd - limit) * (yd - limit) * 0.5;
-                        if (dist < field_array_size)
-                        {
-                            xd += (xd - gp->blob_center.x) * gp->wall_field[dist];
-                            zd += (zd - gp->blob_center.z) * gp->wall_field[dist];
-                            gp->blob_force.y -= (yd - limit);
-                        }
+                        node.x += (node.x - gp->blob_center.x) * gp->wall_shape[dist];
+                        node.z += (node.z - gp->blob_center.z) * gp->wall_shape[dist];
+                        gp->blob_force.y -= (node.y - limit);
                     }
+                }
 
-                    if (xd < -limit) xd = -limit;
-                    if (xd > limit) xd = limit;
+                if (node.x < -limit) node.x = -limit;
+                if (node.x > limit) node.x = limit;
 
-                    dist = field_array_size * (xd + limit) * (xd + limit) * 0.5;
-                    if (dist < field_array_size)
-                    {
-                        yd += (yd - gp->blob_center.y) * gp->wall_field[dist];
-                        zd += (zd - gp->blob_center.z) * gp->wall_field[dist];
-                        gp->blob_force.x += (xd + limit);
-                    }
-                    else
+                dist = bump_array_size * (node.x + limit) * (node.x + limit) * 0.5;
+                if (dist < bump_array_size)
+                {
+                    node.y += (node.y - gp->blob_center.y) * gp->wall_shape[dist];
+                    node.z += (node.z - gp->blob_center.z) * gp->wall_shape[dist];
+                    gp->blob_force.x += (node.x + limit);
+                }
+                else
+                {
+                    dist = bump_array_size * (node.x - limit) * (node.x - limit) * 0.5;
+                    if (dist < bump_array_size)
                     {
-                        dist = field_array_size * (xd - limit) * (xd - limit) * 0.5;
-                        if (dist < field_array_size)
-                        {
-                            yd += (yd - gp->blob_center.y) * gp->wall_field[dist];
-                            zd += (zd - gp->blob_center.z) * gp->wall_field[dist];
-                            gp->blob_force.x -= (xd - limit);
-                        }
+                        node.y += (node.y - gp->blob_center.y) * gp->wall_shape[dist];
+                        node.z += (node.z - gp->blob_center.z) * gp->wall_shape[dist];
+                        gp->blob_force.x -= (node.x - limit);
                     }
-
-                    if (yd < -limit) yd = -limit;
-                    if (yd > limit) yd = limit;
                 }
-            }
 
-            gp->dots[index].x = xd;
-            gp->dots[index].y = yd;
-            gp->dots[index].z = zd;
+                if (node.y < -limit) node.y = -limit;
+                if (node.y > limit) node.y = limit;
+            }
         }
+        gp->dots[index] = node;
     }
 
-    /* Calculate the normals for each vertex and the texture mapping if required.
-     * Although the code actually calculates the normal for one of the triangles
-     * attached to a vertex rather than the vertex itself the results are not too
-     * bad for with a reasonable number of verticies.
-     */
-
-    /* The first point is treated as a special case since the loop expects to use
-     * points in the previous row to form the triangle.
-     */
-    index1 = 0;
-    index2 = y * x_resolution;
-    index3 = 1 + y * x_resolution;
-    calculate_normal (gp->dots[index1], gp->dots[index2], gp->dots[index3], &gp->normals[index1]);
-    if (do_texture)
+    /* Determine the normal for each face */
+    for (face = 0; face < gp->num_faces; face++)
     {
-        if (offset_texture)
-        {
-            gp->tex_coords[index1].x = gp->dots[index1].x * 0.125 + 0.5
-                * (1.0 + 0.25 * asin(gp->normals[index1].x) / (0.5 * PI));
-            gp->tex_coords[index1].y = gp->dots[index1].y * 0.125 + 0.5
-                * (1.0 + 0.25 * asin(gp->normals[index1].y) / (0.5 * PI));
-        }
-        else
-        {
-            gp->tex_coords[index1].x = 0.5 * (1.0 + (asin(gp->normals[index1].x)
-                                                 / (0.5 * PI)));
-            gp->tex_coords[index1].y = 0.5 * (1.0 + (asin(gp->normals[index1].y)
-                                                 / (0.5 * PI)));
-        }
-        gp->tex_coords[index1].x *= gp->tex_width[gp->current_texture];
-        gp->tex_coords[index1].y *= gp->tex_height[gp->current_texture];
+        /* Use nodeers to indexed nodes to help readability */
+        Node_Data *node1 = &gp->nodes[gp->faces[face].node1];
+        Node_Data *node2 = &gp->nodes[gp->faces[face].node2];
+        Node_Data *node3 = &gp->nodes[gp->faces[face].node3];
+
+        gp->faces[face].normal = cross(subtract(node2->position, node1->position),
+                                       subtract(node3->position, node1->position));
+            
+        /* Add the normal for the face onto the normal for the verticies of
+           the face */
+        add(&node1->normal, gp->faces[face].normal);
+        add(&node2->normal, gp->faces[face].normal);
+        add(&node3->normal, gp->faces[face].normal);
     }
 
-    for (y = 1; y < y_resolution - 1; y++)
+    /* Use the normal to set the colour and texture */
+    if (do_colour || do_texture)
     {
-        if (gp->row_data[y - 1].num_x_points)
+        for (index = 0; index < gp->num_nodes; ++index)
         {
-            for (x = 0; x < gp->row_data[y].num_x_points; x++)
+            gp->normals[index] = normalise(gp->nodes[index].normal);
+   
+            if (do_colour)
             {
-                if (x == gp->row_data[y].num_x_points - 1)
+                gp->colours[index].red = (int)(255.0 * fabs(gp->normals[index].x));
+                gp->colours[index].green = (int)(255.0 * fabs(gp->normals[index].y));
+                gp->colours[index].blue = (int)(255.0 * fabs(gp->normals[index].z));
+                gp->colours[index].alpha = (int)(255.0 * fade);
+            }
+            if (do_texture)
+            {
+                if (offset_texture)
                 {
-                    index1 = y * x_resolution;
+                    gp->tex_coords[index].x = gp->dots[index].x * 0.125 + 0.5
+                        * (1.0 + 0.25 * asin(gp->normals[index].x) / (0.5 * PI));
+                    gp->tex_coords[index].y = -gp->dots[index].y * 0.125 - 0.5
+                        * (1.0 + 0.25 * asin(gp->normals[index].y) / (0.5 * PI));
                 }
                 else
                 {
-                    index1 = x + 1 + y * x_resolution;
-                }
-                index2 = x + y * x_resolution;
-                index3 = ((x + 0.5) * gp->row_data[y - 1].num_x_points
-                          / gp->row_data[y].num_x_points) + (y - 1) * x_resolution;
-                calculate_normal (gp->dots[index1], gp->dots[index2], gp->dots[index3],
-                                  &gp->normals[index1]);
-                if (do_texture)
-                {
-                    if (offset_texture)
-                    {
-                        gp->tex_coords[index1].x = gp->dots[index1].x * 0.125 + 0.5
-                            * (1.0 + 0.25 * asin(gp->normals[index1].x) / (0.5 * PI));
-                        gp->tex_coords[index1].y = gp->dots[index1].y * 0.125 + 0.5
-                            * (1.0 + 0.25 * asin(gp->normals[index1].y) / (0.5 * PI));
-                    }
-                    else
-                    {
-                        gp->tex_coords[index1].x = 0.5 * (1.0 + (asin(gp->normals[index1].x)
-                                                             / (0.5 * PI)));
-                        gp->tex_coords[index1].y = 0.5 * (1.0 + (asin(gp->normals[index1].y)
-                                                             / (0.5 * PI)));
-                    }
-                    gp->tex_coords[index1].x *= gp->tex_width[gp->current_texture];
-                    gp->tex_coords[index1].y *= gp->tex_height[gp->current_texture];
+                    gp->tex_coords[index].x = 0.5
+                        * (1.0 + asin(gp->normals[index].x) / (0.5 * PI));
+                    gp->tex_coords[index].y = -0.5
+                        * (1.0 + asin(gp->normals[index].y) / (0.5 * PI));
                 }
+                /* Adjust the texture co-ordinates to from range 0..1 to
+                 * 0..width or 0..height as appropriate
+                 */
+                gp->tex_coords[index].x *= gp->tex_width[gp->current_texture];
+                gp->tex_coords[index].y *= gp->tex_height[gp->current_texture];
             }
         }
     }
-    index1 = (y_resolution - 1) * x_resolution;
-    index2 = (y_resolution - 2) * x_resolution;
-    index3 = 1 + (y_resolution - 2) * x_resolution;
-    calculate_normal (gp->dots[index1], gp->dots[index2], gp->dots[index3], &gp->normals[index1]);
-    if (do_texture)
-    {
-        if (offset_texture)
-        {
-            gp->tex_coords[index1].x = gp->dots[index1].x * 0.125 + 0.5
-                * (1.0 + 0.25 * asin(gp->normals[index1].x) / (0.5 * PI));
-            gp->tex_coords[index1].y = gp->dots[index1].y * 0.125 + 0.5
-                * (1.0 + 0.25 * asin(gp->normals[index1].y) / (0.5 * PI));
-        }
-        else
-        {
-            gp->tex_coords[index1].x = 0.5 * (1.0 + (asin(gp->normals[index1].x)
-                                                 / (0.5 * PI)));
-            gp->tex_coords[index1].y = 0.5 * (1.0 + (asin(gp->normals[index1].y)
-                                                 / (0.5 * PI)));
-        }
-        gp->tex_coords[index1].x *= gp->tex_width[gp->current_texture];
-        gp->tex_coords[index1].y *= gp->tex_height[gp->current_texture];
-    }
-
+    
+    /* Update the center of the whole blob */
+    add(&gp->blob_velocity, scale (subtract (gp->blob_anchor, gp->blob_center), 1.0 / 80.0));
+    add(&gp->blob_velocity, scale (gp->blob_force, 0.01 / gp->num_nodes));
 
-    gp->freak += gp->v_freak;
-    gp->v_freak += -gp->freak / 2000000.0;
+    add(&gp->blob_center, scale(gp->blob_velocity, 0.5));
 
-    /* Update the center of the whole blob */
-    gp->blob_velocity.x += (gp->blob_anchor.x - gp->blob_center.x) / 80.0
-        + 0.01 * gp->blob_force.x / gp->num_points;
-    gp->blob_velocity.y += (gp->blob_anchor.y - gp->blob_center.y) / 80.0
-        + 0.01 * gp->blob_force.y / gp->num_points;
-    gp->blob_velocity.z += (gp->blob_anchor.z - gp->blob_center.z) / 80.0
-        + 0.01 * gp->blob_force.z / gp->num_points;
-
-    gp->blob_center.x += gp->blob_velocity.x * 0.5;
-    gp->blob_center.y += gp->blob_velocity.y * 0.5;
-    gp->blob_center.z += gp->blob_velocity.z * 0.5;
-
-    gp->blob_velocity.x *= 0.99;
-    gp->blob_velocity.y *= 0.99;
-    gp->blob_velocity.z *= 0.99;
+    gp->blob_velocity = scale(gp->blob_velocity, 0.999);
 }
 
 /******************************************************************************
  *
  * Draw the blob shape.
  *
- * The horrendous indexing to calculate the verticies that form a particular
- * traiangle is the result of the conversion of my first non-openGL version of
- * blob to this openGL version.  This may be tidied up when I finally playing
- * with the more interesting bits of the code.
  */
 static void
 draw_blob (mirrorblobstruct *gp)
 {
-    int x, y, x2, x3;
-    int index1, index2, index3;
-    int lower, upper;
+    int face;
 
     glMatrixMode (GL_MODELVIEW);
     glLoadIdentity ();
 
     /* Move down the z-axis. */
-    glTranslatef (0.0, 0.0, -5.0 );
+    glTranslatef (0.0, 0.0, -4.0);
 
-    for (y = 1; y < y_resolution; y++)
-    {
-        if (gp->row_data[y - 1].num_x_points)
-        {
-            for (x = 0; x < gp->row_data[y].num_x_points; x++)
-            {
-                glBegin (GL_TRIANGLES);
-                if (x == gp->row_data[y].num_x_points - 1)
-                {
-                    index1 = y * x_resolution;
-                }
-                else
-                {
-                    index1 = x + 1 + y * x_resolution;
-                }
-                index2 = x + y * x_resolution;
-                index3 = ((x + 0.5) * gp->row_data[y - 1].num_x_points
-                          / gp->row_data[y].num_x_points) + (y - 1) * x_resolution;
-                glArrayElement(index1);
-                glArrayElement(index2);
-                glArrayElement(index3);
-                glEnd();
-
-                lower = ((x - 0.5) * gp->row_data[y - 1].num_x_points
-                         / (float)gp->row_data[y].num_x_points);
-                upper = ((x + 0.5) * gp->row_data[y - 1].num_x_points
-                         / (float)gp->row_data[y].num_x_points);
-
-                if (upper > lower)
-                {
-                    glBegin (GL_TRIANGLE_FAN);
-                    index1 = x + y * x_resolution;
+    gltrackball_rotate (gp->trackball);
 
-                    for (x2 = lower; x2 <= upper; x2++)
-                    {
-                        x3 = x2;
-                        while (x3 < 0) x3 += gp->row_data[y - 1].num_x_points;
-                        while (x3 >= gp->row_data[y - 1].num_x_points)
-                            x3 -= gp->row_data[y - 1].num_x_points;
-                        index2 = x3 + (y - 1) * x_resolution;
-
-                        if (x2 < upper)
-                        {
-                            x3 = x2 + 1;
-                            while (x3 < 0) x3 += gp->row_data[y - 1].num_x_points;
-                            while (x3 >= gp->row_data[y - 1].num_x_points)
-                                x3 -= gp->row_data[y - 1].num_x_points;
-                            index3 = x3 + (y - 1) * x_resolution;
-                            if (x2 == lower)
-                            {
-                                glArrayElement(index1);
-                            }
-                        }
-                        glArrayElement(index2);
-                    }
-                    glEnd ();
-                }
-            }
-        }
+    /* glColor4ub (255, 0, 0, 128); */
+    glBegin (GL_TRIANGLES);
+    for (face = 0; face < gp->num_faces; face++)
+    {
+        glArrayElement (gp->faces[face].node1);
+        glArrayElement (gp->faces[face].node2);
+        glArrayElement (gp->faces[face].node3);
     }
+    glEnd ();
+    glLoadIdentity ();
 }
 
 /******************************************************************************
@@ -1091,10 +1381,11 @@ static void
 draw_background (ModeInfo *mi)
 {
     mirrorblobstruct *gp = &Mirrorblob[MI_SCREEN(mi)];
-
+    
     glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
     glEnable (GL_TEXTURE_2D);
     glDisable(GL_LIGHTING);
+    glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
 
     /* Reset the projection matrix to make it easier to get the size of the quad
      * correct
@@ -1110,10 +1401,10 @@ draw_background (ModeInfo *mi)
     glTexCoord2f (0.0, 0.0);
     glVertex2i (0, 0);
     
-    glTexCoord2f (0.0, -gp->tex_height[gp->current_texture]);
+    glTexCoord2f (0.0, gp->tex_height[gp->current_texture]);
     glVertex2i (0, MI_HEIGHT(mi));
 
-    glTexCoord2f (gp->tex_width[gp->current_texture], -gp->tex_height[gp->current_texture]);
+    glTexCoord2f (gp->tex_width[gp->current_texture], gp->tex_height[gp->current_texture]);
     glVertex2i (MI_WIDTH(mi), MI_HEIGHT(mi));
 
     glTexCoord2f (gp->tex_width[gp->current_texture], 0.0);
@@ -1133,7 +1424,7 @@ static GLvoid
 draw_scene(ModeInfo * mi)
 {
     mirrorblobstruct *gp = &Mirrorblob[MI_SCREEN(mi)];
-
+    
     double fade = 0.0;
     double current_time;
     check_gl_error ("draw_scene");
@@ -1144,31 +1435,37 @@ draw_scene(ModeInfo * mi)
     switch (gp->state)
     {
     case TRANSITIONING:
-        fade = (current_time - gp->state_start_time) / fade_time;
+        fade = 1.0 - (current_time - gp->state_start_time) / fade_time;
         break;
 
+    case LOADING: /* FALL-THROUGH */
     case HOLDING:
-        fade = 0.0;
+        fade = 1.0;
         break;
     }
 
-
     /* Set the correct texture, when transitioning this ensures that the first draw
      * is the original texture (which has the new texture drawn over it with decreasing
      * transparency)
      */
-    if (do_texture)
+    if (load_textures)
     {
-      glBindTexture (GL_TEXTURE_2D, gp->textures[gp->current_texture]);
+        glBindTexture (GL_TEXTURE_2D, gp->textures[gp->current_texture]);
     }
 
-    if (do_paint_background && !do_wire)
+    glDisable (GL_DEPTH_TEST);
+    if (do_paint_background)
     {
-        glClear(GL_DEPTH_BUFFER_BIT);
-        if (motion_blur)
+        glEnable (GL_TEXTURE_2D);
+        if (motion_blur > 0.0)
         {
+            glClear(GL_DEPTH_BUFFER_BIT);
             glEnable (GL_BLEND);
-            glColor4ub (255, 255, 255, motion_blur);
+            glColor4d (1.0, 1.0, 1.0, motion_blur);
+        }
+        else
+        {
+            glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
         }
         draw_background (mi);
 
@@ -1177,33 +1474,30 @@ draw_scene(ModeInfo * mi)
          */
         if (gp->state == TRANSITIONING)
         {
-            glDisable (GL_DEPTH_TEST);
             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, fade);
+            glColor4d (1.0, 1.0, 1.0, 1.0 - fade);
 
             draw_background (mi);
 
             /* Select the original texture to draw the blob */
             glBindTexture (GL_TEXTURE_2D, gp->textures[gp->current_texture]);
-            glEnable (GL_DEPTH_TEST);
         }
         /* Clear the depth buffer bit so the backgound is behind the blob */
         glClear(GL_DEPTH_BUFFER_BIT);
     }
-    else if (motion_blur)
+    else if (motion_blur > 0.0)
     {
-        glDisable (GL_DEPTH_TEST);
         glEnable (GL_BLEND);
-        glColor4ub (0, 0, 0, motion_blur);
+        glColor4d (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);
-        if (do_wire)
+        if (wireframe)
         {
             glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
         }
-        glEnable (GL_DEPTH_TEST);
         glClear (GL_DEPTH_BUFFER_BIT);
     }
     else
@@ -1211,69 +1505,46 @@ draw_scene(ModeInfo * mi)
         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
     }
 
-    if (do_blend)
+    if (!do_texture)
     {
-        fade = fade * 0.5;
+        fade = 1.0;
+        glDisable (GL_TEXTURE_2D);
     }
 
-    calc_blob(gp, MI_WIDTH(mi), MI_HEIGHT(mi), 1024, 2.5, fade);
+    calc_blob(gp, MI_WIDTH(mi), MI_HEIGHT(mi), BUMP_ARRAY_SIZE, 2.5, fade * blend);
 
-    glEnable(GL_LIGHTING);
-    glEnable(GL_LIGHT0);
-    glEnable(GL_LIGHT1);
+    set_blob_gl_state(fade * blend);
 
-    if (do_blend)
+    if (blend < 1.0)
     {
-        glEnable (GL_BLEND);
-        if (do_colour)
-        {
-            glBlendFunc (GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA);
-        }
-        else
-        {
-            glColor4d (1.0, 1.0, 1.0, 0.5 - fade);
-        }
-    }
-    else
-    {
-        glDisable (GL_BLEND);
-        glColor4d (1.0, 1.0, 1.0, 1.0);
+        /* Disable the three colour chanels so that only the depth buffer is updated */
+        glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
+        draw_blob(gp);
+        glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+        glDepthFunc(GL_LEQUAL);
     }
+    glDepthFunc(GL_LEQUAL);
     draw_blob(gp);
 
-    if (do_blend && do_colour)
-    {
-        glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    }
-
-    /* While transitioning draw a second blob twice with a modified alpha channel.
-     * The trasitioning state machine is very crude, it simply counts frames
-     * rather than elapsed time but it works.
+    /* While transitioning between images draw a second blob with a modified
+     * alpha value.
      */
-    if (do_texture && (hold_time > 0))
+    if (load_textures && (hold_time > 0))
     {
         switch (gp->state)
         {
-        case TRANSITIONING:
-            glClear(GL_DEPTH_BUFFER_BIT);
-            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, fade);
-            draw_blob (gp);
-
-            if ((current_time - gp->state_start_time) > fade_time)
+        case HOLDING:
+            if ((current_time - gp->state_start_time) > hold_time)
             {
-                gp->state = HOLDING;
-                gp->state_start_time = current_time;
-                gp->current_texture = 1 - gp->current_texture;
+                grab_texture(mi, 1 - gp->current_texture);
+                gp->state = LOADING;
             }
             break;
 
-        case HOLDING:
-            if ((current_time - gp->state_start_time) > hold_time)
+        case LOADING:
+            /* Once the image has loaded move to the TRANSITIONING STATE */
+            if (!gp->waiting_for_image_p)
             {
-                grab_texture (mi, 1 - gp->current_texture);
                 gp->state = TRANSITIONING;
                 /* Get the time again rather than using the current time so
                  * that the time taken by the grab_texture function is not part
@@ -1281,7 +1552,53 @@ draw_scene(ModeInfo * mi)
                  */
                 gp->state_start_time = double_time();
             }
+            break;        
+
+        case TRANSITIONING:
+
+            /* If the blob is textured draw over existing blob to fade between
+             * images
+             */
+            if (do_texture)
+            {
+                /* Select the texture to transition to */
+                glBindTexture (GL_TEXTURE_2D, gp->textures[1 - gp->current_texture]);
+                glEnable (GL_BLEND);
+                
+                /* If colour is enabled update the alpha data in the buffer and
+                 * use that in the blending since the alpha of the incomming
+                 * verticies will not be correct
+                 */
+                if (do_colour)
+                {
+                    glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_TRUE);
+                    glClearColor(0.0, 0.0, 0.0, (1.0 - fade) * blend);
+                    glClear(GL_COLOR_BUFFER_BIT);
+                    glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);                    
+                    glBlendFunc(GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA);
+                }
+                else
+                {
+                    glColor4d(0.9, 0.9, 1.0, (1.0 - fade) * blend);
+                }
+
+                draw_blob (gp);
+
+                if (do_colour)
+                {
+                    /* Restore the 'standard' blend functions. */
+                    glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+                }
+            }
+            
+            if ((current_time - gp->state_start_time) > fade_time)
+            {
+                gp->state = HOLDING;
+                gp->state_start_time = current_time;
+                gp->current_texture = 1 - gp->current_texture;
+            }
             break;
+
         }
     }
 }
@@ -1322,6 +1639,51 @@ reshape_mirrorblob(ModeInfo *mi, int width, int height)
     reset_projection(width, height);
 }
 
+/****************************************************************************
+ *
+ * Handle Mouse events
+ */
+ENTRYPOINT Bool
+mirrorblob_handle_event (ModeInfo * mi, XEvent * event)
+{
+    mirrorblobstruct *gp = &Mirrorblob[MI_SCREEN (mi)];
+
+    if (event->xany.type == ButtonPress &&
+        event->xbutton.button == Button1)
+    {
+        gp->button_down = 1;
+        gltrackball_start (gp->trackball, event->xbutton.x,
+                           event->xbutton.y, MI_WIDTH (mi), MI_HEIGHT (mi));
+        return True;
+    }
+    else if (event->xany.type == ButtonRelease &&
+             event->xbutton.button == Button1)
+    {
+        gp->button_down = 0;
+        return True;
+    }
+    else if (event->xany.type == ButtonPress &&
+             event->xbutton.button == Button4)
+    {
+        zoom *= 1.1;
+        return True;
+    }
+    else if (event->xany.type == ButtonPress &&
+             event->xbutton.button == Button5)
+    {
+
+        zoom *= 0.9;
+        return True;
+    }
+    else if (event->xany.type == MotionNotify && gp->button_down)
+    {
+        gltrackball_track (gp->trackball, event->xmotion.x,
+                           event->xmotion.y, MI_WIDTH (mi), MI_HEIGHT (mi));
+        return True;
+    }
+    return False;
+}
+
 /******************************************************************************
  *
  * XMirrorblob initialise entry
@@ -1353,12 +1715,11 @@ init_mirrorblob(ModeInfo * mi)
     {
         MI_CLEARWINDOW(mi);
     }
-
-    initialise_blob(gp, MI_WIDTH(mi), MI_HEIGHT(mi), 1024);
+    gp->trackball = gltrackball_init ();
+    
+    initialise_blob(gp, MI_WIDTH(mi), MI_HEIGHT(mi), BUMP_ARRAY_SIZE);
     gp->state_start_time = double_time();
 
-    gp->freak = 0.0;
-    gp->v_freak = 0.0007;
     gp->first_image_p = True;
 }
 
@@ -1373,13 +1734,14 @@ release_mirrorblob(ModeInfo * mi)
     int i;
     for (i = 0; i < MI_NUM_SCREENS(mi); i++) {
       mirrorblobstruct *gp = &Mirrorblob[i];
-      if (gp->row_data) free(gp->row_data);
-      if (gp->field_data) free(gp->field_data);
+      if (gp->nodes) free(gp->nodes);
+      if (gp->faces) free(gp->faces);
+      if (gp->bump_data) free(gp->bump_data);
       if (gp->colours) free(gp->colours);
       if (gp->tex_coords) free(gp->tex_coords);
       if (gp->dots) free(gp->dots);
-      if (gp->wall_field) free(gp->wall_field);
-      if (gp->field) free(gp->field);
+      if (gp->wall_shape) free(gp->wall_shape);
+      if (gp->bump_shape) free(gp->bump_shape);
     }
 
     free(Mirrorblob);
index 9499fd2f496693ba0b6b89ef0b33bfac4014e511..8903224b8433f94f0f8663591822df5385bb3c47 100644 (file)
@@ -13,14 +13,14 @@ mirrorblob - Draws a wobbly blob that distorts the image behind it.
 [\-walls]
 [\-colour]
 [\-texture]
-[\-offset_texture]
+[\-offset-texture]
 [\-blend]
 [\-antialias]
-[\-x_res \fInumber\fP]
-[\-y_res \fInumber\fP]
-[\-field_points \fInumber\fP]
-[\-fade_time \fInumber\fP]
-[\-hold_time \fInumber\fP]
+[\-resolution \fInumber\fP]
+[\-bumps \fInumber\fP]
+[\-fade-time \fInumber\fP]
+[\-hold-time \fInumber\fP]
+[\-zoom \fInumber\fP]
 [\-fps]
 .SH DESCRIPTION
 Draws a wobbling blob, making use of alpha blending, fog,
@@ -57,30 +57,29 @@ Whether to wrap a texture image on the blob.
 .TP 8
 .B \-offset_texture | \-no-offset_texture
 Whether to ofset the texture calculations to only use a region of the image
- under the blob.  This works well when blend is enabled.
+ under the blob.  This works well with a semi-transparent blob.
 .TP 8
 .B \-blend | \-no-blend
-Whether to enable blending. (see also offset_texture above)
+Whether to draw a transparent blob. (see also offset_texture above)
 .TP 8
 .B \-antialias | \-no-antialias
-Whether to anti-alias lines.
+Whether to antialias lines.
 .TP 8
-.B \-x_res \fInumber\fP
-Number of verticies around the middle row of the blob (see also y_res).
-.TP 8
-.B \-y_res \fInumber\fP
-Number of rows of verticies used to calculatethe blob, combined with x_res to
- indirectly determine the number of triangles used to draw blob.  Larger
+.B \-resolution \fInumber\fP
+Resolution of the tessellation used to calculate and draw the blob.  Larger
  numbers give a smoother blob but increase calculation times exponentially.
 .TP 8
-.B \-field_points \fInumber\fP
-Number of points used to distort the blob.
+.B \-bumps \fInumber\fP
+Number of bumps used to distort the blob.
 .TP 8
-.B \-hold_time \fInumber\fP
+.B \-hold-time \fInumber\fP
 Time until loading a new image.
 .TP 8
-.B \-fade_time \fInumber\fP
-Crossfade duration time.
+.B \-fade-time \fInumber\fP
+Time taken to transition between images.
+.TP 8
+.B \-zoom \fInumber\fP
+Size multiplier for blob.
 .TP 8
 .B \-fps | \-no-fps
 Whether to show a frames-per-second display at the bottom of the screen.
index 106c901437fce858d3bb5683b16058be8bc841fb..257481554614f7588c5ae8687e3655f397d9d2dc 100644 (file)
@@ -4,7 +4,7 @@
 static const char sccsid[] = "@(#)polytopes.c  1.2 05/09/28 xlockmore";
 #endif
 
-/* Copyright (c) 2003-2005 Carsten Steger <carsten@mirsanmir.org>. */
+/* Copyright (c) 2003-2007 Carsten Steger <carsten@mirsanmir.org>. */
 
 /*
  * Permission to use, copy, modify, and distribute this software and its
@@ -22,6 +22,7 @@ static const char sccsid[] = "@(#)polytopes.c  1.2 05/09/28 xlockmore";
  * REVISION HISTORY:
  * C. Steger - 03/08/10: Initial version
  * C. Steger - 05/09/28: Added trackball support
+ * C. Steger - 07/01/23: Improved 4d trackball support
  */
 
 /*
@@ -2413,8 +2414,8 @@ static void rotateall(float al, float be, float de, float ze, float et,
   rotatewx(m,al);
   rotatewy(m,be);
   rotatewz(m,de);
-  rotatexy(m,ze);
   rotatexz(m,et);
+  rotatexy(m,ze);
   rotateyz(m,th);
 }
 
@@ -2458,11 +2459,11 @@ static void quats_to_rotmat(float p[4], float q[4], float m[4][4])
   r12 = 2.0*(q[1]*q[2]+q[0]*q[3]);
   r22 = 1.0-2.0*(q[1]*q[1]+q[0]*q[0]);
 
-  ze = atan2(-r12,r22)*180.0/M_PI;
-  et = atan2(r02,sqrt(r00*r00+r01*r01))*180.0/M_PI;
-  th = atan2(-r01,r00)*180.0/M_PI;
+  et = atan2(-r12,r22)*180.0/M_PI;
+  th = atan2(r02,sqrt(r00*r00+r01*r01))*180.0/M_PI;
+  ze = atan2(-r01,r00)*180.0/M_PI;
 
-  rotateall(al,be,de,ze,et,th,m);
+  rotateall(al,be,de,ze,et,-th,m);
 }
 
 
@@ -2608,8 +2609,9 @@ static void cell_5(ModeInfo *mi)
   float v[NUM_VERT_5][4];
 
   project(mi,vert_5,v,NUM_VERT_5);
-  draw(mi,v,edge_5,NUM_EDGE_5,(int *)face_5,NUM_FACE_5,VERT_PER_FACE_5,
-       hp->edge_color_5,hp->face_color_5,hp->face_color_trans_5);
+  draw(mi,v,edge_5,NUM_EDGE_5,(int *)face_5,NUM_FACE_5,
+       VERT_PER_FACE_5,hp->edge_color_5,hp->face_color_5,
+       hp->face_color_trans_5);
 }
 
 
@@ -2620,8 +2622,9 @@ static void cell_8(ModeInfo *mi)
   float v[NUM_VERT_8][4];
 
   project(mi,vert_8,v,NUM_VERT_8);
-  draw(mi,v,edge_8,NUM_EDGE_8,(int *)face_8,NUM_FACE_8,VERT_PER_FACE_8,
-       hp->edge_color_8,hp->face_color_8,hp->face_color_trans_8);
+  draw(mi,v,edge_8,NUM_EDGE_8,(int *)face_8,NUM_FACE_8,
+       VERT_PER_FACE_8,hp->edge_color_8,hp->face_color_8,
+       hp->face_color_trans_8);
 }
 
 
@@ -2632,8 +2635,9 @@ static void cell_16(ModeInfo *mi)
   float v[NUM_VERT_16][4];
 
   project(mi,vert_16,v,NUM_VERT_16);
-  draw(mi,v,edge_16,NUM_EDGE_16,(int *)face_16,NUM_FACE_16,VERT_PER_FACE_16,
-       hp->edge_color_16,hp->face_color_16,hp->face_color_trans_16);
+  draw(mi,v,edge_16,NUM_EDGE_16,(int *)face_16,NUM_FACE_16,
+       VERT_PER_FACE_16,hp->edge_color_16,hp->face_color_16,
+       hp->face_color_trans_16);
 }
 
 
@@ -2644,8 +2648,9 @@ static void cell_24(ModeInfo *mi)
   float v[NUM_VERT_24][4];
 
   project(mi,vert_24,v,NUM_VERT_24);
-  draw(mi,v,edge_24,NUM_EDGE_24,(int *)face_24,NUM_FACE_24,VERT_PER_FACE_24,
-       hp->edge_color_24,hp->face_color_24,hp->face_color_trans_24);
+  draw(mi,v,edge_24,NUM_EDGE_24,(int *)face_24,NUM_FACE_24,
+       VERT_PER_FACE_24,hp->edge_color_24,hp->face_color_24,
+       hp->face_color_trans_24);
 }
 
 
@@ -2657,7 +2662,8 @@ static void cell_120(ModeInfo *mi)
 
   project(mi,vert_120,v,NUM_VERT_120);
   draw(mi,v,edge_120,NUM_EDGE_120,(int *)face_120,NUM_FACE_120,
-       VERT_PER_FACE_120,hp->edge_color_120,hp->face_color_120,hp->face_color_trans_120);
+       VERT_PER_FACE_120,hp->edge_color_120,hp->face_color_120,
+       hp->face_color_trans_120);
 }
 
 
@@ -2669,7 +2675,8 @@ static void cell_600(ModeInfo *mi)
 
   project(mi,vert_600,v,NUM_VERT_600);
   draw(mi,v,edge_600,NUM_EDGE_600,(int *)face_600,NUM_FACE_600,
-       VERT_PER_FACE_600,hp->edge_color_600,hp->face_color_600,hp->face_color_trans_600);
+       VERT_PER_FACE_600,hp->edge_color_600,hp->face_color_600,
+       hp->face_color_trans_600);
 }
 
 
@@ -2762,39 +2769,39 @@ static void set_colors(ModeInfo *mi)
   polytopesstruct *hp = &poly[MI_SCREEN(mi)];
   /* 5-cell. */
   colors(vert_5,edge_5,NUM_EDGE_5,(int *)face_5,NUM_FACE_5,
-         VERT_PER_FACE_5,hp->edge_color_5,hp->face_color_5,hp->face_color_trans_5,
-         0.5,MIN_EDGE_DEPTH_5,MAX_EDGE_DEPTH_5,MIN_FACE_DEPTH_5,
-         MAX_FACE_DEPTH_5);
+         VERT_PER_FACE_5,hp->edge_color_5,hp->face_color_5,
+         hp->face_color_trans_5,0.5,MIN_EDGE_DEPTH_5,
+         MAX_EDGE_DEPTH_5,MIN_FACE_DEPTH_5,MAX_FACE_DEPTH_5);
 
   /* 8-cell. */
   colors(vert_8,edge_8,NUM_EDGE_8,(int *)face_8,NUM_FACE_8,
-         VERT_PER_FACE_8,hp->edge_color_8,hp->face_color_8,hp->face_color_trans_8,
-         0.4,MIN_EDGE_DEPTH_8,MAX_EDGE_DEPTH_8,MIN_FACE_DEPTH_8,
-         MAX_FACE_DEPTH_8);
+         VERT_PER_FACE_8,hp->edge_color_8,hp->face_color_8,
+         hp->face_color_trans_8,0.4,MIN_EDGE_DEPTH_8,
+         MAX_EDGE_DEPTH_8,MIN_FACE_DEPTH_8,MAX_FACE_DEPTH_8);
 
   /* 16-cell. */
   colors(vert_16,edge_16,NUM_EDGE_16,(int *)face_16,NUM_FACE_16,
-         VERT_PER_FACE_16,hp->edge_color_16,hp->face_color_16,hp->face_color_trans_16,
-         0.25,MIN_EDGE_DEPTH_16,MAX_EDGE_DEPTH_16,MIN_FACE_DEPTH_16,
-         MAX_FACE_DEPTH_16);
+         VERT_PER_FACE_16,hp->edge_color_16,hp->face_color_16,
+         hp->face_color_trans_16,0.25,MIN_EDGE_DEPTH_16,
+         MAX_EDGE_DEPTH_16,MIN_FACE_DEPTH_16,MAX_FACE_DEPTH_16);
 
   /* 24-cell. */
   colors(vert_24,edge_24,NUM_EDGE_24,(int *)face_24,NUM_FACE_24,
-         VERT_PER_FACE_24,hp->edge_color_24,hp->face_color_24,hp->face_color_trans_24,
-         0.25,MIN_EDGE_DEPTH_24,MAX_EDGE_DEPTH_24,MIN_FACE_DEPTH_24,
-         MAX_FACE_DEPTH_24);
+         VERT_PER_FACE_24,hp->edge_color_24,hp->face_color_24,
+         hp->face_color_trans_24,0.25,MIN_EDGE_DEPTH_24,
+         MAX_EDGE_DEPTH_24,MIN_FACE_DEPTH_24,MAX_FACE_DEPTH_24);
 
   /* 120-cell. */
   colors(vert_120,edge_120,NUM_EDGE_120,(int *)face_120,NUM_FACE_120,
-         VERT_PER_FACE_120,hp->edge_color_120,hp->face_color_120,hp->face_color_trans_120,
-         0.15,MIN_EDGE_DEPTH_120,MAX_EDGE_DEPTH_120,MIN_FACE_DEPTH_120,
-         MAX_FACE_DEPTH_120);
+         VERT_PER_FACE_120,hp->edge_color_120,hp->face_color_120,
+         hp->face_color_trans_120,0.15,MIN_EDGE_DEPTH_120,
+         MAX_EDGE_DEPTH_120,MIN_FACE_DEPTH_120,MAX_FACE_DEPTH_120);
 
   /* 600-cell. */
   colors(vert_600,edge_600,NUM_EDGE_600,(int *)face_600,NUM_FACE_600,
-         VERT_PER_FACE_600,hp->edge_color_600,hp->face_color_600,hp->face_color_trans_600,
-         0.06,MIN_EDGE_DEPTH_600,MAX_EDGE_DEPTH_600,MIN_FACE_DEPTH_600,
-         MAX_FACE_DEPTH_600);
+         VERT_PER_FACE_600,hp->edge_color_600,hp->face_color_600,
+         hp->face_color_trans_600,0.06,MIN_EDGE_DEPTH_600,
+         MAX_EDGE_DEPTH_600,MIN_FACE_DEPTH_600,MAX_FACE_DEPTH_600);
 }
 
 
index 118d5d48e4749fe2802ee4562ba477c9719d3be8..5827da7538cbe526dcf36fad608af1a5a2ccdecc 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * starwars, Copyright (c) 1998-2006 Jamie Zawinski <jwz@jwz.org> and
+ * starwars, Copyright (c) 1998-2007 Jamie Zawinski <jwz@jwz.org> and
  * Claudio Matsuoka <claudio@helllabs.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
 
 #ifdef USE_GL /* whole file */
 
+/* Should be in <GL/glext.h> */
+# ifndef  GL_TEXTURE_MAX_ANISOTROPY_EXT
+#  define GL_TEXTURE_MAX_ANISOTROPY_EXT     0x84FE
+# endif
+# ifndef  GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
+#  define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
+# endif
+
 
 #define DEF_PROGRAM    "xscreensaver-text --cols 0"  /* don't wrap */
 #define DEF_LINES      "125"
@@ -804,16 +812,21 @@ init_sws (ModeInfo *mi)
 
       check_gl_error ("loading font");
 
-# ifdef GL_TEXTURE_MAX_ANISOTROPY_EXT
       /* "Anistropic filtering helps for quadrilateral-angled textures.
          A sharper image is accomplished by interpolating and filtering
          multiple samples from one or more mipmaps to better approximate
          very distorted textures.  This is the next level of filtering
          after trilinear filtering." */
-      if (smooth_p)
-        glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 16);
-      clear_gl_error();
-# endif
+      if (smooth_p && 
+          strstr ((char *) glGetString(GL_EXTENSIONS),
+                  "GL_EXT_texture_filter_anisotropic"))
+      {
+        GLfloat anisotropic = 0.0;
+        glGetFloatv (GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &anisotropic);
+        if (anisotropic >= 1.0)
+          glTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 
+                           anisotropic);
+      }
     }
   else
     {
index 28869abbc40f43c83f22c00481401292cacb7e48..845d0b6a7f9540a372304f0c1026d6231b0ec99a 100644 (file)
@@ -1,4 +1,4 @@
-/* texfonts, Copyright (c) 2005, 2006 Jamie Zawinski <jwz@jwz.org>
+/* texfonts, Copyright (c) 2005-2007 Jamie Zawinski <jwz@jwz.org>
  * Loads X11 fonts into textures for use with OpenGL.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -46,7 +46,7 @@ struct texture_font_data {
   int grid_mag;                        /* 1,  2,  4, or 8 */
   int ntextures;               /* 1,  4, 16, or 64 (grid_mag ^ 2) */
 
-  GLuint texid[32];
+  GLuint texid[64];            /* must hold ntextures */
 };
 
 
index 95058ae579b78f397d66ef785ce33ecebdf726e0..d79f0f32c9f9b23272a50817a920e629bd69fdd0 100644 (file)
@@ -26,6 +26,7 @@ a groovier colouring mode.
 
 This version by Chris Le Sueur <thefishface@gmail.com>, Feb 2005
 Many improvements by Robby Griffin <rmg@terc.edu>, Mar 2006
+Multi-coloured mode added by Jack Grahl <j.grahl@ucl.ac.uk>, Jan 2007
 */
 
 #include <assert.h>
@@ -75,6 +76,7 @@ struct state {
   int length;
   int mode;
   Bool recurse;
+  Bool multi;
   Bool translate, scale, rotate;
 };
 
@@ -98,6 +100,7 @@ static const char *ifs_defaults [] = {
   "*scale:             True",
   "*rotate:            True",
   "*recurse:           False",
+  "*multi:              True",
 # ifdef HAVE_COCOA     /* Don't second-guess Quartz's double-buffering */
   "*doubleBuffer:      False",
 #else
@@ -117,6 +120,8 @@ static XrmOptionDescRec ifs_options [] = {
   { "-no-rotate",      ".rotate",      XrmoptionNoArg, "False" },
   { "-recurse",                ".recurse",     XrmoptionNoArg, "True" },
   { "-iterate",                ".recurse",     XrmoptionNoArg, "False" },
+  { "-multi",           ".multi",       XrmoptionNoArg, "True" },
+  { "-no-multi",        ".multi",       XrmoptionNoArg, "False" },
   { "-db",             ".doubleBuffer",XrmoptionNoArg, "True" },
   { "-no-db",          ".doubleBuffer",XrmoptionNoArg, "False" },
   { 0, 0, 0, 0 }
@@ -205,7 +210,7 @@ CreateLens(struct state *st,
   else newlens->s = 0.5;
 
   newlens->tx = nx;
-  newlens->tx = ny;
+  newlens->ty = ny;
 
   lensmatrix(st, newlens);
 }
@@ -264,17 +269,23 @@ mutate(struct state *st, Lens *l)
 /* Calls itself <lensnum> times - with results from each lens/function.  *
  * After <length> calls to itself, it stops iterating and draws a point. */
 static void
-recurse(struct state *st, int x, int y, int length)
+recurse(struct state *st, int x, int y, int length, int p)
 {
   int i;
   Lens *l;
 
   if (length == 0) {
-    sp(st, x, y);
-  } else {
+    if (p == 0) 
+      sp(st, x, y);
+    else {
+      l = &st->lenses[p];
+      sp(st, STEPX(l, x, y), STEPY(l, x, y));
+    }
+  }
+  else {
     for (i = 0; i < st->lensnum; i++) {
       l = &st->lenses[i];
-      recurse(st, STEPX(l, x, y), STEPY(l, x, y), length - 1);
+      recurse(st, STEPX(l, x, y), STEPY(l, x, y), length - 1, p);
     }
   }
 }
@@ -283,7 +294,7 @@ recurse(struct state *st, int x, int y, int length)
  * iteration after the first 10.
  */
 static void
-iterate(struct state *st, int count)
+iterate(struct state *st, int count, int p)
 {
   int i;
   Lens *l;
@@ -303,7 +314,13 @@ iterate(struct state *st, int count)
 
   for ( ; i < count; i++) {
     STEP();
-    sp(st, x, y);
+    if (p == 0)
+      sp(st, x, y);
+    else
+      {
+       l = &st->lenses[p];
+       sp(st, STEPX(l, x, y), STEPY(l, x, y));
+      }
   }
 
 # undef STEP
@@ -321,6 +338,8 @@ ifs_draw (Display *dpy, Window window, void *closure)
   struct state *st = (struct state *) closure;
   int i;
   int xmin = st->xmin, xmax = st->xmax, ymin = st->ymin, ymax = st->ymax;
+  int partcolor, x, y;
+  
 
   /* erase whatever was drawn in the previous frame */
   if (xmin <= xmax && ymin <= ymax) {
@@ -335,17 +354,37 @@ ifs_draw (Display *dpy, Window window, void *closure)
 
   st->ccolour++;
   st->ccolour %= st->ncolours;
-  XSetForeground(st->dpy, st->gc, st->colours[st->ccolour].pixel);
 
   /* calculate and draw points for this frame */
-  memset(st->board, 0, st->widthb * st->height * sizeof(*st->board));
-  if (st->recurse)
-    recurse(st, st->width << 7, st->height << 7, st->length);
-  else
-    iterate(st, pow(st->lensnum, st->length));
-  if (st->npoints)
-    drawpoints(st);
-
+  x = st->width << 7;
+  y = st->height << 7;
+  
+  if (st->multi) {
+    for (i = 0; i < st->lensnum; i++) {  
+      partcolor = st->ccolour * (i+1);
+      partcolor %= st->ncolours;
+      XSetForeground(st->dpy, st->gc, st->colours[partcolor].pixel);
+      memset(st->board, 0, st->widthb * st->height * sizeof(*st->board));
+      if (st->recurse)   
+       recurse(st, x, y, st->length - 1, i);
+      else
+       iterate(st, pow(st->lensnum, st->length - 1), i);
+      if (st->npoints) 
+       drawpoints(st);
+    }
+  } 
+  else {
+    
+    XSetForeground(st->dpy, st->gc, st->colours[st->ccolour].pixel);
+    memset(st->board, 0, st->widthb * st->height * sizeof(*st->board));
+    if (st->recurse)
+      recurse(st, x, y, st->length, 0);
+    else
+      iterate(st, pow(st->lensnum, st->length), 0);
+    if (st->npoints)
+      drawpoints(st);
+  }
+  
   /* if we just drew into a buffer, copy the changed area (including
    * erased area) to screen */
   if (st->backbuffer != st->window
@@ -410,6 +449,7 @@ ifs_init (Display *d_arg, Window w_arg)
   st->scale     = get_boolean_resource(st->dpy, "scale", "Boolean");
   st->translate = get_boolean_resource(st->dpy, "translate", "Boolean");
   st->recurse = get_boolean_resource(st->dpy, "recurse", "Boolean");
+  st->multi = get_boolean_resource(st->dpy, "multi", "Boolean");
 
   st->lensnum = get_integer_resource(st->dpy, "lensnum", "Functions");
   if (st->lenses) free (st->lenses);
index 17116c9ac1727828dfb49e1feeaa2a1f7c9cdc96..77408878870385f150a3c0ca4e6dec1b9bbc0336 100644 (file)
@@ -65,6 +65,9 @@ Disable the scaling component of the functions.
 .TP 8
 .B \-no-translate
 Disable the varying translation component of the functions.
+.TP 8
+.B \-no-multi
+Turn off multi-coloured mode, only one colour is used to colour the whole set.
 .SH ENVIRONMENT
 .PP
 .TP 8
index b4fe876eade1429d628f6c6c4b5f4e3de445f96a..95f6839b4a7e45d55b61276bc19ad57ec974dbd6 100644 (file)
@@ -1,10 +1,14 @@
-#define mac_width 19
-#define mac_height 25
+#define mac_width 25
+#define mac_height 32
 static unsigned char mac_bits[] = {
-   0x00, 0x00, 0x00, 0xfe, 0xff, 0x03, 0x06, 0x00, 0x03, 0xfa, 0xff, 0x02,
-   0xaa, 0xaf, 0x02, 0xda, 0xdf, 0x02, 0xaa, 0xaf, 0x02, 0xfa, 0xf8, 0x02,
-   0xfa, 0xff, 0x02, 0x7a, 0xf0, 0x02, 0xba, 0xef, 0x02, 0xda, 0xdf, 0x02,
-   0xfa, 0xff, 0x02, 0x06, 0x00, 0x03, 0xfe, 0xff, 0x03, 0xfe, 0xff, 0x03,
-   0xfe, 0xff, 0x03, 0xf2, 0x07, 0x02, 0xfe, 0xff, 0x03, 0xfe, 0xff, 0x03,
-   0x00, 0x00, 0x00, 0xfc, 0xff, 0x01, 0xfc, 0xff, 0x01, 0xfc, 0xff, 0x01,
-   0x00, 0x00, 0x00};
+  0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x7F, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 
+  0x0E, 0x00, 0xE0, 0x00, 0xF6, 0xFF, 0xDF, 0x00, 0xF6, 0xFF, 0xDF, 0x00, 
+  0x76, 0x7D, 0xDD, 0x00, 0xF6, 0xFE, 0xDE, 0x00, 0x76, 0x7D, 0xDD, 0x00, 
+  0xF6, 0xFF, 0xDF, 0x00, 0xF6, 0xDB, 0xDF, 0x00, 0xF6, 0xE7, 0xDF, 0x00, 
+  0xF6, 0xFF, 0xDF, 0x00, 0xF6, 0x83, 0xDF, 0x00, 0xF6, 0x7D, 0xDE, 0x00, 
+  0xF6, 0xFF, 0xDD, 0x00, 0xF6, 0xFF, 0xDF, 0x00, 0x0E, 0x00, 0xE0, 0x00, 
+  0xFE, 0xFF, 0xFF, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 
+  0xFE, 0xFF, 0xFF, 0x00, 0xC6, 0x3F, 0xE0, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 
+  0xFE, 0xFF, 0xFF, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 
+  0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x7F, 0x00, 0xFC, 0xFF, 0x7F, 0x00, 
+  0xFC, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, };
diff --git a/hacks/images/osx_10_2.xpm b/hacks/images/osx_10_2.xpm
new file mode 100644 (file)
index 0000000..1455bc0
--- /dev/null
@@ -0,0 +1,298 @@
+/* XPM */
+static char *osx_10_2[] = {
+/* width height ncolors chars_per_pixel */
+"468 256 35 1",
+/* colors */
+"  c black",
+". c dark grey",
+"X c #9D9D9D",
+"o c #959595",
+"O c gray42",
+"+ c gray35",
+"@ c gray91",
+"# c #E4E4E4",
+"$ c #E2E2E2",
+"% c gray88",
+"& c gray87",
+"* c gainsboro",
+"= c gray16",
+"- c gray83",
+"; c #D0D0D0",
+": c #CECECE",
+"> c gray80",
+", c #CACACA",
+"< c #848484",
+"1 c #4C4C4C",
+"2 c gray21",
+"3 c gray89",
+"4 c #E1E1E1",
+"5 c #DFDFDF",
+"6 c #DDDDDD",
+"7 c #2A2A2A",
+"8 c gray85",
+"9 c gray14",
+"0 c gray82",
+"q c gray81",
+"w c #CDCDCD",
+"e c gray10",
+"r c #101010",
+"t c gray74",
+"y c #060606",
+/* pixels */
+"&55555555&5555555&&&555555&555555555555555555&5555&5555555555555&5&5555555&5&555555555555555555555555555555555&55555&555555555&555555555&555555555555555&5555&55&5555&5555&555555&5&55555&55555555555555&5&&5555555555&5&&555&5&55&5&&5555555555555555555555555555&5555555&&5555555&555555555&555&&&555555&&55555555555&55&55555555555555&&555555&5&&555555&5&55&555&5&555555&5555&5&5555&&&5&5555555555555&&&5555555&5555555555555555&555&5555555555555&5555555&5555555555555555&55",
+"555&555&5555555&5555&5&55555555555&55555&55555&&55555555555&555&55555&&555&55555555&555&555&555555555555555&55555&555555555555&555555&555&55555555&555&&55&555555555&5555555555555&555555&555555555555&&555555&5555&555555&555555555555555&5555&5555555555&555555555&&55&5&555555555&55&5555&55&555555&55555&5555555&55555555&5&55&5555555&55555555555555&55&55&&&5555&55555555555555555&5555&555555555&555&555555&555&555&&&555&&555&555555&&5555&55555&&55555555&555&5555555555&55",
+"555555555555555&5555555555555555555&5555555555&55555555555555555555555555555555555555555555&5555555555555&55&5555&55&555&555&5555&555555555&55555555555555555555555&&5&&5&&5555555555&55&55555&555555555555555555&&&&55&5&5555555555555555&5&55555&55&5&555555&5555555555555555&555&55&55555555555&555555555555&55555555555555&&&&5555555&555555555&&5&555&55555&5555&5555555555&5&5555&55555&5555555555&5&555&555555555555555555555555555&555555555555&55&5&&5555555&555555555555&5",
+"5&55&5&55&55&5&555&55555&&&5&&55&555&555555555&555555555555555555555555555555555&5555555&5555555&5555555&5555555555&55555&&5555&5&55&5&55&555&55555&55555555&5555555&&555555555&555555555555&5555&55555&555555&5555555555555555555555555&555555&5555555555555555555&5&5&555555555555555555&555&55&555555555555555555&55&5&5555555555555555&5555&555555&&55&55&5&&55555&55&55&5555&5555555&&&5&55&5&555555555&55&5555&55&&5555555555555555555555555555555555555555555&5555&5555&&5555",
+"5&555&55555&&5&55555&555555555555555&&55&&55&55555&55555&55&555&555&555&&&555&555&5555&&&55555&5555555555555555555&&5&5555555555&555&55555555&55555&555555555555555555555555555555&5&55&55555555555&5&5&55&5555555555&&5555&5555555&555555&55555555&5555&55&55555&5&55555555555&555555555&5&55555555&555&5&555&55555555&555&555555555&555&555555&&5555&555555&555555&5555555&5&55&555&5555555555555555555&555&5555&5555555555&55&555&55&55555&555&555555&555555555&55&55555&&55&5555",
+"5555&55555555&55555555555555555555&&55&55555555555555&&55&&5555555555555&5&5&5&555&55&555555&555555555555555555&5555&55555555&5555555555&5555555555555555555555555555&5555555555&5555555555555555&5555555555555555555555555&5&55555555555555&&555555&55555&55&55555555&55555555&5555555555555555555&&555&5555555555&555555&555&&5555555555&55555555&5&5555555&5555&5555&5555555&555555&5555555555&5&555555555555555&555555555555555555555&&5555&555555555555555&5555555555555&5&5555",
+"5555555555555&55555555555&5555555555&5555&555555555555555555555&5555555555&55&5555555&555&5555&5555555&5555555555&555&55555&55&5&5555555&55&5555555&55555555&5&&5555555&555555555&5&555&55&555&555555555555555&5555&55&&5555555555&5555&&555555555&55&5&55&5&5555555&555&5&55&55555&5555555555555&5&55&555555&5555555555555&555555555555555&&5555&5&55&55&5555&555&5555&555555555&&5555&5555555555&&5&55&5555&5&5555555555&5555&55&55&&5555&55555555&5555555&555555&55555555&5555555",
+"&55555555555&555555&555555&55&555555&&55555555555&5&&5555555555555&55&555555555555&5555&555555&5555555&&5&55&55&555555555&555555&555555555555555&5555555555555&5555555555555&555555&555555&5&5555555&55&&5555555555555&5&55555555555555&55&55&&555555555555555555&&55&5555555555&5555555555555555555&&555555555555&&55&555555&&5&5555&5&55555&5&55555555555555555&5555555&55&55555&555555555555555555555555555555&55&555555&5555&5&55555&5555&555&5555555555&55&5555555&&&555&555555",
+"55&55555&555555555&55555&555555555555555&5&555555&&55&&&555&555&5555555555555555555&555&55555&55555555&&&55555&555&5&55555555555555555555&555555&5&&&&55555555555555555555&555555555&55&555&5555555555555&5555555555&555&55&&555555&55555&5555&55555555&555&5555555&5555555&555555555555555&55555555555555555555&5555&5555555555&55555555555555&5555&&&55555555555555555&5555555555555555555555555555555555555&55555&&55555&5555555&&&5555555555555&555&555555555555555555&&&5555555",
+"&&55555&&5&5555555&555555555&55555555&5&555&55&555555555555555555&&55555555555555&555555555555&555555555555&555&&&5555&5555555&&555&5&5555&5555555&5555555555555&555&555&555555&5555&55555&55555555555555&&5555&5&&5&55&55555555&5&5555&&55555&5&5555555&&555&5555&5&5&5&555&555555555&555&55555555&555555&55555555555555555555&55555&555555555555&55555&55555&&55555555&&55555555555555555555555&&&555555555&&55555&555&55555&5555555555555555555555&555555555555555555555555555555",
+"555&555&5555555555555555&5555&&555555555555&55555&5555&55555555&5555555555&55555&5555555555555555555555&55&&555555555555555555&&&55&&&5555&555555555555&55555&55555555&555555555&&55&5&5555&555&555555&5&55555555&555&555555555&555&5&&555&55&555&&&&555555&5&5&55555&&&555&5&55555&&55555555&55555&5&555555555555555555&&55&555555&55555&55555&55&55555555555555&5555&55&55&5&5555555555555555&5555&55555&&55555555555555&555555555&555555555&555555&5555&55555&&&555555&&5555&5555",
+"55555555555555&5555555&555&55555&5555555555555555555&5555&5555&55555555&5555&55555&5&&&55555555555&5555555555&55555&55555555555&5&55&5555555&&5&5555555&&&5555555555&5&&555&5&5&555&5555555&55&5555&555555555&55&55&555&5&555555&55&5555&555555&5&55555555&&&555&5555555&55&55555555&&55555555555&55555555555555&5555&55555&5555555&555&55&55555555555555555&555555555555555&&5&&555555&555555555555&5555&555555&55555555&&5555555555555555&&5555555555555555555555&555555555555&555",
+"&5555&55555555555555555555&5555555555&5555&&&55555555555555555555&555555555555&555555&&5&55&555555&55555&55&55&555555555555555&5555555555&5555&555555555&55555&5&5555555&55555555555555555&5555555&5&55&555555&&&5555555&5555555555555&55555555555&5&55555555555555555555555&5&5555555&5555&5555&555555&55555555555&&55&&5555555&55555&&555555555555&&55&55&55&&55&555555555555555&555555555&5555&55555&&5&55555555&55555555555555555&5555&555&5555555&55&5555555&55555&&55&5&555555",
+"555555555555555555&5555555555&55&555555&55555&555555555555&55555555555&&&5&55&55555&55555555&&&55555555555555&55555555555555&55555&&555&&555555555&55555555&5555555555555&555555555&5555&555555&&5&5&5555&5&5555555&55555&55&555555555555555&5&55555555&&555555&55555555&555555555555555&5555555555555555555555555555&55&&5555555555555&5555555555555&&5&5&55&55&555&5555555555555&&5&5555555555555555555&5&555555&555&555555555555555555555555555&5555555555&5555555555555555555&55",
+"5555555&5555555555555&55&555555555&55555555&55555&555&555&&5&5&55&55&&555&&5&55&555555555&&5555555555555&5&55555&&555&555555555&&55555555555&55555555&5555555555555&&555555555555&5&5&555555555&555555&5555555&555555&5&55&&555555555555555555555&&5&5&555555555555555555&5&5&&55555&5&5&5555555555555555&&5555555555&&5555&5&5&5&555&55&5555555&5&555555555555&5555&5555555555555555555&5555&5555&5555&5555&&55&555555&55555555555555555555&5555555555555555&555&55555&55555&55&&&5",
+"&5&55&5555555555555&555555555&555555555555&5555555&55&555&555555555555555&5555&5555555555555555555555555&555555555555555&5555&55555555555555&55&5555&55&&&55&555&55555&&&555555555555&5555&&5555&&55555555&&55555&5555&555555555555555&&&5555&5555&5555555&555&&&5&55&5&5555&5&555555&55555555555&55555555555&555&555555&5555&555555555&55555555&55&555&55555&55&&55555&555&55&&&55555555&555555555555555555555555555555555555&555555555555&5555555555555&555555&&&55&&55555&5555555",
+"55&5555&&&&555555&55555564655%%5&5%%646%5&55555555555555&55&55555555&&55&5555&&56%45&%65&5&&5555555555&&5555&555&555555555&5&555555&55&&55555555555555555&&555&&555555555&55&5&555555&55555555&55555&555&55555&555&5&5555555&5&55&&55555555&55555555&55&5*45&56%55&4%&%655&5%&%55&4&5&%&5555555555&&56%&&555555555555555555555&&555&555&6*%565555555555555%5&&5%&5&*5%555&555&5&5&55555&5555&5555&36%&555%&&%*4555555555&5555555555&&55555555&55&555&55555555555555555&5555555555555",
+"&5&5&5&5&5&&55&5&5555555%4%%66#65&653&6555555555&555555&5&5&&5555&&55&55&555555&36&5*45&55555555555555&555&5555555555555555555&55&555&55555555&555&555555555555555555555&5555&55&&5555&555&555&55555555555&55555555555555555&5555555555555555555555555&55%66%&%55$4*&%*46%55&%65%&556%*%555555555&4$&&%5&5555&5555&5&5&&555555555&555555%5%56%6%55&55555&5&5%#*5%6535*&&55555555&555555&5555&555548%6%%6555&%5&4&555555555555&5555555555555555555&&55555555555&55555&55555555&&55555",
+"555555&555555555&5555&556&%&&5*%4&3&*4%&5555&55555&&&5555555&5555555555555&5555&546%3*%%555555&55555555555&&55&555555&55555&555555&555555555555&55555&5555555555&555555&555&55&55&55&5&555555&5555&&55&&&55&555555&5555555&555555555&&55555555555555555&48%4%5$64*%&$&%%%&5$4*&%6$%*54455555&555&%&&6%$&&55555&555&555555&5&&5&&5555&555&&65$&5&&5555555&%%6&*$*55&654%65555555&5555555555&555&5%6&456%4*&4%*%%&&5&&555&5555&5555&555&5555&55555&555555555&5555&&55555555555555555&5",
+"&5555555&55555&5&555&&5&4%5564&%6*&$546655&5555&5555&55555&555&555&5&555555&&55&*5%&*3&6&555&5555555&&55&&55555555555555555&5&55555555&555555555&5555&555555555&55555555&5555&555555555555555555&555555&5555&5555555&55&5555&5555&5&555&5555555555&555556#65*$&554645&&5&%5*6#*%5&554&&555&55&55$6&%5%*%5555&5&555555555555555555555&555535*6&%&55555555%*&%5%5464%54&6%555555555555555&55555555&%*4%&*&34*5%6%&555555&5555&5&5555555&555&5555555&5&55555&5&5&5&5555555&5555&5555555",
+"555555555555555555555&&5&68%466&5#6%%*5%55555555555&555555&55&555555555&555555555%5656&%55555&55555&555&555&5&55555&&5555&55555&555555&55&5&55&555555555555&&55&55555&5555555&555555555555&555555&555&&555&5&5555555&555&55555&5&55555555555555555555&&5&*%&$5&%65&65%$655%%5&5&%6%%65545555&5556%5&55545555&5&5555555&5555555&555555&55*5&45%6%555&&&55&45*5&6555&55&&45&5&555555555555555555&555356%4%*65*4&5%5&5&5555555&555555555&5&5555555555&5555&5&55&&55&5555555555555&55555",
+"55555555555&5&555555555&4%#&66%5%86&%5&5555&555&555555&&5&5&555&55555555555&555565*%5$4&&5555&&5555&&5555&555555&555&5&5555555555555&5&5555555&5555&5&555555&5555&555555555555555555&5555555555555555&&5555&55&555555555555555&&5555555555&55555555&5555%4555&%&4&%*%%*%$6*%56356%%5$*#*&5555&5555845%&&&555555555555555&&55555555555555%55&655*&&555555%56$55%&4*&$6645&55&555&555555555555&555$*64&&4*$&#&*4%555&&5&5555&5&5&555&55&55555555&555555&55555555555&5555555&5555555555",
+"55555&55555555555555555564*55%5%4%5%5%&45555&555&555555555&55&5555555555555555&554%66&*5555&55&5&55&5&55555&555555555555555&5555&5&&5&55555&5555&55555555&&&555555555555555&&5555555555555555&55555555555&55555555555555&555&5555555&&55555555555555555&6556655%66&46&%55*$6%*%&5$565%*5555555&546%%6&%5&5555&&555555&5555555555555555&5%65%&53555555&5&55&&&%5%54%%%5&555555555555&&&5&555555555%%&55*4&%*%&%555&5&5&55555555555&55555555&55&555&5555555555&5&55555555&55555&&&5555",
+"5555555555555555555555555<<&%&5X<&6$*5%&5&55&55&5&&555&5&5&55555555555&555555555%+=$*46%55&555&55&55555&&5&&5&&555555555555555&55555555555&5555555555555&5&5555555555&5555&555&555555555555555555555555&5555555&55555&55&55555&555555555555&5555&&5555555*%$t+5&%$oO&%5&&%6&557+5&6%55+=&5&5&555&%& o$&&555555555555555555555&5&555555555X %5&6%55555555*36&%++++.%5*%655555&55555555&555555&55&&&%6%5% o&%555&%&5&5555&55555555555555555&&555&555555&555&55&5555&5&555555555&55&55&",
+"&5&55&555&5555&5555555556X .$4wr.%5%*%656%465%5&555*$&%%%&%&%5&5%*$*5%*4$5&%555%*+756545&.t&5%*%554645*&5555*536%*%%66%*555%*t.55%&5%5*4466466%o:*%%55%&%&$6%%*%*446%55&64&%455%&4&%&%55%&3&*%*5*44&%55565$&55*%5&5%&5&%%*$%&*%555&.t5&555%6%5&5555%6%54555%X 46&6+75645&5&55%=+%&%%&4+=*4%*35&5&%% X5&%&5%&55%%%5&%65%&&&4&$55%654*:o%5&X 5&545&465&&%*465%& 1+2 <5%636&%&556555555%&*%&%%5%6*4&&5%5*% o&*$6%&5&55%55&.t%&%oq%55&6%65%5&55&555%5555555&555555&&555555&555&555&55555",
+"&&555&5555&55555&55&5555%&17*511&6&4oo45%&&6%555563554&*&..56&4%..*$$&%to4%*45wo;+7645%6%=+64*%5oX6%*545556$5o*%6to653*%.o0&3+7&&&%qoX4*&%4*.w6 o365*4&5&&6&5&66tXt4&6&5%44%*5655tt*4%465&.ot5&&tXt$6&&&3tX56qX,5&5&&:ot&555&4&5%&&7+*&4%>o:&%&%55o&#65*56$5X &%4&+=566%oX5%*&7+6%&wX,+7%&6&&%64..& o5$5.X,5%&5*&&$5%*5%645..5%65*63o 55%o $to%6%5%to5%%6%&45 o&527*&%oo&*4$&%%65&%*636&Xt$*55%*.q56%3* X;Xt&&%5$5*65&5=+*%5 X6&5%,X.*555%5qX,5*5&5&555&555555555&5&&55555&555555555",
+"55555&555&55&55555555555&&t Xtrw%*.r9er.5&7+5&+=556&&%+71er1%%>eer1%*41ree,&4< =r9=&%&63+   o4.reer.%%&%*$=1e=551re9q*%er72%o   +5Or7re%%+92=.7   64&6<rw5%,yq%1r=r1&5X 65& X4o Oe<3**55.rr7r6%1r=r165X <rre.r9rt*$ Or7 <5& o557+*+  yX*<r7r.*571e=46545&46*X &5*3+=&&.r9er.4&=+4%Oy=re=%&646%were7 o%w=r7r<*11%5+ t4*r,+72er165$5%&   =*X <rr9*5&2eee;&%55%5 X&%1=$.reer.6r<5&er5%.e6.r7y<55+=27.&%%*% Or7 <%6 o&$=+4+   X7   %&<y=r=:%% Orert$5555&5555555555&&&555555&5&55555&555",
+"5&55555555555&55&&&555555$&1e7<555e+5&+r65=+55+=6%%*4&+ <$< &6126>y.3<r&%=O&w o%q27%&5&6*7+*%*r+5&+r%5*43&7rt46<r53=O5o w%%&5+=$&%:56; o&+ <&&& o656%%6r<%5+1&<yw&wr<&o $5& o5X 1%$63%6%r25&3&Or>5>r<&o 24w e0*e+3* 7,$Or%5 o54=+%57+56t t5+2%$=rt555&&&55%%o ++++7=6$r+6%+r&&=+%, X&w2=&65&4*1=56X o61755o t<r5*rr<$<24+ <%< 5%6&5&o &$%o 25w X5<r*37O65&*35 X%.r<*r+6$+r5125tr t$1O4r<*Xr56+ <554&*3* =:%Oy$5 X667+8#7+&%6 X&&t X&57265 e:$9+5&555&555555&55&55555&&55&55&555555&5",
+"5555555&55555555555555554*%wy7*4*. :65w .5=+6$+7%&64&6+e55o &&rOXX9+&21XX2=%Oe465+=5&554%=+5%. >5&w .%5*&%=+5$%22oo174t 1>6%&+=5%&55.o X4+=555* X4*$&%%1e%5rt62154512$X *%$ o4o 56%%&&%. t*4*5215%&124X 54* o%5=+%6 o55% o5 X*57+*%=+%5OeXoO 557+56%56%455%%o ++++7=5.y:5%, .%=+&<r&4%+75354&&r<%*%yo%y<5&%9Ot t.e11*2<%+e56X 6*%%54X 5&&X w5$ X%21oX2=$5%%*5 e7 14. :&&: .<r&O1r<%rt. XoX o4+=5%&%%55& X&*&yo% o%47+%*=+%64 o%%Oe%&5<r45 <54=+6555&5&555555555555&&&55555555555555&",
+"55555555555&55&5555555&5&4547+$64o &4%& o5=+%6+=555554+=5&X &6 e===<67r==715+7***+=66%5&5=+55o 54*% o%%%%6=+5*5=r77=1*5or O5*+7&&6.rr7 o5+=6$&% o*4%565t .<255=+555+=6o 5%* X%X 4555555o &%%5%=+5&5+=6o %65 X657+5% X%6% X6 o46=+5&7+*3+r=7==5%=+455&&$85$*6X 5554+=%X &4*% o57+5+=%%&+=665*65 X55& o5 X%&5=+5r<+1<r4r;5+=54o 63&%56o %46X &4& X67r===1*&4&53 Oo>$6X &%&6 otyt=<12.e&o ===7.6+=6&%&*$&6 o5%4 o& X%4=+%&7+3%* X&*+=$5*X *5 X$*=+&555555555555555555&555555555555&5&55",
+"55&55555555555555555&5&5&55%=+5%5. :*60 .4=+4&1=%5%55&+7*$o %%r<56$*$11&56%6+=#5$+=%$*&%3=+%6. q63w .&&5*#=+%5*11%4*5$5%*< .$+=646r1*# o&+755%5 o4&&&4&5=19o6%21%4*125X 55: o*X *4*%545t t*&%*21%4*125X 5%% o36=+4& o4%t t$ X64e+3*7+55<r&&$5*47+5%*$%*45&%&o 645*+76. :63w .*7+6+7*&%+7%55$%6 o5%& X&r<6#8eO5119.t O2%6+=*#o #8$*56X 65$o 3&5 o&11&4*%%554&& o&5&5. ,%5, .%rOr%<r1O6t t*4&&5+=5&4565%6 o%%t t& o%6e+55=+85& X53O9*%$<y$5 X*57+655555555555&55555&5&5&555&5555555&55",
+"5555555555555&55&5555555%5%5=+556$r+45+r4*=1*.r75&%&&%+=%%o 5&+rw46>5X .5%>4. .%.r=655&&&72%&5r+%6+r%%&45&7+55$o .45w5w&%> .6+r4&$ <&t X%+=4645 <&&&&554<yr%56<rw5qr<4o w52 X6o %5%55&5%72%%>%<rw5;r<4o &5* o567+5& +5*+r6& <8< +8-=2:wtr+>,t:,=+;0-o+8*&6&5o %65%+=%%r+45+r5%=+%. .&.r756$*5%22461 o6175%X t%Orr&%rr<&5+7&&o 54%5%&o t&5X *45 o5o .&%w5556%% o5&$*5r+6&+r*42r25t rt45=24&5q6+7%5%6$6$& +65+e6% <5< +*4=1464 <&6t X&&=1&5 o%&=+%55&&555&5555&5&5555555555555&5555555",
+"&555555&5&&5555555&555555%5%=+%&&%.reer.&5< 7e1=56645&+=5%o 5&52r7rO5%O 7e2%42r=e1=565%55< 7.&.r9er.4*%5&57+6%6&O =92%.y7r2$5tye<%1r7==r.+=%&551r=&&5556&r<6$6&1r=r1&$&err< o4o 5555&555.rr7y531y7r15&X &55 o%67+54 7rer.*51r92=+q0< 9Xw<ye9r,>9+>00+ 888***o &&%5+755.reer.5%=+552y=91=&%&55&.r9r< o%>=r7r<5&. 15$2 w&%+7%*X 5&5565%er15X &5& o5%O =92&%665% X&5%6$.reer.&4O <6&r9&%5ter7r.6+7%635%&65 7rer.561re27+6%< 7.&1r=%%Or=r=w65 X557+*555&555555555555555&5555555&55555555",
+"555&&5&5&&&5&5&&5555&5555565%&8355%6XX*5%&*tX%5$5$5*5%*56%%*5%5%tX>556#wot5*6#.X*4*5%%*&4&to%4*$oo54*5$*56&%*&%5*:Xt*%&qX.%6&&qo0%&..%;o64&&%55&..$%&%55tr4%6$*%tot54*%&Xt555545&55&555553oo6&65tot*$55&&%556%%&&65 oto88--0XX-0:-ww.o;:qq<Xwqw0>->:0:q;0-0---8**64&&4*%oo&5%&5%5%6.o5%&$&&%&%5wot6#&&35.o,%36$&5%64&55%%665564%64%%%%ot5&5%5655&5&qXt6#535&%5*%*$5645oo555&%%84$4%*%56%.X&6$56&55*$5&4o6to%%*#*..65&$55to$5*..456>X.64%&556&4&45&&&&55555&55555555555555555555555&5",
+"555555&5555&55&5&55&55555%66564%&$*6555$%&3*5%&*6%%5$6#645%6*%5&5654%5&5&%$5%&*5%5%&%5&%&663*6&5%*&5565&&55*#%*4%$*$5%4*%6%&535%**4&636*55%5&&556%6%%&*41+5*%&4%54%&&%6&5&6%5564555&55&&*%54553%&65%&&5&$6&546*565* o8-;w:,:,,,q>www;w;;q;0;0-0w;:wq,w::;,>w>;0-8*8*5&6465%%&$6%5*36%46%5*%6565*%55*5%&5%$$*&$&556455%*564&5%55%56&*$54563%%*5%*%65%6&4**556&5&4&565&&*%&4$*5555&6%5%%%&&45%4&%%45$4*55%6&$*555558$55&*54&*3&&5%&5$64%*54*&%5&&%555555555555&55555555555&5555555&555",
+"&555555555555555555555555%5&45*&$&54&5%656&&&*%44&%4*55%65644*$545$*%6&5%%6%&6$%5&565%4&%&&63&45*4%&%45%&%5&6&&%*5$845&$%5&%**$5*4%%%65%&5656%6455&*5%%&O:66&4&656&%4*%4%%%55%5&5555&555%6&&4&*&&3%*&4&&664&555**-0+.q:q0>0q;;qwqq-q:;>:::qq::>qw0>;;:;>:0ww:qqwq::0-886*$&5%&$65%65%&5%*%45$%6$*4%64%%5*55&%%&%%546454%3*%%5556%6$566%%&&%*3%8#&&45&%6%%&%546&*%&4%6%4*&*5%%&6&%#*46*&5%&55*$%5*%**45%6$4%646*45%56%$%&65$*5%%5646%6%4$*54*4%&&5&5&&5&555555&555555&5&555555555&555",
+"5555&5&&5555555555555555%&6565#5666$65%&%$*4&5&556554&6&54&&&$&&*&548$$**4*&6%$*%4*#&55%*%4&*5654%*%655&*55%5636%6%%%5&&*555$5&5548&%*%&554%5&%*55&$6*$&3&5$*%$&6455%6&5&6&5&46$5&555&555566&54%5*5%%5*454*%888-0:;,;w,;w0;;>;0;;:,;::;;;q>0qw;q;w::w;:q;w0q00w:w,w>00-8**&*563%&%&5%5%5%&&*555&4&55565%#6%55*$*4*85%6&%6$*3&6%465&54%&555645&6&%%*&4&&5&%56*535&55*%6%$4&%4*454&%465%%%&%%%5%*5%%&%66*35853*3555%5$6&6&54%5%&&&%6&%5&&*55%&&5*$5&5555555555&&5555555555555555555555",
+"5&55555555555&55555555555%5*$65655$*$5*%&*$55&%5&$%*5$%5%*$55&5%%6%64&&4%&%%$664&6%*5%5*55&5$%*%6&5&$&&%466&$5&46556*5%*456&&65%*5$6&%55%*&6&$&3%56&5&$&6%6455*4565%%645636$5*%&55555555%6$*%&564&%5*63&6*6--q,w>:,0;w0;;:;qw->:;w0qq:w;wqqwq;q::q0w;ww::qq:q:w0q:0:,:,>>--654*5545$*%%6&%6$55&%5&455646*46%&56%*%45%6%6564&%%%6%4564&5*5%&6&&$5*4&4&5%*656356&5%&&4&5&6585*$5%&5&4*64&&556%5&55&8%%&#66%%46&&%&5&&46%4%6%*5645464%*$%6$5&8$553*5555555&5&&55555&55555555&555555&5&5",
+"555&555&5555555&55&55555&%&%X.&4%&5%5546*$*55$5&%655&%*%5%6555&&6%56$&55&%&566%56%%56*54&%&6&&6&%*%%*#55&%&56%5&4%6536%%564&546646&%&5%6&$&54%6566$&%5&&%3&&*55&%&46564&%**646&555&5555554555&&455*&$6**--00:,;:q>0:q00,q;>w0:q;>0w:w0:w;q-qw;>;wqq0>;:q::;;wqqqw00w->ww::0q--8&66%535&3%&554655%&*4&$*%&*%5%556&655&4&$%&$&*%5%56456%55&6454&5546$*%&63%6%6&%&%553*%%*%%6%%556%%5&$&%5&%*5455%5%$%*4565%*&#6&5&%%&6&%&6%4455*5&5555646%%%$%*6%6&&&5555&&5&55&555555555&55555555555&",
+"5&5&5555555555&55555555555wreeo5&%65%6$5555&4&5%564556%&6555&%*%&55*&&&&%56$*$5655%&4%66o 6%455%*3*$%&5%%*%&%555655%&%&655&55&455&%%&5%%5o 5*%%6%4*456&4&&%&55&&&%55%&&56%46&%%&555555555&&555%*6%466&8-0q:>;q0::q:;+9:0:q:;:qwq;q>q::::++++Xq;qq;q>0;,;qqq>0;w;;>:;:;;qq;>w:q88*5&565%&+7556%&5&4&6$*%&&36&6&&5%5%5556&6554&%*%55646&%5%4*5655&55%6%$&655&&5%6645&%$*3*&%5*4%%&%6%565&%&$&5%*%&&%&%&&55%65655&%6%6%%&&%66556455&4&&55%*5556&%5%&55555&5555555&55&5&555&555555555555",
+"555&555555555555&555555565Oe5&%54654*55&55&4*4&5%5%&5%555*$&6$&555&%5&%5555&%%55&%6%%*%&o 555555&%55%6%5&5%456&5655&4*&$&46%5%64&4&65%*%5o %6&464*3&5%4&5&%%64*%%*%%6&%5&5$64&$5&4*$5%%6&%&4&&&$&*5&80:q:;w;:qqtoqw:+9:qqwq:qqq:;:;:q:;; 2+2 <;:qw0qw;;w:q;;:qot:0::wqqq:q;q:q:.X8*65*5%+=%55%%&5%48$%&5qo&5%t.55%645&6%554&63*5%*46&6%5555555555555&55555555555555555&5555555&555555555555&555555555&55555&55555&5555555555&5&5555&5555&555&55555555555555&55&5&5555555555&&55555&5",
+"555&&555555555555555555555+=36%4wo.*$555*q.*%5%5&>o.5%*50o:%%*%56&45%&>o,#*5565o55:oo$66o 5555555*oX*$&&&Xt*5464to.44%$oo%%%&64&ot45&*%otX *%%>X.56%36&%&&oo*5&&65%o3&*5%&5&.X66%*#*tt&%:o;855$tXt8;w>Xot;:w:;:o ,0:+=,XX,-qw;XXww;0:qwq o:q2=w;;qo.:wwqtoXq;: o:;wqXo.q0,:>tX>+=;;***%6+75.X*45&&535&$&o 55&+=5*4&&.o0655&6%ot5%&5$&4&455555555&&55&5&55555555555555555&5555555&55&55555555555555&&5555&5555&&5555555555&555555&5555555555555555555&555555&5&555555&&5&55555555555&",
+"555555555&555555&5555555&+   +8<r=r7,%6 +e1$*%64< 7eo53<r7r.%e+%5$+16<r=r.4471975Or=ee&%o 55&5&&tye=+6%.r=r<56,7r79o*.r99r.5&=1e= <45.rer= &5< 79X$&&4&%.reer.3&719=6%645+71er9q&o Oe<*<r=r.*%1r=r;qwer92q;w;0:   9:+=2er1,qteer2;qw;qwq o>:17;:Xy9rOqq< 9eo:=   ;>re9 <q: +e1o   +>-**6+919r9,4+=*%X %5   7o   +$:=r=y<%&=1e= <6*$&6%4*5&55555555555555&5&5555&55555555555555555555555555&555555555555555&5&555555&555555555&5&5555555555555555555555&5555555&5&5555555555&55555555",
+"5555&5&55&55&555555&5555%%+=54t o*%=15$ =:5635&&=1&45%t t5+2$Or%$*rtt t6+2*&7rt5&w&5> o4o 55555&+954%54r<%Xr5&1e:6&#5r+56+r%5=r.*1=*$e+6%+ &%=+6&56&55&5r+64+r64=rt$*%%&6+ <5:rO&o 1%%t t%+256 <0:>,o t0wq:q;,;o q0;+ O;< ;>22qtrXw0;>qq o:OrXq;rO:orww91:;q:, o0,0twq19q: 9tq0+9>:0,q0-+ <*wrO&+7#6o 55X *%&+=%5617%6X t5=r.%1=%$6&55*$555555555555&&55&&5555555555555&55555555&5&555555555&555&5&55&555555555555555&5555555555555&5555&5555555555&&5&5&55&555555555555555555555555",
+"55555555&5555555&&555555%6+7*&Oe&45<r65 o4*53&5$1rX*%%OeXoO 6> o*<25O9oXO $%=+%5%54.o o6X 5&5&&5< O*56. ooX X&r<%&%&. >5%q .&=1%%+7&t t%5o $*1yX545$655. :5%; .*=+&%%*%$%+=446+75o %*&OeXXO *-re.:qq. 2tq;,-::;o wq>+e0:o q;yOooe+qw:0qq   r.qqX ooo o;2row:0; o:0>wto2=w: o::q+9;>q:w,q+=6&%+=$+=65o *%o 356+7*&5r<4%*eO5=1%5+7*&5565%%55555555555&&55555555555555555555555555555555555&555&&555555555&555555555555&555&555555&5555555&55555&555555555555&55555555&55555&5&&5555&55",
+"555555&5&5555&555555&555%*+=%5+7%5&o %* X54565%6,1 9t*+r=77=%5214=<&+r7=7=6%=+4%*.rr7 o#o &5&&55%OrrX%X 77==.$ X555&o &%65 o%7+6&+=4X 6&%o 8%:1 et%&%&$o %*65 o47+4%5%6*&+7&&$+=%o 64%+r====0>.= 2q;:or O:0>q>wo ::;+9:qo wq e9=9O;,;wq: <XrO;qoy9=9=X0t1 e.:w o;:;1 =r9;0 o:;>+9q:0:w:0+9***+=5+75$o $5o &%*+=%&5 X&&%7+%7+&5+=5%%%&&%*555555555555555555555&5555&555555&55555555555555555&555555555555555555&55555&555&5&555&&555555555&5555555&55555&&555555555555555555555&55555",
+"5555&&555&5555555&555&55&%+=&5Oe5%%<r56 o%645%&&4#,925<r6%6&&4<r.r5*<r5%&55$=+&54r1*5 X*o 55555555&1r5tyt*65&5r<556%. :54> .5=+%%+7&o 655X %*5%,e2$56%*. :54w .*=+&&&%%5&+7&5521&X 655Or5*-q,qw:XrO0:0;O Xq:q;-o q;:+9:;o 00rO0qq>q->0:; o0OyX>. .:>0;,-0te2q0 o;,Or.>+=:w oq>0+9qqq:0;:+9w-8125+=5&< 65o 5&5+75%&r<56%eO&=+#*+7555*%*4555555&&55&55555555&5555555555555555555&555&55&555555&555&55555555&5&5555555&55555&55555&55&55555555555555555&555&5&&555555555555&55&555555&5",
+"&55555555555&55&555&5555%&+7*4t o6$71%6 o&55%%6%>5412%>rO&5w%%&rr+45>rO5&:667+5%5 <%t o%o 555&55>%6<y3%=2%64>5+ew%6;*r+&5+r4%=+55+756yO6w7 %6w5%12555%%*e+5%+r657+4654&5%+rt%:r<%o %55>rOqwtw0t;:eOqtw;t X:q:q:o .q:+=;:o :>+rtq:tqqw;:: oq>2etw92q;qt0tw;120w O:0+ew;29:0 oq:>+rq::qq>0+r.qtr<&+96w9 55o t5%+r5551=45o t67+&%+=56X+54*%5555555&55&&55555&5&555555&5555555555555555555555555&55555555&555555&555&5555&55&55&55&555555&555555555555555555&5555555&555&55555555555&&&5",
+"55555&&5&55&5555&555&55556+7565<r=r=w%5 X5%555&%2e9y.%*Xre=r&%%1 >45*Xre=r5%7+5%51r77=r.o %65%5&Or= <%*ter7r.*q=r=r.6.reer.&%=+55+7*4< =rO %&2eer.&64%5&.re9r.%&=+5546&&5+rr=r236o 448*ore9rw;r9ret0Xr=r2w;q:;>0er1;+9qqo :::2r9r+;:;::q oq>te2q.er=rXq2eerXqq1r9q.ree1 1: o>q;.yeO;;qqq+rr9r208trerO &%&er15tre<5w=e=r<557+5%+=$*+ %&%65555&555555555&555555&555555555&&555555555555&5&5555&5555555&&5555555555555555&55555555555&55555555555&555555555&5&5555555&&5555555&55&5&555",
+"&55&5&55&555&55&555&&&55%5&*%5&%qo.64**46%*%6%55%.o;&%&%6o.6*%656%*4$%&X.5&&54$*&5..*;X55&64&%5%4tXt**365.o%%&&5.X,&4%*Xo54665%&%5%5*%tX,3&466.X:%%565%%5*XX6%555*%5*5$&%+7$ot66$655880;;oXqqwqoo;:,0toXq:q;;0w:wo.0:0;w::;:;:.otw0;q;wq:q:q:wq0w-Xo;q::Xot::qqXX0qtot-X.::wq;:qtot;w;qw..;o.;q-8,o>$&5&%$ot*&>X0*54.Xw65454*5&553*%%65&&555&555&55555555555555555&555555555555&55&5&555555&55555555&5555555555&55&555&55555&5&5&5555555&&&&5555555555&5&5&555555&555555555555&5&555",
+"&55555&555555555555&5555555456%6&%665$46$63&*%%5&5&6%*#&%%64%&6%45556&4**$*%6&*#4&65&65%6%*&#*&%&*44$45%*358%54&*&#*4&5%$66%55&&&%65%%6&5*556%$&%*4&&5%645&5664&6#*45%4&&+=6&%$5&%%880,::w:;qq:w:>0;>0w0q;;w:>qwwq:q:>w;;q:q;;>q,-,qww0;;>;qqq>qw;:qw:,-;qwq;qw;;qq;wq:w;q0:wq;;:;>>;::;qq:::;w:q-8&6%4&6&%%5%5%8%%%%5%5*%&&%6%56456%$6%555555555&5555&55555&555555&555&5555555&5555&5555555555555555555555&555555555555555&5555&&555&555555555&55&&&5555555555&&55&555555555555&555",
+"5555&555555555&5555&5555%6&5&3555*5$6%5%*65*465%4&4&4%&&5*46&%%&55355%5%5%%5$54&*4$5*3&64&%%6%55%%&%&&65%65%%5&5%584%*$&*$&54&%5*4$&%64%4*%4*5555%5$%656&456%554%55*%%&%5o<555*%6%8-;,q:;q0::>w0q;;:q:;:;w:0w:;w0:q;:;;::q;w;:0q;q;:-:;,:w>>>>0;;0>w:q0>>q0;>wqq>qqqqqq-:>;;;>:>q;;;w0::;>::q,::wq-85*&45&4*%4654&&5%&55&%$655*%56555&*%5555555555&5&&5555555555555&&55555555&55555&555&5555555&5&555555555555&5555&5555&&55555555555555&555555&5555&55555&5555555555&55555555555555",
+"555&555&55555555555555&&635*%*%&4548*566$%*5%6%&*5655&%%63&5$6656$*54%5%4&*%&66%%&*%*536&%*%5&%%5*46$45%6$*%%5%5&&$&45%*45&&&&&436*$*&&&%*%545455566*%&%6%5*4*6&5&&45565%%6%5%%5**-w>q:q:,q;>00:qq>0:>q>:q0,0;w;q>;:qq>;;q;:,q0>0w:q:qw:wq:0qq>wq>;;q:qw0>;q;;;q0w;0q;>q:0:>:q:;qq>;0>:;:0q;:0;,:q,-6&64%453*%55&466%5*%546&$*4555%56%$65555&555555&55&5555555&555555555555&5555&55&5555555555555555&555555&55555555&555555555555&&55555555555555555555&55555&555&&55&&5555555&55&5&",
+"555&&55&555&55&5555555553*5$55&%&653%545*&4%*%4645*45*4&&&6%&6%4&5%5$&&5*65%&%5&5$&$3*55&&&%%655%5&6*%&&4&4&5*4546%66%&%*$*53$*&5%4&%466&#&6*$*4%%5%$5*5%*53*35554$5*4$&5&%*%&&680,>;;wwq>q0:ww00q:::q;0qqw:0,0q:0::wqq::;;w;0>;>;q;>>0;0*888-0:,0;,0wq;>-w>q,q::q:,::qw>q,0;>q;;;:;w-wq:;:w:>0::0:w:86&55*6&54*5555&4*4&&5%546%&4664**%555&555&55&555555555&55555&5&55&55&5555555555&555555555555&&5555555555&555555&&55&55&55555&5555&5555555555&55&55555555&555555&555555&5555&55",
+"555&5&55555555555&55&5555&5853&5%6555*%&555645&4*%&&54*%&&663&65*3*5655&&3&64*%6%&*65%&&5%%555%5*5&%%*4%%*5%*$*55&&3&&&45%&66%&%&&54*$555*63%&%%5&56*6$**4&5%554%*%&556%%&4%&5*80>:00,:;w0q:0ww>w:0w;q:>:w;q,0q>:0qwq:wq:wqwqww:qww;0,-8#%#@44--;>:0ww>w:>;00qqw>;;;;w;:;q0>:->qqw;wq>:0qw0qqq>;q>:wq;-5&5545&*$&&6456&%$*3&*&&%%%%$&6%55555555&5&55&5&55555&5555&55&5555555555&5555555&555&&55&&5555555&555&5&5555555555555&5&555&55&555&5&5555555555&555555&5555555555555555555555",
+"5555555555555555555555&5&%5%&$6%&%55&%56&%5&%*$5645554%6&54*&5%6%6$56%5%%6555%%&6$55%&5%&%&&466%5555*3*&55&%%6%55&%*545*%&3655%64&*5%5&&5%%*5&&&55%5&$6%&46%56%&6%6554&5&5&548-qw;0,;;:q:;::>0qqq0>:qqq:0>:;:wq;;:q;:q;w:q0>;;w;:;q>:08$33#$###80wqw;;:;qq:q>:-:;:;>;;wqq;w0:w;qqq;q:;0:;wqqw:::0:qq;w;866%&5&4*53&65&$*5&&554655&&*4555&55555&5&5555&&555555555555555555555&555&5&&55555&&555555555555555&&555555555555&55&55&555555&55555555555&5&&5555&555555&&55555555&55&5&5555",
+"5&555&555&5555&55555555555555&555&555&55&&55555555555&55555555&5555555555555555555555&55&&555555555555555&55555&55555555555555555555&55555&5555&555&5&5555&55555%5555555%65%6-;:qq::qqqqqq::qqqqqqqqqqq::::q:q:qq::qqqqq:::q::::;w;w:-6#@######&-q>;:wq::q:q::::q:qqqqqqqq:qqqq::qqqqq:qqqq:qq::qq::::::-6%5&55&55555555555&5555555555&5555&5&555&555&5555555555555&55555&55&5&55&5555555555555&&55555&5555555555555555555555555&55&555&&55&5555555555&5555555555555555&55555&555555",
+"5&55555&&5555&5&55555&55555555&55555555555&55555555555&55&&5555&555555555&&555555&&555&5555555555555&555555555&55555555&5555&555555&5555555&55&55&&55555555&55555555&555&&5*-;q:qq:qqq::qq:qq::qqq::qqq:q:q:qqq:q::::::qqq:q:qqqq:qw:8%####33@#%8q>qqwqqq:q:q:q:qqq:qqq:qq:qq::qq::q:qq:qqq:::q::::qqq:q;-655&&%55&55555&&555555555555&555555&555555&55555555555&555&55555&5555555555&55555&&&5&5555&55555555555555555555555&5555&555555555555555&5555&5&555&55555555555&555555&5555",
+"555&55555&55555555&555&&5&555&&5555555&5555555&55&55&55555555&55555555555555&55&5&55555555555&55555555555555&5&&555&5555555555555555&55555&55&5555555555555555555555555565*-;w:;q::q:q::qq:::qq:qqq:qqq::q:q:q:qqq:q:::qqq::qqq:qwq>q*3@########8qw:qq::q:q::qqqq:q:qqq::qqq:qq:q:::qq:qqqq::qqqqq:qq:q:>;-6555%&5555555555555555555&555555555&&55555555555555555555&5&5555555&55&555&55&&55555&5555555555&5555555555&&5&555555555555&&5555&5555&&555555&55555555555&5&55555555555&&",
+"555555555&55555&55555&5555555555&555555555555555555555555555555555555555&&555555555555555555&555555555555555555555555555555555555555555555555&55555&&55555&555&5555555&55*8;q:qqq::::::qq::qq:q:q::qqqq:q:qqq:q:qq::q:q:q:::::q:qq:,q&#@#3##3#@#*;,w:qq:qqq:q::::q:qqqqq:q:::::qqqqq:qqqq:::q:q::qqqqqqq:w;-*%565555555&555555&5555555&555&55555&5555&5555555555555&555555&5555&5555555&&&555555&&&555555&55555555555555&55555555555555555555&5555555555&&55555&55&555555&5555555555",
+"555&5555555555555&555555555555555555555555&5&5&55555555&&555555&555555&5&&5555555&&555&5&55555&5555&555555&555555&&555&5&5555555555&5555555555&555555555555&555555555%45&-;q:q:qq:qqq:q:qqqqq:qqq:qqqq::q:qq::qqq:qqqqqqq:qq:::qq:q,:&######$3##&;,w:qq:q:qqq::qqqqqq:qq:q:::qqq:::qqqqq:q:qq:q:qqq:q::q;qw;-*55555&&5555555&55555555555&&55555555555555&5555555&55555&&5&5555&5&55555&55555555&555&5555&5555555555555&5555555555555&55&&5&5555555555555&&55555555555555&55&55&&555&",
+"5555555&5&5555555555555&5555555555&555555555555555555555&&5&5555555555&&5&55555555&555555&5555555555555555555555555555555555&5555&&5555555555555555555&&5555&55&555&5556-0w:qw:qq:qqqqqqqqqq:q::qq:q::qq:qq:qq:q:qq:q:qqqq:::q:qq:q,q6######3#@#&;,w;:q:qqq:q:qq:qqqq:q::qq:qqq::qqqqq:q:q::qqqq:::qq:qqq;qwq-*%5&5555&555&&555555555&5555&555555555555555555555&55555555&5&&5555555555555&&55&55555&5555555&5555&55&5&5555&5&55555&5555555&5555&&55&555&555555555555555555555555555",
+"55555555555555&55555555&555&&5&&555&55555555555&55&&555555&555555555555&&55&55&555&555&555&555555&5555555555555555555&5555555555555555&555555555555555&5&555555555555&*8;qw:q:qq::qqqq:qq::q:qqqq::::q:qqqq::q::::qqqq::qqqqq:q::q:,;&#@####3#@#6;,:;q:qq:q:qqq:qqq:q:qq:q:qq::qqqqqq:qq:qq:q:qq::qq::q:qqq:w08&5555555555555&55555555555555555&55&5555555555&&555&555555555555555555555555&555555&5555555&555555555&5&&555555555&555555555555&555&555555555&&555&55555555555&55&555",
+"5&55&55&5&55&555&55&&555&555&&5&555&5&555555555555555555&&5555555&555555&5&&&&&&55&&55&5555555&&55555&555&5&55555&&5555555555&555555&&555&5555555555&55&&55555556555&&8-:q::;;;wq::qqqqqq:qqq:::qq:qqqqq::q:::qq:qq:qqqq:qq:::q:::q>;6###$######&;,q;:qq:qqq:qqqqqqq:::qqqqqqqqq:::qqqqqqq::q:q::qqq::q:qw::qw0855555&5555555&5555555555555555&55&55555555&5555555&5555&55&55&5&555555&555&555&5&555&55&55&&&555555555555555555555555555&555&5555555555555&555555555&555555&&5555555",
+"5&5&&55555555555555555555&5%5*54646%6&4&55&5555&55%*%%&%565*%5&55555&55555&555&555555555555&5&55%6%5&%55&&55&6%&55555&&5555&5555&55&5&5555555&5555555&&5&&&55555%&655*-qqq:;;q,0:::qqq:q:::qqqqq:qqqqqqq::q::q:qq0>:;q;::qq:qqqq:;w,;*###4###$#@&;,qqqqqqqq:qq:qq::q:qqqwqw:qw0::;::qq;:w;q>;:;q;q::::>;:;w;::>0*&&555&&555&5&5&555555&55&555%&%5555&&55%554&&&%5&5&5555555555555&&555&56$*5&56&55&55&555&&55555&$*&55&6555555555555555&&555&5555555&&55&555555&555555555555&5555555",
+"&55&&&&55555&555&5&5555&&$&&&$46%&663%*%5555555558$&%54&%$&%&%*%5555555&5&&555555555555555555555&$55*5*4%&5%6&5555555555&5555555555555555555555555&555555&5555555555*-qwq00qw:0:qq:qq::q::q:qqq:q::qqqq::qq:q:qq>;0q>q;wqqq:qqq:;qw,q5@@@##3##@36;,qq:::qqqqqq::;;::::::w0;;:qq:q>q0q>>q;>q;::w0:w0q;0;:0;>:wq0w-*555555555555&5555&5555%%*%5%55555555&&656*53&&55&55&555&&5&&5&5&&555555*$5&6%4&5&5&555&55&55555*355&%455555555555&5555555555555&555555555&&555&5&&555555&555555555",
+"55555&555&55555555555&55565&55*3&&5585&%55555&5&5$65*556&6*54&465&55555555555&555555&5&5&5555555%55%$53665%6$*3*555555555&555&5555555&55&55555555&5&555555555555%&5*-w>qq:,:w:0wq:::qq:qqqqqqq::qqqqqqqqqqqq:qq:0>w0q0,0qqq::qqq;>::q*##4####$@#&;,::qq:q:q:qqq:qq:w::qq0>w;:::qqqw>qq0qq0w0q>0q;w;;>ww:w::;qw;>:-*55%5&55555555&55555&5&6%&55465&5555554*%456645&555555&&&5555555555555%%*%&55&5555555&5555&555%%*%&55&555555555&&5&5&5&555555555555&&55555555555555555555555555555",
+"5&555555555555555555&555*36%*46*&45%4*4*&&5555555*%*3%*%5356&&%%&55555555&5&5&555555&5555&55&5555*566&6$644*%5*4555555555555555555555&555555555555555&&55&&555555568qww;:0;0>;q;q:q::qq:qqq:qqqq:qq:qq::qqqq:::::q>;w:0:qqq:q:qq;w:>;&#@###$##3#&;,qqqq:::::q:qq:q;;;;;qq,-:;>0q:0>00w:q;w;wwqw;:qqq:qq;;;;>;q:q,08*5%55&55555&&5555&5555%*$6%5%5555&5555&5%5&55&555&5&5555&&&5555555555*&$55%4%55&555&555555&5565455%4%55&555&555555555555&&5555555&5555555555555&&555&5555&&5555&5",
+"55&555&555555555&&5555554*%6655%&&&564%555555555%&4&&5%655*$55&655555&555555555555&5555&5&55555555%&55$*566&45&555555&55&5&5&55&5&555&555&55555&5555555555555&&55&80>>q;q:w:;0>;qqqqq:q:q:::qq::qqqqq:qqqqqq:qqqq:>0>0wwqq:q:qqq:;:,;5##$3#4$@#@&;,:qq:q:qqq::q::qqqqwwwqwqq>;;>w::0,0:q::;w0:;q>0q>q0qww>-:w;;q>:086555555555555&55555555%65%&&55&5&5555#55$6&%5&&&55555&555555&5555&5538$&%&65&5&5&55&55&55555384&%&&55555&&5555&555&5&555555&555555555&&55555555555&5555&5&555555",
+"5555&5&55555555555555&5556$55%6&&%6$%56%55&555&&&&55&*$45*%55%%&5&55555555555&55&555&555555555&54&65%*%wXq5%&%$65555555555555555&5555555&55555&555555555555555555*-:>q;q;q0w0:w::q:q::qqq::qq:q::::::::q::qq::q:;w0>-w>;::::qqqqw;w>0*#@#43@3###6;,qqqqqqq:qq:q:;qq:qq;;>0w>-wwq:-::-:wqq;q0,qq:q;:qq>q00,;-ww;w:ww-*&55&5555&555&555555*%&%$6*4555555556&65*&4655&5555&5555555&555&55&&&$5&%56%5555&55555555&556$5&%5&%5&55555&555555555&55555555&555555&5&555555555555555555555555",
+"&555555555555555&5&555556<<556%&<.5&6%55&&55555&%&+t%X &&+=65&&455555555555&55555&5555&555555555*7+65%*91456665555555&5555&555&5555555555555&555&5555&555&555&&5&8;wq:qq:q>0>>-:qq:qq:qq:qq:q::qq:qqqq::qqqqqq:q< wq<O:::q:q::q:;:>wq*@#%@%###@36;,q:qqqqqqq::::,>>>w>>>qO+.w0qwO+q;,q>0:qqoO;wqqww0;q0>w->q;q;>qww;8*555&5555555555&5554*$&8$+755&55555$&455$*55555555555&5555&555&&5556 o5%55&555&&555&55555556 o&%55&&555555555555&5555555555555555555&5555&55&55555555&5555555&&",
+"5&555&5555555555555&55&55Or4&55%rt%5&56555555555&$7.5X %5+76%555&&55555555555555&5555555555&5555%=+&%&<1*5&%%%65&555555555555555555555&5&5555555555&55555555555580>:;::q:.X:0:q:qqqqq:q::qqq::q:qqqqqq:q;:q::qq;o 88O10wqqqq:::::;:>q4#t.3#3##@@6;,:qqqq:qqq:qq:-8888-0;:9 1q>:t  q;;q0:;qqO10>0;wqqw0>.X:;>q:;:w;q:0*5555555555555555554*%5$6+=5&5555555*4%&t.%55555555&55555&5555&5&555 o&555%55555555555&5&5&5 o5555%5&5555&&55555555&555555555&55&5&55555555555&555&&55555&55&55",
+"55555&5555&5555&55555555&wr<&65Xe%55to555%55%%&&&&55%X 4%+=%&%*Xt&&456%65&&%4%*4%5&X%&5..&%56%to%=+6$&;ow55&%%&ot55..&6%&tX.4%65&&.q65%tt6&qow5%%&55o%55%&556%&*-,;Xot;w;+9:;:wq;owqq.o;:0::;;wqtoX;:q;:wtX>;;oto #$#58-wwqo.:;:q.oX:&@+7##$3#Xt60,qq:0w0wqq,q.t5###$%6--9rr>00Or :;;tooqq>w;:qqq;o.q:q+9;;q::o.0,0>,-..&&5&*..55%&%&455556555+=%%%to.5%&$*&4+75*365oX*56$%654*$5&55.ot55 oqXq6%6&wX,&46%6$%$*..% X&5&tX556&%55%&555555555555555&55&55&555555&5555555&55555&55555&55",
+"555555555&555&5555555555%*12*4&1O6&2ree:5* X*%7+5% X6o 55+7&4.r7rO%&=    7%*545&=19=6;9er25%&1r=rr+5&<y7r.5%=19= <2er1$&2r7r166+72=.o Oe<*<r=r.5&=1e=5455<rq5&,rtt9r=yO:<   +q=1e=;02r9et>w0qw>Or9r9t>; +e1>.r9r7 ##+76891e9 <qw2r=y15X   +#.r=r<;,+9;wo q0oyOe<#@3##$5%872 X,>e1 0;Or=rew-+=::91e9 <wo   +qXr=rO;w+=2er1&&w9er15&+     5&6555+=&*2r7r16555#o   +4.reee.4*=+4&+=56.rr=e&4 Oeert*%<y=r.&5*46*qer9= X4&1r9ew&365%*5555&&55555&55555&&555&555555&&555555555555&5&55555&",
+"55555&5555&555&&55555&55%%. t46rt&<r&5=O$5 X&5=+6$ X6oy6&+75&r<*or4*56%. O6%&64&7rt4*11&;y.%<yq6tr+6t t&+2&%7r.61 <5< 5$q6&< %$+ <44o 1$&tyt4+2%&=yt%5&556y<$*O2;29wqo .q+=:::9r.0:Or0w=O;qq;:. o0w=2;> 9t0*e+##+ ##+=#&=rX:19::t;:< &#+=#$3r<@Xr0w+9qqo 0wo 164####@##@4=+e1>.ro ;,tw:t o0+900=yXq1=0w+=>0qrO>or;w+ O:< 5%1240r.4*%$>r1556555+=5&;&%< 5%5&66+=548r+64+r*4=+55+75%e2$6556 e>%e+4t t3+2&5$5*$1765X X6<r55=O$*%6435&&555&5555555555&555555&5&555&5555555&5555555&5&555",
+"5&5555&&55&55&5555&55555&%*rO5<26%22oo175% X*%=+%5 o5X %5+=5. oXo o5%%.r+*4%%45%=+&64rOXoe+&11*3&7+6O9oXO 55=+%*+765X *554XO 56+746*X 656OeooO 5&7+5%*$5%417**eXwy<;w0eOq+9:w;9+:wq22oo29:qq,wOe;w:<rw> o-*t ,#3X 3#+=@571w;+9q::woO 5#+7$#. XXX o,+9qqo ::o 8###3###3@#37+Orq11o wq>0Xo o;+9wq91w0+9::+9-,X ooo o;+e;wo 4&rOooe+%55>9=*55&555+=55&%oO &56364+7&*. >&6> .*7+6%+=%. t*45$5 <5&=+&O9ooO 465&$*r<645 X&22oX2=*&4665&55&555&5555&5&555&55555555555&55555555555&555555555",
+"555555&5555&55555&555555%6%Oe*1<%&=r=77164 o$4=+5% o5o 5$+75X ==7=.55>e15$5*4*%5=+#%* e===<*7+%*%7+%+y=77=557+&4+95%X 4%Ore9 64+=*#6o $5%+y7==754=+55&55&*. toew0 o,0:=+0+90>09+;,09r==91;qw;;+9w0:o ;q o5#X #4#X #3O=#@=+,;+=;qOree 8#O73$X =7==X,+9;:o w;< 443@#%##$@4#7+t .r.o q;Xrr9 ow+9:q=+0,+9;;+=:;o 99==Xw+9w;o 5& e777<*4&29q455&55&+75$<y9e 45&4**+=$5o 6555 X%7+&$+7&o &%$&*5 o5&7+%+r7=7=*%5%&$ X6&5yo%=r7=71*4*$#6&555555555555555555555555&5&5&&&5555&5&55555555&555&",
+"55555&55555&&5&5555555554&&> o q5%22$*&$6% o*%e+*4 o%o 5&+=*t t&64*5&79>555355&57+556r<44&5&7+&%67+5<r%**$%6=+5&+=&%o 5t <5o 5%+75*4o &$5Or4%%665=+&*3%&%3&eO7O0;y<;wweO>+=>qw9+::;22qwqw::q;>Oe;w:<rq0 o@#X ##@X ##+7#%=+wq+9q. <0< 4#+7##t t@#*;>+=;:< ;;oy8##4@@3$#%@#7+#eee0o ;wr1>- oq+=qw9+00+=;>+=,>. .;q:w0+90:o 86e<4&6&46+r.*6556555+76ty<&X 5$%*4%+=65. w%6; .57+%%1=6t t6&3$4 X&47+5Oe&5%&%5%&55 X565 o5115&&&5&5*&5&55555555555555555&555555&55&55&55&&5555&&5555555555",
+"&5&55&5555&55555&&55&5556$652r2&5&oy.5&>%* <5< +5& X6o 5%+7%4=25%5;51rq5464*5&3*=+%6&+r,*4w%Or;&< +#,yO%6q%*7+6&+=$&o 5X w5< 48+=3*4X %6%qrO65;6%7+%4*6%565Orrt>q29q;o .q+rq:;=+>;0< Xqqtw:;>;. o>;=2-8 X4@$rO#07 $#+7@#=+q,+=:o tqO *@+r##%72@#6t,+e>te qw< *$#@+X#4####7+#O <8o ,w <:. oq+9;,=+>:+=>:+r::;=2w;:t,+=0>< -5+rw#6w&< .&&%5&&&55+=4o :5< %6&%55+r5&%r+%5+r$5=16.r7%%72*%,55yo&%=+%qrO%5w&555*%22451 X6X .4%,4&&%%&55&5555555555555555555555555555555555&555&555&555&55",
+"555555555555555555555555%*%6< <5*%%O =e26%1r927+&$ o$o 5&+=&5ter=r.4     7&456%&7+%6%%2r7rO*qere17+65Xye7y45=+55+755X 6%9re1re$+=&&6o &4%*ore=y4&=+5&%556%6, 1:;;t=r9rO::.reOw=+:q>qO 9e2;;:;qwOr=r9t*% X#$#< =rO 33+=@$=+ww+9w;ere1r9$,re<@t9r7rX,.rerO :0o 63## +$@#3##7+#0X0%o qq1r999rX+=q09+qw+9:0.reO>.er9rXq+=:qo 0*52r=rO%=     55&&55+75&9re1re%5%&&tr9<&.re9r.55< =91=56.re=r55 X%5=+&%ore7r%55&45.r9r< o55O =e2&6555&&5555&5&555&555555555555555555&55555555555&5&5555555",
+"55555555555555&5&55555555&&&&5&5&%*%:ot%55&..&55&&&555555$65546.o&%5556%&55&5555&%5%&3*toq%5&%X.4&555%5o.645564&%5%*5%&%5ot5t.&55555555556&%X.4&555%56&555&-ww;:w;wXot:q;wtot;q:;::qwto.0qwq:qw;toX0&%#@3#$##tX03#$$###5-qw:;ww;:o.,..@@;X;###.X&;,:tot:q;:>w-5########3###3####38-:wXXwto;qqqqq::::qqqqtot0qqXo:qqq:qq;;,-5&to:&55555555&555555&%6ot4t.%&6664,Xw%&5Xo%564&to&555&%5oX65555555555&$o.&455&6$6wXt%5&6&$,Xt*$&%&%&555555&555&55555&&5555555555&5555555&5555&55&5555555",
+"55555&&55555555555555555%&&4$6&3%*4*$%5&&&5%%566&5555&5&*4%5%*4*&%*%6%555&&55555%5646636*&&4&5&5&54&%6%&*4*%5%$*&4&45*%65%%*$&55&5&&555&&5&4*&&5%&5%&&5%55*-::;:0>;0>:q:q>-:qq:-:q>0:qw;>q;:qq;:ww-8%@3%$3##$#3#####@#%80>q0>w->>0:,q&###3$3#3##5;,0w;>qq:qww08%@################%600,;;;:qq;wqqqqqqq:qq;qw;:>qqq::qqqqq,-0*55%65555&555555555556&%5465&6&%$5536*$6%&%565%*6455&55$&3655&&&55&55&5&*3%*%55*%&&&%65%$&536&$&&%*5%555555555555&55&5&5555555&5555&555555555555555555555",
+"55555555555555555555555&6*$6545*%&54*54&5%*&664&&5555555&55635*$36#&*%%5555&55&5&555%664%%6&%*&55%%6&3633*&3655&566555*35%&&*4%6555555555%&654%&6&&*$*#6568qwq::qq>;:w-:qq:;>:;wq;;q:w0>-:>0;>0,>-*%######4$##4######480w:,;0qw:qqw>0&#@3#@4#@##*0>ww:0>qwwqww-83#####3#3####3##@#4*0wwwq>q;>;;w:qqqq:qq>;;>q0q;q:q::::q-,0856555555555&55555555$*&4&5*5%%*65**55*355&*4&%5&&&&45$*5&65&&555&555&48%5*&%55%&&64*%4*&56*5466%55&655&555555555&5&5555555555&55555&&&555555555&55&55555",
+"55555555&5&55&555&5&5&55%365%*%%6%*4&*$655$5&45555555555554664&6*65*4&5%5555555&6%%*54&&&&3584*%%5&$*56*&6%&6$55%%%%%655&&&5%663&55555555&46556%&$46%5*$5*-::;:q,;-;:;::w;:q-wq:;w;>0;,0>w:::;w:-85@@#@$#####34#####480,>;q:>q0q::;,w4#@#%##33@#5q,q:0:0:w:qw>:;85###$###########@3%6-,0q:;;;::qqq::qqqq->w;w::wqq::qqq:>:>085*%55&55&&555&&555&6%5*%4&5&%564345%&65#&%*&654564*6&%6&&5655555555*5$55$566&%&4384&%5643%566456%%&55555555555&55555&5&5555&5555&5555555555&55555555555",
+"&555&&5555&5555555&&5&55666&5$&5536%%5*%55*4%*5&555&5555%&5%*5453%*5%6%&&&555555%*%5&%645655%*$66%*%5*%3545*%56%%*5&5%54%545%&5&&5555555&%&%3*&$&*5&%&64*8;>q;qq;:q:::,;0q>;>w:;;:::wwq:00:0;,q0843####43$##4@@4##$580:>q::;;w>::q0,0*##$####4@#*0,w0;>:q:qq:q:>08%3###############$%*0,,0,::;w;:q:qqq:qw0;0;>q;qq::q:qq->q>85%65555555555555&55&%4%%*%6%%%&*65%&%5*555%%$&&&$6463&%&&%555&555555&%&5*%6%56%*&55%%%6*65%46%&5%*%5555555555555555555&5555555555&55&55555555555&&55555",
+"&555&5555&55555555&5&&55%%55555%5*5&*..&&4&5564&555&5&55&%*%%%5**64%*%%655555555%*%$55&65466#*65&%%*%4&*6544%6%&&&%.o%5*55*&&55%55555555%&%5855,o:5$6%368-ww;;q::0:wq;qqqq:;>-q>wq:-::0w>qq:ww;84@###$####%##%###368;>>qq;q:0:;qw0,w;&@#@$#%#@##*q>0:,0qq;;wq;:>:0-&3@@###3###3##4##@&8-q:00>->:q::qq:q:;wqw;0>;::qq:q:qqq:q-*&%5555&55555&5555&%*5&63%55*5454%&564$*5$**&555%*&566%%&*5555&5555%5%&&%45556$%&465*5%&$%&&&554%*455&&555555555555555555555555&5555555&55555555555&&5&",
+"5&55555&555555&55555555&64*5&%o 555%<r.556&555&555&55555*$55655$555&%5&45555555&%5&&&44%&5%%&%%%46&%&5&54&5655$*4*=r=+55&5$4*4$*5&&5555556%6#55e14&66655-;wqqqq:w:wq:w::w:;w;>>0;;::::>;;:w< 0-5####4$@#3#$##@@$%*-0w>:;qq;w>0>o ,:,;*$#34###3@#&0Oo>;:wqqqq:qqq:wq-*$#######3##@#33@#&-:w,>;>q;:q:qqqq:;::;q>;qqqqq:qq:q0>0q-+7555&&5&55&55&555546$4*656&%6*&55&46&%&35=+&6&%46XO%&5&$&&&555555%*555%*45556%&6&6&%&*55&4$4&&55%55555&55555&5555555555&5555&555555&&5&555&5555555555",
+"5555&55&&55&55&555555&555&$555o 5%&w2.5555%5545555555555%6*$55&&&%5&%*4555555&&5&%555&65%%&&5&%6546%6545&655$6&%6. >%%5&4%565655&555&5556$*5&6<1555&%%66-:w;:wqq;>q:q;w:;q:qqqq:w;qqq:0:qqqo -5########3######t.80qw:qwqw::;qq0o ;:,:&@#$##333@#5w1O0q:;:q:;qww;w:q:08%#########333#$##5-:w0;:;w:::q::q:w;;:q;;wqqq:::qq:w::q-+=5555&&5555555555555656%%%6%5%56$55$54*&57+%4*55%<156%6&&&5555555&5%&$55%&4&56%45%&%&%564566555%&55&&5&5555&5555555&5555&5&&555&&555555555&&55&55&55&",
+"&5555555&55555&55555&555%%&4otX 6%%%..655&&5to&%wX>&5&&oX,$66%%w.&&6&X&65oXq&%&5..5*4655:o:5555%6554ot3*55%6..654o &%&5%XX6%&&5%%ot$*5%&to.%46qoq5*3&&ot-,;qqwqq;>.ot;>0:.oqww0q:tot;w:q:o.o *##tX.#4###3..3##+=0:>w;::::0Xo;,0o ,0,;*###3##;X.#6;,:w0:tot:0qwqqqw>qq;8%X@#0X.3####$3#tXt;>qwtot::w-qXo.;q,.o.w::;:;.ow;:qqtot+=&&%qoq&&5%tXt555&$&54:o.&&%64&&%%5%55655=+5X.%$&%&555%ot%6%555..%*5$%555>Xo&55*%%tX>%%&5&:Xt%655&&%&*%&55&%55&5,o,4*4%&55%*5556555555&555555&5555555",
+"&555&55&55&5&&55555555555*.yer= %*weer1%3oy<rre.rert3. =ert&$ +e1*71e7&. 7ert6%1r==yo6%<r=r.%%%&%6.r=rO$5+=1er1%o   76.reee.63=1e7 <5%:=r=9o*<y7r.4*.r=rO:w>q;;o OrerX->2reet0: Orey.qqXrer= 6$2r7r1#3+71ey1#o   +;::wq+=2eret,o -,+=6@X ##< =9X*-9+;,Or9rX::=+ww+9>:91e7#< 79X43##3@1r7r8qwOr9rXw:Xrr9rw;1y=r1w0o Orre>;qO 9re=%4<y7y.4&1r7r&5%%&46Or=r7>*4 o%*7+5554&671e=r245+763.r7rO$5+71ey1%%6363Or7re$&X <rer.6% Or=y<5%=+&5+76e+3&&1+5Or=r.$5     +36&%*55555555&5&5&&&55555",
+"555555555555&555555&55&&&$e+55+ 55115>r.5X 2&: e:6e+5,%4%e+$* 7;5%=rt&&>$*%e+5<rq5. X*t t%+255&%%%rO3oy54+ <6< &%X $*%r+56+r&&=r.%17%629,$&%t t5+2*5r<6or:00ww;o 1,q22wOr:;9Oq: et;e+q;e+ww+ @#0##o @#+ <$o 6-+9,;w;:;:+ <;tr+qo :q+=*#X 3#71#@#$>9+;. .0+2ww=+;:+=:w=y.-*714#$####3# <@#8-. .>+20:r2w:;;Oyt>trOwo 2qt o:t oqt2=%t t%+264 <45%%&*&6t o%5724& o%$=+&*#8&47e.%. .5+756r<6Xr5&+ O%< $%%*4*:5&> o4o 14%2246 =q5Oy%%=+%6+7%<r63wrtt t4+2&545%Or.5*%5$5&555555555&5555&555",
+"&&5&&55&55&55&5&555555554t t%6o 56rOXo9+6X 45& X&3=+5%5tXe+*$ o*%&=+5&%66to9+6216%$ X$OeooO &5%&5. oXo X%+e4$o %5o &5. w5%w .&71$&+=&$r<56%%OeXoO %. oo< o;,q;qo q0>o q22oo29;q <;w=+w. .>;o $##$XO #4+e#@X -;+9;>q:0,;+9:>0+90o :q+=%#X ##1rX$@*-9+:OeooO ;q9+;;+9w09+w0-2rX#@####@#r9t#$8OeooO ;X .0q:;21:0q12qoyt;q o:Orq-,+=*OeoXO %6eet%&%53&%O9*6%<r55 o5*7+%3*%3*=+5%57+4+=&. Xoo o4+e5%o *&55&55$.X o&X &%&o &5 o$65 o6=+%&+=%: <*<16O9ooOy%5*5O o655%66555555555&55555&5555",
+"&55555555555555555555555&X %5%X 5% e=7=<6o 645 o567+*:7y=r+%& X$5%7+*45:=r7r+*7+%45 o6+r77==54*%&o 7=77.%+76*X *5X &6o 656& o5=+55+764 X&&&5+r7===%o 7==9X:0w;wo qqqo >=r=9=1>; o,:9+qo ,0-X @4<r99 $#+73@o 0,+=q0wq>0q+9;;;+9;o ;:+=&#X #4q1 9t6w=+q+r9=990:9+:>+=0>9+,,w,1 et##4#%#t7 2#4+y==9=wo :;>:;9+ww>+9qo q>w oq+=>,;+=6+r==7=6%t= 25%6655+7%5&X %& o4&=+6555%%=+*667+&+=5X =777.%+755X %4%6%6.rr= o5o %5%o %$ X*%& X57+&$+766123r.*+y====*44.r<%%%%*%45&5&5555555555&55555",
+"555555&555555555&55555556o %6&o *5r<%*$65X 654 o%*=+527w$=+45 X&5&=+%552=w%7+41265, o%<r*5%563634t t%46%6+=6%X 55X 44. :$6, .*7+45+=$6r<4%6%<r*$&4*tyt0>0:::;w:o ;;:Or022q;,;;: oq;=+wo :05X #t <3X 3#+=#&o ,0+9;q,00>w+9:,q22;o :;+9&#o ##3#0e2%q9+>Orq:,0:>=+:019;;9+:>>08>92#3#####3.rO4<e,0::;. .w:0:21;;012qo qq: o>+9q0:+98<r46%6%46%.rO8$6&%Oe&&%<r&5 o64e+55%5&%=+4%%r<5+=%t t&%65&+765o &6%554r14% X4o 5&5<r8$ o4*t t*7+%81=4%o <76&<r&5555*:r25&&6%5&55&555&555555&5555555",
+"55&55555555&5&55555&555&45rO&q= %%+rw%6q5o &%*yX&3=+&=1&,9+6& o&54=+5&671&>e+%or<<7 o6wrO%5>4*%*&%72%&%w%+75%o 55X &*6r+&&+r$5=+&5+=6$+e>&%,;rO5%;*%=20w:tw;;:0o <;>=2wo Xw:t:; oq>9+q0rO8q7 3X 0#< @%+7%8o q>+r::0;>>0+r.:trOqo -:+e5-e #3w##12&:9+;trO:0tw0=1wXr9>;9+-;,t0812###3##0@&9O#wrO,-t>>=2q:t:Ort;trO:o 0ww o;X XqXr=8,rO5&0&5q55eO46455t o3*=164 <4< +&&5*$6=2,&o t4+75672%5%w&+=4*X $&*$%6 <5t o%o o64=14& +*$+r44=1*.r=66%rrO%%>rO%6w$;e25&%448$4655555555555&55&55555",
+"55555555555&5555&5&55555&5< 7rO 54&2r7rO5X 5%% X56=+5< 7e1r<5 o55&=+55%< 7e2r<6<=2. X&%ore=r6%$655ter=y.6+=5%o 55o *54.reer.6%=+55+=5&>7r=r.5ore=r%*ter9rXq>;q:o =eret>;O 9e2q> owq=+::O =rO #49re1ye@+=60o q:.yeOqw;0>+rr9r2w:o :w.rerO #329er.*09+:;ore=y0:< 9e19qq=+:w07eer.@####3r=ee0##ore9r;;Xrr9r:,1r9r1;qo w;: o:;2r9e1=-&or97r5&r=re0*%64*4<r7r7>&$1y92=+%55%6%7er= <56+76$tee=r.3+=5$o 56$5&41r=77r.o =9req55 =eer.$*< 7e1=546Or&&55ore7r5o     +5%&%55555555555&5&55555&&",
+"&55555555555555555555555%*6to:$&55&6tow$555&555&4*5$56to5&ow65%5&656%555to&%X,$56%t ,5%&5X.465455%6$.X%6&55&555554&*$5&5Xo$&*%%%555&&555.Xw6%&5o.%%&*-Xoqw:;:q;o ;XX,:;:qto.q:q;::w;q:;;tX0#@#$#Xt#t.#4&-;wwqqqtotw;;>0+9wo.0qqqw0:,to-##3##.X-#&;,q:qq:oX,;wq.o::q::qq:qqwXot&3###$#3XX#@#36*oX;w;;qoo>;qw.o.0:q:qqqqq:qwqXo;w>0*55X.55&5Xo5%&%6%6%5,o.5556&..&55555555.:>o:&%5%5&5&5.X&5&555555555&555..&,X5o &..%5&% otX&6%65to$*56&&2O5%55&5X.&5&&5%55555&55555&555&5&5555555&55",
+"5555&5555&555555555555&565%4*5&5$6%646&&5555&&555$&&&46&%%5$54&$%$&%6%*%%&5&54.1X<9=&#85&5%655&%556%%&5555&5555&4*&35*555%&56%&&55555555%5&5&5&&&5*&8;,-:q:qwq>o :w;-q>wq:q;w;:>>00>-q>0%$3##3##$####@%-qwqq;:w>:qwqw;>+90w;:>0w;qqw;6####3#33@#&;,q:qqqq,;0w;;>::qq:::q;>qq>;8%####$####3#@#50q,q;>;qq;:q;;::ww::q:q::q:q;0>;;,w5*6$6$&%&%&45%555*4&3&5%54*4*5655555555%*4&54&&6%%&&#8%55&55555555555555&%#*&X $663*55 X4*%%*$4*$&$&$5wy:55*5%&%8#&6%%&55555&555&5555&555555&55555&",
+"&5555555555&5&5555555&555%*6$6%5*%%*%$6%55&&55555*4&&%*45*%5*63*6665$64*&4&465>17=+:%*33%6&%&4*55*%**4&%55&55&556#*5&45&65&&#5&455&555&&&%*&554&%&$*8;::;0:q:q:.+:q0wq;;0wq>0qw;qq:ww:w85@3#4###$@#@#5*-,q0q:;:;;wq;qq>oO,;;qq;wq,w>q6#@$$34#@##6;,q:q::;;>;q>0wqq:qqqq:;0,::,-*$####$#5#3###68q;:w;w;q::;qwqqq;qq:::qqqq0>::,-,:8564*&4%&%&65&5&%&5&63&&*55&5%55&55&555&56%6$54&5&5%&&&5&&55555555&5555%6&%56t+6%56*%%+t5$&%64&4&65**$.<6&4646%56&%5656555555555&555555555555555555",
+"55&55555555555555&5555&5&&4$&5&&44*%5*%&&5&55555&4*$%&&6&%&$5554535&&6%%*%4&365$&445*%5*5&554&&56$%556&&&55555&5565&$5%5%&%46*$*55555555&4565%*3&$&*-:>:w>::0wq;0,;:>0wq,0>w0:w:q>0:q0-*#%@@3#$#@%###$8>q:>w;;>;:;;>:q0q:-:wqw:w0;q,-*@3@#3@3$@#&;,:qqqq:qq>w;qqq:q:qqq:>00:q::-5##$##4#$#$###8-,q;w;q:0;w;0:q;wqq:::qq::q0>0;;,;-*#&465*#*%455%55%5$5*4%$5%%5*%555555555$%5&6%6%5&5%64455555&5&55&55&55&%6%$%*%*5%%&&&6%%&46%%*&*463&4$%%*64*$&$4*%5&5%5555&5555555&555&5555&555&55",
+"&5555555555555&555&555&5&6&&&$*%5*5%&5%6555555556446*%%%%55*44*&55*35&66%%*$&6%&%56&%&%56#6&5&%&&45*&&&$555&5555%$&%66&5%&4&55545555&55&56$55&56&%**-wq:q;0,q;>;:0::0>;0qw0q,0:q;qq;>,8&##$4#3###$#@%80,w:0::qwq::q;ww:qw>qqq:q;>:0,w&#@5#$##3@#&;,:::qq;:;q;;>;:qqqq:::;,::qw,-8#$#43#####3#%$-q,w:;>::;w>:;:>;q::qqqqqq:wq0ww:q-8*6&44%%&5&465%&466%5%6&6*&44*555&555556*#5*%5&6%46&&*5555&55&55&5555&554**&$&%%5655&4&%56%5&%&%%*&4*&6$%555%5*66&%%6&555555555555555555555&5555&5",
+"5&555&5&5555555555555555*$5*54%&4&%*5%6&5&&555&5%**%$*56&%6%&*4%5*%&5%%&5*$6*44555%5%%6%%8%%&5554*6$%%4*555555556&6&45&&%665$56*5&555&5&4&%55%..%5*8q:w;;,qqq:0>qq:qq>>w::q:qq::;>w::;-##@3###$##@#3*-:wqqw:q,0:qwq0:q;;;q:q0;:w0q:>q54@##34$###6;,:::::;q:qq:w:q:qq::q::qq:::q>-64##3#$3####$@8wwq0wq0:>00wq;;;:::qq:qqw0;q::;q:0854%46*&%%54*4*&&%&$464&%45*%555555&556366%5&%%&5&*$%%555555555555&55555%535*%&&545*$654&5$&65%&&6#6555*%6%%&5%%3*6554555555555&&5&5&5555&5555555&",
+"&55&&5&&5555&5555555&555%&&%&*5&655&%6&455555&5&55+7*54&5*&$*%*66+=&566%4655464*4%*4*$5&5%%&$&556%65%64%55&5555&4%465&57+5%5*%5%5555&55565%$*<r.&$t+qq:::-0>q;.+:qwwq;;Oow;;;wq;q;9+>-+t#3$@$######3*qw>q:>0oOwwq;w:;;w::;;w>q;q,0q,0*###$##$$##6;,:qq::wqqqqq;:qq::qqq::q:q:>w,q8###3$@##$#3@#6-q>q:;ww->w;;:q::q:qq:q:q>;ww::q,0-&&5*$3&&%*54&&4&&%665&%56%&6555&5555&565%4&5&*54%65&&5555555555555&55&4*36*3&456&&$*5*%5%*4555%55*555$5&%65$*5656%$5*55&5&555&55&55555&5555555555",
+"&5&55555555555&&55&55555%556&$5&%5%564%&5555&5&55&+=%%6564$&55555+7&%5555&%5%&%%55&54*5%&:o&&$*5%%&55%&5555&5555&*%%6557+&55$5*%&5&55555%&6&q2.%65.=,w:qqq>;0>X9w;.X;::1O:q:>0>q:;=+08=.#@####@#3##&->>.X-:qO1:;;;qqwqqqq>:;q:w::0>>q&#@3#3##3@#6;,:::q:;:;:w;:q:qq:qqq:wq;w;;,qq-6####$#33#3#@$8;q:::;:q:qq:w:;q:qqq:qq::qq;w0::,855%&665%&%%*5%&%65%&%555%555%5555555555&%&%&%%566$4%%55555555555555555%55%5&%55555%5%%&&5&5*5&555%5555&*%%*$5%%%4&6&%555555555555&55&555&5555&5&5",
+"555555&55555555&55555&55%5%tot%&55$*54&&55%,.%&%63+=3*%5ot*5%55&5+=5.o&%56%tot%%%5*%$55&&X 5&555.X>64*$6%..%%&4555&5tX&=+*&%wow65%%55&455o%65..%5&*;,wq:0XXq:0::::+9;;:;:::qXo.;;:9+;*3@###XX#3##-Xo0,q+=>0>:wqw;:oo>::qq::o.:qw0w;>q&#@####3#@#6;,:qqqq:qqqq::qqq:qqq:q:qqqqqq:>083#$3#########*->w:qwqqq:qqq:::q:q:qqq::qqq:;;w>0*55&5555555555&5&555&5555555&555&555555555555&5555555555&5555555&&&55555&555&55555555555555&55555555555&5555555555&555555555555&&555555&55&&5555&",
+"555555555&555555&&&555&56*1r=r$&% o#*=+%5 +91%&5%8+=*4.y7y<**$&&4+=1ere>5&1r7y1**X %*& X6   75,7r=r<%%+=1er1*%*%66%1r=rr+$5Or7y.6%*$&5=1e7*q9er1%*o q>+92er1:>o wo y +q=+;wye= <q>=+-6 X3tre7+3#Or7rewo   +;+90>XreerX:091e9 <:0w:>,0&#@####$#@#&;,qqqqq:q:qqq::q:::q::q:qq::q:q>;8%############*-w:qqwq:qqqqqqqq:q::::::q:q:q;;w>0*5&5555555555555&555555555555555555555&555&55&555555555555&555&5&&5&555555&55555&555&55555555555555555&5555&55&555555&555555555555555555555555555",
+"5555&555555555555&&5&5&&&# <%%6%5 X55=+6% 7>%&*$54+7%*r<*or5%6*4&+ <*:eO4<yq5:r<&X *%$ o%o 6551=$*o t%+ <*< 6$%&5%<y:*tr+5t t&+24*%%&%=rt&%21$,r.&o ,0+ O>< qwo :;+9qq09+q:t>,190w9+-5 X$+e33###-$5t o;+9::;+=q-r+w;+rq>9rX:19q:qq;,06#####3$#@#&;,qqqq:::q:q:::qqq:::qqqqqqqq::,:-*3#######33##5-:>qqqqqqqq:::q::q:q::q::q::::;:>0*555&55555&&555555&55555&55555555&5&55555555555555&5555&&55&55&55555555555555&&&5555&5555&555&555&555&555555555&5555555555555555555555&555555&555",
+"555&5555&55555&&55555555%8ret&&%5 o&4=+$5 o4&54&56+7&. oXX o%4*%5+=5%%+7&21555126o $%& X%X *&%r<*%5eO*+e5%o 4&656411%45=+5OeooO %5556%7+&5%rOoXe+8o ww+e:;< :qo w:+9>::9+>0>to29:;9+83 X#< O#4$#$4.o o>+9q:q+9:X t;qt Xq91:0+9q;q:;,;*######3#@#&;,:q::qqq:qq:q:q::qq:qq:::q:::q>:084##$####3###48:w:qqq:qqqqqq:q::qq:qqqq::qqq;ww08&5555&5&55&5&5555555&555555555&55&55555&&&5555555555&5&555&555555&555&55555555555555&55555&5&555&55555&555555&55555555555555555555&5555555555555",
+"5555555555555&5&5555&&555$t= 2%5$ o4%=+&4 X5&6%*4&+=4o 7===.56$&%+7&&*+=5=+&5&+=5X &&6 o6X 44& o$56=+5+755o &4&%557+*%*7+4+r777=*5*%%%7+$&5 e==7<6o w;+9q;o 0wo w0+9q;q=+;w1 9r=qq9+*# X4#OrrX#$.er9 o:+9;q:+9qo ;qq: o>9+q:+9qww;,,05######3#@#&;,qq:qqqqqqqq::qq:q:qq:qqqq:q:qq:q-5##$####3###380:w:q:qq:::q:qqqq:q:q:q::qqq:qq>;8*5&5&5&5555&555&55&55555555&&5555555&55555555555555555555555&5555&5&5555555555&55&55555555555&55&55&5&5&55555555555&5555555&55555555&555&555555&",
+"55&555555&555&5555555555*55&.rO*6 o4*e+6* X644*$6%+=6t t%%%&*%5*6+=5%&11%215&&12&o &5q X%o 56$y<&5$eO*+=&5o %*%&%&=+%55=+6<r%&*33&4**$7+&*$r<45&&8o >q+=:qo ;0o ;w+=q;q9+qOr.;+9:q9+8# X#%@%2r##r1-q oq+9ww;+9;X t:;t X0=+q;+9q;q:-,:6#@####$###&;,:q::::qq:qq:q:q::qqqqqqqqq::q;qw0*##3##3##3###*0::::qq:q:qqqqqq::q:q::qqq:qq::>;-*&%55555&5&5555555&55555555&555555555555&55&5555555&&5&5&55555&&555&5&&5555555&55&55555&55555555&5&555&5555555555555555&555555555555555&5555&555",
+"&&555&555&5555&&55555555$6w55eO%6 <4< +5% o5*&&&5&+7%6726*4>66%&3+et6;y<*<r,5;y<%o :61yo%o t$81=%&o t$+=&5X 5$%*&%Or:*< +5:rO45>55&%%&=+34*+r:*4;-o >w+9:wo w,o q;+rw:q9+;+eqq29q:9+%@ X#033or#3 <q. o;+r:-w+9:;r+;:+r;;=+w;+=:>OO:,;5#@####$#@#&;,qq::qq:q:q::qq:::q::qq:qq:qqqq:wq83#######3###&-qwq:q:q::::q:qqq:q:qqq::qqqq:qwq-85%55&5555&5&555&5555&&55&5&5555&55&55&5555555&555&55555555555555555555555555&5&&5&5&5555555&55555555&5&5&5555&55555&555&5&5555555&5555555555555",
+"555555555555&555555&5555&&r=ee;&41re1=+%5 X5$&%&5%+7%&ter=r.$&%&5+rr7r1&%*1r7r1%64err< X55er1$w7r7r<$*+=%*o 56&4&3,9r917+&6Xye=r5&55&%7+65462r7rO8o wq+9q;o q0< qq.reO;9+w.ree1 1>=+6# X#Or7 <##1r9=9rX.reOq+9;wXreerX>w9+:q+9;q=9q,;5######3#@#6;,:q:q:::qq::q:qqq:qqq:q:qq::::::,q84####$######5-;w:::qq:::q:q:q::qqq::q:q:qqqq:q-86%55555555555555&55555&5&&55555&55&5&555555&5555555&555555555555555555555555555555555&&55555&555&555&&555555555&55555555555555&5&5555555&555555",
+"&55555&55&&555555555555&%&5oo5&%&4..&48%55555555555&5555.o&56465$tt5ot5&556tXt3&465ot546$65ot54&.o,5%&%&55555555&54&X.*5&46%5o.55555555&4&5*%tX>5-;w;qqq:q:qqqqq:q;totwq;w:tot>X.,085@#4##tXt###%.Xwtoqwtotq0w;:q:oo:0q>::q:qqq:q::,q6#@####3#@#6;,q:qq::qq:::qq:qqqqq:qqqqqqq::qqw;-6###########%8q,qqqqqqqqqq::q:qq::q:qqqqqq:q:q08%65555&55555555555555555555555555&55555&55&5&5555555&5555555555&55555&5555&555555555555&5555555&55&555&555555555555&5&&5&&5555555555555&5&55555",
+"555&&55555555555&55&555&&%&%4&%555&55&%%555555&5555555&&5&5%&56%&%%6%66%5555%$%6&&%5$5&&&&%5$55&56$&$655555555556$*&&5$&&4*55&4&5555&555*6%%555%&0;w;:qqqqq::q:q-w;q:0>:q;;0w;qw:::8$#3@########*q0wqw::00q>0wqq;:;wqw:q:qqqqqq:::q,q&#@####3#@#6;,qq:qqqqqq:::q::q:q::::q:qqqqqq;w:-*###########48q,:::qq:qq::qq:q::qqqqqqqqqq::::0-5&&&55&5&&&55555555555&5555555&5&5555&55&555555555555&5555&55&5555&55&55&5&555&&55555555&5&55&555555555&55555&&&5555&55&555&555&5&55&5&55555555",
+"555&&5555&5555555&55555555&&&5555*%&5465&5555&&555&5&&55*3*&%%%6%5&%*$%*&4&*&5&6%&6$8*46%&&48*4&63*&56%65&55555556%&%6&%55$4*%&*555555556#66$&&&50q:qqqqq:qqq:qqwqw>;:qqww;wqq0:q,w6#####3#3%#@38-wqw;;ww>>0>:;q;:0wqqw;:q:q:qq:qqq,;6#####33###&;,q:q:q:qq:::qq:q:q:::q::qqq:q::qwq0*######3####$*q,qq:q:qqqq:q:q:qqq:qq::qqqqq::q0-555&5&55555555555&555&555555&55555555555555555&5555555555&55555&&555555555555&555555&5&555&555555&55&&55555&&5555555555555555&555555555&5555555",
+"55555555555&55555&5&555545&%%&5%5%%46&%$55555&555555555&%*$&&6$&6654%&545&43&546%54&44%&%5$6$4%6%*&$5%5555555555%&&4%%*5%*5*#4&4555555556%%5%5*%5;:::qqqq:q:q::q:q:-::;w;0;qw::::>0*4###3#$#@@#380;,q;0>0>0::0ww>;:00w0::qq::q:q::q,;&#@####$###6;,q::qqq:q:::qqqqqqq:q::qqq::qq:q:q08############*;,qqq:qqq:qqqq:::q::qqqqq:qq:qqq;-55555555555&555555555&55555555555555&5&5555555555555555555555&5555&5&55&&555555&&555555&555&&555&5&&555555&55555555555555555&5&55555555555&5&55",
+"5555&55&&5555555555&55&&6$55&5$65&*%&&4*55555&555555&5556665%%664&%66&46%566%45%6484%6*46$84%**$%&%6&%&45555&555&%*66%6455%%**5555&55555$6%&65&55:>wq:;qq:qqqqqq;ww>;>:0:q>;0;,00,;&#####3##33##8:;>-:,;>;w,;qq:0w::w:::qqqqqqq:::q,;6#@####3#@#6;,qq:q:q:q:qqqq:qqqqq:qq:q:qq:q::::q8############&0,q::q:::::::qq:q::qqqqqqqqqqq::q055555555555555&555555&555555555&5&55555555555555555555&5555555555555555&5&5&555&555555555&5555&55&55555&55555555555555&55555555&55&555&&&&55555",
+"&5&5&5555&&5555555555555%6%55%6%&$56%5*$55&5&555555555&544&&5564&45$*466*$$**555*$6$&54&64*4&5%6&44&%&&*555555&&%5%45538%5*%55$55555&5&5%5*5$&6$5>,q:w;:qqqq:qqqw:->;qqq;:;q>:0w:,0%@####$334@@48w:q>>-:qq:0;>q:>q0:00,0q:::q:q::::,;&####3#3###&;,:qq::qq:::qq:::::qqqq:qq:::q:qq:::-############50,qqq::qq:qq:qqq:::::::qq:qqq:qww-5555555&5&5&55555&&55555555555555555555555&5555555&555&555555555&55&55&5555555555555555&55&&555555&&55555&5555&&5555&555555555555555555555&5555",
+"555555555555555&&5555555&%&55&%5%645&566&5&55&555&5&&55558$5&5&55*5%&6%4%*6%55%5%*&55556%6555&56566%5&$5555555556%%&&*5%*%%*%&%&&555555&*544*&%*5,,:qwqqq:::q:::0>>;w;w:w;;w0qwq;,-6####3#####3#->;q;q,q>0;>wqw0q:>;w;q:q::q:::q:q:,;6#@3###33@#&;,qqq:qqq:qqqqq::q:q::q:q:q::q:qqq:>-############%0,::::q:::::q:qq:q::q:q:qq::qq:w>055555555&55555555&55555555555&5555555555&555555555555555555555&&5555555555&555&5555555&55&5&5555555&55555&5555555555&5555&55555555&555555&5555&",
+"5555555&5555555555555555555555&&&%&%%&45&&555555555555&5&555%4%5&%&6%%655%%5555&555555&%5555&5&%%&%56%&%5555&55555&%5$5%55%%545555555555$&55%%&4&,,qqw;q:q::::qqwq;q:wq;:;:::;w;q,0*@###$3######->qw;q;qwqqq0w;:qqq;:0w;:qqqq:qqqqq,;&#@###333##&;,qqq:q::qqqqqqq:qqqq::qqqqq::q:qqqw-############40,w:qqq:::qq::qq:q::qqqq:qqq:qq:w055&5555555&555555&&5555555&55&5555555555555&5&&&555&555555&555&5555555555555555555&55555555555555555555555555555555&5555555&55555555555&5555555",
+"5&55555555&&5555555555555555&5555555&55555555&55&55&555555555555&55555&555555555555555555&&5&5&5555555555&&5555555&555555&555555&&555555555555555,,qq:;w:qqqq:qq:q:qq::qqqqqq:q::,0%######3#####->qqqwq:qqqqqqq:qq:qq:q:::::qqqqw;:,;&##########&;,qq::w:q:::qqq:q:qqq:qq:qq::qq;:qw,-############5-,;q:::q:qqqqq:qqq:::q::qqqq:qqw>;6555555555&555&5&5&55&55555555555555555&5&5&55555555555555555&55555&5&5&55555&55555&&55555555555555555&555&55&5555555555555555555555&55555555&5",
+"5555&555555&5555&55&555&5&55555&55555555555555&5555555555555555555555555555&555555555555&5555&5555555&5555555555555555555&55555555555555&5555555&,,:qq;w:qqqqq:q::::q:qqq:::q::q:,0%#3##########->qqqwqqqq:qqqqq::qqq::q:qqq:qqq:;:,q*3#####3$##*:,q::;:::q:q:qqqqqq::qqq:q::qqqqqqq,-###########@50,;:q:qqq::qqq::qq:qqq:qq:qqqqqw>0&55555&5555&5&&5&5555555555555&5555&555555555555&55555&55555&55555555555&&&5&555555555&5555&&55555555555&55555555&5&&555555555&5&&555555555&&5&",
+"5555&555555&5555555555555&555555555&555555555555555555555555555555555555&5555555&5555&5&55&555555&&&5555555&5555&&55555555555555555555555555555&5,,::qqq:q:qq:q::q:::q:q:::qqqq:w,0%####3#######->::;:q::::::qqq::qqq:qqqqqqq::qq;w,q84########$8w,q:qq:qq::::qq:q::q:qqq:qqqq:qq:q:,-###########@%-,:qq::qqq:qq::qqq:q::qq::q:::::>05%5555555555555&5555555&55555&55555555555555&5555555555&5555555555&5&555555555555&55555555555555555&55&555&5555555&55&55&5&55&55&55555555&55555",
+"55&5555555555555&55555555555&5555555&5555&55&55&55555555555555555&5&555555555555&5555555&&555&555555&5555555555555555555555555555&555555555555&55,,::qq:q:qqqq:q:qq:qqq:qq::q:qq:,05############->q:;qq:qqq::::qqq::qqqqqqqq:::q::wwq-5#@#3##@#5-:>:qqqw::qqqqqqqqq:qqqq::q::q:q:qqq>-###3###3####5-,:q:q:qq:qqqq:qq:qqqqqq::qqqq:ww0&5&5&555555&555555555555&55&555555555555&55&&&55&555555555555&55555555555555555&55&555&5555&55&&55555555555555&5555555555555555555555&55&555&&5",
+"5555555555555555&55555555555&5555&&555555555&5555555&55&&&&555555555&&555&5555555&55555555555555555&555555&55555&5555&&55&55555&555555&5555555&55>>>:q::::q:q:qq::q:q:::q:qqqq:q:,05############8w:q;:qq:qq:qqqq::::::::q:qqq:qqq:q::084######480:w:q::q:qqqqq::qqqq:qq:qqq::::::qqqw8############50,:::q::q::::::q:::qqqqqqqq:q:q:w-&555555555555555555555&55555&&5555555555&5&5555&5555&&555&5555&&5555&55555555&55555555555555&555555555&55555555&5&55&&555&55555555555555&555555",
+"5555555555&&5&55555555&5&5555&555555&&5555&5&5&5&55555555&55&&5&5555555555&55&55555555555555555555555555555&555&5&&5&&55555555&555555555555555555w>>::q::::qqq:qq:qqq::qqqqq:qqq:,06#######3####8q:w:qqq::qqqqqqqq:qqqqq:::q:qq:::qw>w-8%$##4&8-ww::q:q;qq::qq:q:::q:q:qqqq::q:qq:q::8############&0,:qqqq:qq:qq:::q:q:::qqqq:q::q::-555&5&555555555555555&&5&55&555&555&555&&555555555555555555&555555&55&5555&&&555555555555&55555&&5555555&5555555&5&5555555555&5&555555&&5555555",
+"555555555555&5&555&555&55555&55555&55555555&&&555555555&5555555555&555555555555&55&55555555&5555&5&&5555555555555&5&555&5555555555&555&5&55&55555q:>qq:;qqqq:qqq:::::q:q:qqqqqq::,q*$###3#######8q:w::qqqq:qqqq::q:qqqqqqqqqqqqq:q:::>q0-8**8-0q>wq:q:q;qqq:qq::qq:qqqq:qq:q::qqq;w:;8############*0,q::q::qqq:qq::qq:q:qqqqqqqqq:w:-55555555555555555555555555&555&5&5555555&5555555555555555555&5&5555555&55555&555555555555&55&55&55555555555&555&555555555&5555&5555555555555555",
+"555555555555&555555&5&555&5&5555&5&&&555555&&5&555&555555&5555&555555555555&55&555&55555555&&&5555555&&5555555&&&555&5&555555555555555555555&555&::>q:q;::::::q::qq:q:qq:qq:q::::,;*$##3########*;qw:qq::q:q::qq::qq:qq::q:qqqq:qqqq:::wq:w;;:w>>q;:q:q:q:q:qq:qq::qq::q:qqq::::q;w:08###########3*q,;q:qqqqqq::qqqq:qq:qqq:q:qqqqq;-555&55555&555555555&5555555555555555555555&&55555&5555555555555555555555&555555555555&55&55555555555&&55555&55555555&555555555555555555&5555&55",
+"555&55&&5&55&5555555555&5&&64%5%&%6%5&5555%5546%5&&&%6%66&3&5&$&55&65%*%%5&5%55&5&5%5&555556%$6%&6$%65%&%&&4&%%646645&4&6%&&55*$5555%554%&&%5&5%5->>;::;;wwq;>0;;>q;qq,0w:qq;:w;;,08%#####3###@$6-0>q;:;w0wwq;>qq>qw;:0>w0w:0q:qq;w::qw:w,:,,w:q::0>;::q>q;qq:;qqww;q:::qqq:>q0wq>q;-*###@4##3##@4*w>:w;;;,:;:q;;:>0:wq:qww:w0w;:::;8555645*$&45%*5&&5%6556%5&$&%6%5&%5&4645%&554556%*%&6%%&&&6%554&5%*%5556&%&5&5%&%6&%55555&55&5555555&5555&55555555&5&5555555&55&555555&55555&555",
+"55555555&555555&555555&5&5%5566665455%55&55&*&3*45&53%*55566%%*%&5&4*545*4*%654%%4%555%54&*#6&$6%%*6$5*&5%56%6&466556365&6%5544*6&%*%&$65%6%54&*&q0;w;:w:::;:;:wqw;q:::q:0:qw;q:w,q833@4#$######*-;,w;qw;w0q0>:;;:0qqq>qw:q:::wq;,;q;;>;w>q0;0w:q;>qq;:00,:q>q::qw0:w::ww:>0w0qw;;,q8&#@#$###3###**:,;:q>:;q;q;:qq;qw0q;w:-wwq;>w0w-86$*5%&4&&**%&$5*%%54&%5566%66*4*%&%%&6%5%556%5%*4&5&5*5$*$555&56&45485$*&66%&*5644&55&55555&55555&55555&5555&&55&5&5&55555555&555&55555&5&55555",
+"555555555555555&55555555%$&5&&3$&36*%&54%%5%35*5&645&*5$%635&4%6&%&&55&45$$*455*&&464*5&5%$**%&%5&45&4$5%%%*63&*54&64*%55%6%&5&46#64%*%55%4*66$4%-qwqq;qq:0,0q>0:0,qw;ww;wqw::;:;ww8%##@####3##3$80>;w>0::w;,;0:w0ww;::;;q>wq0>0:qq;,0;w0wqqw,0>:qw;0w0,,0>w0qqq;:>q;>;;:0;q0:>qw:>q-5#3#3##3####4-0;:ww0q:;;:q:;w;;:w:;;ww;:w0;w>:085*43565%5#&*5%&66&5*%%*5$5555&43&6%554&$*%5%6*$4*55*#$5&%&66$5%5*&%65%%55%455$5$65%555555&5555&&55555&555555555555&555555555&&555555555&5555555",
+"5555&5&55&5555555555555548&%%%&&%&&#55&&55&&*4&%46635%$6555&%5&&%5%%%6%&5*%$&54564%655&$&55456%6&%5&&&56*%*%466%656%*46%56&&4*#*$*%6&%%5%&6%6%6&*8;0,:>0qw>0>q:q;>0;::0q>:0>:q:;ww006@####$#####3-w>,;;wq;:>0q,;qw:0q0qq::;;q>->qqw0wq>qww:;:0qq0wqq,w:;0wq:0>qq:w0qw0:,;,;w>:0q:>,0*3#####3#$3##*8,,,-:qqq>wq0>w0w:q0;,w0w;w0>w-,q-85$6*5%&%584$55&$56&44*5%*%%&&*&&645&5&55&4&4&%6*#5%4*6&%655%65554&%&3*5*%4*&$&5%6%&&5&5555555555555555555&5&55555&5&5555&55555555555&5555555555",
+"555&5&55555&55555555555&&4:1=1<%5<X**4555%5$%&&&6$&6*&4&6$5&5tt4o%%*5&*%45565&44%555*46&&5*654%5555*%<o&$ X*&554$&%&554&$5&5%6*$&55%654*5&4o17=1X--;wq:qq;q:>-qq>;wqq:;:;q>;0;qq:>,8*#@4#@%#33$##50w>>;:wwqw;:;q>0;w>q:w0q,qw:>q;q:>;:w0::;;:>:;,;;w0;;:wq0www0>:q:q:>:0;0>;;q:>;w>q*#344@##X<###6Oo;;:;>qq;09+w:>;:q;w00>w;q;w0,,;884*5&q1=2<55<o5&656$&65%6&5*$*45 X%*%6%4%*5&4&55%65*&554&&%&%56%*%* X*t+3&&$5&%56%%655&55&555555&55&555&55555&5&55&55555555&55&&5&55555&555&5555",
+"5555555&5555555555555555%5e2XO+&41<%%*46%*4&6&%&55$635*448%54<<&7&65%455*#*%6%&$&%*5#*%555436&&55&%%&=+56 o5%55&645&4*%55%&5%5%*5$6&4&6354Or+o<12*->::;;:;:0:,::qqq:0:,0;wqq,:>;q;wq843.t3#@%####6-:w0::0qww;:w:qw0qw;0::q0:q0,;,0w;qq;w:;>q;0towq>q;q;w:qq;>0:qX.>:q0;;:;::::w0q,q-&#@#####+=###8=+w>w;q:::,=+;;otw::0qqqqq>wqwqq:8846%%e2o<+551<53*5#*4&46&35664&& o64*%58&3&%54664653%&4&*455&5%*#55 o4.7655554*4564$55555555555555555&55&555555555555555&555&5&555555555555&55&5",
+"555&555555555&5555555555*X &546$5453*%:o:%%5&5%%&&%Xt&&..%5%5&44&464*,o.$*&%tot55&%to&&&%*5>X;%5%%8$&=+5% oqXw%554&w.*%6..4%*54%..5%*$&6&t .&%$%4880.o.:;>;:w.o;qtot,;0w:to.:0;w::,w8%@7+##$@;Xq@38;q,oq>>0:q:q.o:;qqq.oqq:wqw;:0>;w>w;wq.o.w0o q:;qqootqqw:0..q9+0:0,tot;q0;q0o.,-83##3#5#3O7$@%-=+>;q.oXw;-9+0>y<;0;,tot:q;;;qo.08*5%&o %%5&%6&46&%>oq*456%6&%6..$ o55%oX:5&5%5*6554&&6$*4&$*65%5*..& X*54566&..$&&55*55&&555&555555&&555555&555&5&5555555&55555555555555555555555",
+"&555555555555555&55555555t <&5%6&=+5&<y7r.&&$%5&71e= <19r156+7*&o &5< 7eo5%1r=r45&2reew%% Orert65*$557+5& Orert66 +e1%:eer1&%+=19y15%&5%51=&4*%6&*-1y9r1w;o OrreXrer.wq Or9 O>q o>>9+3+   X@<r7r.$6=1e9:0:0>o Orre:;w2reet:; oqq9+;qq;:q1r9rqw   9qX 9er.qo OeO+   o>Oy=rX:q=1e= <-8##3###3#+=##%09+:w2r=r1q>=+:= y :qOr=rXqw91e9 <*&565t <5&&%67+45Or=r.646%&%wer9= X*. 7ert%+     467+55+=555%%&>9re7 o%X 45:eer25&*6$555&5555&5555555&5555555555&55555555555555555555555&5&555555",
+"55&55555&555555555555555&$< 1:%65=+%t t5+2&&5$&5=r.%1 <&< %%+=3*o 6&=1*$&4* <*6&5<e667O%5 e>%e+5555&$=+&& e>%9+54 =w%5125wy.5+ <&o %&5&56=+656%%&*<rt:trO0< 20t etqe+:; =tqOr:- o;,9+*#=+##t t3+2#4=r.q;wqq;o 2qt owOr0w9O>q oqq9+:w:;:: <;;:0o w;qt::qe+:o 1;wq=+0>. .w+2wq=rX:19-%#@#####3+r++++r+qwtq;< 0:=+qw o,0. .0+2;:=rXw1=8%&%%%O 1:5&&7+%t t4+2&&5&$6176%o o%w&5%e+$*5&:r1&6=+6%+7&%5&%&17&5X o&o &521%qr.%&&55&5&55&&55&&&5555&55555555&&55555555555555555555555&55555555",
+"&&555555&555555555&&&555&5$X=r<55=+5O9ooO &%56&%7+55+=55X 65+7*$o 5#1rX*%%4ret%&621XX2=%5 <%*7+&&4&%&=+&5 <%67+&& o&56rOXoe+4+e&5o %5%5547+&55*%&521,;>12:o wqw o::9+0: oq>; o> owq=+8$7+#$OeXXO @&7+w>::qw;o tw0 o;22<o2=;; o:;=+>;wqw;re.qq,o qw>;w.oe+wo q,0:=+>0Oe<oO :q91qw+=6%34@#@##$+r++++r+w->:oO :w9+00 ow>OeooO >q91>q+=&*%4*%&X=r<%%=+6O9XoO %%6%5%rO$&% X*55toe+4%&;e7*54=+5&+7*5456%rO$*4 o$o %%rOoo9+5%45&55555555555&555555555555555555&&5&55555555555&55555555555&5",
+"5555555&55555555555555&5%**5*+r:$=+6+r7=77%%&5&57+56+7*%o %&+=%5o 5*w1 9t*%t7 24&=r=97164 X%*7+%4*%657+%% X%*7+%5 o6$& e77=O$+=56X 55&&%5214564&#*7+,,q+=qoy,>0 o:0=+;> o0:> o; o:,=+-47+##+r=7774@7+:q>w0qwo w-w o>=r==91w: oqq9+;;www;.= 2;-o :qqt9r=r+:o :>:;9+0:+r=999:>=+>>+=%###$334##+7#&8;=+:wOree :;=+:w o0q+r9999qq=+0q+=64*%$5&*4+yq&7+%+y=7776%6556 o&5% o3q=r=r+6%52e>$6&=+6%+7&&$546 X%$5 X6oy8$ e777<%6%655&55555&5555&5&55&555555&555&555555555555&555555&&555555555",
+"5555555&555555&5555555&546%$55 X&=+$<r&%6&*554657+6&+=%5o *%+7&6< &%64we26%$*.rO411%%&%%5 o&%=+*565$%=+55 o&%=+66 X*%3r<5363&+7*&o 6%%655<y;*%$&*521w>q12qo 0;> o:,9+:w o,0. .> o0:e+057+#3<r@3#@#@=+0,:;>>;o ;w: o022;qq0q; oq:e+:,-:qwq:Xr+,o qqq29tq=+;o ::->=+::Or,0;>0w=+w,+=5@#4@##$##+7#%0:9+0. <:o :>9+q: o:0Or:00:0:9+q,+=65&4*&$3*4yo67+5<r$65465$65$ o365 X517,3=+5&+r.%&667+$51=%5&5&% X*&5 o4o $8r<%&*$546&&&&55555555555555555&5&&5555555555555555555&555&5555555&5555",
+"&55555&555555555555555556tt&%X t&7+5wyO&5:4%%*3&=+55+=55X 55+e5we &&q&%12%6q%%eO6X .%&,5% X54=+5%%&5*7+5% X&4=+54 o%**+r>*%w*+756X %&*45%>e2w%*wo4<rt,trO>o wqq oq;=+q; +0q+r;: <;O +w8=13#-rO33q@#=+->,w0;:o ::0 owo X>wtq, <>O +qq:;0wtw:eOqo .q>91,te+;o :>0;92:>trOqwt;w9+w,+=##<<#$###4+748w,=+,o t;O :;=100 OwwtyO>0twq9+wq+=5*%&%tt&4o t%7+$>rO5%,%&656522461 o%=1%we+5< .%56%&715.r=&3&&4&223*1 X%o 4&+r:%5w5&%6555555555&5&555&55&55555555555&5&&555&555&55555&555&5&555555",
+"5&5555555555555555&555&55tre=r<&49+$5ore7r6&*4%&7+&5+=%5o &4trerO 3&2eer.4*r7req56O 7e2&5 o$*=+%4&6%5=+55 o$*=+%6 X56$%2r=rO4+=%&o %$*%%65t= =7 16*1y=r1:;o ;>; oq;9+>0 9rerX:q1re2=+q-< 7.$Xre7r##7+8q>,:wwo 0:> o:;O =e2ww1ye2=+;:qwq;y=retq:er1:< =e2rOo :;>w< =Xwore=r,091,;+=@#7=##4#$3+7$-q,9+0,ere1rew=+:>1y=qqore9r0>=+w,+=*%5%5trr7r<5&=+*&or9=r5*3%6&.rer< o&< 7e1r<7     56< =91=3*%%54.reeO o&X *452r=rO6664555555&5&5555555555555&5&&55555555555555555555&5&55555555&55",
+"555&55555555555555555&55$65.o;6%53&*%*%o.6%%45&5*4$*54655%*64>X:5%*4%.o:%*45oX5%$%6qot56&%5645$*64%5%%*%64564&$6&55%&&*$tX>&55%54*%%555&55&%toow$&5*.o.w;qqq;www;qw0>q: o.ow;>:;XXww>,0&tX####X.3$3##68,:>w0>::qq:q:;qto.,q0:XX:w;;w:0,qqoowq0,;o.0>.o0:otqq,;qq:.o::wqoXw;0q,0-*@$3#@3##3###4*-,::>q0:o.:.X-qw;;,XX:>0>oX>q::;,q-6&4%&665.oq6%4%4*65$o.$6%*565&:Xt&5$$*to$5X>6&5$%*%%6to%*$*%$&*&4>ot4&$&&64&&&toq35%3*555555555555&5555555&55555555555&55&55555&555&5&55555&555&&5",
+"&5&555555&555555555&5&555555$&555&55&%*45$*5%6&5%6&4*&5%5&54&5&&5&65%5&&&%6%%6%&6&55%6%5%*55&6%%55&5%&45%6556&%%46%&6%%*5&%55&%&&$655&55%65%&5%&64%*8q,;:q;::qwqw0w:;qw o::;w;qqw;0>;>q-4#$3##@3#####$80,:;>0:q;;:q::>0q;0>w:;:q;wq::q::;wq;::;w:;q;>0>;w0>q0q::;>q;w0:q;0>>w:08####3$####3##$-w:,;0q:;::0;>qw:q:qq:w;;qw;q;:wq>>8864&%&%6$4&45555%%5%&&&&555&%66%65%56%%55&54%&%*45%&%%%&65%655544&%&64*3&65&&%556*54*%555&55&55555555&55&55555555555555&55555&&&&55&&555&555555555",
+"55&5555&555555555&5555555665%56%64*5$5*&6%65%%&55%64*555&$5&%55%6&54&&%&555565&5%564*&$*5$*&55$&&$*5%*465&5%5655&&%65&%5&&&4%655456%655&5555%6%&5*&%8;,q:0w:;qqqq;:w:q;+.:::qw;:;0,qq>,-*##@##3#4@3##348qw,q:qq:0>qq:ww:q;q>;0wq::q;>;;qqw;w:;:;w;w:::0>w::0w>;qq>q0wqw;0qw,>;85##3##3$#$##@3*-q>>w:;q:;:>0>:q;qqwq;>;qq0>q0qqq,,8*%4*%&%5&&%&55&4*&%&%55%%556$&565%5&5555&6%46%%65%6%6%56$6&3*555%6%*545%%555&%564%665%&%6%&&6%555&5555&5555555&555&5555555&5555&55&555555555555555",
+"55&5&5&5&5555&55&5555555$&&5*38%6&&5&&35464&&%55&665$$5%5&*5%6%&$%%%*4&5%%65&$&66*%%%4&4&6465&%55*$&5%&$%4%555%55&&36%%6%%%*&&556&455*$*&5%5&6%&454&80ww>:;0,;;:q:q0>::,q:w::w0>qq0:q;ww*5#####3#3#4@#%*0>:,qw;w>;;w;q;w:;;;0w,;0,-w:;,;q:qq:-;>0w:q:::0q::,;q-,w0q,:;:w>::::0*$##33$#@3#3#33*q,w;:wwqqw0:w-,qqq;;qw;:>ww;:w:;w,-84&*&5&64&%5%&5&%4&&456&&*6%$*%%4%555%5%6*#&&4&55&$5*%6*%*%565%63*$&5&6&&6%6%5&&%6&#&%555%6#&46&5555555&55&555555&5555555&&55555555&55&555&5&55&555",
+"5555555555555555&5&&5555*&%6%&5%4$&%45*&5&6%&%*5&4%*555**3&%54%6*4&6*5%%64&*46&535*&&6564*554&&55555&&5666%64*5&4&6&554&556%4&$554&553*56455%%5&55*4*0:>:;wq0>:ww-w:;q0::0w;;qwq:;:w>q,q063######3###@3$*0>>q;w;;;,00w0:qww0,q;ww;w;w::qwq;:;>w;w>q:::qwqq>::q,-q:0w;;;q0>,>;83#3#3##$333##3&;q::>;;:;qqw:w>0wq::;q:qwq0:qwqq:>;-*4464%%%65%664448455&3&&%$46&4*&&%&$*5&5%$*646%5%656365554%56%55*5&%5%&4545&&45&45&6&&6%46&6&6%55555555&5555555&&5555555555555&555555&&555555555&&5",
+"&55&55&5&55555&5&5555555%%&5$546&&&5&&&5%5&3844%4&&46&%%&*%65&5$38%44456%&54*&$%&*%%&%&%5455&6%556%5&46%644655&4&$6%4*5&*%&365565&5&4*4%5%55565%554&5-q>:qqw;::0qq>;0,>0ww;w>q:;q0>0;,qw;84#$#3##3###5@34-www,;,q>0q>qw0;;q;0w;:0w>0>q:q;w;:w;0q;;qw->;q:;:0ww0,;q,0,>0q>:,;*64#$##$$@#$@#$$-;,>q,;:>;w;;;;0wqw;;>>0q;:>w>0;w:>:86*%&%666356$5%*4%&*%%*5&*%&*5%%64%&55&4&&5%5&%6*555$64&5$&84%545&$%64%%*&*554&%4*%6#%&4**$664%555555&555&&555555&5555&55&555&5&555555555555&5555555",
+"555555555555&555555555555&<++++X%<X&55%556$&*%5&655%%5&&$&+=&%$*65%85%655o 5&$&*%5565&5646%&5&5&5$6*35*5%55&*465%55&45*$%56*X<&%4%*56565<o5&5%54%6$5*8;w:wq;::qw+92+;0:qqqwqwo w;,0::q0>>;*$##$#3$@3#@3@4$ o,w:0q;;wqq0>wq:>qqw0>;qw;:;q>;:0>qq>w0w:> o:qw:wq:0ow..w0;:>,,0-+7#######3$@#@#8-,w0;;:q;wq:>o q:q:;:;q:w:;;0:;>;w,0**+=5&%5546&tt6X**5%36%6557+5%*5%555*4&5&&665445$&555,272<%5<X&5465*5&64544&655& o5XO&%&$46%56&555555&5&5555555555&5555&55555555&5555555555555&55&55",
+"5&5555555555555&5555555&5&77+++o&1<&545654&65$%65&$6*%5%65+=$&64&4%555&$$o 45t.#&%.t45&$66%*4%54&6$&&X;66%65#6%5&&44*%&*%&&%<1%&*5%5*3&%1<&$%*$**$&5%60>>q;:>0w1e<<2:>0w>;qqqo >:;q;;:w;wq-3$@####44##3### o:,w,:0>;qq:w;q;;::qqq;q>:q>qq:w:qqq;qwqqq o;;q;q:;>90OO;:q>>q>8&+=##33#3.t#43#58q>w:::ww;ww;:o q0>;ww0>:0,q:w0q>0>,-84+=*%5&&5&5<<6754$&*5&%4&=+554&6%*5#*%55543&&6&645&$92o<+&$1<56*35%$&%*&%&6%565 o%<1%%&%*%4&64655&55&55555555&555&55&55555555555&555555555555555555",
+"555555555555555555555555%5=+55644*3&456wo>454*.Xw45*$;oo44+7$..6555:Xo56&X &5+=6%5=+*#66to.4*5%tXt%65 o%55%to5665%**5%4Xt4$*5&5%45%Xt*646$&*5to$%%&&%wot0qwq>q; o:q0:w;:XX>qwo 0;::>q0qq>q;-%#@3Xt@###$..@ X8q,XX;qqw;q.<;>0w:0>:w.o:;0q:;;o.;>qq0XX0 oqw;:Xtq;qwqw:;w,,oo,#+=####$#7+@##5*q,wqoo0;:0q>o.o >qq0o.0q;>0qXt;,0:w:,Xw+7%64&5X*4565%6&5*$to.5%7+5&6555%to5&&%*5wo;%54&&5o *%%55&55&%4,o>&%55%&&36..5 X&*%&55&Xt6%%&5555555&555555555&&5&55555555&5&555555&5&555555&55555",
+"555555555&55555&5&5&555&&&7+564&%7+45 Orert5&ee=2&541 7=+5+72er155Or=re5%oy5o   ++   o52r7r1351r=r5%=   562r9ew%55%$*.r7rO55+76%=1e7 <557+4&< 7er+%$Or=rXq:q0::r1q;>0:teer2qqo q:2et:=+qq+98*=1e7 <#30er97 X*,eer2:0o Orreqqq;w;;O 9er+::Xr9rO;qtere9 o;+=29Xw o:w9+>,Oye=2#+7#0r2#+   X450w>XreerX>;Xrer= qqXr=rO>q+92=X;q:>:O =re=&5=1e=5+=5%o 55:=r=eo5=+5. <561r9ew%% Orert66&45t <655&%=+5&<y7r.*45%6&:ere= o%+=6%.r=r<%*%%555555555&&&55&55&555&5555555555&&5555&555555555&5&&",
+"&5&55&55555555&5555555555%77++<5%7+&% 9w5e+%o >%%64<r.55&%+ <6o 55:55> X5o 55+=&6&7+&%%>6%< %% <54*45 o55<e&&7O%%6%5%r<&or5&+=*4=r.*1=%47+&t o5>r+&t t&+2,->0q;Xr9X:::22qtrX;o 0OrXw09+wq+9:87r.#17##1=3#X X#22wtrX:o 2wt ow-qqq. o;tr+:wrOqorqw19:wo oq+ <:;w o;;9+:. O&#3#+=#290%#7+##%8>>,r+qq+r:we+q;+ w;rO:orq:+ <;:0:wwt o4,2=5&7rt&5+765X 4&29w65557+,e25$Oe567O&& e>%e+554*55< 2q%*57+%t t%+2%*%&4%1756o o5+=5&r<&Xr%&$&5555&5555&55&555&5555555555555&555555555555555555&55",
+"&&55555555&55555&55&555545==++O4&=+&* <65=+6t 2:54&21#8%$5+e%&o %%%6.X X5o 3*+75%%7+5*&%5oO 6&ret5%*5 o&621XX2=%5*4&. oXoyo$+75&71%%+=%&7+4Oe*%5=+%O9ooO ,,;q::q.2 1w:rOoo9+:o < <0;w9+ww+=,-=13#+=#%e<##$ X3rOooe+wo t0; ow;q::Oe;,:=+qX ooo owrO:0w o,+9;q:qyo>q9+,Or5####+7+rt3@37O#%8;;,X t0;t X. .w:o :Xyooo o;+9>:;:>;,Or5&*+7&6=+4&5+=%%o 55r<&64&&=+7e*$*22oX27%5 <%*7+5%*3%6&o7r<#5=+5OeooO &$65%*r<*%5 o5+7&. oXo o4555555&55555555555555&&55&&555555555555555555555&55555",
+"55555&55&555&555555555556%=+3$&667+%4 o%5=+%6Xr O&%=+64**4+=45o &6.er= o5X *&+=55&7+&35<ree %6t7 2&46 o65=r7971&5%&%X 7==7.5+=447+55+7$*=+6+=4%67+*+r=7==,wq:;w:;qo o: e9=9O;o req>w;9+q:+9,:9+##+=$@ X##3 X# e779O>o 0,>yo>>qwq+9>;0=+wo =999X0 <:q; o;+9>w;q o;,=+0+7$##$3+r 1###3=+3$-w,wo w>q; oo :-qo 0o 9===X:+90q:;;,q+=55%+74*7+&5%+=46o 36 X53*55=e <$65=r7771%% X4*7+%*55*%%4*+r,5=+*+r=7775*$%6% o&%5 o%+=6o 7=77.*5555555555&55&55555555555555555555&&55555555&5555&&555",
+"5555555555555555&&&&555&&%7+&*63%7+&% o&&7+5&65<y.611%54%&+=&%o 5%r1&5yo6X 35+=%&&=+5&t <6o &%%*.yO5% X5%11%%&445564t t%45&%+76&=+&5+=&%=+5<r56%e+5<r%%8-::,wwq;q>q=+qrO>:0wqo Xr+;;q9+w:19:,=+6#+73# X$4# X#r<4&6;qo ,q0 o;;;w:Or;w>e+;. .0qwq: o:;w oq+90>;; o,>e+8<r##%#3+7< X4#3=+5--,:;X tqwt Xo :wqo >.y.0>0;:+9q:q:q>:+7&&5+=567+%55+=&5< 65r<&*$4&7+2r:6%11&&&%65 o&%=+*$6448%6&5 o5=+&<r5*&&545%5& X*&5 X5+7&t t%&&&44%55555555&5&555&55555&&555555&5555555&&5555555&555555",
+"5555555555555555&55555555&=+*54*$=+&5 o%%=+6q4&w .%or.%*>5+=5*X $& <5t X%o &4+r&5%=165o :5< *3,%&eO5& <%6X .%5,5$*$5&=255*:5+=5%7+5%+=4&=+*:r+X7e+5>yO64,0,q:0:o;0trO;+rt;>tqo qXrOw091;Xr=:>9+8%+=#$22#@1 X3+r0$#,8o >,, owwqqqty+o9r+ww92;w:tq22q:1 o:+9q:,: <:< +$0r<##-#+73<r.#@71-0,>qq:r+qq+rqqrO:t= qw92w;:tq+9qqw0:wq. .$.r76$=+%*5+96>9 &%+e;*5>%=+429;5o .&6q5% X54=+5%8%&tt5%o t47+5:rO%&>%*4*%%22$%1 o%+7$&=256$q&*65&&55555555555&555555&&55555555555555555555555&55555",
+"555555555&5&55&5555555555&=    767+$& o&67+%.r7y156%1 7eO5+7$&o 541r=7=r.o %&tre<4< 7.5er91re%r7re:$61r=56O 7e2&&5&%&t9r=r.4+=3*=+65+=*%7+35.22<=+%%or9=r8:,ww;9r9r10q>2r9rOwo qqO O:< 9e1=,>=+:*+7@#.rer< X@$2r7rO%o q>, <q::qw;X22<9+w;.er=yX:XrerO o:+=>q>w1re2=O##<r9e23+=@31r.#< =X>qqwwXreerX0>O 9rO w-.er9rXw+=0>:;,,881r=91=457+45&trerO $%w=r=r.47+&qeeq%O 7e2&5 o$*=+%5$%&trr=r<%&=+&5oy9=r%%6$$*.rer< o%+=5%t9r=r.%4&5555&5555555&55&5555555555555555&5&5555555&555555&55",
+"&5555&55555555555555555&%6456%656%$5&*#&5%6%4,X.5*4&5tot&*3%*$%&653..&>X%46&%&>X:55to%&5ot&t.*%XX$56&$..3%&qot5&56$*$**.X*5555%4%5%&65%5&$*%%%*%r<55&5X.58w:>;qq.otw>qq;.<tw::q>0,-:;;.oq:;00:,q0*6###;Xt#$##3#tX0##4580q,w,,,>:::q>0r<;;wqXo0qq:to.>qqww>,,,:-..#$#@##;X.##4#5#3@#&*.<qww0>0w:oo:w,:;.ot;;q:q;Xo:w>:;w;:q,08&%.X&6%4&%5655$,X,%%*%5&.X:%*%5&6&4565;ot%%&%&64&4*&4&&45.Xw$&%5&5%%4o.*&%5&63%>ot&3%&545&4&.o&%8355555555555&555555555&5555&5555555&5&55555&5555555&55",
+"5555555555555&55555&5555&%&64&%5%5654&&%55%**%5&6$&$&%%&5555%*5%%6&%6$&5&55*%5%5&%&5%*45%5%6%5&55&6%&&45&6554&%&%5*56$%5&%&6%5&6&%&5%555%%&&1<X2r>%*$&645*-,w>qqq;>;;qqqw0:;;::;:q,;wqqqqq:q:ww,w0*$##@###$#$####3###$3*8-q:>w>>,2<o2rtw>0>:0wqqw:>:;,,w>>>0-88$3##@3####$########%80>,,qwq;;w;wwq;0:;w;;>:qq:0:qq0q;:w;:,w0&5&55%5&55*%&555%%55&%&&4%6%&55&5%5&5&&&$&5&%*&&&64%56%55%5%55&45%%&5565%5$&5%5*$&55*4*%5556%*446$*555555555555555555555555&5555&55555555555555555555&55",
+"&5555555555555555&&5555556$6%6%%55%*%5&565$66&$56&5*$65%%*4*5555%&%*&$*5&%&6%&%5%6&46%66&$&&5$66%6%65465%6&5%6&55%56$&45&5555&5555555555%655O771t*3&%5%6668:,w:q:qqqqq:qq:::qq:qqqqq::q:qq::ww:w,w0853##3##3#3##3#####3#$58--0:w>+9=2.:>:wqqw:>w:>>>,,>q;0-*5$########33###3#####58-:,>wqqq:::qqq:qq:::q:q:qqqq:;qw:;qqqw,q8*5%555555555555&55&&&55555555555555&5555555&5555&5555555&&5555555&5555555&5555555555555&5555&55&555&5555555555555555555&55555555555555555555&5555555&555",
+"5555&555&5&55555555555555&%%65$*%$&465%&4*$$4%64455&5%5&546%6%$&&%5#6&&%5%55466%5%8%5&5&%66%&5&4&%&4&5%65&$55%%4%*5%63*%55555555555555&5&%5%%*$&&3&&%65%55*0>w:ww:w:ww:w:www::w:ww:w:::wq:q:wwww:>w084#####3###$####3#####$5*8-0wq;,q>;:www::ww:>>:::q0-8*5$###########33###$###$*0:>>:q:wwwwwwwwwww::ww:::w:w::wwwww:w:,>-*&5%55&555555555&&55555&5555555555555&5555&55555555555555555555555555&555555555555&&55555555555&5555555555&&&55&&55555&&&&&5555&55555555555555555555555&5",
+"555555&555&555&5&&555555%&4*53*548&*6%*3&%5*$%*5663&%&5%*5555665&%6*&%45*$*%645*&54&%&455*4%6&%5&%5&4%6%55&46&&66%&*4&*55555&555&55555&5&%$6%%5&$66%55&6%4&8;,,www:w::::w::w:ww:ww:wwwwwww:ww::wq>,w0*%######3##########@###345688---w>,,,,,,,>w;0--88*&3$####################348-w,>::ww:wwwwwwwww:w:w::ww:ww::>:::>w:w,;8&55%&5555&5555555&55555555555555&55&55555&555555&5555555555555&&&55555555555&555555&55&5555555&55555&555&&&55555&55555555&55&5555555555555555&&5555555555",
+"555555&55&5&5555555555554*&%&6545645545*45*$*%5%54&465%5%5$645&%55#6%&*&%*455&54%566&*&6%*%*555%56&64&4%%%%85%$5%%&4555$55&5555555555555%*63*5&%6&45*%%&55&*->,ww::w:www:::w::w::::ww::wwwwww:wwww>,>085####3####################6%***-8------888**5%4####################$###580w,>wq:>w:ww:wwwwwwwwww:::ww:w:ww:ww:::ww-65555&5555555555555555555&555&55&55555555&5&55&555555555555555&5555555555555&&5555&5&55555555&5555555&&&555555&55555555555&&555&&5555&555&55555&555555555&",
+"5555&5&&&5555555555555555&<O5%5*+t%%556%5&45555&6%&6&5%*&%5%**3555&**35%&4%46&56646%%t++++++++*5&54&6556*3*3%*64%6%6&%5*5555&555555&55555566%55%46%&5%6%56558q,ww::wwww::w:w::w::www:w:w::w:wwww>ww>,>0-53#######3#########3####%#@$@4$###3#$3######3#3####3########3########5-;w>w::ww:ww:ww:www:www:::::ww::ww:ww:::>,q855655555555&55&5555&&5555555555&5555555555&555555555555555555&5&5555555555555555555555555555555&5555555555&55&555555&5555555555555&&55555&55&5555555555555",
+"5555&&5555&55555555555556%= X$%$ o&6%6%6&$*5%&$&4554%5&45wo%%46&56%454%5%5&.t$455%%*5t+++r=+++%6%%84&%54%6&6$o;5&5*4$4&%55555&55555&55555%5%$&6&6&554%*%&5%5*-w>:w:ww::ww:wwww:wwww:wwwwwwww:wwwwww:>>ww-*3###3############3##3###$#4#@$##@@############3#########3########3&-;>>>wqww:q::w:wwww::w::w:www::wwwww>>ww>>>-*566555&55&&555555555&&5555&555&5555555555&555&5555555555&55&555555555555555555555555&55555&5555555&&55555555&55555555&5&&55&5&55555555&55555555&555555&55&",
+"555555555555555555&5555&$&7r965* X%55to%&&%%&%5%&%&6tot&%o &*&46oX>%%6*%tt%=+&&%%*&4*54%*7+*%&%%to.%&&5>X.356 X6%%4>ow6455&5555&55555555&%65*%3%444&&55%&555&80>w:ww:w:ww:::w:w:::ww:www:w:::ww:w:ww:w>,q-*%$###########3#########@3####################$######$#########$%*-:>www:w:>:qw::::www:www:::::ww::w:ww>>:w>w086565&555&&5&5555&&55555555555555&5&555555555555&55555555&5&55555&5555&5555555&5&5555555555&55&5555555555&55555&5&5555555&55&55&55&5&&55555555&&5555&55&555&",
+"&&5555555555555555&55555&5=1rO&% X6&1eee;65 o54=+&&1y=r65   7%.y7ert&o Oe<+   X&555%&%6&4=+%6%52r7y1%5< 7eo%7   56<r=r.6555555555555555555%5555&5*6555%&55&55*-www:w:ww:www::www:::wwwwww:w::::www:ww:w,,:-86$#############33$####$##3##3##3###########3###$$###########36-0:,,,::www:w:wwww:w:ww::wwww:w:wwwww:w>>:w,q-*55&%%655555&5555555555555555555&55555555555555&555555&55555&5&5555555555555&55&55555555&5&5555555555555555555555&55&555&5&5&5555555&5&55&555555555555555555",
+"555&5&5&55555555&555555&&%7+<y:6 o%<r%*=O&& o55=+%6 <5&5%o 5&&>5%5e+&X 155%7+4555&6%6%6&&=+5&%&>5&< &5=1%65%% o%5t t&+25&&56455%5555555555555555555555555555%58-::>wwqw:w:w:wwww::w::::::wwwwwww:www:www>,,q-8&$#######33############3#3####################3#######@#358-:,,>www::w::www:::www:wwwwwww:w:wwwwwww::w>>0*5555&555&&5&5555555555555555&55&55555555555555555555555555555&55555&55555&555555555&55555&5555555555&5&&555&&555&555&555&55555&5555&555&&55&&55555&&55&555&&",
+"55&&55555555&55&5555555555=+*925 X*21XX1=6% o$*7+5%ret%55o 6$636to9+5X 65*4=+%&woXooX*5%&=+645&45oO &&1yo4*&5 X54OeooO &%55%&55*5&55555&5555&555555&555&&5555%*8;w,w:w>:wwwwww:w:www:wwww::::::www:www:::>,,,q-64##3######3####3############3##########3##3##3##3####%*8w>,,wwqww:ww::wwwww::::::www::w:ww::w:ww::w>wq8&5555555555&5555555555555&&55&&&55&555555&55555555555555555555555555555555&&&555555555&5555555&555555555555555&555555555&555555555555555555&5&5555555&55&555&",
+"55555&555555555555&55555457+3o . o%=r===14& X%&7+56t7 25*X 565>7r7r+4o 3*5%7+*$.=7===%46*=+56%&<yee 45w1 et53 o66+r=77=%*5$*5&5&55&5555&55555&555555555&&5455&5&-:,>:w>:wwwwww::w:::ww:www:w:www::wwwww::ww>,,:08*%33#####3#####3####3###############3#######3####$%*8-q,,>wq::>www::www:w::wwww:wwww:w:w:wwwwww>qw>:-6%5555555&&55555555&5555&55&555555&5&5555&5555555&55&&55555555555555555555555&5555&5&55555555555&5555&5&5555555&55555555555&5&55&555555&55&555555555555555&555",
+"555&&5555&5&5555555&5555*57+552= o%125%55*5 X*&9+&4%*.rO%X 64%27;5=+5o 6$5*7+4664&%%665%57+6%$t <#o &%65>e2&* X%&<r4*6$&%5645%6%&&555&5&5555&&5&555555555%%5655&*-w>w:::w:w:www::w:wwww:www:::::w::w::w:ww:qq>,>w08*%3#####3###########################3########3%680:>,:w:qwwwww:w::ww:ww::w:wwww:ww:wwww:w:wwwww>w-*5555555555555&5555555555555555&55&&&555555555555&&55555&5555&555555555&55555555&5555555555555555555&55555555&&5&555555555&5&5&5555&5&5555555555555555555555&55",
+"5&5&5&55555&555&5&5&5&554&7+&6wr o%X .%5:$& <3O +%*w66eO%o t%6716>9+&o 65*4=2$4%&*%6%$&*%=+&5*X w6< %$:&4126% O6%>rO%*q56<<*%%555&5555&55&55555&5555555555555555680>>wq::w:::w::wwwwwww:w:w:::wwwww:www:qw>www>>>::0-*%3#@#####33##3###########3##############$%*80w>>>>wwww>ww:::wwwwwwww::wwwww:w:w:wwww::w::www>08655&5555555555&5555555555&5555&&5555555&5555555555555555555555555555&&55&&55&55&55&555&555&&555&55555555555555&&55&55555555&555555555&5&55555555555&&55&5555555",
+"555&&5&555&&555555555555&6=+%&$+ X6&O 7e2&*1re17+%&r7re:&5er1%< 7e2y<o &&46< =.%&$65&&%%&=+%&559r91re*2eey.5%1r75&Xye7r4&7=5*%%*555555&555&55555&555&5555&65555&&6-q>w:w::w::::w:w:www:w:ww::w:ww::w:w:w:ww:>>wq,,,w:0-86%3##@@#####################@@@###$4%&88;q>,,>:w>w:w::::ww:wwwwwww:www:w:w:w:w::w:www:ww>>q-*555555555555&555555555555555&55&&5555555&555555555&5555555555555555555&55555555&5555555&5&&5555&55555555555&555555555&555555&55555555&55&&555555555555555&55555",
+"55555&55555555555&&55&55&#&5%6&5555%6:Xt%&44..4*5%&4oo3*%%*Xt65to&3X>$&46%45tX465&%5*58$%%*&*%65Xt5t.6%.Xw&%&&..4&5%X.3*46&%&&5%55555555555555555555555555&5555&56*-q>>www::wwwww::ww:w:wwww:w:w:ww::w:w:wqqww:w>,>>>,>:0-8*5333$#####################3345*8-0:>,,,>>wwww:qwwww:w::::ww::wwwww::www:::ww::www:ww>q-*55&555&55555555&5555555&5&555&555&55555555555555&5&55555555555&5&&555&555555&5&555555&&55555555&555555&5&55555&555555555555555&55&5555555555555&55555555555555&5",
+"&55555555&5&555&55555555%6555$%555&55&&%56&65%6%&%5*$&*4%*%&%55&%65&%5&5%&%5%&%64&*4%5%&&&5465556%5&&$656%%*$56$&%&55&55%&56%5%&&555&5&&555&&55&555555&5%55&&5554%580>,:w:wwwwww:w:ww:w:w:w::w:www::::w:::>wwwwwqqwww,,wwq;;-88865%$3$##########$3$%5**8--0q:w,,,>:w::w:ww:>www:wwww:w:::www::ww::ww:w::wwww:w:w>08&&55555555&555555555&555555555&&&555&5&5&&55555&5&&5&55555555&555555555&5555555555555555&5555&&555&55&55&&5&555555555555&55555&&555555&555555&555&55555555&55&555",
+"555555&5555&555&5555&555&555555&555555555555555555&55&&&55&&&555555555555555&555555555555&55&5555&555555&&55555555555555555555555555555555&555555555555555555&5555%580w>>w::wqw>www::ww:ww:www::wwwwwww:wwww:w::www:ww::>>,,>:;0--888**&555&5&&6*888--00>,,,>>>::::wwwwwwww::wwwwww:www::w:w::w:w:w::ww:w:w:::>>0865555&55555&5555&5555&5555&&555555555555&55&55&555555&&55555555555&55555&5&5555555&55555&55555&5555555&5555555555&&&55&55&&&&55555555&&555555&5&&&555&555555&55555",
+"&55&555555&5&&55555&&555&55&&5555555&5&5555555555&5555555555555555555555555555555&5&55555&5555555555555555555&5555&55555555&55555&5&555555555555555555&5555&&5555555*-;>>ww:>:w:ww:wwww::w::w:w:www:w::ww:wwwwwww:w:w:::,,,,,,w>ww::q::;000000;;qq:qw:>,>w,>>wwqw::w::w:www:w:w::ww:w::www::wwwwww:ww::w:>>:q>wq-*%%5555555&&5555555&555&5555555&555555555555555&55555555&55555555555555555&555&55&5&55555555&5&55555555555555&5555555555&&5555555555&5&&55555555&55555555555&55&555",
+"&5555&555&555555555&55&55555555&5555&5&5&5&5555555555555555555555555555&5555&55555&55555&5555555555555555555555555&555&555&5555&5555&5555&5&&5555555555&55&5555545&55*-q>www:>>q:::w:www:ww:w:wwwww:::www::wwwwww:www:wwwwww:>>>,,,,,,,,,,,,,,,,,,,,,,,,w>>:::w::www::ww::::ww:::w:wwww:wwwwwww:wwww:w:::>>qw>;-65%5&55&55555555&55&&55&5&555555&&55&5&5555555555555555&&55&5&5&5555&55555555555555&5555555&&555&5555555555&5555&&5&55555555555&55&&&&555555555&&55555&&55555555&5&5",
+"5&55&&55555555&55555&55555&5555555555555&555&55&&55555555&&55&5555555555555555&55&5&5&5555555555555&55&&55555555&55555555555555&55555&5&5&5555555&&5&&55555&55555&55%58-:>>q::>:w:ww:ww:::w:w:w:ww:ww::ww:wwwwwww:w:w:w::wq:w::wwwwwwww>w::w:::w>>>www:www:ww:wwwww:::ww:::wwwww:ww:wwwwwww:ww:ww:ww:w:ww::w>>-*&&556555&55&555&555&5&555&555555555555555555555555&&5555&55&5&5555555555555555555555555&55555555555555&55&55&5555&5&55555&5555&55555&55555&555555&55555555555555&&55",
+"555&555&55555555555555&555&55555&5&55555&55555&5555555&&&5555&555&5555555555555555555555&55555555555555&5&555555555&555555&555555&&555&555555555555&5&5555555&55555554&80:,>w:w>ww::w:ww::::w:w::w:wwww:ww:wwwww:www:w:w>w:ww:ww:ww::www>>>w>>:w:w::::www:ww:ww:ww:www::www:ww::w::::w::::wwwww:wwwwwww::::ww-856&&&55555&555&&55555&55555555555555&55&5&&5555&55&555555555&55&5&55&55555&555&5555555555555&55555555&5&5555555555&5555555555&555555555&&5&555&555&5&5&&&555555555&&5",
+"5555&55&555&55&55555555555555555555555555555555555555555555555&555555555555&5555555555555&55555555555555&55555&55&&&5555555555555555555&55555555555555555555555&5555555&8-w,>:wwww:w::www:wwwwwww:wwwwwww:www::w:www:ww:wqww:w:w:::w:ww::q:qq::qw:wwww:w:::w:w:wwww:ww::ww:w:w:w::w::ww:w::wwwwww:www:w:qw>w0*5&555&5&5&5555&5555&5&5555555555555555&5555555&5555&55&55&55&55555555&5&5&5555&555555555&55555&5&&55555&&5&555&5555555555&5&5555&5&5555&55555555&555&55&55&&555&555&5&",
+"55555&555555555555555555555555555555555&5555555555555555&5555555&555555555555&5555&5&5555555555555555&55&555555555555&&&5555555555555555555555555&555&5555&55555555555&5680w>w::w:www:ww:ww::w:wwwww:www::::w::::w:www:wwwwww>>wwwww:wwww:wwwww:ww::wwwww:w:w::wwwwwwwwww::w:::www::::::::wwwwwww:ww:ww::w:-8&56%5&55&&5555555&555555&555555&55&&&&55555&55&&&555&5555555&5555555555&55&5555&555&5&&55&55555&5&55&5555555555&5&5555555&555&&55&5&555555&555&5&555555555555&5555555&5",
+"555555&5555555555&555555555&55555555555&55555555&&555555&5&&5555&5555&5555555555555555555&555555555555555555555555&&5555555555555&&&&55555555&&55555&555&5555555%565%565&&80w>::www::::w:w::ww:w::www:wwww:ww:www::www:ww:::qw:ww:www:wwww:www:::w::w::::qw:ww:w:w:www:w::::::ww:ww:wwww:www:wwww::::w:w>w086&5%5555555%5&55555555&55555555555&55&5555&555555555555555555555555555&&5&555555555555555&5555&&555&55555555&5555555555555&5555555&&5555&5&5&5555&55&&55555&55&55555555&",
+"5&555&55555555&5555555555&5&5555555&55555555555555555&5555555&&5555555555555555555555&555&55555&55&555555&&5555&55555555555555555555&55555&5555&555&&&55&55&5555555555555&68-:>w:www:::>wwww:::wwwww::wwww:ww:www:w:w:::www:wwwww:ww::wwwwwwwwww::w::::ww:w:wwwwwwwwww:w:ww::::wwwwww:w:w::ww:ww:w::w>www-8&5555555555555&555555555555&5555&5&555&&555555&555555555555555&5555&&555555555&55555&555555&55555555&&555555&555&5555&&5&555&&&555555555555555555&5555555555&555555555555",
+"5&5555&&5555555555555&5555&5&5555555555555&555&&5&5555555&55555&5555&55555&555555&55555555555&&55555&55&555555555555555&5555555555555555555&5&&555&555555&5&55&5555555555&5*80:,>wwwwwwww::::www:wwww::wwwww:::w:www:ww:::ww:::ww::www:w:wwwww:w::w:w:w:w:ww:w:w::w:w:w:::ww:ww::w:www:w::wwwww:w>>::>>w-86545&555&55555&&&55555555555&555555&5555555555&&5555555555&55555&555555555555&555555555555&555555555555555555555555555&&555&5555555&555&5&55&5&555&5555555555&&55&55555555",
+"555&55555&&55555555&555555555555555&55&55&5555&&55555555555&5&555555&55&5555555&5&55555555555&555&55&&555555&55&55&555&55555555&5555&55555&5555&5&55555&555555&55555555555%5&80>,>wwww:w::wwww::wwwwww:ww:www:w::ww:::ww:wwwwwwwwww::::w::::w::www:w::ww:w:ww:www:ww:w:wwwwww::wwww:wwww::ww:::wwwww>>q0865%%55555&55&55&55555555555555555555&&&5&5555&5555555555555&5&5555555555&55&&5&55555555555555&5555555&5&5555&5555555&55&55555&555555555&&55555&&555555555555555555555&555&5",
+"555555555&5555555555555555555555555&555555555&&&55555555555555&555555555555555555555555&555&5&555555555555555555555555&5555&55555555555555555&555&5&5555555555555&555&&555555&8-w>>>www>ww::wwww::ww:w::w::ww::wwww:ww:wwwwwww:ww:ww::wwww:::::::w:ww:www:::wwww::www:::wwwww:w:::::w:ww:w:w:w::wq:>,w-8*&5&55555555555&555555&55555555555&5&555&&555&555&55555555&5555555&5555555555&55&&555555555555&555555555&5555&55555555555555555555555&55555555&5&555&55&55&555555&5555&5&5&5",
+"55555555&5555&&55&5555555&55555&5555555&5555555555555&55&555555&555555&5&55555555&5555&5&5&55555555&555&5&&&555555&555&5&&555&&5555&5555555555&&55555&55555&555555555555555&&5&8-q>,>ww>ww:w:::w:w:wwwwwwww:ww:www:w:wwww:::wwwwww:ww:wwwww:www::w:wwww:ww:wwww:www:ww::w:www:ww:ww:::::wwww:wwww>>>q085&55&&6&55555&55555555&5555555555&&555555&5555555&5555555555&555&5&55555&5555&&&5&55&555&555&555555555555555555&55&5555555555&55&&55&555555&55555555&5&55555555&5&55555&&555&",
+"55&5555&5&55555555&5&55&555&555555&555555555555&5555&555&55555555555555&55&5&555555555555&55555555555555555555555555&5555555555&5555555&555&555555&5&5&5&&&5555&5&555555&5&5556**-q,,>ww:ww:wwww::ww:ww:w::w:w::wwwwwwwwwwwwww:www:wwww:www:ww:w:ww::w:w:www:w::w:w:w:::w:wwww:ww:w:www:wwwwwwww>,,;-*655&5&6&5&5&5555555&55555555555&555555&55&5555&55&555&5555&5555555&&55&55555555555555&55555555&555&555&5555555555555555&555555555&555&555555555555&555555555555555&55&55555555",
+"55&55555555555&5555&5555555&5555555&5555&55555&&5555555555555555555555555555555555&&55&555&5&555&&55555555&55555555&5&555&555555555555&5555555555&5555555555555555555&55&5555&6&5*-0:>>www::www::wwww::wwwwww::wwww:wwwwwww:ww:w:ww:www:ww::w:w:ww:www::ww:www:w:::ww:::w:www:w:ww:www:www:www>>>>;8*55&55555&555555&55&55555555&55&5555555555555555&555555&55&&5555555555&555555555&555555555555555&55555&555555555&5555&55555&&5555&555555&5555&55&55&55&5&555&&55&5&5555555555555",
+"555&55&55&5555555555&555&5555&5555555&5555555555&55555555&5555&5&555555555555&&5555&5555555555&555555&55555555555&&555&55&55&5555555&&&55&5555555555&555&5555555&5555555%&&5555%5&*80>,,ww::w:ww:ww:ww:::::www:www:w:::www:wwwwwww:www:www::w:ww::wwwwwwwwwww:::w:www:ww::www:w::www:w:wwwwww>>,:08*5&5%6&&55&55555555555&5555555555&555555&55&5555555555555555555&55555&5&5555&555555&555555555&555&55555&5&5&55555&&5&5&55555555555555555555555555555555&555555555&555&&5&55555555",
+"5&55&55555&55&555555&555&&5%5%&55&55%%66%%&5%55&%&%6%%5%5555&55&%55%%&5%5%*%5555555555554*%%5&5%&46%6&55&55$*46&65%%%&&%55%&&%&56$&6%&&%566$6%*%$*5%&5*66&&$56665%5&5&%555&66%&%%5658-0,,w,;qq:>w:>:q>;,:>,:q>q:>:::,ww>>qwqwq:wq,qw>q:wwq,;:wq::wq;>:>>:wq>,:w>w:w:::ww:,q>q::>:w::wwwww:ww>,>:-8%56$5*5&%%&$&%*%56&$6&5%&5%65%5%&6556%55%&%&%&&$6%4*5545*%&%65%%65%&5655&#*5%5&5&564&5&&&455%5&$%65%&5%%&&%%*5&3**%6&%&%%%6&$&5&%5&&%%&555&6%&%%&5%*5%5555&55&555&55555555&5555555",
+"&55&&&&55555&555&55555556%%&6%45$*&5*&5$645&5554*3*445565&55&%5%*456*545&6%46836&5555555&%5%*%%64&%64%&%%556&4$%%%&*&%6&%&*4564&*%&&%5565%%*&*4&*%4*5*$5%&&8$%%45*644%655&%%4*5&5%&65*-0w>,,>q:wq>ww,wwq,w0>:::>:>qwq>;>w:,0w,w:>w,;>>qww,;q>qqw>;:,qw;w>;:;:,qq>::q>q>:qq,qq>w;qw:wwww:qww>,>0-*%*53*545%6&&&65$6655&4&%&*4%&%%5854*$5&5&*355555*%*645%*%%635&&64565&5$%*%6$%*%55&5$&#*54&65*55%5*5&6%5665%*55$&545&64*%*&455$65&*$$63&55%%5%&%&*$5*46%555&5555&5&55555555555555555",
+"555555555555&555555555555$6$5&5&*$&&35&&%6%56%&*%%&%*5%655&5%11t$*$*3%55455&&4&%555555&5366&$5&O.5&35&%556$5o.$*&63$:oXooXXooXoXq&6#O.54&&&*438woX+2<5.O65%$56&**%+6*6%5$*$*&355&%&%%*&802Ow>>,wwwtoooooo<oooo,::;,ot,>wqt+w>q::ooww:w,:q::w..,qq;q:,q::;,>>O.>>:qw,q>:q,;1:>:wq:w:wwwww:>,>:086&5%5%5&5&*$*4454646%56%%5%%$&&%66%%*465%53X**<X2&45%55O.44&%&*4%%&45&%&6&3*6*6&%X.%5&5835<5<..o51q4$5%&:<26%%1%63&*.oXo.5XoXX.6&&<.6oooooo.$5%*X>%6&5%&&555555&555555&5555555&555&55",
+"5&555555555555555555555&&666&3%455%6&%46>*5&4&6%&&6%3o7%555%o<t+*4646&%55*%&%6&55555&55565$556:r:5%&6%555&&%et5%w5*&t+++++r+++++t6$6+X6.=77e+%%O+12$6&X+5%&&5&4%54 &&3%&6%&12==7e.%65556*.2r<;OX>;.+++29+=2+++0>>w; :qw:X21<w>>>++:qto.ww>:,1<qO+<>w:wqw>:;,=o>q>,0;,;>,qq q;>w,>:w::w::>,>q-*65>X*5t.X12:*5.XooXooXow%&&545&5%%%5%4*4%&6$ 44.7+o&56%:rq6&55&$*4>*5546&%*54%&5$59t45q&%5%<++o2.%9&66&>291,5&6=%56%%=+++=5r+++7*3%+o6r++r++7*5&3eX%5*3&6455&5555555&&555&&555&&555555",
+"55&555&5555555555&5555555*$7       =5*%621>&&$*34*&56X7*$*4%t11t%&55%55545*45*355555555&5&&%5$1   =er5&5.7==r7=e7.*#&465&6=%*84&4*17r9=.5&&X+5.=7er==4o+%65%<+++2= ===1%55%.X.5115&6$**%56-.=tetq,,tooO2o2+oo:w:w:tew,>>t+Oo:o9=re9e9+.>:wq;9X9+oeOww;,X2+++r22=ew,:O+++29 =991:wwwwww>w>:-8*5%5Xe%4X2O.O.3%72++++++r<5&%5**%56%5*&&5*$55& %64<546&3*1   79r&*3621>66$6$$6*%.7==y77e=.&6;o+2++.<2oXXt%&o+5%1675=46577=7=%y=7=7%,o1Ot=5%7*5=4%*%r>6&4556555&55555555555&5555&5&555555",
+"55&5&5555555555&5555555&4%656%5%56o=%5%&&2e.5*$*<<455o7*&5,+rX4%5*%&%%55*5&&4&*5&555&55555555Xe,*%&O1&4&45&et&3*56%&55r7=7r=77r5&465+o%55&5o+%*.oO1X.1er=y&*XooXot 4&5,4465%5%2155%384$&6=**-O+,,:qo9+29+92+rq>:to+r+O:trow:w>:w+ow:1,w>>:,q9+O:w.r,q:,0Xoooe+.>>0w>oo<oo. 0:wt>w:>w,,,,0-*665&&<245*rqO<$**7o*%%3&% w55*%$5%%665&4451===7 =7==16$&&o9,$&5O155&%&2e.5*3*<<%55559t566#6&4t+1 r+<11+72ot+1=+4e%=%2.4*765*7*76&4=%t+=1oeooeXX=&356 %%%&*#*5555&5&5555555555555555555555",
+"555&55555&55555555&55555*5%&66%5%5X=5%8356<15$6%7<5&&o7q<2e+>*5&%%65&6&564*%6%%555555&&&6366.r..53*r.56545+1O+,%6q645&=65%7*&*755t++71+o7==e+54=+2=+=&X+% 3654&<=+ 654*%*45*;=O%&56%%*5O%7%*te.ow,,<+q<+>+o,=w>t9+=1o12>Xe>qww;>+O1+eq:ww;>:r2w>:qeX:w:,.q:>=o<oO,;q,:qO9+ ,>0,;w>,,,:q08*5566&51O%649t%%*%%=o56*&%tr%45$*%56%%66465*4&%%% 5&$*445*.r..65%r.%55&&6<154*%7<55%4+1O+:*%>$6&q=1+=. X&+o&wo27o.2&7&X1&57=771&==777&8%+X&r++r++7$*%& 565$66%55&5555&55&5555555&&5555555&5",
+"55&&&5555555&55555&555555&%554&5&5X=55%55%56%46<96%%%ore2o*%$5&46551==7=e&&555<+++++++++<*3or..r15O7*%%56. 2<<2<1ro%55r777r777r5$,oX2OXt=%6556%=+17+75+O4r&%%&o15o 465$5565q=21=2<5&5%.25=&$=oqet;,<r=er=re9rw:wqw9.>; wq2O>;q,+r2o22eOwww,:r<wq>:=oww:;299=re++o;,;>qo2wo :wwq>>>,,q-8*&5555%%6e.%5&1O&65%51.%&%56<2&%&<+++++++++<5%5%rq& %wr%66%Xr..e1%O=46&%%&%5*%%&<e%%5&. 2<<2<1ro5.r.<..7+O%=:6$&9rt1<57&w7X%7&5oooXo%*76%5+<.=%*=5%=554& 5%66&&$655&555555555555&555555555555",
+"5555555&5&55555&5555&55555%55%55%5o7%&%*5&$*%%.r.5&54o755%5%5&5554&555$o7&5&5&<+++++++++<&54t%552er.*%55or<4wO 1.5*$5%=56%=56&=65&+<+X6%=&%%>&$75X+%=5+o&76%65+X%, .566%55.r7<w5t1=%&5OO5761+*5<+80:,>,=.:,ww;w,:trwqw >w.r>;>2O+ote>trXw>;, t>w;,eo:::>wq:w+o,w:q:wqw+o:t X;,>,,,w--6656$*54&&tr55&%.e44664%*%55*%=o465<+++++++++<5%5.e56 %52X5565t65%29r.5&%&&55$*%%.r.4*%Xr<5wO 1.4&5*0>e%&.q2:r5%6X2172:57*2o5575%r+++r%&755t7ro=%%=54=4&%5 &%655%1t5&55555555555&55555555555&55",
+"&555&555555555555555&555*5%&&&%5&&o766%%4*5%*Xr<%%55*X=%655&5%4&6%*%%5*o+&4654545&55&55&%4&5$&6%57+84&55.o%.eOe5*&#*to9ooXeXXXeX;6+X+97O=&46+X&1=er715=t5=3*5#o7o1rX5%&%&.ro&4%5*4e.64et5=<2545>r*.=== ===r=99;ww++qw:yq>>OtwX2>+o2<:w++q>w09qw:wtr:>>q:>X++=O>w:>:q>>o9o2ro,>,,q-885*&%6&$56&%1+%6&6$9X&538535&5$O=5565$*%&*%4&&5%4&51O&% %*<2%%%56$&%%=+5%&%&$4*5%*Xr<4&%4.o*.eOe%%*$5.=re=r=52++&%>e<+t5o==X=%*5=*%r+++r567&X22X&r==r===&5%5 5&%6$wy5&55555&5555555555555555555&5",
+"55555&555555555555555555$%&5&%5%5&X=&&$6546t1y.%&556$o756%4*5&*4%5%%5*3+O&54&*%*&5&55555*6%**4&512*455*$%5>r.57&4%*%o+e+++++++r+t521+o&#956%=t&XXO1o.wr5&7654&6X+Xr,5%&*6*t5=72.46e.5o=55r2&4*2%2<6582O0:X9,w:>>wr.>,o9>:::>:+<q+22qq>2O>ww,>,;w>12:;q,:27<o2=eo;,;>;>>o+ortq:-0-1e7w*554*%%*3.r>*45&%orw%5358%66<rt45*36%4&%%6&5%65*tr:5% 644r.5&%&&5521%5*4*4654&t1y.%*45&%4>r.5=5%4*&5076<O4*< ;&5O<o+&*56:9.6$5=%&eooXe5%7654+o6<%%=5#O%&56 w5*551+55&555&55555555&5555555&5&555",
+"5&55555&55555555555555555637       =4&6:X<2r+;6&565&%tr.$5&tX<5&&555&4*2o%%*44*&5&55&555%54554t=15&46%$*64Xe55.*6&&%%47435&6$&75%59+eX&51=7=+&&++2=+<<+%o2555&*5%2+45&4%%$%o+5.e5Oe4&q.t7e$3&6r*X.6&t<1=1rt,w,:wO2ttq11;w,;,wOOt22>:,Oe;>qq,;;>,Oet>ww:: qq:1oo92tw>,;:,,2+:q0-5.26<O$4&%546$tr<$&*&&4%12w4*%$$t1e.55466%5*6%56%55%&09<&%& &55o9w%%*4t71&&5%%5&:X<2r+q664&65*5X954.6&4656t1=r>%%27O44>6X+#4%te<44557&*r+++r&%=4&&+X6*45=5*%6%5&2O53>+e>%5555555555&5555555&&&5555555",
+"5&5555&&5&5&&5555&55&5555&66&$%45%.15464r1<%&5%&*35555<2=77=1<5%5%==777y=71%*5%&555&55555*&%t2r<&%5%&654%&41e+++2e&6&57&*5%65&75&X25+=OooXooX<;o+2e21rt&<+%&*64<e1&54*5*5&6$=2+rr1>&5t+eo9*5&X2%554*&XO=1+e1.,,tr.Xr=r.wq>>;wt22O;<291tww,>w:o1r2t:;q>>q+e+1et:w1tw;,,,<e10-8*56t7>1<66%*6465>O&*%%&5*%>+*4$*6or+,%&%&46&5%565%%&465*X3&5% $*6%<&4*t2r<*53&&&53*r1<%55%&5*454&$1e+++2e4&5%<712te<&21w%&X+6t+eo546557*4eXoXo5675&&+o45&%7%55$&5#>9e=r2;&55&5&5&555555&&&5555&5555555&",
+"5&&55&&55555&55555&5555554*4565&6&65%655&4&8$5&5$&*%%5%%%6%%55&5&%555556%&544656&5555555%%&&q+;*6%6&4%55&&6%:Xoot36%5515&%%.771%4o.$5wo++++++ot+ooq*+<X=2t5%655OX4&*53&%%&555.o.%&5#5qOw5+7=71.%*5>e71<>%**o=O-0X:>,<.:,>;:q,,q::,to>,>>:w;,:.+.>w>w,w0,>to<wq>,,w,,ww:Oo-*%&54*6<=+&5&%%55%55*65&%&5$%56544&3*:6$&*%5&55%%$&&4*%&%&%85&5%+64$4%%*&q+q&$5&&54&6%5$583&55%64&65&5>Xoot5$*te+&*Xro%&41+%4o+<r<w5&654%=%5*5*%&1=<%&72t56&3=*654&&5%%.X,454&5&55555555&&5555&55555555555",
+"5555555555555555&5555555&%%&&%%5%4465$83&*&3&$646%5%55&5%&&6*&36%6%65&546&$6&&5%55&&555556*46364%%564655%$655*$5*&&4&&4&5&*4%54**$5*5&%6*36*%4*%5%&*44&&*%5*54%&&*%$%&&55%&%%5&5&%6&%555%%65&64*$5%%&565645&64*8-;w>w,w:ww,>q,>,,q>w,,w:,w,>:,w>ww,>>:,;:,,q,,w>,ww;;886*3%*6$*%4*5&%%655$5**5%45%&5&*555%6*%&554*44*%&%%6*4%&4%5&&%&4&4&&55466%54%*&56546$565%&56&364&%55556564%4*%$*&4*%6$&$w55&6545%&5&$*5$&4%*58%4%&3*$*$%*%56&&4%6$#*5*&%5%65545&5&5&&55&5&55&555&555555&555&55",
+"55555&5555555555555&5&555&5%54&55&&%553*55%55&%&%555&$6%&%&%%6*%55&6%5&&&$&&4%&55555&5555%55&6%665%5$&&5&%&54%65%*%%54*4%&465555%*%&5%*4%*5%%&%&55%%*%55%6%%%&&5546%&&455%*$6%5&&%*46&%6&%&%$65%56555%&4%*65%**5&*88-0q:,,,,,,>,w,>w,q:>:>::>;w:w,>w,,>,,,,,,>;;---8*8&65%*%#*5%&$&6%&%55&&5%5&65&555$55&&455556555&$6565%&5%&54*4555&4&%&%&6%555563&636&56$55565&%5&&%5%&&55%$*56466%5&%5%&5&%55%&5&%55&$66$56555%%&%&5&46%6&%&%&44&6$6*5&5555&54*455*%5555&5&&555555555&5&&5&55555",
+"555&5555555555&&&55555&5&5%6&55%38$&55$&64&%&%5&5&%555%5555&65*4%5&4&56&%*53*5$6555555&5556645*%%4&5*53&65%%6&5%%&&%5%*%555%65%64556%5*45&$*%%6&5%*55&4&%6&$6%5*565&4655&%654*6%564&655555%*45555%%&5%&%5%*%45*%6%66*88--q0;qww>>>,,,,,,,,q>,,,,w,,,>w>w:w::-0-88&&*%5%*6$5&55%6&%5555565&4644&555&&5555555&555&5555&555&&55555&555555555&5555555555&5&5&&&555555&5555&555555555555&55&555555555555555555555&555&&55555&&5&55&5555555555555555555&5555555555&5555555&555555555555555",
+"555555&555555555&&555555566$&555&45&555%$&&5&%6%%5*%5*4*%&64%6$6&555554%5%*6356%55555&55%4556*$&&&%5$&64$*%&%44*55545*%6655%646%&*%5%4566555564%6&%4565545%*5*$46&55%6555&&5%4%5&$%%%5*%&%5$5*5&&6*46&%&6%%5*5%*$&&$&556*588-88--0;::w;,>,,,,,wq:>0:-0--888*8*&64*5&6%5$4*&&%*55%545&*%45%*&%6$&55555555555&55555555555555&555555&55&55555555555&&&55&5&&555&55&55&55&5555555555&5555555&&55&&55&5&&555555555&555&5555555555555555555555&5&&&55&555555555&555555&5&5&5555&5555555555",
+"55555555555555&&555&5555%35o<5%&51$565&6t5#6&5t.565%56&%&4$*&5&55%*5<.5&5*3556*5555&5&&5*55*%3*4%6%464&&5&&4*6%5%%&*53&445664*&4$55%5o%5%5&%&&$6%$&6o%5<o254%5&6O.4**3645%46*4&&55*55%&&&4o.555$6%3*<.5XXXooX.5%5&o:%&65*%56**8888--80:;;;0q0w0wtX-8-85885<*%5&t1%5%54*56O&%%6$&65665%%*&&%5&&&4&5555555555555555&5&55&55&555&555555555&5&555555555555&5&55555555555&5&&5555&55555555&555&55&55555&5&55555&555&55555&5&555&5555&55555555&555&5&5555555555&55555&&&&555555&5555&555&5",
+"5555&5&5&55555555&5&&&555641tt+++r+++65%+O&%55<1%5%%5512==7e.4%56436=X54&556&455&5555555%565% &&%%o=5&6%4*5 55&%5635&4&%65%6#4&5&%*5* 6%%655$66%5&%& 5*.7+o56$&wr>&&$6&*4*:5&%545%56%*%35&et45:553*$+o6r++r++765%5eX664546555445&5%&&64t56*%&5&:e13*5&*%4,e%5%.2+O*5$&$4%2o&84&56q.6&%45%56&%&%&55&555555555&5&5555&55555&55&55&55&55&&55555555&5555&5555&5555555555&555&5555555&55555555555555555&5555&555&55555555&5555&55555555555555555&55555&5&&5&&5555555555555555555555555555",
+"5&5555&55555&55&55&&5&55&t=1X1XoX9XoX66&2.&45%o7556%66.o.&22$*565*$*e56&&<5&#&%6&55555&5564%6 %%&*X=%4%&555 55*%%8$5&54*5554*65%&4&5# %555%554*%55&4 *45<3$&%5&1   79r555521:&5*64545&.===y7=9=.660o1Ot=5&7%47&&&5r>%5&%46$55<277=err r<*365%&we1*6&%%%%4o2o<55+ot4*%*5*&X2o+96%&X765&5*o.6%%6%6&55555&55555555&55&&5555&555555&555555555555555555555&&55&55555555555555555555555555555&55&5555555555555&5555555555&5&5555&555&55555555555555555555&5555555555&&5&&5555555&555&55555",
+"555555555&55555555&5&555%5<12:O++r++O5547*tooXOr11%&%&*4&11%*6354o+1 72o%11&845%55555555$&*$6 *&$6o=&56&654 %.XO+7O%&*6:6+:6%.t*&&&&& %&%6665&417==7 ====1*%6&X9q&&%O1&46%51e.6$%*<<*%6459t&&*3*%5t+71Xeooeoo=5%5$ %%*5&&%6%5<XXw&&12t66465%&.r<55$%6&41=rr1+46%546$5777r7r1<,%&%o=4&&&4.rw&65645&&55&55&55555555555&555555555&555555555&5&5555&555555555555&&555&5555555&555555555555&5555555555555555555&555555555&5&5555&555555&555555555555&55555&55555555555555&55555555555&555",
+"5&5555&55&&55&&55555555&%8$2O<.oooXo.46&e5t+++1eo&%&%6&w=<5&$5555O<+25.r>6eo%5%&55&55&556%555 $5&*X=5&%&+2= ==+Ooro&6%<14O+&5+O36&#65 <:&44&&$*356%% #55%55%5.r..&4&r.4*%*46<1655$=<36&6+1O+:56w46*$+o%r++r++=%&%6 3&%%6%5%6&5*%*%2<55%%%&&&<ro*566%55*%61o&.X+++t4*54&6&&<1&465&t=45%56*+1*%%*&5555555555555&55555555555&555555&555&5555&555555&&55555555&5&5555&555555&555&55555555&&5&&555555555555555555&55&5555&55&5555555555555555555&555555555555555&55&55&&&5555555555555555",
+"55555&5&&555&555555&5&5&55t=o217777==555=%&5&&X7%%&$&5w=21=2<5&5&%51<5&=X5o=%&%65&555555%5%6& 6%5%X=&%55<ow 5%55115&%5&r>:r55et6%5*%% 1r1t5%664*5r:& 6:r5%*%or..r1&<75&&555%5*556<e$*&4. 2<<2<2ro%%&+<.=&575&755&% *&%&$5&4&%&455++5&6%&&5%.r>%%%65&&%&5%rq5<+ooow&4465%%%5e.&5%&%r*$6&$4>y;&55&&5&55&555555555555555&5555555555555555555555555&55555&55&55555555555555555&5&5555555555&&&5555555&5&55555555555&555&555555555555555&5&55&555555555&55&&55555&&55555555555&5555555&&5",
+"55555555555555&5555555555.72=17%.:.%=*%%76t%64X=5&%56.y7<;5t1=&5%66r:6&=o&5e.%5&%4&%5*%&&553&+55%&<1%*$55*% 55q115%555&1<*Xwo=%555&55 %>+r+;%&%5.e65 *52o5556t%&%1er.*$65%*%5*%4.r.554or<%wO 1.%5&&t=ro=55=&5=$&64 %%&5551t6%555*et&%5655&4wr<&5%*%&6&%5t95&%65&55%&6*t+=772e%*56% &5w%&551O$&%6%6$*555%555555&555&55&55555555555555&5&555555555555&5555&5555&5555&55&5&55555&55555555555555555555555555555555555&55555555555&5&&555555&5555555555555555555&55&555555&555555&55555&5",
+"555555555555&55555555555&%OX+OO&=67&<4*5=O+&%*<15&55.yX%%65&5e.66%X2*5$e.5%<t*%566%*$&*%%5&*45*%661O6565454 %&.1*3665555%%&62o6&%&$*4 *5%t21*4*41O56 4&<1&5%*55&&*7+%555&$5&$5&orO$65%.X6.9O96%&5%X22o*r77r7=7&5%* &%&55wr45&&5&4 63*6%55%5&:e1%5$&%%%5*O+56+,%%5555$.r<5&,<=.454*7.%O<5%6X75%6$&5*45&5*555555&555555&55555&&555&5555&5555&5555&55555555555&555&555555555555555555555&555555555&55555555555&555555555&55555555&555555&&5555&555555555555555555555&555555&555&5555555",
+"5555555555555555555555&553=o+15&r47*$5&%77:6$52<5%5&6t&972.5$e.%5*1<$5% &5&%6;<%%4*456&%*643&&%55.r:5$*4&5& *%%64%5%554&64*O2&$%*%4*% 55&55>&55tr:55 56%r.*4&%6551145*45665%6t1r.5&5%5%*;r.&7&55&%6%+o3O65=63<*55$ q*5&*1+56%644%=O5%&5&%*5%5&1e:$6&%*%%e.5<1$6$%&&4*2<5&&4&55&%&6O+&9t&54>r551e7w&5%&5455555&555&555555555555&5&55&5555555555&55&55555555555&55555&5&5&5555&55555555555&&5555&555555&5&555&5&5555&555&5555555&5&5&555&55555&5&&55555&5555555&5555555555555&&55555&5",
+"&&55&55&5&&5&55&55&55555&*2X+15<2%76Oo&5=2655<e%5%6&6%X+5.e5Oe46%tr$t&<=%6%55t9<65%%*53*35&*5%&5Or.%55$*55%yo%6%.<*555&546+e%5*6$%*$5 4556$%5&qe<5&# 55*o9>%56%t=1%65%6%%;o<2r+w%&5&$*5&o9&5.*&$&545+X%65&7%%655*52O$&q+e,%5&4*%&.r+t64&&44**44Oet54653.9*%O2*36&w$*41O%$*4&t%5*%5;r1=545*4;&.1%<O4&%5565555555555555555&&55555&5555&5&5555&&555555555555555555555555&55555&555555555555&5&55555&5555&555&555&55555&5555555555555&&555&5&5555&5&555&55&&55555555555555555&5555555555",
+"&5555555&5&5555555&5&555&.1o+wXrt&=61o%%1O54+r.*&*$&5%&=1+ee1q%&&7<&rer<56%%5&>e<5*%%%65*%6&5%+r2t*4%*%&44*<e   9=&$5&65<r1%65455*65& &&5*%*5%4X%65* $6$&<%&5t1ro*5$&5%555r1<*4&6545*4%%%19+++2e5*&5+o5%55=*554%45:9e=r1q6&3&%5&55t2r964&555%&55<r.&%*62<65:1r=79155*t=e++1ee%5%5&6.+:&&%3&4&t=w1<*563&455555555555555555555555555555&5&555&&5555555&555555555&&5555555&555&&5555555555&55555555555555&&&&&5&5555555555555&555&5&5555&&555555&55555555555&&55555555&555555555555555&",
+"555555&555555555&&55555&%8tX+o7t*5171546&%4*X:%&%5&%6&6$.X.&6&6$%.55$..&5565%55.1645*%&64*$%&5.t8$5*5%&&&5536&$&6%5&%&$&.t%5$&5&&%3&4+$&6465$6*&64%&+6*54%656;+;5*%5*%%654&%&&&55565$*%&56:oXot%&3572t&&63=3&&*&5*6%.ow&&%$6&*&55*6%4,%64&&5%565*<>6%45tw4&&5%65*45%55&>XXo5%5&$6%%%*%45&*&%&4<=+&$64*%*55555&555&5555555&555555&555&555555&555555555555&5&55555&555555&555555555555555555555555555555&555555&555&555555&555555&&55&55555555&55&555555&55555&55&&55&5&&5555555555555",
+"555&5&555555&&55555555&5%44:t556$556&%*554&3&&*455*5345&6%%&465&6$5&5&45&4&%%8%66$&*4*&45*&465*&$&%&%&%%38$%656%%5&*4%*%5%656**356&56$55%64664%&465$&36$&*3%&&%*%&4&$6*4&8%&%&%65&%4**%&&4&4*65556&6455%%*55654%4*65&%%5%%*4465%&$4&646%*%5*%*34$*4&%%5&%*$655%%%66%$6%&*456$5&5%%%*45*445%6%5*$564&6%555&55&&&5&55&5555555555&555555555&555555555&5555&5555&55&5555555&5555555&&5555&5555&5555&55555555555&555555555555555555555&555555&55555555&5555555&55555&55&&5555555&55&55555",
+"555555&5555&555555555555*4664*%&5&5%55%5565&&%%&&5%%*65&&&5%*%%&%56$5555%5%*6%%%55*4&&%664655%%556%55&&55%556$6&5&%566$6&&$%&5$*55%64&&55*%46&5&&%565&4*&$&65%5%54*%5&5555%5%6&%%&5&%%*%4*55&&&&5%5%&&&6546%%&56&%%%64*%&&5%*5%65&*5%&%55%*%546&55&566%555544&555546%&&%%6&%5&%54&&%56546%&565%&555546645555555555&&5&55&55555555555555&5&55555555&55&5555&55&&5&55555555555&5555555555555555&55&55555555555&&5555&55555555555555555&555555&55&5&5555555&&5&5555555555555555&5555&&5",
+"55555555555555555555&55555&5&5555555&555&55&555&55555&555555&5&5&&55555555555&555&&555555555555555555&5&555&555555555555&555555&55&5&55555555&&55555555&555555555555555&555555555&555555555555&5555555&5555555&5555555555555&5555&55555&55555&5555555555555555&5&55&&5555555555&55555555555&55&555555555555555555&555555555555&555555555555&555&55555555555555&&555555&55&&555555555555555555555&555&55&55555555555555&55&55555555555&5&&5&5555555&&555555555&55555&555&5&&55&555&55",
+"555555555&555555555555&55&55&555555&555555555&5555&55555&5555555555555&5555&5555&&5555555555555&555555555555555&&55555555555555555555&5555555555&5555555555555&&5&55555&5&55&55&5&5555&5&555555555&&555&555555555555555555555&5&&55&5555555555&555&5&55555555&&&5555&55555555&&5&555555555&5555555555555&555&&5&&&555&55555555&&55555555555555&555&5555555&5555&555555&555555555&5555555555555555555555555&555555&55555555555555&5555&555&555&5555555555555555555&5555&555555555&5&5",
+"&5555&55555&5&5555&55&55555555555555555&55&55555555&555&5&5&5555555555&&&55&55555&555555555&&5555555555555&55555555&5555&5555555555555&5555&55&55555555555&555555&555555555&555555555555&555&&555555555555555555555555555555555555555555555555555555&55&5555555&55&5555&5555&5555&&555555555&55555&5555555555&5555&555555555&&55555&5&5&55&5&555555555555&5&55&5555555555555555&555555555&&555&555555&&5555555&555555555555555&&5&5555555&555&5555555&55555555555&555555555555555555",
+"5&&5555555&5555&5&5555&5&55&5&55555555&&&5&55555555555&555555&5555555&5&5&5555555&555555&5555555&5&555&5&555&5555&5&555555555555&555&555&55&555555555555555&5&5555555555&55&5&&5555555&55&5555&5555555555&&55555555555555&55555&5555555&555555555&555555555&555555555555555555555555555555&5&555555555555555&5&55555555555555555&5555555555555555555&5555555555555555&555555555&&555555&5555555&55&55&555&555555&555&5555&555555555&5555&&5&55555&&55555555555555555555&&5555&555555",
+"55&55555555555555&&555&55&5555&55&555&55&5555555&5&555&555555555&555555&5555555555555&5555&5555555555555555&5555&5555&55&5&5555555&5&5555&5&555555&5555&5555555555&555&555&555555555&555555&5555&5&55555555&5555555555555&5555555&555&&55555&5555555&5555&555555555555&&5&5555555&&5&555&55555&555555555555&555&55&55555555555555555555555555555555&55555555555&555&555&55555&555555555&5555&55555&5555&5555555555555555555555&&555&55555&555555555555555555555555555&555555555&55&5",
+"5555555&555555&5&555555555&5555555&&55&55&&555&&55555555555555&55&5&5&5555555&555555555555555555555555&55&5&555&&5&55&555555555&5&55&5&&55&55555555&&555555555555555&55&55555&5&5555555555555&&&555555555&5&55&55555555&55555555555555&55&555&555555&5&55555&5555555555&5555&555&&5555555555&55555&5555&5555555555&555555&555555555&5&55&555555555555555555555&555555&5&555555555555555&5555&5555555&5555555555&5555555&5555&&55555&&5&&5&&5&55&5&55555555&55&55555&55&555&55555555&",
+"555555&&555555555555&5555555&5555555555&5555555&55555555555555&&5555555&5&555555555&555555555555555&&55555555&5&&55555555&555&555555555555&555555555555&&5555555&5&5555&555555555555&55555555&&555555&&5&555555555&&555&5555555&5555&555&&555&55&55&55&5&5555555555&55555&555555555555&555&555&&&&5555&555555&5555&55&5&5&555&55&5&555&5555&5555555&55&5&5555&55&&&5555&5&55555555555555555555555555555555&55555555&5555555&5&55555555555555555&5555555&55&55555&55&5555555555555555",
+"555555555555555&55&5555555&&5&5&&5&5&&555&&5&&&5555555&5&5555&555&&55555555&55&555555&&55555555555&&5555&55555555555555555555555&5&5555&555555555555555555555&5555555&555&555555555&55&555555&5&555555555555555555555555&55555555&5&555555555555&5&&5&5&555555&5&5555555555&5&555&555&555&555&&55&5&55555&5&55&555555555&&55&55&55&555&5&55555555555555&5555555555555555555&5555&55555555&5&5&55555555&55555555&&5555&5555555555555555555555&&55555555&5555555555555&555&55&55&5&5&5",
+"555555&5555555555555&&55&5555&55555&5&55555&5&55555&55555555&5555555555555&5&5&55&5555555555555&5555555&5&5555555555555555&555&555&5555&5&5&55555&555555&555&5&&55&5555555&5&55&55555555&55&555555&55&5555&&&&55555555555&55&&&&555555&&55555555&55&5555555555&555&555&55555555&&555&&55&55&55555555555555&5555&55&5&55555555&5555555555555&5555555&555&55555&&5555555&555555&55555555&5555&55555555&555555&&55&5555555555&555555555555555&5555555555&&55555555555&555&5555555&55&5&",
+"55555555555&5555&5&55&&5&555555555&555&55555&&555555555&55&&&555&55&555555&555555555555&55555555555&&555555555555&&&55555555555&&55&55555&5&5555555555555555555&5&555555555555&555&555555555&5555&5555&55&5&5555555555555&&555555&555555555&&55555&555555555555&55555555&555&5&5&555555&5555&555555555555555555555555&5&5555555555&&5&55555&5&55555&55&5555555555555555555555&55&5555555555555555&&&55&5555&5&5&555&555555555555555&55555&5555&55555&5555555555&5555555555555555555&",
+"5555555555555555&&55&&5555555&5&55555&5555555555555555&555&55&5&5&&55&&55555555&&5&55555555&555&55555555555555555555&55555&55555&&55555&555555555555&555555&55555&555&5&&55555555&555555555555555555555&5555&5555555555555555&55555555555555&55555555555555555&55555&555555555&55555555&5555&&55555&555555555555&&5&5&55&&5&&&5555&5555&55555&555555555&55&55&55555555&555&5555555555&55555&55555&555555555555555&&&555555&5&555&5&5555555&555&&55&55555&55555&5555555555&5555555555",
+"55555555&&5&55&5555555555&&5555555&5555555555555555555555555555555&&555555&555555&&5&&5555555555&555555&&5&555&55555555555&&55555555555555&5555&555&5&&55555&5555555555555555555555&5555555&5&555&555555555555555&5555&5555&5555&555555&5555555&555&5&&555555&5&5&5555555&555&555555555555&5555555&55555&55555555&555555555555555555555&5&555555&5555555&555555555555&555&55&5&&55555555555555&5555555555&55555555555555&555&5555&5555555&&555555&55555555555555555555&555555&555555",
+"55&5&5555&555&5&5555&&5555555&5555555&5555&555&55555555555&555555&55555555&55555555555&55555&5&5&555555&5555555555555555555555555555&&5555&555555555555&55555555555555555555555&55&&555&&&5555555555555555555&5&5555&555&55555555555555&55&5555&55&55&55555555&555&5555&555555&5555555555555555555555&5555&&&55555555&555&5555&&5555&5&5&5&5555&&55&55&555555555&5555&55&55555555555555555555&&5&55555&&555&555555&55555555555555555555&555&55555555555&555555555555&555&555&55555&&",
+"&5&5&5&&5555555555555555&55&&555&&55&5&555555555&555555555&5&55&5555&55&5555&5555&55555&&5555555555555&5&5&55555&555&5555555555&55&555555555&55555555555555555555&555555&5555555555555555555&55&5555555555555555&55555555&5555555555555&&555&&55555&5555&55555555555555555555&555555555555&55&&55&555&555555555555&55&55&555&55&&5555&555555&5&&555555&55555555&555555555555555&55555&5555&&&55555&55&&555&5555555&55555&55&5&55555555555555555555555555555&555555555555555&55555555",
+"&55&555555555555555&55555555555&55&5555&5555555555&5555&&555555555&&5555&55&5555555555555555555555&555&55555&55&5&55555555555&555555555555&5555555&55&555&55555555&555&55555555&5555&5555555555555555555555&5555555555555555&&55555555555555&55&555555&5555&5555555555&55&5555555555&555555555&5&5&5&5&555&5555555555&5555&55555555555&&5&5&55&5555&&5555555555&5555555555&555&5555555&555555555555&5555555555555555&555&5555555555555555555555&55&555555555555555555555&55555555555",
+"&555555555555&5555555555&55555555555&&55555555555&555&5555555555&555&55555555555&5&5555555&5&&55555555&5555555555555555&55&5&55555555&55555555555&55&55555555555555555555&5555&555&&&55555555555555555555&555555555555&&55555555&555555&55555&5555&55555&5555&55555&5555555555&555555555555555555555555&55555555&55&55555555&5555555&&&555&5&5&55555555&555555&55555555&5&55555&5555&555&55555555555555555555&5555555555555&5555&5555555555555555555&55555&555555&55555555555555&555",
+"555555555&55&555&5555555&555555&5555555555555555555555555555&5555555555555555&555555555&5&555555&5&555&55&555555555555&55555555555&55555555&55&55555555555&5555555555555&5555&555555555&5&5555555555&&555555555&55555&5&&&55555&555&&&55&&555555&5&5555555555&55555555&5555555555&555555555555555555&55555555555&55555&5&5555555555555555555&&&&55555555&55555555555555&5555&55&5&&55555555555555555&555555&555&5555&5555555&55555&5555&555&5555555555555555&5&5555&55555555&5&55555",
+"&55&&55555555&55&55&555&&5&555&55&5555&&55555555555555&&555&55555&&&5&55555&55555555555555555555555&55555555&555&5555555555555555&55&5555555555555555555555&555555555&55555555555&5&55&55&5&5&&55555555&5555&55555&555&5&55555555&55&55555555555&&555&5555555555&5555&5&55&55555555&&5555555555555555&5&55&55&&5555&55555555555&555555&5&55555&&&555&555555&5555555&555555&55555555555&5&5&555&55555555555&55&5&5555&&555555555&555555&5&555&555555&&555&5555&5&&555&5555&5&55555555",
+"555&&5555&5555555&55555555&5555555555&55&55555&555&555&55555&555555555555555555&5&&5555&5&555&5555555&5&5&555555&5555555&55555555555&&55&55555555&5555555&5555555&555&5555&5555&5555555555555&55555555555&555555555&5555&55555555555555&555&55555555&5&5555&5&55&5&555555555555555555555555&&5555555555555555555555555&55&5555555&555555&5&555555555&5&5555555555&5&55555&555555&5555&55555555555&55&55555555555555&555555&5555&55&555&&5&5555555&5555555555&55&555555555555&&55555&",
+"55555555555&5555&&5&&55555&55&55555555&555555&55555&555&55&55555&55555555555&55555555555555&55555&&&55555555555&&5&5555&55&&55555&55555555&5555&55555555555&5&&55555&5555&55&&&55555&5555555&55555&&5555555555555555555&555&55&55&5555555555&5555555&&555555&55555555&555555&555555555&5555&555&55555555&55555555&555&&55555&55&5555&55555&55&5555&&55555555&555555555&5555555&555555555555555&5555555555&55&&55&5555&5555555555&&555&55&&55555&55555555555555555&5555555555555&5&55",
+"5555555&55&55555555555&&555&55555555&55555555&5555&5&555555555&&555&55555555555&5555555555555555&55555555555&55555555&5555&555555555&55555555555555555555&5555555&555&&555&555555555555&555&555&555&555555555&&&555555&55555555&55555&55555&5555&5555&555&5&5555&55555555&555555555&55555555555&555&55&55&5555&&55&55555555555555555&5&555&55555555&555555&55555555555&55555555555555555555&5555555&555555&5&555&555555&5&555&55555555555555&5555555555555&555&55555555&5555&&55555&",
+"5555&5555&&55&5555555555555&5555555555&&55&5&&55555555&55&5555555555&55&5&55555555555&555&5555&55555555555&555&&55&55555555&5555555555&5555555&55555&&5&555555555555555555555&&&55555555555555&5555&5&555555555&55&555555&&55&5555&555555555555555&555555555&55&&555555555555&5&55&&5&555&55555555555555&55555555555555&&5555555&5&&555555555&&5555555555555&&55555555555555&55555555&5&55&5555555&55&55555&5555555555555555&55&55555555555&5555555&55555&55555555555555555555555555",
+"555555555555555&55555555&&55&5&55&55555555&555555&5&&55&55555555555555555&&5555555&55555&555555555&&55555555555555555&5&555555555&55555555555555555&55&5555&55&55555&555555555555555&555&5555555555&5555&55&55&555555&555555&5&555&555555&5555555555555555&555555&5&55&555&5555&555&5555&555555555&555&555&555&5&555555555&555&5555555555555555&55555555555555555555&55555555555555&55&555555555555&&&555555555&5555&555555555&555555555&55555&55&5555555&55&5&55555555&55555555555&",
+"5555555&5555&5555555555555555&&55&55&5555&55555&555&5&&5555&5555555&5&55555555555555555&5&5&555555&&5&55555555555555555555&55555555555555555555555555555&5&&&5555555&&555&55555555555555&5555555&5555555555555555555555555555&5555555555555&5&55555555&55&55555555555555555555&5555555555&5555555&5&5&5555&5555&55555&55555&5555555555555555555&555555555&55555555&&555555555555&5555555&555555&555&55555&5555555555&55&5555555555555&555555&55555555555&5555555&5555555555&55555555",
+"55555555&5&&55555555555555555555&555555555&55555&&55555555555&55&&&5&55555555555555&555555&55555&5555555&5555555&5&55555555555555&55555&5555555555555&555555555555&555&555555555555&555555555555555555555555555&55555555&55555555555555555&5555&5555555555555555&55555&55555555555555555555555&555555555&555555555555&5&5555555555&55555555555555555555&555555555555555&5555&555&5555555555555555&555&55&5&5555&55555555555555555555555555&&555&55&55555555555&&555555555&555555&5&5",
+"5555&5&5555&&555555&5555&555555&55555555555555555555&5&5555555&5555&55555555555&55555&55&&&55&5&5&555&555555555555555555555555555&&55555&55555555555555555555555555&55555&5&55555555&555555555555555555555&55555&5555555&555&555555&5555555&55555&555555555&5&555555&&555&5&&55555555555&5&5555&555555&5&55555555&&55&555555&55555555555555&555555&&&5555&5&&555555&5555&&55555555555&55555&55555&5555&&55555&&&5&555555555555555555&555&&555555555555555&555555555&55&5555555555555",
+"5&55&55555555&555&555&555&555555555&5&555555&5&5&5555555555555555&55555&&5555555&5555&5&55&5&5555&55&&55555&55555555555&555555555&5555555555555&5555555555&5555&555&5555&&555555&555555&555&555555&55555&&55&555&&5555555555555555555555555&55555555&555555&&&5555555&555555555555555&555555555&555555555&55555555555&55&555555&&555555555555555&555&55555555555555555555&5555555&555555&5555&5&55555555&55&55555555555555555555555&555555555555&555555555&5555555555&55&55555&55555",
+"55555555&5555555&&5555555&&5&55&555&55555&5555&55555555&55555&55555&55&55&55555555555555&&555&55555&&5555555555555555555555&55555555&555555&55555&55555&5&5555&5555&555&55555&55555&5555&555555&&55&55555555&555555&55555555&5&55&&55&5555&555&555&5555555555555555&55555&5&&555&5555&55&&555&555&5555555&55&55555555555555&555555555&5&5&555555&5555&555555&5555555555555555&555555555555&5555&5&555555555555555&5555555&5&5555&5555555&55555&5&55&555555&&55555555555555&55&5555&5",
+"5555&5555555&555&55555555555&55555&555&5555555555555&555&5555555555&&&&5555555555&55555555555555555&55555&&5555555555&555&55&55&555555&&55&5&&&5555&&5&&&5555&555&555&&&5&555555555555555555555555&55555&55555555&5555&&555555555&555&555&5&5&555&5&5555&55555&55555&5555555&&&5&555555&&555&555&&5&55&&5&555&5&55555&55555555&5555&5555&555555555555&55&5&5555555&5555555555&&&555555&55&&555&5555&55555&5555555&555&55555555555&55555&55&&55555555&5555&&55555555&5555555555555555",
+"5555555555&&5&55555&5555&5&55&5555555&5&55&5&5&5&555555555555&5555555555555&555555555555&55555555555555555&&&5&&555&&55555555555555&5555555555555555&555&&&555&55&5555555555555555555555&555&&5555&5&5555555555555555555&5&5&555&&5&5&55555&5555555&5&5555&&55555555&555555&&5555555&5555555&55&5555555555555555&5&555&5&555555&55555555&5&5555555555555555&5&5&&5555555&&55&555555555&555555555&555555&5&55555&5555555&555555&5&555555555555555555555555555555555&5&555555&55555555",
+"555&555&5555&55&555&55555555555555&5555555555555&555555&555&&&&5555555555&55555555&555&555555555&55&5555555555555&55555&5&5555555555555555555555555555&555555555&5&&&5555555555&&55&555&55&55555555555555555555&55&5555555555555555555555&555555555&555&555555555555555&55&5&555555555555555555&55&555&5555555&555555&55555555555&5&5&55555&5&555555555555555555555&5&5&55555&555555555555555555555&&&55555&55555555555555555&&55555&555555&55&5&55555555&555555555555&555555&555&5&",
+"55555555555555555&5555555&5&&555555&5555555555&555&5555555&555&555&&555555555&5&55555555555&5&55555555&5555555&555555555555555555555&5555555&555&5555555&&5&555555555555555&5&&&5&55&5555&55&555555555555555&&555555&555555555555555555555555&&555555&5&555&55&55&&555555555&5&555555555&5555&&&55&&55555555555&5555555&555&555555555555&555&55555555555&&5555&5&555555555555555&55&555&555&55555555&55555555&55555555&555&5&555555555555&&55555&555555&&55555555555555&5555555555&5"
+};
diff --git a/hacks/images/osx_10_3.xpm b/hacks/images/osx_10_3.xpm
new file mode 100644 (file)
index 0000000..dc06e15
--- /dev/null
@@ -0,0 +1,279 @@
+/* XPM */
+static char *osx_10_3[] = {
+/* width height ncolors chars_per_pixel */
+"474 256 16 1",
+/* colors */
+"  c gray49",
+". c #5F5F5F",
+"X c #393939",
+"o c #E4E4E4",
+"O c gray12",
+"+ c #191919",
+"@ c #151515",
+"# c #A2A2A2",
+"$ c #4E4E4E",
+"% c #F9F9F9",
+"& c #444444",
+"* c gray25",
+"= c #2A2A2A",
+"- c gray10",
+"; c #181818",
+": c #C5C5C5",
+/* pixels */
+"+;;;;@;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;@;-++;;;;;;+;;;;@;--;;;;;@;+;;;;@;--;;;;;@;+;;;;@;--;;;;;;;+;;;;@;--;;;;;;;+;;;;@;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;+++;;;;;;;;;;;@@;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+",
+";;;+;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;@;-+;;;;;;;+;;;@@;++;;;;;;;;;;;;@;+;;;;;;;;+;;;;@;++;;;;;;;+;;;;;;++;;;;;;;;;;;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;++;+;;;;;;;;;;;++;;+;;;;;;+;;;;+++;+;;;;;;+;;;;+++;+;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;-;;;;;;;;;;;++;;+;;;;;;;;;;;;;;+++;;;;;;;;;;;+;++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@",
+";;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-;@@;;;;;;;;;+;;+;;;;;;;;;;;;;;+-+;@;;;;;;;;;+;;-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@",
+";;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;@@;;;;;+;;;;;;+;@@;;;;;;;;;+;;+;@@;;;;;;;;;;;++;@@;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;++;;;;;;;;;;;;;;++;@;;;@;;;;;;;;+++;;;;;;+;;;;@;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;++;;;;;;;+;;;;;;-+;;;;;;;+;;;;;;++;;;;;;;+;;;;@;-+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+"+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+;;;;;;;;;;;;+;;+;;;;;;;;;;;;+;;+;;;;@;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;+;;;;;;;;;;;;+;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;@;;;;;;;;;;;;++;;;;;;;;+;;;;;;;;;;;;;;;;;;;+;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;++@@;;;;;;;;++;;+++;;;;;;;;;;;+;;;;;;;;;;-+;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+;;;;;;++;@;;;;;;;;;;;;;;;;--;;;;;;;@;;;;;+;;;;;;-;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;---;;;++;;;;;;;;;-OO-;;;;;-$-;;;;;;;;;+=O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-OO;;;;;;;;;;;;;;;;;--OO--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; :-;;;.#+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=% ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;@;;@@;;@@;;;++;@;;;;++;;;;;;@;;+-@;+;;;;;;;;;;;;--;;;;;;;;;;;;;;;;;;;;;;;=o=;;;&#O;;;;;;;;;#o=;;;;; %=;;;;;;;;;;##O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-: ;;;;;;;;;;;;;;;;;*%%o:&-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*%.-;Oo&;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&%&;;;;;+O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+OO;;;;;;;;;;;;;;;-O+;;;;;;;;;;;;;;;;;;;;;@;;;;@;-;;;;;;;;;;;;;;;+;@+;@;;@@@;;+;;;@@;;;;;;;@;;+;;;@;;;O==-;;;;;;;;;;;;;;;;;;;;;;X%=;;; %O;;;;;;;;;:%O;;;;; %=;;;;;;;;;+::O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-=O;;=:#+;;;;;;;;;;;;;;;;*%  o%.+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+#%O+:o+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O%X;;;;;=%O;;;;;;;;;;;;;;;;;;;;++-++;;;+-++;=o +-++++++;+-++--O O+;;;+OO;;;+--+-OOOO--O=O+O=OO===X=-@;+;O=XX=OO=XXX=--O==XX=O=X=-+O=====O--=O--==OX  XO;-OOO-;--OOO-;;;;;;;;X%=;;+#%O;;+--+;;-::=;++++$%=;;;;;;;+-+##O;;--++;;++;;--;+O--O--++;;;;;;O: -+O: ++-;;;++----;;;;;$o*O*%#--OOO-+-O-;-O-----;-OO--;-OOOO-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-:: %=;;;#ooo=;;#o-;.oO;;;;;=o#:%#-;;O:%:-;;-#o%=;;+#%%o% ;;;;O%%%:+;$ooo=;;;;;;O##o ;O:oo +;=oo% - %%%$-#%o:.;O::#:$%o%#+;;O##-;+=:=O#ooo.== :=+Xo.= o#%#O@+;O&:o%o==#o%o == : oo#$::#*-=# :::$O=#.==##X#o%%.OX:o%&O-:#o%O;;;;;;;;*%=--+.%=;-:o%%=++:%O;O#%o%%X;;;;;+X:%:o#-+&o%%#+XoO;$: -O:$&o#:%:=;;;;;.%%%&O:# %o*;;O:%% -;;;;;.o=-X%#-&%oo#-=o&;X%#-=# O&%%:&-=::#:X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %%#-;;#%*-#%O;:%-;.%O;;;;;&%o*.%=;&%#+#:+;:#- %O;#%=-:%$;;;;; %.;;$%.+ %*;;;;;=%:X++#:O$%&- :=OO+=%:-+O.XO#o-Oo% --&oX-;;;-&%$-O#oO %$X#o$X#:=-&%$X#%#$=O;+-*oo.&$= % $#o.=.%%. %o .%#=X%% $:%XX% =XooX&o:$=X::X %=Oo%#=-;;;;;;;;Xooooo%%O+#%*=#%=+:o=+#%X=o%=;;;;;.%#O %#-*%#O$%.=%$+ %:OXoX$%%*.%.;;;;;=o --O:%#=#:-O#:=$%$+;;;;.oX=ooX*%#=.% Xo -.%:OX%&=o#=#:O=o% OO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+:%=+;+o +;-o ;#%-;$%O;;;;;.%X;O%=;#%.O %=O%#O %X-o ;;X%$;;;;;.%=;;#:+;;#:-;;;;$%$;;=o:=$o#-#%.-+;=%#+;;--+Xo=Oo:-;;=%=;;;;;=o:-=%.=:#O-&%:* oX-&%.X o&O-;;+=.%.=OOX::*=&:o& %$=&% X&%:XX% X=$%.&% =Xo:XXo:X= % &.%&Ooo=-;;;;;;;;;Xo#.  :%=-o.-+Oo +:%O=%*+-.%*;;;;+#oO+-:#-#o=;+#:X: O#%:= o=$% -=: ;;;;;O:#+;O::O+ oO=%:=.o#-;;;;$%o%o$O o=-O#:&o#=#oo**o=.%.&#%$=o:O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+:%O;;Oo=;;+:#;:%O; %O;;;;;.%O;-%*;#%o%%%O.%%%%%==%$;;*% ;;;;;.%=;-:#;;;$:-;;;;$%$;;X%%%%%#+O:%o$+=%#+;+$%%%:O=%:+;;=%=;;;;;O o=.oO=% O-*oo& oX-&%.X#oX;+;;+= o*-;-*%#X-X:o$ o*O*% =*%:X*%.XO&% &%.=Xo:XXo:X=#%%%%%.O:o=;;;;;;;;;;*%XO;- %O=%=;;+:#-:oO.%=;; %X;;;;;:#O;;##-##O;;#%O#: :#oX# -$%.;Oo ;;;;;O: ;;O: ;; oOX%%%%%#-;;;;$%&=OOO##O;-&o& :.o#o##:O#%o%%o.=%:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+:oO;;+o*+;+:#;#%-;$%=;;;;;.%X;-oX;#o=+++; %$;+-;O%$;;O%&;;;;;.%=;;##;;;##+;;;;$%X;;=%#+--+++-=#oX=%#;;Xo -$o=O%:+;;=o=;;;;;+X%#:#-=o#O-&o#*#oX=.%.X#oX++@;+=$%$OO=*:#*=$::$ %$X$% &$%:$$o *X.%.$% X&o:XX%oX= %.&XXOOooO;;+-;;;;;;&%=;;+ %==o*+;-:.+:oO.o=;;.%=;;;;+#:O;;#:O#oO;;#oO$:%#=#:o.;$%$;O:.;;;;;Oo ;;O: +;.oOX% -OO-+;;;;.%=;;;O :O;O o=&%#:X:o:.O o*===O=oo-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+:%O;;;:oO- %O;#%O=o%=;;;;;$%X;-%X;$%#+;=--::-;O-+::+-o%$;;;;;$%=;; %=;=o#;;;;;*%.;;O#%=;-O;O=- %&Oo:-+=%$-#o=O%:+;;=% -+;;;;O:%:O;O#o$& %.X %..%%.X oX;++--O&%:.$ $#% $ o $ o$&$% $$%:$$%o..o%..o:. %oXXo%$=$%:$**==o:=;;*#O;;;;;X%=;;+#%O+:oO-.%X+:%=Oo#O=o%=;;;;;#%&-&%#- %.+=% +=o%&+ %:=;$% ;Oo ;;;;;-:#-;Oo ;;.oO-:%=+O=+;;;;.o=;;;;.%.OXo#-X%% O %:=;&%#=O===%:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+:%O;;;-:%o%.+;=:%o:%=;;;;;.%=;OoX;+.%o%o=;=o%o%*;=o%:o% ;;;;;-:%:+;#%%%:+;;;;;*% ;;;O:%o%#+ %o% ++.%o.Oo%ooo:&%#;;;O:%#-;;;;O&%#-;-X:%o%#XO*o%o %.=#o=--O===* %o%o$.:%o%:.$#%$&.%#$$%:$$ooo%% $&:%%:o:$X %o X.o%%%.Xoo=+-#%=;;;;;*%X;;+#%=;O:o%% -+:oO+.%%oo%X;;;;;-:%%#o:--#%%%:O;O:%X; %#-;.%.;Oo ;;;;;-.%%*O:#;; oO+=:%o%#+;;;;.o*;;;;O#%o%:=+=:o$-&%#-;O.%%%o&=o:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+OO;;;;;-OOO+;;;+O-+-;;;;;;+-+;;-+;;;----;;;+---;;-+--+-+;;;;;++++;;+---;;;;;;;-O+;;;;+O--;;+-OO-;;-OO-+-OO--O---;;;;O==+;;;;-*%X-;;OX&&*=-+=*&&XX=O=*===XXX**$....&&.....&&$.&*&.$*&..$$o#..$$&*$.....&&$..&XX&&$&=OXXO;-=XO;;;;;-=-;;+-O-;;-OOO+;;-O-;+OO--O-;;;;;;--O----;+-OO-+;;OO+;+O--;-=O;+--;;;;;;+OO-+O-;;+-+;;-OOO-;;;;;O=-;;;;+O===O-;-==O;OOO;;;O===OO-==-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O#oO+;;-+-----+-+-OOOO==XX******&&&&$&&&&&&&&&&&&&&&&**&&$$.% $$&&**&&&**********XXX==OO---++---+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=#.O@@;;;@@;@;;;;+OO=XXXX********&**&&&&&*&&****&*&******&&$o $&&&******************XX==O;;;;;@;;@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O=O-@;;@;-+;;;--O==XX************&&***********************&&$$&***&********************XX=O--+@;+;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;@;;;;;++;--;;-O===X*****************************************&&&***************************XX==O+;-+++-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=O+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-X-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O=-;;;++;@@@@;@;-;;-;;;;+;;--==XX****************$.$**************&******************************************X=OO-+;@;;;++;;O=O;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-=O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+#:O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;X%%o=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;XoX;@@--@@-;;O;@--+;;;@;-+O==XXX*****************$o *************&&&&&*&&&*************************************X=O-+++++O-;+Xo=;;;;;;;;;;;;;;;;+#oo%#O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;X%$;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+:%O;;;;;;;;;;;;;+O+;;--;;;;;;;;;;;;;;;;;;;;;;;+:#--+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&%X-;@@;@@@@;+;@;;;@;+;+O==XX********************.% &***********&&$$$&&&&****************************************X=OO-+=$=@O$%X;;;;;;;;;;;;;;;;+:o :% -;;;;;;;;;;;;;;;OO+;;;;;;;;;;;;;;-O-;;;;;;&% ;;;;;;;;;;;;;+=O;;-O=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+:oO+-+;;+--;;+;;$oO;;#o-;;;;;;;;;;;;;;;;;;;;;;-:X;;;;;;;;;;;;;;;;;;;;;;;+;;;+++++++;;;;;+;;++++;+--O-+-OOO-;;&%&O;;;+O=X=O-@-=X=O--O=*&$&**$$$$&*&$&$$$&**&$$$.%#$&$$$$&*****&....$$$$$$$&****&$$$$$&*&$$$$&&$$$$&*&&$&&&**&&&&*X==O.o$X=.%&OO-;;;+;++;;;;;;;:#O-:%O;;;+++;;;++++++ o=+;;-+++;;-O--;Xo&++;;;;*% +++;;++;;;+++-##+;O: O-++--O--;+---O--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+::::o#-;&oO;O#O-:%o: o%% ;;#%ooO;; ##:o&;;;;;-#%%%&;$oo%X;;$::%.;;;;- o%:O;+&o%:OOo ;;O# +X%o:O+=::::*$o%o#O+$%$O@;;O&#%o.OO*:oo.==* ooo & o%%:$&.o##o:.&&.#oo#o $ ooo#&****&.oooo.$$o:oo$****.o ooo$&$o#oo$$:o%#$&.:oo:$&#:%%$***XX:%o%*$o.#%:=;+=:%%=;;;;;+:#-+#oO;- %%#O;O#o%:-*%%%#- o%o O;.#:o##%o:=;;;;X%:#%o=;-# ;;$#-X%%% =%%%#-=:%%#=-=::#o#&-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+#%:= %=+#%=;=%=; %X+-:%=-;.o$O#%=; %:X#%=;;;;;Oo -+&o.O#%X; %:=+;;;;&%.-OO;=%.=:#O:#+;&%X=%.=:#-=%% =O& = %$O&o$O@+-*::.$$=X:o. %.$#%#....o%  %:$.%%: %o$$:%  :%#.%%...&****$o%  %%.$%%#.&**** %%  %o.$o% .$:%  %.$:o.. &$% $ &***** %.&=$o% .o O=:#O:oO;;;;;::$#%*++ %X=:.+#%&O=O-#%$-+. O#%&; %:*-&%#O-;;;;X%%#=#:=O: ;;$oOOo#O-=:#=O=o:X.%#-X%o#$o#-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+:o=+-::-.%=;=oO;$oO;;#oO;;:#;;-: ;#oX;&%=;;;;;-:&;;#:+;+##;$%X;;;;;;X%#-;;+ oXO#o=Xo*+.#-.o&=#%==%#O;;OOO&% =$%$O@@;X:o.X=O$%#. o:.%o$&&& o &$#%..%#$.oo$.o:$$.% .%% $$****&.% .. %..%:.&***** % $$#%..o:.$.%:  %:.o%#$&*.%:.&&*****.%.X=.o X*:#X %.X %O;;;;+#%%%$+;-::X=o:O$%#O+;+#oX;;+-+$% ; %.+;.% ;;;;;;&%#-+$% O:#;;.oO-:#+;O:#-;.%.-O.%*X%:O=:#-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+:oO;;:o-.o=;OoO;.o=;;#oO;-:O;;;##; o-;Xo=;;;;;-:*;+:.;;; :;$o=;;;;;;+$oo.;;#oo:o:OOo.-:.-#o:oo:X=o#-;-=#o:o =$%$O@@;O$o%:$=$%o%%%:.%#&X*$#o$*&.% .%#$$:o$.% &*$% $ :%:.&***&#% .$ % .%:$*****$ %.*$ %..%#$* o%%%%:..:o%.&& %%#$&**** %.*X.%$O=:#&:%%%%%O;;;;;::=::-;O:%%%%o=-#%%.-+#%=;+=:o%%$- %X;;&%.;;;;;;X% ;;=% O: ;;.oO-:#+;O:#-;.%X;;&%.X%#-O#:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+:%O;;:#-.oO;=oO;$:O;;#:O;+:*;;;# ;.:-;=:=;;;;;-:X;+#$;;; #;X:O;;;;;;;;+$oX; #O---;+ #.#-- #=O---=:#-;=:#& o.=$o$O@;-O=*.o:*$%#...$.%:$*&$ o.*$ o..%#&$oo$.% &&$% &$. %o$***$ % $$ %..%#$*****$#o.$$ %..%#$*.%#. ..$$. oo$&$$ %:$****.%.**.%$O=o#* % $&XO;;;;+:#OXo$+Oo#=OOO++-O %X+ %X;Oo#= %.- %*;;&% ;;;;;;&%.;;*o*O:#;+ oOO: ;;=:#-;.o&+-$%.=o#-=#:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+"+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+:o&+O:X;&:=O :O;X:O;; :-;; #-;=:O;$:-;=:=;;;;;+:=;;*:O;-:X;X:-;;;;;;+-;-:*;=:*+;-+;O::$+;=:$-+OO=: -;X: &.: =$o$O;+-=&&$#o&$:o.$$ .:% $...%:..o%$.%#&$oo$$%:$.o: &...:%$***&.%:  o%..o:$*****$#%#..oo..%#$*.o% .. $ .$#%$$.$.o:$**** % $&.%$=X:#X.%:$&$X-;;;+::-+#%=+:%$--O-==-$%X; %=+&%.O#%.O %*;;$%.+;;;;;X%:OO#o=O#:O.%:O-::-+O::=-*%#O=:#OX%#-O#:-O..-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+:oo::#+;-##: :O;+## +-##X++####=;;.#-;=#O;;;;;+#O;;;$:#:*;;X#-;;;;;;-####+;;&####-;-##O;;+&####O=# -;= :# ##X&:&O@;+X:%oo#X& %%oo#&.:%oo $#%o%%.&$%:&$oo&& %oo:% $ooo%#$&*&&$ %o%% $.%:$*****& %:%oo.$.%#$*$.ooo%#$#%o%#$.o%oo &****$:%o. %.XX::X=.o%o%&O--;-#:-;-::-O:%o%:O.oo%:O;=:%#O#%%::%*.%&;;-#%o=;;;;$%%oo%.+;$%%##o=;&o%.-X%% O.%%oo&-X%:-O::-=o#-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;----O+;;;-OO--+;;++-;;+-+;;+---+;;++;;;+;;;;;;;;;;;;;+;+;;;;;;;;;;;;;+++;;;;;---+;;;++;;;;+-O-O--=O-;O=XXXXX=OX=-;;+OX&$$$**&....$*&$...$*$....&*&$$&&$$&*&...$.$&....$&&**&$$. ..$$$ $&*****$ % ...$*$..$**$.. .$$....$&&...$&*****&$..&&.&*X&XO;=&&$&=-;@;-=O-;;OO+;-O=OO+-OO=O+;+-=O-OX====O==-;;;O=O+;;;;-OO==O+;;-O=OOO+;-==O;O===;O==X=-;OXO+-O=+-=O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++-------+++;;@@;OO=X***&***********&&*&&&*************************&&**&&&$$$$$$$&*******& %.**********************************************XO;-OOOO-;;@;+-++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;;;;;;;;@;+;;;;O=XX****************&***********************************&&&&&&&&&&******& :.***********************************************=O+@;--+;;;+;;-+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;@;+;;+;;@;-O=X***********************************************************************$$&***********************************************X=O;@+;;;;;;;;--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;-+;@+O=X***********************************************************XXXXXX**********************************************************X=O;@;;;@@+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+-O=X*&********************************************************XX======XX*********************************************************X=O-;;;@@;@;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;-O=X**********************************************************XX=OO--OO=XX*********************************************************X==O-+;;;@@;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;-O=X***********************************************************X=O;;++@+O=X**********************************************************X==-+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;-O=X***********************************************************X=O+;;;;@;+O=X**********************************************************X=O-;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-O=XX***********************************************************X=-+;;;;+;;-=X***********************************************************X=O-;@;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+O=XX************************************************************XO;;;;;;;;;+OX************************************************************X=O+@;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O=X**************************************************************XO;;;;;;;;;+OXX************************************************************X=O+;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+"+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;+-;;;+O=X***************************************************************XO;;;;;;;;;+OX**************************************************************X=O+;;;++;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+"+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+-;;;O=X****************************************************************XO;;;;;;;;;;OX***************************************************************X=O;@;++;;;;;;;;;;;;;;+++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;O=X&&***************************************************************XO;;;;;;;;;;OX****************************************************************X=-@;;;;;@;;++;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-=X******************************************************************XO;;;;;;;;;;OX***************************************************************&*X=-;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+-+;@;-OX*******************************************************************XO;;;;;;;;;;OX*****************************************************************X=O;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+-;;;-O=*&******************************************************************XO;;;;;;;;;;OX******************************************************************X=O;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+O=X********************************************************************XO;;;;;;;;;;OX*******************************************************************X=O+;;;;;;;;;;;;++;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-=X********************************************************************&XO;;;;;;;;;;OX***&****************************************************************X=-@;@;+;;;;;;;++;@;;++;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;--+;;;;;;;;;;;;;;;;;;;;;;;;;;O+;+O+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;--+;;;;-=;;;;;;;;;;;;;;;;;;@+;;OX*&**************************************************&****************&XO;;;;;;;O=OO*&&*****************&*********&**********************&&&****&&&******XXOOO;;-;;+;@;+;+;@;-;+;;;;++;;+++;;;;;;;;;;;;;;;;;;;-=O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O=O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;$ O;;;+ =;;;;;;;;;;;;;;;;..+-:=;*o=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Xo=;;;O:.;;;;;;;;;;;;;;;;@;;;;O=X*&***********************************************&********************XO;;;;;;;$:O=##$&***************&$&********&*&*******************& :.&**& :.********.#X-@;+;;;+;+--;@;+;;@;;;@;+-;@;;;;;;;;;;;;;;;;;;;;X:.+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;X:X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.%X-;;O%=;;;;;;;;;;;;;;;;:#+O%X;.%X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %X;;+##O;;;;;;;;;;;;;;;;@@@@-=XX***************************************&$.*****X*&******&*************XO;;;;;;;.%==#:$&&&&&&*******&*&$ $&**&&&&**&&&&&****************$#%#$**$:%.*******& :*-@;+@@@;+=*=+@@@@@@;;@@@@@@@;;;;;;;;;;;;;;;;;;;;*% -;;;;;;;;;;;O=O;;;;;;;;;;;;;;;;;;;;;;;;;X%*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Oo#O;-$oO;;+++;;;;;;;;;;;++;=%=;$%=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;$%X;;+---;;---O-----+;;-====OOX*&&&&&******&&***&**&&*****&&****&**&*&**$::&&X*&&*X&&&&&*&******&&&&&**X=O-++--O$%=O$.$$$$..$&&*&$$$&&$#o.$&&$$$&&&$$&$$&&*&&&&&********&:%%.*& o%.*&$$$$*&$$XOO====O-O.o.XO;O===O-O====O+;;+---;;--O----+;;;;&% -+----+;;;;-=:.O+;+---+;;--+;+--;;+----+X%X---;;;----;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-#%=;-:#O;=#:o=;+  +;.#-;$.+Oo*;.%*;;&o: -;.:o:::=;;;;;=##o=;O:o:O;;O#:#:%*;+$o: O;X# #: =#:#=-X:::#$=.#:#:  ##: & o:#$*.:#o#***&##&*&$:&&#o:#$&#o%:#.:#::X* oo#$&****&.::o#&*$###:OO:o##%==##$.: #:# $$ :oo &.o%o:$$:::#$$ :.. :.*.##:#$*******&:o% &$:o%.*.::o:$$ :$= # ::.=X:%o:X=.o:#X=$# #:#X+-X#o:=+X::::: =;;;;*% -=:::#=;;;;O#%%:$-X::: -;&#*;=# --=#:: -Xo :: O;-&::#O+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-.%X-=%*-O:#=::O+:#-;#%O;##+O%X;$%X;.%.Xo$;-XO=:%X;;;;; %: --o#O#:++#o.$o%*;$o $o.-$%o  %:##% O&#. %#* oo:..:%# $.o: o:&.%o#.***& % *$:o$#%  %:$.%o $.%o#$X.o .% $***&$oo #o &$%o *O:o. %%==o%..%%o %o.$##.:%&&:% $&:% #o .#%.. %.* %:#.&*******&:#o:$$o#%.*.# #o $ % X#%o.:%$X#%#$= o .o X.%%##%.-=o#*::OO$&X#%#O;;;;&% -X#$ % -;;;O.%:*OX%:&#%.-$% ;=%#-=oo$&.-X%o  %*-Xo .o#-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O:#O :=-.% = %X+:#-;#%O;:#-O%=; %=+#:OO::O;;;X% +;;;;; %$;; %.- %&Oo#;;#%X-::=X::O$% O*%:O=:#=OX*$::&.oo.X$:o$&$:%..:o$.%#&*****.%:&.% $%#&& %#.:%$X$%:*OX:o..::.&**$#%.&$:%$.%#=;=%$O=#o==#%..%o  :%.&$$$ %&X#%$=&o:  %:.#%.. %.* % $&********&o#:%. o o.*$.. ::.#% *#% * %.= %.=X#:..:o&.%#*$o O % X %.;;-=::=+;;;;&% --OO=o#-;;;;X%#-- o=-=#:O*% ;X%#O %&O;;;X% OX% O#o$X o=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-#%X:.O-:%%%%%=+:#+;:oO;:#-O%*;.%=-:%%o%oO;;X% +;;;;;; %=;; %o%%%XX%=;;.%==o%oo%:O$%.-*%#-=:#==.o:%#&.%:&*$::&*$%%%o%o..% ******$#o.#o$.% *&.%#.ooXO&%#=;*%%oo%o&X**$:o$*$#%$$o O;$%O;-$%==:%..o:..:%.&.#:o%*=#%*O.oo%%%o.#%.. %.* %.&*********$:# o :# %.$.#::%:. % &:%$= %.= %.O*:%oo%o&.%.=$: O %%%%% ;;=o:=-;;;;;&% -O.::%#-;;;;X%#-O:#O;-$%=&% ;X%#=::O;;;;X%*-*%#=o%o%%:X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+"+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-&% oX;-#%.*&=--:#-+#%=;:#-OoX; %=-::O=OO+;Oo:+;;;;;;; %=;; %.OXO+.%=;;*%X=%#O=X=O.%$;Xo#O=:#X :. o#*.%:&*.::&&.o:. .$&.%#&*****&.%#o:&.% &X.%#.ooX+&%#=;*%o.$$$=X*&$:%$*$#%$.%.O;.%O;O$%=X:%..%:.$:%..o . %*=#%&O$% .....#%.. o.&.%.**********$o:.:o%. o $#o  o#.#% &:o$= %.= %.OX::..$&=.%.=$o.O %.X$=O+O:oX-;;;;;;&% -.o$$o -;;;;*%#-O#:O;-.o=&%.-X%:O :O;;;;X%X;X% =ooX$X=O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+"+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O:%o=;+&% OO=O-::O=ooO+#:-OoX;.%X+#%X;+-;Oo#-;;;;;;;; %=;;$%#;;-+=%#;-:%*-#o=+-OO$%.;X%#OX##*#:..::$.%:&*$#:&*&#% &&.&.%#*******$o%o$X.%:.$#%.$:o&=&%#=;=#%.**&=X*&$ % $.%:$.%.O;=% O*:o=X:%..%:$$#%. %.$#%$X#%$=Xoo$&&$$:%  :%.$ %.**&  $****$o#.#%o$.% .:o  o:. % $:%$= %.= % X=#%.&*X= %.=&: -.%#OO=O=::*O--+;;;;$% O:#=Xo#O;;;;*o#O-.%$O=o:OX% = %#-$% OOX-X%*;X%#O %$OO=O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+"+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-#% O;;O.%o:%X- %o:o%=;:#-=%&;.%$;O:%:::- %%::o=;;;;; %X;;+ oo:oX+ %::%%.;O:%::#O.%.;&%#=*o#X.%o:o% .o:**.::&*&$:%oo:$ %#&******&#%:&*$ %oo% X=.%: =%#=;O*:%:o:=X**&$:%:o%.&.% O;O#%:%o%==:%$$%o$&o%.$oo:#%:X$oo#X.oo:o#& %:o:%.. %.**$o:$****$o:..##$ %.$#%::%% #% &:%$= %.O*:o#X&:%:o:X.% =&o.;O %o:oX.%%:::#O;;;;$% O.%o#o%.;;;;O#%#$O#%:oo=+=:%:o%#-O#%:o:-X%*;X% O=#%:::=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+=&O;;;;OX$&$O;OXX===-;==+-=O;OX-;+O=&*=+O=XXXX-;;;;;O=-;;;-====-;+=*OO*-;+OXX*=-OX=+=$*O=&&O=$. . .$..**&..****$   .&$ .*******&$..**&$.   XOO=&$=O&X-;-O*..$.==X*&&.   .&&$ X-;-O$$$=$O=. &*..&&. &X&. &$.==$.$==&$..&=X   . $$. $&*&..$****&..$&$$&$.$&.   . .. $&. *=X$=-O&..=OX$..$=X$XO=&=;;O*$*$O=X&$$$&-;;;;O&=+O*&XX&=;;;;+O$&O-=&$$=-;-=&*XX=++OX.&=-OXO;O*=++=$&*&-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+OO+;----=*&&&&&***********************************&&X=O;--;;;;;;;;+;-OOOOOXX***&$$$&&*&XO+;;;;;;;;;O*&*********XOOO-OO+;OOO-+-OOOO-O=*&$$&&$$&&&********************&$$$&&&&&&*&&XOOO--;-OO-+-OOOO--O--+-+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@;O=**************************************&***X=O-+;;;;;;;;;;;;;;+;;OX****&&&&****XO;;;;;;;;;;OX**********X=-@@@@;+;;;;;;;@;-;+O=X***&&&*&&&&********************&**********X=-+;+;;;@@-;@;;;;;@@;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@;;OX**************************************&**X=O;++;;;;;;;;;;+-;@++-=X&**********XXO;;;;;;;;;;OX***********=-;;;;+;;;;;;;;;+;;@;O=X******************************************XO-@@;+-;@;;;++;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;@;+;;;;@;;-=X****************************************X=O-+;;;;;;;;;;;;++;@+;OX**&**********XO;;;;;;;;;;OX***********XO;@@+;;;;;;;;;;;;;--+O=X***********&&****************************X=O;@++;@@@;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-=O;;;;;;;;;;;;;;;;;OO+;;;;OO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-;@;;;;@@;-;OX************&&$$$&**********************X==XX-;;;;;;;;;;;;;;;-OO=X**&&******&&*XO+;;;;-=O+;O*************=O;@+;;;;;;;;;;;;-=XO-O=X*********&&$$&***************************XO-+;;@;;;;;+;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;O=-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O=-;;;;;--+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=:=;;;;;;;;;;;;;;;;; :O;;;=oX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;@;;@;;;;=X************& o%#**********************X==$:X;;;;;;;;;;;;+@@+O=X****&&****&****XO-;;;;O:#-;O*************XX=-+@;;;;;;;;;;;O##X-+O=X********&$.:.&**************************X=-;@;;;@@;;++;;;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;$#=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O #-;;;;;=#=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*%X;;;;;;;;;;;;;;;;+#%=;;O: -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@+;;+++O=X************$%:..*********************X=OX##O;;;;;;;;;;;+-@@O==*&************X*XO;;;;;=%:O;OX************&.$=-;;;;;;;;;;;;Ooo=-@-O=XX**&&&&&$.o $***************************=-@;;@@@@;;;;@@@@;+@@;;;;;;;;;;;;;;;;;;;;;;;;; o=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O#:-;;;;;=o=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;---*%=;;+---;;;;;;;;;;+#%=;;+O-;;;;;;++;;++;;;;;+++;;;;++;;;;++;+++--;;;+----;;;-==O-;-+;+-OX&&***X**&&*&&.% &***&&********&*&***&&*=OO=*=-;;;----;;;;-;O==*&*&**&*&&&&*&&$&&*O;;+--O%:O+=*&***********&:#$=O-;;+-----+;Oo:=-OO-OX&*&&$.$&$...&*&$$&&*&&&*&&&&&&&$&&&&$$&*XO;;;O===O-;-==O-@;OO---+;+---+;;+-----;;;;---.o=;;+---;;+-O--;;;;;;;----;;;;;;;;;;;;;;O#:O---;;O=O;;----;;+-+--+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O :##%X;-X#:#O;;;;;;=#: :o=;-.#:X+;$ $#:X= # O;O#:# -;=### =. #:=O#:# =;-&####&;+X#:#$O;-;;-*#:: &&.##::#*.o%o:.& ::: **.# ::#&*&.::: OX :#$-;-.:##O;;@;OX: ::#.&*&#::#&&.#.:##=--*:: %:OO::::.&&# ::#$& %%:#XO+;-  #::=-Ooo=- $O= #$$ #o:...#.&& ::#$&.:.*$##$.# :#$.#:o#&*=-+=.###XOO$#:#*-+X##:#=-=#::$O;X#  : =;+=###::=;O #:$-;=#::$;;;;;+= :# O;= .-O. -;;;;=#:$::.-;=#=;O.:: -;=#$:# O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;- %# o%=-&%#.: O;;;;O::. %%=;.o.#o=;#%% :o:#:%X;*#$#%X;&%%#O=:%#X-X# #%.-Xo: :% ;=::.#:*O@@-X#o #% & %o::%.$#%:.&.o: :o.*.%o::o &.oo  $X o$#oXO$o#.%.O@;-=.%%o#:o$&#%  o $ %:#:o&=Xo#.:%#OO## %:&&%o: %:&.%o .XXO;O%o:.%oOOoo=-o#=X::..o: :.$ % &.o# o#$.% *$::$.oo# $#%#  &*XOO$:#. *O&o#.o#XX#%#$.=Xo:.#%&-$%%# %.-=::.#%:=O :. oXO :. $;;;;;=:%.#o -X%:-O#:-;;;;O#%# #%&-=%*O$%. %$-=%o##%$+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Oo#=O.%X-#%$X:%X;;;+.o$--:%=O:#==o +#o.-$% -=o&;--+=o.;$%#-;O::O;;-OO=: O#oXO$% -.% . % =@;O$oo  %:& %#$.%#& % *$#o$&.o:&.%#$.%#&#%.X==$o:X&%:=:o*X::=@O=X.%o.&.% $%o. %o$#% $.% =#o=-=%:O-X$$:%&&o:.$o:$$o:$X**XO=o#X-*%&O:o=-o =Xoo..o: .$$ %.$:o .:%..%.*$::$.o#.&$:% $&**XOO.%#$XOO#% . %..% O-;- %$OO#o=*%#=Xo -$%.OO#o==o:X$o O#o*O-;;;;;&%.OO oX=%#-O#:-;;;;O#o=O=o:OX%&=:o**o:O=%#O=%:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;X%*-;X%*-:%oo%%X;;;+#o=;+#%O$%ooo%#-#%=;$%&;Oo.;-.::%.;&%.;;O: +;;-.::% =: -;*% -.%ooo% =@@=.%%o%%:& %.* % *.% *.o:**$:o& %.*.%#$o:*=;-$%:%o%:=%%oo%o=-=X&.%#&*.%:$%oo%%o$#%$&.%.X%:O;O%:OO.::o%$&% &&%:&&%:$**&*X*% -;Oo#Ooo=Oo O=:o$*#%o#.$ % $:%%o%%..%.*$::..% $*& o%:.&**=OX %o X=#%%o%%. %$;;;-#:=;-.%*&% -=:#- o=;-.o=$%%oo%#-Xo%:=-;;;;&%X;;X% =%#-O#:-;;;;O#:-;=#o-X%*=%%oo%:-=%&-=%#-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+"+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;X%X++X%X-:%.&&XO;;;-#%O;+#%=.% =&XO+#%=;.%$;Oo$+#:..o$;X% ;;O: +;- :. o O:#O+*%#-.% ..$XO@;= %:   .* %.*.% & %#*.o:&*$:o&.o.*.%#$o:XO;O&%#&$&==%o* $&==X*&.%#&X.%#$%:  ..$#%$*.% X%:O;O%:O$o# :%$&% $&%:$&o:$&***X$o#O;O%.OooOOo#O=:o&=$ #%:. %.$:%   .$ %.&$::..% ***$.#oo.**XOOX$#% X#% ..$X %&+;;-#o=;- %X&% ;=: - :=;-.:=&%#*.$=+-= o:=;;;;$%X--*%.=%:-O#:-;;;;=#:-;O#:OX%X=%o*.$=-X%*;=%#-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Oo#O=#%X- %.OO=O;;;- %=+=o%OO::O+--+#%=;$%.;Oo*O:#-=%.+$%.;;Oo ;;O:#=Xo#O %$X#% -$%#$XXXO@+=.:o.$$$* o.* %#*.%#*&#o.& %:&.% *.%#&#%.XXX&%:=OO=O:o*=X*=XX&&.%:..#%.$oo.$$.$ %$*.% =:o=O.%:O:%..o%$$% &$%:$&%o$*&**X$%:&=.%=Ooo=Oo#=$%o&=.. oo. % $#% $$.$.% .#%:..% **&...:% **X==&*.o#X % &XX=$o#=OOO.% O=::O&% ;=: -.%$OX:o==::=OO=;=OO %.;;;;*%#OO#o==%#O.%#O;;;;O#o&OX%#-X%XO#oXOOX-=%&;=%#-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-.%:oo%X+=:o::oX;;;;O:o:o%%=+Xoo:o.-#%=;.%X;=o*+#o:#o%=X%$;;Oo ;;- %:#o%&=:%oo% -O %::o O@-=& oo:o#* %.* % * %#&*$oo:o:$&.% *.%#&$:%::#=.%o::#OX:%#::&**&&.%%oo%#&& %o:::$#o$*$%.=X%::%%:O&%::o%:$%#&&%o$&#%: &***$oo::% OOoo=-#%::%o&X:::o $ % $.:%:::.$:oo:%:$ % **&:%:%:$***=$::oo.OX#%:::$= oo::=O#%:ooX-.% ;=o#-O:%::o:X-&oo#o ; o#o#O;;;;O %::o$-O#%:oo:-;;;;O#%o::o=+X%&-X:%#::O=%$;=%#O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O*$.X&O;+O$..$O;;;;;O$$XX=O;+=$$$O+OX-;O&O;-XO;OX.X=&O-XO;;-XO;;;O&.&X.=-OX* % -;=$...XO;OX&&.  # *$ &*$ $*$ $**&$ # $**& $*$ $XX&. .*+O*$.$=--=..  &&***.%:#  &**&. # .&. &*& *-OX.$$&*-O. #. #$ $&& .&*&.#.****$o#  .=--&&O+=$.X*$==$   $$. $&&$ ## $&$  ...&$.$**&.  #$&***XX.  $=++X.  .XO=*..XO-=...X-;=$=;O&=++=..&X&O;OX$..=;=..$=+;;;;-O$..*O;+O. $XX-;;;;-=$$$.=-;O$O;-=$..X-O&O;O$X-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;$#$.o:X+;+OO=O-;+OX*&&*&***********&&******&************=OO=O+;;;;;;;;;;O=*&&****$%#&*******&&&******&*=;;;;;;;;;;OX&***&*********&******$%#$X=-;;;;;;;;;;;++-O=*&&&&$&&**&&&&**&&&&***********&&*****X=OOOO--+-O==O-;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=:o%:*-;;;;@;+;@-=X***X********************************XO;+;;;;;;;;;;;;;OX*******$o &*****************XO;;;;;;;;;;OX*********************&: $XX=O+;;;;;;;;;;;;@+=X*************************************=;@;@@-+;@@@;;-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-O&*O-;;;;;@;;;;O=************************************X=;@+;;;;;;;;;;;;OX*&******&.$******************XO;;;;;;;;;;OX**********************.$&*&X=-;;;;;;;;;;;;;;OX***X*********************************=-;;;;;+;;@@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+-O=************************************=-@@;;;;;;;;;;;;-=******************************XO;;;;;;;;;;OX**********************&&**&X=O;;;;;;;;;;;;;;-=X*XX*********************************XO;@;+;+--;@;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-==-;;-OX******&$$**************************XO;;;;;;;;;;;;;;+OX******&$$&********************&&-;;-+;;;;;OX&**&*******&&*********&.$*&&X=-;;;;;;;;;;;;@@OX*&&&&*******************************X=;@;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;X# O@;;=X***&**$##&*************************=O-@;;;;;;;;;;;;OX*******&##&*******************$:#O;O =;;;;;OX**&#.&****&.#$*******& :$&  $XO-;;;;;;;;;;;;+-=&.:.&*******************************X=-;;;;;;;++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&% O@;+=X******$::***********************.&X=-;@;;;;;;;;;;;+=********$oo&*******************#o&-;Oo&;;;;;-X**$o#&&.**&#o&*******&:%.&#:$X=;@;;;;;;;;;;OXOOX.o.&********************************=-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;----+;;;;----;;;;--++;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;+;;;;;;;;;;;;;;;;-+;;;---;;;;&%#O@-=X&******$::*************&*&*****&.:.XO-OO--;;;;;--OOO=********$:o&***&&&*****&&&&&&*&..X-;-=O;;+--=X***.&& :$&*$.&**&&***&#%.&..&*X=OO+;+-O-+;+=#&==&.$&&&$&&&***&&&&&&*****************=O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;$###.O+& .###O-& .## -;O O;;&X=#O+;;X&+O ##O;; ###  O;;;;-$#: ;;X O;X#=;X  :$;;;;&%#=O$#:#.X****$:: :: **& ::#.*&  **$#.$o%: ==.## X+-&.=:#.XX*****.##:oo&*$###.&****$ ##:.& ###=;O X;X =## &*&#.&:%::& #&& ::# &&#%.&  $& ###=;X### O-#%:#&.#.&& ###.&&$# #: $&****************XO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.# :%=-#%%##% O#%o##o -=%X;;:#Xo -;Oo.-#:.::O;$.*#%:O;;;;$o#$ ;; o=;.%.;$%o#X;;;;&%#=&::#o#$****$:%o##% &.o:#oo$&:o&*.%.$:%:$= o# o:=O#%:#::.****&$:%#o%o&&#%#:o$****$:%: ..o:#% -O% ;$%:##%.&$% $:%##&:%$&#: %%$&#%.$%o$.o: #=+*# #%&O %  X.% &.o:#oo$&#%%:o%.$&***************XO;;;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OOO&%X- % OO#%=.%#OO#%=OoX;+::- %=; %=X%#O o&;;;O:oX-;;;;$% ++;;.o=;.%$;.% O+;;;;&% X o .:o ****$:o.&.%:&:o$*.%#&:o&*.%.&.o.=X::=O&o#= %.=.% &***$#o.&.oo&.%:. % $***$:%.&$:% .:%OO%.;.% =$%#&$%#$ %$*&:%$*$$&#%$&#%.$oo..%#$XO;OOO=o#O*%*O=.%.$:% &$o:$ %:$.% $&***************X=-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-O ##%X- %=;- %X.%X;-.%=O%*;+#:-=%$-: + %ooo%&;;O#%&+;;;;;O#%:X+; o=;.%$;.%$+;;;;;*%#*#%:oo% ****$::&*$::$o:&*$::$::&*.% $.%.O*% -;=o:O o=O&% &***$o:&*$:%$ %ooo%#$***$:o$*$%%ooo%OO%$;.%O+X%#&$% $ %$*&:%$*$##:%.&:%.$oo.$#%: =-O.##%#O=%*-O.% $::.*&:%.#%.&.% $&&&*************X=-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O#: #%X- %X+- %X.%X;- %==%X;+#:O-:# o=; %#.&.O;-#%.-;;;;;;;O$:oX; :=-.%.;.%$;;;;;;$%#*#o #  .****$::&*$::$o:&*$#:$::&& %.$ %$OX% -;=o#=#o=-$% $&**$oo&*$:o$ %# # .$***$:o$*.%%  .$OO%.;.%O;X%#&$% $ %$*&#%$$::##%.$#%.$o:$&$ :% X o $o -=%X-O.%.$o:$*&:%$#%.* %.$$$$&************X=-;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=o.O$%X-#%#O=::= % O=::OOo$-&o#-; %%#-;=o#-+---.o -;;;;;;;-O+X%.; oX=:%$;.%$;;;;;;*%#X % $$.$****$:o.& %#&#o$& %#&#o$ :% $ %.OO::OO$%.O#o=O.% $&**$#o.$ %o$.%#$$$.&***$:%$*$:o $*XOO%.;.%=;X% &.%#$ %.&&:%$ %..#%.$#%.$o:.$.$.%o&::OOo -=%&=O$% $#% &.%#$#%.*.% .. .&*************=O;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O::##%o= %o#:o&O %o#:o$+-#o::%#O;O:%X;;; o:#o==%%:###O;;;;*:#oo=;$%o#o%$; %.;;;;;;$%#=*:%:::.****$:%::o:$&.oo:o:$&#%::o% $.%o.O*o:#o#OO#o==.% $***&.oo:%%o&$#oo::#&***$:%$*&.:%:#oOO% ;.%O;X%#&.%#$$%:#$:%$$oo::%:$#%$$oo..o::%.X:%##%%XOoo:=$%.&.oo#oo$&#%.*.%.. % $*************=O;;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-=. X& O %.. *O- % . X-;;O. =XX+;+#:O;;;+X..#--*X  .$O;;;;O.  =+;O& $$.=;=.=;;;;;;=.&OO* ###$****$   # $***.## $&&& #   $&$. $;-X ..=+-X$O=$ .&****& #  . &*$ ###.&***$  &**&. # .--.O;= -;= .&$ .&&.##&. &*.##. #&.#&&  $$### XO*. $X.=-X #=X $&*. ##$&&$#$*$ $$.#.&*************XO+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-+-#%X;;;;- %*;;;;;;;;;;;;;;Oo +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OO--OX&&&&*******&&******&&&****&&&&&&*X=O;;;;;;;;;;-O=X*********&&&&*****&&&&&************&*=O;;;;;;;;;O*&&&&&***&**&********&********&&&&*XOOO-;;;;;;--+-=X**&&&&&**&&****&&&&&**************XO+;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+.oX;;;;+.o=;;;;;;;;;;;;;;X:O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+OXX********************************XO;;;;;;;;;;;@+=X************************************XO;;;;;;;;;;OX**********************************X=+@;;;;;;;;;;+OX*&********************************XO+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OXO;;;;;==-;;;;;;;;;;;;;;-O+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-+@+=X*********************************=O;;;;;;;;;;@;O=X************************************XO;;;;;;;;;;OX**********************************X=+;+;;;;;;;;;;OX**********************************XO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;-=X********************************X=O;;;;;;;;;;+;O=*************************************XO;;;;;;;;;;OX**********************************X=O;@;;;;;;;;;;-X**********************************XO+;;;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;-=X********************************X=-;;;;;;;;;;+;OX*************************************XO+;;;;;;;;;OX***********************************XO-@;;;;;;;;;;-=X*********************************X=+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=X*******************************XX=-;;;;;;;;;;-+OX*************************************XO+;;;;;;;;;OX***********************************X=-;;;;;;;;;;;+=**********************************X=-;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@+=X*******************************XX=-;;;;;;;;;;--=X*************************************XO+;;;;;;;;;OX***********************************X=-+;;;;;;;;;;;=**********************************X=-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@-=X*******************************XXO+;;;;;;;;;;+O=X*************************************X=-+;;;;;;;-=X***********************************X=O;;;;;;;;;;;;=***********************************=-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-=X*******************************XXO+;;;;;;;;;;;O=**************************************X=O+;;;;;;;OX************************************X=O+;;;;;;;;;;;O***********************************=-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-=X*******************************XXO-;;;;;;;;;;;O=***************************************X=O+;;;;+O=X************************************X=O;;;;;;;;;;;;OX*********************************X=-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-=X********************************XO;;;;;;;;;;;;O=X**************************************XX=OO-+O=X***************************************=O+;;;;;;;;;;;OX*********************************X=-;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-=X*******************************XXO+;;;;;;;;;;;O=****************************************XXX====X****************************************=O+;+;;;;;;;;;OX*********************************X=-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+=X*******************************XXO+;;;;;;;;;;;-=*******************************************XXX******************************************=O-;;;;;;;;;;;OX*********************************X=-;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=X*******************************XXO+;;;;;;;;;;;O=X***************************************************************************************=O-;;;;;;;;;;;OX*********************************X=---;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;=X********************************X=-;;;;;;;;;;+O=****************************************************************************************=O;;@;;;;;;;;;OX*********************************X=-++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;=********************************XX=-;;;;;;;;;;;O=X***************************************************************************************=O+;;;;;;;;;;;OX*********************************X=-@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+-=********************************XX=-;;;;;;;;;;;O=X***************************************************************************************=O-;;;;;;;;;;;OX********************************XX=-;+;@;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+-=X*****************************&*XX=-;;;;;;;;;;+O=*&**************************************************************************************=O+;;;;;;;;;;;OX*********************************X=-O-;@+-+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OO-;;;-=X***************************&$$&&X=-;;;;;;;;;;+O=X***************************************************************************************=-;;;;;;;;;;;;OX*********************************X=O=XO-+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O=-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OX.$*O+X$-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=&O;X#O;;;;=X************************&&.### $X=-;;;;;;;;;;;-=X***************************************************************************************=+@;;;;;;;;;;;OX******************&..$**&. $*****X==.#*O--+;+;;;;;;;;;;;;;;;;;;;-=. *O;=.=;;;;;;;;;;;;;;;;;X#=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-.:o:o=-#:O;;;;;;;;;;;;;;;;;;;;;;;;;;-;O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.%$;.o=;@;;=X************************&#o%%oo#*=+@;;;;;;;;;;;OXX********************&&*****************************************************&$&*******X=+@@;;;OO-;;;;OX******************&#o.**$#o.&&&&*X=X#%.==XO;+;;;;;;;;;;;;;;;;;;-Xoooo&;$o&;;;;;;;;;;;;;;;;;$o*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=o =*.O-==O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.%$; o=;--;OX&&&&*&&&&**&&&&&&******& o: . # *X=O-;;;;;;;;OOOX&&***&&&&&*********&$: &**&*&*****&*********&&&****&&******&**********&&&&*&.:$&&*&&&&XOOOOO+-  O+;;-=******&&&&*********&#% **$:%.$&$$$*XX#%$X. XO-+---;;;;;;;;;;;;;;O#:XX.=;=XO;;;;;;;;;;;;;;;;O$%X;-OO;;;;-OO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;X% O-;;-*&O;O&  =-;;;;+=X=..OO$.X+;O*-;+=O;;=  $-;-=  *;;+X. O;;=**  X+;;;;;.%$;.o.  &OO$# # &$## $&&   # .&****$:o.&&&&*$&.  .=++X.X .&&## &*&# ## &&&#$*&  &#%o#$*&###&&&   #*****. .##.&**$## $&&#$&&  &****&.###.&:%##$$ ###&=X.$ $$o%#*;O&##.&&  .##.&********& % $$$#%...### ** %$$oo#*OO*# XO;X$$. XO;;;;=:#=-;;;=.=;O&  &O;;;;;-=. .#:X;X#  *O=  . .$== XOO.*-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O#%#=-;-:%=- o#oo=;;;;-#%o#:::::%O; %X;Oo$;Xo: #O;*%:#.;+ %#::O; %o#o:=;;;;;.%.;$%::o:&=.%o: $#o#o:$$%%o:%#&****.o#$*****$ o:#:#=O#%o#o: o:o.&$%oo:%#&$% *$%:&#%o#$$:o#o#&&%oo#&***&#%:::%$&.o::%:&&%#&&%o&****&:o#:.&:%::$.:::% X.%:: .o%:&O o:oo$&:%o:oo.********& %### o% . ::o%.$#%.$o%#&=$:::o*; %o#oo*;;;;O.%:*O;; %.O*o::o$-;;;;=#o#:%:*; :#::==## #%:=X%#OX%:O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+= oo.O-:%==o#X$%.-;;;-#%#+ %#-O%X;$%=;O%*;#%$;;;; %X;;;=%#O$%.; % O.%$;;;;;.%.;$% O$%.X % && %#. % .oo..o:$***&.%#&X**&&$%#&=.% O % O*%#$.%#&.%:.$#%$$%.*$% &$%#&$ % $#%&&%o$&****& %#$.% $#%..:%&$o#&&o:&****&%:$&&& %.&&$$$.:o&.o#=-O:o=-=o:. % $:%#$#%.********& %oooo%o ...  %.$#%.*#:&O*o:X&o O %#=$%.;;;;;= oo =;.%$=#:$$:#O;;;;$%#=X#o*;==O$% OOO= o$O&% O*%#O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+-.oo&-:o= %::#%#O;;;-#oO;$%=;OoX;.%=;-o$;O:o#O;;=oo#O;&%o#:% ;.:=;.%$;;;;;.%.;.oX;$% X o.** %::o%# o:$.::$&*&$ %#&****&.% =+=%:O#:O;=%.=$%:&.% &&$%.$o *$%#&$%:&$:%:o:% &%:&*****&#%$*$% $%%::o%$&o#&&%:$****&#%o $&.%.**&.##%o&.%$-;Ooo=- %:::%#.:o.$ %.********& %# . :o $.  :%.$#%.X#:*=$%o#:%#= %&-$% ;;;;;;O&:% O.%$*oo##o:=;;;;.%&OO&%XO=& #% ;;= o.O;$% OXo:O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-=%#O:o=.%# ##X-;;;+#%=;.%O;OoX;&%*;OoX;;O o:O;;O %:-.%: # =; :=; %&;;;;;.%$;.o=;.%.X.%.&$ %:###. %:..::.&&&$.%:$*&&&$ %#=+=%:O oO;=%.=&%#$.%.&&.%..o &&%:&$%#&$:o####$&%#&*****&#%&*$%#$%%####&&%#*&%:&*****&#:%:$ %$*& o:#%o&.%&+;O:o=- %#### .:o.$#% &*******&#% $$.:% .#o::%.$#o.X##&=.%:## $O %$;.% ;;;;;;;-=::=.%$*oo # $O;;;;.oX;O$%X=#o#:% ;=.%#O;;*% OXo:O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O=O-=o O:o=X%.OOOO;;;;-#%=;.%=;Oo=;.%X;.%X;--;X%$;-+;#%&Oo#-+--; :=;.%.;;;;;.%.;.o=;.%.= %.&& %#.$$$.%:..::.$&&&$#%#.&$ ..%o&=$o.O#:O;=%&O&%#&.%#$.#%$.% $#%#&$%o$$#%.$&$$$%#&*****& %&*$%#$:%.&&$&&o#$ %:$*****$&$o%$.%.&$o% .oo$.%&-;-:%=-X%#.$.$.oo.$#% $..$****& % $$.:% .o:  % .#%.X#o$=*:#=OOO; %.;$% ;;;;O==O=#:=.%.=::====O;;;;$%.O=#oX&%#=.%.= o#=O;;&% =.%:O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=## oo=-:%=O.%: #.;;;;-#%=; %=;O%*;Oo:#:%X;*# :o=; :.::O+$%#&:$; o=;.%.;;;;;$%.;.oX;$% = %.&&.#o:#: .%:$.::.$&&&&.:%: #o#$ o# o:O=#o-;=%&O&%#&.%o#:%#$$o%#%%#&$:%#.$:%##:.$%:&****** %&*$%#&$:%# o&&o%#o%o&****&:##%:&$oo#.#%##o% .%X-;- %#&= %:#:#.oo.$#% $#%.****&#% $&$:% .:o##%:.#%.= %:X=$%: # ; %&;.%.;;;;O :.:%$O.%.O*oo.##O;;;;=:o :o:XX:o :o#.%%#. $=Xoo o%:O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O*###X--$ O;O.###X;;;;+& O;=#O;- O;;X##*XO;O###=;;=###=;;-$###=;X O;X#=;;;;;= =;= O;X#&=&#.&*&.##:#.$# &$  $&&**&$. :::#.X$### X+-$.-;= =-X# &.%##:#$*& #: # &&.##.&$#::#$$# &******$#&*&#.&&.#:::&&.##.# &****&####$*& #:..## .  & O;;+=.#.=*#:#:.$ #.$ #.$ #.&&**&.#.$&$ #.$.#:  #$. *=* #&OO&###X;&#=;= *;;;;-X ##$O;X#X;O*#:#.O;;;;OX##.$.=O&# ..  # ### =O&##. $O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;----+;;;;;;;---O+;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-+;;;;;+-+;;;;;;---OXX****&&&&&&&&***********&&&&&&&*&&X=O+;;;;;;;;;;+=X&.%.&&&****&&*****&&&***&&&$&&&&********&&**&***&&&&&&***&*&&******&*&&***&&&***X=O=O-+;;;;;-OOOX&$$$$$$$&&&$&$$$&&**&&&$&&&&&$&&&$$&XX===O-O==O++-----;--+;---;;;;;;OOOO;;-O-;;-OOO-;;;;;;-OOO;;;;OOOOOOOOOOOOOO;-OOO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;-=X******************************&**XO@@;;;;;;;;;;;;=X.:.***************************************************************************X=+@@@;;;;;;;;;@OXX*&&&&&&&******&****&&&&***&*&&*&*X=O-+-;+;;;+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;-=X*********************************X=-;+;;;;;;;;;;;-=$ $***********************************************************************X**X=O--@;;;;;;;;;;-=X*****&*&************&&*******&&***X=-+;;@;+;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-OX*******************************&&X=O+-+;;;;;;;;;;-OX&**************************************************************************X=O-;;@;;;;;;;;;;O=X*****&&&&&**********&&*******&&&&*X=-+;;;@;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+O-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-+;;;;;;;;;;;;;OO+;;;;;;;;;;;;@;O=*******************************&&&X=-+;;;;;;;;;;;--=X****************************&$$*************************&$&&***********&*XX=O;@;;;;;;;;;;;+OXX****&&$$$&******&&&&&&****&**&.$&*XO-+;;-++-;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OOO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=#=;=*O;;;;;;;;;;;;OX$&$*-+=-;;;;;;;;;;;;;;;;;;;;;;+#X;;;;;;;;;;;;;*#O;;;;;;;;;;;;;-O=*&****************************&&. *=-;;;;;;OXX-;;;@OX&*************&.  .&********$:.&************************&:#&*************X=O;;;;;;;;;;;;;;-=X****&&$##.&&****&$$$$$&******&$##$*=O-++;;+--;;;;;;;;;;;;;;;$ O;;;;;;;;;;;;;;;;;;;;;O .O;;;;;;;;;;;;;;;;;;;;=#.O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*%X; o=;;;;;;;;;;;;.%oo%:OXo=;;;;;;;;;;;;;;;;;;;;;;Oo.;;;;;;;;;;;;;.o=;;;;;-OO;;;;@;-OX&******&$$*******************&$#o&=O;;;;;;=:#-;;;@;=X************& :%%:.********$%#&************************&%o&***********X*XO;;;;;;;;;;;;;;;OXX***&&$.oo.$&*&**$... .&****&&&$::.*=-+==O;@@;;;;;;;;;;;;;;;; o=;;;;;;;;;;;;;;;;;;;;;=:#O;;;;;;;--;O;;;;;;;;;*%#O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;X%X;=XO;;;;;;;;;;;; %.=OO++X-;;;;;;;;;;;;;;;;;;;;;;Oo.;;;;;;;;;;;;; o=O $-;=#&-;;-O=O=X&&&&**&$#.&**&&&**********&&&&$..&X=OOO+;;OXX-;;OOO=X**X&********$oo.. .***&&&&&$% $**&***********&&&&****&&&o:$*************XO@;;;;;;;;;;;;;O=*&&&&$...:% .$$$$&$.....$&&$&$$&.::.*=OO$#&=O;;;;+O-;;;;;;;;;O :=;;;;;;;;;;;;;;;;;;;;;=:#O;;;;;;;+;;O;;;;;;;;;*%#O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-X.. %X-=XO;-X  X-;;;;;.%=;;;;-X+;-==$&O;;+=.$*-;;=$.X+-: O*X-;-X...=+; o=X%:.& %:$=O$ ..&X$. # $$#%: $&.# .$*****&$  #.$$..&$ .$.$=+O*&-;O ....X*&#  .*****$%:$&***&.#  $&$% &$ $&  &*$ &&. $# .&*&$   %:&&&   $*&..   &O;;;;;-&..$.O;-$ #.$$&.   :o.. .  .. $&. .$$. ##..::.&.$X#%#.=-@@;OX.. XO;-=$.&#o=;O&..XO;=*$.=;;;;O=.. :#O=$$$&==XO;=*=;OX...=*%#O=$X;O=..$=OO&$*$&=O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+&o::o%=-#%X-Xo::oX-;;;; % OX+; %=;#%%#o:O;Xoo##O;Ooo::O-:o::% +O#o#o:=;.:=*%o#. %o#X=#o:o#*.oo::.$:%o#$.oo:% &****$ o::#..:o$.%%::%#-=o:-O %:o%:X& %:oo.&***$:%#.&*&.:::% $$% $:o.$o%$& %$&#%o:o%$&$:ooo%:&&#%:%:&&oo%#%#=;;;;-&o::%%=-*:o:o $.#%:o%o. oo::.:%.$#% $ oo:o.$::. o &#%o#XO;;O*#o#ooX-=#o::%#=O.::o:=;.%o:$;;;;=#%:o%#O&%%: &:#O;&%*OX:%::$X%#= o&;=:%#o#OX%%::o#O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O::== %X- %XO::XXo#O;;;; %%o%=;.%X;#%#+ %X;#%&;;;-::O;+;-:%=-#:--=OO %&; o==: O-&% O+OXX& %$.%:.$$& % $$#o .::$****.%:  %#.#:$.oo.$::O=ooO&%.*$%oX&%:. %o*****$#%% $$:%..o%$.% #o.&&:o&& %$& %:$.%#$:%.& %:$.o#$ %.&o% $:%*+;;;O::==:%==:%  oo. % . oo. %:.$.:o.$ % .:% ..$$:: : X= %.X-;;@O %.O=:#=.% OX::=Xo#X.% ; %.=-;;;O o$=.%#O&%:XOX:#O;.oX=#:$=O=*o:.o$OO&%.X %&X%o$X#oO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=%*-;X%X- %X=oo##o:X;;;;.%#. -;$%*;#%O;X%*;Ooo O;X%*;;;;O: ;; oO+O$$#%$; o==: -;*%#-;-X..#:$.:%#.&$ %#&.oo::oo.****.%o:o%:.::..::*X#oO=o:O oX-*%:X*%o::%:&*****&#:% .%%::oo$$%:%.**&:%&& %$& o$&&%#&%%$*&%:&:%:::%#$o:&=#%X;;;;*%X--#%XX:o::%% :%.&.:o. % $&.:o $ %  o $&&&$:o%#*-= %.=;+;;=#:=;O %X oX;O :=.%o#:% ;.oX;;;;;=##=;=:#O$% O;=::O;$oX*%#O;;;Xo%o#O;= %#::% X%:==#:O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&%X+;X%X- %XXoo###.O;;;;.%=;;;;.%=;#%O;&%&;;O#%:-=%X;;;;-o.;;.:-O#:#o%$; o==o -;*% -;=:%#::$X$#%o & o#&.oo#::#$**** %:::# .#:..:o*X#oO=o:= oXO*o:X&%o#:#.&******&.oo.%%#:##&$%o%.&*&:%&&#o$*#%&*&%#&o:&*&%:&:%:::#.$ooX=#%=;;;;&%X--#%&X:%:#: .o:.$.:o. % $&.:%.$ %  o $&&&$:o%#&O= %.=+;+;=#:=;O %* :=;O.:X.%:###X; oX;;;;;=##=;=:#=&%#O;=##==$o**%:=;;;Xo%o#=;=#o:## XXo:O=#:O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=o#OO %X- %*O::=OOO;;;;; %=;;;; %X;#%O; %X;++;X%X-o#+;++Oo$;; :-$%.O %$-.o=O:#O+&%#-; %.$ o$X$$ %:$ % &$:o.$$$&****.%#.$$$.#o..o:&*#o=Xo:=.% &.%oX*%#.$$$&***&.$&.oo.:%.$$$&$% :% &&:%$.:%&& %&*&o#&oo$&.%o& % &&$$$oo*=#%=;;;;=o:==#%$*:% ....:% ..oo. % $$.:% .:% .o: ..$$:# %#*=.%.=O++@= %$O=::= %&O=#:=X% =O==; oX;;;;;=#:XO$%#O&%#O;=##=X:o&=#:XOO=&%:.% ==$%.====*o:==#oO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;- %  %%*- %X-.%#$  ;;;;; % $X.+&%X;#%=;$%*;X#&:o=;&%:$#O-o ;;#:-X%: :%#O.o=O o ==:o.O$%# oo $:##o#&.%o $.%o #:$****$#%# ##$::$.%o&$#o=X%:=X:%:%ooX= %# ##&***$:: #% $.oo# :&$% $:% &#%#:%%&& %&*$% & %##:%:&&#%# : &ooX=#%=;;;;O %:oo%$* oo #:..o: :%o. % $&$#%##o% .#%:#: $::$.%#X$o:.=-@@O&o:.#o&OXo:.#%:X=.%:$#.; oX;;;;;O&o: :%#O&%#O;O o :%o*O*oo. .X%#= % ==oo..#XX%:O=#:O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=#:: #=-&#=;O&#:: ;;;;;X#:#::O=#O;&#-;O#O;O::#*+;+$#:#O+ =;;= +-&:#. #=X =+=#o&-X:#&O :# # $#:: $&$ :#.&.:::#$*****$#::: $##&$##&&  == #=O*.# o:=-= #:#.&***& ::: &*& #:::&&:.&&#:&&#o# :&*$#&*&# && ::###&*$#:::$X  =O$#O;;;;;-$#.:%.&$ :::#.$ #:###..:.$&&.#:# :.&$ ::o.$  ==.#*=.:#*-@@+OX#::.O;O&:: . =;=.#::&;X =;;;;;;O$::  $O=#$O;O=#:.$ =;O$#:#*=#.O= #=O=#::#==  OO$ O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+--O-+-;+-;;;;----;;;;;-+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+------;;;;----;+---;-O=O=OO=*&*&*&&&&&*&&$&&&******&&&&&&&&*&&**&&XO+OOO=.$. % =;;O====X*****&&&****&&&&&&**&*&&&&&&&&&&***&***&&***&**&***X*&*XOO=O+;--+;;;;+X*&.o#.&&$$..$$$&$$$&&&&$&&&&&$$&&&&**&$$$&&*=O-O=OOO==O-;@;;-OOO-;;;OOOO;;;;;OOOOO;;;;;;;;;;;OOOOO;;OOO;;;OOO=;;;;;OOOOOOOO;OOOO;OOOOOO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@@@;-=X************************************X=+@;-Xoo%% XO;@@@@@-=XX**************************************************X==-@@@;;;;;;;;;;-#:o%o.$***&&&&&&***************************X=O+-;@@;@@+@;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@@;--OX*********************************&**X=O-+;O*  .=O+;@;+-;;-=X***********************************************X*XX=-;;;;;;;;;;;;;;;O$  $$&************************************X=+@;;;@;;+-@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;--O=X**&*****************************&***X=O;@+O==OO;@;+;;;;-+;OXX*********************************************XX=O-;-+;;;;;;;;;;;;;;OX**&************************************X=O+;@;;;;;-+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;-=X**&********************************&*X=O;++@@+;;@;--;;;;;;+O=X*******************************************X==-+;@@;;;;;;;;;;;;;;;O=XX*************************************X=-;;@+-;;;;;+-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-=$X=O+=X-;;;;;;;;;;;;;;;;-#O;-O+;;;;;;;;;;;;;OO;;;+-+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+@@;;OX**********$       .***************&&&*X=O;@;++;;+;;;;--;;+;@;O=X***************************************X=O-;@;+;;;;;;;;;;;;;;;+O=XX*************************************X=O;@;;+-;;;;;;+;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-$:o:o=-#:=;;;;;;;;;;;;;;;;Oo=;*o=;;;;;;;;;;;;O::-;;-:.;;;;;;;;;;;;;;;;;;;;;;;-O-;;;;;;;+;;@@;;=*&*********.%%%%%%% **************&$&***X=-;@;;;@;+;;;++;;;;@;+-==X**********************************XXX=O-@@@;;;;;;;;;;;;;;;;;O=XX**************************************X=O;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Oo#X$ =-XXO;;;;;;;;;;;;;;;;OoX;-X-;;;;;;;;;;;;O:% ;;Oo.;;;;;;;;;;;;;;;;;;;;;;+X =-;;;;++;@;OOOOX  &&&******$..#%:..$&***********&&.:.&**&*XO+;;@;@;;;;;;;;;@;;;;+OO=XX****************************XXX==O-;;;;;;;;;;;;;;;;;;;;;O=XX***************************************X=+;;+;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;X%.O;;;-XXO;O=X.=-;;;;;-=X=.o=;-O+;;O*=O+;;;;;O:%o=;-o.;;O=XO+;-$O;O=O+-=$$*OO#%#XOO$.&X=O=$..$ %: .&********&.%#&**&.  .$&&.  .$$#%# &$.  $=+@;-;;;;+++;;;;;;;;;;;;O==XXX**********************XX===O-;@@;;;;;;;;;;;;;;;;;;+O=X****************************************X=O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O#%.=-;-#%=-.oo%:O;;;;+=:ooo%=; %=;-:ooo=;;;;;Oo#:#+-o$;-:o:%X;$% ;=: -=:o::==:%o#O.o:oo.=.o%o  %o# &*********.% &**.:oo%#$.oo::.$%%o#$.oo:o$O;+;;;;++;;;;;+;;;;;;;;;;-OO=XXXX**************XXXX==OO-+;;;;;;;;;;;;;;;;;;;;;-O=XX****************************************XO-;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+X#%:X--:%==o#=$%.-;;;-::=- %=;.%=;#oO-::-;;;;Oo*X%*Oo$; %=+#:-X% ;=: -$% OOO-.%$--O=O&% =.%#&=$%#&X*..$$$$*** % &**$ $.:o$.%#.$&&.% ..:o  %oX-+@;;;+;@;;;;;;;;;;;;;;@@@;OO===XXXXXXXXXXXX====OOO-;@;+;;;;;;;;;;;;;;;;;;;;+O=X*****************************************X=O+++;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+O %%X-:%= %:##o#O;;;=o$-;OoX;.%=-#o:#ooO;;;;Oo*+::*:$+::##o%=X% ;=: -=:% =-;.%.;;OXX %#=.%.OO.%#=X.::::: *** %#&**&.  ::$.o%#.$*.% $.%%#:oo&=O;;;;+;@;;;;;;;;;;;;;;;+;@@+---OO=OOOOOOOOOOOO-+++;;;;;;;;;;;;;;;;;;;;;;;;;O=X*****************************************X=O;+-+;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-Xo O#o=.%::::&-;;;=%$+;=o=;.o=-oo::# -;;;;Oo$;Oo:o.+:o::#.O*o ;=o --=#%oX- %$;O o::%#=.% O-$%#==.#::::.***.%#&*&.:oo%:$&.:oo.$.% *.%o:::#&*=O+;;;;;;;;;;;;;;;;;;;;;;;;;++;@;+-----;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+O=XX*****************************************X=O;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O=O-Oo O:o=X%$O-OO;;;;O: O-$%=; %=;::-;;+;;;;;Oo.;;.%%X;#:-;;++&% O$% ;OOO$%#-$%.-X%#O*% =.% O-$%#XOX&&$$$&*** % &*&#o..::$$.$ %:$.% $.oo...$&$.*=-;;;;++;;;;;;;;;;;;;;;;;;;+;;;@@;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-==XX*****************************************X=O-+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=# &:oX-:%=O %#& $;;;;- %  o%X;.%X;&%:=&.-;;;;Oo*;;-#%$;=%:X$ O=o: :% ;&#& %.-$%:==::X#%:X.% O;&::.X==X*******.%#&*$#% #oo..: #%#$.%:.$ o:. :$.% X=O+;;+-;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+O==X******************************************XX=O--;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O&:::&-- #=;O o:o$;;;;;O ::##=;*:O;;=#:o#+;;;;-#=;;;X:=;;O:::#O-$::# &;=:o: O;-.:#-=oo .: =:&-@O$::.O=X*&*****.: &*&$#o: :#.ooo#$&$#o#$$ ooo#&.:#*X=OO;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-O=XX*******************************************X=O-+-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;--O-+;;--+;;-----;;;;;;---;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++;;+----;;+-O-+;;;;+++;+++;----+;;;O==O+O=*******&&&***&$$$$$&&$$$&&*&&$$&*&$$$&&&$&&*XX=O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-O==X********************************************X==+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O=X********************************************XX==O-+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O==X*********************************************XX=O+@;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;-=XX*********************************************X==O-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+-O=XX**********************************************X=O-;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;--;;O=**********************************************XXX==O-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++-O=X************************************************XX=-+;;@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;-=X************************************************XX==O--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+-OO==X*************************************************XX=O++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-O=X************************************************XXXX=OO--++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-O==XX***************************************************X=O-;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-O=X***************************************************XX==OO---;;;;+;;;;;;;;;;;;;;;;;;+-+;--OO==XX****************************************************X==-;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-OX*******************************************************X====OOO---;;;;;;;;;;;;;;++--OOO===XX*******************************************************==O+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-=X********************************************************XXXX====OOOO-OO----O-OOO=====XXXX********************************************************X=O+;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O=X**********************************************************XX*XXX=============XXXXXX************************************************************X=O;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++-=X*****************************************************************XXXXXXXXXXX*****************************************************************X=O-+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;O=X*******************************************************************************************************************************************X=O++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O=X*****************************************************************************************************************************************X=O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;O=****************************************************************************************************************************************X=O-;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-=X**************************************************************************************************************************************X=OO+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;O=X***********************************************************************************************************************************XX==-+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;@;;;;;;O=X**********************************************************************************************************************************X==O+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+@;;+@;;@;O=X********************************************************************************************************************************X==O-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;--;+;@;+-O=X*************************************************************************************************************************&&&*X=O-+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-O-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-O+;;;;;;;;;;;;;;;;;;;OOOOO=;OOOOO+;-OXO--OOOOOO=*&&$.$&$$&********&$&********************&.$&******&$$$$$$$$$$$&***&&&****&$&***&&$&************************&$$********&*&$$&XO-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OOO+;;;;-O-;;;;;;;;;;;;;;;;;;;;;;;+--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-O-;;;;- :#O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.#-;;;;;;;;;;= O;;;;;;&#      ###.O-O&#&=X$$$$XOX.. #: $ #$&*******$:$******&......$******$%: $$$$**.###:#######.***$#.***$ :.&**& #$*&&&****&..$...$********$: $****&&$$$$.:.XO-;;;;;;;;;;;;;;;;;;;;;;;==XO;;;;O==O==OO;;;;;;;;;;;;;;;;;;;;XX+O o#-;;;-$#O;;;;;;;;;;;;;;;;;;;;;;;O O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-==XXXXX==O;;-XXO;;;;;;;;;;X%X;;;;=#$#=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-#:O==O-;;+O=O#:=O=O+;;.####:o#### ==& : $ ooo% =$%%%o ..##$&&&$$$$. %...$&**$:%%o%o.******$.oo#.o **.#::%%:%%::#$***.%.***.%:#&$$.:o.. #.****$::.#:#.$***$....o: ..$&$$.... o &X=O;;;;;;;;;;;;;;;;= X;=  #%.;O&   # # #$-;;;;;;;;;;;;;;;;;;+ #+O#o O;;;-#:====O+;;O=O-;;;;;;;;;O==.oX===-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-#oooooo%%X;;+#%.=+;;;OO-;;=o$;;+-=#:X+;;;;;;;;;;;;;;;;;;;;;;;;;;;;-&o:oo%% ;;+#ooo:ooo#O;;+O=== :====OO&:o%o#**&$##X.#::o##.#: .&.::::%o%o%o#$&&$.   %:$******$...o %.**$ # %o#o: #.$*$$ %.$$$.## $.ooo%oo%:.****$o %# o:.***.oo:#%%%o%.$$#::#oo%ooo:=;;;;;;;;;;;;;;;;X%$;=::$#.;O#%######o:O;;;;;;;;;;;;;;-==X=##==.$O;;;-$o:ooo%#+;;X%#=-;;;-OO;;.%o%o:oo:O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+-OOOO-OX%X;;+-$%#O;;- :=;;=o$--=#%#-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+X:#-++=:&;;++- :O-+;;;;;;$%ooo%::%#O-X$.:.$*$$.##X&  :: ##%o%o$$   ## o.$$$&&&$$. %.$&****&$.%$$.o#$$*$oo:%o#o%#%#&$.#oo::..o:.$*$$.:   :.$****$%o#$$.%.&**$.   o:   .$$      o$OOO-;;;;;;;;;;;;;;;O$:X;O:.$ =;O#:XOOOOO##-;;;;;;;;;;;;;;X:ooo%%oo::X;;-=: ---=o&+;;-Ooo=;;;=:.;;--$:=O----;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*oX;;;;-X#=;;O::=;;=o .:o:=+;;;;;-OO=O=-;;;;-OOOOOOOO==O;+=:#=X-- :-;;;+X%::#-+OO-;;.#OO.#O=.:=O.::%:##oo::.=$%%%%%:. # o$&$$ ::oo$&&&&&&$. %:..$&**&$:.%$$ o.#$*.:  o  o  : $$o#%# #%. o.$&&$.#o:o% .$&&&.o%.&*.o#$**& .. %####.&&$$. o:%*;;;;;;;;;;;;;;;;;;;O#:=;O:#=O-;O#:=;;;;=:.-;OOOOO==OOOOO;--OO- #-OO+-;-=:#*$OO#:O;;;;-O#&;;-*%=;;-=%:::=O==-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;X%X;;;;;+--;O o*-;;=oo:.-+;;;;;;;.oooo%&;;;;Xoo:oooooo:X;O:#O % Xo +;;;=:% X:o#::-;;=%ooo%ooo#=O$  # $ :$XX==$%#::#:.:#.o$*&$:: #o.$&&&&$. %%:o%#.&*$#%.o$.%..% $$#oo:%oooo:.&&$.%.$.%..oo.&$.:%% %oo:.$&&.o#$&&.o#$&*$:oooo%:##.*XX&.:.$%$O;;;;;;;;;;;;;;;;;;O##=;O.o&;;;O..O;;;O$o$;;&o::oo::oo:X;;-##- #-##O;;O:#= %.&%.+;;;;;+--;-X: +;-=:%#.:o#::=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;X%X;;;;;;;;-$o.O;;;=oX++;;;;;;;;;++++Oo.;;;;=##########X;+--;+=:%#-;;;-::-+ oo$+;;;- #--$:--*:=O$: : $.:=-=&X$o ::##.:..o$*&.:# #% $&&&$.#%: $$.oo.*$:#.% o#$$#:$...  % .....$*& o$*$o.$.%.&.%##  o..%#$**.%.&**$o#$&&$.   :# .$&X==X #$Xo#O;;;;;;;;;;;;;;;;;OXo$O;;=o.O;;;;;;;;-=:#O;;=##########O;;Oo + #+.o=;;+-O-+=:%#O;;;;;;;;;+=::O;;O#:XO*:%.O-+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*%*;;;;;;-O o:O;;;;=oX;;;;;;;;;;;;;;;X:=;;;;;;++++++++-+;;;;;;+.%=;;;;-X--#:: ;;;;;&:o..:o .:o$=&: :%:#:X=$%$$o%%o% .o$.o$*&$#o#%o $&&&$ % ...$$.% *.%..%o:$$..%.#%o%ooo%%ooo.*$:#$&.o.*$#.$#o.:#%#$$:o$**$:$**&.%.$&*$.#::%o .$*=OO=$o#:% =;;;-=X=O;;;;;;;;;O#o=;;;O#:XO;;;;;;;= %&-;;+---------+-;-.o=- #-=: -;;;;;;- oX-;;;;;;;-O*o:=+;;-*OO:o:#+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+O======$%X;;;-==&:%.O-;;;;X%*+;;;--+;;;;;;;+ :O;;;;;;;;;;;;;;;;;;;;;- oX;;;;;;;;#:;=#;;;;;.:%######:o -&o:#.&.o.$ :&&:#:o# .o$.o$X*&$ #:o.&**&$$..%oo $.%.* o. %:$&.%.o#$$.o# . :.$$&$.%.$$#%.*&&&$:#.:%o$$.%#$**&$&*&$:o$&*&.oo  o%%:.&=O-O=&  %XO;;;O#o%.O;;;;;;;O$o$O;;;O=o#=;;;;;O= o.O;;;;;;;;;;;;;;;+=: -;  --&:=+;;;-O oX-;;;;;-O=X#%#O-;;;;;-.oO=#-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-:%%oo%:o%*;;O.#oo:=-;;;;;;-##XOO*  =;;;-OOOO#oXO-;;;;;;;;;;;;;;;;;O=:o=;;;;;;;;-##-O=-O+;;+*#++++--*:O;&%:o.&$:%%% *&# :: #: $ :*=X*&. % $&***&&.## #% o:$*$  %o.&$.%...$* :%%o% .$$*$:o...:#$****$#o %o...#o.&****$$.o%.&*&&.o   :  :%$=O-O==X#:=;;;;X:X.:=;;;;;;;=::=;;;;;O$%.;;;;OX#% =;;;;;;;;;;;;;;;;-#:O;;O=;;O:#-;;O=#o=-;;;;;;X#:%:*--;;;;;;O#:==XO=O+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+-OO--OO=#=;;-#: O--;;;;;;;+O:%ooo:#O;;; %oooooooO;;;;;;;;;;;;;;;;;.%#O;;;;;;;;;;Ooo::o% ;;;.#+;;-O= #O;#.X:o#      ..:ooo:::..##=O==$:% $&****&&&.%%:oo:$&* :o#%...::$*&$. ##o #o%#.$$o..o%o.$****&$:%#. %%:.$***** :%o.&***&$ o::o.&. &=--O=.o:=O;;;;=:.:#=;;;;;;;O$=O;;;;;;O$X;;;;=:o&O;;;;;;;;;;;;;;;;;+OO-;;-=;;-OO-;;.%:=-;;;;;;;=o =--;;;;;;;;+=:%#::%#+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+-+;;+---;;;;;;;;;;;++++-++++;;;++++++++++;;;;;;;;;;;;;;;;;..-;;;;;;;;;;;;;O==O;;;;;=$;;;O %o.-;O;-O= ######$X&**&$#. %:*O;+O*#.&&***&***&$$. .$$&**$#..#%%oo &*&#oo##$$$$ oo$&.$$$ .$******&$$$&$ .$&******$#.$&******$.. $X==X=O---O..=O;;;;;OXo:=-;;;;;;;;;;;;;;;;;;;;;;;;-O=O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;$$-+;;;;;;;;---;;;;;;;;;;;;+OOX&XO-+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;--OO-;;;;;;;-O-OOO=OOO---O===*XO-;@-O===XXX*&***&&&********&$&&$$$$$&**&$$$$$&***$$$&******************************&&&******XXXXXX=OO-O-+;++;;;;;;;;;;;OOOO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+-+;;;;--+O;;+;;;+-OO==XXX***&**&***********************************************************************XX===OO--;+;+;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;-;;;@@;;;;--O==XXX***************************************************************************X==OOO-+;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-OO;;-O-;;;;;;O=-;;O-;;;;;;;;;;;;;;;;;;-+;-----;;;;;;;;;;;;;;;;;;-OO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;--+;;;;;;;;;;;+++-;;++;;;-O;;--OO===XXX&&&***********************&$$************&$&&$..$****&$$****************X==OO-+;;;;;;;;;+-=O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;---;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.X#&$ =#$;;;-O= %*;-#X;;;+& .. OX   .O;+#&+X  #   =;;;X.-;;;;;;;;;X#XO== .O--;;-=+;;;-&=;;;;;O======-;;;;;;O:=;;;;;;;;;;;+-++++++;;-=X=-O=X*=OOO=X&.&***&*******************$#$************$#$$##%.&***$: ***************X=O-O--;O &O;;;;;;O:=O.      =;;O$$O;;;;;;;;;;;;;;;;;;;;;;;;;;OX =;;;;;;+.X;;-=#.-;;;;;;&.-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; o: o#Oo&O;;O#%%XOOO:$O-;-#ooo%=#o::%&;+#.+#o#o:#%$;;;#:O;;;;;;;+O  X :#o%::.;;Xo=;;;O:.+;;;;X%%o%%:=;;;;;;Xo=;;;;;;;;+;++;;;;--+;;O&o*OOX#o*O--O=$%$*&&&&&&***&&&&&&&&&**&&.%.$&*****&&&$$.%.$ %# &**$.% ....$&&$..$*X====OO-O=XXo *X*O;;;-o&=:o#%##%&;;O:#O;;;;;;;;O=XX=XXXXX*O;;;;;O=#oX;;;;;;O:.O-O:o:=;;;;;;$%XOOO+;-X=-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O$#:o:. o#  $OO&o&-:X:X: --#%::%= %::%*;&o:=:.+# +#.;;;# -;;;;;;;O#%## . ::* O;;.:-+-+O:#O-;;;OX&=*o.-;;;--O.:OO-O -;;;;;;;;@;;++;;;O$o$OOX o$O-OOX.o.$$...$***&$$.$$$.$&&&&$ % .$&&**&$.    o   # .&&&.:ooo%%%.&X$:o $X=O===O;=:o%oooo%$;;O.%#$%$=o$=:&;;=o$O;;;;;;;;.:ooo%o%%%:=;;;;O=#oXO;;;;-O*o:#=+X =-;;-===X::#o +;O:#+;;;O =-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O#:%%o#:##%:.X#:o%=:X:X. =-#.OO:X#$OO:&; oo*:#.::$o.;;;##;;;;;;;;+=#% X#:oo##X;;$#;=#.#oo:$;;;;;O$o&-;;;;O#oo%oo=Oo#+;;;;;;;;;+++;;+=.o$OOX o$O-=&$ %   ::%#*X&...:.$.  $&*&$ % .$$&&&&$:%oo%%%ooo:$&&.#o  . :o.X=X. % XOO= :=;O=Xo.XX=OO;;X#oo$o# %# %&;;=:&;;;;;;;;;X.$X== o.=OO;;;O&o:XO;;;;;Xo%%::&O=OO;;;.%o%%oo#X-+;O:#-;;;O#:O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-=::#o o#=  =-=#% *:=:*=:*O#%o%o= %%o%&;+#*+#o#oo#o.;;;# ;;;;;;;;;- o#...$. .O;;.#;&###o:O+;;;;O %.==O;;;O# o.- o-=%X+;;;;;;;;;+-;;-=$o$-OX o&OO*::%%oo#  %.==*#% ::..o#$**&$ %: ..$&&&&.   #o    .&&.#o  .. %.&=O==*.#=+;=o#O;;=#:#o$===O;--:$=::#o:#%*;;=:*;;;;;;;;;;;;;=##XO;;;;;-.%#=O;;;;;;+-$#OO.#:% ;;;-+---=#.-;;;-##+;;;-=: -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=o. .=:#o=:$;;O:%.:#=:&O:#O:.-X$.  O-#$;+##=:X+#&+#$;;+#.+;;;;;;;-=:##%:%%o%% ;;. ;;;;-:#;;;;+O.%o:%o.=+;-+=o*+=%=-#o+;;;;;;;;;+-;;+O&o*OO*#:&OOX . : $. : *=O=.o..o. %.&XXX&.%ooo .$&**$.o. %  %.&*& o..o: #%.=OO-OOOOO;= oXO;O$:% #%##o ;;Oo.&%&=o$=:&;;O:&;;;;OOO;;;;;O :XO;;;;;;=: OO;;;;;;;;;##+O##X&O;;;;-O==O#:=;;;-.#-;;;;-.:O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O=X%&=&=o$oX;+&#:o%*=:*##O-:*-#oo:%&+:X+=:% : -# -:.;;;# ;;;;+ #;-#ooo%$-OO-$#;; #-O;;-:#;;;+O#%:XOO*o:-;;+&:-;=%=+=o=;;;;;;;;;;;;;+-=#=-O&: XO-O=X$o$X$o#&=--O*# $..#o.X===*.%  #oo &XX$ %. % .% &XX*&*&. %%.*=--;;;;;;=$%.=;;&o#=& ooXO++O=o%.:.X:.*oX;;O:&;;;;O#.;;;;;-: O;;;;;;;-#:X-;;;;;;;;O:.;-+++;;;;;-O o%%:o -;;; #-OO-;;=o$-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;X:%oo%%=#o:=;Oo#:$O=:% oX+-:$-#o##%$+:$=#%&+$%o%%o%$;;+  +;;;O# ;+X #:#O&#. -;;;X%#*;;O:.;;;-#:OO=O--&o=;;=##+;XoO;O&=---;;;;;;;;;;;;---;O&o =-++OO&%X=$#*=O+;-=XXX&.o.X=OOOX.% &$.o#*=X.:#. %.$.:.X====X& %#$=O++;;;;O=.%#=;;;=.=.%#%=-;;-#:%&=:%%%%o%X;;O:&;;;;=oX;;;;;-#.-;;;;;;;+-#%.O+;;;;;;&oO;  ;;;;;;;=::=--=::O;;;.o==:X;;O:#-O=OO-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+Oo&.#=O&%$O; .$#X;-O=o.O;-:$-##.$o$+#.++#$;$O+#.+XO;;+##-;;- o&;; : o*+ .X#;+;;X%#;;;&:O;;;;-O=%%:=O.:=;-Xo=--X:-;;;;X#O;;;;;;;;;;;;;;;O=#:*O-;;;-Xo=-O===O+;+OO=X.:#*O----=.o.X=X$*==*.o.*.o.&$o X=OO=&.:#$=O-+;;O==&:%$OO;;;;;=o.O:=;;;--Oo*=.X=:&=$O;;O: O;-O :O;;;;;-#oXO;;;;;;;++&o#O-;;;;;##+=o=;;;;;;; o=-;;----;;;=: .#O;;-* -*o%#O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;O o%$OO:o:&O;;&:X-O=::=;;-:$-#o::%&+#$;+:$;;;;#$;;;;;; o$OO % -;; : :&X:=$#O:O;&%*;;Oo ;;;;;;O#.O#:=o#-;O :==Xo#+;;;;.% O;;;;;;;;;;;;O=$o:XO+;;;;;=% =XX #O+;+-=*.ooXO+;;;-=.%.=OO=OO=&% &X.%.XX.%XOO=&.%:$=O+;;;= #%%:XO;;;;;;;*o&O&=OO-;;Oo*;;;=o*;;;;;-#o&O=#%*-;;;;;+O:%.=O;;;;;;;+Xo#O+;;;Oo$;=o -OOO+;;*o$OOOO==;;;;-$oo +;;;--O  O:$;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-= :#%.:#=.o.O;X:X=:% O+;;-:$- #XX*O-#&+-:.;;;+: ;;;;;;-.%%%o*-;;;  #$=:#+.#X#-;=:=;O%#-;;;;;;;=%#:%o*-+;X%XX%%:X-;;;;O&%.;;;;;;;;;;;;=o%:O-;;;;;;;= %%%%o:O;;;-= % =O;;;;;+O$%$=-----OX$*==.%$=-O$O;;=:% $=-;;;;;O:: =OO;;;;;;;;O oo:#%oO;O=oX;;;Oo=;;;;;--#%%%:X-;;;;;;;-O.o%X;;;;;;;;-=o#-;;; :O;;X:%%%oO;;-.%o::o%.;;;;;O .-;;;;;;;.:$:=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=::=-Xo O+- :=;X##o#XO;;;;-#&;-+;;;.%:O-#%=;;;+ .;;;;;;;+O*O-+;;;;;=  ##+;=o:X;;;;;;-O+;;;;;;;;+O=&O-+;;;O=--=*=-;;;;;;O. ;;;;;;;;;;;;-==-+;;;;;;;;-O=====O-;;;;O==O;;;;;;;;-X#*O-+++;-O==O=*#=-;;;;;;=#*X=-;;;;;;O=OO;;;;;;;;;;;;OO=&$=O-;=::=;;;-:=;;;;;;--OX=--;;;;;;;;;;--O-;;;;;;;;;-X=-;;;--+;;+++++++;;;+O=&$=--;;;;;;;;;;;;;;;;O#%X-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+OO+;-O-;;;--+;--OO--;;;;;;--;;;;;;++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;O-++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-=O-;;;;;;+--+O==O;;;;;;;-O--+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;----;;;--+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;----;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;--+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
+";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
+};
index a45e75ee4325a9cde68fa68262daab8d65385832..1972389c866ab09a1b2c10f072ff8bda0a6f0983 100644 (file)
@@ -6,7 +6,7 @@ static const char sccsid[] = "@(#)lisa.c        5.00 2000/11/01 xlockmore";
 #endif
 
 /*-
- * Copyright (c) 1997 by Caleb Cullen.
+ * Copyright (c) 1997, 2006 by Caleb Cullen.
  *
  * Permission to use, copy, modify, and distribute this software and its
  * documentation for any purpose and without fee is hereby granted,
@@ -21,6 +21,7 @@ static const char sccsid[] = "@(#)lisa.c      5.00 2000/11/01 xlockmore";
  * other special, indirect and consequential damages.
  *
  * Revision History:
+ * 23-Feb-2006: fixed color-cycling issues
  * 01-Nov-2000: Allocation checks
  * 10-May-1997: Compatible with xscreensaver
  *
@@ -33,21 +34,36 @@ static const char sccsid[] = "@(#)lisa.c    5.00 2000/11/01 xlockmore";
  * The `lissie' module's source code was studied as an example of how
  * to incorporate a new module into xlock.  Resemblances to it are
  * expected, but not intended to be plaigiaristic.
+ *
+ * February, 2006: 21st Century Update for Lisa
+ * + fixed color-mapping: the 'beginning' of the loop always uses the
+ *     same (starting) pixel value, causing the loop's coloration to
+ *     appear solid rather than flickering as in the previous version
+ * + all lines/points in a single color are drawn at once using XDrawLines()
+ *     or XDrawPoints(); the artifacting evident in the previous version
+ *     has been masked by the use of CapNotLast to separate individual drawn
+ *     areas with intentional "whitespace" (typically black)
+ * + added many new elements to the Function[] array
+ * + randomized selection of next function
+ * + introduced concept of "rarely-chosen" functions
+ * + cleaned up code somewhat, standardized capitalization, commented all
+ *     #directives with block labels
  */
 
 #ifdef STANDALONE
 # define MODE_lisa
-# define DEFAULTS      "*delay: 25000 \n" \
+# define DEFAULTS      "*delay: 17000 \n" \
                                        "*count: 1 \n" \
-                                       "*cycles: 256 \n" \
+                                       "*cycles: 768 \n" \
                                        "*size: -1 \n" \
-                                       "*ncolors: 200 \n"
+                                       "*ncolors: 64 \n"
 # define UNIFORM_COLORS
 # define reshape_lisa 0
 # define lisa_handle_event 0
 # include "xlockmore.h"                /* in xscreensaver distribution */
 #else /* STANDALONE */
-# include "xlock.h"            /* in xlockmore distribution */
+#include "xlock.h"          /* in xlockmore distribution */
+
 #endif /* STANDALONE */
 
 #ifdef MODE_lisa
@@ -79,32 +95,49 @@ ENTRYPOINT ModeSpecOpt lisa_opts =
 ModStruct   lisa_description =
 {"lisa", "init_lisa", "draw_lisa", "release_lisa",
  "refresh_lisa", "change_lisa", (char *) NULL, &lisa_opts,
25000, 1, 256, -1, 64, 1.0, "",
- "Shows animated lisajous loops", 0, NULL};
17000, 1, 768, -1, 64, 1.0, "",
+ "Shows animated lisajous figures", 0, NULL};
 
 #endif
 
 #define  DRAWLINES    1
+/* #define  FOLLOW_FUNC_ORDER 1 */
 #define  TWOLOOPS     1
 #define  XVMAX        10       /* Maximum velocities */
 #define  YVMAX        10
 #define  LISAMAXFUNCS 2
-#define  NUMSTDFUNCS  10
+#define  NUMSTDFUNCS  28
+#define  RAREFUNCMIN  25
+#define  RAREFUNCODDS 4     /* 1:n chance a rare function will be re-randomized */
 #define  MAXCYCLES    3
 #define  MINLISAS     1
-#define  lisasetcolor() \
-if (MI_NPIXELS(mi) > 2) { \
-  XSetForeground(MI_DISPLAY(mi), MI_GC(mi), MI_PIXEL(mi, loop->color)); \
-  if (++(loop->color) >= (unsigned) MI_NPIXELS(mi)) { loop->color=0; } \
-  } else { XSetForeground(MI_DISPLAY(mi), MI_GC(mi), MI_WHITE_PIXEL(mi)); }
-#define getRadius(context) \
-  ((context->width > context->height)?context->height:context->width) * 3 / 8
-#define checkRadius(loop, context) \
-  if ((context->height / 2 > MI_SIZE(mi)) && (context->width / 2 > MI_SIZE(mi))) \
-      loop->radius = MI_SIZE(mi); \
-  if ((loop->radius < 0) || \
-      (loop->radius > loop->center.x) || \
-      (loop->radius > loop->center.y)) loop->radius = getRadius(context)
+#define  STARTCOLOR   0
+#define  STARTFUNC    24    /* if negative, is upper-bound on randomization */
+#define  LINEWIDTH    -8    /* if negative, is upper-bound on randomization */
+#define  LINESTYLE    LineSolid  /* an insane man might have fun with this :) */
+#define  LINECAP      CapNotLast /* anything else looks pretty crappy */
+#define  LINEJOIN     JoinBevel  /* this ought to be fastest */
+#define  SET_COLOR() \
+         if (MI_NPIXELS(mi) > 2) { \
+           XSetForeground(MI_DISPLAY(mi), MI_GC(mi), MI_PIXEL(mi, loop->color)); \
+         if (loop->cstep \
+             && pctr % loop->cstep == 0 \
+             && ++(loop->color) >= (unsigned) MI_NPIXELS(mi)) \
+               { loop->color=STARTCOLOR; } \
+         } else { XSetForeground(MI_DISPLAY(mi), MI_GC(mi), MI_WHITE_PIXEL(mi)); } 
+#define  GET_RADIUS(context) \
+         ((context->width > context->height)?context->height:context->width) * 3 / 8
+#define  CHECK_RADIUS(loop, context) \
+         if ((context->height / 2 > MI_SIZE(mi)) && (context->width / 2 > MI_SIZE(mi))) \
+           loop->radius = MI_SIZE(mi); \
+         if ((loop->radius < 0) || \
+           (loop->radius > loop->center.x) || \
+           (loop->radius > loop->center.y)) loop->radius = GET_RADIUS(context)
+#define  PRINT_FUNC(funcptr) \
+                printf("new function -- #%d:\n\tx = sin(%gs) * sin(%gs)\n\ty = sin(%gt) * sin(%gt)\n", \
+                           funcptr->index, \
+                           funcptr->xcoeff[0], funcptr->xcoeff[1], \
+                           funcptr->ycoeff[0], funcptr->ycoeff[1])
 
 
 typedef struct lisafunc_struct {
@@ -114,12 +147,12 @@ typedef struct lisafunc_struct {
 } lisafuncs;
 
 typedef struct lisa_struct {
-       unsigned long color;
-       int         radius, dx, dy, nsteps, nfuncs, melting;
-       double      pistep, phi, theta;
-       XPoint      center, *lastpoint;
-       lisafuncs  *function[LISAMAXFUNCS];
-       int         linewidth;
+    unsigned long color;
+    int         radius, dx, dy, nsteps, nfuncs, melting, cstep;
+    double      pistep, phi, theta;
+    XPoint      center, *lastpoint;
+    lisafuncs  *function[LISAMAXFUNCS];
+    int         linewidth;
 } lisas;
 
 typedef struct lisacontext_struct {
@@ -132,39 +165,95 @@ typedef struct lisacontext_struct {
 static lisacons *Lisa = (lisacons *) NULL;
 
 static lisafuncs Function[NUMSTDFUNCS] =
-{
+  {
+       {
+         {1.0, 2.0},
+         {1.0, 2.0}, 2, 2, 0},
+       {
+         {1.0, 2.0},
+         {1.0, 1.0}, 2, 2, 1},
+       {
+         {1.0, 3.0},
+         {1.0, 2.0}, 2, 2, 2},
+       {
+         {1.0, 3.0},
+         {1.0, 3.0}, 2, 2, 3},
+       {
+         {2.0, 4.0},
+         {1.0, 2.0}, 2, 2, 4},
+       {
+         {1.0, 4.0},
+         {1.0, 3.0}, 2, 2, 5},
+       {
+         {1.0, 4.0},
+         {1.0, 4.0}, 2, 2, 6},
+       {
+         {1.0, 5.0},
+         {1.0, 5.0}, 2, 2, 7},
+       {
+         {2.0, 5.0},
+         {2.0, 5.0}, 2, 2, 8},
+       {
+         {1.0, 2.0},
+         {2.0, 5.0}, 2, 2, 9},
+       {
+         {1.0, 2.0},
+         {3.0, 5.0}, 2, 2, 10},
+       {
+         {1.0, 2.0},
+         {2.0, 3.0}, 2, 2, 11},
        {
-               {1.0, 2.0},
-               {1.0, 2.0}, 2, 2, 0},
+         {1.0, 3.0},
+         {2.0, 3.0}, 2, 2, 12},
        {
-               {1.0, 2.0},
-               {1.0, 1.0}, 2, 2, 1},
+         {2.0, 3.0},
+         {1.0, 3.0}, 2, 2, 13},
        {
-               {1.0, 3.0},
-               {1.0, 2.0}, 2, 2, 2},
+         {2.0, 4.0},
+         {1.0, 3.0}, 2, 2, 14},
        {
-               {1.0, 3.0},
-               {1.0, 3.0}, 2, 2, 3},
+         {1.0, 4.0},
+         {2.0, 3.0}, 2, 2, 15},
        {
-               {2.0, 4.0},
-               {1.0, 2.0}, 2, 2, 4},
+         {2.0, 4.0},
+         {2.0, 3.0}, 2, 2, 16},
        {
-               {1.0, 4.0},
-               {1.0, 3.0}, 2, 2, 5},
+         {1.0, 5.0},
+         {2.0, 3.0}, 2, 2, 17},
        {
-               {1.0, 4.0},
-               {1.0, 4.0}, 2, 2, 6},
+         {2.0, 5.0},
+         {2.0, 3.0}, 2, 2, 18},        
        {
-               {1.0, 5.0},
-               {1.0, 5.0}, 2, 2, 7},
+         {1.0, 5.0},
+         {2.0, 5.0}, 2, 2, 19},
        {
-               {2.0, 5.0},
-               {2.0, 5.0}, 2, 2, 8},
+         {1.0, 3.0},
+         {2.0, 7.0}, 2, 2, 20},
        {
-               {1.0, 0.0},
-               {1.0, 0.0}, 1, 1, 9}
+         {2.0, 3.0},
+         {5.0, 7.0}, 2, 2, 21},
+       {
+         {1.0, 2.0},
+         {3.0, 7.0}, 2, 2, 22},
+       {
+         {2.0, 5.0},
+         {5.0, 7.0}, 2, 2, 23},
+       {
+         {5.0, 7.0},
+         {5.0, 7.0}, 2, 2, 24},
+       {                          /* functions past here are 'rare' and won't  */
+         {2.0, 7.0},              /* show up as often.  tweak the #defines above */
+         {1.0, 7.0}, 2, 2, 25},   /* to see them more frequently */
+       {
+         {2.0, 9.0},
+         {1.0, 7.0}, 2, 2, 26},
+       {
+         {5.0, 11.0},
+         {2.0, 9.0}, 2, 2, 27}
 };
 
+int xMaxLines;
+
 static void
 free_lisa(lisacons *lc)
 {
@@ -187,11 +276,14 @@ drawlisa(ModeInfo * mi, lisas * loop)
        lisacons   *lc = &Lisa[MI_SCREEN(mi)];
        lisafuncs **lf = loop->function;
        int         phase = lc->loopcount % loop->nsteps;
-       int         pctr, fctr, xctr, yctr;
+       int         pctr, fctr, xctr, yctr, extra_points;
        double      xprod, yprod, xsum, ysum;
 
-       /* Allocate the np array */
-       if ((np = (XPoint *) calloc(loop->nsteps, sizeof (XPoint))) == NULL) {
+    /* why carry this around in the struct when we can calculate it on demand? */
+    extra_points = loop->cstep - (loop->nsteps % loop->cstep);
+
+       /* Allocate the np (new point) array (with padding) */
+       if ((np = (XPoint *) calloc(loop->nsteps+extra_points, sizeof (XPoint))) == NULL) {
                free_lisa(lc);
                return False;
        }
@@ -199,7 +291,10 @@ drawlisa(ModeInfo * mi, lisas * loop)
        /* Update the center */
        loop->center.x += loop->dx;
        loop->center.y += loop->dy;
-       checkRadius(loop, lc);
+       CHECK_RADIUS(loop, lc);
+
+  /* check for overlaps -- where the figure might go off the screen */
+
        if ((loop->center.x - loop->radius) <= 0) {
                loop->center.x = loop->radius;
                loop->dx = NRAND(XVMAX);
@@ -280,48 +375,91 @@ drawlisa(ModeInfo * mi, lisas * loop)
                np[pctr].x = (int) ceil(xsum);
                np[pctr].y = (int) ceil(ysum);
        }
+    /* fill in extra points */
+    for (pctr=loop->nsteps; pctr < loop->nsteps+extra_points; pctr++) {
+         np[pctr].x = np[pctr - loop->nsteps].x;
+         np[pctr].y = np[pctr - loop->nsteps].y;
+    }
        if (loop->melting) {
                if (!--loop->melting) {
                        loop->nfuncs = 1;
                        loop->function[0] = loop->function[1];
                }
        }
-       for (pctr = 0; pctr < loop->nsteps; pctr++) {
 
+    /* reset starting color each time to prevent ass-like appearance */        
+    loop->color = STARTCOLOR;
+
+  if (loop->cstep < xMaxLines) {
+       /*      printf("Drawing dashes\n"); */
+       for (pctr = 0; pctr < loop->nsteps; pctr+=loop->cstep) {
 #if defined DRAWLINES
                XSetLineAttributes(MI_DISPLAY(mi), MI_GC(mi), loop->linewidth,
-                                  LineSolid, CapProjecting, JoinMiter);
+                                  LINESTYLE, LINECAP, LINEJOIN);
                /* erase the last cycle's point */
                XSetForeground(MI_DISPLAY(mi), MI_GC(mi), MI_BLACK_PIXEL(mi));
-               XDrawLine(MI_DISPLAY(mi), MI_WINDOW(mi),
-                         MI_GC(mi), lp[pctr].x, lp[pctr].y,
-                         lp[(pctr + 1) % loop->nsteps].x,
-                         lp[(pctr + 1) % loop->nsteps].y);
+               XDrawLines(MI_DISPLAY(mi), MI_WINDOW(mi), MI_GC(mi), &lp[pctr], 
+                                  loop->cstep, CoordModeOrigin);
 
                /* Set the new color */
-               lisasetcolor();
+               SET_COLOR();
 
                /* plot this cycle's point */
-               XDrawLine(MI_DISPLAY(mi), MI_WINDOW(mi),
-                         MI_GC(mi), np[pctr].x, np[pctr].y,
-                         np[(pctr + 1) % loop->nsteps].x,
-                         np[(pctr + 1) % loop->nsteps].y);
+               XDrawLines(MI_DISPLAY(mi), MI_WINDOW(mi), MI_GC(mi), 
+                                  &np[pctr], loop->cstep, CoordModeOrigin);
                XSetLineAttributes(MI_DISPLAY(mi), MI_GC(mi), 1,
-                                  LineSolid, CapProjecting, JoinMiter);
+                                                  LINESTYLE, LINECAP, LINEJOIN);
 #else
                /* erase the last cycle's point */
                XSetForeground(MI_DISPLAY(mi), MI_GC(mi), MI_BLACK_PIXEL(mi));
-               XDrawPoint(MI_DISPLAY(mi), MI_WINDOW(mi),
-                          MI_GC(mi), lp[pctr].x, lp[pctr].y);
+               XDrawPoints(MI_DISPLAY(mi), MI_WINDOW(mi), MI_GC(mi),
+                                       &lp[pctr], loop->cstep, CoordModeOrigin);
 
                /* Set the new color */
-               lisasetcolor();
+               SET_COLOR();
 
                /* plot this cycle's point */
-               XDrawPoint(MI_DISPLAY(mi), MI_WINDOW(mi),
-                          MI_GC(mi), np[pctr].x, np[pctr].y);
+               XDrawPoints(MI_DISPLAY(mi), MI_WINDOW(mi),
+                                       MI_GC(mi), &np[pctr], loop->cstep, CoordModeOrigin);
 #endif
        }
+  } else { /* on my system, cstep is larger than 65532/2 if we get here */
+       for (pctr = 0; pctr < loop->nsteps; pctr++) {
+#if defined DRAWLINES
+         XSetLineAttributes(MI_DISPLAY(mi), MI_GC(mi), loop->linewidth,
+                                                LINESTYLE, LINECAP, LINEJOIN);
+         /* erase the last cycle's point */
+         XSetForeground(MI_DISPLAY(mi), MI_GC(mi), MI_BLACK_PIXEL(mi));
+         XDrawLine(MI_DISPLAY(mi), MI_WINDOW(mi),
+                               MI_GC(mi), lp[pctr].x, lp[pctr].y,
+                               lp[(pctr + 1) % loop->nsteps].x,
+                               lp[(pctr + 1) % loop->nsteps].y);
+         
+         /* Set the new color */
+         SET_COLOR();
+         
+         /* plot this cycle's point */
+         XDrawLine(MI_DISPLAY(mi), MI_WINDOW(mi),
+                               MI_GC(mi), np[pctr].x, np[pctr].y,
+                               np[(pctr + 1) % loop->nsteps].x,
+                               np[(pctr + 1) % loop->nsteps].y);
+         XSetLineAttributes(MI_DISPLAY(mi), MI_GC(mi), 1,
+                                                LINESTYLE, LINECAP, LINEJOIN);
+#else  /* DRAWLINES */
+         /* erase the last cycle's point */
+         XSetForeground(MI_DISPLAY(mi), MI_GC(mi), MI_BLACK_PIXEL(mi));
+         XDrawPoint(MI_DISPLAY(mi), MI_WINDOW(mi),
+                                MI_GC(mi), lp[pctr].x, lp[pctr].y);
+         
+         /* Set the new color */
+         SET_COLOR();
+         
+         /* plot this cycle's point */
+         XDrawPoint(MI_DISPLAY(mi), MI_WINDOW(mi),
+                                MI_GC(mi), np[pctr].x, np[pctr].y);
+#endif  /* DRAWLINES */
+       }
+  }
        (void) free((void *) lp);
        loop->lastpoint = np;
        return True;
@@ -330,95 +468,137 @@ drawlisa(ModeInfo * mi, lisas * loop)
 static Bool 
 initlisa(ModeInfo * mi, lisas * loop)
 {
-       lisacons   *lc = &Lisa[MI_SCREEN(mi)];
-       lisafuncs **lf = loop->function;
-       XPoint     *lp;
-       int         phase, pctr, fctr, xctr, yctr;
-       double      xprod, yprod, xsum, ysum;
-
-       if (MI_NPIXELS(mi) > 2) {
-               loop->color = 0;
-       } else
-               loop->color = MI_WHITE_PIXEL(mi);
-       loop->nsteps = MI_CYCLES(mi);
-       if (loop->nsteps == 0)
-               loop->nsteps = 1;
-       lc->maxcycles = (MAXCYCLES * loop->nsteps) - 1;
-       loop->melting = 0;
-       loop->nfuncs = 1;
-       loop->pistep = 2.0 * M_PI / (double) loop->nsteps;
-       loop->center.x = lc->width / 2;
-       loop->center.y = lc->height / 2;
-       loop->radius = (int) MI_SIZE(mi);
-       checkRadius(loop, lc);
-       loop->dx = NRAND(XVMAX);
-       loop->dy = NRAND(YVMAX);
-       loop->dx++;
-       loop->dy++;
-       lf[0] = &Function[lc->loopcount % NUMSTDFUNCS];
-       if ((lp = loop->lastpoint = (XPoint *)
-            calloc(loop->nsteps, sizeof (XPoint))) == NULL) {
-               free_lisa(lc);
-               return False;
+  lisacons   *lc = &Lisa[MI_SCREEN(mi)];
+  lisafuncs **lf = loop->function;
+  XPoint     *lp;
+  int         phase, pctr, fctr, xctr, yctr, extra_points;
+  double      xprod, yprod, xsum, ysum;
+  
+  xMaxLines = (XMaxRequestSize(MI_DISPLAY(mi))-3)/2;
+  /*  printf("Got xMaxLines = %d\n", xMaxLines); */
+  loop->nsteps = MI_CYCLES(mi);
+  if (loop->nsteps == 0)
+       loop->nsteps = 1;
+  if (MI_NPIXELS(mi) > 2) {
+       loop->color = STARTCOLOR;
+       loop->cstep = (loop->nsteps > MI_NPIXELS(mi)) ? loop->nsteps / MI_NPIXELS(mi) : 1;
+  } else {
+       loop->color = MI_WHITE_PIXEL(mi);
+       loop->cstep = 0;
+  }
+  extra_points = loop->cstep - (loop->nsteps % loop->cstep);
+  lc->maxcycles = (MAXCYCLES * loop->nsteps) - 1;
+  loop->cstep = ( loop->nsteps > MI_NPIXELS(mi) ) ? loop->nsteps / MI_NPIXELS(mi) : 1;
+  /*  printf("Got cstep = %d\n", loop->cstep); */
+  loop->melting = 0;
+  loop->nfuncs = 1;
+  loop->pistep = 2.0 * M_PI / (double) loop->nsteps;
+  loop->center.x = lc->width / 2;
+  loop->center.y = lc->height / 2;
+  loop->radius = (int) MI_SIZE(mi);
+  CHECK_RADIUS(loop, lc);
+  loop->dx = NRAND(XVMAX);
+  loop->dy = NRAND(YVMAX);
+  loop->dx++;
+  loop->dy++;
+#if defined STARTFUNC
+  lf[0] = &Function[STARTFUNC];
+#else  /* STARTFUNC */
+  lf[0] = &Function[NRAND(NUMSTDFUNCS)];
+#endif  /* STARTFUNC */        
+  
+  if ((lp = loop->lastpoint = (XPoint *)
+          calloc(loop->nsteps+extra_points, sizeof (XPoint))) == NULL) {
+       free_lisa(lc);
+       return False;
+  }
+  phase = lc->loopcount % loop->nsteps;
+  
+#if defined DEBUG
+  printf( "nsteps = %d\tcstep = %d\tmrs = %d\textra_points = %d\n", 
+                 loop->nsteps, loop->cstep, xMaxLines, extra_points );
+  PRINT_FUNC(lf[0]);
+#endif  /* DEBUG */
+  
+  for (pctr = 0; pctr < loop->nsteps; pctr++) {
+       loop->phi = (double) (pctr - phase) * loop->pistep;
+       loop->theta = (double) (pctr + phase) * loop->pistep;
+       fctr = loop->nfuncs;
+       xsum = ysum = 0.0;
+       while (fctr--) {
+         xprod = yprod = (double) loop->radius;
+         xctr = lf[fctr]->nx;
+         yctr = lf[fctr]->ny;
+         while (xctr--)
+               xprod *= sin(lf[fctr]->xcoeff[xctr] * loop->theta);
+         while (yctr--)
+               yprod *= sin(lf[fctr]->ycoeff[yctr] * loop->phi);
+         xsum += xprod;
+         ysum += yprod;
        }
-       phase = lc->loopcount % loop->nsteps;
-
-       for (pctr = 0; pctr < loop->nsteps; pctr++) {
-               loop->phi = (double) (pctr - phase) * loop->pistep;
-               loop->theta = (double) (pctr + phase) * loop->pistep;
-               fctr = loop->nfuncs;
-               xsum = ysum = 0.0;
-               while (fctr--) {
-                       xprod = yprod = (double) loop->radius;
-                       xctr = lf[fctr]->nx;
-                       yctr = lf[fctr]->ny;
-                       while (xctr--)
-                               xprod *= sin(lf[fctr]->xcoeff[xctr] * loop->theta);
-                       while (yctr--)
-                               yprod *= sin(lf[fctr]->ycoeff[yctr] * loop->phi);
-                       xsum += xprod;
-                       ysum += yprod;
-               }
-               if (loop->nfuncs > 1) {
-                       xsum /= 2.0;
-                       ysum /= 2.0;
-               }
-               xsum += (double) loop->center.x;
-               ysum += (double) loop->center.y;
-
-               lp[pctr].x = (int) ceil(xsum);
-               lp[pctr].y = (int) ceil(ysum);
+       if (loop->nfuncs > 1) {
+         xsum /= 2.0;
+         ysum /= 2.0;
        }
+       xsum += (double) loop->center.x;
+       ysum += (double) loop->center.y;
+       
+       lp[pctr].x = (int) ceil(xsum);
+       lp[pctr].y = (int) ceil(ysum);
+  }
+  /* this fills in the extra points, so we can use segment-drawing calls */
+  for (pctr = loop->nsteps; pctr < loop->nsteps + extra_points; pctr++) {
+       lp[pctr].x=lp[pctr - loop->nsteps].x;
+       lp[pctr].y=lp[pctr - loop->nsteps].y;
+  }
 #if defined DRAWLINES
-       {
-               loop->linewidth = -8;   /* #### make this a resource */
-
-               if (loop->linewidth == 0)
-                       loop->linewidth = 1;
-               if (loop->linewidth < 0)
-                       loop->linewidth = NRAND(-loop->linewidth) + 1;
-               XSetLineAttributes(MI_DISPLAY(mi), MI_GC(mi), loop->linewidth,
-                                  LineSolid, CapProjecting, JoinMiter);
+  loop->linewidth = LINEWIDTH; /* #### make this a resource */
+  
+  if (loop->linewidth == 0)
+       loop->linewidth = 1;
+  if (loop->linewidth < 0)
+       loop->linewidth = NRAND(-loop->linewidth) + 1;
+  XSetLineAttributes(MI_DISPLAY(mi), MI_GC(mi), loop->linewidth,
+                                        LINESTYLE, LINECAP, LINEJOIN);
+#endif  /* DRAWLINES */
+  
+  if ( loop->cstep < xMaxLines ) { 
+       /* we can send each color segment in a single request 
+        * because the max request length is long enough 
+        * and because we have padded out the array to have extra elements 
+        * to support calls which would otherwise fall off the end*/
+       for (pctr = 0; pctr < loop->nsteps; pctr+=loop->cstep) {
+         /* Set the color */
+         SET_COLOR();
+         
+#if defined DRAWLINES
+         XDrawLines(MI_DISPLAY(mi), MI_WINDOW(mi),
+                                MI_GC(mi), &lp[pctr], loop->cstep, CoordModeOrigin );
+#else  /* DRAWLINES */
+         XDrawPoints(MI_DISPLAY(mi), MI_WINDOW(mi), MI_GC(mi),
+                                 &lp[pctr], loop->cstep, CoordModeOrigin );
+#endif  /* DRAWLINES */
        }
-#endif
-       for (pctr = 0; pctr < loop->nsteps; pctr++) {
-               /* Set the color */
-               lisasetcolor();
+  } else { /* do it one by one as before */
+       for (pctr = 0; pctr < loop->nsteps; pctr++ ) {
+         SET_COLOR();
+         
 #if defined DRAWLINES
-               XDrawLine(MI_DISPLAY(mi), MI_WINDOW(mi),
-                         MI_GC(mi), lp[pctr].x, lp[pctr].y,
-                         lp[(pctr + 1) % loop->nsteps].x,
-                         lp[(pctr + 1) % loop->nsteps].y);
-#else
-               XDrawPoint(MI_DISPLAY(mi), MI_WINDOW(mi), MI_GC(mi),
-                          lp[pctr].x, lp[pctr].y);
-#endif
+         XDrawLine(MI_DISPLAY(mi), MI_WINDOW(mi), MI_GC(mi),
+                               lp[pctr].x, lp[pctr].y,
+                               lp[pctr+1 % loop->nsteps].x, lp[pctr+1 % loop->nsteps].y);
+#else  /* DRAWLINES */
+         XDrawPoint(MI_DISPLAY(mi), MI_WINDOW(mi), MI_GC(mi),
+                                lp[pctr].x, lp[pctr].y);
+#endif  /* DRAWLINES */
        }
+  }
+  
 #if defined DRAWLINES
-       XSetLineAttributes(MI_DISPLAY(mi), MI_GC(mi), 1,
-                          LineSolid, CapProjecting, JoinMiter);
-#endif
-       return True;
+  XSetLineAttributes(MI_DISPLAY(mi), MI_GC(mi), 1,
+                                        LINESTYLE, LINECAP, LINEJOIN);
+#endif  /* DRAWLINES */
+  return True;
 }
 
 static void
@@ -455,7 +635,7 @@ static void
 change_lisa(ModeInfo * mi)
 {
        lisas      *loop;
-       int         lctr;
+       int         lctr, newfunc;
        lisacons   *lc;
 
        if (Lisa == NULL)
@@ -466,12 +646,31 @@ change_lisa(ModeInfo * mi)
 
        lc->loopcount = 0;
        for (lctr = 0; lctr < lc->nlisajous; lctr++) {
-               loop = &lc->lisajous[lctr];
-               loop->function[1] = &Function[(loop->function[0]->index + 1) %
-                                             NUMSTDFUNCS];
-               loop->melting = loop->nsteps - 1;
-               loop->nfuncs = 2;
+               loop = &lc->lisajous[lctr];       /* count through the loops we're drawing */
+       newfunc = NRAND(NUMSTDFUNCS);     /* choose a new function at random */
+#if defined FOLLOW_FUNC_ORDER
+       loop->function[1] =
+         &Function[(loop->function[0]->index + 1) % NUMSTDFUNCS];
+#else  /* FOLLOW_FUNC_ORDER */
+       if (newfunc == loop->function[0]->index) {
+         ++newfunc;
+         newfunc %= NUMSTDFUNCS;       /* take the next if we got the one we have */
+       }
+       if (newfunc >= RAREFUNCMIN \
+               && !(random() % RAREFUNCODDS) \
+               && (newfunc = NRAND(NUMSTDFUNCS)) == loop->function[0]->index) {
+         ++newfunc;
+         newfunc %= NUMSTDFUNCS;
        }
+       loop->function[1] =               /* set 2nd function pointer on the loop */
+         &Function[newfunc];             /* to the new function we just chose */
+#endif  /* FOLLOW_FUNC_ORDER */                
+#if defined DEBUG
+       PRINT_FUNC(loop->function[1]);
+#endif /* DEBUG */
+       loop->melting = loop->nsteps - 1; /* melt the two functions together */ 
+       loop->nfuncs = 2;                 /* simultaneously for a full cycle */  
+  }
 }
 
 ENTRYPOINT void
index 8ea025d0da6068ba5e3b8795718a14d61c960d27..baa9178d90120625a11234da6c7cc6b1b139eddb 100644 (file)
@@ -684,7 +684,7 @@ init_window (Display *dpy, Widget toplevel, const char *title)
   window = XtWindow (toplevel);
   XGetWindowAttributes (dpy, window, &xgwa);
   XSelectInput (dpy, window,
-                (xgwa.your_event_mask | KeyPressMask |
+                (xgwa.your_event_mask | KeyPressMask | KeyReleaseMask |
                  ButtonPressMask | ButtonReleaseMask));
   XChangeProperty (dpy, window, XA_WM_PROTOCOLS, XA_ATOM, 32,
                    PropModeReplace,
index 4390b2da118550d5bdbf9aac68393ee559d9e20a..b192e280dcbbab4a7481dc05b963275cd671ab24 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1997, 1998, 2006 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1997-2007 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -436,7 +436,7 @@ starfish_init (Display *dpy, Window window)
   st->delay2 = get_integer_resource (st->dpy, "delay2", "Delay") * 1000000;
 /*  st->duration = get_seconds_resource (st->dpy, "duration", "Seconds");*/
   st->duration = get_integer_resource (st->dpy, "duration", "Seconds");
-  st->direction = (random() % 1) ? 1 : -1;
+  st->direction = (random() & 1) ? 1 : -1;
 
   s = get_string_resource (st->dpy, "mode", "Mode");
   if (s && !strcasecmp (s, "blob"))
index 419943674272bd93c7280622d171b9acb1782a37..cd3fa4319bbf911a96d56e7323ed3320f84eb98c 100755 (executable)
@@ -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.130 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
+my $version = q{ $Revision: 1.133 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
 my $copyright = "WebCollage $version, Copyright (c) 1999-2005" .
     " Jamie Zawinski <jwz\@jwz.org>\n" .
     "            http://www.jwz.org/webcollage/\n";
@@ -283,6 +283,7 @@ my $min_gif_area = (120 * 120);
 
 my $no_output_p = 0;
 my $urls_only_p = 0;
+my $cocoa_p = 0;
 my $imagemap_base = undef;
 
 my @pids_to_kill = ();  # forked pids we should kill when we exit, if any.
@@ -2368,6 +2369,7 @@ sub gif_size($) {
   return () unless ($type =~ /GIF8[7,9]a/);
   $s = substr ($body, 6, 10);
   my ($a,$b,$c,$d) = unpack ("C"x4, $s);
+  return () unless defined ($d);
   return (($b<<8|$a), ($d<<8|$c));
 }
 
@@ -2671,9 +2673,43 @@ sub image_to_pnm($$$) {
   }
 }
 
+
+# Same as the "ppmmake" command: creates a solid-colored PPM.
+# Does not understand the rgb.txt color names except "black" and "white".
+#
+sub ppmmake($$$$) {
+  my ($outfile, $bgcolor, $w, $h) = @_;
+
+  my ($r, $g, $b);
+  if ($bgcolor =~ m/^\#?([\dA-F][\dA-F])([\dA-F][\dA-F])([\dA-F][\dA-F])$/i ||
+      $bgcolor =~ m/^\#?([\dA-F])([\dA-F])([\dA-F])$/i) {
+    ($r, $g, $b) = (hex($1), hex($2), hex($3));
+  } elsif ($bgcolor =~ m/^black$/i) {
+    ($r, $g, $b) = (0, 0, 0);
+  } elsif ($bgcolor =~ m/^white$/i) {
+    ($r, $g, $b) = (0xFF, 0xFF, 0xFF);
+  } else {
+    error ("unparsable color name: $bgcolor");
+  }
+
+  my $pixel = pack('CCC', $r, $g, $b);
+  my $bits = "P6\n$w $h\n255\n" . ($pixel x ($w * $h));
+
+  local *OUT;
+  open (OUT, ">$outfile") || error ("$outfile: $!");
+  print OUT $bits;
+  close OUT;
+}
+
+
 sub pick_root_displayer() {
   my @names = ();
 
+  if ($cocoa_p) {
+    # see "xscreensaver/hacks/webcollage-cocoa.m"
+    return "echo COCOA LOAD ";
+  }
+
   foreach my $cmd (@root_displayers) {
     $_ = $cmd;
     my ($name) = m/^([^ ]+)/;
@@ -2707,9 +2743,14 @@ sub x_or_pbm_output($) {
     LOG (($verbose_pbm || $verbose_load), "no $_ program");
   }
 
+  if ($cocoa_p && !defined ($webcollage_helper)) {
+    error ("webcollage-helper not found in Cocoa-mode!");
+  }
+
+
   # make sure the various programs we execute exist, right up front.
   #
-  my @progs = ("ppmmake");  # always need this one
+  my @progs = ();
 
   if (!defined($webcollage_helper)) {
     # Only need these others if we don't have the helper.
@@ -2785,9 +2826,8 @@ sub x_or_pbm_output($) {
 
   # Create the sold-colored base image.
   #
-  $_ = "ppmmake '$bgcolor' $img_width $img_height";
-  LOG ($verbose_pbm, "creating base image: $_");
-  nontrapping_system "$_ > $image_ppm";
+  LOG ($verbose_pbm, "creating base image: ${img_width}x${img_height}");
+  $_ = ppmmake ($image_ppm, $bgcolor, $img_width, $img_height);
 
   # Paste the default background image in the middle of it.
   #
@@ -3329,6 +3369,8 @@ sub main() {
     } elsif ($_ eq "-urls-only") {
       $urls_only_p = 1;
       $no_output_p = 1;
+    } elsif ($_ eq "-cocoa") {
+      $cocoa_p = 1;
     } elsif ($_ eq "-imagemap") {
       $imagemap_base = shift @ARGV;
       $no_output_p = 1;
@@ -3416,12 +3458,12 @@ sub main() {
     $http_proxy = $1;
   }
 
-  if (!$root_p && !$no_output_p) {
+  if (!$root_p && !$no_output_p && !$cocoa_p) {
     print STDERR $copyright;
     error "the -root argument is mandatory (for now.)";
   }
 
-  if (!$no_output_p && !$ENV{DISPLAY}) {
+  if (!$no_output_p && !$cocoa_p && !$ENV{DISPLAY}) {
     error "\$DISPLAY is not set.";
   }
 
diff --git a/hacks/webcollage-cocoa.m b/hacks/webcollage-cocoa.m
new file mode 100644 (file)
index 0000000..4df2c05
--- /dev/null
@@ -0,0 +1,337 @@
+/* xscreensaver, Copyright (c) 2006 Jamie Zawinski <jwz@jwz.org>
+ *
+ * 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 is the Cocoa shim for webcollage.
+
+    It runs the webcollage perl script
+    (in "WebCollage.saver/Contents/Resources/webcollage")
+    at the end of a pipe; each time that script updates the image file on
+    disk it prints the file name, and this program loads and displays that
+   image.
+
+    The script uses "WebCollage.saver/Contents/Resources/webcollage-helper"
+    to paste the images together in the usual way.
+  */
+
+#include <math.h>
+#include <unistd.h>
+#include <signal.h>
+#import <Cocoa/Cocoa.h>
+
+#include "screenhack.h"
+
+
+typedef struct {
+  Display *dpy;
+  Window window;
+  XWindowAttributes xgwa;
+  int delay;
+  pid_t pid;
+  FILE *pipe_fd;
+  XtInputId pipe_id;
+  Bool verbose_p;
+} state;
+
+
+static void
+subproc_cb (XtPointer closure, int *source, XtInputId *id)
+{
+  /* state *st = (state *) closure; */
+  /* st->input_available_p = True; */
+}
+
+
+/* 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);
+}
+
+
+static void
+display_image (state *st, const char *file)
+{
+  NSImage *image = [[NSImage alloc] 
+                     initWithContentsOfFile:
+                       [NSString stringWithCString: file
+                                          encoding: kCFStringEncodingUTF8]];
+
+  if (! image) {
+    fprintf (stderr, "%s: failed to load \"%s\"\n", progname, file);
+    return;
+  }
+
+  [image drawAtPoint: NSMakePoint (0, 0)
+            fromRect: NSMakeRect (0, 0, [image size].width, [image size].height)
+           operation: NSCompositeCopy
+            fraction: 1.0];
+  [image release];
+}
+
+
+static void
+open_pipe (state *st)
+{
+  /* This mess is because popen() doesn't give us the pid.
+   */
+
+  pid_t forked;
+  int fds [2];
+  int in, out;
+  char buf[1024];
+
+  char *av[20];
+  int ac = 0;
+
+  int timeout   = get_integer_resource (st->dpy, "timeout", "Timeout");
+  int delay     = get_integer_resource (st->dpy, "delay",   "Delay");
+  float opacity = get_float_resource   (st->dpy, "opacity", "Opacity");
+  char *filter  = get_string_resource  (st->dpy, "filter",  "Filter");
+  char *filter2 = get_string_resource  (st->dpy, "filter2", "Filter2");
+
+  av[ac++] = "webcollage";
+  av[ac++] = "-cocoa";
+
+  av[ac++] = "-size";
+  sprintf (buf, "%dx%d", st->xgwa.width, st->xgwa.height);
+  av[ac++] = strdup (buf);
+
+  av[ac++] = "-timeout"; sprintf (buf, "%d", timeout);
+  av[ac++] = strdup (buf);
+  av[ac++] = "-delay";   sprintf (buf, "%d", delay);
+  av[ac++] = strdup (buf);
+  av[ac++] = "-opacity"; sprintf (buf, "%.2f", opacity);
+  av[ac++] = strdup (buf);
+
+  if (filter && *filter) {
+    av[ac++] = "-filter";
+    av[ac++] = filter;
+  }
+  if (filter2 && *filter2) {
+    av[ac++] = "-filter2";
+    av[ac++] = filter2;
+  }
+
+  av[ac] = 0;
+
+
+  if (st->verbose_p) {
+    fprintf (stderr, "%s: launching:", progname);
+    int i;
+    for (i = 0; i < ac; i++)
+      fprintf (stderr, " %s", av[i]);
+    fprintf (stderr, "\n");
+  }
+
+
+  if (pipe (fds))
+    {
+      perror ("error creating pipe:");
+      exit (1);
+    }
+
+  in = fds [0];
+  out = fds [1];
+
+  switch ((int) (forked = fork ()))
+    {
+    case -1:
+      {
+        sprintf (buf, "%s: couldn't fork", progname);
+        perror (buf);
+        exit (1);
+      }
+    case 0:
+      {
+        int stdout_fd = 1;
+
+        close (in);  /* don't need this one */
+
+        if (dup2 (out, stdout_fd) < 0)         /* pipe stdout */
+          {
+            perror ("could not dup() a new stdout:");
+            exit (1);
+          }
+
+        execvp (av[0], av);                    /* shouldn't return. */
+
+        if (errno != ENOENT)
+          {
+            /* Ignore "no such file or directory" errors, unless verbose.
+               Issue all other exec errors, though. */
+            sprintf (buf, "%s: %s", progname, av[0]);
+            perror (buf);
+          }
+
+        exit (1);                              /* exits fork */
+        break;
+      }
+    default:
+      {
+        st->pipe_fd = fdopen (in, "r");
+        close (out);  /* don't need this one */
+      }
+    }
+
+  if (! st->pipe_fd) abort();
+
+  st->pid = forked;
+  st->pipe_id =
+    XtAppAddInput (XtDisplayToApplicationContext (st->dpy), 
+                   fileno (st->pipe_fd),
+                   (XtPointer) (XtInputReadMask | XtInputExceptMask),
+                   subproc_cb, (XtPointer) st);
+
+  if (st->verbose_p)
+    fprintf (stderr, "%s: subprocess pid: %d\n", progname, st->pid);
+}
+
+
+static void *
+webcollage_init (Display *dpy, Window window)
+{
+  state *st = (state *) calloc (1, sizeof(*st));
+  st->dpy = dpy;
+  st->window = window;
+  XGetWindowAttributes (st->dpy, st->window, &st->xgwa);
+
+  st->delay = 1000000;  /* check once a second */
+
+  open_pipe (st);
+
+  return st;
+}
+
+
+static unsigned long
+webcollage_draw (Display *dpy, Window window, void *closure)
+{
+  state *st = (state *) closure;
+
+  if (! st->pipe_fd) 
+    exit (1);
+
+  if (! input_available_p (fileno (st->pipe_fd)))
+    return st->delay;
+
+  char buf[10240];
+  int n = read (fileno (st->pipe_fd),
+                (void *) buf,
+                sizeof(buf) - 1);
+  if (n <= 0)
+    {
+      XtRemoveInput (st->pipe_id);
+      st->pipe_id = 0;
+      // #### sometimes hangs -- pclose (st->pipe_fd);
+      st->pipe_fd = 0;
+
+      if (st->verbose_p)
+        fprintf (stderr, "%s: subprocess has exited: bailing.\n", progname);
+
+      return st->delay * 10;
+    }
+
+  buf[n] = 0;
+  char *s = strchr (buf, '\n');
+  if (s) *s = 0;
+
+  const char *target = "COCOA LOAD ";
+  if (!strncmp (target, buf, strlen(target))) {
+    const char *file = buf + strlen(target);
+    display_image (st, file);
+  }
+
+  return st->delay;
+}
+
+
+static void
+webcollage_reshape (Display *dpy, Window window, void *closure, 
+                    unsigned int w, unsigned int h)
+{
+}
+
+
+static Bool
+webcollage_event (Display *dpy, Window window, void *closure, XEvent *event)
+{
+  return False;
+}
+
+
+static void
+webcollage_free (Display *dpy, Window window, void *closure)
+{
+  state *st = (state *) closure;
+
+  // Dammit dammit dammit!  Why won't this shit die when we pclose it!
+//  killpg (0, SIGTERM);
+
+  if (st->pid) {
+    if (st->verbose_p)
+      fprintf (stderr, "%s: kill %d\n", progname, st->pid);
+    if (kill (st->pid, SIGTERM) < 0) {
+      fprintf (stderr, "%s: kill (%d, TERM): ", progname, st->pid);
+      perror ("kill");
+    }
+    st->pid = 0;
+  }
+
+  if (st->pipe_id)
+    XtRemoveInput (st->pipe_id);
+
+  if (st->pipe_fd)
+    fclose (st->pipe_fd);
+
+  // Reap zombies.
+# undef sleep
+  sleep (1);
+  int wait_status = 0;
+  waitpid (-1, &wait_status, 0);
+
+  free (st);
+}
+
+
+static const char *webcollage_defaults [] = {
+  ".background:                black",
+  ".foreground:                white",
+
+  "*timeout:           30",
+  "*delay:             2",
+  "*opacity:           0.85",
+  "*filter:            ",
+  "*filter2:           ",
+  0
+};
+
+static XrmOptionDescRec webcollage_options [] = {
+  { "-timeout",                ".timeout",     XrmoptionSepArg, 0 },
+  { "-delay",          ".delay",       XrmoptionSepArg, 0 },
+  { "-opacity",                ".opacity",     XrmoptionSepArg, 0 },
+  { "-filter",         ".filter",      XrmoptionSepArg, 0 },
+  { "-filter2",                ".filter2",     XrmoptionSepArg, 0 },
+  { 0, 0, 0, 0 }
+};
+
+
+XSCREENSAVER_MODULE ("WebCollage", webcollage)
diff --git a/hacks/webcollage-helper-cocoa.m b/hacks/webcollage-helper-cocoa.m
new file mode 100644 (file)
index 0000000..05f95c4
--- /dev/null
@@ -0,0 +1,392 @@
+/* webcollage-helper-cocoa --- scales and pastes one image into another
+ * xscreensaver, Copyright (c) 2002-2006 Jamie Zawinski <jwz@jwz.org>
+ *
+ * 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 is the Cocoa implementation.  See webcollage-helper.c for the
+   GDK + JPEGlib implementation.
+ */
+
+#import <Cocoa/Cocoa.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/stat.h>
+
+char *progname;
+static int verbose_p = 0;
+
+static void write_image (NSImage *img, const char *file);
+
+
+/* NSImage can't load PPMs by default...
+ */
+static NSImage *
+load_ppm_image (const char *file)
+{
+  FILE *in = fopen (file, "r");
+  if (! in) return 0;
+
+  char buf[255];
+
+  char *s = fgets (buf, sizeof(buf)-1, in);            /* P6 */
+  if (!s || !!strcmp (s, "P6\n")) 
+    return 0;
+
+  s = fgets (buf, sizeof(buf)-1, in);                  /* W H */
+  if (!s)
+    return 0;
+
+  int w = 0, h = 0, d = 0;
+  if (2 != sscanf (buf, " %d %d \n", &w, &h))
+    return 0;
+  if (w <= 0 || h <= 0)
+    return 0;
+
+  s = fgets (buf, sizeof(buf)-1, in);                  /* 255 */
+  if (!s)
+    return 0;
+
+  if (1 != sscanf (buf, " %d \n", &d))
+    return 0;
+  if (d != 255)
+    return 0;
+
+  int size = (w * (h+1) * 3);
+  unsigned char *bits = malloc (size);
+  if (!bits) return 0;
+
+  int n = read (fileno (in), (void *) bits, size);     /* body */
+  if (n < 20) return 0;
+
+  fclose (in);
+  
+  NSBitmapImageRep *rep =
+    [[NSBitmapImageRep alloc]
+      initWithBitmapDataPlanes: &bits
+                    pixelsWide: w
+                    pixelsHigh: h
+                 bitsPerSample: 8
+               samplesPerPixel: 3
+                      hasAlpha: NO
+                      isPlanar: NO
+                colorSpaceName: NSDeviceRGBColorSpace
+                  bitmapFormat: NSAlphaFirstBitmapFormat
+                   bytesPerRow: w * 3
+                  bitsPerPixel: 8 * 3];
+
+  NSImage *image = [[NSImage alloc] initWithSize: NSMakeSize (w, h)];
+  [image addRepresentation: rep];
+  [rep release];
+
+  // #### 'bits' is leaked... the NSImageRep doesn't free it when freed.
+
+  return image;
+}
+
+
+static NSImage *
+load_image (const char *file)
+{
+  NSImage *image = [[NSImage alloc] 
+                     initWithContentsOfFile:
+                       [NSString stringWithCString: file
+                                          encoding: kCFStringEncodingUTF8]];
+  if (! image)
+    image = load_ppm_image (file);
+
+  if (! image) {
+    fprintf (stderr, "%s: unable to load %s\n", progname, file);
+    exit (1);
+  }
+
+  return image;
+}
+
+
+static void
+bevel_image (NSImage *img, int bevel_pct,
+             int x, int y, int w, int h, double scale)
+{
+  int small_size = (w > h ? h : w);
+
+  int bevel_size = small_size * (bevel_pct / 100.0);
+
+  bevel_size /= scale;
+
+  /* Use a proportionally larger bevel size for especially small images. */
+  if      (bevel_size < 20 && small_size > 40) bevel_size = 20;
+  else if (bevel_size < 10 && small_size > 20) bevel_size = 10;
+  else if (bevel_size < 5)    /* too small to bother bevelling */
+    return;
+
+
+  NSBitmapImageRep *rep =
+    [[NSBitmapImageRep alloc]
+      initWithBitmapDataPlanes: NULL
+                    pixelsWide: w
+                    pixelsHigh: h
+                 bitsPerSample: 8
+               samplesPerPixel: 4
+                      hasAlpha: YES
+                      isPlanar: NO
+                colorSpaceName: NSDeviceRGBColorSpace
+                  bitmapFormat: NSAlphaFirstBitmapFormat
+                   bytesPerRow: 0
+                  bitsPerPixel: 0];
+
+  int xx, yy;
+  double *ramp = (double *) malloc (sizeof(*ramp) * (bevel_size + 1));
+
+  if (!ramp)
+    {
+      fprintf (stderr, "%s: out of memory (%d)\n", progname, bevel_size);
+      exit (1);
+    }
+
+  for (xx = 0; xx <= bevel_size; xx++)
+    {
+# if 0  /* linear */
+      ramp[xx] = xx / (double) bevel_size;
+
+# else /* sinusoidal */
+      double p = (xx / (double) bevel_size);
+      double s = sin (p * M_PI / 2);
+      ramp[xx] = s;
+# endif
+    }
+
+  memset ([rep bitmapData], 0xFFFFFFFF,
+          [rep bytesPerRow] * h);
+
+  for (yy = 0; yy < h; yy++)
+    {
+      for (xx = 0; xx < w; xx++)
+        {
+          double rx, ry, r;
+
+          if (xx < bevel_size)           rx = ramp[xx];
+          else if (xx >= w - bevel_size) rx = ramp[w - xx - 1];
+          else rx = 1;
+
+          if (yy < bevel_size)           ry = ramp[yy];
+          else if (yy >= h - bevel_size) ry = ramp[h - yy - 1];
+          else ry = 1;
+
+          r = rx * ry;
+          if (r != 1)
+            {
+              unsigned int p[4];
+              p[0] = 0xFF * r;
+              p[1] = p[2] = p[3] = 0xFF;
+              [rep setPixel:p atX:xx y:yy];
+            }
+        }
+    }
+
+  free (ramp);
+
+  NSImage *bevel_img = [[NSImage alloc]
+                         initWithData: [rep TIFFRepresentation]];
+
+  [img lockFocus];
+  y = [img size].height - (y + h);
+  [bevel_img drawAtPoint: NSMakePoint (x, y)
+                fromRect: NSMakeRect (0, 0, w, h)
+               operation: NSCompositeDestinationIn /* Destination image
+                                                      wherever both images are
+                                                      opaque, transparent
+                                                      elsewhere. */
+                fraction: 1.0];
+  [img unlockFocus];
+
+  [bevel_img release];
+
+  if (verbose_p)
+    fprintf (stderr, "%s: added %d%% bevel (%d px)\n", progname,
+             bevel_pct, bevel_size);
+}
+
+
+static void
+paste (const char *paste_file,
+       const char *base_file,
+       double from_scale,
+       double opacity, int bevel_pct,
+       int from_x, int from_y, int to_x, int to_y,
+       int w, int h)
+{
+  NSImage *paste_img = load_image (paste_file);
+  NSImage *base_img  = load_image (base_file);
+
+  int paste_w = [paste_img size].width;
+  int paste_h = [paste_img size].height;
+
+  int base_w  = [base_img size].width;
+  int base_h  = [base_img size].height;
+
+  if (verbose_p)
+    {
+      fprintf (stderr, "%s: loaded %s: %dx%d\n",
+               progname, base_file, base_w, base_h);
+      fprintf (stderr, "%s: loaded %s: %dx%d\n",
+               progname, paste_file, paste_w, paste_h);
+    }
+
+  if (bevel_pct > 0)
+    bevel_image (paste_img, bevel_pct,
+                 from_x, from_y, w, h, 
+                 from_scale);
+
+  int scaled_w = w * from_scale;
+  int scaled_h = h * from_scale;
+
+  from_y = paste_h - (from_y + h);  // Cocoa flipped coordinate system
+  to_y   = base_h  - (to_y + scaled_h);
+
+  [base_img lockFocus];
+  [paste_img drawInRect: NSMakeRect (to_x, to_y, scaled_w, scaled_h)
+               fromRect: NSMakeRect (from_x, from_y, w, h)
+              operation: NSCompositeSourceOver
+               fraction: opacity];
+  [base_img unlockFocus];
+
+  if (verbose_p)
+    fprintf (stderr, "%s: pasted %dx%d (%dx%d) from %d,%d to %d,%d\n",
+             progname, w, h, scaled_w, scaled_h, from_x, from_y, to_x, to_y);
+
+  [paste_img release];
+  write_image (base_img, base_file);
+  [base_img release];
+}
+
+
+static void
+write_image (NSImage *img, const char *file)
+{
+  float jpeg_quality = .85;
+
+  // Load the NSImage's contents into an NSBitmapImageRep:
+  NSBitmapImageRep *bit_rep = [NSBitmapImageRep
+                                imageRepWithData:[img TIFFRepresentation]];
+
+  // Write the bitmapImageRep to a JPEG file.
+  if (bit_rep == nil)
+    {
+      fprintf (stderr, "%s: error converting image?\n", progname);
+      exit (1);
+    }
+
+  if (verbose_p)
+    fprintf (stderr, "%s: writing %s (q=%d%%) ", progname, file, 
+             (int) (jpeg_quality * 100));
+
+  NSDictionary *props = [NSDictionary
+                          dictionaryWithObject:
+                            [NSNumber numberWithFloat:jpeg_quality]
+                          forKey:NSImageCompressionFactor];
+  NSData *jpeg_data = [bit_rep representationUsingType:NSJPEGFileType
+                               properties:props];
+
+  [jpeg_data writeToFile:
+               [NSString stringWithCString:file]
+             atomically:YES];
+
+  if (verbose_p)
+    {
+      struct stat st;
+      if (stat (file, &st))
+        {
+          char buf[255];
+          sprintf (buf, "%.100s: %.100s", progname, file);
+          perror (buf);
+          exit (1);
+        }
+      fprintf (stderr, " %luK\n", ((unsigned long) st.st_size + 1023) / 1024);
+    }
+}
+
+
+static void
+usage (void)
+{
+  fprintf (stderr, "usage: %s [-v] paste-file base-file\n"
+           "\t from-scale opacity\n"
+           "\t from-x from-y to-x to-y w h\n"
+           "\n"
+           "\t Pastes paste-file into base-file.\n"
+           "\t base-file will be overwritten (with JPEG data.)\n"
+           "\t scaling is applied first: coordinates apply to scaled image.\n",
+           progname);
+  exit (1);
+}
+
+
+int
+main (int argc, char **argv)
+{
+  int i;
+  char *paste_file, *base_file, *s, dummy;
+  double from_scale, opacity;
+  int from_x, from_y, to_x, to_y, w, h, bevel_pct;
+
+  i = 0;
+  progname = argv[i++];
+  s = strrchr (progname, '/');
+  if (s) progname = s+1;
+
+  if (argc != 11 && argc != 12) usage();
+
+  if (!strcmp(argv[i], "-v"))
+    verbose_p++, i++;
+
+  paste_file = argv[i++];
+  base_file = argv[i++];
+
+  if (*paste_file == '-') usage();
+  if (*base_file == '-') usage();
+
+  s = argv[i++];
+  if (1 != sscanf (s, " %lf %c", &from_scale, &dummy)) usage();
+  if (from_scale <= 0 || from_scale > 100) usage();
+
+  s = argv[i++];
+  if (1 != sscanf (s, " %lf %c", &opacity, &dummy)) usage();
+  if (opacity <= 0 || opacity > 1) usage();
+
+  s = argv[i++]; if (1 != sscanf (s, " %d %c", &from_x, &dummy)) usage();
+  s = argv[i++]; if (1 != sscanf (s, " %d %c", &from_y, &dummy)) usage();
+  s = argv[i++]; if (1 != sscanf (s, " %d %c", &to_x, &dummy)) usage();
+  s = argv[i++]; if (1 != sscanf (s, " %d %c", &to_y, &dummy)) usage();
+  s = argv[i++]; if (1 != sscanf (s, " %d %c", &w, &dummy)) usage();
+  s = argv[i++]; if (1 != sscanf (s, " %d %c", &h, &dummy)) usage();
+
+  bevel_pct = 10; /* #### */
+
+  if (w < 0) usage();
+  if (h < 0) usage();
+
+
+  // Much of Cocoa needs one of these to be available.
+  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+
+  //Need an NSApp instance to make [NSImage TIFFRepresentation] work
+  NSApp = [NSApplication sharedApplication];
+  [NSApp autorelease];
+
+  paste (paste_file, base_file,
+         from_scale, opacity, bevel_pct,
+         from_x, from_y, to_x, to_y,
+         w, h);
+
+  [pool release];
+
+  exit (0);
+}
index 3f9a0747e786646eba6b83859cf0f2e32540bc79..e6e2da7a81b5c9476cad96dc377b55dd9f752595 100644 (file)
  * implied warranty.
  */
 
+/* This is the GDK + JPEGlib implementation.  See webcollage-helper-cocoa.m
+   for the Cocoa implementation.
+ */
+
 #ifdef HAVE_CONFIG_H
 # include "config.h"
 #endif
index 7d4329890093d7862fea527280055e941b482334..74e747fd918c0bb8df2c7da9830eff1c20b90af6 100644 (file)
@@ -1,4 +1,4 @@
-# Auto-generated: Mon Sep 18 19:36:43 PDT 2006
+# Auto-generated: Fri Apr 20 20:33:29 PDT 2007
 driver/demo-Gtk-conf.c
 driver/demo-Gtk-support.c
 driver/demo-Gtk-widgets.c
index ddc6f5dd8366c155269d4f233d1f2ff5b9576002..e05c697abf6575d018c496a37686785a1a754dee 100644 (file)
@@ -1,2 +1,2 @@
 static const char screensaver_id[] =
-       "@(#)xscreensaver 5.01 (18-Sep-2006), by Jamie Zawinski (jwz@jwz.org)";
+       "@(#)xscreensaver 5.02 (20-Apr-2007), by Jamie Zawinski (jwz@jwz.org)";
index 09aee67a868844feba6ee3b8ca9508ea14b602a9..3c8a7a8bd9357baeb437dee07e3500136ab406ef 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1999, 2000, 2003 by Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1999-2007 by Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -40,26 +40,28 @@ get_gl_visual (Screen *screen)
 # define R GLX_RED_SIZE
 # define G GLX_GREEN_SIZE
 # define B GLX_BLUE_SIZE
+# define A GLX_ALPHA_SIZE
 # define D GLX_DEPTH_SIZE
 # define I GLX_BUFFER_SIZE
 # define DB GLX_DOUBLEBUFFER
 # define ST GLX_STENCIL_SIZE
 
   int attrs[][20] = {
-   { GLX_RGBA, R, 8, G, 8, B, 8, D, 8, DB, ST,1, 0 }, /* rgb double, stencil */
-   { GLX_RGBA, R, 4, G, 4, B, 4, D, 4, DB, ST,1, 0 },
-   { GLX_RGBA, R, 2, G, 2, B, 2, D, 2, DB, ST,1, 0 },
-   { GLX_RGBA, R, 8, G, 8, B, 8, D, 8, DB,       0 }, /* rgb double */
-   { GLX_RGBA, R, 4, G, 4, B, 4, D, 4, DB,       0 },
-   { GLX_RGBA, R, 2, G, 2, B, 2, D, 2, DB,       0 },
-   { GLX_RGBA, R, 8, G, 8, B, 8, D, 8,           0 }, /* rgb single */
-   { GLX_RGBA, R, 4, G, 4, B, 4, D, 4,           0 },
-   { GLX_RGBA, R, 2, G, 2, B, 2, D, 2,           0 },
-   { I, 8,                       D, 8, DB,       0 }, /* cmap double */
-   { I, 4,                       D, 4, DB,       0 },
-   { I, 8,                       D, 8,           0 }, /* cmap single */
-   { I, 4,                       D, 4,           0 },
-   { GLX_RGBA, R, 1, G, 1, B, 1, D, 1,           0 }  /* monochrome */
+   { GLX_RGBA, R,8, G,8, B,8, A,8, D,8, DB, ST,1, 0 }, /* rgb double, stencil */
+   { GLX_RGBA, R,8, G,8, B,8,      D,8, DB, ST,1, 0 }, /* rgb double, stencil */
+   { GLX_RGBA, R,4, G,4, B,4,      D,4, DB, ST,1, 0 },
+   { GLX_RGBA, R,2, G,2, B,2,      D,2, DB, ST,1, 0 },
+   { GLX_RGBA, R,8, G,8, B,8,      D,8, DB,       0 }, /* rgb double */
+   { GLX_RGBA, R,4, G,4, B,4,      D,4, DB,       0 },
+   { GLX_RGBA, R,2, G,2, B,2,      D,2, DB,       0 },
+   { GLX_RGBA, R,8, G,8, B,8,      D,8,           0 }, /* rgb single */
+   { GLX_RGBA, R,4, G,4, B,4,      D,4,           0 },
+   { GLX_RGBA, R,2, G,2, B,2,      D,2,           0 },
+   { I, 8,                         D,8, DB,       0 }, /* cmap double */
+   { I, 4,                         D,4, DB,       0 },
+   { I, 8,                         D,8,           0 }, /* cmap single */
+   { I, 4,                         D,4,           0 },
+   { GLX_RGBA, R,1, G,1, B,1,      D,1,           0 }  /* monochrome */
   };
 
   int i;
index 5b6a47cecec6e070da8b3488c8b2b082b6823329..d1977d03d070541614e46bdcb66cbda5a69b89a9 100644 (file)
@@ -1,5 +1,5 @@
 %define        name xscreensaver
-%define        version 5.01
+%define        version 5.02
 
 Summary:       X screen saver and locker
 Name:          %{name}
index 76cacf7a4329276d5a24bb4e0f37ac6823b3e331..aca417b87f634f6ca0bf23c67191ed617cd82c83 100644 (file)
@@ -98,6 +98,8 @@
                                AF7778F109B6604600EA3033 /* PBXTargetDependency */,
                                AF7778EF09B6604600EA3033 /* PBXTargetDependency */,
                                AF7778ED09B6604600EA3033 /* PBXTargetDependency */,
+                               AFA33B8F0B0585A4002B0E7D /* PBXTargetDependency */,
+                               AFA33BCF0B0587B2002B0E7D /* PBXTargetDependency */,
                                AF7778EB09B6604600EA3033 /* PBXTargetDependency */,
                                AF7778E909B6604600EA3033 /* PBXTargetDependency */,
                                AF7778E709B6604600EA3033 /* PBXTargetDependency */,
                                AF7778D709B6604500EA3033 /* PBXTargetDependency */,
                        );
                        name = "All Savers (XScreenSaver)";
-                       productName = "All Savers";
+                       productName = "All Savers (XScreenSaver)";
                };
                AF480D58098EED3D00FB32B8 /* All Savers (XLockmore) */ = {
                        isa = PBXAggregateTarget;
                        name = "All Savers";
                        productName = "All Savers";
                };
+               AFA33C020B058E17002B0E7D /* webcollage */ = {
+                       isa = PBXAggregateTarget;
+                       buildConfigurationList = AFA33C070B058E67002B0E7D /* Build configuration list for PBXAggregateTarget "webcollage" */;
+                       buildPhases = (
+                               AFA33C010B058E17002B0E7D /* ShellScript */,
+                       );
+                       buildSettings = {
+                               PRODUCT_NAME = webcollage;
+                       };
+                       dependencies = (
+                       );
+                       name = webcollage;
+                       productName = webcollage;
+               };
 /* End PBXAggregateTarget section */
 
 /* Begin PBXBuildFile section */
                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 */; };
                        remoteGlobalIDString = AF4808C0098C3B6C00FB32B8;
                        remoteInfo = jwxyz;
                };
+               AFA339300B058505002B0E7D /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = AF4808C0098C3B6C00FB32B8;
+                       remoteInfo = jwxyz;
+               };
+               AFA33B8E0B0585A4002B0E7D /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = AFA3392E0B058505002B0E7D;
+                       remoteInfo = WebCollage;
+               };
+               AFA33BCE0B0587B2002B0E7D /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = AFA33BC60B058740002B0E7D;
+                       remoteInfo = "webcollage-helper";
+               };
+               AFA33BDB0B058952002B0E7D /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = AFA33BC60B058740002B0E7D;
+                       remoteInfo = "webcollage-helper";
+               };
+               AFA33C030B058E3C002B0E7D /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = AFA33C020B058E17002B0E7D;
+                       remoteInfo = webcollage;
+               };
                AFA55948099330B000F3E977 /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
                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 = "<group>"; };
                AF9D4E2109B63413006E59CF /* jwxyz-timers.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; name = "jwxyz-timers.m"; path = "OSX/jwxyz-timers.m"; sourceTree = "<group>"; };
+               AFA339400B058505002B0E7D /* WebCollage.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; 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 = "<group>"; };
+               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 = "<group>"; };
+               AFA33C0A0B058E6B002B0E7D /* webcollage */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.script.perl; name = webcollage; path = hacks/webcollage; sourceTree = "<group>"; };
                AFA55864099324D800F3E977 /* minixpm.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = minixpm.c; path = utils/minixpm.c; sourceTree = "<group>"; };
                AFA55865099324D800F3E977 /* minixpm.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = minixpm.h; path = utils/minixpm.h; sourceTree = "<group>"; };
                AFA5595A099330B000F3E977 /* Cage.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Cage.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AFC259320988A469000655EE /* xanalogtv.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = xanalogtv.xml; sourceTree = "<group>"; };
                AFC259330988A469000655EE /* xaos.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = xaos.xml; sourceTree = "<group>"; };
                AFC259340988A469000655EE /* xdaliclock.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = xdaliclock.xml; sourceTree = "<group>"; };
-               AFC259350988A469000655EE /* xearth.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = xearth.xml; sourceTree = "<group>"; };
-               AFC259360988A469000655EE /* xfishtank.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = xfishtank.xml; sourceTree = "<group>"; };
                AFC259370988A469000655EE /* xflame.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = xflame.xml; sourceTree = "<group>"; };
                AFC259380988A469000655EE /* xjack.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = xjack.xml; sourceTree = "<group>"; };
                AFC259390988A469000655EE /* xlyap.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = xlyap.xml; sourceTree = "<group>"; };
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AFA339370B058505002B0E7D /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AFA339380B058505002B0E7D /* libjwxyz.a in Frameworks */,
+                               AFA339390B058505002B0E7D /* ScreenSaver.framework in Frameworks */,
+                               AFA3393A0B058505002B0E7D /* Cocoa.framework in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               AFA33BC50B058740002B0E7D /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AFA33BD20B058815002B0E7D /* Cocoa.framework in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AFA5594F099330B000F3E977 /* Frameworks */ = {
                        isa = PBXFrameworksBuildPhase;
                        buildActionMask = 2147483647;
                                AF34085709B80AB000F2CEC1 /* FontGlide.saver */,
                                AF998EEE0A083DB30051049D /* TopBlock.saver */,
                                AF48DF030A0C25E000F94CF9 /* GLSchool.saver */,
+                               AFA339400B058505002B0E7D /* WebCollage.saver */,
+                               AFA33BC70B058740002B0E7D /* webcollage-helper */,
                        );
                        name = Products;
                        sourceTree = "<group>";
                                AF480C29098E295D00FB32B8 /* halo.c */,
                                AFE1FD620981E40800F7970E /* rorschach.c */,
                                AF77789209B656C300EA3033 /* fontglide.c */,
+                               AFA33C0A0B058E6B002B0E7D /* webcollage */,
+                               AFA33BAE0B0585F7002B0E7D /* webcollage-cocoa.m */,
                        );
                        name = XScreenSaver;
                        sourceTree = "<group>";
                                AFC259320988A469000655EE /* xanalogtv.xml */,
                                AFC259330988A469000655EE /* xaos.xml */,
                                AFC259340988A469000655EE /* xdaliclock.xml */,
-                               AFC259350988A469000655EE /* xearth.xml */,
-                               AFC259360988A469000655EE /* xfishtank.xml */,
                                AFC259370988A469000655EE /* xflame.xml */,
                                AFC259380988A469000655EE /* xjack.xml */,
                                AFC259390988A469000655EE /* xlyap.xml */,
                                AFB5A0ED0981FF8B00871B16 /* usleep.c */,
                                AFB5A0EE0981FF8B00871B16 /* usleep.h */,
                                AFE1FD530981E3CB00F7970E /* erase.c */,
+                               AFA33BD00B0587EE002B0E7D /* webcollage-helper-cocoa.m */,
                                AFE1FD540981E3CB00F7970E /* erase.h */,
                                AFA55A3E0993351F00F3E977 /* gllist.c */,
                                AFAD462209D5F4DA00AB5F95 /* grabclient.c */,
                                AF08399009930B6B00277BE9 /* PBXTargetDependency */,
                        );
                        name = Atlantis;
-                       productName = Deco;
+                       productName = Atlantis;
                        productReference = AF0839A209930B6B00277BE9 /* Atlantis.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF083A33099311D700277BE9 /* PBXTargetDependency */,
                        );
                        name = Atunnel;
-                       productName = Deco;
+                       productName = Atunnel;
                        productReference = AF083A48099311D700277BE9 /* Atunnel.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF476FB6099D154F001F091E /* PBXTargetDependency */,
                        );
                        name = Interference;
-                       productName = Deco;
+                       productName = Interference;
                        productReference = AF476FC6099D154F001F091E /* Interference.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF476FDB099D1686001F091E /* PBXTargetDependency */,
                        );
                        name = Truchet;
-                       productName = Deco;
+                       productName = Truchet;
                        productReference = AF476FEB099D1686001F091E /* Truchet.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF47704D099D4385001F091E /* PBXTargetDependency */,
                        );
                        name = Deluxe;
-                       productName = Deco;
+                       productName = Deluxe;
                        productReference = AF47705C099D4385001F091E /* Deluxe.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF47716A099D4786001F091E /* PBXTargetDependency */,
                        );
                        name = Compass;
-                       productName = Deco;
+                       productName = Compass;
                        productReference = AF477179099D4786001F091E /* Compass.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF477180099D4803001F091E /* PBXTargetDependency */,
                        );
                        name = Wander;
-                       productName = Deco;
+                       productName = Wander;
                        productReference = AF47718F099D4803001F091E /* Wander.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF4771A8099D4949001F091E /* PBXTargetDependency */,
                        );
                        name = T3D;
-                       productName = Deco;
+                       productName = T3D;
                        productReference = AF4771B7099D4949001F091E /* T3D.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF4771DC099D4D9A001F091E /* PBXTargetDependency */,
                        );
                        name = CCurve;
-                       productName = Deco;
+                       productName = CCurve;
                        productReference = AF4771EB099D4D9A001F091E /* CCurve.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF4771F3099D4E63001F091E /* PBXTargetDependency */,
                        );
                        name = NerveRot;
-                       productName = Deco;
+                       productName = NerveRot;
                        productReference = AF477202099D4E64001F091E /* NerveRot.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF477209099D4EE8001F091E /* PBXTargetDependency */,
                        );
                        name = Whirlygig;
-                       productName = Deco;
+                       productName = Whirlygig;
                        productReference = AF477218099D4EE8001F091E /* Whirlygig.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF47721F099D4F67001F091E /* PBXTargetDependency */,
                        );
                        name = Anemone;
-                       productName = Deco;
+                       productName = Anemone;
                        productReference = AF47722E099D4F67001F091E /* Anemone.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF477254099D5717001F091E /* PBXTargetDependency */,
                        );
                        name = Halftone;
-                       productName = Deco;
+                       productName = Halftone;
                        productReference = AF477263099D5717001F091E /* Halftone.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF47726C099D57B9001F091E /* PBXTargetDependency */,
                        );
                        name = PopSquares;
-                       productName = Deco;
+                       productName = PopSquares;
                        productReference = AF47727B099D57B9001F091E /* PopSquares.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF477284099D5926001F091E /* PBXTargetDependency */,
                        );
                        name = Piecewise;
-                       productName = Deco;
+                       productName = Piecewise;
                        productReference = AF477293099D5926001F091E /* Piecewise.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF477383099D65A1001F091E /* PBXTargetDependency */,
                        );
                        name = Wormhole;
-                       productName = Deco;
+                       productName = Wormhole;
                        productReference = AF477392099D65A1001F091E /* Wormhole.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF47739B099D6648001F091E /* PBXTargetDependency */,
                        );
                        name = FuzzyFlakes;
-                       productName = Deco;
+                       productName = FuzzyFlakes;
                        productReference = AF4773AA099D6648001F091E /* FuzzyFlakes.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF4773C2099D67B9001F091E /* PBXTargetDependency */,
                        );
                        name = Anemotaxis;
-                       productName = Deco;
+                       productName = Anemotaxis;
                        productReference = AF4773D1099D67B9001F091E /* Anemotaxis.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF477402099D69E7001F091E /* PBXTargetDependency */,
                        );
                        name = Intermomentary;
-                       productName = Deco;
+                       productName = Intermomentary;
                        productReference = AF477412099D69E7001F091E /* Intermomentary.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF477427099D7C70001F091E /* PBXTargetDependency */,
                        );
                        name = IFS;
-                       productName = Deco;
+                       productName = IFS;
                        productReference = AF477437099D7C70001F091E /* IFS.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF477443099D7D33001F091E /* PBXTargetDependency */,
                        );
                        name = XMatrix;
-                       productName = Deco;
+                       productName = XMatrix;
                        productReference = AF477452099D7D33001F091E /* XMatrix.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF477484099D89E4001F091E /* PBXTargetDependency */,
                        );
                        name = Flame;
-                       productName = Deco;
+                       productName = Flame;
                        productReference = AF477493099D89E4001F091E /* Flame.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF47749A099D8A74001F091E /* PBXTargetDependency */,
                        );
                        name = Kaleidescope;
-                       productName = Deco;
+                       productName = Kaleidescope;
                        productReference = AF4774A9099D8A74001F091E /* Kaleidescope.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF4774B5099D8B5F001F091E /* PBXTargetDependency */,
                        );
                        name = LMorph;
-                       productName = Deco;
+                       productName = LMorph;
                        productReference = AF4774C4099D8B5F001F091E /* LMorph.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF4774CF099D8BFF001F091E /* PBXTargetDependency */,
                        );
                        name = Maze;
-                       productName = Deco;
+                       productName = Maze;
                        productReference = AF4774DE099D8BFF001F091E /* Maze.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF47755E099D9A1A001F091E /* PBXTargetDependency */,
                        );
                        name = Pedal;
-                       productName = Deco;
+                       productName = Pedal;
                        productReference = AF47756D099D9A1A001F091E /* Pedal.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF477584099D9C28001F091E /* PBXTargetDependency */,
                        );
                        name = Pyro;
-                       productName = Deco;
+                       productName = Pyro;
                        productReference = AF477593099D9C28001F091E /* Pyro.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF4775A0099D9CF7001F091E /* PBXTargetDependency */,
                        );
                        name = Starfish;
-                       productName = Deco;
+                       productName = Starfish;
                        productReference = AF4775AF099D9CF7001F091E /* Starfish.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF4775D9099D9F69001F091E /* PBXTargetDependency */,
                        );
                        name = Coral;
-                       productName = Deco;
+                       productName = Coral;
                        productReference = AF4775E8099D9F69001F091E /* Coral.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF4775F3099DA030001F091E /* PBXTargetDependency */,
                        );
                        name = Epicycle;
-                       productName = Deco;
+                       productName = Epicycle;
                        productReference = AF477602099DA030001F091E /* Epicycle.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF477614099DA26C001F091E /* PBXTargetDependency */,
                        );
                        name = Kumppa;
-                       productName = Deco;
+                       productName = Kumppa;
                        productReference = AF477623099DA26C001F091E /* Kumppa.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF477645099DA6D0001F091E /* PBXTargetDependency */,
                        );
                        name = Squiral;
-                       productName = Deco;
+                       productName = Squiral;
                        productReference = AF477654099DA6D0001F091E /* Squiral.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF47765B099DA78E001F091E /* PBXTargetDependency */,
                        );
                        name = Critical;
-                       productName = Deco;
+                       productName = Critical;
                        productReference = AF47766A099DA78F001F091E /* Critical.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF477671099DA849001F091E /* PBXTargetDependency */,
                        );
                        name = Petri;
-                       productName = Deco;
+                       productName = Petri;
                        productReference = AF477680099DA849001F091E /* Petri.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF477690099DAA6F001F091E /* PBXTargetDependency */,
                        );
                        name = Blaster;
-                       productName = Deco;
+                       productName = Blaster;
                        productReference = AF47769F099DAA6F001F091E /* Blaster.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF4776AB099DABDD001F091E /* PBXTargetDependency */,
                        );
                        name = XSpirograph;
-                       productName = Deco;
+                       productName = XSpirograph;
                        productReference = AF4776BA099DABDD001F091E /* XSpirograph.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF4776C1099DAC8A001F091E /* PBXTargetDependency */,
                        );
                        name = XRaySwarm;
-                       productName = Deco;
+                       productName = XRaySwarm;
                        productReference = AF4776D0099DAC8A001F091E /* XRaySwarm.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF4776DC099DADDF001F091E /* PBXTargetDependency */,
                        );
                        name = WhirlWindWarp;
-                       productName = Deco;
+                       productName = WhirlWindWarp;
                        productReference = AF4776EB099DADDF001F091E /* WhirlWindWarp.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF4776F2099DAE7A001F091E /* PBXTargetDependency */,
                        );
                        name = Vermiculate;
-                       productName = Deco;
+                       productName = Vermiculate;
                        productReference = AF477701099DAE7A001F091E /* Vermiculate.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF47770E099DAF9F001F091E /* PBXTargetDependency */,
                        );
                        name = CloudLife;
-                       productName = Deco;
+                       productName = CloudLife;
                        productReference = AF47771D099DAF9F001F091E /* CloudLife.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF477724099DB044001F091E /* PBXTargetDependency */,
                        );
                        name = Substrate;
-                       productName = Deco;
+                       productName = Substrate;
                        productReference = AF477733099DB044001F091E /* Substrate.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF477753099DB61E001F091E /* PBXTargetDependency */,
                        );
                        name = Interaggregate;
-                       productName = Deco;
+                       productName = Interaggregate;
                        productReference = AF477762099DB61E001F091E /* Interaggregate.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF477775099DB965001F091E /* PBXTargetDependency */,
                        );
                        name = Celtic;
-                       productName = Deco;
+                       productName = Celtic;
                        productReference = AF477784099DB965001F091E /* Celtic.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF477791099DBA90001F091E /* PBXTargetDependency */,
                        );
                        name = FluidBalls;
-                       productName = Deco;
+                       productName = FluidBalls;
                        productReference = AF4777A0099DBA90001F091E /* FluidBalls.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF4777D2099DC183001F091E /* PBXTargetDependency */,
                        );
                        name = BoxFit;
-                       productName = Deco;
+                       productName = BoxFit;
                        productReference = AF4777E1099DC183001F091E /* BoxFit.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF4778AC099DDB79001F091E /* PBXTargetDependency */,
                        );
                        name = Penetrate;
-                       productName = Deco;
+                       productName = Penetrate;
                        productReference = AF4778BB099DDB79001F091E /* Penetrate.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF4778C8099DDCAE001F091E /* PBXTargetDependency */,
                        );
                        name = XJack;
-                       productName = Deco;
+                       productName = XJack;
                        productReference = AF4778D7099DDCAE001F091E /* XJack.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF4778E9099DDDC8001F091E /* PBXTargetDependency */,
                        );
                        name = Cynosure;
-                       productName = Deco;
+                       productName = Cynosure;
                        productReference = AF4778F8099DDDC8001F091E /* Cynosure.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF47790A099DE379001F091E /* PBXTargetDependency */,
                        );
                        name = Flag;
-                       productName = Deco;
+                       productName = Flag;
                        productReference = AF477919099DE379001F091E /* Flag.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF47792B099DE4C7001F091E /* PBXTargetDependency */,
                        );
                        name = Slip;
-                       productName = Deco;
+                       productName = Slip;
                        productReference = AF47793A099DE4C7001F091E /* Slip.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF480C4A098E301400FB32B8 /* PBXTargetDependency */,
                        );
                        name = Helix;
-                       productName = Deco;
+                       productName = Helix;
                        productReference = AF480C58098E301400FB32B8 /* Helix.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF480D73098EEDDE00FB32B8 /* PBXTargetDependency */,
                        );
                        name = Drift;
-                       productName = Deco;
+                       productName = Drift;
                        productReference = AF480D81098EEDDE00FB32B8 /* Drift.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF4810EC09909FBA00FB32B8 /* PBXTargetDependency */,
                        );
                        name = DangerBall;
-                       productName = Deco;
+                       productName = DangerBall;
                        productReference = AF4810FB09909FBA00FB32B8 /* DangerBall.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF4812510990CE2700FB32B8 /* PBXTargetDependency */,
                        );
                        name = Gears;
-                       productName = Deco;
+                       productName = Gears;
                        productReference = AF4812640990CE2700FB32B8 /* Gears.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF4812B40990D3D900FB32B8 /* PBXTargetDependency */,
                        );
                        name = Pipes;
-                       productName = Deco;
+                       productName = Pipes;
                        productReference = AF4812C60990D3D900FB32B8 /* Pipes.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF48DEF00A0C25E000F94CF9 /* PBXTargetDependency */,
                        );
                        name = GLSchool;
-                       productName = Deco;
+                       productName = GLSchool;
                        productReference = AF48DF030A0C25E000F94CF9 /* GLSchool.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF6423F3099FF9C2000F4CD4 /* PBXTargetDependency */,
                        );
                        name = Extrusion;
-                       productName = Deco;
+                       productName = Extrusion;
                        productReference = AF642405099FF9C2000F4CD4 /* Extrusion.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF6425CD09A18855000F4CD4 /* PBXTargetDependency */,
                        );
                        name = HyperCube;
-                       productName = Deco;
+                       productName = HyperCube;
                        productReference = AF6425DC09A18856000F4CD4 /* HyperCube.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF6425ED09A189EC000F4CD4 /* PBXTargetDependency */,
                        );
                        name = Qix;
-                       productName = Deco;
+                       productName = Qix;
                        productReference = AF6425FC09A189EC000F4CD4 /* Qix.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF64261009A18D6C000F4CD4 /* PBXTargetDependency */,
                        );
                        name = HyperBall;
-                       productName = Deco;
+                       productName = HyperBall;
                        productReference = AF64261F09A18D6C000F4CD4 /* HyperBall.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF64262D09A18F54000F4CD4 /* PBXTargetDependency */,
                        );
                        name = Moire2;
-                       productName = Deco;
+                       productName = Moire2;
                        productReference = AF64263C09A18F54000F4CD4 /* Moire2.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF64265009A19229000F4CD4 /* PBXTargetDependency */,
                        );
                        name = Munch;
-                       productName = Deco;
+                       productName = Munch;
                        productReference = AF64265F09A19229000F4CD4 /* Munch.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF64266609A192FB000F4CD4 /* PBXTargetDependency */,
                        );
                        name = Mismunch;
-                       productName = Deco;
+                       productName = Mismunch;
                        productReference = AF64267509A192FB000F4CD4 /* Mismunch.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF64267C09A194B0000F4CD4 /* PBXTargetDependency */,
                        );
                        name = Goop;
-                       productName = Deco;
+                       productName = Goop;
                        productReference = AF64268B09A194B0000F4CD4 /* Goop.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF6426F509A1C952000F4CD4 /* PBXTargetDependency */,
                        );
                        name = Sonar;
-                       productName = Deco;
+                       productName = Sonar;
                        productReference = AF64270409A1C952000F4CD4 /* Sonar.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF64277209A1D37A000F4CD4 /* PBXTargetDependency */,
                        );
                        name = SpeedMine;
-                       productName = Deco;
+                       productName = SpeedMine;
                        productReference = AF64278109A1D37A000F4CD4 /* SpeedMine.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF6427A909A2DE36000F4CD4 /* PBXTargetDependency */,
                        );
                        name = Bubbles;
-                       productName = Deco;
+                       productName = Bubbles;
                        productReference = AF6427B809A2DE36000F4CD4 /* Bubbles.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF7776E509B63ABF00EA3033 /* PBXTargetDependency */,
                        );
                        name = Phosphor;
-                       productName = Deco;
+                       productName = Phosphor;
                        productReference = AF7776F609B63ABF00EA3033 /* Phosphor.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF77771B09B6416100EA3033 /* PBXTargetDependency */,
                        );
                        name = Pacman;
-                       productName = Deco;
+                       productName = Pacman;
                        productReference = AF77772A09B6416100EA3033 /* Pacman.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF77773F09B6446500EA3033 /* PBXTargetDependency */,
                        );
                        name = FlipScreen3D;
-                       productName = Deco;
+                       productName = FlipScreen3D;
                        productReference = AF77775109B6446500EA3033 /* FlipScreen3D.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF77777509B6497800EA3033 /* PBXTargetDependency */,
                        );
                        name = Gleidescope;
-                       productName = Deco;
+                       productName = Gleidescope;
                        productReference = AF34085609B80AB000F2CEC1 /* Gleidescope.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF77778F09B64A5200EA3033 /* PBXTargetDependency */,
                        );
                        name = MirrorBlob;
-                       productName = Deco;
+                       productName = MirrorBlob;
                        productReference = AF7777A209B64A5200EA3033 /* MirrorBlob.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF7777A909B64B2600EA3033 /* PBXTargetDependency */,
                        );
                        name = StonerView;
-                       productName = Deco;
+                       productName = StonerView;
                        productReference = AF34085509B80AB000F2CEC1 /* StonerView.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF7777D109B64C6B00EA3033 /* PBXTargetDependency */,
                        );
                        name = GLSlideshow;
-                       productName = Deco;
+                       productName = GLSlideshow;
                        productReference = AF7777E409B64C6B00EA3033 /* GLSlideshow.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF7777EB09B64E3100EA3033 /* PBXTargetDependency */,
                        );
                        name = FlipText;
-                       productName = Deco;
+                       productName = FlipText;
                        productReference = AF7777FE09B64E3100EA3033 /* FlipText.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF77781109B6504400EA3033 /* PBXTargetDependency */,
                        );
                        name = StarWars;
-                       productName = Deco;
+                       productName = StarWars;
                        productReference = AF34085409B80AAF00F2CEC1 /* StarWars.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF77784509B6528100EA3033 /* PBXTargetDependency */,
                        );
                        name = Carousel;
-                       productName = Deco;
+                       productName = Carousel;
                        productReference = AF77785809B6528100EA3033 /* Carousel.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF77786209B6536000EA3033 /* PBXTargetDependency */,
                        );
                        name = DNAlogo;
-                       productName = Deco;
+                       productName = DNAlogo;
                        productReference = AF77787409B6536000EA3033 /* DNAlogo.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF77788009B6563500EA3033 /* PBXTargetDependency */,
                        );
                        name = FontGlide;
-                       productName = Deco;
+                       productName = FontGlide;
                        productReference = AF34085709B80AB000F2CEC1 /* FontGlide.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF7778A609B659C800EA3033 /* PBXTargetDependency */,
                        );
                        name = BlitSpin;
-                       productName = Deco;
+                       productName = BlitSpin;
                        productReference = AF7778B509B659C800EA3033 /* BlitSpin.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF794F65099748450059A8B0 /* PBXTargetDependency */,
                        );
                        name = Demon;
-                       productName = Deco;
+                       productName = Demon;
                        productReference = AF794F74099748450059A8B0 /* Demon.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF794F8F09974A320059A8B0 /* PBXTargetDependency */,
                        );
                        name = Fiberlamp;
-                       productName = Deco;
+                       productName = Fiberlamp;
                        productReference = AF794F9E09974A320059A8B0 /* Fiberlamp.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF794FCE09974FA60059A8B0 /* PBXTargetDependency */,
                        );
                        name = Loop;
-                       productName = Deco;
+                       productName = Loop;
                        productReference = AF794FDD09974FA60059A8B0 /* Loop.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF97572E099C317000B05160 /* PBXTargetDependency */,
                        );
                        name = IMSMap;
-                       productName = Deco;
+                       productName = IMSMap;
                        productReference = AF97573D099C317000B05160 /* IMSMap.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF975776099C374A00B05160 /* PBXTargetDependency */,
                        );
                        name = Moire;
-                       productName = Deco;
+                       productName = Moire;
                        productReference = AF975785099C374A00B05160 /* Moire.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF9757C3099C3E6300B05160 /* PBXTargetDependency */,
                        );
                        name = RDbomb;
-                       productName = Deco;
+                       productName = RDbomb;
                        productReference = AF9757D2099C3E6300B05160 /* RDbomb.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF975809099C41D500B05160 /* PBXTargetDependency */,
                        );
                        name = XFlame;
-                       productName = Deco;
+                       productName = XFlame;
                        productReference = AF975818099C41D500B05160 /* XFlame.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF975866099C475900B05160 /* PBXTargetDependency */,
                        );
                        name = ShadeBobs;
-                       productName = Deco;
+                       productName = ShadeBobs;
                        productReference = AF975875099C475900B05160 /* ShadeBobs.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF975A37099C681F00B05160 /* PBXTargetDependency */,
                        );
                        name = MetaBalls;
-                       productName = Deco;
+                       productName = MetaBalls;
                        productReference = AF975A46099C681F00B05160 /* MetaBalls.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF975A6D099C6AB200B05160 /* PBXTargetDependency */,
                        );
                        name = Eruption;
-                       productName = Deco;
+                       productName = Eruption;
                        productReference = AF975A7C099C6AB200B05160 /* Eruption.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF975A87099C6BC300B05160 /* PBXTargetDependency */,
                        );
                        name = Barcode;
-                       productName = Deco;
+                       productName = Barcode;
                        productReference = AF975A96099C6BC300B05160 /* Barcode.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF975AD8099C6EB100B05160 /* PBXTargetDependency */,
                        );
                        name = Fireworkx;
-                       productName = Deco;
+                       productName = Fireworkx;
                        productReference = AF975AE7099C6EB100B05160 /* Fireworkx.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF975AFD099C6FE400B05160 /* PBXTargetDependency */,
                        );
                        name = MemScroller;
-                       productName = Deco;
+                       productName = MemScroller;
                        productReference = AF975B0C099C6FE400B05160 /* MemScroller.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF975C13099C8C1500B05160 /* PBXTargetDependency */,
                        );
                        name = Halo;
-                       productName = Deco;
+                       productName = Halo;
                        productReference = AF975C22099C8C1500B05160 /* Halo.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF975C3E099C8DCF00B05160 /* PBXTargetDependency */,
                        );
                        name = Greynetic;
-                       productName = Deco;
+                       productName = Greynetic;
                        productReference = AF975C4E099C8DCF00B05160 /* Greynetic.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF975C5E099C8F3F00B05160 /* PBXTargetDependency */,
                        );
                        name = NoseGuy;
-                       productName = Deco;
+                       productName = NoseGuy;
                        productReference = AF975C6E099C8F3F00B05160 /* NoseGuy.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF975D53099CA0F000B05160 /* PBXTargetDependency */,
                        );
                        name = Rocks;
-                       productName = Deco;
+                       productName = Rocks;
                        productReference = AF975D63099CA0F000B05160 /* Rocks.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF48092A098C419000FB32B8 /* PBXTargetDependency */,
                        );
                        name = Rorschach;
-                       productName = Deco;
+                       productName = Rorschach;
                        productReference = AF9770400989D1E6001F8B92 /* Rorschach.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF48092D098C41AE00FB32B8 /* PBXTargetDependency */,
                        );
                        name = Attraction;
-                       productName = Deco;
+                       productName = Attraction;
                        productReference = AF97707D0989D2F6001F8B92 /* Attraction.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF998EDB0A083DB30051049D /* PBXTargetDependency */,
                        );
                        name = TopBlock;
-                       productName = Deco;
+                       productName = TopBlock;
                        productReference = AF998EEE0A083DB30051049D /* TopBlock.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF9D466709B5109C006E59CF /* PBXTargetDependency */,
                        );
                        name = DecayScreen;
-                       productName = Deco;
+                       productName = DecayScreen;
                        productReference = AF9D467609B5109C006E59CF /* DecayScreen.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF9D474509B5300A006E59CF /* PBXTargetDependency */,
                        );
                        name = SlideScreen;
-                       productName = Deco;
+                       productName = SlideScreen;
                        productReference = AF9D475409B5300A006E59CF /* SlideScreen.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF9D476009B53166006E59CF /* PBXTargetDependency */,
                        );
                        name = Zoom;
-                       productName = Deco;
+                       productName = Zoom;
                        productReference = AF9D476F09B53166006E59CF /* Zoom.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF9D48DC09B53322006E59CF /* PBXTargetDependency */,
                        );
                        name = Bumps;
-                       productName = Deco;
+                       productName = Bumps;
                        productReference = AF9D48EB09B53322006E59CF /* Bumps.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF9D48F509B535DA006E59CF /* PBXTargetDependency */,
                        );
                        name = Distort;
-                       productName = Deco;
+                       productName = Distort;
                        productReference = AF9D490409B535DA006E59CF /* Distort.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF9D492C09B53CBA006E59CF /* PBXTargetDependency */,
                        );
                        name = Ripples;
-                       productName = Deco;
+                       productName = Ripples;
                        productReference = AF9D493B09B53CBA006E59CF /* Ripples.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF9D495509B53FC9006E59CF /* PBXTargetDependency */,
                        );
                        name = RotZoomer;
-                       productName = Deco;
+                       productName = RotZoomer;
                        productReference = AF9D496409B53FC9006E59CF /* RotZoomer.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF9D496D09B5411D006E59CF /* PBXTargetDependency */,
                        );
                        name = Twang;
-                       productName = Deco;
+                       productName = Twang;
                        productReference = AF9D497C09B5411D006E59CF /* Twang.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF9D499809B544C2006E59CF /* PBXTargetDependency */,
                        );
                        name = Spotlight;
-                       productName = Deco;
+                       productName = Spotlight;
                        productReference = AF9D49A709B544C3006E59CF /* Spotlight.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF9D4C2C09B59A49006E59CF /* PBXTargetDependency */,
                        );
                        name = Jigsaw;
-                       productName = Deco;
+                       productName = Jigsaw;
                        productReference = AF9D4C3B09B59A49006E59CF /* Jigsaw.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF9D4C6A09B59F27006E59CF /* PBXTargetDependency */,
                        );
                        name = XLyap;
-                       productName = Deco;
+                       productName = XLyap;
                        productReference = AF9D4C7909B59F27006E59CF /* XLyap.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF9D4CE809B5AA8E006E59CF /* PBXTargetDependency */,
                        );
                        name = Pong;
-                       productName = Deco;
+                       productName = Pong;
                        productReference = AF9D4CF709B5AA8E006E59CF /* Pong.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF9D4D7F09B5B2DC006E59CF /* PBXTargetDependency */,
                        );
                        name = XAnalogTV;
-                       productName = Deco;
+                       productName = XAnalogTV;
                        productReference = AF9D4D8F09B5B2DC006E59CF /* XAnalogTV.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF9D4DB009B5B71E006E59CF /* PBXTargetDependency */,
                        );
                        name = BSOD;
-                       productName = Deco;
+                       productName = BSOD;
                        productReference = AF9D4DC009B5B71E006E59CF /* BSOD.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF9D4DED09B5BB19006E59CF /* PBXTargetDependency */,
                        );
                        name = Apple2;
-                       productName = Deco;
+                       productName = Apple2;
                        productReference = AF9D4DFE09B5BB19006E59CF /* Apple2.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
 ";
                        productType = "com.apple.product-type.bundle";
                };
+               AFA3392E0B058505002B0E7D /* WebCollage */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = AFA3393D0B058505002B0E7D /* Build configuration list for PBXNativeTarget "WebCollage" */;
+                       buildPhases = (
+                               AFA339310B058505002B0E7D /* Resources */,
+                               AFA339340B058505002B0E7D /* Sources */,
+                               AFA339370B058505002B0E7D /* Frameworks */,
+                               AFA3393B0B058505002B0E7D /* Rez */,
+                               AFA3393C0B058505002B0E7D /* ShellScript */,
+                       );
+                       buildRules = (
+                       );
+                       buildSettings = {
+                               GCC_ENABLE_FIX_AND_CONTINUE = YES;
+                               GCC_MODEL_TUNING = G5;
+                               GCC_PRECOMPILE_PREFIX_HEADER = YES;
+                               GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h";
+                               INFOPLIST_FILE = "Deco-Info.plist";
+                               INSTALL_PATH = "$(HOME)/Library/Bundles";
+                               OTHER_LDFLAGS = (
+                                       "-framework",
+                                       Carbon,
+                               );
+                               PREBINDING = NO;
+                               PRODUCT_NAME = Deco;
+                               WRAPPER_EXTENSION = bundle;
+                               ZERO_LINK = YES;
+                       };
+                       dependencies = (
+                               AFA3392F0B058505002B0E7D /* PBXTargetDependency */,
+                               AFA33BDC0B058952002B0E7D /* PBXTargetDependency */,
+                               AFA33C040B058E3C002B0E7D /* PBXTargetDependency */,
+                       );
+                       name = WebCollage;
+                       productName = WebCollage;
+                       productReference = AFA339400B058505002B0E7D /* WebCollage.saver */;
+                       productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
+<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
+<plist version=\"1.0\">
+<dict>
+       <key>CFBundleDevelopmentRegion</key>
+       <string>English</string>
+       <key>CFBundleExecutable</key>
+       <string>Deco</string>
+       <key>CFBundleIdentifier</key>
+       <string>com.yourcompany.Deco</string>
+       <key>CFBundleInfoDictionaryVersion</key>
+       <string>6.0</string>
+       <key>CFBundlePackageType</key>
+       <string>BNDL</string>
+       <key>CFBundleSignature</key>
+       <string>????</string>
+       <key>CFBundleVersion</key>
+       <string>1.0</string>
+       <key>CSResourcesFileMapped</key>
+       <string>yes</string>
+</dict>
+</plist>
+";
+                       productType = "com.apple.product-type.bundle";
+               };
+               AFA33BC60B058740002B0E7D /* webcollage-helper */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = AFA33BCB0B058754002B0E7D /* Build configuration list for PBXNativeTarget "webcollage-helper" */;
+                       buildPhases = (
+                               AFA33BC40B058740002B0E7D /* Sources */,
+                               AFA33BC50B058740002B0E7D /* Frameworks */,
+                       );
+                       buildRules = (
+                       );
+                       buildSettings = {
+                               GCC_ENABLE_FIX_AND_CONTINUE = YES;
+                               GCC_MODEL_TUNING = G5;
+                               GCC_PRECOMPILE_PREFIX_HEADER = YES;
+                               GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+                               INSTALL_PATH = "$(HOME)/bin";
+                               OTHER_LDFLAGS = (
+                                       "-framework",
+                                       Foundation,
+                                       "-framework",
+                                       AppKit,
+                               );
+                               PREBINDING = NO;
+                               PRODUCT_NAME = "webcollage-helper";
+                               ZERO_LINK = YES;
+                       };
+                       dependencies = (
+                       );
+                       name = "webcollage-helper";
+                       productName = "webcollage-helper";
+                       productReference = AFA33BC70B058740002B0E7D /* webcollage-helper */;
+                       productType = "com.apple.product-type.tool";
+               };
                AFA55946099330B000F3E977 /* Cage */ = {
                        isa = PBXNativeTarget;
                        buildConfigurationList = AFA55957099330B000F3E977 /* Build configuration list for PBXNativeTarget "Cage" */;
                                AFA55947099330B000F3E977 /* PBXTargetDependency */,
                        );
                        name = Cage;
-                       productName = Deco;
+                       productName = Cage;
                        productReference = AFA5595A099330B000F3E977 /* Cage.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA5596E0993317900F3E977 /* PBXTargetDependency */,
                        );
                        name = Moebius;
-                       productName = Deco;
+                       productName = Moebius;
                        productReference = AFA5597F0993317900F3E977 /* Moebius.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA559930993322100F3E977 /* PBXTargetDependency */,
                        );
                        name = Superquadrics;
-                       productName = Deco;
+                       productName = Superquadrics;
                        productReference = AFA559A40993322100F3E977 /* Superquadrics.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA559B60993328000F3E977 /* PBXTargetDependency */,
                        );
                        name = Morph3D;
-                       productName = Deco;
+                       productName = Morph3D;
                        productReference = AFA559C70993328000F3E977 /* Morph3D.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA559D00993330600F3E977 /* PBXTargetDependency */,
                        );
                        name = Rubik;
-                       productName = Deco;
+                       productName = Rubik;
                        productReference = AFA559E10993330600F3E977 /* Rubik.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55A040993340300F3E977 /* PBXTargetDependency */,
                        );
                        name = Stairs;
-                       productName = Deco;
+                       productName = Stairs;
                        productReference = AFA55A150993340300F3E977 /* Stairs.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55A21099334A000F3E977 /* PBXTargetDependency */,
                        );
                        name = Sproingies;
-                       productName = Deco;
+                       productName = Sproingies;
                        productReference = AFA55A32099334A000F3E977 /* Sproingies.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55A7A0993364300F3E977 /* PBXTargetDependency */,
                        );
                        name = Lament;
-                       productName = Deco;
+                       productName = Lament;
                        productReference = AFA55A8B0993364300F3E977 /* Lament.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55AD009933CEF00F3E977 /* PBXTargetDependency */,
                        );
                        name = Bubble3D;
-                       productName = Deco;
+                       productName = Bubble3D;
                        productReference = AFA55AE109933CEF00F3E977 /* Bubble3D.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55B0A09933E0500F3E977 /* PBXTargetDependency */,
                        );
                        name = GLPlanet;
-                       productName = Deco;
+                       productName = GLPlanet;
                        productReference = AFA55B1E09933E0500F3E977 /* GLPlanet.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55B2609933E8D00F3E977 /* PBXTargetDependency */,
                        );
                        name = Pulsar;
-                       productName = Deco;
+                       productName = Pulsar;
                        productReference = AFA55B3709933E8D00F3E977 /* Pulsar.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55B7A09933F7200F3E977 /* PBXTargetDependency */,
                        );
                        name = Sierpinski3D;
-                       productName = Deco;
+                       productName = Sierpinski3D;
                        productReference = AFA55B8B09933F7200F3E977 /* Sierpinski3D.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55B9209933FDA00F3E977 /* PBXTargetDependency */,
                        );
                        name = GFlux;
-                       productName = Deco;
+                       productName = GFlux;
                        productReference = AFA55BA309933FDA00F3E977 /* GFlux.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55BAC099340CE00F3E977 /* PBXTargetDependency */,
                        );
                        name = Circuit;
-                       productName = Deco;
+                       productName = Circuit;
                        productReference = AFA55BBD099340CE00F3E977 /* Circuit.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55BE50993429100F3E977 /* PBXTargetDependency */,
                        );
                        name = Menger;
-                       productName = Deco;
+                       productName = Menger;
                        productReference = AFA55BF60993429100F3E977 /* Menger.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55C0F0993431300F3E977 /* PBXTargetDependency */,
                        );
                        name = Engine;
-                       productName = Deco;
+                       productName = Engine;
                        productReference = AFA55C200993431300F3E977 /* Engine.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55C78099349A600F3E977 /* PBXTargetDependency */,
                        );
                        name = GLSnake;
-                       productName = Deco;
+                       productName = GLSnake;
                        productReference = AFA55C89099349A600F3E977 /* GLSnake.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55CAA09934BB200F3E977 /* PBXTargetDependency */,
                        );
                        name = Boxed;
-                       productName = Deco;
+                       productName = Boxed;
                        productReference = AFA55CBB09934BB200F3E977 /* Boxed.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55CCD09934CE400F3E977 /* PBXTargetDependency */,
                        );
                        name = GLForestFire;
-                       productName = Deco;
+                       productName = GLForestFire;
                        productReference = AFA55CDE09934CE400F3E977 /* GLForestFire.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55D3D0993565300F3E977 /* PBXTargetDependency */,
                        );
                        name = SBalls;
-                       productName = Deco;
+                       productName = SBalls;
                        productReference = AFA55D4E0993565300F3E977 /* SBalls.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55D630993584B00F3E977 /* PBXTargetDependency */,
                        );
                        name = Cubenetic;
-                       productName = Deco;
+                       productName = Cubenetic;
                        productReference = AFA55D740993584B00F3E977 /* Cubenetic.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55D80099358C400F3E977 /* PBXTargetDependency */,
                        );
                        name = Spheremonics;
-                       productName = Deco;
+                       productName = Spheremonics;
                        productReference = AFA55D91099358C400F3E977 /* Spheremonics.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55DC909935D7000F3E977 /* PBXTargetDependency */,
                        );
                        name = Lavalite;
-                       productName = Deco;
+                       productName = Lavalite;
                        productReference = AFA55DDA09935D7000F3E977 /* Lavalite.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55DF109935E4900F3E977 /* PBXTargetDependency */,
                        );
                        name = Queens;
-                       productName = Deco;
+                       productName = Queens;
                        productReference = AFA55E0309935E4900F3E977 /* Queens.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55E0E09935EDC00F3E977 /* PBXTargetDependency */,
                        );
                        name = Endgame;
-                       productName = Deco;
+                       productName = Endgame;
                        productReference = AFA55E1F09935EDC00F3E977 /* Endgame.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55E3009935F8E00F3E977 /* PBXTargetDependency */,
                        );
                        name = GLBlur;
-                       productName = Deco;
+                       productName = GLBlur;
                        productReference = AFA55E4209935F8E00F3E977 /* GLBlur.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55E4F09935FF900F3E977 /* PBXTargetDependency */,
                        );
                        name = FlyingToasters;
-                       productName = Deco;
+                       productName = FlyingToasters;
                        productReference = AFA55E6009935FF900F3E977 /* FlyingToasters.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55EC8099360E300F3E977 /* PBXTargetDependency */,
                        );
                        name = BouncingCow;
-                       productName = Deco;
+                       productName = BouncingCow;
                        productReference = AFA55EE3099360E300F3E977 /* BouncingCow.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55F07099361B700F3E977 /* PBXTargetDependency */,
                        );
                        name = JigglyPuff;
-                       productName = Deco;
+                       productName = JigglyPuff;
                        productReference = AFA55F1E099361B700F3E977 /* JigglyPuff.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55F2B0993622F00F3E977 /* PBXTargetDependency */,
                        );
                        name = Klein;
-                       productName = Deco;
+                       productName = Klein;
                        productReference = AFA55F3C0993622F00F3E977 /* Klein.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55F430993629000F3E977 /* PBXTargetDependency */,
                        );
                        name = HyperTorus;
-                       productName = Deco;
+                       productName = HyperTorus;
                        productReference = AFA55F540993629000F3E977 /* HyperTorus.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55F730993643600F3E977 /* PBXTargetDependency */,
                        );
                        name = GLMatrix;
-                       productName = Deco;
+                       productName = GLMatrix;
                        productReference = AFA55F840993643600F3E977 /* GLMatrix.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55FD409936BFA00F3E977 /* PBXTargetDependency */,
                        );
                        name = CubeStorm;
-                       productName = Deco;
+                       productName = CubeStorm;
                        productReference = AFA55FE509936BFA00F3E977 /* CubeStorm.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA55FFA09936C6D00F3E977 /* PBXTargetDependency */,
                        );
                        name = GLKnots;
-                       productName = Deco;
+                       productName = GLKnots;
                        productReference = AFA5600B09936C6D00F3E977 /* GLKnots.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA5601509936CC800F3E977 /* PBXTargetDependency */,
                        );
                        name = BlockTube;
-                       productName = Deco;
+                       productName = BlockTube;
                        productReference = AFA5602609936CC800F3E977 /* BlockTube.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA5603309936D5100F3E977 /* PBXTargetDependency */,
                        );
                        name = FlipFlop;
-                       productName = Deco;
+                       productName = FlipFlop;
                        productReference = AFA5604409936D5100F3E977 /* FlipFlop.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA5604B09936E2100F3E977 /* PBXTargetDependency */,
                        );
                        name = AntInspect;
-                       productName = Deco;
+                       productName = AntInspect;
                        productReference = AFA5605C09936E2100F3E977 /* AntInspect.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA5606309936F3800F3E977 /* PBXTargetDependency */,
                        );
                        name = AntSpotlight;
-                       productName = Deco;
+                       productName = AntSpotlight;
                        productReference = AFA5607409936F3800F3E977 /* AntSpotlight.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA560AF0993718D00F3E977 /* PBXTargetDependency */,
                        );
                        name = Polytopes;
-                       productName = Deco;
+                       productName = Polytopes;
                        productReference = AFA560C00993718D00F3E977 /* Polytopes.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA5611E0993791D00F3E977 /* PBXTargetDependency */,
                        );
                        name = Molecule;
-                       productName = Deco;
+                       productName = Molecule;
                        productReference = AFA5610F0993781600F3E977 /* Molecule.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA5615709937C0D00F3E977 /* PBXTargetDependency */,
                        );
                        name = BlinkBox;
-                       productName = Deco;
+                       productName = BlinkBox;
                        productReference = AFA5616A09937C0D00F3E977 /* BlinkBox.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA5617C09937CF100F3E977 /* PBXTargetDependency */,
                        );
                        name = Noof;
-                       productName = Deco;
+                       productName = Noof;
                        productReference = AFA5618D09937CF100F3E977 /* Noof.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA5619E09937D7E00F3E977 /* PBXTargetDependency */,
                        );
                        name = Polyhedra;
-                       productName = Deco;
+                       productName = Polyhedra;
                        productReference = AFA561AF09937D7E00F3E977 /* Polyhedra.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA562070993849F00F3E977 /* PBXTargetDependency */,
                        );
                        name = Providence;
-                       productName = Deco;
+                       productName = Providence;
                        productReference = AFA562190993849F00F3E977 /* Providence.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA562200993852500F3E977 /* PBXTargetDependency */,
                        );
                        name = Pinion;
-                       productName = Deco;
+                       productName = Pinion;
                        productReference = AFA562310993852500F3E977 /* Pinion.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA562C0099392C600F3E977 /* PBXTargetDependency */,
                        );
                        name = Boing;
-                       productName = Deco;
+                       productName = Boing;
                        productReference = AFA562D1099392C600F3E977 /* Boing.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA562DB099393C900F3E977 /* PBXTargetDependency */,
                        );
                        name = AntMaze;
-                       productName = Deco;
+                       productName = AntMaze;
                        productReference = AFA562EC099393C900F3E977 /* AntMaze.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA562F30993943B00F3E977 /* PBXTargetDependency */,
                        );
                        name = Tangram;
-                       productName = Deco;
+                       productName = Tangram;
                        productReference = AFA563040993943B00F3E977 /* Tangram.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA563140993951000F3E977 /* PBXTargetDependency */,
                        );
                        name = Crackberg;
-                       productName = Deco;
+                       productName = Crackberg;
                        productReference = AFA563260993951000F3E977 /* Crackberg.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA56332099395ED00F3E977 /* PBXTargetDependency */,
                        );
                        name = GLHanoi;
-                       productName = Deco;
+                       productName = GLHanoi;
                        productReference = AFA56343099395ED00F3E977 /* GLHanoi.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA56352099396C000F3E977 /* PBXTargetDependency */,
                        );
                        name = Cube21;
-                       productName = Deco;
+                       productName = Cube21;
                        productReference = AFA56363099396C000F3E977 /* Cube21.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA5637A099397B300F3E977 /* PBXTargetDependency */,
                        );
                        name = TimeTunnel;
-                       productName = Deco;
+                       productName = TimeTunnel;
                        productReference = AFA5638B099397B300F3E977 /* TimeTunnel.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFA563A5099398BB00F3E977 /* PBXTargetDependency */,
                        );
                        name = Juggler3D;
-                       productName = Deco;
+                       productName = Juggler3D;
                        productReference = AFA563B6099398BB00F3E977 /* Juggler3D.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD56DF20996A03800BA26F7 /* PBXTargetDependency */,
                        );
                        name = GLText;
-                       productName = Deco;
+                       productName = GLText;
                        productReference = AFD56E040996A03800BA26F7 /* GLText.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD56EAF0996A72600BA26F7 /* PBXTargetDependency */,
                        );
                        name = Braid;
-                       productName = Deco;
+                       productName = Braid;
                        productReference = AFD56EBE0996A72600BA26F7 /* Braid.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD56EDB0996A95700BA26F7 /* PBXTargetDependency */,
                        );
                        name = Forest;
-                       productName = Deco;
+                       productName = Forest;
                        productReference = AFD56EEA0996A95700BA26F7 /* Forest.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD56F0C0996AAFA00BA26F7 /* PBXTargetDependency */,
                        );
                        name = Vines;
-                       productName = Deco;
+                       productName = Vines;
                        productReference = AFD56F1B0996AAFA00BA26F7 /* Vines.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD56F240996AB8A00BA26F7 /* PBXTargetDependency */,
                        );
                        name = Galaxy;
-                       productName = Deco;
+                       productName = Galaxy;
                        productReference = AFD56F330996AB8A00BA26F7 /* Galaxy.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD56F500996AEEE00BA26F7 /* PBXTargetDependency */,
                        );
                        name = Grav;
-                       productName = Deco;
+                       productName = Grav;
                        productReference = AFD56F5F0996AEEE00BA26F7 /* Grav.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD56F6C0996B01600BA26F7 /* PBXTargetDependency */,
                        );
                        name = Hopalong;
-                       productName = Deco;
+                       productName = Hopalong;
                        productReference = AFD56F7B0996B01600BA26F7 /* Hopalong.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD56F8D0996B09400BA26F7 /* PBXTargetDependency */,
                        );
                        name = Laser;
-                       productName = Deco;
+                       productName = Laser;
                        productReference = AFD56F9C0996B09400BA26F7 /* Laser.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD56FA40996B10F00BA26F7 /* PBXTargetDependency */,
                        );
                        name = Lightning;
-                       productName = Deco;
+                       productName = Lightning;
                        productReference = AFD56FB30996B10F00BA26F7 /* Lightning.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD56FBA0996B18F00BA26F7 /* PBXTargetDependency */,
                        );
                        name = Lisa;
-                       productName = Deco;
+                       productName = Lisa;
                        productReference = AFD56FC90996B18F00BA26F7 /* Lisa.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD56FD00996B20900BA26F7 /* PBXTargetDependency */,
                        );
                        name = Lissie;
-                       productName = Deco;
+                       productName = Lissie;
                        productReference = AFD56FDF0996B20900BA26F7 /* Lissie.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD56FF90996B43800BA26F7 /* PBXTargetDependency */,
                        );
                        name = Penrose;
-                       productName = Deco;
+                       productName = Penrose;
                        productReference = AFD570080996B43800BA26F7 /* Penrose.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD570100996B4CC00BA26F7 /* PBXTargetDependency */,
                        );
                        name = Sierpinski;
-                       productName = Deco;
+                       productName = Sierpinski;
                        productReference = AFD5701F0996B4CC00BA26F7 /* Sierpinski.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD570270996B56D00BA26F7 /* PBXTargetDependency */,
                        );
                        name = Sphere;
-                       productName = Deco;
+                       productName = Sphere;
                        productReference = AFD570360996B56D00BA26F7 /* Sphere.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD570440996B61600BA26F7 /* PBXTargetDependency */,
                        );
                        name = Spiral;
-                       productName = Deco;
+                       productName = Spiral;
                        productReference = AFD570530996B61600BA26F7 /* Spiral.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD5705A0996B6A300BA26F7 /* PBXTargetDependency */,
                        );
                        name = FadePlot;
-                       productName = Deco;
+                       productName = FadePlot;
                        productReference = AFD570690996B6A300BA26F7 /* FadePlot.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD570700996B72700BA26F7 /* PBXTargetDependency */,
                        );
                        name = Mountain;
-                       productName = Deco;
+                       productName = Mountain;
                        productReference = AFD5707F0996B72800BA26F7 /* Mountain.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD570860996B80300BA26F7 /* PBXTargetDependency */,
                        );
                        name = Triangle;
-                       productName = Deco;
+                       productName = Triangle;
                        productReference = AFD570950996B80300BA26F7 /* Triangle.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD5709C0996B88E00BA26F7 /* PBXTargetDependency */,
                        );
                        name = Worm;
-                       productName = Deco;
+                       productName = Worm;
                        productReference = AFD570AB0996B88E00BA26F7 /* Worm.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD570B20996B93000BA26F7 /* PBXTargetDependency */,
                        );
                        name = Rotor;
-                       productName = Deco;
+                       productName = Rotor;
                        productReference = AFD570C10996B93000BA26F7 /* Rotor.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD570CA0996B9F800BA26F7 /* PBXTargetDependency */,
                        );
                        name = Ant;
-                       productName = Deco;
+                       productName = Ant;
                        productReference = AFD570D90996B9F800BA26F7 /* Ant.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD570EB0996BBBF00BA26F7 /* PBXTargetDependency */,
                        );
                        name = Flow;
-                       productName = Deco;
+                       productName = Flow;
                        productReference = AFD570FA0996BBBF00BA26F7 /* Flow.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD571140996BE9300BA26F7 /* PBXTargetDependency */,
                        );
                        name = Discrete;
-                       productName = Deco;
+                       productName = Discrete;
                        productReference = AFD571230996BE9300BA26F7 /* Discrete.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD5712D0996BF2E00BA26F7 /* PBXTargetDependency */,
                        );
                        name = Apollonian;
-                       productName = Deco;
+                       productName = Apollonian;
                        productReference = AFD5713C0996BF2E00BA26F7 /* Apollonian.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD571440996C01700BA26F7 /* PBXTargetDependency */,
                        );
                        name = Euler2D;
-                       productName = Deco;
+                       productName = Euler2D;
                        productReference = AFD571530996C01700BA26F7 /* Euler2D.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD5715A0996C0CE00BA26F7 /* PBXTargetDependency */,
                        );
                        name = Thornbird;
-                       productName = Deco;
+                       productName = Thornbird;
                        productReference = AFD571690996C0CE00BA26F7 /* Thornbird.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD571B60996D9DC00BA26F7 /* PBXTargetDependency */,
                        );
                        name = Juggle;
-                       productName = Deco;
+                       productName = Juggle;
                        productReference = AFD571C50996D9DC00BA26F7 /* Juggle.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD572230996E4A300BA26F7 /* PBXTargetDependency */,
                        );
                        name = Swirl;
-                       productName = Deco;
+                       productName = Swirl;
                        productReference = AFD572320996E4A300BA26F7 /* Swirl.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD5726E0996EE8500BA26F7 /* PBXTargetDependency */,
                        );
                        name = Polyominoes;
-                       productName = Deco;
+                       productName = Polyominoes;
                        productReference = AFD5727D0996EE8500BA26F7 /* Polyominoes.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD572A60996F99600BA26F7 /* PBXTargetDependency */,
                        );
                        name = Bouboule;
-                       productName = Deco;
+                       productName = Bouboule;
                        productReference = AFD572B50996F99600BA26F7 /* Bouboule.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD572C30996FC0F00BA26F7 /* PBXTargetDependency */,
                        );
                        name = Crystal;
-                       productName = Deco;
+                       productName = Crystal;
                        productReference = AFD572D20996FC0F00BA26F7 /* Crystal.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD572FA099701C000BA26F7 /* PBXTargetDependency */,
                        );
                        name = Julia;
-                       productName = Deco;
+                       productName = Julia;
                        productReference = AFD57309099701C000BA26F7 /* Julia.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AFD5735E0997411200BA26F7 /* PBXTargetDependency */,
                        );
                        name = Strange;
-                       productName = Deco;
+                       productName = Strange;
                        productReference = AFD5736D0997411200BA26F7 /* Strange.saver */;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
                                AF9D496C09B5411D006E59CF /* Twang */,
                                AF4776F1099DAE7A001F091E /* Vermiculate */,
                                AF47717F099D4803001F091E /* Wander */,
+                               AFA3392E0B058505002B0E7D /* WebCollage */,
+                               AFA33C020B058E17002B0E7D /* webcollage */,
+                               AFA33BC60B058740002B0E7D /* webcollage-helper */,
                                AF4776DB099DADDF001F091E /* WhirlWindWarp */,
                                AF477208099D4EE8001F091E /* Whirlygig */,
                                AF477382099D65A1001F091E /* Wormhole */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AFA339310B058505002B0E7D /* Resources */ = {
+                       isa = PBXResourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AFA33BB00B05860F002B0E7D /* webcollage.xml in Resources */,
+                               AFA33BDD0B058A30002B0E7D /* webcollage-helper in Resources */,
+                               AFA33C0C0B058ED2002B0E7D /* webcollage in Resources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AFA55949099330B000F3E977 /* Resources */ = {
                        isa = PBXResourcesBuildPhase;
                        buildActionMask = 2147483647;
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AFA3393B0B058505002B0E7D /* Rez */ = {
+                       isa = PBXRezBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AFA55956099330B000F3E977 /* Rez */ = {
                        isa = PBXRezBuildPhase;
                        buildActionMask = 2147483647;
                        shellPath = /bin/sh;
                        shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX";
                };
+               AFA3393C0B058505002B0E7D /* ShellScript */ = {
+                       isa = PBXShellScriptBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       inputPaths = (
+                       );
+                       outputPaths = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+                       shellPath = /bin/sh;
+                       shellScript = "$SOURCE_ROOT/OSX/update-info-plist.pl $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX";
+               };
+               AFA33C010B058E17002B0E7D /* ShellScript */ = {
+                       isa = PBXShellScriptBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       inputPaths = (
+                       );
+                       outputPaths = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+                       shellPath = /bin/sh;
+                       shellScript = "# shell script goes here\nexit 0";
+               };
                AFA3D69209C03B5C00E4CFCA /* ShellScript */ = {
                        isa = PBXShellScriptBuildPhase;
                        buildActionMask = 2147483647;
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AFA339340B058505002B0E7D /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AFA339350B058505002B0E7D /* XScreenSaverSubclass.m in Sources */,
+                               AFA33BAF0B0585F7002B0E7D /* webcollage-cocoa.m in Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               AFA33BC40B058740002B0E7D /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AFA33BD10B0587EE002B0E7D /* webcollage-helper-cocoa.m in Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AFA5594B099330B000F3E977 /* Sources */ = {
                        isa = PBXSourcesBuildPhase;
                        buildActionMask = 2147483647;
                        target = AF4808C0098C3B6C00FB32B8 /* jwxyz */;
                        targetProxy = AF9D4DEE09B5BB19006E59CF /* PBXContainerItemProxy */;
                };
+               AFA3392F0B058505002B0E7D /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = AF4808C0098C3B6C00FB32B8 /* jwxyz */;
+                       targetProxy = AFA339300B058505002B0E7D /* PBXContainerItemProxy */;
+               };
+               AFA33B8F0B0585A4002B0E7D /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = AFA3392E0B058505002B0E7D /* WebCollage */;
+                       targetProxy = AFA33B8E0B0585A4002B0E7D /* PBXContainerItemProxy */;
+               };
+               AFA33BCF0B0587B2002B0E7D /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = AFA33BC60B058740002B0E7D /* webcollage-helper */;
+                       targetProxy = AFA33BCE0B0587B2002B0E7D /* PBXContainerItemProxy */;
+               };
+               AFA33BDC0B058952002B0E7D /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = AFA33BC60B058740002B0E7D /* webcollage-helper */;
+                       targetProxy = AFA33BDB0B058952002B0E7D /* PBXContainerItemProxy */;
+               };
+               AFA33C040B058E3C002B0E7D /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = AFA33C020B058E17002B0E7D /* webcollage */;
+                       targetProxy = AFA33C030B058E3C002B0E7D /* PBXContainerItemProxy */;
+               };
                AFA55947099330B000F3E977 /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = AF4808C0098C3B6C00FB32B8 /* jwxyz */;
                        };
                        name = Release;
                };
+               AFA3393E0B058505002B0E7D /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                       };
+                       name = Debug;
+               };
+               AFA3393F0B058505002B0E7D /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                       };
+                       name = Release;
+               };
+               AFA33BCC0B058754002B0E7D /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               COPY_PHASE_STRIP = NO;
+                               GCC_DYNAMIC_NO_PIC = NO;
+                               GCC_ENABLE_FIX_AND_CONTINUE = YES;
+                               GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+                               GCC_MODEL_TUNING = G5;
+                               GCC_OPTIMIZATION_LEVEL = 0;
+                               GCC_PRECOMPILE_PREFIX_HEADER = YES;
+                               GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+                               INSTALL_PATH = "$(HOME)/bin";
+                               OTHER_LDFLAGS = (
+                                       "-framework",
+                                       Cocoa,
+                               );
+                               PREBINDING = NO;
+                               PRODUCT_NAME = "webcollage-helper";
+                               ZERO_LINK = YES;
+                       };
+                       name = Debug;
+               };
+               AFA33BCD0B058754002B0E7D /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               COPY_PHASE_STRIP = YES;
+                               GCC_ENABLE_FIX_AND_CONTINUE = NO;
+                               GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+                               GCC_MODEL_TUNING = G5;
+                               GCC_PRECOMPILE_PREFIX_HEADER = YES;
+                               GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+                               INSTALL_PATH = "$(HOME)/bin";
+                               OTHER_LDFLAGS = (
+                                       "-framework",
+                                       Cocoa,
+                               );
+                               PREBINDING = NO;
+                               PRODUCT_NAME = "webcollage-helper";
+                               ZERO_LINK = NO;
+                       };
+                       name = Release;
+               };
+               AFA33C080B058E67002B0E7D /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               COPY_PHASE_STRIP = NO;
+                               GCC_DYNAMIC_NO_PIC = NO;
+                               GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+                               GCC_OPTIMIZATION_LEVEL = 0;
+                               PRODUCT_NAME = webcollage;
+                       };
+                       name = Debug;
+               };
+               AFA33C090B058E67002B0E7D /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               COPY_PHASE_STRIP = YES;
+                               GCC_ENABLE_FIX_AND_CONTINUE = NO;
+                               GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+                               PRODUCT_NAME = webcollage;
+                               ZERO_LINK = NO;
+                       };
+                       name = Release;
+               };
                AFA55958099330B000F3E977 /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
+               AFA3393D0B058505002B0E7D /* Build configuration list for PBXNativeTarget "WebCollage" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               AFA3393E0B058505002B0E7D /* Debug */,
+                               AFA3393F0B058505002B0E7D /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+               AFA33BCB0B058754002B0E7D /* Build configuration list for PBXNativeTarget "webcollage-helper" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               AFA33BCC0B058754002B0E7D /* Debug */,
+                               AFA33BCD0B058754002B0E7D /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+               AFA33C070B058E67002B0E7D /* Build configuration list for PBXAggregateTarget "webcollage" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               AFA33C080B058E67002B0E7D /* Debug */,
+                               AFA33C090B058E67002B0E7D /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
                AFA55957099330B000F3E977 /* Build configuration list for PBXNativeTarget "Cage" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (