http://ftp.ksu.edu.tw/FTP/FreeBSD/distfiles/xscreensaver-4.24.tar.gz
authorZygo Blaxell <zblaxell@hungrycats.org>
Mon, 2 Mar 2009 05:43:35 +0000 (00:43 -0500)
committerZygo Blaxell <zblaxell@faye.furryterror.org>
Fri, 8 Feb 2013 17:54:30 +0000 (12:54 -0500)
-rw-r--r-- 1 zblaxell zblaxell 4936993 Feb  8  2006 xscreensaver-4.24.tar.gz
9573a5c561422fed2845d37f3ad43fa3e2b62247  xscreensaver-4.24.tar.gz

144 files changed:
README
driver/Makefile.in
driver/XScreenSaver.ad.in
driver/XScreenSaver_ad.h
driver/demo-Gtk.c
driver/exec.c
driver/passwd-pam.c
driver/setuid.c
driver/subprocs.c
driver/test-uid.c
driver/timers.c
driver/xscreensaver-getimage-video
driver/xscreensaver-text
driver/xscreensaver-text.man
driver/xscreensaver.h
hacks/Makefile.in
hacks/apple2.man
hacks/attraction.man
hacks/bubbles.man
hacks/celtic.c
hacks/celtic.man
hacks/cloudlife.man
hacks/config/README
hacks/config/anemotaxis.xml
hacks/config/atlantis.xml
hacks/config/blinkbox.xml
hacks/config/boing.xml
hacks/config/bouncingcow.xml
hacks/config/cloudlife.xml
hacks/config/coral.xml
hacks/config/crystal.xml
hacks/config/flyingtoasters.xml
hacks/config/glforestfire.xml
hacks/config/glhanoi.xml
hacks/config/glsnake.xml
hacks/config/jigglypuff.xml
hacks/config/juggle.xml
hacks/config/juggler3d.xml
hacks/config/lightning.xml
hacks/config/lissie.xml
hacks/config/lmorph.xml
hacks/config/mirrorblob.xml
hacks/config/mountain.xml
hacks/config/pinion.xml
hacks/config/polyhedra.xml
hacks/config/pong.xml
hacks/config/rd-bomb.xml
hacks/config/rotzoomer.xml
hacks/config/sierpinski3d.xml
hacks/config/spheremonics.xml
hacks/config/substrate.xml
hacks/config/tangram.xml
hacks/config/timetunnel.xml
hacks/config/whirlwindwarp.xml
hacks/config/wormhole.xml
hacks/config/xss.dtd [new file with mode: 0644]
hacks/config/xss.xsd [new file with mode: 0644]
hacks/config/zoom.xml
hacks/coral.man
hacks/crystal.man
hacks/deco.man
hacks/drift.man
hacks/fontglide.c
hacks/fontglide.man
hacks/forest.man
hacks/glx/Makefile.in
hacks/glx/antmaze.man
hacks/glx/atlantis.man
hacks/glx/blinkbox.man
hacks/glx/boing.man
hacks/glx/carousel.man
hacks/glx/cube21-tex.h [deleted file]
hacks/glx/cube21.c
hacks/glx/cubenetic.man
hacks/glx/fliptext.man
hacks/glx/glhanoi.c
hacks/glx/glhanoi.man
hacks/glx/glknots.man
hacks/glx/glmatrix.man
hacks/glx/glplanet.man
hacks/glx/glslideshow.man
hacks/glx/glsnake.c
hacks/glx/glsnake.man
hacks/glx/hypertorus.man
hacks/glx/jigglypuff.man
hacks/glx/juggler3d.man
hacks/glx/mirrorblob.man
hacks/glx/pinion.man
hacks/glx/pipes.man
hacks/glx/polytopes.man
hacks/glx/pulsar.man
hacks/glx/sballs.man
hacks/glx/sierpinski3d.man
hacks/glx/spheremonics.man
hacks/glx/starwars.man
hacks/glx/tangram.man
hacks/glx/timetunnel.man
hacks/goop.man
hacks/grav.man
hacks/helix.man
hacks/hyperball.man
hacks/hypercube.man
hacks/ifs.man
hacks/interaggregate.man
hacks/jigsaw.man
hacks/juggle.man
hacks/kaleidescope.man
hacks/lissie.man
hacks/ljlatest.man
hacks/metaballs.man
hacks/mismunch.man
hacks/mountain.man
hacks/munch.man
hacks/penrose.man
hacks/phosphor.c
hacks/phosphor.man
hacks/piecewise.c
hacks/pong.man
hacks/pyro.man
hacks/qix.man
hacks/rd-bomb.man
hacks/rorschach.man
hacks/rotzoomer.man
hacks/shadebobs.man
hacks/slidescreen.man
hacks/slip.man
hacks/sonar.c
hacks/strange.man
hacks/substrate.man
hacks/t3d.man
hacks/truchet.man
hacks/vines.man
hacks/webcollage.man
hacks/whirlygig.man
hacks/worm.man
hacks/wormhole.c
hacks/wormhole.man
hacks/xanalogtv.man
hacks/xlyap.man
hacks/xmatrix.man
hacks/xteevee.man
po/POTFILES.in
utils/version.h
xscreensaver.spec

diff --git a/README b/README
index 0df5d6857e5a7e14e7d16cc272f802f72cfc24be..ea9b4c4aaa0662e4a25948dc02004d3badc13e2f 100644 (file)
--- a/README
+++ b/README
@@ -76,6 +76,14 @@ the XScreenSaver FAQ about that: http://www.jwz.org/xscreensaver/faq.html
 
                               ============
 
+Changes since 4.23:   * New versions of `cube21', `glsnake', `celtic'.
+                      * Backed out a DPMS-related patch that cause desktop
+                        flickering with some X servers.
+                      * Fixed startup crash in getgroups() when running setuid.
+                      * Default to not displaying stderr on the saver window.
+                      * Fixed bad free() in "Documentation" button.
+                      * Don't try to run hacks that aren't installed.
+                      * Minor fixes to various XML config files and man pages.
 Changes since 4.22:   * New hacks, `glhanoi', `cube21', `timetunnel',
                         `juggler3d', and `celtic'.
                       * New versions of `tangram', `webcollage', `hypertorus',
index aa02e51b48bf70ced9a4fb0dca200c8fbf0a105a..eb478b0b361d109620fda0befc37b71b9a46910b 100644 (file)
@@ -379,6 +379,7 @@ install-man: $(MEN)
          instname=`echo $$man | sed 's/\.man$$/\.$(mansuffix)/'` ;     \
          sed -e "s/^\.TH.*/$$TH/"                                      \
              -e 's/^\(\.BR xscr.*(\)[^()]\(.*\)/\1$(mansuffix)\2/'     \
+             -e 's@(MANSUFFIX)@($(mansuffix))@g'                       \
            < $(srcdir)/$$man > $$T ;                                   \
          echo $(INSTALL_DATA) $(srcdir)/$$man                          \
           $(install_prefix)$(manNdir)/$$instname ;                     \
index 6f608c30cf78cce8a995a8ff234e8861109addc8..4d110644a05e144afdeb46f64445abee4758352c 100644 (file)
@@ -4,8 +4,8 @@
 !            a screen saver and locker for the X window system
 !                            by Jamie Zawinski
 !
-!                              version 4.23
-!                              21-Oct-2005
+!                              version 4.24
+!                              08-Feb-2006
 !
 ! See "man xscreensaver" for more info.  The latest version is always
 ! available at http://www.jwz.org/xscreensaver/
@@ -54,7 +54,7 @@
 *splash:               True
 *splashDuration:       0:00:05
 *visualID:             default
-*captureStderr:        True
+*captureStderr:        False
 *ignoreUninstalledPrograms: False
 
 *textMode:             file
index c05ccf843fe278fb53d0437d6d3406f5f672ee57..75717cfc120648b571c98bb27329be911e0e3837 100644 (file)
@@ -27,7 +27,7 @@
 "*splash:              True",
 "*splashDuration:      0:00:05",
 "*visualID:            default",
-"*captureStderr:       True",
+"*captureStderr:       False",
 "*ignoreUninstalledPrograms: False",
 "*textMode:            file",
 "*textLiteral:         XScreenSaver",
index 4a6f3cf169a57630372dfc9b39f1a87727341b56..61e9aa284c41a5e74bc84df4e466e147c819009e 100644 (file)
@@ -1,5 +1,5 @@
 /* demo-Gtk.c --- implements the interactive demo-mode and options dialogs.
- * xscreensaver, Copyright (c) 1993-2005 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1993-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
@@ -144,6 +144,7 @@ enum {
 
 /* from exec.c */
 extern void exec_command (const char *shell, const char *command, int nice);
+extern int on_path_p (const char *program);
 
 static void hack_subproc_environment (Window preview_window_id, Bool debug_p);
 
@@ -1029,6 +1030,7 @@ manual_cb (GtkButton *button, gpointer user_data)
   int list_elt = selected_list_element (s);
   int hack_number;
   char *name, *name2, *cmd, *str;
+  char *oname = 0;
   if (list_elt < 0) return;
   hack_number = s->list_elt_to_hack_number[list_elt];
 
@@ -1037,6 +1039,7 @@ manual_cb (GtkButton *button, gpointer user_data)
 
   name = strdup (p->screenhacks[hack_number]->command);
   name2 = name;
+  oname = name;
   while (isspace (*name2)) name2++;
   str = name2;
   while (*str && !isspace (*str)) str++;
@@ -1064,7 +1067,7 @@ manual_cb (GtkButton *button, gpointer user_data)
                       False, 100);
     }
 
-  free (name);
+  free (oname);
 }
 
 
@@ -2354,52 +2357,6 @@ scroll_to_current_hack (state *s)
 }
 
 
-static Bool
-on_path_p (const char *program)
-{
-  int result = False;
-  struct stat st;
-  char *cmd = strdup (program);
-  char *token = strchr (cmd, ' ');
-  char *path = 0;
-  int L;
-
-  if (token) *token = 0;
-  token = 0;
-
-  if (strchr (cmd, '/'))
-    {
-      result = (0 == stat (cmd, &st));
-      goto DONE;
-    }
-
-  path = getenv("PATH");
-  if (!path || !*path)
-    goto DONE;
-
-  L = strlen (cmd);
-  path = strdup (path);
-  token = strtok (path, ":");
-
-  while (token)
-    {
-      char *p2 = (char *) malloc (strlen (token) + L + 3);
-      strcpy (p2, token);
-      strcat (p2, "/");
-      strcat (p2, cmd);
-      result = (0 == stat (p2, &st));
-      if (result)
-        goto DONE;
-      token = strtok (0, ":");
-    }
-
- DONE:
-  free (cmd);
-  if (path) free (path);
-  return result;
-}
-
-
 static void
 populate_hack_list (state *s)
 {
index 0798ea834d192752a26d7857aeee865a192cc547..c9c95500bbaf2cc69d8fdb4e2164dd45ec02d52d 100644 (file)
@@ -1,5 +1,5 @@
 /* exec.c --- executes a program in *this* pid, without an intervening process.
- * xscreensaver, Copyright (c) 1991-2002 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1991-2005 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
@@ -58,6 +58,7 @@
 #include <string.h>
 #include <stdio.h>
 #include <ctype.h>
+#include <sys/stat.h>
 
 #ifndef ESRCH
 # include <errno.h>
@@ -246,3 +247,53 @@ nice_process (int nice_level)
 
 #endif
 }
+
+
+/* Whether the given command exists on $PATH.
+   (Anything before the first space is considered to be the program name.)
+ */
+int
+on_path_p (const char *program)
+{
+  int result = 0;
+  struct stat st;
+  char *cmd = strdup (program);
+  char *token = strchr (cmd, ' ');
+  char *path = 0;
+  int L;
+
+  if (token) *token = 0;
+  token = 0;
+
+  if (strchr (cmd, '/'))
+    {
+      result = (0 == stat (cmd, &st));
+      goto DONE;
+    }
+
+  path = getenv("PATH");
+  if (!path || !*path)
+    goto DONE;
+
+  L = strlen (cmd);
+  path = strdup (path);
+  token = strtok (path, ":");
+
+  while (token)
+    {
+      char *p2 = (char *) malloc (strlen (token) + L + 3);
+      strcpy (p2, token);
+      strcat (p2, "/");
+      strcat (p2, cmd);
+      result = (0 == stat (p2, &st));
+      if (result)
+        goto DONE;
+      token = strtok (0, ":");
+    }
+
+ DONE:
+  free (cmd);
+  if (path) free (path);
+  return result;
+}
+
index 52347aad5f3fcd10e7e00e5545f48cfaea1be149..2452bbc63b91322a35675c51ee214eb4edf756db 100644 (file)
@@ -339,7 +339,11 @@ pam_priv_init (int argc, char **argv, Bool verbose_p)
   const char file2[] = "/etc/pam.conf";
   struct stat st;
 
-  if (stat (dir, &st) == 0 && st.st_mode & S_IFDIR)
+# ifndef S_ISDIR
+#  define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
+# endif
+
+  if (stat (dir, &st) == 0 && S_ISDIR(st.st_mode))
     {
       if (stat (file, &st) != 0)
         fprintf (stderr,
index 86d3535afd3f04730c2cb415c99277fdd80ee605..3ac78e4fa2fb62262537b5fb2d66c93f041e4780 100644 (file)
@@ -93,11 +93,13 @@ static int
 setgroups_needed_p (uid_t target_group)
 {
   gid_t groups[1024];
-  int n = getgroups (sizeof(groups)-1, groups);
+  int n, size;
+  size = sizeof(groups) / sizeof(gid_t);
+  n = getgroups (size - 1, groups);
   if (n < 0)
     {
       char buf [1024];
-      sprintf (buf, "%s: getgroups(%ld, ...)", blurb(), (long)sizeof(groups)-1);
+      sprintf (buf, "%s: getgroups(%ld, ...)", blurb(), (long int)(size - 1));
       perror (buf);
       return 1;
     }
@@ -161,7 +163,7 @@ set_ids_by_number (uid_t uid, gid_t gid, char **message_ret)
     {
       char buf [1024];
       gid_t groups[1024];
-      int n;
+      int n, size;
 
       if (sgs_errno)
        {
@@ -178,7 +180,8 @@ set_ids_by_number (uid_t uid, gid_t gid, char **message_ret)
             }
 
          fprintf (stderr, "%s: effective group list: ", blurb());
-          n = getgroups (sizeof(groups)-1, groups);
+         size = sizeof(groups) / sizeof(gid_t);
+          n = getgroups (size - 1, groups);
           if (n < 0)
             fprintf (stderr, "unknown!\n");
           else
index 01329d0effb0426a26b27ba3042e5e8e978510c6..643179829d4ad3db0fcaa64a3d2a07f964ffdf6b 100644 (file)
@@ -954,6 +954,7 @@ spawn_screenhack_1 (saver_screen_info *ssi, Bool first_time_p)
         
       if (!force &&
          (!hack->enabled_p ||
+          !on_path_p (hack->command) ||
           !select_visual_of_hack (ssi, hack)))
        {
          if (++retry_count > (p->screenhacks_count*4))
index dd4893e8de071f64d6ecc259b68a3d4b0a72f4f5..b4db41dd467769f1db8422f95ebea251d13706b8 100644 (file)
@@ -37,7 +37,7 @@ print(void)
   struct passwd *p = 0;
   struct group *g = 0;
   gid_t groups[1024];
-  int n;
+  int n, size;
 
   p = getpwuid (uid);
   g = getgrgid (gid);
@@ -51,7 +51,8 @@ print(void)
          (p && p->pw_name ? p->pw_name : "???"),
          (g && g->gr_name ? g->gr_name : "???"));
 
-  n = getgroups(sizeof(groups)-1, groups);
+  size = sizeof(groups) / sizeof(gid_t)
+  n = getgroups(size - 1, groups);
   if (n < 0)
     perror("getgroups failed");
   else
@@ -63,7 +64,7 @@ print(void)
           g = getgrgid (groups[i]);
           fprintf(stderr, "%s%s=%ld", (i == 0 ? "" : ", "),
                   (g->gr_name ? g->gr_name : "???"),
-                  groups[i]);
+                  (long) groups[i]);
         }
       fprintf (stderr, "]\n");
     }
index f64190bc923580f91856e45320836062902a33f5..521929a68902ce290ee31359977c6a21ffd98f12 100644 (file)
@@ -336,11 +336,18 @@ reset_timers (saver_info *si)
      DPMS timer.  Without this, the -deactivate clientmessage would
      prevent xscreensaver from blanking, but would not prevent the
      monitor from powering down. */
+#if 0
+  /* #### With some servers, this causes the screen to flicker every
+     time a key is pressed!  Ok, I surrender.  I give up on ever
+     having DPMS work properly.
+   */
   XForceScreenSaver (si->dpy, ScreenSaverReset);
 
   /* And if the monitor is already powered off, turn it on.
      You'd think the above would do that, but apparently not? */
   monitor_power_on (si);
+#endif
+
 }
 
 
index 3a8b59c7fc1f91243f8be0647f4d98a00babbf0a..468bf3afc1f2615b0c4923792a9c8ae68c13f622 100755 (executable)
@@ -29,7 +29,7 @@ use diagnostics;
 use strict;
 
 my $progname = $0; $progname =~ s@.*/@@g;
-my $version = q{ $Revision: 1.14 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
+my $version = q{ $Revision: 1.16 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
 
 my $verbose = 0;
 
@@ -50,6 +50,8 @@ my @programs = (
   "qcam > $tmpfile",                           # Connectix Qcam
   "gqcam -t PPM -d $tmpfile",                  # GTK+ Qcam clone
 
+  "v4lctl snap ppm full $tmpfile",             # XawTV 3.94.
+
   "streamer -a -s 768x576 -o $tmpfile",                # XawTV
   #   the "-a" option ("mute audio") arrived with XawTV 3.76.
 
index 4449f9c934b8db8ce85f559323ebe2313a0863db..4960295634d7f437e9b945783e77f15ab449e097 100755 (executable)
@@ -24,7 +24,7 @@ use Text::Wrap qw(wrap);
 use bytes;
 
 my $progname = $0; $progname =~ s@.*/@@g;
-my $version = q{ $Revision: 1.6 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
+my $version = q{ $Revision: 1.7 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
 
 my $verbose = 0;
 my $http_proxy = undef;
@@ -308,7 +308,7 @@ sub output() {
     safe_system ("date", "+%c");
     print "\n";
     my $ut = `uptime`;
-    $ut =~ s/^[ \d:]*//;
+    $ut =~ s/^[ \d:]*(am|pm)?//i;
     $ut =~ s/,\s*(load)/\n$1/;
     print "$ut\n";
   }
index eeb3cb2dada56c7a579671ee94d240e89f3c9421..0193ddb3bf52019d60982bdc2e023665dcc00e94 100644 (file)
@@ -60,12 +60,12 @@ URLs should be cached, use "If-Modified-Since", and obey "Expires".
 .BR xscreensaver-demo (1),
 .BR xscreensaver (1),
 .BR fortune (1),
-.BR phosphor (1),
-.BR apple2 (1),
-.BR starwars (1),
-.BR fontglide (1),
+.BR phosphor (MANSUFFIX),
+.BR apple2 (MANSUFFIX),
+.BR starwars (MANSUFFIX),
+.BR fontglide (MANSUFFIX),
 .BR dadadodo (1),
-.BR webcollage (1),
+.BR webcollage (MANSUFFIX),
 .I http://www.livejournal.com/stats/latest-rss.bml,
 .BR driftnet (1),
 .BR EtherPEG ,
index d80be1011513cd8e0d66debff81f781b563996be..1c37af555dbb0fdb7188f458dbf5308d009231f1 100644 (file)
@@ -427,6 +427,8 @@ extern void store_saver_status (saver_info *si);
 extern const char *signal_name (int signal);
 extern void exec_command (const char *shell, const char *command,
                           int nice_level);
+extern int on_path_p (const char *program);
+
 
 /* =======================================================================
    subprocs diagnostics
index 0e5fde9522c6d861c7f2613874c761d0499bed41..c260113480d4c6273ca6dda5d155ae6f4c326c7d 100644 (file)
@@ -213,6 +213,8 @@ EXTRAS              = README Makefile.in xlock_23.h xml2man.pl .gdbinit \
                  euler2d.tex \
                  config/README \
                  config/$(STAR).xml \
+                 config/$(STAR).dtd \
+                 config/$(STAR).xsd \
                  images/$(STAR).xbm \
                  images/$(STAR).xpm \
                  images/bubbles/$(STAR).pov \
@@ -323,7 +325,9 @@ install-man: $(MEN)
                                                                        \
        for man in $$men; do                                            \
          instname=`echo $$man | sed 's/\.man$$/\.$(mansuffix)/'` ;     \
-         sed "s/^\.TH.*/$$TH/" < $(srcdir)/$$man > $$T ;               \
+         sed -e "s/^\.TH.*/$$TH/"                                      \
+             -e 's@(MANSUFFIX)@($(mansuffix))@g'                       \
+           < $(srcdir)/$$man > $$T ;                                   \
          echo $(INSTALL_DATA) $(srcdir)/$$man                          \
           $(install_prefix)$(manNdir)/$$instname ;                     \
          $(INSTALL_DATA) $$T                                           \
index b464e43d59f158287da086264b14ca5b4ed4f407..932c2b4c2760ee01e57332004f35508b257a0cd3 100644 (file)
@@ -175,14 +175,14 @@ Apple ][ and Applesoft are trademarks of Apple Computer.
 
 .SH SEE ALSO
 .BR xscreensaver (1),
-.BR bsod (1),
+.BR bsod (MANSUFFIX),
 .BR xscreensaver-text (1),
 .BR fortune (1),
-.BR phosphor (1),
-.BR starwars (1),
-.BR ljlatest (1),
+.BR phosphor (MANSUFFIX),
+.BR starwars (MANSUFFIX),
+.BR ljlatest (MANSUFFIX),
 .BR dadadodo (1),
-.BR webcollage (1),
+.BR webcollage (MANSUFFIX),
 .BR driftnet (1)
 .BR EtherPEG ,
 .BR EtherPeek ,
index 5e19f757e216f5f7d026309fc891473d7c2626ea..0099a6274a771e98fa37c96031d1285dcdaa5fde 100644 (file)
@@ -88,7 +88,7 @@ of the balls controls their mass.
 .TP 8
 .B \-segments integer
 If in \fIlines\fP or \fIpolygons\fP mode, how many sets of line segments
-or polygons should be drawn. Default 100.  This has no effect in \fIballs\fP
+or polygons should be drawn. Default 500.  This has no effect in \fIballs\fP
 mode.  If \fIsegments\fP is 0, then no segments will ever be erased (this
 is only useful in color.)
 .TP 8
index 5b83e21dfd134f7a9a739e031118c7cdc13d40f9..268929de91258b44231ba6e16e2c8082315d38d4 100644 (file)
@@ -16,7 +16,7 @@
 bubbles - frying pan / soft drink simulation
 .SH SYNOPSIS
 .B bubbles
-[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-simple] [\-broken] [\-3D]
+[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-simple] [\-broken] [\-3D] [\-rise|\-drop] [-trails]
 .SH DESCRIPTION
 \fIBubbles\fP sprays lots of little random bubbles all over the window which
 then grow until they reach their maximum size and go pop.  The inspiration
@@ -53,7 +53,7 @@ or the id number (decimal or hex) of a specific visual.
 .TP 8
 .B \-delay microseconds
 How much of a delay should be introduced between steps of the animation.
-Default 1, or about 1 microsecond.  Actually, this is the delay between each
+Default 800, or about 800 microsecond.  Actually, this is the delay between each
 group of 15 new bubbles since such a delay between each step results in a
 very slow animation rate.
 .TP 8
@@ -81,6 +81,10 @@ mileage may vary.
 .B \-quiet
 Don't print messages explaining why one or several command line options
 were ignored.  This is disabled by default.
+.TP 8
+.B \-rise | \-drop 
+.TP 8
+.B \-trails
 .SH NOTES
 If you find the pace of things too slow, remember that there is a delay
 even though you specify no \fI\-delay\fP option.  Try using \fI\-nodelay\fP
index deb3f3327df506fedc0c2edfe5718c4228f74b0b..5e8e361f77aebfc38e2e4c40da8187c3e772fea4 100644 (file)
@@ -1,4 +1,4 @@
-/* celtic, Copyright (c) 2005 Max Froumentin <max@lapin-bleu.net>
+/* celtic, Copyright (c) 2006 Max Froumentin <max@lapin-bleu.net>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -7,6 +7,10 @@
  * documentation.  No representations are made about the suitability of this
  * software for any purpose.  It is provided "as is" without express or 
  * implied warranty.
+ *
+ * A celtic pattern programme inspired by "Les Entrelacs Celtes", by
+ * Christian Mercat, Dossier Pour La Science, no. 47, april/june 2005.
+ * See <http://www.entrelacs.net/>
  */
 
 #include <math.h>
@@ -14,7 +18,7 @@
 #include "screenhack.h"
 #include "erase.h"
 
-#define SQRT3_2 .86602540378443864676
+#define SQRT_3 1.73205080756887729352
 
 /*-----------------------------------------*/
 Display *dpy;
@@ -33,6 +37,7 @@ struct params {
   unsigned long cluster_size; /* only used if type is kennicott */
   unsigned long delay;        /* controls curve drawing speed (step delay 
                               * in microsecs) */
+  unsigned long nsteps; /* only if triangle: number of subdivisions along the side */
   unsigned long nb_orbits;          /* only used if type is polar */
   unsigned long nb_nodes_per_orbit; /* only used if type is polar */
 
@@ -384,52 +389,50 @@ static Graph make_grid_graph(int xmin, int ymin, int width, int height, int step
 }
 
 
-
-static Graph make_triangle_graph(int xmin, int ymin, int width, int height, int step)
-     /* make a simple grid graph */
+static Graph make_triangle_graph(int xmin, int ymin, int width, int height, int edge_size)
 {
   Graph g;
-  int row,col,x,y;
-  int size=width<height?width:height;
-  int n=1+size/SQRT3_2/step;
   Node *grid;
+  int row,col;
+  double L=(width<height?width:height)/2.0; /* circumradius of the triangle */
+  double cx=xmin+width/2.0, cy=ymin+height/2.0; /* centre of the triangle */
+  double p2x=cx-L*SQRT_3/2.0, p2y=cy+L/2.0; /* p2 is the bottom left vertex */
+  double x,y;
+  int nsteps=3*L/(SQRT_3*edge_size);
 
-  assert(grid=(Node*)calloc(n*n,sizeof(Node)));
+  assert(grid=(Node*)calloc((nsteps+1)*(nsteps+1),sizeof(Node)));
   assert(g=graph_new());
 
-  /* adjust xmin and xmax so that the grid is centered */
-  xmin+=(width-(n-1)*step)/2; 
-  ymin+=(height-SQRT3_2*(n-3)*step)/2;
-
   /* create node grid */
-  for (row=0;row<n;row++)
-    for (col=0;col<n;col++) 
-      if (row+col<n) {
-       x=col*step+xmin + row*step/2;
-       y=SQRT3_2*row*step+ymin;
-       grid[row+col*n]=node_new((double)x, (double)y);
-       graph_add_node(g, grid[row+col*n]);
+  for (row=0;row<=nsteps;row++)
+    for (col=0;col<=nsteps;col++) 
+      if (row+col<=nsteps) {
+        x=p2x+col*L*SQRT_3/nsteps + row*L*SQRT_3/(2*nsteps);
+        y=p2y-row*3*L/(2*nsteps);
+        grid[col+row*(nsteps+1)]=node_new((double)x, (double)y);
+        graph_add_node(g, grid[col+row*(nsteps+1)]);
       }
 
   /* create edges */
-  for (row=0;row<n;row++)
-    for (col=0;col<n;col++)
-       if (row+col<n-1) { 
-         /* horizontal edges */
-         graph_add_edge(g,edge_new(grid[row+col*n],grid[row+(col+1)*n]));
-         /* vertical edges */
-         graph_add_edge(g,edge_new(grid[row+col*n],grid[row+1+col*n]));
-         /* diagonal edges */
-         graph_add_edge(g,edge_new(grid[row+1+col*n],grid[row+(col+1)*n]));
+  for (row=0;row<nsteps;row++)
+    for (col=0;col<nsteps;col++)
+      if (row+col<nsteps) { 
+          /* horizontal edges */
+          graph_add_edge(g,edge_new(grid[row+col*(nsteps+1)],grid[row+(col+1)*(nsteps+1)]));
+          /* vertical edges */
+          graph_add_edge(g,edge_new(grid[row+col*(nsteps+1)],grid[row+1+col*(nsteps+1)]));
+          /* diagonal edges */
+          graph_add_edge(g,edge_new(grid[row+1+col*(nsteps+1)],grid[row+(col+1)*(nsteps+1)]));
       }
 
   free(grid);
   return g;
+  
 }
 
 
 static Graph make_kennicott_graph(int xmin, int ymin, int width, int height, int step,
-                          int cluster_size)
+                           int cluster_size)
      /* make a graph inspired by one of the motifs from the Kennicott bible */
      /* square grid of clusters of the shape  /|\
       *                                       ---
@@ -487,14 +490,14 @@ static Graph make_kennicott_graph(int xmin, int ymin, int width, int height, int
   for (row=0;row<nbrow;row++)
     for (col=0;col<nbcol;col++) {
       if (col!=nbcol-1)
-       /* horizontal edge from edge 1 of cluster (row, col) to edge 3
-        * of cluster (row,col+1) */
-       graph_add_edge(g,edge_new(grid[5*(row+col*nbrow)+1],grid[5*(row+(col+1)*nbrow)+3]));
+        /* horizontal edge from edge 1 of cluster (row, col) to edge 3
+         * of cluster (row,col+1) */
+        graph_add_edge(g,edge_new(grid[5*(row+col*nbrow)+1],grid[5*(row+(col+1)*nbrow)+3]));
       if (row!=nbrow-1)
-       /* vertical edge from edge 4 of cluster (row, col) to edge 2
-        * of cluster (row+1,col) */
-       graph_add_edge(g,edge_new(grid[5*(row+col*nbrow)+4],
-                                 grid[5*(row+1+col*nbrow)+2]));
+        /* vertical edge from edge 4 of cluster (row, col) to edge 2
+         * of cluster (row+1,col) */
+        graph_add_edge(g,edge_new(grid[5*(row+col*nbrow)+4],
+                                  grid[5*(row+1+col*nbrow)+2]));
     }
   free(grid);
   return g;
@@ -525,8 +528,8 @@ static void spline_del(void *s)
 }
 
 static void spline_add_segment(Spline s,
-                       double x1, double y1, double x2, double y2, 
-                       double x3, double y3, double x4, double y4)
+                        double x1, double y1, double x2, double y2, 
+                        double x3, double y3, double x4, double y4)
 {
   SplineSegment ss=(SplineSegment)calloc(1,sizeof(struct spline_segment));
   ss->x1=x1;  ss->x2=x2;  ss->x3=x3;  ss->x4=x4;
@@ -543,7 +546,7 @@ static void spline_to_s(Spline s, FILE *f)
   for (i=0;i<s->segments->nb_elements;i++) {
     ss=s->segments->elements[i];
     fprintf(f," - segment %d: (%g, %g),(%g, %g),(%g, %g),(%g, %g)\n",
-           i,ss->x1,ss->y1,ss->x2,ss->y2,ss->x3,ss->y3,ss->x4,ss->y4);
+            i,ss->x1,ss->y1,ss->x2,ss->y2,ss->x3,ss->y3,ss->x4,ss->y4);
   }
 }
 #endif
@@ -633,8 +636,8 @@ static void pattern_edge_couple_set(Pattern p, Edge e, Direction d, int value)
 }
 
 static void pattern_draw_spline_direction(Pattern p, Spline s,
-                                  Node node, Edge edge1, Edge edge2, 
-                                  Direction direction)
+                                   Node node, Edge edge1, Edge edge2, 
+                                   Direction direction)
 {
   double x1=(edge1->node1->x+edge1->node2->x)/2.0;
   double y1=(edge1->node1->y+edge1->node2->y)/2.0;
@@ -716,7 +719,7 @@ static void pattern_make_curves(Pattern p)
 
       /* add the spline segment to the spline */
       pattern_draw_spline_direction(p,s,current_node,
-                                   current_edge,next_edge,current_direction);
+                                    current_edge,next_edge,current_direction);
       
       /* cross the edge */
       current_edge = next_edge;
@@ -738,9 +741,9 @@ static void pattern_animate(Pattern p, unsigned long delay)
   int i,segment,unused;
   int ticks = 0;
   double step=0.0001; /* TODO: set the step (or the delay) as a
-                       * function of the spline length, so that
-                       * drawing speed is constant
-                       */
+                        * function of the spline length, so that
+                        * drawing speed is constant
+                        */
   Spline s;
 
   XSetLineAttributes(dpy,gc,params.curve_width,LineSolid,CapRound,JoinRound);
@@ -749,33 +752,33 @@ static void pattern_animate(Pattern p, unsigned long delay)
   for (t=0.0;t<1;t+=step) {
     for (i=0;i<p->splines->nb_elements;i++) 
       if ((s=p->splines->elements[i])) { /* skip if one-point spline */
-       spline_value_at(s, &x, &y, fmod(t,1.0),&segment);
-       spline_value_at(s, &x2, &y2, fmod(t+step,1.0),&unused);
-       
-       /* look ahead for the shadow segment */
-       t2=t+step;
-       if (t2<=1.0) {
-         spline_value_at(s, &x3, &y3, fmod(t2,1.0),&unused);
-         while (t2+step<1.0 && (x3-x2)*(x3-x2)+(y3-y2)*(y3-y2) < params.shadow_width*params.shadow_width) {
-           t2+=step;
-           spline_value_at(s, &x3, &y3, fmod(t2,1.0),&unused);
-         }
-         
-         spline_value_at(s, &x4, &y4, fmod(t2+step,1.0),&unused);
-         
-         /* draw shadow line */
-         XDrawLine(dpy,window,shadow_gc, 
-                   (int)rint(x3),(int)rint(y3), 
-                   (int)rint(x4),(int)rint(y4));
-       } 
-       /* draw line segment */
-       if (p->splines->nb_elements==1)
-         XSetForeground(dpy, gc, colors[segment%(ncolors-3)+2].pixel);
-       else
-         XSetForeground(dpy, gc, colors[s->color].pixel);
-       XDrawLine(dpy,window,gc,
-                 (int)rint(x),(int)rint(y),
-                 (int)rint(x2),(int)rint(y2));
+        spline_value_at(s, &x, &y, fmod(t,1.0),&segment);
+        spline_value_at(s, &x2, &y2, fmod(t+step,1.0),&unused);
+        
+        /* look ahead for the shadow segment */
+        t2=t+step;
+        if (t2<=1.0) {
+          spline_value_at(s, &x3, &y3, fmod(t2,1.0),&unused);
+          while (t2+step<1.0 && (x3-x2)*(x3-x2)+(y3-y2)*(y3-y2) < params.shadow_width*params.shadow_width) {
+            t2+=step;
+            spline_value_at(s, &x3, &y3, fmod(t2,1.0),&unused);
+          }
+          
+          spline_value_at(s, &x4, &y4, fmod(t2+step,1.0),&unused);
+          
+          /* draw shadow line */
+          XDrawLine(dpy,window,shadow_gc, 
+                    (int)rint(x3),(int)rint(y3), 
+                    (int)rint(x4),(int)rint(y4));
+        
+        /* draw line segment */
+        if (p->splines->nb_elements==1)
+          XSetForeground(dpy, gc, colors[segment%(p->ncolors-3)+2].pixel);
+        else
+          XSetForeground(dpy, gc, colors[s->color].pixel);
+        XDrawLine(dpy,window,gc,
+                  (int)rint(x),(int)rint(y),
+                  (int)rint(x2),(int)rint(y2));
       }
 
     if (++ticks > 100) {
@@ -796,8 +799,8 @@ static void pattern_animate(Pattern p, unsigned long delay)
       spline_value_at(s, &x2, &y2, fmod(t-offset,1.0),&unused);
       
       while ((x2-x)*(x2-x)+(y2-y)*(y2-y) < params.shadow_width*params.shadow_width) {
-       offset+=step;
-       spline_value_at(s, &x2, &y2, fmod(t-offset,1.0),&unused);
+        offset+=step;
+        spline_value_at(s, &x2, &y2, fmod(t-offset,1.0),&unused);
       }
       
       XDrawLine(dpy,window,gc, (int)rint(x),(int)rint(y), (int)rint(x2),(int)rint(y2));
@@ -861,6 +864,19 @@ static void params_to_s(FILE *f)
 }
 #endif
 
+#if 0
+static void colormap_to_s(int ncolors, XColor *colors)
+{
+  int i;
+  printf("-- colormap (%d colors):\n",ncolors);
+  for (i=0;i<ncolors;i++)
+    printf("%d: %d %d %d\n", i, colors[i].red, colors[i].green, colors[i].blue);
+  printf("----\n");
+}
+#endif
+
+
+
 void screenhack(Display * d, Window w)
 {
   XGCValues gcv;
@@ -895,14 +911,13 @@ void screenhack(Display * d, Window w)
       if (ncolors < 2)
         goto MONO;
       else {
-       colors[0].pixel = get_pixel_resource("foreground", "Foreground",
-                                            dpy, xgwa.colormap);
-       colors[1].pixel = get_pixel_resource("background", "Background",
-                                            dpy, xgwa.colormap);
+        colors[0].pixel = get_pixel_resource("foreground", "Foreground",
+                                             dpy, xgwa.colormap);
+        colors[1].pixel = get_pixel_resource("background", "Background",
+                                             dpy, xgwa.colormap);
       }
     }
-  
-  
+
   /* graphic context for curves */
   gcv.foreground = colors[0].pixel;
   gcv.background = colors[1].pixel;
@@ -924,37 +939,53 @@ void screenhack(Display * d, Window w)
   /*=======================================================*/
 
   for (;;) {
-
     params.curve_width=random()%5+4;
     params.shadow_width=params.curve_width+4;
-    params.shape1=(random()%20)/10.0 -1.0;
-    params.shape2=(random()%20)/10.0 -1.0;
+    params.shape1=(15+random()%15)/10.0 -1.0;
+    params.shape2=(15+random()%15)/10.0 -1.0;
     params.edge_size=10*(random()%5)+20;
     params.delay=get_integer_resource("delay", "Delay");
     params.angle=random()%360*2*M_PI/360;
+    params.margin=(random()%8)*100-600;
     
     switch (random()%4) {
     case 0:
       params.type=grid;
-      params.margin=(random()%30)*10;
+      params.shape1=(random()%1*2-1.0)*(random()%10+3)/10.0;
+      params.shape2=(random()%1*2-1.0)*(random()%10+3)/10.0;
+      params.edge_size=10*(random()%5)+50;
       break;
     case 1:
       params.type=kennicott;
-      params.edge_size=10*(random()%3)+50;
-      params.cluster_size=params.edge_size/(2+random()%3)-1;
-      params.margin=(random()%30)*10;
+      params.shape1=(random()%20)/10.0 -1.0;
+      params.shape2=(random()%20)/10.0 -1.0;
+      params.edge_size=10*(random()%3)+70;
+      params.cluster_size=params.edge_size/(3.0+random()%10)-1;
       break;
     case 2:
       params.type=triangle;
-      params.margin=(random()%10)*10;
+      params.edge_size=10*(random()%5)+60;
+      params.margin=(random()%10)*100-900;
       break;
     case 3:
       params.type=polar;
-      params.nb_orbits=2+random()%20;
-      params.nb_nodes_per_orbit=4+random()%20;
-      params.margin=(random()%10)*20-50;
+      params.nb_orbits=2+random()%10;
+      params.nb_nodes_per_orbit=4+random()%10;
       break;
     }
+
+
+/*     params.type= polar; */
+/*   params.nb_orbits= 5; */
+/*   params.nb_nodes_per_orbit= 19; */
+/*   params.curve_width= 4; */
+/*   params.shadow_width= 8; */
+/*   params.shape1= 0.5; */
+/*   params.shape2= 1.3; */
+/*   params.margin= 30; */
+/*   params.angle= 5.21853; */
+/*   params.delay= 10000; */
+
     
 /*     params_to_s(stdout); */
     
@@ -964,35 +995,35 @@ void screenhack(Display * d, Window w)
     switch (params.type) {
     case grid:
       g=make_grid_graph(params.margin,params.margin,
-                       xgwa.width-2*params.margin, 
-                       xgwa.height-2*params.margin, 
-                       params.edge_size);
+                        xgwa.width-2*params.margin, 
+                        xgwa.height-2*params.margin, 
+                        params.edge_size);
       break;
     case kennicott:
       g=make_kennicott_graph(params.margin,params.margin,
-                            xgwa.width-2*params.margin, 
-                            xgwa.height-2*params.margin, 
-                            params.edge_size,
-                            params.cluster_size);
+                             xgwa.width-2*params.margin, 
+                             xgwa.height-2*params.margin, 
+                             params.edge_size,
+                             params.cluster_size);
       break;
     case triangle:
       g=make_triangle_graph(params.margin,params.margin,
-                           xgwa.width-2*params.margin, 
-                           xgwa.height-2*params.margin, 
-                           params.edge_size);
+                            xgwa.width-2*params.margin, 
+                            xgwa.height-2*params.margin, 
+                            params.edge_size);
       break;
     case polar:
       g=make_polar_graph(params.margin,params.margin,
-                        xgwa.width-2*params.margin, 
-                        xgwa.height-2*params.margin, 
-                        params.nb_nodes_per_orbit, 
-                        params.nb_orbits);
+                         xgwa.width-2*params.margin, 
+                         xgwa.height-2*params.margin, 
+                         params.nb_nodes_per_orbit, 
+                         params.nb_orbits);
       break;
     default:
       g=make_grid_graph(params.margin,params.margin,
-                       xgwa.width-2*params.margin, 
-                       xgwa.height-2*params.margin, 
-                       params.edge_size);
+                        xgwa.width-2*params.margin, 
+                        xgwa.height-2*params.margin, 
+                        params.edge_size);
       break;
     }
 
@@ -1021,12 +1052,9 @@ void screenhack(Display * d, Window w)
    erase_full_window(dpy,window);
 
    /* recolor each time */
-   {
-     int ncolors = get_integer_resource ("ncolors", "Integer");
-     if (ncolors > 2)
-       make_smooth_colormap (dpy, xgwa.visual, xgwa.colormap,
-                             colors, &ncolors, True, 0, True);
-   }
-
+   ncolors = get_integer_resource ("ncolors", "Integer");
+   if (ncolors > 2)
+     make_smooth_colormap (dpy, xgwa.visual, xgwa.colormap,
+                           colors, &ncolors, True, 0, True);
   }
 }
index 7f564fa917aba41a72dd96e8e6e185fe3821ac6e..3afc0bf2710314bacc46938f373bbf6ac276efbc 100644 (file)
@@ -2,7 +2,7 @@
 .SH NAME
 celtic - draws celtic cross-stich patterns
 .SH SYNOPSIS
-.B ifs
+.B celtic
 [\-display \fIhost:display.screen\fP]
 [\-visual \fIvisual\fP]
 [\-window]
index 24c8bd486e29399be2e00afe1202e5f16c0c96fa..00cbfec2e01655c03393c2191e76cb04c10f1ade 100644 (file)
@@ -37,12 +37,8 @@ Time in microseconds to sleep between ticks.  Default 25000.
 How many ticks should elapse between cycling colors.  0 to disable
 color cycling.  Default 2.
 .TP 8
-.B \-cycle-colors \fIinteger\fP
-How many ticks should elapse between cycling colors.  0 to use
-just one color. Default 1.
-.TP 8
 .B \-ncolors \fIinteger\fP
-How many colors should be used (if possible).  Default 32.
+How many colors should be used (if possible).  Default 64.
 The colors are chosen randomly.
 .TP 8
 .B \-cell-size \fIinteger\fP
index 955f5c1a35e0ca51f1373315fbdc9a29c06654e4..cdc4eedfd7a102abc8c6befb0a2d15fba431bc0c 100644 (file)
@@ -4,8 +4,8 @@
             a screen saver and locker for the X window system
                             by Jamie Zawinski
 
-                              version 4.23
-                               21-Oct-2005
+                              version 4.24
+                               08-Feb-2006
 
                      http://www.jwz.org/xscreensaver/
 
index 7e65852bcdc3a5d9f64112e8f9412b1e8c9b8e93..6d9a242afb1412e8cb29c6ff116716aa87221fa0 100644 (file)
@@ -11,7 +11,7 @@
 
   <number id="distance" type="slider" arg="-distance %"
            _label="Distance" _low-label="Near" _high-label="Far"
-          low="0" high="400" default="40"/>
+          low="10" high="250" default="40"/>
 
   <number id="sources" type="slider" arg="-sources %"
            _label="Sources" _low-label="Few" _high-label="Many"
index 44c5a6ffba3f0ca115b0afea760f569252b78dcc..f418b636062c3d83e0c9e9329274491ae012e4dd 100644 (file)
@@ -8,10 +8,9 @@
            _label="Whale Speed" _low-label="Slow" _high-label="Fast"
           low="0" high="1000" default="250"/>
 
-  <number id="sharkspeed" type="slider" arg="-delay %"
+  <number id="sharkspeed" type="slider" arg="-cycles %"
           _label="Shark Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="500000" default="25000"
-          convert="invert"/>
+          low="0" high="1000" default="100"/>
 
   <number id="sharkproximity" type="slider" arg="-size %"
           _label="Shark Proximity" _low-label="Shy" _high-label="Agressive"
index 0d7c61822626b5c9f43764790ba1dba76a387394..924cd27bf9146bbdf8c546815723e85af269d968 100644 (file)
@@ -9,7 +9,7 @@
           low="0" high="50000" default="30000"/>
 
   <number id="boxsize" type="spinbutton" arg="-boxsize %"
-          _label="Box Size" low="1" high="8" default="1"/>
+          _label="Box Size" low="1" high="8" default="2"/>
 
   <hgroup>
    <boolean id="fade"      _label="Fade"        arg-unset="-no-fade"/>
index 6a741c3974cb728411b428f3a585402c0896b326..6e367a24ab0a07150df17463375036a4aa4e8896 100644 (file)
@@ -15,9 +15,9 @@
   <vgroup>
    <hgroup>
     <number id="meridians" type="spinbutton" arg="-meridians %"
-            _label="Meridians" low="1" high="90" default="8"/>
+            _label="Meridians" low="1" high="90" default="16"/>
     <number id="parallels" type="spinbutton" arg="-parallels %"
-            _label="Parallels" low="1" high="90" default="16"/>
+            _label="Parallels" low="1" high="90" default="8"/>
    </hgroup>
    <hgroup>
     <boolean id="smoothing" _label="Smoothing" arg-set="-smooth"/>
index 0edbaf47e733be775552739858c9d8c96be53e89..652df7ce0baae4545f3e44ffd0d31f11e230b2bc 100644 (file)
@@ -10,7 +10,7 @@
 
   <number id="delay" type="slider" arg="-delay %"
           _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="10000"
+          low="0" high="50000" default="30000"
           convert="invert"/>
 
   <number id="count" type="slider" arg="-count %"
index dfa2294e644449fdd954968ca6d1833d33342134..c326a1f1ead42951ebfe1a73c18cc241b68858e5 100644 (file)
@@ -15,7 +15,7 @@
 
   <number id="density" type="slider" arg="-initial-density %"
           _label="Initial Density" _low-label="Low" _high-label="High"
-          low="1" high="300" default="160"/>
+          low="1" high="99" default="30"/>
 
   <number id="cellsize" type="slider" arg="-cell-size %"
           _label="Cell Size" _low-label="Small" _high-label="Large"
index 38f8952fed6b991b1a63e3ef55629d15566690f6..4baaa7c103a08066cd7b75411f078530bc2570d7 100644 (file)
@@ -20,7 +20,7 @@
 
   <number id="seeds" type="slider" arg="-seeds %"
           _label="Seeds" _low-label="Few" _high-label="Many"
-          low="1" high="100" default="25"/>
+          low="1" high="100" default="20"/>
 
   <_description>
 Simulates coral growth, albeit somewhat slowly.  Written by Frederick Roeber.
index bd5e8fe5ecb40f78eba9dd40b4971730d5e3ef10..ac4be6a291c81e7825701a22addcd122ad2d4109 100644 (file)
@@ -17,7 +17,7 @@
           _label="Horizontal Symmetries" low="-10" high="10" default="-3"/>
 
   <number id="ny" type="spinbutton" arg="-ny %"
-          _label="Vertical Symmetries" low="-10" high="10" default="-2"/>
+          _label="Vertical Symmetries" low="-10" high="10" default="-3"/>
 
   <number id="count" type="spinbutton" arg="-count %"
           _label="Count" low="-5000" high="5000" default="-500"/>
index 55b09b17f71d752fd761802773c81cc8e2f345fb..09938762b9e5655edb16cb2ad2afcc6d78d34c2f 100644 (file)
@@ -10,7 +10,7 @@
 
   <number id="delay" type="slider" arg="-delay %"
           _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="10000"
+          low="0" high="50000" default="30000"
           convert="invert"/>
 
   <number id="ntoasters" type="slider" arg="-ntoasters %"
index df54197317542330a58eeea95940d29764c3f81f..5aa20b54b3daf1be881bfc0402a837c1485bc1f9 100644 (file)
@@ -15,7 +15,7 @@
 
   <number id="trees" type="slider" arg="-trees %"
           _label="Number of trees" _low-label="Desert" _high-label="Forest"
-          low="0" high="15" default="5"/>
+          low="0" high="20" default="5"/>
 
   <select id="render">
     <option id="normal" _label="Normal"/>
index ec3bb8340be80e9a94a4a8003f65b60b5686009d..b6a189dac169af79ea40b442d5ec7ac69c21ad0d 100644 (file)
@@ -17,7 +17,7 @@
 
        <number id="delay" type="slider" arg="-delay %"
          _label="Frame Delay (us)" _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="40000" convert="invert"/>
+          low="0" high="80000" default="15000" convert="invert"/>
        
        <_description>
 Solves the Towers of Hanoi puzzle. Move N disks from one pole to another, one disk at a time, with no disk ever resting on a disk smaller than itself.
index 88dd749ad91a75d1cde09270b6bcb53aebd63250..bbe1c8d3319ebb687c7a3b3889a6c25abf75ba70 100644 (file)
@@ -18,7 +18,7 @@
 
   <number id="zangvel" type="slider" arg="-zangvel %"
           _label="Z Angular Velocity" _low-label="Slow" _high-label="Fast"
-          low="0.0" high="1.0" default="0.10"/>
+          low="0.0" high="1.0" default="0.14"/>
 
   <number id="packing" type="slider" arg="-explode %"
           _label="Packing" _low-label="Tight" _high-label="Loose"
index 4e5a9c82725443f9200cc6094719cfc14004b615..dfca665600bf83b9f70d2bfcadb6654439f6580e 100644 (file)
 
   <number id="speed" type="slider" arg="-speed %"
           _label="Rotation speed" _low-label="Slow" _high-label="Fast"
-         low="50" high="1000" default="250"/>
+         low="50" high="1000" default="500"/>
 
   <number id="spherism" type="slider" arg="-spherism %"
            _label="Sphere strength" _low-label="none" _high-label="strong"
-          low="0" high="1000" default="200"/>
+          low="0" high="1000" default="75"/>
 
   <number id="hold" type="slider" arg="-hold %"
            _label="Vertex-vertex force" _low-label="none" _high-label="strong"
index 40f291a100e6bc0dfbd5a3f48568c6ac65ea4bee..f11572cbf878bc540070e7918f42fd4d50d8e9b1 100644 (file)
@@ -15,7 +15,7 @@
 
   <number id="tail" type="slider" arg="-tail %"
           _label="Trail Length" _low-label="None" _high-label="Long"
-          low="0" high="100" default="0"/>
+          low="0" high="100" default="1"/>
 
   <boolean id="describe" _label="turn on/off pattern descriptions." arg-unset="-no-describe"/>
 
index b2822ba3df5da359920622aae1f101112722578f..4b7cd453da729ca81463cd200def004592d25e6c 100644 (file)
@@ -13,7 +13,7 @@
                _low-label="Slow" _high-label="Fast" low="3.0" high="50.0" default="20.0"/>
 
        <number id="minobjs" type="spinbutton" arg="-minobjs %" _label="Min Objects"
-          low="3" high="35" default="8"/>
+          low="3" high="35" default="3"/>
 
        <number id="maxobjs" type="spinbutton" arg="-maxobjs %" _label="Max Objects"
           low="3" high="35" default="8"/>                
index 2fa9760298b73b1da921a8dea7e381fcf600aa58..5e770a070b387a29c92126a7814d1e11ea402568 100644 (file)
@@ -11,7 +11,7 @@
 
   <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"/>
 
   <_description>
 This one draws crackling fractal lightning bolts.  It's simple,
index 98506a3c08715fffe056e485d28d1200deb2ddf3..0ff31cf8c4baee603dced34f368c772d00d7bf5b 100644 (file)
@@ -9,7 +9,7 @@
 
   <number id="cycles" type="slider" arg="-cycles %"
            _label="Timeout" _low-label="Small" _high-label="Large"
-          low="0" high="800000" default="2000"/>
+          low="0" high="80000" default="20000"/>
 
   <number id="delay" type="slider" arg="-delay %"
           _label="Speed" _low-label="Slow" _high-label="Fast"
@@ -18,7 +18,7 @@
 
   <number id="ncolors" type="slider" arg="-ncolors %"
             _label="Number of Colors" _low-label="Two" _high-label="Many"
-            low="1" high="255" default="64"/>
+            low="1" high="255" default="200"/>
 
   <number id="size" type="spinbutton" arg="-size %"
            _label="Size" low="-500" high="500" default="-200"/>
index 043aada9af662c122895aff8efe731dc9d4a0492..03411adb09b264a385efbe56ed173c3417abe00d 100644 (file)
@@ -17,7 +17,7 @@
           _label="Interpolation Steps" _low-label="Less" _high-label="More"
           low="100" high="500" default="150"/>
 
-  <number id="thickness" type="slider" arg="-thickness %"
+  <number id="thickness" type="slider" arg="-linewidth %"
           _label="Lines" _low-label="Thin" _high-label="Thick"
           low="1" high="50" default="5"/>
 
index e9752ae401666212b741ead1fa1bd4354f337b47..3bdd1385697fa0656f9a63ffbd72aeeb6d084682 100644 (file)
@@ -14,7 +14,7 @@
           _low-label="10 Seconds" _high-label="5 Minutes"
           low="10" high="300" default="30"/>
 
-  <number id="fade_speed" type="slider" arg="-fade_speed %"
+  <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"/>
@@ -47,7 +47,6 @@
   <boolean id="walls" _label="Enable Walls"/>
   <boolean id="colour" _label="Enable Colouring" arg-set="-colour"/>
   <boolean id="texture" _label="Enable Reflected Image" arg-unset="-no-texture"/>
-  <boolean id="background" _label="Enable Background Image" arg-unset="-no-bgimage"/>
   <boolean id="offset_texture" _label="Offset Texture Coordinates" arg-set="-offset_texture"/>
   <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
 
index ad01027583a9fb1725d7ed405b8124b722ff55ef..b23a8617cc253148daa8350354f6ee5940b11e41 100644 (file)
@@ -9,7 +9,7 @@
 
   <number id="delay" type="slider" arg="-delay %"
           _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="0"
+          low="0" high="20000" default="1000"
           convert="invert"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
index 757258b925a0135085b67ed7a57c5f889237f4b3..c1087dbb0bc8b94c3c60efcf1a976d6d449c90d5 100644 (file)
@@ -18,7 +18,7 @@
 
   <number id="delay" type="slider" arg="-delay %"
           _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="30000"
+          low="0" high="50000" default="15000"
           convert="invert"/>
 
   <number id="max-rpm" type="slider" arg="-max-rpm %"
index febe66a78c7749c5f3bc92912b6b691f040d96a1..83923e95a01745ae47586fceecda66a9e0a2e3ab 100644 (file)
           _label="Duration" _low-label="1 second" _high-label="30 seconds"
           low="1" high="30" default="12"/>
 
-  <select id="rotation">
-    <option id="no"  _label="Don't Rotate" arg-set="-no-spin"/>
-    <option id="x"   _label="Rotate around X axis" arg-set="-spin X"/>
-    <option id="y"   _label="Rotate around Y axis" arg-set="-spin Y"/>
-    <option id="z"   _label="Rotate around Z axis" arg-set="-spin Z"/>
-    <option id="xy"  _label="Rotate around X and Y axes" arg-set="-spin XY"/>
-    <option id="xz"  _label="Rotate around X and Z axes" arg-set="-spin XZ"/>
-    <option id="yz"  _label="Rotate around Y and Z axes" arg-set="-spin YZ"/>
-    <option id="xyz" _label="Rotate around all three axes"/>
-  </select>
-
   <select id="object">
 <option id="random" _label="Display Random Polyhedron"/>
 <option _label="Pentagonal Prism" arg-set="-which pentagonal_prism"/>
 
 
   <boolean id="titles"  _label="Show Description" arg-unset="-no-titles"/>
-  <boolean id="wander" _label="Wander"    arg-unset="-no-wander"/>
-  <boolean id="wire"   _label="Wireframe" arg-set="-wireframe"/>
+  <boolean id="spin"    _label="Spin"      arg-unset="-no-spin"/>
+  <boolean id="wander"  _label="Wander"    arg-unset="-no-wander"/>
+  <boolean id="wire"    _label="Wireframe" arg-set="-wireframe"/>
   <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
 
   <_description>
index 3ef413d6384c03a72985049e68a077bc3b9e6a21..da5f56bb2ae0cd3090f00ae3c2026df5ede7de18 100644 (file)
@@ -6,7 +6,7 @@
 
   <number id="speed" type="slider" arg="-speed %"
           _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="1" high="20" default="7"/>
+          low="1" high="20" default="6"/>
 
   <number id="percent" type="slider" arg="-percent %"
           _label="Size" _low-label="Thin" _high-label="Thick"
index c7cc6b1cfeed761664216c5c49446a3f0f99b8b7..9a7ba093fcdecaf31c1e36387b22c195f64bf46f 100644 (file)
@@ -33,7 +33,7 @@
 
   <!-- #### default is wrong -->
   <number id="radius" type="spinbutton" arg="-radius %"
-          _label="Seed Radius" low="1" high="1000" default="500"/>
+          _label="Seed Radius" low="1" high="60" default="15"/>
 
   <number id="epoch" type="slider" arg="-epoch %"
            _label="Epoch" _low-label="Small" _high-label="Large"
index 595c9029c9985383d8a2236f6e40e2e693cfe429..90f3817e43950cd693b3de3ed5bfe758092aa4c2 100644 (file)
@@ -5,7 +5,7 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Duration" _low-label="0 Seconds" _high-label="1 Minute"
+          _label="Duration" _low-label="0" _high-label="60"
           low="0" high="60" default="10"/>
 
   <number id="n" type="spinbutton" arg="-n %"
index 6189a849dc2f28c41146d9ceadf34218035d98f6..d466578e940603d216b2f5a914e0697be9b1fb8d 100644 (file)
@@ -15,7 +15,7 @@
           convert="invert"/>
 
   <number id="depth" type="spinbutton" arg="-depth %"
-          _label="Max Depth" low="1" high="6" default="3"/>
+          _label="Max Depth" low="1" high="6" default="5"/>
 
   <select id="render">
     <option id="wire"  _label="Wireframe" arg-set="-wireframe"/>
index f67897a922c01982ab69c17d85fa9b7666cef764..d951573623416e4001f3f4cd0860f21d05cd202c 100644 (file)
@@ -11,7 +11,7 @@
 
   <number id="duration" type="slider" arg="-duration %"
           _label="Duration" _low-label="Short" _high-label="Long"
-          low="5" high="1000" default="500"/>
+          low="5" high="1000" default="100"/>
 
   <number id="resolution" type="slider" arg="-resolution %"
           _label="Resolution" _low-label="Low" _high-label="High"
index 34294f255cc7921e71976c0c8d09b2456b955872..9126767796d4012a88261af112a70a1c0ff7e07f 100644 (file)
@@ -13,7 +13,7 @@
 
   <number id="maxcyc" type="slider" arg="-max-cycles %"
           _label="Duration"  _low-label="Short" _high-label="Long"
-          low="2000" high="25000" default="12000" />
+          low="2000" high="25000" default="10000" />
   
   <number id="sandg" type="slider" arg="-sand-grains %"
           _label="Sandgrains" _low-label="Few" _high-label="Lots"
index 1ff8b5470952ce150531db8f3b909399f6eaced8..ff62d12e72d3f779c30f7a67ee9f807eb5ef47ae 100644 (file)
@@ -6,7 +6,7 @@
 
   <number id="delay" type="slider" arg="-delay %"
           _label="Speed" _low-label="Fast" _high-label="Slow"
-          low="0" high="50000" default="30000"/>
+          low="0" high="50000" default="10000"/>
 
   <number id="viewing_time" type="spinbutton" arg="-viewing_time %"
           _label="Viewing Time" low="0" high="30" default="5" />
index 6416567cc1a0d49fd516e3780bdd00724eedaf35..9f9407909afb12e32392f79ddd19c5ba67bc562b 100644 (file)
@@ -8,7 +8,7 @@
           _label="Start sequence time" _low-label="0 sec" _high-label="30 sec"
           low="0.00" high="30.00" default="0.00"/>
 
-  <number id="changetime" type="slider" arg="-changetime %"
+  <number id="changetime" type="slider" arg="-end %"
           _label="Color Change Time" _low-label="Short" _high-label="Long"
           low="0.00" high="30.00" default="30.00"/>
 
index 1d52e2bb86cdb3180fe47e3820a8ceb52f7c3874..4beea4f90f78abe7febde328ed3242126080fa8e 100644 (file)
@@ -10,7 +10,7 @@
 
   <number id="tails" type="slider" arg="-tails %"
           _label="Trail Size" _low-label="Short" _high-label="Long"
-          low="1" high="200" default="10"/>
+          low="1" high="200" default="8"/>
 
   <_description>
 Floating stars are acted upon by a mixture of simple 2D
index afb814d512a9b1642cf6627f94ff94ac85b49722..57b73207964512df0de224b59aa814b9cab75210 100644 (file)
@@ -6,16 +6,16 @@
 
   <number id="delay" type="slider" arg="-delay %"
           _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="100"
+          low="0" high="50000" default="10000"
           convert="invert"/>
 
   <number id="zspeed" type="slider" arg="-zspeed %"
           _label="Star speed" _low-label="Slow" _high-label="Fast"
-          low="1" high="30" default="15"/>
+          low="1" high="30" default="10"/>
 
   <number id="stars" type="slider" arg="-stars %"
           _label="Stars Created" _low-label="Few" _high-label="Lots"
-          low="1" high="100" default="30"/>
+          low="1" high="100" default="20"/>
 
   <_description>
   Wormhole simulates flying through a colored wormhole in space. 
diff --git a/hacks/config/xss.dtd b/hacks/config/xss.dtd
new file mode 100644 (file)
index 0000000..0e15f1d
--- /dev/null
@@ -0,0 +1,105 @@
+<!-- xscreensaver, Copyright (c) 2001-2005 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 DTD validates the format of the XScreenSaver configuration files.
+
+The DTD will not be devloped further, as the .XSD style validation
+can already check more of the details of the config files.
+
+DTD written by Andrew Thompson <andrewthommo@gmail.com>
+-->
+<!-- XScreenSaver settings config file. - DTD version 1.0  -->
+<!ELEMENT screensaver 
+    ((command|fullcommand)*,
+      (boolean|number|select|string|file|hgroup|vgroup)*,
+      _description)>
+<!ATTLIST screensaver
+  name        CDATA   #REQUIRED
+  _label      CDATA   #REQUIRED
+  >
+
+<!-- Every XScreenSaver hack has exactly one of either command or fullcommand -->
+<!ELEMENT command EMPTY>
+<!ATTLIST command
+  arg         CDATA   #IMPLIED
+  >
+
+<!-- Checkbox -->
+<!-- One of either arg-set or arg-unset is required -->
+<!ELEMENT boolean EMPTY>
+<!ATTLIST boolean
+  id          ID      #IMPLIED
+  _label      CDATA   #REQUIRED
+  arg-set     CDATA   #IMPLIED
+  arg-unset   CDATA   #IMPLIED
+  >
+
+<!-- Slider and Spin Button -->
+<!-- _low/high-label not required for type spinbutton -->
+<!-- arg must end with ' %' -->
+<!ELEMENT number EMPTY>
+<!ATTLIST number
+  id          ID                  #IMPLIED
+  type       (slider|spinbutton) #REQUIRED
+  _label      CDATA               #REQUIRED
+  _low-label  CDATA               #IMPLIED 
+  _high-label CDATA               #IMPLIED 
+  arg         CDATA               #REQUIRED
+  low         CDATA              #REQUIRED
+  high        CDATA              #REQUIRED
+  default     CDATA              #REQUIRED
+  convert     (invert)            #IMPLIED
+  >
+
+<!-- Drop-down list -->
+<!ELEMENT select (option+)>
+<!ATTLIST select
+  id          ID      #IMPLIED
+  >
+
+<!-- List item -->
+<!ELEMENT option EMPTY>
+<!ATTLIST option
+  id          ID      #IMPLIED
+  _label      CDATA   #REQUIRED
+  arg-set     CDATA   #IMPLIED
+  >
+
+<!-- String or Textual input -->
+<!-- arg must end with ' %' -->
+<!ELEMENT string EMPTY>
+<!ATTLIST string
+  id          ID      #IMPLIED
+  _label      CDATA   #REQUIRED
+  arg         CDATA   #REQUIRED
+  >
+
+<!-- File browser. -->
+<!-- arg must end with ' %' -->
+<!ELEMENT file EMPTY>
+<!ATTLIST file
+  id          ID      #IMPLIED
+  _label      CDATA   #REQUIRED
+  arg         CDATA   #REQUIRED
+  >
+
+<!-- Free Text.  The description of the Screen Saver. -->
+<!ELEMENT _description (#PCDATA)>
+
+<!-- Horizontal grouping element, a row of widgets. 
+Unimplemented in SaverBeans as of API 0.2. -->
+<!ELEMENT hgroup ((boolean|number|select|string|file|vgroup)*)> <!-- Undocumented -->
+
+<!-- Vertical grouping element, a column of widgets.
+Since the widgets are normally arranged in a column,
+this is only of use within an hgroup. 
+Unimplemented in SaverBeans as of API 0.2. -->
+<!ELEMENT vgroup ((boolean|number|select|string|file|hgroup)*)> <!-- Undocumented -->
\ No newline at end of file
diff --git a/hacks/config/xss.xsd b/hacks/config/xss.xsd
new file mode 100644 (file)
index 0000000..fac1fe3
--- /dev/null
@@ -0,0 +1,375 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- xscreensaver, Copyright (c) 2001-2005 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.
+-->
+<!--  XScreenSaver schema version 0.5
+
+This schema validates the format of the XScreenSaver configuration files.
+
+The notices shown above, appear at the top of the source of 'demo-Gtk-conf.c'.
+Since this schema (attempts to) describe the format of the existing
+XScreenSaver configuration files, it seems appropriate to reproduce them here.
+If it is not appropriate, please ignore/remove them rather than sue me.
+
+To check a savername.xml, reference this XSD from the file and validate it at
+  http://www.w3.org/2001/03/webdata/xsv
+
+** Background
+Andrew Thompson defined a DTD based on his understanding of the
+XScreenSaver configuration files after examining the files..
+xscreensaver-4.22
+  |- hacks
+  |    |- config
+  |         README
+  |         *.xml
+  |- driver
+       demo-Gtk-conf.c
+
+Paul Dennis generated an XSD file (xscreensaver.xsd) from the DTD.
+This is a stricter version of that XSD, with more comments and
+documentation by Andrew Thompson.
+
+Note that Andrew does not program in c, and has not had the
+opportunity to see XScreenSaver in action (he runs Windows),
+so some of the details of the schema may be incorrect.  It aims
+to be cautious, and thus might be more strict than is actually
+required.
+
+** .XSD started as version 0.1
+- generated from the DTD.
+- checked parameter types
+  - mostly as xs:string, except for..
+  - ID's - checked as xs:ID.
+- provided grouping parse logic, but specified elements
+    with maxOccurs 'unbounded'
+
+** Tightened parsing in 0.2
+- The only field still defined as xs:string is the _description.
+- A substitutionArgumentType has been introduced to lock the form of
+    the arg to '-lettersandnumbers %'
+- An argumentType has been introduced to ensure other
+    arg/arg-set/arg-unset attributes begin with '-' and
+    are followed by at least one letter or number.
+- Float and integer numeric values (low/high/default) are checked as xs:decimal
+- Remaining attributes were tightened from xs:string to xs:token.
+
+** Tightened parsing in 0.3
+  * Note that no maximums at all are stated in the XScreenSaver README!
+- maxOccurs lowered from 'unbounded' to
+  - screensaver: '200' components/groups
+  - screensaver: '40' commands/fullcommands
+  - select: '100' options
+  - hgroup: '6' components/groups per row
+  - vgroup: '40' components/groups per column
+- maxLength of _description set to '2000' chars.
+
+** Changes in version 0.4 - Strict
+    After testing against the configuration files of the XScreenSaver
+    hacks, the following changes were made..
+- Added (+ _ / $) to allowable characters for substitutionArgumentType
+    & argumentType, but tightened baseType to xs:token
+- maxOccurs changed to
+  - screensaver: '200' -> '30' components/groups
+      (xmountains.xml has 24)
+  - screensaver: '40' -> '10' commands/fullcommands
+  - select: '100' -> '200' options
+      (to account for polyhedra.xml, which has 152 options!)
+  - hgroup: '6' -> '4' components/groups per row
+      (glplanet.xml has 4)
+  - vgroup: '40' -> '10' components/groups per column
+      (bsod.xml has 9)
+- maxLength of _description changed from '2000' to '3000' chars,
+    (covers the largest _description, 'jigglypuff.xml', at 852 chars,
+    'magicrainbow.xml', at 2837 chars.)
+- introduced idType to facilitate maintenance between the
+    strict and loose schemas.
+
+** Changes in version 0.4 - Loose
+- made _label of number element optional (when using sliders, some
+    developers put what would normally appear in the _label, as a
+    prefix to _low-label instead)
+- widens the idType base type from xs:ID to xs:token.  Since the ID is
+    unimplemented and will most likely remain so, it makes little
+    sense to ensure they are unique & valid ID's.
+
+** Changes in 0.5 - Strict
+- Minor typos. to 0.4 docs fixed.
+- Since both the XScreenSaver code and Saverbeans SettingsDialog
+seem tolerant to the _label of the number element missing, it is
+marked as 'optional' now, even in the strict version.
+
+** Limits: This version
+- specifies the 'arg-set'/'arg-unset' of 'boolean' as optional, whereas it
+    requires exactly one of either 'arg-set' or 'arg-unset'.
+- cannot properly distinguish between the 'slider' and 'spinbutton' types
+    of the 'number' element.  As a result of that, '_low-label'/'_high-label'
+    are specified as not required, whereas they are actually undefined for
+    'spinbutton' and required for 'slider'.
+- has no checks to ensure that 'default' values of ranges in the
+    number element fall between 'low' & 'high' values.
+- Selects can have no more than one option missing an arg-set attribute. 
+- Arguments must be unique, but this schema does not check that.
+- _label is effectively optional for the slider type of the number element,
+    since this info can be preprended to the _low-label, but no checks are 
+    done to ensure that the spinbutton type has the _label.
+
+** Undocumented.
+'undocumented' means that the element/feature was not mentioned in the
+official documentation of the format available in the -
+xscreensaver-4.22/hacks/config/README.
+-->
+<xs:schema
+  xmlns:xs="http://www.w3.org/2001/XMLSchema"
+  elementFormDefault="qualified">
+
+  <!-- The root element of any XScreenSaver configuration file. -->
+  <xs:element name="screensaver">
+    <xs:complexType>
+      <xs:sequence>
+        <!-- Every XScreenSaver hack has exactly one of either
+        command or fullcommand, but my understanding is that
+        demo-Gtk-conf.c chains them together.
+        This specifies a maximum numner of commands. -->
+        <xs:choice minOccurs="0" maxOccurs="10">
+          <xs:element ref="command"/>
+          <xs:element ref="fullcommand"/>
+        </xs:choice>
+        <!-- A maximum number of components/groups is specified.  -->
+        <xs:choice minOccurs="0" maxOccurs="30">
+          <xs:element ref="boolean"/>
+          <xs:element ref="number"/>
+          <xs:element ref="select"/>
+          <xs:element ref="string"/>
+          <xs:element ref="file"/>
+          <xs:element ref="hgroup"/>
+          <xs:element ref="vgroup"/>
+        </xs:choice>
+        <xs:element ref="_description"/>
+      </xs:sequence>
+      <xs:attribute name="name" type="xs:token" use="required"/>
+      <xs:attribute name="_label" type="xs:token" use="required"/>
+    </xs:complexType>
+  </xs:element>
+
+  <!-- Added to the command line when invoked.  -->
+  <xs:element name="command">
+    <xs:complexType>
+      <xs:attribute name="arg" type="argumentType"/>
+    </xs:complexType>
+  </xs:element>
+
+  <!-- Unimplemented in SaverBeans as of API 0.2.
+  Used only by cosmos.xml.  Undocumented. -->
+  <xs:element name="fullcommand">
+    <xs:complexType>
+      <xs:attribute name="arg" type="argumentType"/>
+    </xs:complexType>
+  </xs:element>
+
+  <!-- Checkbox -->
+  <xs:element name="boolean">
+    <xs:complexType>
+      <xs:attribute name="id" type="idType"/>
+      <xs:attribute name="_label" type="xs:token" use="required"/>
+      <!-- Exactly one of either arg-set or arg-unset is required -->
+      <xs:attribute name="arg-set" type="argumentType"/>
+      <xs:attribute name="arg-unset" type="argumentType"/>
+    </xs:complexType>
+  </xs:element>
+
+  <!-- Slider and Spinbutton -->
+  <xs:element name="number">
+    <xs:complexType>
+      <xs:attribute name="id" type="idType"/>
+      <xs:attribute name="type" use="required">
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="slider"/>
+            <xs:enumeration value="spinbutton"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <!-- Listed as 'required' in the documentation, though XScreenSaver is
+      tolerant to it being left out.  A number of hacks deliberately exclude it
+      for formatting purposes, and put the _label as prefix to _low-label -->
+      <xs:attribute name="_label" type="xs:token" />
+      <!-- _low/_high-label not defined for type spinbutton,
+      but required for slider -->
+      <xs:attribute name="_low-label" type="xs:token"/>
+      <xs:attribute name="_high-label" type="xs:token"/>
+      <xs:attribute name="arg" type="substitutionArgumentType" use="required"/>
+      <xs:attribute name="low" type="xs:decimal" use="required"/>
+      <xs:attribute name="high" type="xs:decimal" use="required"/>
+      <!-- Must logically fall between low and high, but not checked. -->
+      <xs:attribute name="default" type="xs:decimal" use="required"/>
+      <xs:attribute name="convert">
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="invert"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+
+  <!-- Drop-down list -->
+  <xs:element name="select">
+    <xs:complexType>
+      <xs:sequence>
+        <!-- A maximum number of options is specified, as a longer
+        drop down becomes kludgy and difficult to use.  -->
+        <xs:element ref="option" maxOccurs="200"/>
+      </xs:sequence>
+      <xs:attribute name="id" type="idType"/>
+    </xs:complexType>
+  </xs:element>
+
+  <!-- List item -->
+  <xs:element name="option">
+    <xs:complexType>
+      <xs:attribute name="id" type="idType"/>
+      <xs:attribute name="_label" type="xs:token" use="required"/>
+      <xs:attribute name="arg-set" type="argumentType"/>
+    </xs:complexType>
+  </xs:element>
+
+  <!-- String or textual input -->
+  <xs:element name="string">
+    <xs:complexType>
+      <xs:attribute name="id" type="idType"/>
+      <xs:attribute name="_label" type="xs:token" use="required"/>
+      <xs:attribute name="arg" type="substitutionArgumentType" use="required"/>
+    </xs:complexType>
+  </xs:element>
+
+  <!-- File browser. -->
+  <xs:element name="file">
+    <xs:complexType>
+      <xs:attribute name="id" type="idType"/>
+      <xs:attribute name="_label" type="xs:token" use="required"/>
+      <xs:attribute name="arg" type="substitutionArgumentType" use="required"/>
+    </xs:complexType>
+  </xs:element>
+
+    <!-- Free Text.  The description of the Screen Saver. -->
+    <xs:element name="_description">
+      <!-- The _description must contain text only, with no HTML formatting.
+
+      Character entities are also valid, which suggests that..
+        http://www.w3.org/TR/REC-html40/sgml/entities.html
+      ..are valid entities, though this, ..
+        http://www.w3.org/TR/1998/REC-html40-19980424/sgml/entities.html#h-24.4.1
+      ..may represent a safer sub-set.
+
+      The main entities you might require (none of which are allowed
+      in textual content in an XML file) are..
+       &lt; (= <)
+       &gt; (= >)
+       &amp; (= &)
+
+      XScreenSaver itself will probably* turn any URL enclosed in
+      &lt; / &gt; into a clickable link.
+
+      Conversion to an URL is unimplemented in SaverBeans as of API 0.2.
+
+      It might be possible to implement this in SaverBeans with the help of
+      BrowserLauncher, though that would require about 20Kb (AFAIR) of extra
+      classes in the core API distributable.
+
+      * This is based solely on the use of the delimiters in many of the
+      XScreenSaver hacks, but has not been investigated in any depth.
+      -->
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:maxLength value="3000"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:element>
+
+    <!-- Horizontal grouping element, a row of components or groups.
+    Unimplemented in SaverBeans as of API 0.2,
+    components inside groups do not appear.  -->
+    <xs:element name="hgroup">
+      <xs:complexType>
+        <!-- A maximum number of components/groups per row is specified. -->
+        <xs:choice minOccurs="0" maxOccurs="4">
+          <xs:element ref="boolean"/>
+          <xs:element ref="number"/>
+          <xs:element ref="select"/>
+          <xs:element ref="string"/>
+          <xs:element ref="file"/>
+          <xs:element ref="vgroup"/>
+        </xs:choice>
+      </xs:complexType>
+    </xs:element>
+
+    <!-- Vertical grouping element, a column of components or groups.
+    Since the components are normally arranged in a column,
+    this is only of use within an hgroup.
+    Unimplemented in SaverBeans as of API 0.2,
+    components inside groups do not appear.  -->
+    <xs:element name="vgroup">
+      <xs:complexType>
+        <!-- A maximum number of components/groups per column is specified. -->
+        <xs:choice minOccurs="0" maxOccurs="10">
+          <xs:element ref="boolean"/>
+          <xs:element ref="number"/>
+          <xs:element ref="select"/>
+          <xs:element ref="string"/>
+          <xs:element ref="file"/>
+          <xs:element ref="hgroup"/>
+        </xs:choice>
+      </xs:complexType>
+    </xs:element>
+
+    <!-- Checks that the command arguments (non substitution arg, as
+    well as arg-set/arg-unset) are of a logical (and restricted) form.
+    This determines that the type must start with '-', and contain at
+    least one letter, number or the other characters shown in the RegEx.
+    It is stricter than the XScreenSaver documentation suggests. -->
+    <xs:simpleType name="argumentType">
+      <xs:restriction base="xs:token">
+        <xs:minLength value="2"/>
+        <xs:pattern value="-([a-zA-Z0-9 .,;:+_$#%?/\\\-])*"/>
+      </xs:restriction>
+    </xs:simpleType>
+
+    <!-- Checks that the command arguments that use substitution are of
+    a logical (and quite restricted) form.  This determines that the
+    type must start with '-', contain at least one letter, number
+    or the other characters shown in the RegEx.
+    It is stricter than the XScreenSaver documentation suggests. -->
+    <xs:simpleType name="substitutionArgumentType">
+      <xs:restriction base="xs:token">
+        <xs:minLength value="4"/>
+        <xs:pattern value="-([a-zA-Z0-9.,;:+_$#%?/\\\-])* %"/>
+      </xs:restriction>
+    </xs:simpleType>
+
+    <!-- idType is used to validate the ID's
+    Many ID's do not parse as type xs:ID, so this type was created to
+    allow easy maintenance between the strict and loose versions of the schema.
+    The base type should be
+     - xs:ID in the strict schema, and
+     - xs:token in the loose schema.
+    Note that the base type of xs:ID overrides the minLength value of '0'
+    -->
+    <xs:simpleType name="idType">
+      <!-- strict -->
+      <xs:restriction base="xs:ID">
+      <!-- loose -->
+      <!--
+      <xs:restriction base="xs:token">
+      -->
+        <xs:minLength value="0"/>
+      </xs:restriction>
+    </xs:simpleType>
+
+</xs:schema>
index d715c96d5ce19b7c282c4f885b82e9d9ef0cd389..e6fa330ee619bf81c6f234510152bb94d4f3ce72 100644 (file)
@@ -27,9 +27,9 @@
 
   <hgroup>
    <number id="lensoffsetx" type="spinbutton" arg="-lensoffsetx %"
-           _label="Lens Offset" low="1" high="100" default="1"/>
+           _label="Lens Offset" low="1" high="100" default="5"/>
    <number id="lensoffsety" type="spinbutton" arg="-lensoffsety %"
-           _label="x" low="1" high="100" default="1"/>
+           _label="x" low="1" high="100" default="5"/>
   </hgroup>
 
   <_description>
index 9d0e48deccc3d2b7cea8ee1c8e5de02b47cbc9aa..26cb3314f599ffae9b0ae4df9e1ed2f8ba83eb9f 100644 (file)
@@ -35,7 +35,7 @@ Duration.  1 - 60.  Default: 5.
 Density.  1 - 90.  Default: 25.
 .TP 8
 .B \-seeds \fInumber\fP
-Seeds. 1 - 100.  Default: 25.
+Seeds. 1 - 100.  Default: 20.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 07071a27460618452e2c54e1d40412ece23619e4..d428bb946403aa2df060c7ac2f21ecf81744f5de 100644 (file)
@@ -43,7 +43,7 @@ Whether to center on screen
 Horizontal Symmetries. -10 - 10.  Default: -3.
 .TP 8
 .B \-ny \fInumber\fP
-Vertical Symmetries.  -10 - 10.  Default: -2.
+Vertical Symmetries.  -10 - 10.  Default: -3.
 .TP 8
 .B \-count \fInumber\fP
 Count. -5000 - 5000.  Default: -500.
index 5f8a6fc71a06a0dbe6a319a3d1cc7265574931f0..ddc053196fea6d68336c6f44ae8a528bfeb377fe 100644 (file)
@@ -33,7 +33,6 @@ How long to wait before starting over.  Default 5 seconds.
 .TP 8
 .B \-max\-depth \fIinteger\fP
 How deep to subdivide.  Default 12.
-Default 8.
 .TP 8
 .B \-min-width \fIinteger\fP
 .B \-min-height \fIinteger\fP
index a1cf05b7ea4479b6ca6520264165e8a6a782a561..884420c0358d3b730461ee3e811a67825d0fc812 100644 (file)
@@ -56,7 +56,7 @@ to get the default host and display number.
 to get the name of a resource file that overrides the global resources
 stored in the RESOURCE_MANAGER property.
 .SH SEE ALSO
-.BR flame (1),
+.BR flame (MANSUFFIX),
 .BR X (1),
 .BR xscreensaver (1),
 .BR xlock (1)
index ee1cb2525e3108d66dbd7e192803384f0514e515..c1e4bdd343623857a64e3696620194851132a6e9 100644 (file)
@@ -284,8 +284,9 @@ pick_font_1 (state *s, sentence *se)
   se->font = XLoadQueryFont (s->dpy, pattern);
   if (! se->font)
     {
-      fprintf (stderr, "%s: unable to load font %s\n",
-               progname, pattern);
+      if (s->debug_p)
+        fprintf (stderr, "%s: unable to load font %s\n",
+                 progname, pattern);
       return False;
     }
 
@@ -325,7 +326,7 @@ pick_font (state *s, sentence *se)
   for (i = 0; i < 20; i++)
     if (pick_font_1 (s, se))
       return;
-  fprintf (stderr, "%s: too many failures: giving up!\n", progname);
+  fprintf (stderr, "%s: too many font-loading failures: giving up!\n", progname);
   exit (1);
 }
 
index aa293324c26e4ebe9cba97af4e822029457f762f..b35178fc3690a62a2da3d58cca200d3459b8120e 100644 (file)
@@ -99,12 +99,12 @@ stored in the RESOURCE_MANAGER property.
 .BR xscreensaver (1),
 .BR xscreensaver-text (1),
 .BR fortune (1),
-.BR phosphor (1),
-.BR apple2 (1),
-.BR starwars (1),
-.BR ljlatest (1),
+.BR phosphor (MANSUFFIX),
+.BR apple2 (MANSUFFIX),
+.BR starwars (MANSUFFIX),
+.BR ljlatest (MANSUFFIX),
 .BR dadadodo (1),
-.BR webcollage (1),
+.BR webcollage (MANSUFFIX),
 .BR driftnet (1)
 .BR EtherPEG ,
 .BR EtherPeek
index 7f5210098e33c74e522055c21b92de2895b7a2f0..5fccac49b0b8d39d4d1ce481b48299abdaa03dca 100644 (file)
@@ -28,7 +28,7 @@ Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
 .TP 8
 .B \-ncolors \fIinteger\fP
-How many colors should be used (if possible).  Default 100.
+How many colors should be used (if possible).  Default 20.
 
 .SH ENVIRONMENT
 .PP
index ba7fb51499389b25edb48e424b596fc05213a9c1..09aee5baac0cb5335bd2c7b90180707cd83c7a4f 100644 (file)
@@ -164,7 +164,7 @@ HDRS                = atlantis.h bubble3d.h buildlwo.h e_textures.h xpm-ximage.h \
                  glut_roman.h marching.h rotator.h trackball.h gltrackball.h \
                  chessmodels.h chessgames.h gllist.h flurry.h tunnel_draw.h \
                  ants.h polyhedra.h normals.h glxfonts.h texfont.h \
-                 tangram_shapes.h cube21-tex.h
+                 tangram_shapes.h
 GL_MEN         = atlantis.man boxed.man bubble3d.man cage.man circuit.man \
                  cubenetic.man dangerball.man engine.man extrusion.man \
                  flipscreen3d.man gears.man gflux.man glforestfire.man \
@@ -247,7 +247,9 @@ install-man: $(MEN)
                                                                        \
        for man in $$men; do                                            \
          instname=`echo $$man | sed 's/\.man$$/\.$(mansuffix)/'` ;     \
-         sed "s/^\.TH.*/$$TH/" < $(srcdir)/$$man > $$T ;               \
+         sed -e "s/^\.TH.*/$$TH/"                                      \
+             -e 's@(MANSUFFIX)@($(mansuffix))@g'                       \
+           < $(srcdir)/$$man > $$T ;                                   \
          echo $(INSTALL_DATA) $(srcdir)/$$man                          \
           $(install_prefix)$(manNdir)/$$instname ;                     \
          $(INSTALL_DATA) $$T                                           \
@@ -762,7 +764,6 @@ cow_tail.o: $(srcdir)/gllist.h
 cow_udder.o: $(srcdir)/gllist.h
 crackberg.o: ../../config.h
 cube21.o: ../../config.h
-cube21.o: $(srcdir)/cube21-tex.h
 cubenetic.o: ../../config.h
 cubenetic.o: $(srcdir)/gltrackball.h
 cubenetic.o: $(srcdir)/rotator.h
index bfeb815b4ee3c6f994decfaeb3ea6366cdde3358..c1ab5b457a0065fc92262b88590bbb72753ab32d 100644 (file)
@@ -2,7 +2,7 @@
 .SH NAME
 antmaze \- ant maze walker
 .SH SYNOPSIS
-.B antinspect
+.B antmaze
 [\-display \fIhost:display.screen\fP] [\-window] [\-root] [\-install]
 [\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP] [\-fps]
 .SH DESCRIPTION
@@ -20,9 +20,6 @@ Draw on the root window.
 .B \-install
 Install a private colormap for the window.
 .TP 8
-.B \-shadows
-Draw shadows on ground
-.TP 8
 .B \-visual \fIvisual\fP\fP
 Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
index 7ec1ee925d2adbef54efcf5468038c250273c090..e75770be009f5b9dbec40a3348c910eea4ec406e 100644 (file)
@@ -33,8 +33,8 @@ Draw on the root window.
 .B \-whalespeed \fInumber\fP
 Whale Speed.  0 - 1000.  Default: 250.
 .TP 8
-.B \-delay \fInumber\fP
-Shark Speed.  0 - 500. Default: 100.
+.B \-cycles \fInumber\fP
+Shark Speed.  Default: 100.
 .TP 8
 .B \-size \fInumber\fP
 Shark Proximity.  100 - 10000. Default: 6000.
index 12cf50fd89592ac815c38dfbef994e401cac094a..5964093ecf8f75dae19d8dab4f6fee486c3fc12e 100644 (file)
@@ -35,7 +35,7 @@ Per-frame delay, in microseconds.  Default: 30000 (0.03 seconds.).
 Render in wireframe instead of solid.
 .TP 8
 .B \-boxsize 
-Sets the size of the colored boxes. Should be between 1 and 4. Default: 1 
+Sets the size of the colored boxes. Should be between 1 and 8. Default: 2 
 .TP 8
 .B \-dissolve | \-no-dissolve
 Boxes shrink instead of just vanishing.
index bb34d465a006bc49dae59ca5c93e7003ff18314b..46e07c6ac4cbe19d69ae85be9edfba5a90418370 100644 (file)
@@ -91,8 +91,8 @@ to get the default host and display number.
 to get the name of a resource file that overrides the global resources
 stored in the RESOURCE_MANAGER property.
 .SH SEE ALSO
-.BR bsod (1),
-.BR pong (1),
+.BR bsod (MANSUFFIX),
+.BR pong (MANSUFFIX),
 .BR xscreensaver (1),
 .BR X (1)
 .SH COPYRIGHT
index 86f5a79ad09415bbb9f32935de7a1d74685e8c14..451a8a10b7c0191d2fd548a870663ed77e1caadf 100644 (file)
@@ -93,7 +93,7 @@ stored in the RESOURCE_MANAGER property.
 .BR xscreensaver-demo (1)
 .BR xscreensaver-getimage (1)
 .BR xscreensaver (1)
-.BR glslideshow (1)
+.BR glslideshow (MANSUFFIX)
 .SH COPYRIGHT
 Copyright \(co 2005 by Jamie Zawinski.
 
diff --git a/hacks/glx/cube21-tex.h b/hacks/glx/cube21-tex.h
deleted file mode 100644 (file)
index 2d117d2..0000000
+++ /dev/null
@@ -1,4106 +0,0 @@
-static const struct {
-  unsigned int          width;
-  unsigned int          height;
-  unsigned int          bytes_per_pixel;
-  unsigned char         pixel_data[128 * 256 * 3];
-} cubetex = {
-  128,256,3,
-  {
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,1,1,1,1,1,3,3,3,3,3,3,5,5,5,5,5,5,6,6,6,7,7,7,
-6,6,6,5,5,5,3,3,3,5,5,5,5,5,5,6,6,6,7,7,7,6,6,6,
-5,5,5,3,3,3,5,5,5,5,5,5,6,6,6,7,7,7,6,6,6,5,5,5,
-3,3,3,5,5,5,5,5,5,6,6,6,7,7,7,6,6,6,5,5,5,3,3,3,
-5,5,5,5,5,5,6,6,6,7,7,7,6,6,6,5,5,5,3,3,3,5,5,5,
-5,5,5,6,6,6,7,7,7,6,6,6,4,4,4,2,2,2,2,2,2,0,0,0,
-0,0,0,2,2,2,5,5,5,4,4,4,3,3,3,5,5,5,5,5,5,6,6,6,
-7,7,7,6,6,6,5,5,5,3,3,3,5,5,5,5,5,5,6,6,6,7,7,7,
-6,6,6,5,5,5,3,3,3,5,5,5,5,5,5,6,6,6,7,7,7,6,6,6,
-5,5,5,3,3,3,5,5,5,5,5,5,6,6,6,7,7,7,6,6,6,5,5,5,
-3,3,3,5,5,5,5,5,5,6,6,6,7,7,7,6,6,6,5,5,5,3,3,3,
-5,5,5,5,5,5,6,6,6,6,6,6,5,5,5,3,3,3,1,1,1,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,8,8,8,36,36,36,54,54,54,66,66,66,67,67,67,71,71,71,75,75,75,
-73,73,73,65,65,65,60,60,60,67,67,67,67,67,67,71,71,71,75,75,75,73,73,73,
-65,65,65,60,60,60,67,67,67,67,67,67,71,71,71,75,75,75,73,73,73,65,65,65,
-60,60,60,67,67,67,67,67,67,71,71,71,75,75,75,73,73,73,65,65,65,60,60,60,
-67,67,67,67,67,67,71,71,71,75,75,75,73,73,73,65,65,65,60,60,60,67,67,67,
-67,67,67,71,71,71,75,75,75,73,73,73,61,61,61,45,45,45,19,19,19,1,1,1,
-1,1,1,20,20,20,54,54,54,61,61,61,60,60,60,67,67,67,67,67,67,71,71,71,
-75,75,75,73,73,73,65,65,65,60,60,60,67,67,67,67,67,67,71,71,71,75,75,75,
-73,73,73,65,65,65,60,60,60,67,67,67,67,67,67,71,71,71,75,75,75,73,73,73,
-65,65,65,60,60,60,67,67,67,67,67,67,71,71,71,75,75,75,73,73,73,65,65,65,
-60,60,60,67,67,67,67,67,67,71,71,71,75,75,75,73,73,73,65,65,65,60,60,60,
-67,67,67,67,67,67,71,71,71,72,72,72,57,57,57,22,22,22,2,2,2,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,24,24,24,112,112,112,169,169,169,186,186,186,190,190,190,191,191,191,194,194,194,
-193,193,193,187,187,187,184,184,184,187,187,187,190,190,190,191,191,191,194,194,194,193,193,193,
-187,187,187,184,184,184,187,187,187,190,190,190,191,191,191,194,194,194,193,193,193,187,187,187,
-184,184,184,187,187,187,190,190,190,191,191,191,194,194,194,193,193,193,187,187,187,184,184,184,
-187,187,187,190,190,190,191,191,191,194,194,194,193,193,193,187,187,187,184,184,184,187,187,187,
-190,190,190,191,191,191,194,194,194,193,193,193,178,178,178,137,137,137,51,51,51,4,4,4,
-4,4,4,53,53,53,143,143,143,178,178,178,184,184,184,187,187,187,190,190,190,191,191,191,
-194,194,194,193,193,193,187,187,187,184,184,184,187,187,187,190,190,190,191,191,191,194,194,194,
-193,193,193,187,187,187,184,184,184,187,187,187,190,190,190,191,191,191,194,194,194,193,193,193,
-187,187,187,184,184,184,187,187,187,190,190,190,191,191,191,194,194,194,193,193,193,187,187,187,
-184,184,184,187,187,187,190,190,190,191,191,191,194,194,194,193,193,193,187,187,187,184,184,184,
-187,187,187,190,190,190,191,191,191,186,186,186,145,145,145,54,54,54,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-4,4,4,53,53,53,166,166,166,227,227,227,242,242,242,244,244,244,244,244,244,245,245,245,
-245,245,245,242,242,242,243,243,243,242,242,242,244,244,244,244,244,244,245,245,245,245,245,245,
-242,242,242,243,243,243,242,242,242,244,244,244,244,244,244,245,245,245,245,245,245,242,242,242,
-243,243,243,242,242,242,244,244,244,244,244,244,245,245,245,245,245,245,242,242,242,243,243,243,
-242,242,242,244,244,244,244,244,244,245,245,245,245,245,245,242,242,242,243,243,243,242,242,242,
-244,244,244,244,244,244,245,245,245,245,245,245,233,233,233,181,181,181,62,62,62,4,4,4,
-4,4,4,63,63,63,183,183,183,233,233,233,243,243,243,242,242,242,244,244,244,244,244,244,
-245,245,245,245,245,245,242,242,242,243,243,243,242,242,242,244,244,244,244,244,244,245,245,245,
-245,245,245,242,242,242,243,243,243,242,242,242,244,244,244,244,244,244,245,245,245,245,245,245,
-242,242,242,243,243,243,242,242,242,244,244,244,244,244,244,245,245,245,245,245,245,242,242,242,
-243,243,243,242,242,242,244,244,244,244,244,244,245,245,245,245,245,245,242,242,242,243,243,243,
-242,242,242,244,244,244,244,244,244,236,236,236,187,187,187,71,71,71,6,6,6,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,
-6,6,6,77,77,77,196,196,196,247,247,247,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,188,188,188,69,69,69,6,6,6,
-6,6,6,69,69,69,188,188,188,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,245,245,245,193,193,193,73,73,73,6,6,6,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-20,20,20,120,120,120,216,216,216,250,250,250,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,68,68,68,5,5,5,
-5,5,5,68,68,68,190,190,190,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,65,65,65,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,
-35,35,35,153,153,153,231,231,231,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,184,184,184,60,60,60,3,3,3,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,
-58,58,58,180,180,180,242,242,242,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,67,67,67,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,12,
-96,96,96,203,203,203,248,248,248,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,67,67,67,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,23,23,
-136,136,136,225,225,225,253,253,253,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,189,189,189,69,69,69,6,6,6,
-6,6,6,69,69,69,189,189,189,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,244,244,244,191,191,191,70,70,70,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,45,45,45,
-169,169,169,237,237,237,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,189,189,189,65,65,65,4,4,4,
-4,4,4,65,65,65,189,189,189,245,245,245,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,245,245,245,194,194,194,75,75,75,7,7,7,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,73,73,73,
-190,190,190,246,246,246,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,188,188,188,69,69,69,6,6,6,
-6,6,6,69,69,69,188,188,188,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,245,245,245,193,193,193,73,73,73,6,6,6,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,13,13,106,106,106,
-212,212,212,248,248,248,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,68,68,68,5,5,5,
-5,5,5,68,68,68,190,190,190,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,65,65,65,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,31,31,144,144,144,
-224,224,224,252,252,252,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,184,184,184,60,60,60,3,3,3,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,56,56,56,175,175,175,
-240,240,240,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,67,67,67,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,80,80,80,199,199,199,
-247,247,247,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,67,67,67,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,18,18,120,120,120,219,219,219,
-252,252,252,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,189,189,189,69,69,69,6,6,6,
-6,6,6,69,69,69,189,189,189,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,244,244,244,191,191,191,70,70,70,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,37,37,37,153,153,153,233,233,233,
-253,253,253,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,189,189,189,65,65,65,4,4,4,
-4,4,4,65,65,65,189,189,189,245,245,245,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,245,245,245,194,194,194,75,75,75,7,7,7,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,49,49,49,168,168,168,237,237,237,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,188,188,188,69,69,69,6,6,6,
-6,6,6,69,69,69,188,188,188,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,245,245,245,193,193,193,73,73,73,6,6,6,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,1,1,1,4,4,4,64,64,64,184,184,184,243,243,243,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,68,68,68,5,5,5,
-5,5,5,68,68,68,190,190,190,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,65,65,65,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,20,20,20,112,112,112,208,208,208,249,249,249,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,184,184,184,60,60,60,3,3,3,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,1,1,1,38,38,38,155,155,155,231,231,231,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,67,67,67,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,5,5,5,60,60,60,181,181,181,241,241,241,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,67,67,67,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,10,10,10,90,90,90,198,198,198,248,248,248,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,189,189,189,69,69,69,6,6,6,
-6,6,6,69,69,69,189,189,189,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,244,244,244,191,191,191,70,70,70,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,18,18,18,126,126,126,220,220,220,251,251,251,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,189,189,189,65,65,65,4,4,4,
-4,4,4,65,65,65,189,189,189,245,245,245,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,245,245,245,194,194,194,75,75,75,7,7,7,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,1,1,1,42,42,42,162,162,162,232,232,232,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,188,188,188,69,69,69,6,6,6,
-6,6,6,69,69,69,188,188,188,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,245,245,245,193,193,193,73,73,73,6,6,6,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,5,5,5,72,72,72,191,191,191,247,247,247,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,68,68,68,5,5,5,
-5,5,5,68,68,68,190,190,190,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,65,65,65,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,16,16,16,112,112,112,216,216,216,250,250,250,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,184,184,184,60,60,60,3,3,3,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,31,31,31,151,151,151,231,231,231,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,67,67,67,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,3,3,3,55,55,55,177,177,177,242,242,242,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,67,67,67,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,6,6,6,77,77,77,196,196,196,246,246,246,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,189,189,189,69,69,69,6,6,6,
-6,6,6,69,69,69,189,189,189,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,244,244,244,191,191,191,70,70,70,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,13,13,13,106,106,106,214,214,214,250,250,250,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,189,189,189,65,65,65,4,4,4,
-4,4,4,65,65,65,189,189,189,245,245,245,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,245,245,245,194,194,194,75,75,75,7,7,7,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,1,1,32,32,32,144,144,144,227,227,227,252,252,252,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,188,188,188,69,69,69,6,6,6,
-6,6,6,69,69,69,188,188,188,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,245,245,245,193,193,193,73,73,73,6,6,6,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-4,4,4,56,56,56,173,173,173,239,239,239,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,68,68,68,5,5,5,
-5,5,5,68,68,68,190,190,190,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,65,65,65,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-7,7,7,84,84,84,201,201,201,247,247,247,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,184,184,184,60,60,60,3,3,3,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-23,23,23,129,129,129,219,219,219,252,252,252,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,67,67,67,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-34,34,34,155,155,155,234,234,234,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,67,67,67,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,
-55,55,55,177,177,177,239,239,239,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,189,189,189,69,69,69,6,6,6,
-6,6,6,69,69,69,189,189,189,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,244,244,244,191,191,191,70,70,70,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,13,13,
-94,94,94,201,201,201,248,248,248,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,189,189,189,65,65,65,4,4,4,
-4,4,4,65,65,65,189,189,189,245,245,245,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,245,245,245,194,194,194,75,75,75,7,7,7,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,27,27,
-132,132,132,223,223,223,251,251,251,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,188,188,188,69,69,69,6,6,6,
-6,6,6,69,69,69,188,188,188,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,245,245,245,193,193,193,73,73,73,6,6,6,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,35,35,35,
-157,157,157,232,232,232,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,68,68,68,5,5,5,
-5,5,5,68,68,68,190,190,190,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,65,65,65,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,54,54,54,
-177,177,177,242,242,242,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,184,184,184,60,60,60,3,3,3,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,12,97,97,97,
-204,204,204,249,249,249,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,67,67,67,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,31,31,148,148,148,
-230,230,230,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,66,66,66,4,4,4,
-5,5,5,65,65,65,181,181,181,233,233,233,243,243,243,245,245,245,245,245,245,244,244,244,
-244,244,244,243,243,243,243,243,243,243,243,243,245,245,245,245,245,245,244,244,244,244,244,244,
-243,243,243,243,243,243,243,243,243,245,245,245,245,245,245,244,244,244,244,244,244,243,243,243,
-243,243,243,243,243,243,245,245,245,245,245,245,244,244,244,244,244,244,243,243,243,243,243,243,
-243,243,243,245,245,245,245,245,245,244,244,244,244,244,244,243,243,243,243,243,243,243,243,243,
-245,245,245,245,245,245,244,244,244,234,234,234,182,182,182,65,65,65,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,61,61,61,181,181,181,
-243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,253,253,253,248,248,248,231,231,231,169,169,169,57,57,57,4,4,4,
-4,4,4,51,51,51,138,138,138,177,177,177,187,187,187,193,193,193,194,194,194,191,191,191,
-190,190,190,187,187,187,184,184,184,187,187,187,193,193,193,194,194,194,191,191,191,190,190,190,
-187,187,187,184,184,184,187,187,187,193,193,193,194,194,194,191,191,191,190,190,190,187,187,187,
-184,184,184,187,187,187,193,193,193,194,194,194,191,191,191,190,190,190,187,187,187,184,184,184,
-187,187,187,193,193,193,194,194,194,191,191,191,190,190,190,187,187,187,184,184,184,187,187,187,
-193,193,193,194,194,194,191,191,191,181,181,181,140,140,140,50,50,50,4,4,4,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,76,76,76,194,194,194,
-246,246,246,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,252,252,252,248,248,248,
-246,246,246,237,237,237,225,225,225,202,202,202,173,173,173,111,111,111,27,27,27,1,1,1,
-1,1,1,17,17,17,50,50,50,58,58,58,65,65,65,73,73,73,75,75,75,71,71,71,
-67,67,67,67,67,67,60,60,60,65,65,65,73,73,73,75,75,75,71,71,71,67,67,67,
-67,67,67,60,60,60,65,65,65,73,73,73,75,75,75,71,71,71,67,67,67,67,67,67,
-60,60,60,65,65,65,73,73,73,75,75,75,71,71,71,67,67,67,67,67,67,60,60,60,
-65,65,65,73,73,73,75,75,75,71,71,71,67,67,67,67,67,67,60,60,60,65,65,65,
-73,73,73,75,75,75,71,71,71,65,65,65,50,50,50,17,17,17,2,2,2,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,11,11,102,102,102,210,210,210,
-248,248,248,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,253,253,253,252,252,252,245,245,245,236,236,236,221,221,221,210,210,210,
-190,190,190,170,170,170,134,134,134,86,86,86,55,55,55,24,24,24,4,4,4,0,0,0,
-0,0,0,1,1,1,4,4,4,3,3,3,5,5,5,6,6,6,7,7,7,6,6,6,
-5,5,5,5,5,5,3,3,3,5,5,5,6,6,6,7,7,7,6,6,6,5,5,5,
-5,5,5,3,3,3,5,5,5,6,6,6,7,7,7,6,6,6,5,5,5,5,5,5,
-3,3,3,5,5,5,6,6,6,7,7,7,6,6,6,5,5,5,5,5,5,3,3,3,
-5,5,5,6,6,6,7,7,7,6,6,6,5,5,5,5,5,5,3,3,3,5,5,5,
-6,6,6,7,7,7,6,6,6,5,5,5,4,4,4,1,1,1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,36,36,36,146,146,146,224,224,224,
-252,252,252,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,249,249,249,
-245,245,245,238,238,238,232,232,232,214,214,214,193,193,193,163,163,163,135,135,135,101,101,101,
-72,72,72,45,45,45,21,21,21,8,8,8,4,4,4,1,1,1,0,0,0,0,0,0,
-0,0,0,2,2,2,4,4,4,3,3,3,5,5,5,6,6,6,7,7,7,6,6,6,
-5,5,5,5,5,5,3,3,3,5,5,5,6,6,6,7,7,7,6,6,6,5,5,5,
-5,5,5,3,3,3,5,5,5,6,6,6,7,7,7,6,6,6,5,5,5,5,5,5,
-3,3,3,5,5,5,6,6,6,7,7,7,6,6,6,5,5,5,5,5,5,3,3,3,
-5,5,5,6,6,6,7,7,7,6,6,6,5,5,5,5,5,5,3,3,3,5,5,5,
-6,6,6,7,7,7,6,6,6,5,5,5,4,4,4,1,1,1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,65,65,65,182,182,182,242,242,242,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,251,251,251,248,248,248,243,243,243,229,229,229,210,210,210,
-189,189,189,172,172,172,149,149,149,115,115,115,72,72,72,40,40,40,25,25,25,12,12,12,
-5,5,5,1,1,1,0,0,0,3,3,3,5,5,5,11,11,11,9,9,9,1,1,1,
-2,2,2,21,21,21,53,53,53,58,58,58,65,65,65,73,73,73,75,75,75,71,71,71,
-67,67,67,67,67,67,60,60,60,65,65,65,73,73,73,75,75,75,71,71,71,67,67,67,
-67,67,67,60,60,60,65,65,65,73,73,73,75,75,75,71,71,71,67,67,67,67,67,67,
-60,60,60,65,65,65,73,73,73,75,75,75,71,71,71,67,67,67,67,67,67,60,60,60,
-65,65,65,73,73,73,75,75,75,71,71,71,67,67,67,67,67,67,60,60,60,65,65,65,
-73,73,73,75,75,75,71,71,71,64,64,64,49,49,49,14,14,14,1,1,1,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,88,88,88,205,205,205,248,248,248,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,253,253,253,252,252,252,
-248,248,248,246,246,246,232,232,232,220,220,220,200,200,200,185,185,185,151,151,151,105,105,105,
-66,66,66,53,53,53,31,31,31,16,16,16,6,6,6,1,1,1,0,0,0,1,1,1,
-4,4,4,11,11,11,21,21,21,44,44,44,64,64,64,79,79,79,39,39,39,3,3,3,
-3,3,3,50,50,50,139,139,139,176,176,176,187,187,187,193,193,193,194,194,194,191,191,191,
-190,190,190,187,187,187,184,184,184,187,187,187,193,193,193,194,194,194,191,191,191,190,190,190,
-187,187,187,184,184,184,187,187,187,193,193,193,194,194,194,191,191,191,190,190,190,187,187,187,
-184,184,184,187,187,187,193,193,193,194,194,194,191,191,191,190,190,190,187,187,187,184,184,184,
-187,187,187,193,193,193,194,194,194,191,191,191,190,190,190,187,187,187,184,184,184,187,187,187,
-193,193,193,194,194,194,191,191,191,184,184,184,140,140,140,51,51,51,4,4,4,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,20,20,20,127,127,127,219,219,219,252,252,252,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,252,252,252,250,250,250,244,244,244,236,236,236,221,221,221,
-207,207,207,187,187,187,162,162,162,125,125,125,82,82,82,64,64,64,35,35,35,13,13,13,
-4,4,4,4,4,4,0,0,0,1,1,1,4,4,4,11,11,11,23,23,23,36,36,36,
-60,60,60,91,91,91,128,128,128,159,159,159,178,178,178,154,154,154,54,54,54,3,3,3,
-3,3,3,58,58,58,176,176,176,232,232,232,242,242,242,245,245,245,245,245,245,244,244,244,
-244,244,244,242,242,242,243,243,243,242,242,242,245,245,245,245,245,245,244,244,244,244,244,244,
-242,242,242,243,243,243,242,242,242,245,245,245,245,245,245,244,244,244,244,244,244,242,242,242,
-243,243,243,242,242,242,245,245,245,245,245,245,244,244,244,244,244,244,242,242,242,243,243,243,
-242,242,242,245,245,245,245,245,245,244,244,244,244,244,244,242,242,242,243,243,243,242,242,242,
-245,245,245,245,245,245,244,244,244,234,234,234,181,181,181,67,67,67,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,1,1,1,33,33,33,150,150,150,232,232,232,253,253,253,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,253,253,253,
-248,248,248,243,243,243,237,237,237,227,227,227,213,213,213,193,193,193,168,168,168,135,135,135,
-100,100,100,68,68,68,41,41,41,17,17,17,7,7,7,5,5,5,1,1,1,1,1,1,
-3,3,3,8,8,8,18,18,18,35,35,35,57,57,57,91,91,91,128,128,128,156,156,156,
-181,181,181,198,198,198,220,220,220,231,231,231,234,234,234,183,183,183,67,67,67,5,5,5,
-5,5,5,67,67,67,187,187,187,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,67,67,67,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,4,4,4,52,52,52,170,170,170,237,237,237,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,251,251,251,248,248,248,239,239,239,227,227,227,
-206,206,206,186,186,186,165,165,165,142,142,142,106,106,106,75,75,75,47,47,47,26,26,26,
-13,13,13,5,5,5,1,1,1,0,0,0,3,3,3,7,7,7,19,19,19,33,33,33,
-53,53,53,82,82,82,121,121,121,150,150,150,174,174,174,199,199,199,219,219,219,234,234,234,
-241,241,241,248,248,248,251,251,251,254,254,254,244,244,244,190,190,190,67,67,67,5,5,5,
-5,5,5,67,67,67,190,190,190,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,66,66,66,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,8,8,8,81,81,81,192,192,192,245,245,245,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,253,253,253,
-252,252,252,247,247,247,244,244,244,232,232,232,222,222,222,199,199,199,178,178,178,144,144,144,
-101,101,101,65,65,65,48,48,48,28,28,28,13,13,13,6,6,6,1,1,1,0,0,0,
-1,1,1,4,4,4,13,13,13,21,21,21,47,47,47,80,80,80,122,122,122,155,155,155,
-176,176,176,197,197,197,217,217,217,229,229,229,239,239,239,247,247,247,252,252,252,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,191,191,191,70,70,70,5,5,5,
-5,5,5,70,70,70,191,191,191,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,184,184,184,60,60,60,3,3,3,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,24,24,24,126,126,126,215,215,215,250,250,250,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,252,252,252,248,248,248,244,244,244,237,237,237,
-220,220,220,200,200,200,180,180,180,160,160,160,128,128,128,82,82,82,58,58,58,33,33,33,
-14,14,14,4,4,4,3,3,3,0,0,0,1,1,1,4,4,4,8,8,8,24,24,24,
-42,42,42,65,65,65,99,99,99,134,134,134,166,166,166,195,195,195,222,222,222,230,230,230,
-241,241,241,246,246,246,251,251,251,252,252,252,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,194,194,194,75,75,75,7,7,7,
-7,7,7,75,75,75,194,194,194,245,245,245,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,65,65,65,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,1,1,1,42,42,42,159,159,159,232,232,232,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-251,251,251,248,248,248,241,241,241,236,236,236,222,222,222,208,208,208,191,191,191,171,171,171,
-135,135,135,93,93,93,59,59,59,39,39,39,20,20,20,7,7,7,4,4,4,1,1,1,
-1,1,1,4,4,4,8,8,8,20,20,20,33,33,33,52,52,52,81,81,81,126,126,126,
-159,159,159,186,186,186,204,204,204,224,224,224,235,235,235,248,248,248,251,251,251,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,193,193,193,73,73,73,6,6,6,
-6,6,6,73,73,73,193,193,193,245,245,245,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,245,245,245,193,193,193,73,73,73,6,6,6,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,4,4,4,65,65,65,186,186,186,243,243,243,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,250,250,250,247,247,247,234,234,234,
-223,223,223,200,200,200,184,184,184,161,161,161,135,135,135,100,100,100,74,74,74,52,52,52,
-28,28,28,11,11,11,3,3,3,1,1,1,0,0,0,4,4,4,6,6,6,13,13,13,
-33,33,33,59,59,59,85,85,85,126,126,126,150,150,150,170,170,170,192,192,192,215,215,215,
-232,232,232,243,243,243,248,248,248,253,253,253,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,65,65,65,5,5,5,
-5,5,5,65,65,65,187,187,187,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,245,245,245,194,194,194,75,75,75,6,6,6,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,13,13,13,99,99,99,204,204,204,248,248,248,254,254,254,254,254,254,
-254,254,254,253,253,253,248,248,248,242,242,242,230,230,230,216,216,216,194,194,194,169,169,169,
-132,132,132,93,93,93,63,63,63,45,45,45,26,26,26,10,10,10,5,5,5,2,2,2,
-0,0,0,1,1,1,3,3,3,14,14,14,27,27,27,53,53,53,74,74,74,104,104,104,
-144,144,144,176,176,176,202,202,202,219,219,219,232,232,232,237,237,237,245,245,245,250,250,250,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,184,184,184,60,60,60,3,3,3,
-3,3,3,60,60,60,184,184,184,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,244,244,244,191,191,191,71,71,71,6,6,6,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,21,21,21,134,134,134,224,224,224,251,251,251,248,248,248,246,246,246,
-237,237,237,225,225,225,202,202,202,181,181,181,153,153,153,120,120,120,77,77,77,54,54,54,
-27,27,27,11,11,11,5,5,5,2,2,2,0,0,0,0,0,0,4,4,4,14,14,14,
-31,31,31,43,43,43,60,60,60,102,102,102,145,145,145,174,174,174,191,191,191,211,211,211,
-224,224,224,240,240,240,248,248,248,252,252,252,253,253,253,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,67,67,67,5,5,5,
-5,5,5,67,67,67,187,187,187,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,67,67,67,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,2,2,2,45,45,45,160,160,160,218,218,218,221,221,221,212,212,212,190,190,190,
-170,170,170,136,136,136,96,96,96,59,59,59,35,35,35,20,20,20,6,6,6,4,4,4,
-0,0,0,1,1,1,5,5,5,8,8,8,23,23,23,34,34,34,55,55,55,96,96,96,
-139,139,139,164,164,164,183,183,183,205,205,205,229,229,229,239,239,239,246,246,246,248,248,248,
-252,252,252,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,67,67,67,5,5,5,
-5,5,5,67,67,67,190,190,190,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,66,66,66,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,6,6,6,64,64,64,142,142,142,156,156,156,137,137,137,103,103,103,73,73,73,
-45,45,45,23,23,23,12,12,12,4,4,4,1,1,1,0,0,0,3,3,3,7,7,7,
-12,12,12,34,34,34,67,67,67,91,91,91,133,133,133,154,154,154,176,176,176,201,201,201,
-224,224,224,233,233,233,243,243,243,248,248,248,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,191,191,191,70,70,70,5,5,5,
-5,5,5,70,70,70,191,191,191,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,184,184,184,60,60,60,3,3,3,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,8,8,8,47,47,47,56,56,56,40,40,40,26,26,26,13,13,13,5,5,5,
-1,1,1,0,0,0,1,1,1,4,4,4,15,15,15,31,31,31,57,57,57,80,80,80,
-109,109,109,149,149,149,182,182,182,210,210,210,222,222,222,234,234,234,239,239,239,248,248,248,
-251,251,251,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,194,194,194,75,75,75,7,7,7,
-7,7,7,75,75,75,194,194,194,245,245,245,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,65,65,65,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,3,3,3,7,7,7,3,3,3,1,1,1,0,0,0,1,1,1,5,5,5,
-11,11,11,21,21,21,39,39,39,66,66,66,108,108,108,150,150,150,179,179,179,196,196,196,
-214,214,214,227,227,227,242,242,242,248,248,248,252,252,252,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,193,193,193,73,73,73,6,6,6,
-6,6,6,73,73,73,193,193,193,245,245,245,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,245,245,245,193,193,193,73,73,73,6,6,6,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,11,11,11,25,25,25,43,43,43,
-74,74,74,112,112,112,148,148,148,180,180,180,209,209,209,228,228,228,241,241,241,246,246,246,
-250,250,250,252,252,252,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,65,65,65,5,5,5,
-5,5,5,65,65,65,187,187,187,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,245,245,245,194,194,194,75,75,75,6,6,6,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,10,10,10,24,24,24,45,45,45,
-76,76,76,117,117,117,152,152,152,185,185,185,210,210,210,227,227,227,237,237,237,243,243,243,
-248,248,248,253,253,253,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,184,184,184,60,60,60,3,3,3,
-3,3,3,60,60,60,184,184,184,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,244,244,244,191,191,191,71,71,71,6,6,6,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,4,4,4,
-13,13,13,25,25,25,47,47,47,75,75,75,106,106,106,142,142,142,165,165,165,187,187,187,
-206,206,206,227,227,227,237,237,237,248,248,248,251,251,251,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,67,67,67,5,5,5,
-5,5,5,67,67,67,187,187,187,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,67,67,67,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,1,1,1,6,6,6,13,13,13,28,28,28,49,49,49,67,67,67,
-104,104,104,143,143,143,173,173,173,199,199,199,223,223,223,232,232,232,242,242,242,249,249,249,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,67,67,67,5,5,5,
-5,5,5,67,67,67,190,190,190,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,66,66,66,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,5,5,5,
-15,15,15,30,30,30,54,54,54,84,84,84,130,130,130,157,157,157,179,179,179,204,204,204,
-229,229,229,239,239,239,246,246,246,248,248,248,252,252,252,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,191,191,191,70,70,70,5,5,5,
-5,5,5,70,70,70,191,191,191,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,184,184,184,60,60,60,3,3,3,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,1,1,0,0,0,4,4,4,8,8,8,24,24,24,35,35,35,57,57,57,100,100,100,
-144,144,144,174,174,174,191,191,191,210,210,210,221,221,221,236,236,236,245,245,245,252,252,252,
-253,253,253,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,194,194,194,75,75,75,7,7,7,
-7,7,7,75,75,75,194,194,194,245,245,245,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,65,65,65,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,3,3,3,14,14,14,
-26,26,26,47,47,47,73,73,73,101,101,101,135,135,135,163,163,163,193,193,193,214,214,214,
-231,231,231,237,237,237,245,245,245,250,250,250,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,193,193,193,73,73,73,6,6,6,
-6,6,6,73,73,73,193,193,193,245,245,245,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,245,245,245,193,193,193,73,73,73,6,6,6,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,1,1,1,5,5,5,12,12,12,25,25,25,45,45,45,74,74,74,114,114,114,
-146,146,146,171,171,171,191,191,191,213,213,213,230,230,230,242,242,242,248,248,248,253,253,253,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,65,65,65,5,5,5,
-5,5,5,65,65,65,187,187,187,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,245,245,245,194,194,194,75,75,75,6,6,6,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,6,6,6,16,16,16,
-32,32,32,51,51,51,71,71,71,117,117,117,152,152,152,182,182,182,203,203,203,224,224,224,
-235,235,235,247,247,247,249,249,249,252,252,252,253,253,253,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,184,184,184,60,60,60,3,3,3,
-3,3,3,60,60,60,184,184,184,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,244,244,244,191,191,191,71,71,71,6,6,6,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,1,1,4,4,4,5,5,5,19,19,19,36,36,36,60,60,60,98,98,98,133,133,133,
-165,165,165,191,191,191,214,214,214,223,223,223,236,236,236,245,245,245,251,251,251,252,252,252,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,67,67,67,5,5,5,
-5,5,5,67,67,67,187,187,187,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,67,67,67,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4,4,4,13,13,13,20,20,20,
-41,41,41,75,75,75,110,110,110,138,138,138,167,167,167,194,194,194,217,217,217,229,229,229,
-236,236,236,243,243,243,249,249,249,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,67,67,67,5,5,5,
-5,5,5,67,67,67,190,190,190,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,66,66,66,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,1,1,6,6,6,16,16,16,26,26,26,51,51,51,80,80,80,113,113,113,144,144,144,
-162,162,162,184,184,184,208,208,208,230,230,230,241,241,241,248,248,248,251,251,251,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,191,191,191,70,70,70,5,5,5,
-5,5,5,70,70,70,191,191,191,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,184,184,184,60,60,60,3,3,3,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,7,7,7,14,14,14,31,31,31,
-47,47,47,63,63,63,113,113,113,155,155,155,182,182,182,200,200,200,221,221,221,231,231,231,
-245,245,245,250,250,250,254,254,254,254,254,254,245,245,245,194,194,194,75,75,75,7,7,7,
-7,7,7,75,75,75,194,194,194,245,245,245,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,243,243,243,187,187,187,65,65,65,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,
-3,3,3,4,4,4,20,20,20,39,39,39,62,62,62,92,92,92,128,128,128,159,159,159,
-186,186,186,212,212,212,230,230,230,242,242,242,237,237,237,190,190,190,73,73,73,6,6,6,
-6,6,6,73,73,73,193,193,193,245,245,245,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,245,245,245,193,193,193,73,73,73,6,6,6,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,1,1,1,5,5,5,11,11,11,21,21,21,39,39,39,
-67,67,67,108,108,108,150,150,150,179,179,179,188,188,188,157,157,157,57,57,57,4,4,4,
-5,5,5,62,62,62,181,181,181,232,232,232,243,243,243,243,243,243,244,244,244,244,244,244,
-245,245,245,245,245,245,243,243,243,243,243,243,243,243,243,244,244,244,244,244,244,245,245,245,
-245,245,245,243,243,243,243,243,243,243,243,243,244,244,244,244,244,244,245,245,245,245,245,245,
-243,243,243,243,243,243,243,243,243,244,244,244,244,244,244,245,245,245,245,245,245,243,243,243,
-243,243,243,243,243,243,244,244,244,244,244,244,245,245,245,245,245,245,243,243,243,243,243,243,
-243,243,243,244,244,244,244,244,244,236,236,236,187,187,187,71,71,71,6,6,6,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,
-4,4,4,15,15,15,31,31,31,58,58,58,76,76,76,76,76,76,33,33,33,2,2,2,
-3,3,3,47,47,47,139,139,139,178,178,178,184,184,184,187,187,187,190,190,190,191,191,191,
-194,194,194,193,193,193,187,187,187,184,184,184,187,187,187,190,190,190,191,191,191,194,194,194,
-193,193,193,187,187,187,184,184,184,187,187,187,190,190,190,191,191,191,194,194,194,193,193,193,
-187,187,187,184,184,184,187,187,187,190,190,190,191,191,191,194,194,194,193,193,193,187,187,187,
-184,184,184,187,187,187,190,190,190,191,191,191,194,194,194,193,193,193,187,187,187,184,184,184,
-187,187,187,190,190,190,191,191,191,186,186,186,145,145,145,54,54,54,5,5,5,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,2,2,2,6,6,6,8,8,8,8,8,8,1,1,1,
-2,2,2,22,22,22,55,55,55,61,61,61,60,60,60,67,67,67,67,67,67,71,71,71,
-75,75,75,73,73,73,65,65,65,60,60,60,67,67,67,67,67,67,71,71,71,75,75,75,
-73,73,73,65,65,65,60,60,60,67,67,67,67,67,67,71,71,71,75,75,75,73,73,73,
-65,65,65,60,60,60,67,67,67,67,67,67,71,71,71,75,75,75,73,73,73,65,65,65,
-60,60,60,67,67,67,67,67,67,71,71,71,75,75,75,73,73,73,65,65,65,60,60,60,
-67,67,67,67,67,67,71,71,71,72,72,72,57,57,57,21,21,21,2,2,2,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,2,2,2,5,5,5,4,4,4,3,3,3,5,5,5,5,5,5,6,6,6,
-7,7,7,6,6,6,5,5,5,3,3,3,5,5,5,5,5,5,6,6,6,7,7,7,
-6,6,6,5,5,5,3,3,3,5,5,5,5,5,5,6,6,6,7,7,7,6,6,6,
-5,5,5,3,3,3,5,5,5,5,5,5,6,6,6,7,7,7,6,6,6,5,5,5,
-3,3,3,5,5,5,5,5,5,6,6,6,7,7,7,6,6,6,5,5,5,3,3,3,
-5,5,5,5,5,5,6,6,6,6,6,6,5,5,5,2,2,2,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-2,2,2,2,2,2,5,5,5,4,4,4,5,5,5,5,5,5,5,5,5,6,6,6,
-4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,
-6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,
-5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,
-5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,
-5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,
-5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,
-6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,
-4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,
-6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,
-5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,
-5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,
-5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,
-5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,
-6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,
-4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,1,1,1,
-3,3,3,23,23,23,54,54,54,65,65,65,68,68,68,68,68,68,68,68,68,69,69,69,
-65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,
-69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,
-68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,
-68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,
-68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,
-68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,
-69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,
-65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,
-69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,
-68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,
-68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,
-68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,
-68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,
-69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,
-65,65,65,69,69,69,68,68,68,68,68,68,65,65,65,53,53,53,23,23,23,2,2,2,
-5,5,5,54,54,54,141,141,141,181,181,181,189,189,189,189,189,189,189,189,189,189,189,189,
-189,189,189,188,188,188,190,190,190,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
-188,188,188,190,190,190,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,188,188,188,
-190,190,190,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,188,188,188,190,190,190,
-189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,188,188,188,190,190,190,189,189,189,
-189,189,189,189,189,189,189,189,189,189,189,189,188,188,188,190,190,190,189,189,189,189,189,189,
-189,189,189,189,189,189,189,189,189,188,188,188,190,190,190,189,189,189,189,189,189,189,189,189,
-189,189,189,189,189,189,188,188,188,190,190,190,189,189,189,189,189,189,189,189,189,189,189,189,
-189,189,189,188,188,188,190,190,190,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
-188,188,188,190,190,190,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,188,188,188,
-190,190,190,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,188,188,188,190,190,190,
-189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,188,188,188,190,190,190,189,189,189,
-189,189,189,189,189,189,189,189,189,189,189,189,188,188,188,190,190,190,189,189,189,189,189,189,
-189,189,189,189,189,189,189,189,189,188,188,188,190,190,190,189,189,189,189,189,189,189,189,189,
-189,189,189,189,189,189,188,188,188,190,190,190,189,189,189,189,189,189,189,189,189,189,189,189,
-189,189,189,188,188,188,190,190,190,189,189,189,182,182,182,140,140,140,51,51,51,4,4,4,
-5,5,5,66,66,66,182,182,182,234,234,234,244,244,244,244,244,244,244,244,244,242,242,242,
-245,245,245,242,242,242,244,244,244,244,244,244,244,244,244,244,244,244,242,242,242,245,245,245,
-242,242,242,244,244,244,244,244,244,244,244,244,244,244,244,242,242,242,245,245,245,242,242,242,
-244,244,244,244,244,244,244,244,244,244,244,244,242,242,242,245,245,245,242,242,242,244,244,244,
-244,244,244,244,244,244,244,244,244,242,242,242,245,245,245,242,242,242,244,244,244,244,244,244,
-244,244,244,244,244,244,242,242,242,245,245,245,242,242,242,244,244,244,244,244,244,244,244,244,
-244,244,244,242,242,242,245,245,245,242,242,242,244,244,244,244,244,244,244,244,244,244,244,244,
-242,242,242,245,245,245,242,242,242,244,244,244,244,244,244,244,244,244,244,244,244,242,242,242,
-245,245,245,242,242,242,244,244,244,244,244,244,244,244,244,244,244,244,242,242,242,245,245,245,
-242,242,242,244,244,244,244,244,244,244,244,244,244,244,244,242,242,242,245,245,245,242,242,242,
-244,244,244,244,244,244,244,244,244,244,244,244,242,242,242,245,245,245,242,242,242,244,244,244,
-244,244,244,244,244,244,244,244,244,242,242,242,245,245,245,242,242,242,244,244,244,244,244,244,
-244,244,244,244,244,244,242,242,242,245,245,245,242,242,242,244,244,244,244,244,244,244,244,244,
-244,244,244,242,242,242,245,245,245,242,242,242,244,244,244,244,244,244,244,244,244,244,244,244,
-242,242,242,245,245,245,242,242,242,244,244,244,244,244,244,244,244,244,244,244,244,242,242,242,
-245,245,245,242,242,242,244,244,244,244,244,244,234,234,234,181,181,181,65,65,65,5,5,5,
-6,6,6,69,69,69,188,188,188,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-4,4,4,65,65,65,189,189,189,245,245,245,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,189,189,189,69,69,69,6,6,6,
-6,6,6,69,69,69,189,189,189,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,189,189,189,65,65,65,4,4,4,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,188,188,188,69,69,69,6,6,6,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,190,190,190,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-6,6,6,69,69,69,188,188,188,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-4,4,4,65,65,65,189,189,189,245,245,245,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,189,189,189,69,69,69,6,6,6,
-6,6,6,69,69,69,189,189,189,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,189,189,189,65,65,65,4,4,4,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,188,188,188,69,69,69,6,6,6,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,190,190,190,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-6,6,6,69,69,69,188,188,188,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-4,4,4,65,65,65,189,189,189,245,245,245,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,189,189,189,69,69,69,6,6,6,
-6,6,6,69,69,69,189,189,189,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,189,189,189,65,65,65,4,4,4,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,188,188,188,69,69,69,6,6,6,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,190,190,190,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-6,6,6,69,69,69,188,188,188,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-4,4,4,65,65,65,189,189,189,245,245,245,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,189,189,189,69,69,69,6,6,6,
-6,6,6,69,69,69,189,189,189,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,189,189,189,65,65,65,4,4,4,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,188,188,188,69,69,69,6,6,6,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,68,68,68,5,5,5,
-5,5,5,65,65,65,181,181,181,234,234,234,244,244,244,244,244,244,244,244,244,243,243,243,
-245,245,245,243,243,243,244,244,244,244,244,244,244,244,244,244,244,244,243,243,243,245,245,245,
-243,243,243,244,244,244,244,244,244,244,244,244,244,244,244,243,243,243,245,245,245,243,243,243,
-244,244,244,244,244,244,244,244,244,244,244,244,243,243,243,245,245,245,243,243,243,244,244,244,
-244,244,244,244,244,244,244,244,244,243,243,243,245,245,245,243,243,243,244,244,244,244,244,244,
-244,244,244,244,244,244,243,243,243,245,245,245,243,243,243,244,244,244,244,244,244,244,244,244,
-244,244,244,243,243,243,245,245,245,243,243,243,244,244,244,244,244,244,244,244,244,244,244,244,
-243,243,243,245,245,245,243,243,243,244,244,244,244,244,244,244,244,244,244,244,244,243,243,243,
-245,245,245,243,243,243,244,244,244,244,244,244,244,244,244,244,244,244,243,243,243,245,245,245,
-243,243,243,244,244,244,244,244,244,244,244,244,244,244,244,243,243,243,245,245,245,242,242,242,
-242,242,242,242,242,242,243,243,243,244,244,244,243,243,243,245,245,245,243,243,243,244,244,244,
-244,244,244,244,244,244,244,244,244,243,243,243,245,245,245,243,243,243,244,244,244,244,244,244,
-244,244,244,244,244,244,243,243,243,245,245,245,243,243,243,244,244,244,244,244,244,244,244,244,
-244,244,244,243,243,243,245,245,245,243,243,243,244,244,244,244,244,244,244,244,244,244,244,244,
-243,243,243,245,245,245,243,243,243,244,244,244,244,244,244,244,244,244,244,244,244,243,243,243,
-245,245,245,243,243,243,244,244,244,244,244,244,234,234,234,182,182,182,65,65,65,5,5,5,
-3,3,3,50,50,50,139,139,139,183,183,183,189,189,189,189,189,189,190,190,190,188,188,188,
-189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,188,188,188,189,189,189,
-189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,188,188,188,189,189,189,189,189,189,
-189,189,189,189,189,189,189,189,189,190,190,190,188,188,188,189,189,189,189,189,189,189,189,189,
-189,189,189,189,189,189,190,190,190,188,188,188,189,189,189,189,189,189,189,189,189,189,189,189,
-189,189,189,190,190,190,188,188,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
-190,190,190,188,188,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,
-188,188,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,188,188,188,
-189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,188,188,188,189,189,189,
-189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,188,188,188,188,188,188,181,181,181,
-173,173,173,173,173,173,181,181,181,189,189,189,188,188,188,189,189,189,189,189,189,189,189,189,
-189,189,189,189,189,189,190,190,190,188,188,188,189,189,189,189,189,189,189,189,189,189,189,189,
-189,189,189,190,190,190,188,188,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
-190,190,190,188,188,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,
-188,188,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,188,188,188,
-189,189,189,189,189,189,189,189,189,189,189,189,181,181,181,141,141,141,51,51,51,4,4,4,
-2,2,2,17,17,17,50,50,50,64,64,64,68,68,68,68,68,68,68,68,68,69,69,69,
-65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,
-69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,
-68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,
-68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,
-68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,
-68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,
-69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,
-65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,
-69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,61,61,61,56,56,56,
-46,46,46,46,46,46,54,54,54,64,64,64,69,69,69,65,65,65,69,69,69,68,68,68,
-68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,
-68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,
-68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,
-69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,
-65,65,65,69,69,69,68,68,68,68,68,68,65,65,65,52,52,52,21,21,21,2,2,2,
-0,0,0,1,1,1,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,6,6,6,
-4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,
-6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,
-5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,
-5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,
-5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,
-5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,
-6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,
-4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,
-6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,
-1,1,1,1,1,1,3,3,3,4,4,4,5,5,5,4,4,4,6,6,6,5,5,5,
-5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,
-5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,
-5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,
-6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,
-4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,4,4,4,2,2,2,0,0,0,
-0,0,0,1,1,1,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,6,6,6,
-4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,
-6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,
-5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,
-5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,
-5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,
-5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,
-6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,
-4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,
-6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,2,2,2,
-0,0,0,0,0,0,2,2,2,4,4,4,5,5,5,4,4,4,6,6,6,5,5,5,
-5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,
-5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,
-5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,
-6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,
-4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,3,3,3,2,2,2,0,0,0,
-1,1,1,16,16,16,50,50,50,65,65,65,68,68,68,68,68,68,68,68,68,69,69,69,
-65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,
-69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,
-68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,
-68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,
-68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,
-68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,
-69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,
-65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,
-69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,67,67,67,49,49,49,19,19,19,
-1,1,1,1,1,1,19,19,19,50,50,50,67,67,67,65,65,65,69,69,69,68,68,68,
-68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,
-68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,
-68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,
-69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,
-65,65,65,69,69,69,68,68,68,68,68,68,65,65,65,51,51,51,21,21,21,2,2,2,
-4,4,4,50,50,50,138,138,138,183,183,183,189,189,189,189,189,189,190,190,190,188,188,188,
-189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,188,188,188,189,189,189,
-189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,188,188,188,189,189,189,189,189,189,
-189,189,189,189,189,189,189,189,189,190,190,190,188,188,188,189,189,189,189,189,189,189,189,189,
-189,189,189,189,189,189,190,190,190,188,188,188,189,189,189,189,189,189,189,189,189,189,189,189,
-189,189,189,190,190,190,188,188,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
-190,190,190,188,188,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,
-188,188,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,188,188,188,
-189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,188,188,188,189,189,189,
-189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,181,181,181,140,140,140,51,51,51,
-4,4,4,4,4,4,51,51,51,141,141,141,181,181,181,189,189,189,189,189,189,189,189,189,
-189,189,189,189,189,189,190,190,190,188,188,188,189,189,189,189,189,189,189,189,189,189,189,189,
-189,189,189,190,190,190,188,188,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
-190,190,190,188,188,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,
-188,188,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,188,188,188,
-189,189,189,189,189,189,189,189,189,189,189,189,182,182,182,142,142,142,50,50,50,4,4,4,
-5,5,5,65,65,65,181,181,181,234,234,234,244,244,244,244,244,244,244,244,244,242,242,242,
-245,245,245,242,242,242,244,244,244,244,244,244,244,244,244,244,244,244,242,242,242,245,245,245,
-242,242,242,244,244,244,244,244,244,244,244,244,244,244,244,242,242,242,245,245,245,242,242,242,
-244,244,244,244,244,244,244,244,244,244,244,244,242,242,242,245,245,245,242,242,242,244,244,244,
-244,244,244,244,244,244,244,244,244,242,242,242,245,245,245,242,242,242,244,244,244,244,244,244,
-244,244,244,244,244,244,242,242,242,245,245,245,242,242,242,244,244,244,244,244,244,244,244,244,
-244,244,244,242,242,242,245,245,245,242,242,242,244,244,244,244,244,244,244,244,244,244,244,244,
-242,242,242,245,245,245,242,242,242,244,244,244,244,244,244,244,244,244,244,244,244,242,242,242,
-245,245,245,242,242,242,244,244,244,244,244,244,244,244,244,244,244,244,242,242,242,245,245,245,
-242,242,242,244,244,244,244,244,244,244,244,244,244,244,244,232,232,232,183,183,183,65,65,65,
-4,4,4,4,4,4,65,65,65,183,183,183,232,232,232,245,245,245,242,242,242,244,244,244,
-244,244,244,244,244,244,244,244,244,242,242,242,245,245,245,242,242,242,244,244,244,244,244,244,
-244,244,244,244,244,244,242,242,242,245,245,245,242,242,242,244,244,244,244,244,244,244,244,244,
-244,244,244,242,242,242,245,245,245,242,242,242,244,244,244,244,244,244,244,244,244,244,244,244,
-242,242,242,245,245,245,242,242,242,244,244,244,244,244,244,244,244,244,244,244,244,242,242,242,
-245,245,245,242,242,242,244,244,244,244,244,244,233,233,233,180,180,180,66,66,66,5,5,5,
-5,5,5,68,68,68,190,190,190,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,189,189,189,69,69,69,
-6,6,6,6,6,6,69,69,69,189,189,189,243,243,243,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,189,189,189,65,65,65,4,4,4,
-6,6,6,69,69,69,188,188,188,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,189,189,189,65,65,65,
-4,4,4,4,4,4,65,65,65,189,189,189,245,245,245,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,189,189,189,69,69,69,6,6,6,
-4,4,4,65,65,65,189,189,189,245,245,245,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,188,188,188,69,69,69,
-6,6,6,6,6,6,69,69,69,188,188,188,243,243,243,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-6,6,6,69,69,69,189,189,189,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,68,68,68,
-5,5,5,5,5,5,68,68,68,190,190,190,244,244,244,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,
-5,5,5,5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,
-5,5,5,5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,
-5,5,5,5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,188,188,188,69,69,69,6,6,6,
-5,5,5,68,68,68,190,190,190,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,189,189,189,69,69,69,
-6,6,6,6,6,6,69,69,69,189,189,189,243,243,243,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,189,189,189,65,65,65,4,4,4,
-6,6,6,69,69,69,188,188,188,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,189,189,189,65,65,65,
-4,4,4,4,4,4,65,65,65,189,189,189,245,245,245,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,189,189,189,69,69,69,6,6,6,
-4,4,4,65,65,65,189,189,189,245,245,245,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,188,188,188,69,69,69,
-6,6,6,6,6,6,69,69,69,188,188,188,243,243,243,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-6,6,6,69,69,69,189,189,189,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,68,68,68,
-5,5,5,5,5,5,68,68,68,190,190,190,244,244,244,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,
-5,5,5,5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,
-5,5,5,5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,
-5,5,5,5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,188,188,188,69,69,69,6,6,6,
-5,5,5,68,68,68,190,190,190,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,189,189,189,69,69,69,
-6,6,6,6,6,6,69,69,69,189,189,189,243,243,243,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,189,189,189,65,65,65,4,4,4,
-6,6,6,69,69,69,188,188,188,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,189,189,189,65,65,65,
-4,4,4,4,4,4,65,65,65,189,189,189,245,245,245,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,189,189,189,69,69,69,6,6,6,
-4,4,4,65,65,65,189,189,189,245,245,245,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,188,188,188,69,69,69,
-6,6,6,6,6,6,69,69,69,188,188,188,243,243,243,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-6,6,6,69,69,69,189,189,189,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,68,68,68,
-5,5,5,5,5,5,68,68,68,190,190,190,244,244,244,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,
-5,5,5,5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,
-5,5,5,5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,
-5,5,5,5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,188,188,188,69,69,69,6,6,6,
-5,5,5,68,68,68,190,190,190,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,189,189,189,69,69,69,
-6,6,6,6,6,6,69,69,69,189,189,189,243,243,243,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,189,189,189,65,65,65,4,4,4,
-6,6,6,69,69,69,188,188,188,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,245,245,245,189,189,189,65,65,65,
-4,4,4,4,4,4,65,65,65,189,189,189,245,245,245,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,189,189,189,69,69,69,6,6,6,
-4,4,4,65,65,65,189,189,189,245,245,245,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,243,243,243,188,188,188,69,69,69,
-6,6,6,6,6,6,69,69,69,188,188,188,243,243,243,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-6,6,6,69,69,69,189,189,189,243,243,243,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,190,190,190,68,68,68,
-5,5,5,5,5,5,68,68,68,190,190,190,244,244,244,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,
-5,5,5,5,5,5,68,68,68,189,189,189,244,244,244,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,
-254,254,254,254,254,254,254,254,254,254,254,254,244,244,244,189,189,189,68,68,68,5,5,5,
-5,5,5,65,65,65,181,181,181,234,234,234,244,244,244,244,244,244,243,243,243,245,245,245,
-243,243,243,244,244,244,244,244,244,244,244,244,244,244,244,243,243,243,245,245,245,243,243,243,
-244,244,244,244,244,244,244,244,244,244,244,244,243,243,243,245,245,245,243,243,243,244,244,244,
-244,244,244,244,244,244,244,244,244,243,243,243,245,245,245,243,243,243,244,244,244,244,244,244,
-244,244,244,244,244,244,243,243,243,245,245,245,243,243,243,244,244,244,244,244,244,244,244,244,
-244,244,244,243,243,243,245,245,245,243,243,243,244,244,244,244,244,244,244,244,244,244,244,244,
-243,243,243,245,245,245,243,243,243,244,244,244,244,244,244,244,244,244,244,244,244,243,243,243,
-245,245,245,243,243,243,244,244,244,244,244,244,244,244,244,244,244,244,243,243,243,245,245,245,
-243,243,243,244,244,244,244,244,244,244,244,244,244,244,244,243,243,243,245,245,245,243,243,243,
-244,244,244,244,244,244,244,244,244,244,244,244,243,243,243,235,235,235,181,181,181,65,65,65,
-5,5,5,5,5,5,65,65,65,182,182,182,234,234,234,244,244,244,243,243,243,245,245,245,
-243,243,243,244,244,244,244,244,244,244,244,244,244,244,244,243,243,243,245,245,245,243,243,243,
-244,244,244,244,244,244,244,244,244,244,244,244,243,243,243,245,245,245,243,243,243,244,244,244,
-244,244,244,244,244,244,244,244,244,243,243,243,245,245,245,243,243,243,244,244,244,244,244,244,
-244,244,244,244,244,244,243,243,243,245,245,245,243,243,243,244,244,244,244,244,244,244,244,244,
-244,244,244,243,243,243,245,245,245,243,243,243,234,234,234,181,181,181,65,65,65,4,4,4,
-4,4,4,51,51,51,140,140,140,182,182,182,189,189,189,190,190,190,188,188,188,189,189,189,
-189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,188,188,188,189,189,189,189,189,189,
-189,189,189,189,189,189,189,189,189,190,190,190,188,188,188,189,189,189,189,189,189,189,189,189,
-189,189,189,189,189,189,190,190,190,188,188,188,189,189,189,189,189,189,189,189,189,189,189,189,
-189,189,189,190,190,190,188,188,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
-190,190,190,188,188,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,
-188,188,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,188,188,188,
-189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,188,188,188,189,189,189,
-189,189,189,189,189,189,189,189,189,189,189,189,190,190,190,188,188,188,189,189,189,189,189,189,
-189,189,189,189,189,189,189,189,189,190,190,190,188,188,188,182,182,182,141,141,141,50,50,50,
-3,3,3,3,3,3,49,49,49,138,138,138,181,181,181,189,189,189,189,189,189,189,189,189,
-188,188,188,190,190,190,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,188,188,188,
-190,190,190,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,188,188,188,190,190,190,
-189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,188,188,188,190,190,190,189,189,189,
-189,189,189,189,189,189,189,189,189,189,189,189,188,188,188,190,190,190,189,189,189,189,189,189,
-189,189,189,189,189,189,189,189,189,188,188,188,182,182,182,141,141,141,54,54,54,5,5,5,
-2,2,2,22,22,22,53,53,53,65,65,65,68,68,68,68,68,68,69,69,69,65,65,65,
-69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,
-68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,
-68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,
-68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,
-68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,
-69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,
-65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,
-69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,
-68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,62,62,62,52,52,52,19,19,19,
-2,2,2,2,2,2,17,17,17,48,48,48,64,64,64,68,68,68,69,69,69,65,65,65,
-69,69,69,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,
-68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,
-68,68,68,68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,
-68,68,68,68,68,68,69,69,69,65,65,65,69,69,69,68,68,68,68,68,68,68,68,68,
-68,68,68,69,69,69,65,65,65,69,69,69,66,66,66,54,54,54,22,22,22,2,2,2,
-1,1,1,3,3,3,4,4,4,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,
-6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,
-5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,
-5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,
-5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,
-5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,
-6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,
-4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,
-6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,
-5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,5,5,5,1,1,1,
-0,0,0,0,0,0,1,1,1,4,4,4,5,5,5,5,5,5,6,6,6,4,4,4,
-6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,
-5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,
-5,5,5,5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,
-5,5,5,5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,5,5,5,
-5,5,5,6,6,6,4,4,4,6,6,6,5,5,5,5,5,5,3,3,3,1,1,1,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
-100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100
-}
-};
index 79423e61b4a21e38f47f3e4f35861c2fb93f62f7..67adc4b3a8fbe79a509c570e1c3c092b5a6372ca 100644 (file)
  */
 
 /* TODO:
- *  Future: some simple "solve mode"
- *  Future: new light model, less ambient light
- *  Maybe: use rotator and trackball
- *  Maybe: display lists - seem impossible with colors
+ *  some simple "solve mode"
+ *  use rotator and trackball
  */
 
 /*-
@@ -65,7 +63,6 @@
 #ifdef USE_GL
 
 #include <GL/glu.h>
-#include "cube21-tex.h"
 
 #ifdef Pi
 #undef Pi
 #define COS30   0.8660254038
 #define SIN30   0.5000000000
 
+#define TEX_WIDTH  128
+#define TEX_HEIGHT 128
+#define TEX_GRAY   0.7, 0.7
+#define BORDER     3
+#define BORDER2    9
+
 #undef countof
 #define countof(x) (sizeof((x))/sizeof((*x)))
 
@@ -173,6 +176,7 @@ typedef struct {
 } cube21_conf;
 
 static cube21_conf *cube21 = NULL;
+static unsigned char texture[TEX_HEIGHT][TEX_WIDTH];
 
 static GLfloat shininess = 20.0;
 static GLfloat ambient[] = {0.0, 0.0, 0.0, 1.0};
@@ -184,7 +188,7 @@ static GLfloat material_ambient[] = {0.7, 0.7, 0.7, 1.0};
 static GLfloat material_diffuse[] = {0.7, 0.7, 0.7, 1.0};
 static GLfloat material_specular[] = {0.2, 0.2, 0.2, 1.0};
 static GLfloat color_inner[] = {1.0, 1.0, 1.0};
-static GLfloat texc[8] = {0.0}, posc[6];
+static GLfloat texp = 0.0, texq, posc[6];
 static GLfloat zpos = -18.0;
 
 /*************************************************************************/
@@ -315,12 +319,12 @@ static void draw_narrow_piece(GLfloat s, int c1, int c2, col_t colors) {
   glBegin(GL_TRIANGLES);
   glNormal3f(0.0, 0.0, s);
   if(cmat) glColor3fv(colors[c1]);
-  glTexCoord2f(0.0, 0.25);     glVertex3f(0.0, 0.0, s);
-  glTexCoord2f(0.5, texc[1]);  glVertex3f(posc[1], 0.0, s);
-  glTexCoord2f(0.5, texc[2]);  glVertex3f(posc[2], posc[3], s);
+  glTexCoord2f(0.5, 0.5);  glVertex3f(0.0, 0.0, s);
+  glTexCoord2f(texq, 0.0); glVertex3f(posc[1], 0.0, s);
+  glTexCoord2f(texp, 0.0); glVertex3f(posc[2], posc[3], s);
   glNormal3f(0.0, 0.0, -s);
   if(cmat) glColor3fv(color_inner);
-  glTexCoord2f(1.0, 1.0);
+  glTexCoord2f(TEX_GRAY);
   glVertex3f(0.0, 0.0, s1);
   glVertex3f(posc[1], 0.0, s1);
   glVertex3f(posc[2], posc[3], s1);
@@ -328,20 +332,20 @@ static void draw_narrow_piece(GLfloat s, int c1, int c2, col_t colors) {
   glBegin(GL_QUADS);
   glNormal3f(0.0, -1.0, 0.0);
   if(cmat) glColor3fv(color_inner);
-  glTexCoord2f(1.0, 1.0);
+  glTexCoord2f(TEX_GRAY);
   glVertex3f(0.0, 0.0, s);
   glVertex3f(posc[1], 0.0, s);
   glVertex3f(posc[1], 0.0, s1);
   glVertex3f(0.0, 0.0, s1);
   glNormal3f(COS15, SIN15, 0.0);
   if(cmat) glColor3fv(colors[c2]);
-  glTexCoord2f(0.5, texc[1]);      glVertex3f(posc[1], 0.0, s);
-  glTexCoord2f(0.5, texc[2]);      glVertex3f(posc[2], posc[3], s);
-  glTexCoord2f(texc[4], texc[2]);  glVertex3f(posc[2], posc[3], s1);
-  glTexCoord2f(texc[4], texc[1]);  glVertex3f(posc[1], 0.0, s1);
+  glTexCoord2f(texq, texq); glVertex3f(posc[1], 0.0, s);
+  glTexCoord2f(texq, texp); glVertex3f(posc[2], posc[3], s);
+  glTexCoord2f(1.0, texp);  glVertex3f(posc[2], posc[3], s1);
+  glTexCoord2f(1.0, texq);  glVertex3f(posc[1], 0.0, s1);
   glNormal3f(-SIN30, COS30, 0.0);
   if(cmat) glColor3fv(color_inner);
-  glTexCoord2f(1.0, 1.0);
+  glTexCoord2f(TEX_GRAY);
   glVertex3f(0.0, 0.0, s);
   glVertex3f(posc[2], posc[3], s);
   glVertex3f(posc[2], posc[3], s1);
@@ -355,15 +359,15 @@ static void draw_wide_piece(GLfloat s, int c1, int c2, int c3, col_t colors) {
   glBegin(GL_TRIANGLES);
   glNormal3f(0.0, 0.0, s);
   if(cmat) glColor3fv(colors[c1]);
-  glTexCoord2f(0.0, 0.25);     glVertex3f(0.0, 0.0, s);
-  glTexCoord2f(0.5, texc[1]);  glVertex3f(posc[1], 0.0, s);
-  glTexCoord2f(0.5, 0.0);      glVertex3f(posc[4], posc[5], s);
-  glTexCoord2f(0.5, 0.0);      glVertex3f(posc[4], posc[5], s);
-  glTexCoord2f(texc[3], 0.0);  glVertex3f(posc[3], posc[2], s);
-  glTexCoord2f(0.0, 0.25);     glVertex3f(0.0, 0.0, s);
+  glTexCoord2f(0.5, 0.5);  glVertex3f(0.0, 0.0, s);
+  glTexCoord2f(texp, 0.0); glVertex3f(posc[1], 0.0, s);
+  glTexCoord2f(0.0, 0.0);  glVertex3f(posc[4], posc[5], s);
+  glTexCoord2f(0.0, 0.0);  glVertex3f(posc[4], posc[5], s);
+  glTexCoord2f(0.0, texp); glVertex3f(posc[3], posc[2], s);
+  glTexCoord2f(0.5, 0.5);  glVertex3f(0.0, 0.0, s);
   glNormal3f(0.0, 0.0, -s);
   if(cmat) glColor3fv(color_inner);
-  glTexCoord2f(1.0, 1.0);
+  glTexCoord2f(TEX_GRAY);
   glVertex3f(0.0, 0.0, s1);
   glVertex3f(posc[1], 0.0, s1);
   glVertex3f(posc[4], posc[5], s1);
@@ -374,26 +378,26 @@ static void draw_wide_piece(GLfloat s, int c1, int c2, int c3, col_t colors) {
   glBegin(GL_QUADS);
   glNormal3f(0.0, -1.0, 0);
   if(cmat) glColor3fv(color_inner);
-  glTexCoord2f(1.0, 1.0);
+  glTexCoord2f(TEX_GRAY);
   glVertex3f(0.0, 0.0, s);
   glVertex3f(posc[1], 0.0, s);
   glVertex3f(posc[1], 0.0, s1);
   glVertex3f(0.0, 0.0, s1);
   glNormal3f(COS15, -SIN15, 0.0);
   if(cmat) glColor3fv(colors[c2]);
-  glTexCoord2f(0.5, texc[1]);      glVertex3f(posc[1], 0.0, s);
-  glTexCoord2f(0.5, 0.0);          glVertex3f(posc[4], posc[5], s);
-  glTexCoord2f(texc[4], 0.0);      glVertex3f(posc[4], posc[5], s1);
-  glTexCoord2f(texc[4], texc[1]);  glVertex3f(posc[1], 0.0, s1);
+  glTexCoord2f(texq, texp); glVertex3f(posc[1], 0.0, s);
+  glTexCoord2f(texq, 0.0);  glVertex3f(posc[4], posc[5], s);
+  glTexCoord2f(1.0, 0.0);   glVertex3f(posc[4], posc[5], s1);
+  glTexCoord2f(1.0, texp);  glVertex3f(posc[1], 0.0, s1);
   glNormal3f(SIN15, COS15, 0.0);
   if(cmat) glColor3fv(colors[c3]);
-  glTexCoord2f(0.5, texc[1]);      glVertex3f(posc[4], posc[5], s);
-  glTexCoord2f(0.5, 0.0);          glVertex3f(posc[3], posc[2], s);
-  glTexCoord2f(texc[4], 0.0);      glVertex3f(posc[3], posc[2], s1);
-  glTexCoord2f(texc[4], texc[1]);  glVertex3f(posc[4], posc[5], s1);
+  glTexCoord2f(texq, texp); glVertex3f(posc[4], posc[5], s);
+  glTexCoord2f(texq, 0.0);  glVertex3f(posc[3], posc[2], s);
+  glTexCoord2f(1.0, 0.0);   glVertex3f(posc[3], posc[2], s1);
+  glTexCoord2f(1.0, texp);  glVertex3f(posc[4], posc[5], s1);
   glNormal3f(-COS30, SIN30, 0.0);
   if(cmat) glColor3fv(color_inner);
-  glTexCoord2f(1.0, 1.0);
+  glTexCoord2f(TEX_GRAY);
   glVertex3f(0.0, 0.0, s);
   glVertex3f(posc[3], posc[2], s);
   glVertex3f(posc[3], posc[2], s1);
@@ -407,41 +411,41 @@ static void draw_middle_piece(int s, cind_t cind, col_t colors) {
   glBegin(GL_QUADS);
   if(cmat) glColor3fv(color_inner);
   glNormal3f(0.0, 0.0, 1.0);
-  glTexCoord2f(1.0, 1.0);
+  glTexCoord2f(TEX_GRAY);
   glVertex3f(posc[1], 0.0, posc[0]);
   glVertex3f(posc[4], posc[5], posc[0]);
   glVertex3f(-posc[5], posc[4], posc[0]);
   glVertex3f(-posc[1], 0.0, posc[0]);
   glNormal3f(0.0, 0.0, -1.0);
-  glTexCoord2f(1.0, 1.0);
+  glTexCoord2f(TEX_GRAY);
   glVertex3f(posc[1], 0.0, -posc[0]);
   glVertex3f(posc[4], posc[5], -posc[0]);
   glVertex3f(-posc[5], posc[4], -posc[0]);
   glVertex3f(-posc[1], 0.0, -posc[0]);
   glNormal3f(0.0, -1.0, 0.0);
-  glTexCoord2f(1.0, 1.0);
+  glTexCoord2f(TEX_GRAY);
   glVertex3f(-posc[1], 0.0, posc[0]);
   glVertex3f(posc[1], 0.0, posc[0]);
   glVertex3f(posc[1], 0.0, -posc[0]);
   glVertex3f(-posc[1], 0.0, -posc[0]);
   glNormal3f(COS15, -SIN15, 0.0);
   if(cmat) glColor3fv(colors[cind[4][s]]);
-  glTexCoord2f(texc[5], 0.5);      glVertex3f(posc[1], 0.0, posc[0]);
-  glTexCoord2f(1.0, 0.5);          glVertex3f(posc[4], posc[5], posc[0]);
-  glTexCoord2f(1.0, texc[7]);      glVertex3f(posc[4], posc[5], -posc[0]);
-  glTexCoord2f(texc[5], texc[7]);  glVertex3f(posc[1], 0.0, -posc[0]);
+  glTexCoord2f(texq, texp); glVertex3f(posc[1], 0.0, posc[0]);
+  glTexCoord2f(1.0, texp);  glVertex3f(posc[4], posc[5], posc[0]);
+  glTexCoord2f(1.0, texq);  glVertex3f(posc[4], posc[5], -posc[0]);
+  glTexCoord2f(texq, texq); glVertex3f(posc[1], 0.0, -posc[0]);
   glNormal3f(SIN15, COS15, 0.0);
   if(cmat) glColor3fv(colors[cind[4][s+1]]);
-  glTexCoord2f(0.0, 0.5);      glVertex3f(posc[4], posc[5], posc[0]);
-  glTexCoord2f(1.0, 0.5);      glVertex3f(-posc[5], posc[4], posc[0]);
-  glTexCoord2f(1.0, texc[6]);  glVertex3f(-posc[5], posc[4], -posc[0]);
-  glTexCoord2f(0.0, texc[6]);  glVertex3f(posc[4], posc[5], -posc[0]);
+  glTexCoord2f(0.0, 0.5);   glVertex3f(posc[4], posc[5], posc[0]);
+  glTexCoord2f(texq, 0.5); glVertex3f(-posc[5], posc[4], posc[0]);
+  glTexCoord2f(texq, 0.75); glVertex3f(-posc[5], posc[4], -posc[0]);
+  glTexCoord2f(0.0, 0.75);   glVertex3f(posc[4], posc[5], -posc[0]);
   glNormal3f(-COS15, SIN15, 0.0);
   if(cmat) glColor3fv(colors[cind[4][s+4]]);
-  glTexCoord2f(0.0, 0.5);          glVertex3f(-posc[5], posc[4], posc[0]);
-  glTexCoord2f(texc[5], 0.5);      glVertex3f(-posc[1], 0.0, posc[0]);
-  glTexCoord2f(texc[5], texc[7]);  glVertex3f(-posc[1], 0.0, -posc[0]);
-  glTexCoord2f(0.0, texc[7]);      glVertex3f(-posc[5], posc[4], -posc[0]);
+  glTexCoord2f(0.0, 0.75); glVertex3f(-posc[5], posc[4], posc[0]);
+  glTexCoord2f(1.0, 0.75); glVertex3f(-posc[1], 0.0, posc[0]);
+  glTexCoord2f(1.0, 1.0);  glVertex3f(-posc[1], 0.0, -posc[0]);
+  glTexCoord2f(0.0, 1.0);  glVertex3f(-posc[5], posc[4], -posc[0]);
   glEnd();
 }
 
@@ -556,21 +560,13 @@ void parse_colmode(void) {
   else colmode = CUBE21_COLOR_WHITE;
 }
 
-static void init_texc(void) {
-  GLfloat p = tan(Pi/12);
-  if(texc[0]) return;
-  /* Some significant non-trivial coordinates of the texture... */
-  texc[0] = p;                     /* 0.268 */
-  texc[1] = (1.0-p)/4;             /* 0.183 */
-  texc[2] = (1.0+p)/4;             /* 0.317 */
-  texc[3] = p/2;                   /* 0.134 */
-  texc[4] = 1.0-p/2;               /* 0.866 = sqrt(3)/2 */
-  texc[5] = (1.0+p)/2;             /* 0.634 */
-  texc[6] = (1.0-p)/2;             /* 0.366 */
-  texc[7] = (1.0+p)/2;             /* = texc[5], but has different purpose */
-  /* ...and of the object. We need them exactly at GLfloat precision
+static void init_posc(void) {
+  texp = (1.0-tan(Pi/12.0))/2.0;
+  texq = 1.0-texp;
+  /* Some significant non-trivial coordinates
+   * of the object. We need them exactly at GLfloat precision
    * for the edges to line up perfectly. */
-  posc[0] = p;                     /* 0.268 */
+  posc[0] = tan(Pi/12);            /* 0.268 */
   posc[1] = 1.0/cos(Pi/12);        /* 1.035 */
   posc[2] = cos(Pi/6)/cos(Pi/12);  /* 0.897 */
   posc[3] = sin(Pi/6)/cos(Pi/12);  /* 0.518 */
@@ -578,6 +574,81 @@ static void init_texc(void) {
   posc[5] = sqrt(2)*sin(Pi/6);     /* 0.707 = 1/sqrt(2) */
 }
 
+static void draw_horz_line(int x1, int x2, int y) {
+  int x, y0 = y, w;
+  if(y<BORDER) y = -y;
+  else y = -BORDER;
+  for(; y<BORDER; y++) {
+    if(y0+y>=TEX_HEIGHT) break;
+    w = y*y*255/BORDER2;
+    for(x=x1; x<=x2; x++)
+      if(texture[y0+y][x]>w) texture[y0+y][x] = w;
+  }
+}
+
+static void draw_vert_line(int x, int y1, int y2) {
+  int x0 = x, y, w;
+  if(x<BORDER) x = -x;
+  else x = -BORDER;
+  for(; x<BORDER; x++) {
+    if(x0+x>=TEX_WIDTH) break;
+    w = x*x*255/BORDER2;
+    for(y=y1; y<=y2; y++)
+      if(texture[y][x0+x]>w) texture[y][x0+x] = w;
+  }
+}
+
+static void draw_slanted_horz(int x1, int y1, int x2, int y2) {
+  int x, y, dx = x2-x1, dy = y2-y1, y0, w;
+  for(x=x1; x<=x2; x++) {
+    y0 = y1+(y2-y1)*(x-x1)/(x2-x1);
+    for(y=-1-BORDER; y<2+BORDER; y++) {
+      w = dx*(y0+y-y1)-dy*(x-x1);
+      w = w*w/(dx*dx+dy*dy);
+      w = w*255/BORDER2;
+      if(texture[y0+y][x]>w) texture[y0+y][x] = w;
+    }
+  }
+}
+
+static void draw_slanted_vert(int x1, int y1, int x2, int y2) {
+  int x, y, dx = x2-x1, dy = y2-y1, x0, w;
+  for(y=y1; y<=y2; y++) {
+    x0 = x1+(x2-x1)*(y-y1)/(y2-y1);
+    for(x=-1-BORDER; x<2+BORDER; x++) {
+      w = dy*(x0+x-x1)-dx*(y-y1);
+      w = w*w/(dy*dy+dx*dx);
+      w = w*255/BORDER2;
+      if(texture[y][x0+x]>w) texture[y][x0+x] = w;
+    }
+  }
+}
+
+static void make_texture(void) {
+  int x, y, x0, y0;
+  float grayp[2] = {TEX_GRAY};
+  for(y=0; y<TEX_HEIGHT; y++)
+    for(x=0; x<TEX_WIDTH; x++)
+      texture[y][x] = 255;
+  draw_horz_line(0, TEX_WIDTH-1, 0);
+  draw_horz_line(texq*TEX_WIDTH, TEX_WIDTH-1, texp*TEX_HEIGHT);
+  draw_horz_line(texq*TEX_WIDTH, TEX_WIDTH-1, texq*TEX_HEIGHT);
+  draw_horz_line(0, texq*TEX_WIDTH, TEX_HEIGHT/2);
+  draw_horz_line(0, TEX_WIDTH-1, TEX_HEIGHT*3/4);
+  draw_horz_line(0, TEX_WIDTH-1, TEX_HEIGHT-1);
+  draw_vert_line(0, 0, TEX_HEIGHT-1);
+  draw_vert_line(texq*TEX_WIDTH, 0, TEX_HEIGHT*3/4);
+  draw_vert_line(TEX_WIDTH-1, 0, TEX_HEIGHT-1);
+  draw_slanted_horz(0, texp*TEX_HEIGHT, TEX_WIDTH/2, TEX_HEIGHT/2);
+  draw_slanted_vert(texp*TEX_WIDTH, 0, TEX_WIDTH/2, TEX_HEIGHT/2);
+  draw_slanted_vert(texq*TEX_WIDTH, 0, TEX_WIDTH/2, TEX_HEIGHT/2);
+  x0 = grayp[0]*TEX_WIDTH;
+  y0 = grayp[1]*TEX_HEIGHT;
+  for(y=-1; y<=1; y++)
+    for(x=-1; x<=1; x++)
+      texture[y0+y][x0+x] = 100;   
+}
+
 /* It doesn't look good */
 /*#define MIPMAP*/
 
@@ -625,8 +696,8 @@ static void init_gl(ModeInfo *mi) {
   glEnable(GL_TEXTURE_2D);
 #ifdef MIPMAP
   clear_gl_error();
-  status = gluBuild2DMipmaps(GL_TEXTURE_2D, 3, cubetex.width, cubetex.height,
-      GL_RGB, GL_UNSIGNED_BYTE, cubetex.pixel_data);
+  status = gluBuild2DMipmaps(GL_TEXTURE_2D, 1, TEX_WIDTH, TEX_HEIGHT,
+      GL_LUMINANCE, GL_UNSIGNED_BYTE, texture);
   if (status) {
     const char *s = gluErrorString(status);
     fprintf (stderr, "%s: error mipmapping texture: %s\n", progname, (s?s:"(unknown)"));
@@ -634,8 +705,8 @@ static void init_gl(ModeInfo *mi) {
   }
   check_gl_error("mipmapping");
 #else    
-  glTexImage2D(GL_TEXTURE_2D, 0, cubetex.bytes_per_pixel, cubetex.width, cubetex.height,
-      0, GL_RGB, GL_UNSIGNED_BYTE, cubetex.pixel_data);
+  glTexImage2D(GL_TEXTURE_2D, 0, 1, TEX_WIDTH, TEX_HEIGHT,
+      0, GL_LUMINANCE, GL_UNSIGNED_BYTE, texture);
 #endif  
   glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
   glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
@@ -749,7 +820,10 @@ void init_cube21(ModeInfo *mi) {
     cube21 = (cube21_conf *)calloc(MI_NUM_SCREENS(mi), sizeof(cube21_conf));
     if(!cube21) return;
   }
-  init_texc();
+  if(!texp) {
+    init_posc();
+    make_texture();
+  }
   cp = &cube21[MI_SCREEN(mi)];
   if ((cp->glx_context = init_GL(mi)) != NULL) {
     init_gl(mi);
index f10b07dad0121ac6dd6088fc887578a42f567db2..9fe83b4a25c71a896a215de7ba994c73612cea3b 100644 (file)
@@ -34,7 +34,7 @@ Draw on a newly-created window.  This is the default.
 Draw on the root window.
 .TP 8
 .B \-delay \fInumber\fP
-Per-frame delay, in microseconds.  Default: 30000 (0.03 seconds.).
+Per-frame delay, in microseconds.  Default: 20000 (0.02 seconds.).
 .TP 8
 .B \-count \fInumber\fP
 How many boxes make up the object.  Default: 5.
index 168549d4a7871c7b4c2932def334e000948786ad..d4c18524c3c96f7ac6b30fb22dd33f1c6bbf9145 100644 (file)
@@ -94,12 +94,12 @@ stored in the RESOURCE_MANAGER property.
 .BR xscreensaver (1),
 .BR xscreensaver-text (1),
 .BR fortune (1),
-.BR phosphor (1),
-.BR apple2 (1),
-.BR fontglide (1),
-.BR ljlatest (1),
+.BR phosphor (MANSUFFIX),
+.BR apple2 (MANSUFFIX),
+.BR fontglide (MANSUFFIX),
+.BR ljlatest (MANSUFFIX),
 .BR dadadodo (1),
-.BR webcollage (1),
+.BR webcollage (MANSUFFIX),
 .BR driftnet (1)
 .BR EtherPEG ,
 .BR EtherPeek
index b0f91cafcc155954c62e57b4e9a2fcd67bd3e0c0..0d60ba82004196876897863edf469830367aa44a 100644 (file)
@@ -255,7 +255,7 @@ Disk *pop(int idx)
        return DOPOP(&glhanoi->pole[idx]);
 }
 
-inline void swap(int *x, int *y)
+/* inline */ static void swap(int *x, int *y)
 {
        *x = *x ^ *y;
        *y = *x ^ *y;
index 789b03ae6c430558d85cdc0d0b9edddb7944d4e7..cda6ee8eebfd0917a97f50084ddfa5b13eac6a36 100644 (file)
@@ -31,13 +31,7 @@ Draw on a newly-created window.  This is the default.
 Draw on the root window.
 .TP 8
 .B \-delay \fInumber\fP
-Per-frame delay, in microseconds.  Default: 30000 (0.03 seconds.).
-.TP 8
-.B \-speed \fInumber\fP
-Speed of disk animation. Default: 12.0 er, units per second. Let's call them metres.
-.TP 8
-.B \-rotspeed \fInumber\fP
-Speed of disk animation. Default: 0.1 rads per second.
+Per-frame delay, in microseconds.  Default: 15000 (0.015 seconds.).
 .TP 8
 .B \-count \fInumber\fP
 Number of disks.  Default: 7.
index 8e7051e3ac50e2ca2ee11966b7b8ff3fadec2a95..3ccc1930bdfbddbf208a23fbb5dfaabe4a0c6091 100644 (file)
@@ -44,7 +44,7 @@ curves smoother, at the expense of a higher polygon count.
 How thick the tubes should be.  Default 0.3.
 .TP 8
 .B \-duration \fIseconds\fP
-How long to leave each knot up.  Default 5 seconds.
+How long to leave each knot up.  Default 8 seconds.
 .TP 8
 .B \-wander | \-no-wander
 Whether the cubes should wander around the screen.
index c846bcc67cb5686f943c694cbebc0b5698fa8bbd..a7214d5174ecb097cd78e4afd2b82fd30f889166 100644 (file)
@@ -19,7 +19,7 @@ is seen in the title sequence of the Wachowski brothers' film,
 "The Matrix".
 
 Also see
-.BR xmatrix (1)
+.BR xmatrix (MANSUFFIX)
 for a 2D rendering of the similar effect that appeared on the
 computer monitors actually \fIin\fP the movie.
 .SH OPTIONS
@@ -85,7 +85,7 @@ to get the default host and display number.
 to get the name of a resource file that overrides the global resources
 stored in the RESOURCE_MANAGER property.
 .SH SEE ALSO
-.BR xmatrix (1),
+.BR xmatrix (MANSUFFIX),
 .BR X (1),
 .BR xscreensaver (1)
 .SH COPYRIGHT
index 096c7e60b3b25310588176442b30452e5b7e04f6..3cc027bdfecdf7f094cc06f5fbeff3821e2a72b4 100644 (file)
@@ -9,7 +9,8 @@ glplanet - rotating 3d texture-mapped planet.
 [\-root]
 [\-no-light]
 [\-delay \fInumber\fP]
-[\-bitmap \fIfile\fP]
+[\-image \fIfile\fP]
+[\-resolution \fInumber\fP]
 [\-wireframe]
 [\-fps]
 .SH DESCRIPTION
@@ -32,11 +33,14 @@ Draw on the root window.
 Use Flat Coloring.
 .TP 8
 .B \-delay \fInumber\fP
-Per-frame delay, in microseconds.  Default: 15000 (0.01 seconds.).
+Per-frame delay, in microseconds.  Default: 20000 (0.02 seconds.).
 .TP 8
-.B \-bitmap \fIfile\fP
+.B \-images \fIfile\fP
 The texture map to wrap around the planet's surface.
 .TP 8
+.B \-resolution
+The resolution of the planet. Default: 128.
+.TP 8
 .B \-wireframe
 Render in wireframe instead of solid.
 .TP 8
index 5f804e82014a54ed1b28cffefb0133a30123985f..516219ca5c3ce9a28b0813161ade02fbc09d1565 100644 (file)
@@ -113,7 +113,7 @@ stored in the RESOURCE_MANAGER property.
 .BR xscreensaver-demo (1),
 .BR xscreensaver-getimage (1),
 .BR xscreensaver (1),
-.BR carousel (1)
+.BR carousel (MANSUFFIX)
 .SH COPYRIGHT
 Copyright \(co 2003-2005 by Jamie Zawinski, based on an earlier version
 that was
index 0a8e2d86cba97cf8a2ed27677aff16841c7d2861..fadc561b659e52978dcf1f4b92a337c9a5530811 100644 (file)
@@ -1,6 +1,6 @@
 /* glsnake.c - OpenGL imitation of Rubik's Snake
  * 
- * (c) 2001-2003 Jamie Wilkinson <jaq@spacepants.org>
+ * (c) 2001-2005 Jamie Wilkinson <jaq@spacepants.org>
  * (c) 2001-2003 Andrew Bennetts <andrew@puzzling.org> 
  * (c) 2001-2003 Peter Aylett <peter@ylett.com>
  * 
 #define RIGHT   270.0
 
 #ifdef HAVE_GETTIMEOFDAY
-#ifdef GETTIMEOFDAY_TWO_ARGS
-# include <sys/time.h>
-# include <time.h>
-  typedef struct timeval snaketime;
-# define GETSECS(t) ((t).tv_sec)
-# define GETMSECS(t) ((t).tv_usec/1000)
-#else /* GETTIMEOFDAY_TWO_ARGS */
-# include <sys/time.h>
-# include <time.h>
-  typedef struct timeval snaketime;
-# define GETSECS(t) ((t).tv_sec)
-# define GETMSECS(t) ((t).tv_usec/1000)
-#endif
-#else /* HAVE_GETTIMEOFDAY */
-#ifdef HAVE_FTIME
-# include <sys/timeb.h>
-  typedef struct timeb snaketime;
-# define GETSECS(t) ((long)(t).time)
-# define GETMSECS(t) ((t).millitm/1000)
-#endif /* HAVE_FTIME */
+# ifdef GETTIMEOFDAY_TWO_ARGS
+
+#  include <sys/time.h>
+#  include <time.h>
+   typedef struct timeval snaketime;
+#  define GETSECS(t) ((t).tv_sec)
+#  define GETMSECS(t) ((t).tv_usec/1000)
+
+# else /* !GETTIMEOFDAY_TWO_ARGS */
+
+#  include <sys/time.h>
+#  include <time.h>
+   typedef struct timeval snaketime;
+#  define GETSECS(t) ((t).tv_sec)
+#  define GETMSECS(t) ((t).tv_usec/1000)
+
+# endif /* GETTIMEOFDAY_TWO_ARGS */
+
+#else /* !HAVE_GETTIMEOFDAY */
+# ifdef HAVE_FTIME
+
+#  include <sys/timeb.h>
+   typedef struct timeb snaketime;
+#  define GETSECS(t) ((long)(t).time)
+#  define GETMSECS(t) ((t).millitm/1000)
+
+# endif /* HAVE_FTIME */
 #endif /* HAVE_GETTIMEOFDAY */
 
 #include <math.h>
 #define DEF_ZANGVEL     0.14
 #define DEF_EXPLODE     0.03
 #define DEF_ANGVEL      1.0
-#define DEF_ACCEL       0.1
 #define DEF_STATICTIME  5000
 #define DEF_ALTCOLOUR   0
 #define DEF_TITLES      1
 #define DEF_INTERACTIVE 0
 #define DEF_ZOOM        25.0
 #define DEF_WIREFRAME   0
+#define DEF_TRANSPARENT 1
 #else
 /* xscreensaver options doobies prefer strings */
 #define DEF_YANGVEL     "0.10"
 #define DEF_ZANGVEL     "0.14"
 #define DEF_EXPLODE     "0.03"
 #define DEF_ANGVEL      "1.0"
-#define DEF_ACCEL       "0.1"
 #define DEF_STATICTIME  "5000"
 #define DEF_ALTCOLOUR   "False"
 #define DEF_TITLES      "True"
 #define DEF_INTERACTIVE "False"
 #define DEF_ZOOM        "25.0"
 #define DEF_WIREFRAME   "False"
+#define DEF_TRANSPARENT "True"
 #endif
 
 /* static variables */
 #endif
 
 static GLfloat explode;
-static GLfloat accel;
 static long statictime;
-static GLfloat yspin = 0;
-static GLfloat zspin = 0;
+static GLfloat yspin = 60.0;
+static GLfloat zspin = -45.0;
 static GLfloat yangvel;
 static GLfloat zangvel;
 static Bool altcolour;
 static Bool titles;
 static Bool interactive;
 static Bool wireframe;
+static Bool transparent;
 static GLfloat zoom;
 static GLfloat angvel;
 
@@ -138,7 +145,9 @@ extern XtAppContext app;
 #define DEFAULTS "*delay:          30000                      \n" \
                  "*count:          30                         \n" \
                  "*showFPS:        False                      \n" \
-                "*labelfont:   -*-times-bold-r-normal-*-180-*\n" \
+                 "*labelfont:   -*-times-bold-r-normal-*-180-*\n" \
+
+
 
 #undef countof
 #define countof(x) (sizeof((x))/sizeof((*x)))
@@ -149,23 +158,23 @@ extern XtAppContext app;
 static XrmOptionDescRec opts[] = {
     { "-explode", ".explode", XrmoptionSepArg, DEF_EXPLODE },
     { "-angvel", ".angvel", XrmoptionSepArg, DEF_ANGVEL },
-    { "-accel", ".accel", XrmoptionSepArg, DEF_ACCEL },
     { "-statictime", ".statictime", XrmoptionSepArg, DEF_STATICTIME },
     { "-yangvel", ".yangvel", XrmoptionSepArg, DEF_YANGVEL },
     { "-zangvel", ".zangvel", XrmoptionSepArg, DEF_ZANGVEL },
-    { "-altcolour", ".altcolour", XrmoptionNoArg, "True" },
-    { "-no-altcolour", ".altcolour", XrmoptionNoArg, "False" },
-    { "-titles", ".titles", XrmoptionNoArg, "True" },
-    { "-no-titles", ".titles", XrmoptionNoArg, "False" },
+    { "-altcolour", ".altcolour", XrmoptionNoArg, (caddr_t) "True" },
+    { "-no-altcolour", ".altcolour", XrmoptionNoArg, (caddr_t) "False" },
+    { "-titles", ".titles", XrmoptionNoArg, (caddr_t) "True" },
+    { "-no-titles", ".titles", XrmoptionNoArg, (caddr_t) "False" },
     { "-zoom", ".zoom", XrmoptionSepArg, DEF_ZOOM },
-    { "-wireframe", ".wireframe", XrmoptionNoArg, "true" },
-    { "-no-wireframe", ".wireframe", XrmoptionNoArg, "false" },
+    { "-wireframe", ".wireframe", XrmoptionNoArg, (caddr_t) "true" },
+    { "-no-wireframe", ".wireframe", XrmoptionNoArg, (caddr_t) "false" },
+    { "-transparent", ".transparent", XrmoptionNoArg, (caddr_t) "true" },
+    { "-no-transparent", ".transparent", XrmoptionNoArg, (caddr_t) "false" },
 };
 
 static argtype vars[] = {
     {&explode, "explode", "Explode", DEF_EXPLODE, t_Float},
     {&angvel, "angvel", "Angular Velocity", DEF_ANGVEL, t_Float},
-    {&accel, "accel", "Acceleration", DEF_ACCEL, t_Float},
     {&statictime, "statictime", "Static Time", DEF_STATICTIME, t_Int},
     {&yangvel, "yangvel", "Angular Velocity about Y axis", DEF_YANGVEL, t_Float},
     {&zangvel, "zangvel", "Angular Velocity about X axis", DEF_ZANGVEL, t_Float},
@@ -174,13 +183,14 @@ static argtype vars[] = {
     {&titles, "titles", "Titles", DEF_TITLES, t_Bool},
     {&zoom, "zoom", "Zoom", DEF_ZOOM, t_Float},
     {&wireframe, "wireframe", "Wireframe", DEF_WIREFRAME, t_Bool},
+    {&transparent, "transparent", "Transparent!", DEF_TRANSPARENT, t_Bool},
 };
 
-ModeSpecOpt sws_opts = {countof(opts), opts, countof(vars), vars, NULL};
+ModeSpecOpt sws_opts = {(int)countof(opts), opts, (int)countof(vars), vars, NULL};
 #endif
 
 struct model_s {
-    char * name;
+    const char * name;
     float node[NODE_COUNT];
 };
 
@@ -206,7 +216,7 @@ struct glsnake_cfg {
     /* snake metrics */
     int is_cyclic;
     int is_legal;
-    int last_turn;
+    float last_turn;
     int debug;
 
     /* the shape of the model */
@@ -216,14 +226,14 @@ struct glsnake_cfg {
     int selected;
 
     /* models */
-    int prev_model;
-    int next_model;
+    unsigned int prev_model;
+    unsigned int next_model;
 
     /* model morphing */
     int new_morph;
 
     /* colours */
-    float colour[2][3];
+    float colour[2][4];
     int next_colour;
     int prev_colour;
 
@@ -236,7 +246,7 @@ struct glsnake_cfg {
     int old_width, old_height;
 
     /* the id of the display lists for drawing a node */
-    int node_solid, node_wire;
+    GLuint node_solid, node_wire;
 
     /* is the window fullscreen? */
     int fullscreen;
@@ -246,20 +256,24 @@ struct glsnake_cfg {
 #define COLOUR_ACYCLIC 1
 #define COLOUR_INVALID 2
 #define COLOUR_AUTHENTIC 3
+#define COLOUR_ORIGLOGO 4
 
-float colour[][2][3] = {
+float colour[][2][4] = {
     /* cyclic - green */
-    { { 0.4, 0.8, 0.2 },
-      { 1.0, 1.0, 1.0 } },
+    { { 0.4, 0.8, 0.2, 0.6 },
+      { 1.0, 1.0, 1.0, 0.6 } },
     /* acyclic - blue */
-    { { 0.3, 0.1, 0.9 },
-      { 1.0, 1.0, 1.0 } },
+    { { 0.3, 0.1, 0.9, 0.6 },
+      { 1.0, 1.0, 1.0, 0.6 } },
     /* invalid - grey */
-    { { 0.3, 0.1, 0.9 },
-      { 1.0, 1.0, 1.0 } },
+    { { 0.3, 0.1, 0.9, 0.6 },
+      { 1.0, 1.0, 1.0, 0.6 } },
     /* authentic - purple and green */
-    { { 0.38, 0.0, 0.55 },
-      { 0.0,  0.5, 0.34 } }
+    { { 0.38, 0.0, 0.55, 0.7 },
+      { 0.0,  0.5, 0.34, 0.7 } },
+    /* old "authentic" colours from the logo */
+    { { 171/255.0, 0, 1.0, 1.0 },
+      { 46/255.0, 205/255.0, 227/255.0, 1.0 } }
 };
 
 struct model_s model[] = {
@@ -267,19 +281,19 @@ struct model_s model[] = {
     { "straight",
       { ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO,
        ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO,
-       ZERO, ZERO }
+       ZERO, ZERO, ZERO }
     },
     /* the models in the Rubik's snake manual */
-#define START_MODEL 1
     { "ball",
       { RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT,
        RIGHT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT,
-       RIGHT, LEFT, RIGHT, LEFT }
+       RIGHT, LEFT, RIGHT, LEFT, ZERO }
     },
+#define START_MODEL 2
     { "snow",
       { RIGHT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, LEFT, RIGHT,
        RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, LEFT, RIGHT, RIGHT, RIGHT,
-       RIGHT, LEFT, LEFT, LEFT }
+       RIGHT, LEFT, LEFT, LEFT, ZERO }
     },
     { "propellor",
       { ZERO, ZERO, ZERO, RIGHT, LEFT, RIGHT, ZERO, LEFT, ZERO, ZERO,
@@ -289,62 +303,64 @@ struct model_s model[] = {
     { "flamingo",
       { ZERO, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, PIN, RIGHT, RIGHT, PIN,
        RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, RIGHT, ZERO, ZERO,
-       ZERO, PIN }
+       ZERO, PIN, ZERO }
     },
     { "cat",
       { ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN,
        ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, ZERO,
-       ZERO }
+       ZERO, ZERO }
     },
     { "rooster",
       { ZERO, ZERO, PIN, PIN, ZERO, LEFT, ZERO, LEFT, RIGHT, PIN, RIGHT,
        ZERO, PIN, PIN, ZERO, RIGHT, PIN, RIGHT, LEFT, ZERO, LEFT, ZERO,
-       PIN }
+       PIN, ZERO }
     },
     /* These models were taken from Andrew and Peter's original snake.c
      * as well as some newer ones made up by Jamie, Andrew and Peter. */
     { "half balls",
       { LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT,
        LEFT, LEFT, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT,
-       RIGHT, LEFT, LEFT, LEFT }
+       RIGHT, LEFT, LEFT, LEFT, ZERO }
     },
     { "zigzag1",
       { RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, RIGHT, RIGHT,
        LEFT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT,
-       RIGHT, RIGHT, LEFT, LEFT }
+       RIGHT, RIGHT, LEFT, LEFT, ZERO }
     },
     { "zigzag2",
       { PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN,
-       ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN }
+       ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN,
+       ZERO }
     },
     { "zigzag3",
       { PIN, LEFT, PIN, LEFT, PIN, LEFT, PIN, LEFT, PIN, LEFT, PIN,
-       LEFT, PIN, LEFT, PIN, LEFT, PIN, LEFT, PIN, LEFT, PIN, LEFT, PIN }
+       LEFT, PIN, LEFT, PIN, LEFT, PIN, LEFT, PIN, LEFT, PIN, LEFT, PIN,
+       ZERO }
     },
     { "caterpillar",
       { RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT,
        LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN,
-       LEFT, LEFT }
+       LEFT, LEFT, ZERO }
     },
     { "bow",
       { RIGHT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT,
        LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT,
-       RIGHT, RIGHT, LEFT, LEFT }
+       RIGHT, RIGHT, LEFT, LEFT, ZERO }
     },
     { "turtle",
       { ZERO, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT,
        LEFT, RIGHT, LEFT, LEFT, PIN, LEFT, LEFT, LEFT, RIGHT, LEFT,
-       RIGHT, RIGHT, RIGHT }
+       RIGHT, RIGHT, RIGHT, ZERO }
     },
     { "basket",
       { RIGHT, PIN, ZERO, ZERO, PIN, LEFT, ZERO, LEFT, LEFT, ZERO,
        LEFT, PIN, ZERO, ZERO, PIN, RIGHT, PIN, LEFT, PIN, ZERO, ZERO,
-       PIN, LEFT }
+       PIN, LEFT, ZERO }
     },
     { "thing",
       { PIN, RIGHT, LEFT, RIGHT, RIGHT, LEFT, PIN, LEFT, RIGHT, LEFT,
        LEFT, RIGHT, PIN, RIGHT, LEFT, RIGHT, RIGHT, LEFT, PIN, LEFT,
-       RIGHT, LEFT, LEFT }
+       RIGHT, LEFT, LEFT, ZERO }
     },
     { "hexagon",
       { ZERO, ZERO, ZERO, ZERO, LEFT, ZERO, ZERO, RIGHT, ZERO, ZERO,
@@ -378,41 +394,41 @@ struct model_s model[] = {
     { "bird",
       { ZERO, ZERO, ZERO, ZERO, RIGHT, RIGHT, ZERO, LEFT, PIN, RIGHT,
        ZERO, RIGHT, ZERO, RIGHT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT,
-       LEFT, ZERO, PIN }
+       LEFT, ZERO, PIN, ZERO }
     },
     { "seal",
       { RIGHT, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, PIN, PIN, ZERO,
        LEFT, ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, LEFT, LEFT, PIN, RIGHT,
-       RIGHT, LEFT }
+       RIGHT, LEFT, ZERO }
     },
     { "dog",
       { ZERO, ZERO, ZERO, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, PIN,
-       ZERO, PIN, PIN, ZERO, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN }
+       ZERO, PIN, PIN, ZERO, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO }
     },
     { "frog",
       { RIGHT, RIGHT, LEFT, LEFT, RIGHT, PIN, RIGHT, PIN, LEFT, PIN,
        RIGHT, ZERO, LEFT, ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, LEFT,
-       RIGHT, LEFT, LEFT }
+       RIGHT, LEFT, LEFT, ZERO }
     },
     { "quavers",
       { LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, ZERO, ZERO, ZERO,
        RIGHT, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO, ZERO, LEFT, LEFT,
-       RIGHT, LEFT, RIGHT, RIGHT }
+       RIGHT, LEFT, RIGHT, RIGHT, ZERO }
     },
     { "fly",
       { LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, ZERO, PIN, ZERO, ZERO,
        LEFT, PIN, RIGHT, ZERO, ZERO, PIN, ZERO, LEFT, LEFT, RIGHT, LEFT,
-       RIGHT, RIGHT }
+       RIGHT, RIGHT, ZERO }
     },
     { "puppy",
       { ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO,
        RIGHT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT,
-       LEFT }
+       LEFT, ZERO, ZERO }
     },
     { "stars",
       { LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT,
        ZERO, ZERO, ZERO, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN,
-       RIGHT, LEFT }
+       RIGHT, LEFT, ZERO }
     },
     { "mountains",
       { RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN,
@@ -482,7 +498,7 @@ struct model_s model[] = {
     { "duck",
       { LEFT, PIN, LEFT, PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, LEFT,
        PIN, RIGHT, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, LEFT, PIN,
-       LEFT }
+       LEFT, ZERO }
     },
     { "prayer",
       { RIGHT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, ZERO, ZERO,
@@ -497,7 +513,7 @@ struct model_s model[] = {
     { "tie fighter",
       { PIN, LEFT, RIGHT, LEFT, LEFT, PIN, RIGHT, ZERO, RIGHT, LEFT,
        ZERO, PIN, LEFT, LEFT, RIGHT, RIGHT, RIGHT, PIN, LEFT, ZERO,
-       LEFT, RIGHT, ZERO }
+       LEFT, RIGHT, ZERO, ZERO }
     },
     { "Strong Arms",
       { PIN, PIN, ZERO, ZERO, PIN, ZERO, ZERO, RIGHT, ZERO, RIGHT,
@@ -507,7 +523,7 @@ struct model_s model[] = {
 
     /* the following modesl were created during the slug/compsoc codefest
      * febrray 2003 */
-    { "cool gegl",
+    { "cool looking gegl",
       { PIN, PIN, ZERO, ZERO, RIGHT, ZERO, ZERO, PIN, PIN, ZERO, LEFT,
        ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, LEFT, RIGHT, PIN, ZERO,
        ZERO, ZERO }
@@ -532,7 +548,7 @@ struct model_s model[] = {
        RIGHT, LEFT, RIGHT, ZERO, LEFT, RIGHT, LEFT, ZERO, RIGHT, LEFT,
        RIGHT, ZERO, LEFT, ZERO }
     },
-    { "arse gegl",
+    { "not very good (but accurate) gegl",
       { ZERO, PIN, PIN, ZERO, ZERO, ZERO, PIN, PIN, ZERO, LEFT, ZERO,
        PIN, PIN, ZERO, RIGHT, LEFT, ZERO, PIN, ZERO, PIN, PIN, ZERO,
        PIN, ZERO }
@@ -625,627 +641,635 @@ struct model_s model[] = {
 
     /* These models come from the website at 
      * http://www.geocities.com/stigeide/snake */
+#if 0
     { "Abstract",
-        { RIGHT, LEFT, RIGHT, ZERO, PIN, ZERO, LEFT, RIGHT, LEFT, PIN, ZERO, ZERO, PIN, LEFT, RIGHT, LEFT, ZERO, PIN, ZERO, RIGHT, LEFT, RIGHT, ZERO }
+      { RIGHT, LEFT, RIGHT, ZERO, PIN, ZERO, LEFT, RIGHT, LEFT, PIN, ZERO, ZERO, PIN, LEFT, RIGHT, LEFT, ZERO, PIN, ZERO, RIGHT, LEFT, RIGHT, ZERO, ZERO }
     },
-    { "AlanH1",
-        { LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, PIN, RIGHT, LEFT, PIN }
+#endif
+    { "toadstool",
+      { LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, PIN, RIGHT, LEFT, PIN, ZERO }
     },
     { "AlanH2",
-        { LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT }
+      { LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, ZERO }
     },
     { "AlanH3",
-        { LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN }
+      { LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, ZERO }
     },
     { "AlanH4",
-        { ZERO, ZERO, PIN, LEFT, RIGHT, LEFT, ZERO, RIGHT, LEFT, RIGHT, ZERO, PIN, ZERO, LEFT, RIGHT, LEFT, ZERO, RIGHT, LEFT, RIGHT, PIN, ZERO, ZERO }
+      { ZERO, ZERO, PIN, LEFT, RIGHT, LEFT, ZERO, RIGHT, LEFT, RIGHT, ZERO, PIN, ZERO, LEFT, RIGHT, LEFT, ZERO, RIGHT, LEFT, RIGHT, PIN, ZERO, ZERO, ZERO }
     },
     { "Alien",
-        { RIGHT, LEFT, RIGHT, PIN, ZERO, ZERO, PIN, RIGHT, LEFT, RIGHT, ZERO, PIN, PIN, ZERO, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, ZERO, PIN, PIN }
+      { RIGHT, LEFT, RIGHT, PIN, ZERO, ZERO, PIN, RIGHT, LEFT, RIGHT, ZERO, PIN, PIN, ZERO, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, ZERO, PIN, PIN, ZERO }
     },
     { "Angel",
-        { ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT }
+      { ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, ZERO }
     },
     { "AnotherFigure",
-        { LEFT, PIN, RIGHT, ZERO, ZERO, PIN, RIGHT, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, PIN, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, LEFT, PIN, ZERO }
+      { LEFT, PIN, RIGHT, ZERO, ZERO, PIN, RIGHT, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, PIN, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, LEFT, PIN, ZERO, ZERO }
     },
     { "Ball",
-        { LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT }
+        { LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT , ZERO }
     },
     { "Basket",
-        { ZERO, RIGHT, RIGHT, ZERO, RIGHT, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, LEFT, RIGHT, PIN, LEFT, LEFT, ZERO, LEFT }
+        { ZERO, RIGHT, RIGHT, ZERO, RIGHT, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, LEFT, RIGHT, PIN, LEFT, LEFT, ZERO, LEFT , ZERO }
     },
     { "Beetle",
-        { PIN, LEFT, RIGHT, ZERO, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, ZERO, LEFT, RIGHT, PIN, RIGHT }
+        { PIN, LEFT, RIGHT, ZERO, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, ZERO, LEFT, RIGHT, PIN, RIGHT , ZERO }
     },
-    { "Bone",
-        { PIN, PIN, LEFT, ZERO, PIN, PIN, ZERO, LEFT, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, RIGHT, PIN, PIN }
+    { "bone",
+        { PIN, PIN, LEFT, ZERO, PIN, PIN, ZERO, LEFT, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, RIGHT, PIN, PIN , ZERO }
     },
     { "Bow",
-        { LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT }
+        { LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT , ZERO }
     },
-    { "Bra",
-        { RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT }
+    { "bra",
+        { RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT , ZERO }
     },
-    { "BronchoSaurian",
-        { ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, PIN }
+    { "bronchosaurus",
+        { ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, PIN , ZERO }
     },
     { "Cactus",
-        { PIN, LEFT, ZERO, PIN, PIN, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, RIGHT, PIN, LEFT, ZERO, ZERO, RIGHT, PIN, LEFT, PIN, ZERO, ZERO }
+        { PIN, LEFT, ZERO, PIN, PIN, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, RIGHT, PIN, LEFT, ZERO, ZERO, RIGHT, PIN, LEFT, PIN, ZERO, ZERO , ZERO }
     },
     { "Camel",
-        { RIGHT, ZERO, PIN, RIGHT, PIN, RIGHT, ZERO, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, ZERO, RIGHT, PIN, RIGHT, ZERO, ZERO, LEFT }
+        { RIGHT, ZERO, PIN, RIGHT, PIN, RIGHT, ZERO, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, ZERO, RIGHT, PIN, RIGHT, ZERO, ZERO, LEFT , ZERO }
     },
     { "Candlestick",
-        { LEFT, PIN, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, RIGHT }
+        { LEFT, PIN, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, RIGHT , ZERO }
     },
     { "Cat",
-        { ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO }
+        { ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO , ZERO }
     },
     { "Cave",
-        { RIGHT, ZERO, ZERO, PIN, LEFT, ZERO, PIN, PIN, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, LEFT, LEFT, PIN, RIGHT, RIGHT, LEFT, PIN, ZERO, ZERO }
+        { RIGHT, ZERO, ZERO, PIN, LEFT, ZERO, PIN, PIN, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, LEFT, LEFT, PIN, RIGHT, RIGHT, LEFT, PIN, ZERO, ZERO , ZERO }
     },
     { "Chains",
-        { PIN, ZERO, ZERO, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN, ZERO }
+        { PIN, ZERO, ZERO, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN, ZERO , ZERO }
     },
     { "Chair",
-        { RIGHT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, RIGHT, ZERO, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, LEFT, RIGHT, LEFT, LEFT }
+        { RIGHT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, RIGHT, ZERO, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, LEFT, RIGHT, LEFT, LEFT , ZERO }
     },
     { "Chick",
-        { RIGHT, RIGHT, RIGHT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, RIGHT, RIGHT, PIN, LEFT, LEFT, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, LEFT, LEFT }
+        { RIGHT, RIGHT, RIGHT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, RIGHT, RIGHT, PIN, LEFT, LEFT, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, LEFT, LEFT , ZERO }
     },
     { "Clockwise",
-        { RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT }
+        { RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT , ZERO }
     },
-    { "Cobra",
-        { ZERO, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, LEFT, ZERO, LEFT, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO, RIGHT }
+    { "cobra",
+        { ZERO, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, LEFT, ZERO, LEFT, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO, RIGHT , ZERO }
     },
+#if 0
     { "Cobra2",
-        { LEFT, ZERO, PIN, ZERO, PIN, LEFT, ZERO, PIN, ZERO, LEFT, LEFT, PIN, RIGHT, RIGHT, ZERO, PIN, ZERO, RIGHT, PIN, ZERO, PIN, ZERO, RIGHT }
+        { LEFT, ZERO, PIN, ZERO, PIN, LEFT, ZERO, PIN, ZERO, LEFT, LEFT, PIN, RIGHT, RIGHT, ZERO, PIN, ZERO, RIGHT, PIN, ZERO, PIN, ZERO, RIGHT , ZERO }
     },
+#endif
     { "Cobra3",
-        { ZERO, LEFT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, ZERO, ZERO, LEFT, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, LEFT }
+        { ZERO, LEFT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, ZERO, ZERO, LEFT, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, LEFT , ZERO }
     },
     { "Compact1",
-        { ZERO, ZERO, PIN, ZERO, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO, PIN, PIN, ZERO, ZERO, LEFT, PIN }
+        { ZERO, ZERO, PIN, ZERO, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO, PIN, PIN, ZERO, ZERO, LEFT, PIN , ZERO }
     },
     { "Compact2",
-        { LEFT, PIN, RIGHT, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, RIGHT, ZERO, ZERO, ZERO }
+        { LEFT, PIN, RIGHT, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, RIGHT, ZERO, ZERO, ZERO , ZERO }
     },
     { "Compact3",
-        { ZERO, PIN, ZERO, PIN, PIN, ZERO, LEFT, PIN, RIGHT, ZERO, PIN, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO, LEFT, PIN, RIGHT, ZERO, PIN }
+        { ZERO, PIN, ZERO, PIN, PIN, ZERO, LEFT, PIN, RIGHT, ZERO, PIN, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO, LEFT, PIN, RIGHT, ZERO, PIN , ZERO }
     },
     { "Compact4",
-        { PIN, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO, PIN, PIN, ZERO, PIN, RIGHT, PIN, LEFT, PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, ZERO }
+        { PIN, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO, PIN, PIN, ZERO, PIN, RIGHT, PIN, LEFT, PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, ZERO , ZERO }
     },
     { "Compact5",
-        { LEFT, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, RIGHT, ZERO, RIGHT, PIN, RIGHT, PIN, LEFT }
+        { LEFT, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, RIGHT, ZERO, RIGHT, PIN, RIGHT, PIN, LEFT , ZERO }
     },
     { "Contact",
-        { PIN, ZERO, ZERO, PIN, LEFT, LEFT, PIN, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, PIN, RIGHT, RIGHT, PIN, ZERO, ZERO, PIN, RIGHT, PIN }
+        { PIN, ZERO, ZERO, PIN, LEFT, LEFT, PIN, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, PIN, RIGHT, RIGHT, PIN, ZERO, ZERO, PIN, RIGHT, PIN , ZERO }
     },
     { "Contact2",
-        { RIGHT, PIN, ZERO, LEFT, LEFT, PIN, RIGHT, RIGHT, ZERO, PIN, LEFT, PIN, RIGHT, PIN, ZERO, LEFT, LEFT, PIN, RIGHT, RIGHT, ZERO, PIN, LEFT }
+        { RIGHT, PIN, ZERO, LEFT, LEFT, PIN, RIGHT, RIGHT, ZERO, PIN, LEFT, PIN, RIGHT, PIN, ZERO, LEFT, LEFT, PIN, RIGHT, RIGHT, ZERO, PIN, LEFT , ZERO }
     },
     { "Cook",
-        { ZERO, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, RIGHT, LEFT, PIN, LEFT, ZERO, PIN, PIN, ZERO, LEFT, PIN, LEFT, RIGHT, ZERO, RIGHT, ZERO, PIN }
+        { ZERO, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, RIGHT, LEFT, PIN, LEFT, ZERO, PIN, PIN, ZERO, LEFT, PIN, LEFT, RIGHT, ZERO, RIGHT, ZERO, PIN , ZERO }
     },
     { "Counterclockwise",
-        { LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT }
+        { LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT , ZERO }
     },
     { "Cradle",
-        { LEFT, LEFT, ZERO, PIN, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, PIN, ZERO, RIGHT, RIGHT, LEFT, LEFT, ZERO, ZERO, RIGHT }
+        { LEFT, LEFT, ZERO, PIN, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, PIN, ZERO, RIGHT, RIGHT, LEFT, LEFT, ZERO, ZERO, RIGHT , ZERO }
     },
     { "Crankshaft",
-        { ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, PIN, LEFT, PIN, RIGHT, ZERO, ZERO, ZERO, PIN, RIGHT }
+        { ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, PIN, LEFT, PIN, RIGHT, ZERO, ZERO, ZERO, PIN, RIGHT , ZERO }
     },
     { "Cross",
-        { ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, ZERO, PIN, PIN, ZERO, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, PIN }
+        { ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, ZERO, PIN, PIN, ZERO, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, PIN , ZERO }
     },
     { "Cross2",
-        { ZERO, ZERO, PIN, PIN, ZERO, LEFT, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, ZERO, PIN, PIN, ZERO, LEFT, ZERO, ZERO, PIN, PIN, ZERO }
+        { ZERO, ZERO, PIN, PIN, ZERO, LEFT, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, ZERO, PIN, PIN, ZERO, LEFT, ZERO, ZERO, PIN, PIN, ZERO , ZERO }
     },
     { "Cross3",
-        { ZERO, ZERO, PIN, PIN, ZERO, LEFT, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, ZERO, PIN, PIN, ZERO, LEFT, ZERO, ZERO, PIN, PIN, ZERO }
+        { ZERO, ZERO, PIN, PIN, ZERO, LEFT, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, ZERO, PIN, PIN, ZERO, LEFT, ZERO, ZERO, PIN, PIN, ZERO, ZERO }
     },
     { "CrossVersion1",
-        { PIN, ZERO, RIGHT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, RIGHT, ZERO, PIN, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN }
+        { PIN, ZERO, RIGHT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, RIGHT, ZERO, PIN, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, ZERO }
     },
     { "CrossVersion2",
-        { RIGHT, LEFT, PIN, LEFT, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, LEFT, LEFT, PIN, LEFT, RIGHT }
+        { RIGHT, LEFT, PIN, LEFT, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, LEFT, LEFT, PIN, LEFT, RIGHT, ZERO }
     },
     { "Crown",
-        { LEFT, ZERO, PIN, ZERO, RIGHT, ZERO, ZERO, LEFT, ZERO, PIN, ZERO, RIGHT, LEFT, ZERO, PIN, ZERO, RIGHT, ZERO, ZERO, LEFT, ZERO, PIN, ZERO }
+        { LEFT, ZERO, PIN, ZERO, RIGHT, ZERO, ZERO, LEFT, ZERO, PIN, ZERO, RIGHT, LEFT, ZERO, PIN, ZERO, RIGHT, ZERO, ZERO, LEFT, ZERO, PIN, ZERO, ZERO }
     },
     { "DNAStrand",
-        { RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT }
+        { RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, ZERO }
     },
     { "Diamond",
-        { ZERO, RIGHT, ZERO, ZERO, LEFT, ZERO, ZERO, RIGHT, PIN, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, LEFT, ZERO, ZERO, RIGHT, ZERO, ZERO, LEFT }
+        { ZERO, RIGHT, ZERO, ZERO, LEFT, ZERO, ZERO, RIGHT, PIN, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, LEFT, ZERO, ZERO, RIGHT, ZERO, ZERO, LEFT, ZERO }
     },
     { "Dog",
-        { RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, ZERO, LEFT, RIGHT }
+        { RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, ZERO, LEFT, RIGHT, ZERO }
     },
     { "DogFace",
-        { ZERO, ZERO, PIN, PIN, ZERO, LEFT, LEFT, RIGHT, PIN, ZERO, PIN, PIN, ZERO, PIN, LEFT, RIGHT, RIGHT, ZERO, PIN, PIN, ZERO, ZERO, PIN }
+        { ZERO, ZERO, PIN, PIN, ZERO, LEFT, LEFT, RIGHT, PIN, ZERO, PIN, PIN, ZERO, PIN, LEFT, RIGHT, RIGHT, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO }
     },
     { "DoublePeak",
-        { ZERO, ZERO, PIN, ZERO, ZERO, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, LEFT, ZERO, PIN, ZERO, RIGHT, RIGHT, LEFT, PIN, LEFT, RIGHT }
+        { ZERO, ZERO, PIN, ZERO, ZERO, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, LEFT, ZERO, PIN, ZERO, RIGHT, RIGHT, LEFT, PIN, LEFT, RIGHT, ZERO }
     },
     { "DoubleRoof",
-        { ZERO, LEFT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, ZERO, LEFT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT }
+        { ZERO, LEFT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, ZERO, LEFT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, ZERO }
     },
-    { "DoubleToboggan",
-        { ZERO, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, LEFT, PIN, RIGHT, ZERO, ZERO, ZERO, ZERO, PIN }
+    { "txoboggan",
+        { ZERO, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, LEFT, PIN, RIGHT, ZERO, ZERO, ZERO, ZERO, PIN, ZERO }
     },
     { "Doubled",
-        { LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, LEFT, ZERO, LEFT, PIN, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT }
+        { LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, LEFT, ZERO, LEFT, PIN, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, ZERO }
     },
     { "Doubled1",
-        { LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, ZERO, RIGHT, ZERO, RIGHT, ZERO, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT }
+        { LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, ZERO, RIGHT, ZERO, RIGHT, ZERO, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, ZERO }
     },
     { "Doubled2",
-        { LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, LEFT, RIGHT, ZERO, RIGHT, LEFT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT }
+        { LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, LEFT, RIGHT, ZERO, RIGHT, LEFT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, ZERO }
     },
     { "DumblingSpoon",
-        { PIN, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, LEFT, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO, RIGHT, ZERO, ZERO, ZERO, ZERO }
+        { PIN, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, LEFT, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO, RIGHT, ZERO, ZERO, ZERO, ZERO, ZERO }
     },
     { "Embrace",
-        { PIN, ZERO, ZERO, PIN, RIGHT, PIN, LEFT, PIN, ZERO, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, ZERO, PIN, RIGHT, PIN, LEFT, PIN, ZERO }
+        { PIN, ZERO, ZERO, PIN, RIGHT, PIN, LEFT, PIN, ZERO, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, ZERO, PIN, RIGHT, PIN, LEFT, PIN, ZERO, ZERO }
     },
     { "EndlessBelt",
-        { ZERO, RIGHT, LEFT, ZERO, ZERO, ZERO, LEFT, RIGHT, ZERO, PIN, RIGHT, LEFT, ZERO, LEFT, RIGHT, LEFT, PIN, LEFT, RIGHT, LEFT, ZERO, LEFT, RIGHT }
+        { ZERO, RIGHT, LEFT, ZERO, ZERO, ZERO, LEFT, RIGHT, ZERO, PIN, RIGHT, LEFT, ZERO, LEFT, RIGHT, LEFT, PIN, LEFT, RIGHT, LEFT, ZERO, LEFT, RIGHT, ZERO }
     },
     { "Entrance",
-        { LEFT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT }
+        { LEFT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, ZERO }
     },
     { "Esthetic",
-        { LEFT, LEFT, PIN, RIGHT, RIGHT, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT }
+        { LEFT, LEFT, PIN, RIGHT, RIGHT, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, ZERO }
     },
-    { "Explotion",
-        { RIGHT, RIGHT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT }
+    { "Explosion",
+        { RIGHT, RIGHT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, ZERO }
     },
     { "F-ZeroXCar",
-        { RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, ZERO, ZERO, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT }
+        { RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, ZERO, ZERO, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, ZERO }
     },
     { "Face",
-        { ZERO, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, PIN, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT }
+        { ZERO, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, PIN, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, ZERO }
     },
     { "Fantasy",
-        { LEFT, LEFT, RIGHT, PIN, ZERO, RIGHT, ZERO, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, ZERO, LEFT, ZERO, PIN, LEFT, RIGHT, RIGHT, RIGHT, PIN }
+        { LEFT, LEFT, RIGHT, PIN, ZERO, RIGHT, ZERO, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, ZERO, LEFT, ZERO, PIN, LEFT, RIGHT, RIGHT, RIGHT, PIN, ZERO }
     },
     { "Fantasy1",
-        { PIN, ZERO, ZERO, PIN, PIN, ZERO, PIN, RIGHT, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, LEFT, PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN }
+        { PIN, ZERO, ZERO, PIN, PIN, ZERO, PIN, RIGHT, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, LEFT, PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO }
     },
     { "FaserGun",
-        { ZERO, ZERO, LEFT, RIGHT, PIN, RIGHT, ZERO, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, ZERO, RIGHT, PIN, RIGHT, RIGHT, ZERO, PIN }
+        { ZERO, ZERO, LEFT, RIGHT, PIN, RIGHT, ZERO, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, ZERO, RIGHT, PIN, RIGHT, RIGHT, ZERO, PIN, ZERO }
     },
     { "FelixW",
-        { ZERO, RIGHT, ZERO, PIN, LEFT, ZERO, LEFT, RIGHT, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, LEFT, RIGHT, ZERO, RIGHT, PIN, ZERO, LEFT, ZERO }
+        { ZERO, RIGHT, ZERO, PIN, LEFT, ZERO, LEFT, RIGHT, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, LEFT, RIGHT, ZERO, RIGHT, PIN, ZERO, LEFT, ZERO, ZERO }
     },
     { "Flamingo",
-        { ZERO, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, PIN, LEFT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, LEFT, ZERO, ZERO, ZERO, PIN }
+        { ZERO, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, PIN, LEFT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, LEFT, ZERO, ZERO, ZERO, PIN, ZERO }
     },
     { "FlatOnTheTop",
-        { ZERO, PIN, PIN, ZERO, PIN, RIGHT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO, PIN }
+        { ZERO, PIN, PIN, ZERO, PIN, RIGHT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO }
     },
     { "Fly",
-        { ZERO, LEFT, PIN, RIGHT, ZERO, PIN, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT }
+        { ZERO, LEFT, PIN, RIGHT, ZERO, PIN, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, ZERO }
     },
     { "Fountain",
-        { LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, LEFT, PIN, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, PIN, RIGHT, PIN }
+        { LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, LEFT, PIN, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, PIN, RIGHT, PIN, ZERO }
     },
     { "Frog",
-        { LEFT, LEFT, RIGHT, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO, RIGHT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, RIGHT, LEFT, RIGHT, RIGHT }
+        { LEFT, LEFT, RIGHT, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO, RIGHT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, RIGHT, LEFT, RIGHT, RIGHT, ZERO }
     },
     { "Frog2",
-        { LEFT, ZERO, LEFT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, LEFT, RIGHT, PIN, LEFT, LEFT, RIGHT, ZERO, RIGHT }
+        { LEFT, ZERO, LEFT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, LEFT, RIGHT, PIN, LEFT, LEFT, RIGHT, ZERO, RIGHT, ZERO }
     },
     { "Furby",
-        { PIN, ZERO, LEFT, PIN, RIGHT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, RIGHT, PIN, LEFT, ZERO, PIN, ZERO, ZERO, PIN }
+        { PIN, ZERO, LEFT, PIN, RIGHT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, RIGHT, PIN, LEFT, ZERO, PIN, ZERO, ZERO, PIN, ZERO }
     },
     { "Gate",
-        { ZERO, ZERO, PIN, ZERO, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, LEFT, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN, RIGHT, ZERO, PIN, PIN, ZERO }
+        { ZERO, ZERO, PIN, ZERO, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, LEFT, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN, RIGHT, ZERO, PIN, PIN, ZERO, ZERO }
     },
     { "Ghost",
-        { LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO, LEFT, RIGHT }
+        { LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO, LEFT, RIGHT, ZERO }
     },
     { "Globus",
-        { RIGHT, LEFT, ZERO, PIN, LEFT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, PIN, ZERO, RIGHT, LEFT, ZERO }
+        { RIGHT, LEFT, ZERO, PIN, LEFT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, PIN, ZERO, RIGHT, LEFT, ZERO, ZERO }
     },
     { "Grotto",
-        { PIN, PIN, ZERO, LEFT, RIGHT, LEFT, ZERO, PIN, RIGHT, PIN, LEFT, ZERO, ZERO, ZERO, ZERO, RIGHT, PIN, LEFT, PIN, ZERO, RIGHT, LEFT, RIGHT }
+        { PIN, PIN, ZERO, LEFT, RIGHT, LEFT, ZERO, PIN, RIGHT, PIN, LEFT, ZERO, ZERO, ZERO, ZERO, RIGHT, PIN, LEFT, PIN, ZERO, RIGHT, LEFT, RIGHT, ZERO }
     },
     { "H",
-        { PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, PIN, PIN, ZERO, PIN, LEFT, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, PIN, PIN, ZERO }
+        { PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, PIN, PIN, ZERO, PIN, LEFT, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, PIN, PIN, ZERO, ZERO }
     },
     { "HeadOfDevil",
-        { PIN, ZERO, RIGHT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN, RIGHT, LEFT, ZERO, ZERO }
+        { PIN, ZERO, RIGHT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN, RIGHT, LEFT, ZERO, ZERO, ZERO }
     },
     { "Heart",
-        { RIGHT, ZERO, ZERO, ZERO, PIN, LEFT, PIN, LEFT, RIGHT, RIGHT, ZERO, PIN, ZERO, LEFT, LEFT, RIGHT, PIN, RIGHT, PIN, ZERO, ZERO, ZERO, LEFT }
+        { RIGHT, ZERO, ZERO, ZERO, PIN, LEFT, PIN, LEFT, RIGHT, RIGHT, ZERO, PIN, ZERO, LEFT, LEFT, RIGHT, PIN, RIGHT, PIN, ZERO, ZERO, ZERO, LEFT, ZERO }
     },
     { "Heart2",
-        { ZERO, PIN, ZERO, ZERO, LEFT, ZERO, LEFT, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, RIGHT, ZERO, RIGHT, ZERO, ZERO, PIN, ZERO }
+        { ZERO, PIN, ZERO, ZERO, LEFT, ZERO, LEFT, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, RIGHT, ZERO, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO }
     },
     { "Hexagon",
-        { ZERO, ZERO, ZERO, ZERO, LEFT, ZERO, ZERO, RIGHT, ZERO, ZERO, ZERO, ZERO, LEFT, ZERO, ZERO, RIGHT, ZERO, ZERO, ZERO, ZERO, LEFT, ZERO, ZERO }
+        { ZERO, ZERO, ZERO, ZERO, LEFT, ZERO, ZERO, RIGHT, ZERO, ZERO, ZERO, ZERO, LEFT, ZERO, ZERO, RIGHT, ZERO, ZERO, ZERO, ZERO, LEFT, ZERO, ZERO, ZERO }
     },
     { "HoleInTheMiddle1",
-        { ZERO, LEFT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, LEFT, RIGHT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, RIGHT }
+        { ZERO, LEFT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, LEFT, RIGHT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, RIGHT, ZERO }
     },
     { "HoleInTheMiddle2",
-        { ZERO, LEFT, RIGHT, ZERO, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT, RIGHT, ZERO, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, RIGHT }
+        { ZERO, LEFT, RIGHT, ZERO, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT, RIGHT, ZERO, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, RIGHT, ZERO }
     },
     { "HouseBoat",
-        { RIGHT, RIGHT, PIN, LEFT, LEFT, LEFT, PIN, RIGHT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, RIGHT, PIN }
+        { RIGHT, RIGHT, PIN, LEFT, LEFT, LEFT, PIN, RIGHT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, RIGHT, PIN, ZERO }
     },
     { "HouseByHouse",
-        { LEFT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT }
+        { LEFT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, RIGHT, ZERO }
     },
     { "Infinity",
-        { LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT }
+        { LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, ZERO }
     },
     { "Integral",
-        { RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT }
+        { RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, ZERO }
     },
     { "Iron",
-        { ZERO, ZERO, ZERO, ZERO, PIN, RIGHT, ZERO, RIGHT, ZERO, ZERO, LEFT, PIN, RIGHT, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, RIGHT, ZERO, RIGHT }
+        { ZERO, ZERO, ZERO, ZERO, PIN, RIGHT, ZERO, RIGHT, ZERO, ZERO, LEFT, PIN, RIGHT, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, RIGHT, ZERO, RIGHT, ZERO }
     },
-    { "JustSquares",
-        { RIGHT, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, LEFT, PIN, RIGHT, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, LEFT }
+    { "just squares",
+        { RIGHT, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, LEFT, PIN, RIGHT, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, LEFT, ZERO }
     },
     { "Kink",
-        { ZERO, PIN, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO }
+        { ZERO, PIN, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO }
     },
     { "Knot",
-        { LEFT, LEFT, PIN, LEFT, ZERO, LEFT, RIGHT, LEFT, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, RIGHT, LEFT, RIGHT, ZERO, RIGHT, PIN, RIGHT, RIGHT, LEFT }
+        { LEFT, LEFT, PIN, LEFT, ZERO, LEFT, RIGHT, LEFT, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, RIGHT, LEFT, RIGHT, ZERO, RIGHT, PIN, RIGHT, RIGHT, LEFT, ZERO }
     },
     { "Leaf",
-        { ZERO, PIN, PIN, ZERO, ZERO, LEFT, ZERO, LEFT, ZERO, ZERO, PIN, ZERO, ZERO, RIGHT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO }
+        { ZERO, PIN, PIN, ZERO, ZERO, LEFT, ZERO, LEFT, ZERO, ZERO, PIN, ZERO, ZERO, RIGHT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO }
     },
     { "LeftAsRight",
-        { RIGHT, PIN, LEFT, RIGHT, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, RIGHT, LEFT, RIGHT, PIN, LEFT }
+        { RIGHT, PIN, LEFT, RIGHT, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, RIGHT, LEFT, RIGHT, PIN, LEFT, ZERO }
     },
     { "Long-necked",
-        { PIN, ZERO, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, ZERO, PIN, ZERO, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO, PIN, PIN, ZERO }
+        { PIN, ZERO, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, ZERO, PIN, ZERO, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO, PIN, PIN, ZERO, ZERO }
     },
-    { "LunaModule",
-        { PIN, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT }
+    { "lunar module",
+        { PIN, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT, ZERO }
     },
-    { "MagnifyingGlass",
-        { ZERO, ZERO, PIN, ZERO, LEFT, ZERO, PIN, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, ZERO, ZERO }
+    { "magnifying glass",
+        { ZERO, ZERO, PIN, ZERO, LEFT, ZERO, PIN, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, ZERO, ZERO, ZERO }
     },
     { "Mask",
-        { ZERO, ZERO, ZERO, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO, PIN, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT }
+        { ZERO, ZERO, ZERO, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO, PIN, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT, ZERO }
     },
     { "Microscope",
-        { PIN, PIN, ZERO, ZERO, PIN, ZERO, RIGHT, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, LEFT, ZERO, PIN, PIN, ZERO, PIN, PIN }
+        { PIN, PIN, ZERO, ZERO, PIN, ZERO, RIGHT, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, LEFT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO }
     },
     { "Mirror",
-        { PIN, RIGHT, LEFT, ZERO, PIN, PIN, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO, LEFT, RIGHT, PIN, RIGHT, ZERO, PIN, PIN, ZERO }
+        { PIN, RIGHT, LEFT, ZERO, PIN, PIN, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO, LEFT, RIGHT, PIN, RIGHT, ZERO, PIN, PIN, ZERO, ZERO }
     },
     { "MissPiggy",
-        { ZERO, LEFT, LEFT, PIN, RIGHT, ZERO, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, ZERO, LEFT, PIN, RIGHT, RIGHT, ZERO, RIGHT }
+        { ZERO, LEFT, LEFT, PIN, RIGHT, ZERO, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, ZERO, LEFT, PIN, RIGHT, RIGHT, ZERO, RIGHT, ZERO }
     },
     { "Mole",
-        { ZERO, RIGHT, ZERO, RIGHT, LEFT, RIGHT, PIN, ZERO, LEFT, PIN, RIGHT, ZERO, PIN, LEFT, RIGHT, LEFT, ZERO, LEFT, ZERO, RIGHT, RIGHT, PIN, LEFT }
+        { ZERO, RIGHT, ZERO, RIGHT, LEFT, RIGHT, PIN, ZERO, LEFT, PIN, RIGHT, ZERO, PIN, LEFT, RIGHT, LEFT, ZERO, LEFT, ZERO, RIGHT, RIGHT, PIN, LEFT, ZERO }
     },
     { "Monk",
-        { LEFT, ZERO, PIN, PIN, ZERO, LEFT, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT }
+        { LEFT, ZERO, PIN, PIN, ZERO, LEFT, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, ZERO }
     },
     { "Mountain",
-        { ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, LEFT, PIN, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO }
+        { ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, LEFT, PIN, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, ZERO }
     },
-    { "Mountains",
-        { ZERO, PIN, ZERO, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, ZERO, PIN, ZERO }
+    { "mountains",
+        { ZERO, PIN, ZERO, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, ZERO, PIN, ZERO, ZERO }
     },
     { "MouseWithoutTail",
-        { ZERO, PIN, PIN, ZERO, LEFT, ZERO, PIN, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO }
+        { ZERO, PIN, PIN, ZERO, LEFT, ZERO, PIN, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, ZERO }
     },
-    { "Mushroom",
-        { PIN, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, ZERO, LEFT, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, LEFT, ZERO, PIN }
+    { "mushroom",
+        { PIN, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, ZERO, LEFT, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, LEFT, ZERO, PIN, ZERO }
     },
-    { "Necklace",
-        { ZERO, ZERO, LEFT, ZERO, ZERO, ZERO, LEFT, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, RIGHT, ZERO, ZERO, ZERO, RIGHT, ZERO, ZERO }
+    { "necklace",
+        { ZERO, ZERO, LEFT, ZERO, ZERO, ZERO, LEFT, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, RIGHT, ZERO, ZERO, ZERO, RIGHT, ZERO, ZERO, ZERO }
     },
     { "NestledAgainst",
-        { LEFT, ZERO, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT }
+        { LEFT, ZERO, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, ZERO }
     },
     { "NoClue",
-        { ZERO, RIGHT, PIN, LEFT, LEFT, LEFT, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, ZERO, RIGHT, RIGHT, RIGHT, PIN, LEFT, ZERO }
+        { ZERO, RIGHT, PIN, LEFT, LEFT, LEFT, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, ZERO, RIGHT, RIGHT, RIGHT, PIN, LEFT, ZERO, ZERO }
     },
     { "Noname",
-        { LEFT, PIN, RIGHT, PIN, RIGHT, ZERO, PIN, ZERO, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, RIGHT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, LEFT }
+        { LEFT, PIN, RIGHT, PIN, RIGHT, ZERO, PIN, ZERO, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, RIGHT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, ZERO }
     },
     { "Obelisk",
-        { PIN, ZERO, ZERO, ZERO, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, ZERO, ZERO, ZERO }
+        { PIN, ZERO, ZERO, ZERO, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, ZERO, ZERO, ZERO, ZERO }
     },
     { "Ostrich",
-        { ZERO, ZERO, PIN, PIN, ZERO, LEFT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, PIN }
+        { ZERO, ZERO, PIN, PIN, ZERO, LEFT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, PIN, ZERO }
     },
     { "Ostrich2",
-        { PIN, PIN, ZERO, PIN, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO }
+        { PIN, PIN, ZERO, PIN, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO }
     },
-    { "PairOfGlasses",
-        { ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, LEFT, ZERO, PIN, ZERO, RIGHT, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO }
+    { "pair of glasses",
+        { ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, LEFT, ZERO, PIN, ZERO, RIGHT, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO }
     },
     { "Parrot",
-        { ZERO, ZERO, ZERO, ZERO, RIGHT, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, RIGHT, ZERO, RIGHT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, LEFT, ZERO, PIN }
+        { ZERO, ZERO, ZERO, ZERO, RIGHT, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, RIGHT, ZERO, RIGHT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, LEFT, ZERO, PIN, ZERO }
     },
     { "Penis",
-        { PIN, PIN, RIGHT, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, LEFT, PIN, PIN }
+        { PIN, PIN, RIGHT, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, LEFT, PIN, PIN, ZERO }
     },
     { "PictureCommingSoon",
-        { LEFT, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, RIGHT, PIN, RIGHT, LEFT, ZERO, RIGHT, RIGHT }
+        { LEFT, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, RIGHT, PIN, RIGHT, LEFT, ZERO, RIGHT, RIGHT, ZERO }
     },
     { "Pitti",
-        { LEFT, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, RIGHT }
+        { LEFT, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, RIGHT, ZERO }
     },
     { "Plait",
-        { LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, LEFT }
+        { LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, LEFT, ZERO }
     },
     { "Platform",
-        { RIGHT, PIN, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, PIN, PIN, ZERO, PIN, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, RIGHT }
+        { RIGHT, PIN, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, PIN, PIN, ZERO, PIN, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO }
     },
     { "PodRacer",
-        { ZERO, PIN, ZERO, PIN, RIGHT, PIN, ZERO, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, PIN, PIN, ZERO, ZERO, LEFT, ZERO, PIN, LEFT }
+        { ZERO, PIN, ZERO, PIN, RIGHT, PIN, ZERO, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, PIN, PIN, ZERO, ZERO, LEFT, ZERO, PIN, LEFT, ZERO }
     },
+#if 0
     { "Pokemon",
-        { LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT }
+        { LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, ZERO }
     },
+#endif
     { "Prawn",
-        { RIGHT, PIN, ZERO, PIN, RIGHT, ZERO, PIN, PIN, ZERO, ZERO, LEFT, PIN, RIGHT, ZERO, ZERO, PIN, PIN, ZERO, LEFT, PIN, ZERO, PIN, LEFT }
+        { RIGHT, PIN, ZERO, PIN, RIGHT, ZERO, PIN, PIN, ZERO, ZERO, LEFT, PIN, RIGHT, ZERO, ZERO, PIN, PIN, ZERO, LEFT, PIN, ZERO, PIN, LEFT, ZERO }
     },
     { "Propeller",
-        { ZERO, ZERO, ZERO, RIGHT, ZERO, LEFT, RIGHT, LEFT, ZERO, ZERO, ZERO, RIGHT, ZERO, LEFT, RIGHT, LEFT, ZERO, ZERO, ZERO, RIGHT, ZERO, LEFT, RIGHT }
+        { ZERO, ZERO, ZERO, RIGHT, ZERO, LEFT, RIGHT, LEFT, ZERO, ZERO, ZERO, RIGHT, ZERO, LEFT, RIGHT, LEFT, ZERO, ZERO, ZERO, RIGHT, ZERO, LEFT, RIGHT, ZERO }
     },
     { "Pyramid",
-        { ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, PIN, RIGHT, LEFT, LEFT, LEFT, PIN, RIGHT, RIGHT, RIGHT, LEFT }
+        { ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, PIN, RIGHT, LEFT, LEFT, LEFT, PIN, RIGHT, RIGHT, RIGHT, LEFT, ZERO }
     },
     { "QuarterbackTiltedAndReadyToHut",
-        { PIN, ZERO, RIGHT, RIGHT, LEFT, RIGHT, PIN, RIGHT, LEFT, RIGHT, ZERO, PIN, ZERO, LEFT, RIGHT, LEFT, PIN, LEFT, RIGHT, LEFT, LEFT, ZERO, PIN }
+        { PIN, ZERO, RIGHT, RIGHT, LEFT, RIGHT, PIN, RIGHT, LEFT, RIGHT, ZERO, PIN, ZERO, LEFT, RIGHT, LEFT, PIN, LEFT, RIGHT, LEFT, LEFT, ZERO, PIN, ZERO }
     },
     { "Ra",
-        { PIN, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, ZERO, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT }
+        { PIN, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, ZERO, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, ZERO }
     },
     { "Rattlesnake",
-        { LEFT, ZERO, LEFT, ZERO, LEFT, ZERO, LEFT, LEFT, ZERO, LEFT, ZERO, LEFT, ZERO, LEFT, RIGHT, ZERO, PIN, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT }
+        { LEFT, ZERO, LEFT, ZERO, LEFT, ZERO, LEFT, LEFT, ZERO, LEFT, ZERO, LEFT, ZERO, LEFT, RIGHT, ZERO, PIN, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, ZERO }
     },
     { "Revelation",
-        { ZERO, ZERO, ZERO, PIN, ZERO, ZERO, PIN, RIGHT, LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, PIN, ZERO, ZERO, PIN }
+        { ZERO, ZERO, ZERO, PIN, ZERO, ZERO, PIN, RIGHT, LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, PIN, ZERO, ZERO, PIN, ZERO }
     },
     { "Revolution1",
-        { LEFT, LEFT, PIN, RIGHT, ZERO, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, ZERO, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT }
+        { LEFT, LEFT, PIN, RIGHT, ZERO, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, ZERO, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT, ZERO }
     },
     { "Ribbon",
-        { RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT }
+        { RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, ZERO }
     },
     { "Rocket",
-        { RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, RIGHT, ZERO, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, ZERO, LEFT, ZERO, LEFT, PIN, RIGHT, ZERO, LEFT }
+        { RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, RIGHT, ZERO, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, ZERO, LEFT, ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, ZERO }
     },
     { "Roofed",
-        { ZERO, LEFT, PIN, RIGHT, ZERO, PIN, LEFT, ZERO, PIN, ZERO, RIGHT, PIN, ZERO, LEFT, PIN, RIGHT, ZERO, PIN, LEFT, ZERO, PIN, ZERO, RIGHT }
+        { ZERO, LEFT, PIN, RIGHT, ZERO, PIN, LEFT, ZERO, PIN, ZERO, RIGHT, PIN, ZERO, LEFT, PIN, RIGHT, ZERO, PIN, LEFT, ZERO, PIN, ZERO, RIGHT, ZERO }
     },
     { "Roofs",
-        { PIN, PIN, RIGHT, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, RIGHT, ZERO, LEFT, PIN, PIN }
+        { PIN, PIN, RIGHT, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, RIGHT, ZERO, LEFT, PIN, PIN, ZERO }
     },
     { "RowHouses",
-        { RIGHT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT }
+        { RIGHT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO }
     },
     { "Sculpture",
-        { RIGHT, LEFT, PIN, ZERO, ZERO, ZERO, LEFT, RIGHT, LEFT, PIN, ZERO, ZERO, PIN, LEFT, RIGHT, LEFT, ZERO, ZERO, ZERO, PIN, LEFT, RIGHT, LEFT }
+        { RIGHT, LEFT, PIN, ZERO, ZERO, ZERO, LEFT, RIGHT, LEFT, PIN, ZERO, ZERO, PIN, LEFT, RIGHT, LEFT, ZERO, ZERO, ZERO, PIN, LEFT, RIGHT, LEFT, ZERO }
     },
     { "Seal",
-        { LEFT, LEFT, LEFT, PIN, RIGHT, RIGHT, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, PIN, PIN, ZERO, LEFT }
+        { LEFT, LEFT, LEFT, PIN, RIGHT, RIGHT, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, PIN, PIN, ZERO, LEFT, ZERO }
     },
     { "Seal2",
-        { RIGHT, PIN, ZERO, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, PIN, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO }
+        { RIGHT, PIN, ZERO, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, PIN, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO, ZERO }
     },
     { "Sheep",
-        { RIGHT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, LEFT, LEFT, RIGHT, LEFT }
+        { RIGHT, LEFT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, LEFT, LEFT, RIGHT, LEFT, ZERO }
     },
     { "Shelter",
-        { LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, RIGHT }
+        { LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, RIGHT, ZERO }
     },
     { "Ship",
-        { PIN, RIGHT, LEFT, LEFT, LEFT, LEFT, PIN, RIGHT, RIGHT, RIGHT, RIGHT, LEFT, ZERO, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, LEFT, ZERO, PIN, PIN }
+        { PIN, RIGHT, LEFT, LEFT, LEFT, LEFT, PIN, RIGHT, RIGHT, RIGHT, RIGHT, LEFT, ZERO, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, LEFT, ZERO, PIN, PIN, ZERO }
     },
     { "Shpongle",
-        { LEFT, RIGHT, ZERO, RIGHT, LEFT, RIGHT, ZERO, RIGHT, LEFT, RIGHT, ZERO, RIGHT, LEFT, RIGHT, ZERO, RIGHT, LEFT, RIGHT, ZERO, RIGHT, LEFT, RIGHT, ZERO }
+        { LEFT, RIGHT, ZERO, RIGHT, LEFT, RIGHT, ZERO, RIGHT, LEFT, RIGHT, ZERO, RIGHT, LEFT, RIGHT, ZERO, RIGHT, LEFT, RIGHT, ZERO, RIGHT, LEFT, RIGHT, ZERO, ZERO }
     },
     { "Slide",
-        { LEFT, RIGHT, LEFT, RIGHT, ZERO, LEFT, RIGHT, LEFT, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, RIGHT, LEFT }
+        { LEFT, RIGHT, LEFT, RIGHT, ZERO, LEFT, RIGHT, LEFT, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, RIGHT, LEFT, ZERO }
     },
     { "SmallShip",
-        { ZERO, LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT, RIGHT, ZERO, LEFT, RIGHT, ZERO, LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT, RIGHT, ZERO, LEFT }
+        { ZERO, LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT, RIGHT, ZERO, LEFT, RIGHT, ZERO, LEFT, RIGHT, ZERO, RIGHT, LEFT, ZERO, LEFT, RIGHT, ZERO, LEFT, ZERO }
     },
     { "SnakeReadyToStrike",
-        { LEFT, ZERO, LEFT, ZERO, LEFT, ZERO, LEFT, RIGHT, ZERO, RIGHT, ZERO, RIGHT, ZERO, LEFT, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, LEFT }
+        { LEFT, ZERO, LEFT, ZERO, LEFT, ZERO, LEFT, RIGHT, ZERO, RIGHT, ZERO, RIGHT, ZERO, LEFT, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, LEFT, ZERO }
     },
     { "Snakes14",
-        { RIGHT, RIGHT, PIN, ZERO, RIGHT, LEFT, RIGHT, ZERO, ZERO, ZERO, RIGHT, PIN, LEFT, PIN, ZERO, PIN, LEFT, PIN, RIGHT, ZERO, ZERO, LEFT, RIGHT }
+        { RIGHT, RIGHT, PIN, ZERO, RIGHT, LEFT, RIGHT, ZERO, ZERO, ZERO, RIGHT, PIN, LEFT, PIN, ZERO, PIN, LEFT, PIN, RIGHT, ZERO, ZERO, LEFT, RIGHT, ZERO }
     },
     { "Snakes15",
-        { ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, PIN, LEFT, PIN, RIGHT, ZERO, ZERO, ZERO, PIN, RIGHT }
+        { ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, PIN, LEFT, PIN, RIGHT, ZERO, ZERO, ZERO, PIN, RIGHT, ZERO }
     },
     { "Snakes18",
-        { PIN, PIN, LEFT, PIN, LEFT, PIN, RIGHT, ZERO, RIGHT, PIN, RIGHT, ZERO, RIGHT, PIN, LEFT, PIN, RIGHT, ZERO, PIN, PIN, ZERO, ZERO, PIN }
+        { PIN, PIN, LEFT, PIN, LEFT, PIN, RIGHT, ZERO, RIGHT, PIN, RIGHT, ZERO, RIGHT, PIN, LEFT, PIN, RIGHT, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO }
     },
     { "Snowflake",
-        { LEFT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, RIGHT }
+        { LEFT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, RIGHT, ZERO }
     },
     { "Snowman",
-        { ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO }
+        { ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO }
     },
     { "Source",
-        { PIN, RIGHT, ZERO, PIN, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN }
+        { PIN, RIGHT, ZERO, PIN, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, ZERO }
     },
     { "Spaceship",
-        { PIN, PIN, RIGHT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, PIN }
+        { PIN, PIN, RIGHT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, PIN, RIGHT, PIN, PIN, ZERO }
     },
     { "Spaceship2",
-        { PIN, PIN, LEFT, PIN, LEFT, PIN, RIGHT, ZERO, PIN, PIN, ZERO, LEFT, PIN, RIGHT, ZERO, PIN, ZERO, LEFT, PIN, LEFT, LEFT, PIN, PIN }
+        { PIN, PIN, LEFT, PIN, LEFT, PIN, RIGHT, ZERO, PIN, PIN, ZERO, LEFT, PIN, RIGHT, ZERO, PIN, ZERO, LEFT, PIN, LEFT, LEFT, PIN, PIN, ZERO }
     },
     { "Speedboat",
-        { LEFT, ZERO, ZERO, LEFT, PIN, RIGHT, ZERO, ZERO, LEFT, ZERO, ZERO, PIN, ZERO, ZERO, RIGHT, ZERO, ZERO, LEFT, PIN, RIGHT, ZERO, ZERO, RIGHT }
+        { LEFT, ZERO, ZERO, LEFT, PIN, RIGHT, ZERO, ZERO, LEFT, ZERO, ZERO, PIN, ZERO, ZERO, RIGHT, ZERO, ZERO, LEFT, PIN, RIGHT, ZERO, ZERO, RIGHT, ZERO }
     },
     { "Speedboat2",
-        { PIN, RIGHT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, PIN, ZERO, RIGHT, PIN, LEFT }
+        { PIN, RIGHT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, LEFT, LEFT, RIGHT, RIGHT, LEFT, PIN, ZERO, RIGHT, PIN, LEFT, ZERO }
     },
     { "Spider",
-        { RIGHT, RIGHT, ZERO, ZERO, LEFT, RIGHT, LEFT, PIN, ZERO, LEFT, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, RIGHT, LEFT, RIGHT, ZERO, ZERO, LEFT }
+        { RIGHT, RIGHT, ZERO, ZERO, LEFT, RIGHT, LEFT, PIN, ZERO, LEFT, ZERO, PIN, PIN, ZERO, RIGHT, ZERO, PIN, RIGHT, LEFT, RIGHT, ZERO, ZERO, LEFT, ZERO }
     },
     { "Spitzbergen",
-        { PIN, LEFT, ZERO, RIGHT, RIGHT, LEFT, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, ZERO, PIN, RIGHT, LEFT, LEFT, ZERO }
+        { PIN, LEFT, ZERO, RIGHT, RIGHT, LEFT, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, ZERO, PIN, RIGHT, LEFT, LEFT, ZERO, ZERO }
     },
     { "Square",
-        { ZERO, ZERO, LEFT, LEFT, PIN, RIGHT, RIGHT, ZERO, ZERO, LEFT, LEFT, PIN, RIGHT, RIGHT, ZERO, ZERO, LEFT, LEFT, PIN, RIGHT, RIGHT, ZERO, ZERO }
+        { ZERO, ZERO, LEFT, LEFT, PIN, RIGHT, RIGHT, ZERO, ZERO, LEFT, LEFT, PIN, RIGHT, RIGHT, ZERO, ZERO, LEFT, LEFT, PIN, RIGHT, RIGHT, ZERO, ZERO, ZERO }
     },
     { "SquareHole",
-        { PIN, ZERO, PIN, ZERO, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, PIN }
+        { PIN, ZERO, PIN, ZERO, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, PIN, ZERO }
     },
     { "Stage",
-        { RIGHT, ZERO, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, ZERO }
+        { RIGHT, ZERO, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, LEFT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, ZERO, ZERO }
     },
     { "Stairs",
-        { ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO }
+        { ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, ZERO }
     },
     { "Stairs2",
-        { ZERO, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO }
+        { ZERO, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, ZERO }
     },
     { "Straight",
-        { ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO }
+        { ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO }
     },
     { "Swan",
-        { ZERO, PIN, ZERO, PIN, LEFT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, RIGHT }
+        { ZERO, PIN, ZERO, PIN, LEFT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, PIN, LEFT, PIN, LEFT, RIGHT, ZERO }
     },
     { "Swan2",
-        { PIN, ZERO, PIN, RIGHT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, PIN, PIN }
+        { PIN, ZERO, PIN, RIGHT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, PIN, PIN, ZERO }
     },
     { "Swan3",
-        { PIN, PIN, ZERO, ZERO, ZERO, RIGHT, ZERO, RIGHT, ZERO, ZERO, LEFT, PIN, RIGHT, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, RIGHT, ZERO, RIGHT }
+        { PIN, PIN, ZERO, ZERO, ZERO, RIGHT, ZERO, RIGHT, ZERO, ZERO, LEFT, PIN, RIGHT, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, RIGHT, ZERO, RIGHT, ZERO }
     },
     { "Symbol",
-        { RIGHT, RIGHT, PIN, ZERO, PIN, PIN, ZERO, PIN, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, ZERO, PIN, PIN, ZERO, PIN, LEFT, LEFT, RIGHT }
+        { RIGHT, RIGHT, PIN, ZERO, PIN, PIN, ZERO, PIN, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, ZERO, PIN, PIN, ZERO, PIN, LEFT, LEFT, RIGHT, ZERO }
     },
     { "Symmetry",
-        { RIGHT, ZERO, LEFT, RIGHT, LEFT, ZERO, LEFT, RIGHT, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, LEFT, RIGHT, ZERO, RIGHT, LEFT, RIGHT, ZERO, LEFT }
+        { RIGHT, ZERO, LEFT, RIGHT, LEFT, ZERO, LEFT, RIGHT, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, LEFT, RIGHT, ZERO, RIGHT, LEFT, RIGHT, ZERO, LEFT, ZERO }
     },
     { "Symmetry2",
-        { ZERO, PIN, LEFT, LEFT, PIN, ZERO, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, PIN, LEFT }
+        { ZERO, PIN, LEFT, LEFT, PIN, ZERO, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, PIN, LEFT, ZERO }
     },
     { "TableFireworks",
-        { ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, RIGHT, PIN, RIGHT, LEFT, ZERO, RIGHT, PIN }
+        { ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, RIGHT, PIN, RIGHT, LEFT, ZERO, RIGHT, PIN, ZERO }
     },
     { "Tapering",
-        { ZERO, ZERO, RIGHT, LEFT, PIN, LEFT, ZERO, PIN, PIN, ZERO, LEFT, PIN, RIGHT, ZERO, PIN, PIN, ZERO, RIGHT, PIN, RIGHT, LEFT, ZERO, ZERO }
+        { ZERO, ZERO, RIGHT, LEFT, PIN, LEFT, ZERO, PIN, PIN, ZERO, LEFT, PIN, RIGHT, ZERO, PIN, PIN, ZERO, RIGHT, PIN, RIGHT, LEFT, ZERO, ZERO, ZERO }
     },
     { "TaperingTurned",
-        { ZERO, ZERO, RIGHT, LEFT, PIN, LEFT, ZERO, PIN, PIN, ZERO, LEFT, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, RIGHT, PIN, RIGHT, LEFT, ZERO, ZERO }
+        { ZERO, ZERO, RIGHT, LEFT, PIN, LEFT, ZERO, PIN, PIN, ZERO, LEFT, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, RIGHT, PIN, RIGHT, LEFT, ZERO, ZERO, ZERO }
     },
     { "TeaLightStick",
-        { RIGHT, ZERO, PIN, PIN, ZERO, LEFT, RIGHT, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN }
+        { RIGHT, ZERO, PIN, PIN, ZERO, LEFT, RIGHT, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, ZERO }
     },
-    { "Tent",
-        { RIGHT, ZERO, ZERO, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, ZERO, ZERO }
+    { "thighmaster",
+        { RIGHT, ZERO, ZERO, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO, RIGHT, LEFT, ZERO, ZERO, RIGHT, LEFT, ZERO, ZERO, ZERO }
     },
     { "Terraces",
-        { RIGHT, LEFT, ZERO, RIGHT, LEFT, PIN, LEFT, LEFT, PIN, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, PIN, RIGHT, RIGHT, PIN, RIGHT, LEFT }
+        { RIGHT, LEFT, ZERO, RIGHT, LEFT, PIN, LEFT, LEFT, PIN, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, PIN, RIGHT, RIGHT, PIN, RIGHT, LEFT, ZERO }
     },
     { "Terrier",
-        { PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO }
+        { PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, ZERO }
     },
     { "Three-Legged",
-        { RIGHT, ZERO, LEFT, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, RIGHT, ZERO, PIN, ZERO, LEFT, ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, RIGHT, ZERO, LEFT }
+        { RIGHT, ZERO, LEFT, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, RIGHT, ZERO, PIN, ZERO, LEFT, ZERO, LEFT, PIN, RIGHT, ZERO, LEFT, RIGHT, ZERO, LEFT, ZERO }
     },
     { "ThreePeaks",
-        { RIGHT, ZERO, ZERO, RIGHT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO, ZERO, LEFT }
+        { RIGHT, ZERO, ZERO, RIGHT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO, ZERO, LEFT, ZERO }
     },
     { "ToTheFront",
-        { ZERO, PIN, RIGHT, LEFT, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, PIN, PIN, ZERO, LEFT, LEFT, PIN, ZERO, LEFT, RIGHT, ZERO, PIN, ZERO, LEFT }
+        { ZERO, PIN, RIGHT, LEFT, LEFT, LEFT, PIN, RIGHT, LEFT, ZERO, PIN, PIN, ZERO, LEFT, LEFT, PIN, ZERO, LEFT, RIGHT, ZERO, PIN, ZERO, LEFT, ZERO }
     },
     { "Top",
-        { PIN, LEFT, LEFT, PIN, LEFT, ZERO, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, PIN, RIGHT, PIN, RIGHT, RIGHT, PIN, ZERO }
+        { PIN, LEFT, LEFT, PIN, LEFT, ZERO, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, PIN, RIGHT, PIN, RIGHT, RIGHT, PIN, ZERO, ZERO }
     },
     { "Transport",
-        { PIN, ZERO, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, ZERO, ZERO }
+        { PIN, ZERO, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO }
     },
     { "Triangle",
-        { ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, RIGHT, LEFT, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, RIGHT, LEFT, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, RIGHT }
+        { ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, RIGHT, LEFT, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, RIGHT, LEFT, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, RIGHT, ZERO }
     },
     { "Tripple",
-        { PIN, ZERO, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, ZERO, PIN, LEFT, PIN, RIGHT, PIN, ZERO, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN }
+        { PIN, ZERO, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, PIN, ZERO, PIN, LEFT, PIN, RIGHT, PIN, ZERO, PIN, LEFT, PIN, LEFT, PIN, RIGHT, PIN, ZERO }
     },
+#if 0
     { "Turtle",
-        { RIGHT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, PIN, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, ZERO, LEFT, RIGHT, ZERO }
+        { RIGHT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, PIN, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, ZERO, LEFT, RIGHT, ZERO, ZERO }
     },
+#endif
     { "Twins",
-        { ZERO, PIN, ZERO, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, PIN, ZERO, ZERO, PIN, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, ZERO, PIN, ZERO, ZERO }
+        { ZERO, PIN, ZERO, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, PIN, ZERO, ZERO, PIN, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, ZERO, PIN, ZERO, ZERO, ZERO }
     },
     { "TwoSlants",
-        { ZERO, PIN, ZERO, ZERO, PIN, PIN, ZERO, PIN, ZERO, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO, ZERO, RIGHT, PIN }
+        { ZERO, PIN, ZERO, ZERO, PIN, PIN, ZERO, PIN, ZERO, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO, ZERO, RIGHT, PIN, ZERO }
     },
     { "TwoWings",
-        { PIN, LEFT, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, LEFT, ZERO }
+        { PIN, LEFT, ZERO, RIGHT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, LEFT, ZERO, ZERO }
     },
     { "UFO",
-        { LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, PIN, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT }
+        { LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, LEFT, PIN, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, ZERO }
     },
-    { "USSEnterprice",
-        { LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, ZERO, PIN, PIN, ZERO, RIGHT, LEFT, ZERO, PIN, PIN, ZERO, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, ZERO }
+    { "USS Enterprise",
+        { LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, ZERO, PIN, PIN, ZERO, RIGHT, LEFT, ZERO, PIN, PIN, ZERO, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, ZERO, ZERO }
     },
     { "UpAndDown",
-        { ZERO, PIN, ZERO, PIN, ZERO, PIN, LEFT, PIN, RIGHT, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, LEFT, PIN, RIGHT, PIN, ZERO }
+        { ZERO, PIN, ZERO, PIN, ZERO, PIN, LEFT, PIN, RIGHT, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, PIN, LEFT, PIN, RIGHT, PIN, ZERO, ZERO }
     },
     { "Upright",
-        { ZERO, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, PIN, ZERO, ZERO, LEFT, PIN, RIGHT, ZERO, ZERO, PIN, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, ZERO }
+        { ZERO, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, PIN, ZERO, ZERO, LEFT, PIN, RIGHT, ZERO, ZERO, PIN, RIGHT, RIGHT, LEFT, RIGHT, LEFT, LEFT, ZERO, ZERO }
     },
     { "Upside-down",
-        { PIN, ZERO, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, RIGHT, LEFT, LEFT, PIN, RIGHT, RIGHT, LEFT, LEFT, ZERO, PIN, PIN, ZERO, ZERO, ZERO, PIN }
+        { PIN, ZERO, ZERO, ZERO, PIN, PIN, ZERO, RIGHT, RIGHT, LEFT, LEFT, PIN, RIGHT, RIGHT, LEFT, LEFT, ZERO, PIN, PIN, ZERO, ZERO, ZERO, PIN, ZERO }
     },
     { "Valley",
-        { ZERO, RIGHT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, RIGHT, ZERO, PIN, ZERO, LEFT, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO }
+        { ZERO, RIGHT, PIN, LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, RIGHT, ZERO, PIN, ZERO, LEFT, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, PIN, LEFT, ZERO, ZERO }
     },
     { "Viaduct",
-        { PIN, RIGHT, PIN, LEFT, PIN, ZERO, ZERO, PIN, RIGHT, ZERO, RIGHT, RIGHT, ZERO, RIGHT, PIN, ZERO, ZERO, PIN, LEFT, PIN, RIGHT, PIN, ZERO }
+        { PIN, RIGHT, PIN, LEFT, PIN, ZERO, ZERO, PIN, RIGHT, ZERO, RIGHT, RIGHT, ZERO, RIGHT, PIN, ZERO, ZERO, PIN, LEFT, PIN, RIGHT, PIN, ZERO, ZERO }
     },
     { "View",
-        { ZERO, RIGHT, PIN, LEFT, PIN, RIGHT, ZERO, ZERO, RIGHT, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, LEFT, ZERO, ZERO, LEFT, PIN, RIGHT, PIN, LEFT }
+        { ZERO, RIGHT, PIN, LEFT, PIN, RIGHT, ZERO, ZERO, RIGHT, PIN, LEFT, LEFT, RIGHT, RIGHT, PIN, LEFT, ZERO, ZERO, LEFT, PIN, RIGHT, PIN, LEFT, ZERO }
     },
     { "Waterfall",
-        { LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT }
+        { LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, ZERO }
     },
-    { "WindWheel",
-        { PIN, RIGHT, RIGHT, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, ZERO }
+    { "windwheel",
+        { PIN, RIGHT, RIGHT, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, ZERO, ZERO }
     },
     { "Window",
-        { PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO }
+        { PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, ZERO }
     },
     { "WindowToTheWorld",
-        { PIN, LEFT, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, RIGHT, PIN, LEFT, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO }
+        { PIN, LEFT, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, RIGHT, PIN, LEFT, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO, PIN, ZERO, ZERO }
     },
     { "Windshield",
-        { PIN, PIN, ZERO, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, ZERO, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, ZERO, PIN, PIN, ZERO, PIN }
+        { PIN, PIN, ZERO, RIGHT, PIN, LEFT, LEFT, PIN, RIGHT, ZERO, PIN, ZERO, LEFT, PIN, RIGHT, RIGHT, PIN, LEFT, ZERO, PIN, PIN, ZERO, PIN, ZERO }
     },
     { "WingNut",
-        { ZERO, ZERO, ZERO, ZERO, PIN, RIGHT, RIGHT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, RIGHT, RIGHT, PIN, ZERO, ZERO, ZERO, ZERO }
+        { ZERO, ZERO, ZERO, ZERO, PIN, RIGHT, RIGHT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, RIGHT, RIGHT, PIN, ZERO, ZERO, ZERO, ZERO, ZERO }
     },
     { "Wings2",
-        { RIGHT, ZERO, PIN, ZERO, LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, ZERO, PIN, ZERO }
+        { RIGHT, ZERO, PIN, ZERO, LEFT, PIN, RIGHT, PIN, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, PIN, LEFT, PIN, RIGHT, ZERO, PIN, ZERO, ZERO }
     },
     { "WithoutName",
-        { PIN, RIGHT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, ZERO, PIN, RIGHT, PIN, LEFT, PIN, ZERO, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN }
+        { PIN, RIGHT, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, ZERO, PIN, RIGHT, PIN, LEFT, PIN, ZERO, PIN, RIGHT, RIGHT, PIN, LEFT, LEFT, PIN, ZERO }
     },
     { "Wolf",
-        { ZERO, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, ZERO, PIN, PIN, ZERO, ZERO, ZERO, PIN }
+        { ZERO, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, ZERO, PIN, PIN, ZERO, ZERO, ZERO, PIN, ZERO }
     },
     { "X",
-        { LEFT, ZERO, ZERO, PIN, LEFT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, PIN, PIN, ZERO, LEFT, RIGHT, PIN, LEFT, LEFT, RIGHT, PIN, ZERO, ZERO }
+        { LEFT, ZERO, ZERO, PIN, LEFT, RIGHT, RIGHT, PIN, LEFT, RIGHT, ZERO, PIN, PIN, ZERO, LEFT, RIGHT, PIN, LEFT, LEFT, RIGHT, PIN, ZERO, ZERO, ZERO }
     },
 };
 
-int models = (sizeof(model) / sizeof(struct model_s));
+size_t models = sizeof(model) / sizeof(struct model_s);
 
 #define VOFFSET 0.045
 
@@ -1345,31 +1369,48 @@ void calc_rotation();
 inline void ui_mousedrag();
 #endif
 
+GLfloat white_light[] = { 1.0, 1.0, 1.0, 1.0 };
+GLfloat lmodel_ambient[] = { 0.2, 0.2, 0.2, 1.0 };
+GLfloat mat_specular[] = { 0.1, 0.1, 0.1, 1.0 };
+GLfloat mat_shininess[] = { 20.0 };
+
 void gl_init(
 #ifndef HAVE_GLUT
             ModeInfo * mi
 #endif
             ) {
-    float light_pos[][3] = {{0.0, 0.0, 20.0}, {0.0, 20.0, 0.0}};
-    float light_dir[][3] = {{0.0, 0.0,-20.0}, {0.0,-20.0, 0.0}};
+    float light_pos[][3] = {{0.0, 10.0, 20.0}, {0.0, 20.0, -1.0}};
+    float light_dir[][3] = {{0.0, -10.0,-20.0}, {0.0,-20.0, 1.0}};
 
-    glClearColor(0.0, 0.0, 0.0, 0.0);
     glEnable(GL_DEPTH_TEST);
     glShadeModel(GL_SMOOTH);
     glCullFace(GL_BACK);
-    glEnable(GL_CULL_FACE);
+    /*glEnable(GL_CULL_FACE);*/
     glEnable(GL_NORMALIZE);
+    if (transparent) {
+       glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+       glEnable(GL_BLEND);
+    }
 
     if (!wireframe) {
-       glColor3f(1.0, 1.0, 1.0);
+       /*glColor4f(1.0, 1.0, 1.0, 1.0);*/
        glLightfv(GL_LIGHT0, GL_POSITION, light_pos[0]);
        glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, light_dir[0]);
+       glLightfv(GL_LIGHT0, GL_DIFFUSE, white_light);
+       /*glLightfv(GL_LIGHT0, GL_SPECULAR, white_light);*/
+#if 1
        glLightfv(GL_LIGHT1, GL_POSITION, light_pos[1]);
        glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION, light_dir[1]);
+       glLightfv(GL_LIGHT1, GL_DIFFUSE, white_light);
+       glLightfv(GL_LIGHT1, GL_SPECULAR, white_light);
+#endif
+       glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
+       glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
+       glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
        glEnable(GL_LIGHTING);
        glEnable(GL_LIGHT0);
        glEnable(GL_LIGHT1);
-       glEnable(GL_COLOR_MATERIAL);
+       /*glEnable(GL_COLOR_MATERIAL);*/
     }
 }
 
@@ -1389,8 +1430,7 @@ void gettime(snaketime *t)
 #endif /* !HAVE_GETTIMEOFDAY */
 }
 
-
-void start_morph(int model_index, int immediate);
+void start_morph(unsigned int model_index, int immediate);
 
 /* wot initialises it */
 void glsnake_init(
@@ -1607,9 +1647,12 @@ void draw_title(
 #endif
 
     /* draw some text */
-    glPushAttrib(GL_TRANSFORM_BIT | GL_ENABLE_BIT);
+    glPushAttrib((GLbitfield) GL_TRANSFORM_BIT | GL_ENABLE_BIT);
     glDisable(GL_LIGHTING);
     glDisable(GL_DEPTH_TEST);
+    if (transparent) {
+       glDisable(GL_BLEND);
+    }
     glMatrixMode(GL_PROJECTION);
     glPushMatrix();
     glLoadIdentity();
@@ -1617,23 +1660,38 @@ void draw_title(
     glPushMatrix();
     glLoadIdentity();
 #ifdef HAVE_GLUT
-    gluOrtho2D(0, glc->width, 0, glc->height);
+    gluOrtho2D((GLdouble) 0., (GLdouble) glc->width, (GLdouble) 0., (GLdouble) glc->height);
 #else
-    gluOrtho2D(0, mi->xgwa.width, 0, mi->xgwa.height);
+    gluOrtho2D((GLdouble) 0., (GLdouble) mi->xgwa.width, (GLdouble) 0., (GLdouble) mi->xgwa.height);
 #endif
-    glColor3f(1.0, 1.0, 1.0);
+    glColor4f(1.0, 1.0, 1.0, 1.0);
     {
        char interactstr[] = "interactive";
-       char * s;
+       const char * s;
+#ifdef HAVE_GLUT
+       int w;
+#endif
+       
        if (interactive)
            s = interactstr;
        else
            s = model[glc->next_model].name;
-
-        print_gl_string (mi->dpy, bp->font, bp->font_list,
-                         mi->xgwa.width, mi->xgwa.height,
-                         10, mi->xgwa.height - 10,
-                         s);
+       
+#ifdef HAVE_GLUT
+       {
+           unsigned int i = 0;
+           
+           w = glutBitmapLength(GLUT_BITMAP_HELVETICA_12, (const unsigned char *) s);
+           glRasterPos2f((GLfloat) (glc->width - w - 3), 4.0);
+           while (s[i] != '\0')
+               glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, s[i++]);
+       }
+#else
+       print_gl_string(mi->dpy, bp->font, bp->font_list,
+                       mi->xgwa.width, mi->xgwa.height,
+                       10.0, (float) mi->xgwa.height - 10.0,
+                       s);
+#endif
     }
     glPopMatrix();
     glMatrixMode(GL_PROJECTION);
@@ -1669,7 +1727,7 @@ void glsnake_reshape(
     glViewport(0, 0, (GLint) w, (GLint) h);
     glMatrixMode(GL_PROJECTION);
     glLoadIdentity();
-    gluPerspective(zoom, w/(GLfloat)h, 0.05, 100.0);
+    gluPerspective(zoom, (GLdouble) w / (GLdouble) h, 0.05, 100.0);
     gluLookAt(0.0, 0.0, 20.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
     glMatrixMode(GL_MODELVIEW);
     /*gluLookAt(0.0, 0.0, 20.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);*/
@@ -1791,7 +1849,7 @@ float morph_percent(void) {
             * target */
            ang_diff = fabs(glc->node[i] -
                            model[glc->next_model].node[i]);
-           if (ang_diff > 180.0) ang_diff = 180 - ang_diff;
+           if (ang_diff > 180.0) ang_diff = 180.0 - ang_diff;
            /* if it's the biggest so far, record it */
            if (rot > rot_max) rot_max = rot;
            if (ang_diff > ang_diff_max) ang_diff_max = ang_diff;
@@ -1820,14 +1878,16 @@ void morph_colour(void) {
     glc->colour[0][0] = colour[glc->prev_colour][0][0] * compct + colour[glc->next_colour][0][0] * percent;
     glc->colour[0][1] = colour[glc->prev_colour][0][1] * compct + colour[glc->next_colour][0][1] * percent;
     glc->colour[0][2] = colour[glc->prev_colour][0][2] * compct + colour[glc->next_colour][0][2] * percent;
+    glc->colour[0][3] = colour[glc->prev_colour][0][3] * compct + colour[glc->next_colour][0][3] * percent;
 
     glc->colour[1][0] = colour[glc->prev_colour][1][0] * compct + colour[glc->next_colour][1][0] * percent;
     glc->colour[1][1] = colour[glc->prev_colour][1][1] * compct + colour[glc->next_colour][1][1] * percent;
     glc->colour[1][2] = colour[glc->prev_colour][1][2] * compct + colour[glc->next_colour][1][2] * percent;
+    glc->colour[1][3] = colour[glc->prev_colour][1][3] * compct + colour[glc->next_colour][1][3] * percent;
 }
 
 /* Start morph process to this model */
-void start_morph(int model_index, int immediate) {
+void start_morph(unsigned int model_index, int immediate) {
     /* if immediate, don't bother morphing, go straight to the next model */
     if (immediate) {
        int i;
@@ -1854,9 +1914,11 @@ void start_morph(int model_index, int immediate) {
        glc->colour[0][0] = colour[glc->next_colour][0][0];
        glc->colour[0][1] = colour[glc->next_colour][0][1];
        glc->colour[0][2] = colour[glc->next_colour][0][2];
+       glc->colour[0][3] = colour[glc->next_colour][0][3];
        glc->colour[1][0] = colour[glc->next_colour][1][0];
        glc->colour[1][1] = colour[glc->next_colour][1][1];
        glc->colour[1][2] = colour[glc->next_colour][1][2];
+       glc->colour[1][3] = colour[glc->next_colour][1][3];
     }
     glc->morphing = 1;
 
@@ -1899,7 +1961,7 @@ float morph(long iter_msec) {
 #ifdef HAVE_GLUT
 void glsnake_idle();
 
-void restore_idle(int value)
+void restore_idle(int v __attribute__((__unused__)))
 {
     glutIdleFunc(glsnake_idle);
 }
@@ -2048,7 +2110,7 @@ void glsnake_display(
 #endif
     
     /* clear the buffer */
-    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+    glClear((GLbitfield) GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
     
     /* go into the modelview stack */
     glMatrixMode(GL_MODELVIEW);
@@ -2080,9 +2142,9 @@ void glsnake_display(
        /*printf("ang = %f\n", ang);*/
        
        glTranslatef(0.5, 0.5, 0.5);            /* move to center */
-       glRotatef(90, 0.0, 0.0, -1.0);          /* reorient  */
+       glRotatef(90.0, 0.0, 0.0, -1.0);        /* reorient  */
        glTranslatef(1.0 + explode, 0.0, 0.0);  /* move to new pos. */
-       glRotatef(180 + ang, 1.0, 0.0, 0.0);    /* pivot to new angle */
+       glRotatef(180.0 + ang, 1.0, 0.0, 0.0);  /* pivot to new angle */
        glTranslatef(-0.5, -0.5, -0.5);         /* return from center */
 
        glGetFloatv(GL_MODELVIEW_MATRIX, rotmat);
@@ -2113,7 +2175,7 @@ void glsnake_display(
     glTranslatef(-com[0], -com[1], -com[2]);
 
     glDisable(GL_LIGHTING);
-    glColor3f(1.0, 0.0, 0.0);
+    glColor4f(1.0, 0.0, 0.0, 1.0);
     glBegin(GL_LINE_STRIP);
     for (i = 0; i < NODE_COUNT - 1; i++) {
        glVertex3fv(positions[i]);
@@ -2141,9 +2203,13 @@ void glsnake_display(
        /* choose a colour for this node */
        if ((i == glc->selected || i == glc->selected+1) && interactive)
            /* yellow */
-           glColor3f(1.0, 1.0, 0.0);
-       else
-           glColor3fv(glc->colour[(i+1)%2]);
+           glColor4f(1.0, 1.0, 0.0, 1.0);
+       else {
+           /*glColor4fv(glc->colour[(i+1)%2]);*/
+           glMaterialfv(GL_FRONT, GL_AMBIENT, glc->colour[(i+1)%2]);
+           glMaterialfv(GL_FRONT, GL_DIFFUSE, glc->colour[(i+1)%2]);
+           /*glMaterialfv(GL_FRONT, GL_SPECULAR, glc->colour[(i+1)%2]);*/
+       }
 
        /* draw the node */
        if (wireframe)
@@ -2157,9 +2223,9 @@ void glsnake_display(
        ang = glc->node[i];
        
        glTranslatef(0.5, 0.5, 0.5);            /* move to center */
-       glRotatef(90, 0.0, 0.0, -1.0);          /* reorient  */
+       glRotatef(90.0, 0.0, 0.0, -1.0);        /* reorient  */
        glTranslatef(1.0 + explode, 0.0, 0.0);  /* move to new pos. */
-       glRotatef(180 + ang, 1.0, 0.0, 0.0);    /* pivot to new angle */
+       glRotatef(180.0 + ang, 1.0, 0.0, 0.0);  /* pivot to new angle */
        glTranslatef(-0.5, -0.5, -0.5);         /* return from center */
     }
 
@@ -2197,8 +2263,8 @@ int main(int argc, char ** argv) {
     glc = malloc(sizeof(struct glsnake_cfg));
     memset(glc, 0, sizeof(struct glsnake_cfg));
 
-    glc->width = 320;
-    glc->height = 240;
+    glc->width = 640;
+    glc->height = 480;
     
     ui_init(&argc, argv);
 
@@ -2234,7 +2300,7 @@ float cumquat[4] = {0.0,0.0,0.0,0.0}, oldquat[4] = {0.0,0.0,0.0,0.1};
 float rotation[16];
 
 /* mouse drag vectors: start and end */
-float m_s[3], m_e[3];
+float mouse_start[3], mouse_end[3];
 
 /* dragging boolean */
 int dragging = 0;
@@ -2272,9 +2338,7 @@ inline void ui_mousedrag() {
     glMultMatrixf(rotation);
 }
 
-void ui_keyboard(unsigned char c, int x, int y) {
-    int i;
-    
+void ui_keyboard(unsigned char c, int x __attribute__((__unused__)), int y __attribute__((__unused__))) {
     switch (c) {
       case 27:  /* ESC */
       case 'q':
@@ -2300,18 +2364,18 @@ void ui_keyboard(unsigned char c, int x, int y) {
        break;
       case ',':
        /* previous model */
-       glc->next_model = (glc->next_model + models - 1) % models;
+       glc->next_model = (glc->next_model + (int)models - 1) % (int)models;
        start_morph(glc->next_model, 0);
        
        /* Reset glc->last_morph time */
        gettime(&glc->last_morph);                      
        break;
       case '+':
-       angvel += DEF_ACCEL;
+       angvel += DEF_ANGVEL;
        break;
       case '-':
-       if (angvel > DEF_ACCEL)
-           angvel -= DEF_ACCEL;
+       if (angvel > DEF_ANGVEL)
+           angvel -= DEF_ANGVEL;
        break;
       case 'i':
        if (interactive) {
@@ -2330,6 +2394,14 @@ void ui_keyboard(unsigned char c, int x, int y) {
            glEnable(GL_LIGHTING);
        glutPostRedisplay();
        break;
+      case 'a':
+       transparent = 1 - transparent;
+       if (transparent) {
+           glEnable(GL_BLEND);
+       } else {
+           glDisable(GL_BLEND);
+       }
+       break;
       case 'p':
        if (glc->paused) {
            /* unpausing, reset last_iteration and last_morph time */
@@ -2341,21 +2413,25 @@ void ui_keyboard(unsigned char c, int x, int y) {
       case 'd':
        /* dump the current model so we can add it! */
        printf("# %s\nnoname:\t", model[glc->next_model].name);
-       for (i = 0; i < NODE_COUNT; i++) {
-           if (glc->node[i] == ZERO)
-               printf("Z");
-           else if (glc->node[i] == LEFT)
-               printf("L");
-           else if (glc->node[i] == PIN)
-               printf("P");
-           else if (glc->node[i] == RIGHT)
-               printf("R");
-           /*
-             else
-             printf("%f", node[i].curAngle);
-           */
-           if (i < NODE_COUNT - 1)
-               printf(" ");
+       {
+           int i;
+           
+           for (i = 0; i < NODE_COUNT; i++) {
+               if (glc->node[i] == ZERO)
+                   printf("Z");
+               else if (glc->node[i] == LEFT)
+                   printf("L");
+               else if (glc->node[i] == PIN)
+                   printf("P");
+               else if (glc->node[i] == RIGHT)
+                   printf("R");
+               /*
+                 else
+                 printf("%f", node[i].curAngle);
+               */
+               if (i < NODE_COUNT - 1)
+                   printf(" ");
+           }
        }
        printf("\n");
        break;
@@ -2375,7 +2451,7 @@ void ui_keyboard(unsigned char c, int x, int y) {
        if (interactive || glc->paused)
            glutPostRedisplay();
        break;
-      case 'a':
+      case 'c':
        altcolour = 1 - altcolour;
        break;
       case 'z':
@@ -2391,8 +2467,7 @@ void ui_keyboard(unsigned char c, int x, int y) {
     }
 }
 
-void ui_special(int key, int x, int y) {
-    int i;
+void ui_special(int key, int x __attribute__((__unused__)), int y __attribute__((__unused__))) {
     float *destAngle = &(model[glc->next_model].node[glc->selected]);
     int unknown_key = 0;
 
@@ -2431,11 +2506,11 @@ void ui_mouse(int button, int state, int x, int y) {
        switch (state) {
          case GLUT_DOWN:
            dragging = 1;
-           m_s[0] = M_SQRT1_2 * 
+           mouse_start[0] = M_SQRT1_2 * 
                (x - (glc->width / 2.0)) / (glc->width / 2.0);
-           m_s[1] = M_SQRT1_2 * 
+           mouse_start[1] = M_SQRT1_2 * 
                ((glc->height / 2.0) - y) / (glc->height / 2.0);
-           m_s[2] = sqrt(1-(m_s[0]*m_s[0]+m_s[1]*m_s[1]));
+           mouse_start[2] = sqrt((double)(1-(mouse_start[0]*mouse_start[0]+mouse_start[1]*mouse_start[1])));
            break;
          case GLUT_UP:
            dragging = 0;
@@ -2458,25 +2533,25 @@ void ui_motion(int x, int y) {
     if (dragging) {
        /* construct the motion end vector from the x,y position on the
         * window */
-       m_e[0] = (x - (glc->width/ 2.0)) / (glc->width / 2.0);
-       m_e[1] = ((glc->height / 2.0) - y) / (glc->height / 2.0);
+       mouse_end[0] = M_SQRT1_2 * (x - (glc->width/ 2.0)) / (glc->width / 2.0);
+       mouse_end[1] = M_SQRT1_2 * ((glc->height / 2.0) - y) / (glc->height / 2.0);
        /* calculate the normal of the vector... */
-       norm = m_e[0] * m_e[0] + m_e[1] * m_e[1];
+       norm = mouse_end[0] * mouse_end[0] + mouse_end[1] * mouse_end[1];
        /* check if norm is outside the sphere and wraparound if necessary */
        if (norm > 1.0) {
-           m_e[0] = -m_e[0];
-           m_e[1] = -m_e[1];
-           m_e[2] = sqrt(norm - 1);
+           mouse_end[0] = -mouse_end[0];
+           mouse_end[1] = -mouse_end[1];
+           mouse_end[2] = sqrt(norm - 1);
        } else {
            /* the z value comes from projecting onto an elliptical spheroid */
-           m_e[2] = sqrt(1 - norm);
+           mouse_end[2] = sqrt(1 - norm);
        }
 
-       /* now here, build a quaternion from m_s and m_e */
-       q[0] = m_s[1] * m_e[2] - m_s[2] * m_e[1];
-       q[1] = m_s[2] * m_e[0] - m_s[0] * m_e[2];
-       q[2] = m_s[0] * m_e[1] - m_s[1] * m_e[0];
-       q[3] = m_s[0] * m_e[0] + m_s[1] * m_e[1] + m_s[2] * m_e[2];
+       /* now here, build a quaternion from mouse_start and mouse_end */
+       q[0] = mouse_start[1] * mouse_end[2] - mouse_start[2] * mouse_end[1];
+       q[1] = mouse_start[2] * mouse_end[0] - mouse_start[0] * mouse_end[2];
+       q[2] = mouse_start[0] * mouse_end[1] - mouse_start[1] * mouse_end[0];
+       q[3] = mouse_start[0] * mouse_end[0] + mouse_start[1] * mouse_end[1] + mouse_start[2] * mouse_end[2];
 
        /* new rotation is the product of the new one and the old one */
        cumquat[0] = q[3] * oldquat[0] + q[0] * oldquat[3] + 
@@ -2517,5 +2592,6 @@ void ui_init(int * argc, char ** argv) {
     interactive = DEF_INTERACTIVE;
     zoom = DEF_ZOOM;
     wireframe = DEF_WIREFRAME;
+    transparent = DEF_TRANSPARENT;
 }
 #endif /* HAVE_GLUT */
index 49706b52b8225f0664e213ff1a0fe7c01388672b..ab522c3070295da8f74da8c59878c772b84dd561 100644 (file)
@@ -7,11 +7,11 @@ glsnake \- OpenGL enhanced Rubik's Snake cyclewaster.
 [\-display \fIhost:display.screen\fP] [\-window] [\-root]
 [\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP] [\-fps]
 [\-wireframe] [\-altcolour]
-[\-velocity \fIangular\fP]
+[\-angvel \fIangular\fP]
 [\-explode \fIdistance\fP]
 [\-statictime \fImilliseconds\fP]
-[\-yspin \fIangle\fP]
-[\-zspin \fIangle\fP]
+[\-yangvel \fIangle\fP]
+[\-zangvel \fIangle\fP]
 .SH DESCRIPTION
 .PP
 .B glsnake
@@ -45,7 +45,7 @@ Display the snake in wireframe mode, rather than the default solid mode.
 Use the alternate colour scheme for the snake.  Shape identification using
 colour will be disabled.
 .TP 8
-.B -velocity \fIangular\fP
+.B -angvel \fIangular\fP
 Change the speed at which the snake morphs to a new shape.
 .TP 8
 .B -explode \fIdistance\fP
@@ -54,10 +54,10 @@ Change the distance between the nodes of a snake.
 .B \-statictime \fImilliseconds\fP
 Change the time between morphs.
 .TP 8
-.B \-yspin \fIangle\fP
+.B \-yangvel \fIangle\fP
 Change the angle of rotation around the Y axis per frame.
 .TP 8
-.B \-zspin \fIangle\fP
+.B \-zangvel \fIangle\fP
 Change the angle of rotation around the Z axis per frame.
 .SH ENVIRONMENT
 .PP
@@ -75,7 +75,7 @@ This XScreenSaver will attempt to read model files installed with the interactiv
 .SH SEE ALSO
 .BR X (1),
 .BR xscreensaver (1),
-.BR glsnake (6)
+.BR glsnake (MANSUFFIX)
 .PP
 .EX
 http://spacepants.org/src/glsnake/
index 2d0b64703d6b9cde26f94098a53dc79d2f4fe91a..3510380af50d2a0bb094a3ff18030a584a0871f9 100644 (file)
@@ -135,10 +135,10 @@ around the six possible hyperplanes.  The rotation speed is measured
 in degrees per frame.  The speeds should be set to relatively small
 values, e.g., less than 4 in magnitude.
 .TP 8
-.B \-speed-xw \fIfloat\fP
+.B \-speed-wx \fIfloat\fP
 Rotation speed around the wx plane (default: 1.1).
 .TP 8
-.B \-speed-xy \fIfloat\fP
+.B \-speed-wy \fIfloat\fP
 Rotation speed around the wy plane (default: 1.3).
 .TP 8
 .B \-speed-wz \fIfloat\fP
index e956a62010181454019a8795323f01527f333315..2da778938cb7d78c06d03b0b6b393c32a59fc4ab 100644 (file)
@@ -90,7 +90,7 @@ e.g. if you were to give the options '-tetra -spherism 0 -distance 500', you
 would end up with a stable tetrahedron. The 'damping' option can help to
 keep the blob from collapsing or flying apart. The option specifies the
 speed at which damping starts, hence lower values mean more damping.
-Defaults: spherism: 200; hold: 800; distance: 100; damping: 500.
+Defaults: spherism: 75; hold: 800; distance: 100; damping: 500.
 .TP 8
 .B -random
 Probably the only parameter you'l ever need. Overrides almost all of the
index a07d890b1edfe40167d9b1062e6a13b088b523fd..7e06caaa0c814667c4b87cd1bbf4a5f83a268e14 100644 (file)
@@ -57,7 +57,7 @@ Minimum number of objects used in a random juggling pattern. 3 - \fBmaxobj\fP.
 Used to determine maximum throw weight in random siteswap.  Options refer to
 minimum height increment and maximum height increment.  Maximum weight chosen
 will lie between \fBmaxobj\fP + \fBminhinc\fP and \fBmaxobj\fP + \fBmaxhinc\fP.
-Defaults: \fBminhinc\fP=1 and \fBmaxhinc\fP=6.
+Defaults: \fBminhinc\fP=2 and \fBmaxhinc\fP=6.
 .TP 8
 .B \-wireframe | \-no-wireframe
 Render in wireframe instead of solid.
index af5965d45bb54f88c66fe3703afc085e0d46d0f8..9499fd2f496693ba0b6b89ef0b33bfac4014e511 100644 (file)
@@ -13,14 +13,14 @@ mirrorblob - Draws a wobbly blob that distorts the image behind it.
 [\-walls]
 [\-colour]
 [\-texture]
-[\-bgimage]
 [\-offset_texture]
 [\-blend]
 [\-antialias]
 [\-x_res \fInumber\fP]
 [\-y_res \fInumber\fP]
 [\-field_points \fInumber\fP]
-[\-hold_frames \fInumber\fP]
+[\-fade_time \fInumber\fP]
+[\-hold_time \fInumber\fP]
 [\-fps]
 .SH DESCRIPTION
 Draws a wobbling blob, making use of alpha blending, fog,
@@ -55,9 +55,6 @@ Draw coloured blob.  If also textured, the texture will have color mixed in.
 .B \-texture | \-no-texture
 Whether to wrap a texture image on the blob.
 .TP 8
-.B \-bgimage | \-no-bgimage
-Whether to also draw the texture on the background.
-.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.
@@ -79,11 +76,11 @@ Number of rows of verticies used to calculatethe blob, combined with x_res to
 .B \-field_points \fInumber\fP
 Number of points used to distort the blob.
 .TP 8
-.B \-hold_frames \fInumber\fP
-Number of frames between changing images.
+.B \-hold_time \fInumber\fP
+Time until loading a new image.
 .TP 8
-.B \-fade_speed \fInumber\fP
-Speed at which fading occurs when changing images.
+.B \-fade_time \fInumber\fP
+Crossfade duration time.
 .TP 8
 .B \-fps | \-no-fps
 Whether to show a frames-per-second display at the bottom of the screen.
index 241c3e29153393754fd5c96988916eaf28d2d7d1..b8d964d52aa4d750aa6eebdcb560412e519053ad 100644 (file)
@@ -69,7 +69,7 @@ to get the default host and display number.
 to get the name of a resource file that overrides the global resources
 stored in the RESOURCE_MANAGER property.
 .SH SEE ALSO
-.BR gears (1),
+.BR gears (MANSUFFIX),
 .BR xscreensaver (1),
 .BR X (1)
 .SH COPYRIGHT
index 2fc7d5a621a61f5839423cdc1b2e6c39ffa73cab..97d089eeec0e04dd0bdd4d38688773c0dfb30282 100644 (file)
@@ -48,7 +48,7 @@ Length of each pipe system.  Default: 500.
 How much gadgetry to create; Useful range is 0-10.  Default: 2.
 .TP 8
 .B \-delay \fInumber\fP
-How long (in microseconds) to sleep between frames.  Default: 100.
+How long (in microseconds) to sleep between frames.  Default: 10000.
 .TP 8
 .B \-fisheye | \-no-fisheye
 Whether to use a fisheye lens.
index 76bf983f89ce0983cb832cf71e71760d511343fb..b17752f4bb5b075b1538d5149e6cf920870ffbd3 100644 (file)
@@ -154,10 +154,10 @@ around the six possible hyperplanes.  The rotation speed is measured
 in degrees per frame.  The speeds should be set to relatively small
 values, e.g., less than 4 in magnitude.
 .TP 8
-.B \-speed-xw \fIfloat\fP
+.B \-speed-wx \fIfloat\fP
 Rotation speed around the wx plane (default: 1.1).
 .TP 8
-.B \-speed-xy \fIfloat\fP
+.B \-speed-wy \fIfloat\fP
 Rotation speed around the wy plane (default: 1.3).
 .TP 8
 .B \-speed-wz \fIfloat\fP
index f2691a166aa5e6ffa97119ffd98452f88040a60c..d531996922781ad79f33d3514faecdf015886fa6 100644 (file)
@@ -11,7 +11,7 @@ pulsar - intersecting planes, alpha blending, fog, and textures.
 [\-wire]
 [\-delay \fInumber\fP]
 [\-quads \fInumber\fP]
-[\-bitmap \fIfile\fP]
+[\-image \fIfile\fP]
 [\-light]
 [\-fog]
 [\-texture]
@@ -46,7 +46,7 @@ Render in wireframe instead of solid.
 .B \-delay \fInumber\fP
 Per-frame delay, in microseconds.  Default: 10000 (0.01 seconds.).
 .TP 8
-.B \-bitmap \fIfile\fP
+.B \-image \fIfile\fP
 The texture map to use.
 .TP 8
 .B \-quads \fInumber\fP
index 1fb4a47699d5e1b70b6743575a255c13d71c5c7c..239516725241db59a8f1e08c3bbc8b7ba43aebe3 100644 (file)
@@ -19,7 +19,6 @@ sballs - draws balls spinning like crazy in GL
 [\-display \fIhost:display.screen\fP] [\-window] [\-root]
 [\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP]
 [\-object \fIobject_number\fP] 
-[\-count \fInumber_of_spheres\fP] 
 [\-cycles \fIsphere_speed\fP] 
 [\-size \fIviewport_size\fP] 
 [\-texture] [\-no-texture]
@@ -78,18 +77,9 @@ pyramid
 .B 8 
 star
 .TP 8
-.B \-count \fInumber_of_spheres\fP\fP
-Specify how much spheres are drawn in the selected object. 
-.TP 8
 .B \-size \fIviewport_size\fP\fP
 Viewport of GL scene is specified size if greater than 32 and less than screensize. Default value is 0, meaning full screensize.
 .TP 8
-.B \-count \fInumber_of_particles\fP\fP
-Specify how much fire particles are drawn. A very special case is 0
-wich means that you get
-.B rain
-!
-.TP 8
 .B \-texture
 Show a textured background and spheres. This is the default.
 .TP 8
index 660cb7311ab977daf712c40433c4a5f2fab5cd54..a069921181305aedabc1356a5f40b9bc59f78387 100644 (file)
@@ -34,7 +34,7 @@ Per-frame delay, in microseconds.  Default: 20000 (0.02 seconds.).
 Number of frames before changing shape.  Default: 150.
 .TP 8
 .B \-depth \fInumber\fP
-Max depth to descend.  Default: 3.  You probably don't have enough
+Max depth to descend.  Default: 5.  You probably don't have enough
 memory for 6.
 .TP 8
 .B \-wireframe
index f714278c9da58271d46c3ec27903ebe8f742d3fd..5d53a4a0a5b308e440e0134b96ec20a82c3cf95f 100644 (file)
@@ -39,7 +39,7 @@ Draw on the root window.
 Per-frame delay, in microseconds.  Default: 30000 (0.03 seconds.).
 .TP 8
 .B \-duration \fInumber\fP
-Duration.  5 - 1000.  Default: 500.
+Duration.  5 - 1000.  Default: 100.
 .TP 8
 .B \-resolution \fInumber\fP
 Resolution.  5 - 100.  Default: 64.
index ef8bb577dbef1a9796dbc56aec67de0b36f5ee80..f5f717b48701158193077356947334a4af68c6b1 100644 (file)
@@ -161,12 +161,12 @@ stored in the RESOURCE_MANAGER property.
 .BR xscreensaver (1),
 .BR xscreensaver-text (1),
 .BR fortune (1),
-.BR phosphor (1),
-.BR apple2 (1),
-.BR fontglide (1),
-.BR ljlatest (1),
+.BR phosphor (MANSUFFIX),
+.BR apple2 (MANSUFFIX),
+.BR fontglide (MANSUFFIX),
+.BR ljlatest (MANSUFFIX),
 .BR dadadodo (1),
-.BR webcollage (1),
+.BR webcollage (MANSUFFIX),
 .BR driftnet (1)
 .BR EtherPEG ,
 .BR EtherPeek
index dcf5cd9b359e48081725bc82056c34ff543730b1..784651e0a8cf7a3d2a5deb636003fbc078b60805 100644 (file)
@@ -12,7 +12,7 @@ tangram - watch the computer solve tangram puzzles.
 [\-viewing_time \fInumber\fP]
 [\-rotate]
 .SH DESCRIPTION
-The \fItangram\fP program uses a view basic shapes to build silhouettes of recognizable objects.
+The \fItangram\fP program uses a few basic shapes to build silhouettes of recognizable objects.
 .SH OPTIONS
 .I tangram
 accepts the following options:
@@ -28,13 +28,14 @@ Draw on a newly-created window.  This is the default.
 Draw on the root window.
 .TP 8
 .B \-delay \fInumber\fP
-Per-frame delay, in microseconds.  Default: 30000 (0.03 seconds.).
+Per-frame delay, in microseconds.  Default: 10000 (0.01 seconds.).
 .TP 8
 .B \-wireframe | \-no-wireframe
 Render in wireframe instead of solid.
 .TP 8
 .B \-viewing_time \fInumber\fP 
 Specify the length of time, in seconds, that the finished puzzle
+should be displayed. Default: 5
 .TP 8
 .B \-rotate | \-no-rotate
 Rotate the camera around the puzzle.
index 76aaeea52bcd0999510a57d6cefb7e032b4a895a..7912f17265e9099340b74e49f8798da14eaf4ddd 100644 (file)
@@ -9,7 +9,7 @@ timetunnel - Plasma tunnels fade in and out
 [\-root]
 [\-start \fInumber\fP]
 [\-end \fInumber\fP]
-[\-dialate \fInumber\fP]
+[\-dilate \fInumber\fP]
 [\-tunonly]
 [\-reverse]
 [\-fog]
@@ -37,7 +37,7 @@ Start time of loop, 0.0 - 30.00. Default 0.0.  May be identical to end time.
 .B \-end \fInumber\fP
 End time of loop, 0.0 - 30.00. Default 27.79.  May be identical to start time.
 .TP 8
-.B \-dialate \fInumber\fP
+.B \-dilate \fInumber\fP
 Scale time to speed or slow simulation.  Numbers less than one slow it down.
 .TP 8
 .B \-tunonly
index adf79d87b360f7e94293a0628ffd02dd8b4c66ce..a24f817d9869e556f6b2f4729ead9f5d8f64b5f5 100644 (file)
@@ -30,12 +30,12 @@ or the id number (decimal or hex) of a specific visual.
 .B \-count \fIinteger\fP
 How many bubbles to draw per layer.  Default: random.
 .TP 8
-.B \-layers \fIinteger\fP
-How many layers to draw.  Default: random, based on screen depth.
+.B \-planes \fIinteger\fP
+How many planes to draw.  Default: random, based on screen depth.
 .TP 8
 .B \-delay \fImicroseconds\fP
 How much of a delay should be introduced between steps of the animation.
-Default 100000, or about 1/10th second.
+Default 12000, or about 0.012 seconds.
 .TP 8
 .B \-transparent
 If \fI\-layers\fP is greater than 1, then each layer will be drawn in one
index 7e547b50502ec6bf41ce1d0ea3da8e37c61f8ff5..38eb241f3028870a51ddc1dc88c7acb081cfe51e 100644 (file)
@@ -28,7 +28,7 @@ Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
 .TP 8
 .B \-ncolors \fIinteger\fP
-How many colors should be used (if possible).  Default 200.
+How many colors should be used (if possible).  Default 64.
 The colors are chosen randomly.
 .TP 8
 .B \-count \fIinteger\fP
@@ -36,7 +36,7 @@ Default 12.
 .TP 8
 .B \-decay
 .TP 8
-.B \-no-\decay
+.B \-no\-decay
 Whether orbits should decay.
 
 .TP 8
index e2c9543e7e01a6927cb2e5f395a6c184c3123fcc..80eab94f6151dc6c284581c0db78488f7122c005 100644 (file)
@@ -20,14 +20,6 @@ Draw on the root window.
 .B \-mono 
 If on a color display, pretend we're on a monochrome display.
 .TP 8
-.B \-erase\-speed \fIusecs\fP
-This controls the speed at which the screen will be erased. Lower numbers 
-erase faster.
-.TP 8
-.B \-erase\-mode \fIinteger\fP
-This sets the erase mode. Mode \-1 chooses a random mode each time. There
-are currently 6 modes defined (0\-5).
-.TP 8
 .B \-delay \fIseconds\fP
 This sets the number of seconds that the helix will be on the screen.
 .TP 8
index 225c416ca316f864550e85970d670054a6c96931..8b845c9cc8f4a88e905f396abb66adb59030a90b 100644 (file)
@@ -43,7 +43,7 @@ or the id number (decimal or hex) of a specific visual.
 .TP 8
 .B \-delay \fImicroseconds\fP
 How much of a delay should be introduced between steps of the animation.
-Default 100000, or about 1/10th second.
+Default 20000, or about 0.02 seconds.
 .TP 8
 .B \-xw \fIfloat\fP
 .TP 8
@@ -57,9 +57,9 @@ Default 100000, or about 1/10th second.
 .TP 8
 .B \-zw \fIfloat\fP
 The amount that the ball should be rotated around the specified axis at
-each frame of the animation, expressed in radians.  These should be small
-floating-point values (less than 0.05 works best.)  Default: xy=0.01,
-xz=0.005, yw=0.01.
+each frame of the animation, expressed in 0.001 radians.  These should be small
+floating-point values (less than 50 works best.)  Default: xy=3,
+xz=5, yw=10.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 4c5f8f9d096c20af6ef0261178dd9e8105a42456..e3525fc9073b3b22de0033f7f458d07190fb78fc 100644 (file)
@@ -66,9 +66,9 @@ the specified color, and some have all four.
 .TP 8
 .B \-zw \fIfloat\fP
 The amount that the cube should be rotated around the specified axis at
-each frame of the animation, expressed in radians.  These should be small
-floating-point values (less than 0.05 works best.)  Default: xy=0.01,
-xz=0.005, yw=0.01.
+each frame of the animation, expressed in 0.001 radians.  These should be small
+floating-point values (less than 50 works best.)  Default: xy=3,
+xz=5, yw=10.
 .SH ENVIRONMENT
 .PP
 .TP 8
index a6e4c15d0af0a74d34d7816ff23c8ea0778986e9..d41efecb14c4ed8b9bad5e16b458fb812996bb66 100644 (file)
@@ -40,9 +40,6 @@ Number of times to iterate each function. Default: 9
 .TP 8
 .B \-functions \fInumber\fP
 Number of functions to be iterated. Default: 3
-.TP 8
-.B \-ncolors \fInumber\fP
-Number of colors.  Default: 20.
 .SH ENVIRONMENT
 .PP
 .TP 8
@@ -55,7 +52,7 @@ stored in the RESOURCE_MANAGER property.
 .SH SEE ALSO
 .BR X (1),
 .BR xscreensaver (1),
-.BR ifs (1)
+.BR ifs (MANSUFFIX)
 .SH COPYRIGHT
 Copyright \(co Chris Le Sueur (thefishface@gmail.com) February 2005
 
index 07407b1bb39f73f92dc17e7190e5fb0676f0ba67..21882be4ce8ab86d061c1919341d2e89f97172d7 100644 (file)
@@ -7,10 +7,13 @@ between slowly moving circles.
 [\-display \fIhost:display.screen\fP]
 [\-foreground \fIcolor\fP]
 [\-background \fIcolor\fP]
-[\-num\-discs \fIdisc count\fP]
-[\-draw\-delay \fIdelayms\fP]
-[\-max\-riders \fImaxr\fP]
-[\-max\-radius \fImaxradius\fP]
+[\-num\-circles \fIdisc count\fP]
+[\-growth\-delay \fIdelayms\fP]
+[\-max\-cycles \fImaxr\fP]
+[\-percent\-orbits \fIpercent\fP]
+[\-base\-orbits \fIpercent\fP]
+[\-base\-on\-center]
+[\-draw\-centers]
 .SH DESCRIPTION
 The Intersection Aggregate is a fun visualization defining the relationships 
 between objects with Casey Reas, William Ngan, and Robert Hodgin. Commissioned 
@@ -28,21 +31,14 @@ http://www.complexification.net by J.Tarbell
 .I interaggregate
 accepts the following options:
 .TP 8
-.B \-num\-discs \fIdisc count\fP (Default: \fI85\fP)
+.B \-num\-circles \fIdisc count\fP (Default: \fI100\fP)
 Number of slowly moving and growing discs to use.  The more discs, 
 the more CPU power.
 .TP 8
-.B \-draw\-delay \fIdelayms\fP (Default: \fI30000\fP)
+.B \-growth\-delay \fIdelayms\fP (Default: \fI18000\fP)
 Delay in ms between drawing cycles.  More delay, slower (but smoother 
 and less CPU intensive.)
 art.
-.TP 8
-.B \-max\-riders \fImaxrider\fP (Default: \fI40\fP)
-Maximum number of 'riders', single dots moving around the edge of the discs.
-.TP 8
-.B \-max\-radius \fImaxradius\fP (Default: \fI100\fP)
-Maximum possible radius of a disc.
-.TP 8
 .SH ENVIRONMENT
 .PP
 .TP 8
index 36b28e416f687e0823825f850a0af0aed2d2a73c..84f750ecb7b77a44583fbb56ae575cc26482064f 100644 (file)
@@ -35,7 +35,7 @@ Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
 .TP 8
 .B \-delay \fImicroseconds\fP
-How long to wait between shuffling pieces; default 700000, or 0.7 seconds.
+How long to wait between shuffling pieces; default 70000, or 0.07 seconds.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 16b5d830c56547f10762d814ca9a1731243f3661..0ccab278e214f1085162d9a08b00c14c964acb85 100644 (file)
@@ -111,7 +111,7 @@ For further examples, see the
 list in the source code.
 .TP
 .BI \-tail\  number
-Minimum Trail Length.  0 \- 100.  Default: 0.  Objects may override
+Minimum Trail Length.  0 \- 100.  Default: 1.  Objects may override
 this, for example flaming torches always leave a trail.
 .TP
 .BR \-real\  |\  \-no\-real
index 6eca5e335c7d10a54d409d55df1340f04e183841..890a491a7ea1063ab6b89ca56823f41131e22c6b 100644 (file)
@@ -71,7 +71,7 @@ to get the name of a resource file that overrides the global resources
 stored in the RESOURCE_MANAGER property.
 .SH SEE ALSO
 .BR X (1),
-.BR kaleidescope (1)
+.BR kaleidescope (MANSUFFIX)
 .SH COPYRIGHT
 Copyright \(co 1997 by Ron Tapia.  Permission to use, copy, modify, 
 distribute, and sell this software and its documentation for any purpose is 
index 40c2949383c32f22fa09ca72ab8da6ec9e660bab..39f267f2a77d30e61f9d09f20b4f013bb5dcf7ac 100644 (file)
@@ -31,13 +31,13 @@ Draw on the root window.
 Count. 0 - 20.  Default: 1.
 .TP 8
 .B \-cycles \fInumber\fP
-Timeout.  0 - 800000.  Default: 2000.
+Timeout. Default: 20000.
 .TP 8
 .B \-delay \fInumber\fP
 Per-frame delay, in microseconds.  Default: 10000 (0.01 seconds.).
 .TP 8
 .B \-ncolors \fInumber\fP
-Number of Colors.  Default: 64.
+Number of Colors.  Default: 200.
 .TP 8
 .B \-size \fInumber\fP
 Size.  -500 to +500.  Default: -200.
index eae526fbdc182ce67dcd8bf9d10e42f0fc037101..21fe4500d2bedaa371864c391480200c761beda2 100644 (file)
@@ -40,12 +40,12 @@ The output is always ISO-8859-1, regardless of locale.
 .BR xscreensaver (1),
 .BR xscreensaver-text (1),
 .BR fortune (1),
-.BR phosphor (1),
-.BR apple2 (1),
-.BR starwars (1),
-.BR fontglide (1),
+.BR phosphor (MANSUFFIX),
+.BR apple2 (MANSUFFIX),
+.BR starwars (MANSUFFIX),
+.BR fontglide (MANSUFFIX),
 .BR dadadodo (1),
-.BR webcollage (1),
+.BR webcollage (MANSUFFIX),
 .BR driftnet (1)
 .BR EtherPEG ,
 .BR EtherPeek
index 791ebda608254d4fd81fb7fa88ce7295185f37db..438e40c1315136eb2f26ab4c953f0332d3f9bb76 100644 (file)
@@ -35,7 +35,7 @@ Number of Colors.  Default: 256.
 Number of MetaBalls.   2 - 255.  Default: 10.
 .TP 8
 .B \-delay \fInumber\fP
-Per-frame delay, in microseconds.  Default: 5000 (0.01 seconds.).
+Per-frame delay, in microseconds.  Default: 5000 (0.005 seconds.).
 .TP 8
 .B \-cycles \fInumber\fP
 Duration.  100 - 3000.  Default: 1000.
index 0de8ef926267028abca65e7a7cdbc338cb420f6a..0ea9ce966d7d758b4f060efd3fbe8f851ea75b3c 100644 (file)
@@ -58,7 +58,7 @@ stored in the RESOURCE_MANAGER property.
 .SH SEE ALSO
 .BR X (1),
 .BR xscreensaver (1),
-.BR munch (1)
+.BR munch (MANSUFFIX)
 .SH COPYRIGHT
 Copyright \(co 2004 Steven Hazel.  Permission to use, copy, modify,
 distribute, and sell this software and its documentation for any
index 6a39d51fd2640257b06c87fb4b6392d1a2e3234a..dc4986df41d791c1e113482a291f9e32f79203eb 100644 (file)
@@ -28,7 +28,7 @@ Draw on the root window.
 Count. 0 - 100.  Default: 30.
 .TP 8
 .B \-delay \fInumber\fP
-Per-frame delay, in microseconds.  Default: 0 (0.00 seconds.).
+Per-frame delay, in microseconds.  Default: 1000 (0.001 seconds.).
 .TP 8
 .B \-ncolors \fInumber\fP
 Number of colors.  Default: 64.
index 87e3675ea94fe21b084d5233d5a76fb9c797341b..4b7fa29bbc3ba8a5b72d8a2bef4a43acfa845cb0 100644 (file)
@@ -18,7 +18,7 @@ munch - munching squares screen hack
 .B munch
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP]
 [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install]
-[\-visual \fIvisual\fP] [\-delay \fIseconds\fP] [\-xor] [\-noxor] [\-shift]
+[\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP] [\-xor] [\-noxor] [\-shift]
 [\-noshift] [\-logminwidth \fIminimum width\fP]
 .SH DESCRIPTION
 The
@@ -51,8 +51,8 @@ Install a private colormap for the window.
 Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
 .TP 8
-.B \-delay \fIseconds\fP
-How long to wait before starting over.  Default 5 seconds.
+.B \-delay \fImicroseconds\fP
+How long to wait before starting over.  Default 5000.
 .TP 8
 .B \-xor
 Use the XOR drawing function.  (Default.)
index 5992353454712e6b8ccac3ce7f173e2af26c410a..f080498df4d1536b71e2bdf71651d0d26df5ba86 100644 (file)
@@ -3,7 +3,7 @@
 penrose - draws quasiperiodic tilings
 .SH SYNOPSIS
 .B penrose
-[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-redoDelay \fIseconds\fP] [\-size \fIinteger\fP] [\-ammann] [\-no\-ammann]
+[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-size \fIinteger\fP] [\-ammann] [\-no\-ammann]
 
 .SH DESCRIPTION
 The \fIpenrose\fP program draws quasiperiodic tilings.
@@ -68,10 +68,6 @@ How big the tiles should be.  Default 40 pixels.
 How long (in 1/1,000,000'ths of a second) to wait between drawing each
 tile.  Default 10,000 or .01 seconds.
 
-.TP 8
-.B \-redoDelay \fIseconds\fP
-How long to wait between starting a completely new tiling.  Default 3 seconds.
-
 .TP 8
 .B \-ammann
 .TP 8
index c01f5a5a17b7e37aaac8b749483f1c49720ef078..e133a12f28c99a6a0fea019034e768ee454df2d2 100644 (file)
@@ -1144,10 +1144,18 @@ launch_text_generator (p_state *state)
   char *oprogram = get_string_resource ("program", "Program");
   char *program = (char *) malloc (strlen (oprogram) + 50);
 
-  /* oprogram contains a "%d" where the current number of columns goes
-   */
   strcpy (program, "( ");
-  sprintf (program + strlen(program), oprogram, state->grid_width-1);
+  strcat (program, oprogram);
+
+  /* Kludge!  Special-case "xscreensaver-text" to tell it how wide
+     the screen is.  We used to do this by just always feeding
+     `program' through sprintf() and setting the default value to
+     "xscreensaver-text --cols %d", but that makes things blow up
+     if someone ever uses a --program that includes a % anywhere.
+   */
+  if (!strcmp (oprogram, "xscreensaver-text"))
+    sprintf (program + strlen(program), " --cols %d", state->grid_width-1);
+
   strcat (program, " ) 2>&1");
 
 #ifdef HAVE_FORKPTY
@@ -1395,7 +1403,7 @@ char *defaults [] = {
   "*ticks:                20",
   "*delay:                50000",
   "*cursor:               333",
-  "*program:              xscreensaver-text --cols %d",
+  "*program:              xscreensaver-text",
   "*relaunch:             5",
   "*metaSendsESC:         True",
   "*swapBSDEL:            True",
index 5bc03b780476a919465b2b3dfae9b73b328417fd..3bf54aa3f1f9c261542122556cc792cf6c5037cd 100644 (file)
@@ -146,12 +146,12 @@ to inform the sub-process of the type of terminal emulation.
 .BR xscreensaver (1),
 .BR xscreensaver-text (1),
 .BR fortune (1),
-.BR apple2 (1),
-.BR starwars (1),
-.BR fontglide (1),
-.BR ljlatest (1),
+.BR apple2 (MANSUFFIX),
+.BR starwars (MANSUFFIX),
+.BR fontglide (MANSUFFIX),
+.BR ljlatest (MANSUFFIX),
 .BR dadadodo (1),
-.BR webcollage (1),
+.BR webcollage (MANSUFFIX),
 .BR driftnet (1)
 .BR EtherPEG ,
 .BR EtherPeek ,
index d8cc58d5e947465ee71c60c62f82b3bdf32f1b35..e0de4c65e5cb7219bf791b745c1c60b916497701 100644 (file)
 # include "xdbe.h"
 #endif /* HAVE_DOUBLE_BUFFER_EXTENSION */
 
+#if !defined( __GNUC__ ) && !defined(__cplusplus) && !defined(c_plusplus)
+#undef inline
+#define inline                 /* */
+#endif
+
 #define X_PI (180 * 64)
 
 /******** splaying code */
index c6900580354ded03cfa406f20c973a7bde0951df..5eab20c6d0a203e5e2aa73db43d763896181ddd3 100644 (file)
@@ -56,8 +56,8 @@ Pong may be a trademark.
 .SH SEE ALSO
 .BR X (1),
 .BR xscreensaver (1),
-.BR xanalogtv (1),
-.BR apple2 (1)
+.BR xanalogtv (MANSUFFIX),
+.BR apple2 (MANSUFFIX)
 .SH COPYRIGHT
 2003 by Jeremy English.  Permission to use, copy, modify, 
 distribute, and sell this software and its documentation for any purpose is 
index 106fc8aa4177e5b5a30f0336d53ed9664bd820ab..ad4c78b58f30b51848101ddfb904016649230590 100644 (file)
@@ -28,13 +28,13 @@ Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
 .TP 8
 .B \-count \fIinteger\fP
-How many particles should be allowed on the screen at once.  Default 100.
+How many particles should be allowed on the screen at once.  Default 600.
 .TP 8
 .B \-frequency \fIinteger\fP
 How often new missiles should launch.  Default 30.
 .TP 8
 .B \-scatter \fIinteger\fP
-How many particles should appear when a missile explodes.  Default 20.
+How many particles should appear when a missile explodes.  Default 100.
 The actual number used is between \fIN\fP and \fIN+(N/2)\fP.
 .SH ENVIRONMENT
 .PP
index d1063fa4088ef63c62979a6267bedb63fbf269a5..482d21973971e3a690f163a491a7cd55e240919d 100644 (file)
@@ -49,7 +49,7 @@ from the next, in degrees on the HSV wheel.  Default 3.
 .TP 8
 .B \-delay \fImicroseconds\fP
 How much of a delay should be introduced between steps of the animation.
-Default 25000, or about 0.025 seconds.
+Default 10000, or about 0.01 seconds.
 .TP 8
 .B \-random
 The \fIqix\fP will wander around the screen semi-randomly.  This is the
index 161c47837a541e8f84619ee848323f0a88612bb4..c6fb9de085b330b8bcffad2984b695bfae58b96d 100644 (file)
@@ -7,7 +7,7 @@ rd-bomb - reaction/diffusion textures
 [\-background \fIcolor\fP] [\-window] [\-root] [\-install]
 [\-visual \fIvisual\fP] [\-width \fIn\fP] [\-height \fIn\fP]
 [\-reaction \fIn\fP] [\-diffusion \fIn\fP]
-[\-size \fIf\fP] [\-speed \fIf\fP] [\-delay \fIusecs\fP]
+[\-size \fIf\fP] [\-speed \fIf\fP] [\-delay \fImillisecs\fP]
 .SH DESCRIPTION
 
 The \fIrd-bomb\fP program draws reaction/diffusion textures.  The code
@@ -54,24 +54,22 @@ Specify the size of the tile, in pixels.
 .TP 8
 .B \-diffusion \fIn\fP
 These are constants in the equations that effect its visual nature.
-Each may be one of 0, 1, or 2.  
+Each may be one of 0, 1, or 2. Default is -1: these constants are
+chosen randomly.
 .TP 8
 .B \-radius \fIn\fP
 Size of the seed.
 .TP 8
-.B \-palette \fIn\fP
-Selects a palette.  Must be between 0 and 80, inclusive.
-.TP 8
 .B \-size \fIf\fP
 What fraction of the window is actively drawn, a floating point number
-between 0 (exclusive) and 1 (inclusive).  Default is 0.66.
+between 0 (exclusive) and 1 (inclusive).  Default is 1.0.
 .TP 8
 .B \-speed \fIf\fP
 When a fraction of the screen is active, the active area moves at this
 rate (a floating point number).  Default is zero.  Suggested value: 1.0.
 .TP 8
-.B \-delay \fIusecs\fP
-How many microseconds to delay between frames; default 1000, or 
+.B \-delay \fImillisecs\fP
+How many milliseconds to delay between frames; default 1, or 
 about 1/1000th of a second.
 .SH ENVIRONMENT
 .PP
index 56a6c4877b981ddd19ea75f7db727b8a573cb2bd..9348396841e511b4e4aff927f2969ceae3127ab4 100644 (file)
@@ -3,7 +3,7 @@
 rorschach - simulate ink-blot patterns
 .SH SYNOPSIS
 .B rorschach
-[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-iterations \fIinteger\fP] [\-offset \fIinteger\fP] [\-xsymmetry] [\-ysymmetry] [\-erase\-mode \fIinteger\fP] [\-erase\-speed \fIusecs\fP] [\-delay \fIsecs\fP]
+[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-iterations \fIinteger\fP] [\-offset \fIinteger\fP] [\-xsymmetry] [\-ysymmetry] [\-erase\-speed \fIusecs\fP] [\-delay \fIsecs\fP]
 .SH DESCRIPTION
 The \fIrorschach\fP program draws random patterns reminiscent of the
 psychological test of same name.
@@ -39,10 +39,6 @@ Whether the images should be horizontally symmetrical.  Default true.
 .B \-ysymmetry
 Whether the images should be vertically symmetrical.  Default false.
 .TP 8
-.B \-erase\-mode \fIinteger\fP
-This sets the erase mode. Mode \-1 chooses a random mode each time. There
-are currently 6 modes defined (0\-5).
-.TP 8
 .B \-erase\-speed \fIusecs\fP
 This controls the speed at which the screen will be erased. (Delay between
 erasing of individual lines.)
index 2956f4b316cb685604d4822dc98fd2097b2e7245..aa805543a979c32661a3b3068ec03002e89563ca 100644 (file)
@@ -5,7 +5,7 @@ rotzoomer - animated rotations and scalings of portions of the screen
 .B rotzoomer
 [\-display \fIhost:display.screen\fP]
 [\-move | \-no\-move]
-[\-delay \fIusecs\fP]
+[\-delay \fImillisecs\fP]
 [\-n \fIcount\fP]
 [\-shm | \-no\-shm]
 [\-window] [\-root] [\-install] [\-visual \fIvisual\fP]
@@ -39,9 +39,9 @@ Install a private colormap for the window.
 Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
 .TP 8
-.B \-delay \fImicroseconds\fP
+.B \-delay \fImilliseconds\fP
 How much of a delay should be introduced between steps of the animation.
-Default 10000, or about 1/100th second.
+Default 10, or about 1/100th second.
 .TP 8
 .B \-move
 Make the rectangles should wander around the screen.
index e35b696b46d3cd7f5ab72af32c4b987d19f0ed8f..8e4ad5043154fbba586fd472c800ebbed7117cca 100644 (file)
@@ -33,7 +33,7 @@ Number of Colors.  Default: 64.
 Count. 0 - 20.  Default: 4.
 .TP 8
 .B \-delay \fInumber\fP
-Per-frame delay, in microseconds.  Default: 5000 (0.01 seconds.).
+Per-frame delay, in microseconds.  Default: 5000 (0.005 seconds.).
 .TP 8
 .B \-cycles \fInumber\fP
 Duration.  0 - 100.  Default: 10.
index ea38835570531f3c8a2cd6e15a983813a8fca2ca..9dd726628c5186f767f9e529dae84d85825a3ec1 100644 (file)
@@ -48,7 +48,7 @@ or the id number (decimal or hex) of a specific visual.
 The size of the grid cells.  Default 70 pixels.
 .TP 8
 .B \-ibw \fIpixels\fP
-The size of the "gutter" between grid cells.  Default 1 pixel.
+The size of the "gutter" between grid cells.  Default 4 pixel.
 .TP 8
 .B \-increment \fIpixels\fP
 How many pixels by which a piece should be moved when sliding to a new 
index 25a552575cd9154cb3adaf75c6ce3db403223150..63a405cb5956324c3b0539fbe3866963158bc7d5 100644 (file)
@@ -40,7 +40,7 @@ Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
 .TP 8
 .B \-ncolors \fIinteger\fP
-How many colors should be used (if possible).  Default 128.
+How many colors should be used (if possible).  Default 200.
 The colors used cycle through the hue, making N stops around 
 the color wheel.
 .TP 8
index b3f3cb6a1f1211b589de785f48ede253bc2e0edc..2b0171d9abd6a9081151c58642a81c5287e17ba5 100644 (file)
@@ -2171,7 +2171,14 @@ screenhack(Display *dpy, Window win)
 
     sensor = 0;
 # ifdef HAVE_PING
-    sensor_info = (void *) init_ping();
+    /* init_ping() will fail if not root, so checking the effective uid
+       isn't necessary -- except that on some systems, it makes some
+       SELinux bullshit show up in syslog, which gets people's panties
+       in a bunch. */
+    if (geteuid () == 0)
+      sensor_info = (void *) init_ping();
+    else
+      sensor_info = 0;
 # else  /* !HAVE_PING */
     sensor_info = 0;
     parse_mode (0);  /* just to check argument syntax */
index 088a9eed5a1a65a2c722a0ba4b6f60485d1041cd..b926fa7634e74de8c986d593aaee32a12f911b71 100644 (file)
@@ -28,7 +28,7 @@ Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
 .TP 8
 .B \-ncolors \fIinteger\fP
-How many colors should be used (if possible).  Default 64.
+How many colors should be used (if possible).  Default 100.
 The colors are chosen randomly.
 .SH ENVIRONMENT
 .PP
index b2c633cc0218e08fbeabd2aabcf9df550623fcee..33af91bea2f2f65577dfe4caea1f0c35e6e869b6 100644 (file)
@@ -44,7 +44,7 @@ Maximum number of cracks in the substrate at a single time
 Number of sand grains dropped during coloring.  More grains cause 
 a denser colour but use more cpu power.
 .TP 8
-.B \-circle-percent \fIcirclepercent\fP (Default: \fI33\fP)
+.B \-circle-percent \fIcirclepercent\fP (Default: \fI0\fP)
 The percentage of the cracks will be circular.
 .SH ENVIRONMENT
 .PP
index 8183399413e6567b6266b1c457e74b556a808ba0..e445bfe5c2c66f7344d1027425418fd9afa9b394 100644 (file)
@@ -55,7 +55,7 @@ Sets the moving cycle to
 .I period
 seconds. By default, this value is 10 seconds.
 .TP
-.BI "-wait " "microsec"
+.BI "-delay " "microsec"
 Inserts a wait after drawing one view of the clock. By default, t3d waits
 40 ms after each drawing. This helps you to keep the performance loss
 small.
index 62c822892909d398981b7ecbe70ccc187f9c8b62..b077ab0b88279723aa2a3d24324b92d36cf79c87 100644 (file)
@@ -4,7 +4,7 @@ truchet - draws curved or angular Truchet patterns
 .SH SYNOPSIS
 .B truchet
 [\-display \fIhost:display.screen\fP]  [\-foreground \fIcolor\fP] [\-background \fIcolor\fP]
-[\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP]
+[\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-delay \fImilliseconds\fP]
 [\-min\-width \fIinteger\fP] [\-min-height \fIinteger\fP] [\-max-width \fIinteger\fP] 
 [\-max-height \fIinteger\fP] [\-max\-linewidth \fIinteger\fP] [\-min-linewidth \fIinteger\fP] 
 [\-erase] [\-no\-erase] [\-erase\-count \fIinteger\fP] [\-square] [\-not\-square] [\-curves]
@@ -34,8 +34,8 @@ Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
 
 .TP 8
-.B \-delay \fImicroseconds\fP
-How long to wait between drawing each screenful. Default is 3 seconds.
+.B \-delay \fImilliseconds\fP
+How long to wait between drawing each screenful. Default is 1 seconds.
 
 .TP 8 
 .B \-min-width \fIinteger\fP
@@ -77,7 +77,7 @@ The number of screenfuls to draw before erasing. Default is 25.
 
 .TP 8
 .B \-not-square
-Whether to force the tiles to be square. Default is False (not-square).
+Whether to force the tiles to be square. Default is True (square).
 
 .TP 8
 .B \-curves
index 13b7dee770802aa607837a2143fcb5ce4775f5be..1c21ca0fcee486d398075d90ec0fe202f1de68d8 100644 (file)
@@ -30,7 +30,7 @@ Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
 .TP 8
 .B \-ncolors \fIinteger\fP
-How many colors should be used (if possible).  Default 200.
+How many colors should be used (if possible).  Default 64.
 The colors are chosen randomly.
 .SH ENVIRONMENT
 .PP
index 0d06e4e6b56aa746fd385931a5ae7fab5be58a7e..3fef27823ef46af3258829a8eff1ea875c8f538d 100644 (file)
@@ -221,7 +221,7 @@ DriftNet:
 .BR cjpeg (1),
 .BR xdpyinfo (1),
 .BR perl (1),
-.BR vidwhacker (1),
+.BR vidwhacker (MANSUFFIX),
 .BR dadadodo (1),
 .BR driftnet (1)
 .BR EtherPEG ,
index 4c38e3777b90fd3d7af20f0811f621a048d933e6..cdaf48e4c573f7ba594de6bdf6a4ba2c5364939d 100644 (file)
@@ -29,11 +29,11 @@ or the id number (decimal or hex) of a specific visual.
 .TP 8
 .B \-xspeed \fIspeed\fP
 Specify how fast the dots should cycle horizontally.
-Try out values from .01 to 4000. Random by default.
+Try out values from .01 to 4000. Defaults to 1.0.
 .TP 8
 .B \-yspeed \fIspeed\fP
 Specify how fast the dots should cycle vertically.
-Try out values from .01 to 4000. Random by default.
+Try out values from .01 to 4000. Defaults to 1.0.
 .TP 8
 .B \-xamplitude \fIfactor\fP
 Specify the horizontal amplitude.
index c5fef30f9c6ebaefb16f6429b0df14a24e84b2b9..ac119611df56141648235629cefe18162506ba88 100644 (file)
@@ -29,7 +29,7 @@ Draw on the root window.
 Count. -100 - 100.  Default: -20.
 .TP 8
 .B \-delay \fInumber\fP
-Per-frame delay, in microseconds.  Default: 17000 (0.02 seconds.).
+Per-frame delay, in microseconds.  Default: 17000 (0.017 seconds.).
 .TP 8
 .B \-ncolors \fInumber\fP
 Number of Colors.  Default: 150.
index 015b200994b1ab447f5c10ff1d04c78cc6551ebc..09ebf7cf890be6f160c4d6f8ca1d2cc2f7a6122b 100644 (file)
@@ -76,7 +76,7 @@ typedef struct WORMHOLE{
        Pixmap work;
 } wormhole;
 
-inline int rnd( int q ){
+/*inline*/ static int rnd( int q ){
 
        return random() % q;
 
@@ -268,12 +268,14 @@ static void moveColorChanger( color_changer * ch, Display * display, Colormap *
 
 }
 
+#if 0
 static void destroyColorChanger( color_changer * ch, Display * display, Colormap * cmap ){
        int q;
        for ( q = 0; q < ch->max; q++ )
                XFreeColors( display, *cmap, &( ch->shade[q].pixel ), 1, 0 );
        free( ch->shade );
 }
+#endif
 
 static void resizeWormhole( wormhole * worm, Display * display, Window * win ){
        
@@ -337,11 +339,13 @@ static void initWormhole( wormhole * worm, Display * display, Window * win ){
 
 }
 
+#if 0
 static void destroyWormhole( wormhole * worm, Display * display, Colormap * cmap ){
        destroyColorChanger( &(worm->changer), display, cmap );
        XFreePixmap( display, worm->work );
        free( worm->stars );
 }
+#endif
 
 static double Cos( int a ){
        return cos( a * 180.0 / M_PI );
@@ -678,5 +682,5 @@ void screenhack (Display *dpy, Window window) {
                */
        }
 
-       destroyWormhole( &worm, dpy, &cmap );
+/* not reached:        destroyWormhole( &worm, dpy, &cmap ); */
 }
index 54164bf492c0c611728f906336ab7588c77820f7..8833534983e7bf1079d874378776146433868a26 100644 (file)
@@ -39,8 +39,8 @@ Number of stars to create every animation loop.
 Speed light streaks fly by.
 .TP 8
 .B \-delay \fImicroseconds\fP
-Number of microseconds to delay between each frame.  Default 50000, meaning
-about 1/20th second.  Compare and contrast with \fI\-speed\fP, above.
+Number of microseconds to delay between each frame.  Default 10000, meaning
+about 1/100th second.  Compare and contrast with \fI\-zspeed\fP, above.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 15b4c993689edcb2a1f9d12144421b9abc8e62ab..293bdeac12b04c66eebcf63c0367ab01f2390078 100644 (file)
@@ -40,12 +40,6 @@ Install a private colormap for the window.
 .B \-visual \fIvisual\fP
 Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
-.TP 8
-.B \-cycle
-Cycle through all the available modes.  This is the default.
-.TP 8
-.B \-no-cycle
-Don't cycle modes.
 .SH ENVIRONMENT
 .PP
 .TP 8
@@ -68,9 +62,9 @@ between -180 and +180.
 
 .SH SEE ALSO
 .BR X (1),
-.BR xteevee (1),
-.BR apple2 (1),
-.BR bsod (1),
+.BR xteevee (MANSUFFIX),
+.BR apple2 (MANSUFFIX),
+.BR bsod (MANSUFFIX),
 .BR xscreensaver (1),
 .BR xscreensaver\-demo (1),
 .BR xscreensaver\-getimage (1)
index bf3b10fb271333d23f08f41f496b1fcb329ac65e..cd6a46d6998975d3d6265f1495aca1b523069031 100644 (file)
@@ -50,10 +50,7 @@ Specifies the minimum color index to be used for negative exponents
 .TP
 -D \fIn\fP
 Specifies the "dwell" or number of iterations over which to average in order
-to calculate the Lyapunov exponent. Default is 400.
-.TP
--B 
-Causes the stop, go, spin and quit buttons to be displayed.
+to calculate the Lyapunov exponent. Default is 50.
 .TP
 -H \fIn\fP
 Specifies the height of the window. Default is 256.
@@ -74,18 +71,15 @@ value 'a'.
 .TP
 -S \fIn\fP
 Specifies the "settle" or number of iterations prior to the beginning of
-the calculation of the Lyapunov exponent. Default is 200.
-.TP
--W \fIn\fP
-Specifies the width of the window. Default is 256.
+the calculation of the Lyapunov exponent. Default is 50.
 .TP
 -a \fIr\fP
 Specifies the real value to use as the minimum parameter value of the 
-horizontal axis. Default is 3.0 for the logistic map.
+horizontal axis. Default is 2.0 for the logistic map.
 .TP
 -b \fIn\fP
 Specifies the real value to use as the minimum parameter value of the 
-vertical axis. Default is 3.0 for the logistic map.
+vertical axis. Default is 2.0 for the logistic map.
 .TP
 -c \fIn\fP
 Selects one of six different color wheels to use. The default color
@@ -106,7 +100,7 @@ Specifies the real value to be used as the range over which the vertical
 parameter values vary. The default is 1.0.
 .TP
 -i \fIr\fP
-Specifies the real value of the initial condition to use. Default is 0.05.
+Specifies the real value of the initial condition to use. Default is 0.65.
 .TP
 -m \fIn\fP
 Selects between available non-linear maps of the unit interval. A value of
@@ -130,26 +124,17 @@ and narrowing the color range for positive exponents. This can be toggled
 during runtime by pressing the 'p' key.
 .TP
 -r \fIn\fP
-Specifies the maximum rgb value to be used. Default is 35000.
+Specifies the maximum rgb value to be used. Default is 65000.
 .TP
 -s \fIn\fP
 Specifies the length of the color wheel spin.
 .TP
--u
-Produces a usage message.
-.TP
 -v 
 Prints out the various values to be used and exits.
 .TP
 -w \fIr\fP
 Specifies the real value to be used as the range over which the horizontal
 parameter values vary. The default is 1.0.
-.TP
--x \fIn\fP
-Specifies the x screen coordinate of the window (default is 256).
-.TP
--y \fIn\fP
-Specifies the y screen coordinate of the window (default is 256).
 .sp 2
 .SH NOTES
 .sp
index 4f8bc1d1f6413323d7783d935c64665cd49b7df5..c91d1c57a80666079893e4e08b7fe82fc4c6f518 100644 (file)
@@ -17,7 +17,7 @@ is seen on the computer monitors in the Wachowski brothers' film,
 "The Matrix".  
 
 Also see
-.BR glmatrix (1)
+.BR glmatrix (MANSUFFIX)
 for a 3D rendering of the similar effect that appeared in the title
 sequence of the movie.
 .SH OPTIONS
@@ -96,7 +96,7 @@ to get the default host and display number.
 to get the name of a resource file that overrides the global resources
 stored in the RESOURCE_MANAGER property.
 .SH SEE ALSO
-.BR glmatrix (1),
+.BR glmatrix (MANSUFFIX),
 .BR X (1),
 .BR xscreensaver (1)
 .SH COPYRIGHT
index f0a5589e7f66869dc56868a94098b1cd389cf95d..f036f0fecb8fcee912c2b6588914cfb2640e71e1 100644 (file)
@@ -30,7 +30,7 @@ file; see
 for more details.
 .PP
 See also
-.BR xanalogtv (1)
+.BR xanalogtv (MANSUFFIX)
 for a more sophisticated (but more graphics-intensive) implementation
 of this concept.
 .SH OPTIONS
@@ -111,9 +111,9 @@ mode, as a percentage.
 should simulate more TV problems.
 .SH SEE ALSO
 .BR X (1),
-.BR xanalogtv (1),
-.BR apple2 (1),
-.BR bsod (1),
+.BR xanalogtv (MANSUFFIX),
+.BR apple2 (MANSUFFIX),
+.BR bsod (MANSUFFIX),
 .BR xscreensaver (1),
 .BR xscreensaver\-demo (1),
 .BR xscreensaver\-getimage (1)
index 7073ce09a7e71fc574cd4d599c087873e897c873..4e59b1402b29d3fd9a226b9337fff3039f6ffc1b 100644 (file)
@@ -1,4 +1,4 @@
-# Auto-generated: Fri Oct 21 23:44:10 PDT 2005
+# Auto-generated: Wed Feb  8 19:16:55 PST 2006
 driver/demo-Gtk-conf.c
 driver/demo-Gtk-support.c
 driver/demo-Gtk-widgets.c
index 7b105c9e275bb1c6079c736fef54bd9f73f181dd..7465543d45b403744ee8329fd66422cdcf05b967 100644 (file)
@@ -1,2 +1,2 @@
 static const char screensaver_id[] =
-       "@(#)xscreensaver 4.23 (21-Oct-2005), by Jamie Zawinski (jwz@jwz.org)";
+       "@(#)xscreensaver 4.24 (21-Oct-2005), by Jamie Zawinski (jwz@jwz.org)";
index 9ebb6643bcda39c78f5ad0534871c1c83492bc60..c97e73fa429185ebe1f6c499cfc05c426dc157e2 100644 (file)
@@ -1,5 +1,5 @@
 %define        name xscreensaver
-%define        version 4.23
+%define        version 4.24
 
 Summary:       X screen saver and locker
 Name:          %{name}