[project @ 1996-01-23 11:11:20 by partain]
authorpartain <unknown>
Tue, 23 Jan 1996 11:11:49 +0000 (11:11 +0000)
committerpartain <unknown>
Tue, 23 Jan 1996 11:11:49 +0000 (11:11 +0000)
Final(?) 1.2-compiler base fixes

ghc/compiler/yaccParser/hslexer.c
ghc/compiler/yaccParser/hslexer.flex
ghc/runtime/gum/HLComms.lc
ghc/runtime/gum/LLComms.lc
ghc/runtime/gum/SysMan.lc
ghc/runtime/main/main.lc

index f7fd94c..add30be 100644 (file)
@@ -1,7 +1,7 @@
 /* A lexical scanner generated by flex */
 
 /* Scanner skeleton version:
- * $Header: /srv/cvs/cvs.haskell.org/fptools/ghc/compiler/yaccParser/Attic/hslexer.c,v 1.3 1996/01/18 16:36:38 partain Exp $
+ * $Header: /srv/cvs/cvs.haskell.org/fptools/ghc/compiler/yaccParser/Attic/hslexer.c,v 1.4 1996/01/23 11:11:20 partain Exp $
  */
 
 #define FLEX_SCANNER
@@ -283,7 +283,7 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
 
 #define YY_NUM_RULES 202
 #define YY_END_OF_BUFFER 203
-static yyconst short int yy_accept[837] =
+static yyconst short int yy_accept[743] =
     {   0,
         0,    0,    0,    0,    0,    0,    0,    0,  191,  191,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -296,87 +296,77 @@ static yyconst short int yy_accept[837] =
       121,  121,  121,  121,  121,  121,  121,  121,   96,   86,
        97,  104,  122,  191,  196,  196,  133,  127,  105,  111,
 
-      111,  121,  102,  103,  121,  121,  121,  121,  121,  121,
-      121,  121,  121,  121,  121,  189,  127,  122,  111,  197,
-      121,  121,  121,  121,  121,   96,  122,  122,  122,  197,
-      197,  121,  121,  197,  200,  136,  135,  139,  201,  189,
-      142,  201,  185,  201,  201,  201,  201,  201,  201,  201,
-      201,  201,  201,  201,  201,  201,  201,  141,  201,  151,
-      153,  161,  157,  201,  163,  155,  159,  201,  201,  130,
-      129,  128,  185,    0,    0,  152,    0,  162,    0,    0,
-        0,  175,    0,    0,    0,    0,  160,  178,  179,  154,
-      156,    0,    0,  180,  165,  164,  182,    0,    0,    0,
-
-      181,  158,  184,  186,  187,  189,  122,  133,  132,  127,
-      126,  188,   89,   83,    0,  111,    0,    0,   91,   88,
-       90,  121,  120,    0,  120,  121,  121,  121,  121,  121,
-      121,   61,  121,   75,  121,  121,   69,  121,  121,   72,
-      121,  121,  190,    0,    0,  191,  192,    0,  195,  193,
-      194,    0,  133,  132,  127,    0,    0,  110,    0,  111,
-        0,    0,  119,  121,  120,    0,    0,  121,  121,  121,
-      121,  121,  121,   61,  121,   75,  121,  121,   69,  121,
-      121,   72,  121,  121,    0,  127,    0,  111,    0,    0,
+      111,  102,  103,  189,  127,  122,  111,  197,  121,  121,
+      121,  121,  121,   96,  122,  122,  122,  197,  197,  121,
+      121,  197,  200,  136,  135,  139,  201,  189,  142,  201,
+      185,  201,  201,  201,  201,  201,  201,  201,  201,  201,
+      201,  201,  201,  201,  201,  141,  201,  151,  153,  161,
+      157,  201,  163,  155,  159,  201,  201,  130,  129,  128,
+      185,    0,    0,  152,    0,  162,    0,    0,    0,  175,
+        0,    0,    0,    0,  160,  178,  179,  154,  156,    0,
+        0,  180,  165,  164,  182,    0,    0,    0,  181,  158,
+      184,  186,  187,  189,  122,  133,  132,  127,  126,  188,
+
+       89,   83,    0,  111,    0,    0,   91,   88,   90,  119,
+      121,  120,    0,  120,  121,  121,  121,  121,  121,  121,
+       61,  121,   75,  121,  121,   69,  121,  121,   72,  121,
+      121,  190,    0,    0,  191,  192,    0,  195,  193,  194,
+        0,  133,  132,  127,    0,    0,  110,    0,  111,    0,
+        0,  120,    0,    0,    0,  127,    0,  111,    0,    0,
         0,  120,  120,  120,  120,  120,  120,  120,  120,  120,
-
       120,  120,  120,  120,  120,  120,  120,    0,  121,  121,
        75,  121,   69,  190,    0,  121,  136,  135,  134,  138,
       149,  150,  174,  167,  168,  169,  170,  183,  166,  148,
+
       147,  177,  173,  146,  171,  143,  144,  145,  176,  172,
       127,  125,  188,  188,  188,  188,  114,  107,  109,  120,
       120,  121,  121,  121,  121,  121,  121,  121,  121,  121,
       121,  121,   76,  121,  121,  121,  121,  121,    0,    0,
         1,    1,    0,  131,  125,    0,    0,  114,  107,  109,
-      120,  120,    0,    0,    0,  121,  121,  121,  121,  121,
-      121,  121,  121,  121,  121,  121,   76,  121,  121,  121,
-
-      121,  121,    0,    0,    0,   18,   19,    0,  120,  120,
-      120,  120,   12,  120,  120,  120,  120,  120,  120,   17,
-      120,   15,  120,  120,  120,   11,  120,  120,    6,  120,
-      120,  120,  120,   14,  120,  120,  120,   13,  120,  120,
-      118,  121,   76,   53,  188,    0,  120,   54,  121,   56,
-      121,  121,   59,  121,  121,  121,  121,  121,  121,  121,
-       71,   73,  121,    0,    0,   52,   52,   52,   52,   52,
-       52,    0,  124,    0,    0,  113,    0,  106,  108,  120,
-      120,  123,    0,   54,  121,   56,  121,  121,   59,  121,
-      121,  121,  121,  121,  121,  121,   71,   73,  121,   46,
-
-        0,  101,  120,  120,  120,  120,  120,  120,  120,  120,
-      120,  120,  120,  120,  120,  120,  120,   16,  120,    7,
+      120,  120,    0,    0,    0,    0,    0,    0,   18,   19,
+        0,  120,  120,  120,  120,   12,  120,  120,  120,  120,
+      120,  120,   17,  120,   15,  120,  120,  120,   11,  120,
+      120,    6,  120,  120,  120,  120,   14,  120,  120,  120,
+       13,  120,  120,  118,  121,   76,   53,  188,    0,  120,
+
+       54,  121,   56,  121,  121,   59,  121,  121,  121,  121,
+      121,  121,  121,   71,   73,  121,    0,    0,   52,   52,
+       52,   52,   52,   52,    0,  124,    0,    0,  113,    0,
+      106,  108,  120,  120,  123,    0,   46,    0,  101,  120,
       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
-      120,  120,  118,   54,    0,  114,   81,   55,  121,  121,
-      121,  121,   63,  121,  121,  121,  121,   74,   52,   52,
-       52,   52,   52,   52,   52,    0,  112,    0,  114,  120,
-      120,  115,   55,  121,  121,  121,  121,   63,  121,  121,
-      121,  121,   74,    0,    0,  120,   22,  120,  120,   20,
+      120,  120,  120,  120,   16,  120,    7,  120,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  120,  120,  118,
+       54,    0,  114,   81,   55,  121,  121,  121,  121,   63,
+      121,  121,  121,  121,   74,   52,   52,   52,   52,   52,
+       52,   52,    0,  112,    0,  114,  120,  120,  115,    0,
+
+        0,  120,   22,  120,  120,   20,  120,  120,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  116,  120,  120,
       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
-      120,  116,  120,  120,  120,  120,  120,  120,  120,  120,
-
-      120,  120,  120,  120,  121,  121,   60,   62,   64,   65,
-      121,  121,   68,  121,   52,   52,   52,   52,   52,   52,
-       52,    0,   79,  120,  121,  121,   60,   62,   64,   65,
-      121,  121,   68,  121,  120,  120,  120,  120,  120,  120,
-       35,  120,   36,  120,  120,  120,  120,   34,  120,  120,
-       40,  120,   23,  120,  120,   38,  117,  120,  120,   39,
-      120,   57,  121,  121,  121,  121,   52,   52,   52,   52,
-       52,   52,   52,    0,    2,    2,  120,   77,   57,  121,
-      121,  121,  121,  120,  120,  120,  120,  120,  120,  120,
-      120,  120,  120,  120,  120,  120,  120,   33,  120,   21,
-
-      120,  120,   58,   66,  121,   70,   52,   52,   52,   52,
-       52,   52,   52,  120,  120,   58,   66,  121,   70,  120,
-      120,   41,  120,   32,   37,  120,  120,  120,  120,   25,
-      120,  120,  120,  120,  120,  120,  120,   82,   67,   52,
-        0,   52,   52,   48,   52,   52,   80,  120,   67,  120,
-      120,   29,  120,   30,   31,   42,   43,   44,   45,  120,
-      120,  120,   28,   52,    0,    0,   52,   52,   52,   52,
-       78,    8,  120,    9,   24,  120,  120,   52,    0,   51,
-       50,   52,   52,  120,  120,  120,   52,    3,    3,   52,
-       52,  120,  120,   10,   52,   52,   47,  120,  120,   52,
-
-       52,   27,  120,    5,   52,  120,    0,   52,  120,    0,
-       52,  120,    0,   49,   26,    0,    0,    0,    0,    0,
+      121,  121,   60,   62,   64,   65,  121,  121,   68,  121,
+       52,   52,   52,   52,   52,   52,   52,    0,   79,  120,
+      120,  120,  120,  120,  120,  120,   35,  120,   36,  120,
+      120,  120,  120,   34,  120,  120,   40,  120,   23,  120,
+      120,   38,  117,  120,  120,   39,  120,   57,  121,  121,
+      121,  121,   52,   52,   52,   52,   52,   52,   52,    0,
+        2,    2,  120,   77,  120,  120,  120,  120,  120,  120,
+
+      120,  120,  120,  120,  120,  120,  120,  120,   33,  120,
+       21,  120,  120,   58,   66,  121,   70,   52,   52,   52,
+       52,   52,   52,   52,  120,  120,  120,  120,   41,  120,
+       32,   37,  120,  120,  120,  120,   25,  120,  120,  120,
+      120,  120,  120,  120,   82,   67,   52,    0,   52,   52,
+       48,   52,   52,   80,  120,  120,  120,   29,  120,   30,
+       31,   42,   43,   44,   45,  120,  120,  120,   28,   52,
+        0,    0,   52,   52,   52,   52,   78,    8,  120,    9,
+       24,  120,  120,   52,    0,   51,   50,   52,   52,  120,
+      120,  120,   52,    3,    3,   52,   52,  120,  120,   10,
+
+       52,   52,   47,  120,  120,   52,   52,   27,  120,    5,
+       52,  120,    0,   52,  120,    0,   52,  120,    0,   49,
+       26,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    4,    0
+        4,    0
     } ;
 
 static yyconst int yy_ec[256] =
@@ -426,233 +416,213 @@ static yyconst int yy_meta[92] =
 
     } ;
 
-static yyconst short int yy_base[881] =
+static yyconst short int yy_base[785] =
     {   0,
-        0,    0,    0,    4,   58,  138,  224, 2450,    0,    1,
-      315, 2449,  402,    0,  487,    0,   25,   39,  578,    0,
-     2456, 2459, 2459, 2443, 2446, 2459, 2459, 2459,   13, 2418,
-        7,   12,   12,   21,   10, 2401, 2399, 2412,   18, 2398,
-       69, 2397, 2395, 2459,    0, 2459, 2459, 2459, 2459,    0,
-     2459, 2459, 2459,    0,   50,    0, 2439, 2433, 2459, 2459,
-        0, 2459,   46, 2426,  131,  415, 2416, 2459, 2425, 2410,
-        0,    0, 2459,    0, 2459,    6, 2459,   11,   36, 2365,
-     2366,   30, 2369, 2359, 2366, 2366,   47, 2362, 2416,    0,
-     2459,    0,   52,    0,   13,    2, 2425, 2419,  425,  662,
-
-      506, 2422,   66, 2365,   66,  452,  105,    2,  129,  124,
-      107,  131,  138,  663,   42,  407,    0,  148,  515,  745,
-        5,  158,  421,  449,  455, 2411,    0, 2410, 2395, 2362,
-     2360,  122,  135, 2406, 2459, 2415, 2413, 2409, 2459,  192,
-     2459, 2402,  652, 2383,  132,  169,  417,  497,  370, 2366,
-     2364, 2377,  137, 2363,  648, 2362, 2360, 2459,    0, 2459,
-     2459, 2459, 2459,  686, 2459, 2459, 2459,    0, 2394, 2398,
-     2401, 2459,  692, 2365, 2363, 2459, 2360, 2459,  669, 2361,
-     2367, 2459, 2354, 2350, 2366,  410, 2459, 2459, 2459, 2459,
-     2459, 2357, 2355, 2459, 2459, 2358, 2459, 2341, 2362, 2349,
-
-     2459, 2459, 2459,  699,    0,  723,    0, 2387, 2459, 2381,
-     2459,  727,    0,    0,  734,  745,  722,    0,    0, 2459,
-        0,    0,    0, 2329, 2324, 2309, 2324, 2306,  141, 2306,
-     2318,    0, 2306,  464, 2302, 2315,    0, 2305, 2312,    0,
-     2301, 2310, 2370,  210, 2304,    0,    0, 2359, 2459,    0,
-     2459, 2287, 2367, 2365, 2360,  796,  815, 2459,  822,  841,
-      752,    0, 2459, 2363,  114, 2362,    0,  410,  435,  424,
-      488,  489,  454, 2361,  495,  725,  484,  493, 2360,  726,
-      451, 2359,  673,  730, 2349, 2353,  830,  863, 2301, 2300,
-     2302,  846,  524,  772, 2298, 2322, 2296, 2321,  699,  738,
-
-     2307, 2306,  843,  641,  501, 2305, 2276,    0,  694,  819,
-      821,  823,  849, 2459, 2263,  753, 2345, 2343, 2459, 2459,
-     2459, 2459, 2459, 2459, 2459, 2459, 2459, 2459, 2459, 2459,
-     2459, 2459, 2459, 2459, 2459, 2459, 2459, 2459, 2459, 2459,
-     2338, 2459,  873,  893,  899,  908,  894,  901,    0,    0,
-     2282, 2279, 2266, 2281, 2280, 2271, 2274, 2269, 2263, 2267,
-     2257, 2269,    0, 2254, 2271, 2258, 2265, 2253,  925,  865,
-     2459,  869, 2255, 2459, 2323,  912,    0,  930,  957, 2322,
-     2248, 2263, 2263, 2318, 2313,  899,  779,  884,  931,  797,
-      900,  932,  671,  933,  934,  935, 2316,  936,  937,  816,
-
-      938,  731, 2233, 2314,  963, 2459, 2459, 2258, 2269,  918,
-     2271, 2266,    0, 2279, 2270, 2277, 2261, 2278, 2264,    0,
-     2248,    0, 2258, 2257, 2245,    0,  928,  897,    0, 2266,
-      953, 2255, 2268,    0, 2256, 2270, 2265,    0, 2258, 2220,
-        0,  966,  984, 2459, 1006, 1000, 2236,    0, 2217,    0,
-     2214, 2212,    0, 2218, 2214, 2207, 2227, 2211, 2215, 2213,
-        0,    0, 2219, 1025,  660, 1034, 1038, 1042, 1046, 1050,
-     1060, 2218, 2459, 1064, 2278, 2277, 1076, 2459, 2459, 2208,
-     2208, 2459, 2270, 2273,  990, 2272,  951,  989, 2271,  956,
-      987,  995, 1004, 1010, 1005, 1006, 2270, 2269, 1048, 2459,
-
-     1089, 2459, 2224, 2212, 2211, 2240, 2209, 2224, 2207, 2218,
-      408, 2222, 2215, 2230, 2232, 2214, 2223,    0, 2199,    0,
-     2224, 2224, 2220, 2214, 2212, 2219, 2220, 2191, 2205, 2202,
-     2201, 2185,    0, 1051, 1098, 1105,    0,    0, 2174, 2175,
-     2176, 2164, 1057, 2168, 2174, 2174, 2169,    0, 1131, 1136,
-     1140, 1144, 1148, 1154, 1158, 2236, 2459, 1144, 1164, 2177,
-     2164, 2459, 2230, 1099, 1108, 1023,  993, 1146, 1147,  140,
-     1165, 1167, 2229, 1176, 1186, 2186,    0, 2199, 2177,    0,
-     2170, 2197, 2179, 2167, 2179, 2165, 2164, 2163, 2175, 2168,
-     2115,    0, 2128, 2138, 2109, 2117, 2104, 2122, 1142, 1193,
-
-     2115, 2099, 2098, 2085, 2077, 2081,    0,    0,    0,    0,
-     2090, 2091,    0, 2069, 1225, 1233, 1239, 1243, 1247, 1251,
-     1259, 1074, 2092, 2066, 1097, 1195, 2120, 2117, 2115, 2098,
-     1172, 1168, 2087, 1196, 2060, 2051, 2038, 2052, 2050, 2032,
-        0, 2017,    0, 1999, 1988, 1973, 1943,    0, 1913, 1937,
-        0, 1936,    0, 1907, 1933,    0, 1245, 1901, 1928,    0,
-     1885,    0, 1887, 1859, 1842, 1823, 1272, 1278, 1282, 1293,
-     1298, 1302, 1306, 1219, 2459, 1228, 1857, 1852, 1880, 1249,
-     1250, 1251, 1270, 1851, 1841, 1806, 1825, 1796, 1795, 1802,
-     1816, 1815, 1796, 1782, 1271, 1799, 1798,    0, 1772,    0,
-
-     1746, 1696,    0,    0, 1679,    0, 1321, 1325, 1346, 1350,
-     1354, 1358, 1362, 1673, 1699, 1725, 1718, 1305, 1717, 1660,
-     1641,    0, 1616,    0,    0, 1626, 1614, 1612, 1611,    0,
-     1610, 1607, 1593, 1474, 1462, 1483, 1458,    0,    0, 1368,
-     1502, 1373, 1378, 1394, 1398, 1402,    0, 1455, 1495, 1439,
-     1450,    0, 1437,    0,    0,    0,    0,    0,    0, 1436,
-     1459, 1441,    0, 1407, 1464, 1203, 1411, 1420, 1428, 1432,
-        0,    0, 1416,    0,    0, 1436, 1434, 1439, 1435, 1445,
-     1451, 1455, 1462, 1393, 1392, 1357, 1288, 2459, 1400, 1287,
-     1424, 1359, 1338,    0, 1335, 1418, 1334, 1326, 1337, 1440,
-
-     1432,    0, 1321, 1301, 1429, 1305, 1290, 1438, 1296, 1262,
-     1446, 1236, 1252, 1368,    0, 1175, 1140, 1070, 1060, 1037,
-     1052,  894,  765,  744,  733,  741,  650,  527,  548, 1485,
-     1507,  408,  396,   96, 2459, 2459, 1533, 1555, 1577, 1599,
-     1621, 1640, 1651, 1475, 1664, 1677, 1696, 1710, 1718, 1738,
-     1760, 1782, 1800, 1819, 1835, 1843, 1860, 1876, 1893, 1912,
-     1934, 1503, 1948, 1960, 1980, 2002, 2024, 2044, 2061, 1504,
-     2077, 2097, 1297, 2113, 2130, 2151, 1709, 2160, 2180, 2202
+        0,    0,    0,    4,   58,  138,  224, 2291,    0,    1,
+        3,   23,  311,    0,  396,    0,   50,   70,  487,    0,
+     2298, 2300, 2300, 2285, 2288, 2300, 2300, 2300,  131, 2260,
+        4,    0,   24,   54,   18, 2243, 2241, 2254,    5, 2240,
+       74, 2239, 2237, 2300,    0, 2300, 2300, 2300, 2300,  145,
+     2300, 2300, 2300,    0,  144,    0, 2281, 2275, 2300, 2300,
+        0, 2300,    5, 2268,  329,  338, 2258, 2300, 2267, 2252,
+        0, 2274, 2300,    0, 2300,   22, 2300,   54,   68,  105,
+       34,  109,    6,  117,  124,  133,  357,  135, 2264,    0,
+     2300,    0,  134,    0,   97,    2, 2273, 2267,  416,  571,
+
+      580,  130, 2214,  317,    0,   17,  591,  652,  197,  336,
+      333,  358,  330, 2260,    0, 2259, 2244, 2211, 2209,  340,
+      349, 2255, 2300, 2264, 2262, 2258, 2300,  366, 2300, 2251,
+      428, 2232,  159,  373,  146,  535,  161, 2215, 2213, 2226,
+      168, 2212,  577, 2211, 2209, 2300,    0, 2300, 2300, 2300,
+     2300,  615, 2300, 2300, 2300,    0, 2243, 2247, 2250, 2300,
+      621, 2214, 2212, 2300, 2209, 2300,  598, 2210, 2216, 2300,
+     2203, 2199, 2215,  290, 2300, 2300, 2300, 2300, 2300, 2206,
+     2204, 2300, 2300, 2207, 2300, 2190, 2211, 2198, 2300, 2300,
+     2300,  630,    0,  659,    0, 2236, 2300, 2230, 2300,  663,
+
+        0,    0,  652,  688,  659,    0,    0, 2300,    0, 2300,
+     2233,    0, 2177, 2172,  364,  365,  401,  648,  620,  602,
+     2230,   55,  661,  577,  618, 2229,  615,  404, 2228,  623,
+      625, 2227,  210, 2161,    0,    0, 2216, 2300,    0, 2300,
+     2144, 2224, 2222, 2217,  726,  737, 2300,  715,  746,  753,
+        0,  152, 2220,    0, 2210, 2214,  759,  785, 2162, 2161,
+     2163,  779,  399,  429, 2159, 2183, 2157, 2182,  751,  414,
+     2168, 2167,  395,  422,  666, 2166, 2137,    0,  575,  715,
+      599,  712,  717, 2300, 2124,  719, 2206, 2204, 2300, 2300,
+     2300, 2300, 2300, 2300, 2300, 2300, 2300, 2300, 2300, 2300,
+
+     2300, 2300, 2300, 2300, 2300, 2300, 2300, 2300, 2300, 2300,
+     2199, 2300,  813,  817,  826,  831,  823,  830,    0,    0,
+     2143,  722,  745,  624,  791,  683,  789,  784,  708,  790,
+      757,  793, 2201,  782,  794,  787,  816,  817,  865,  834,
+     2300,  837, 2131, 2300, 2199,  851,    0,  858,  897, 2198,
+     2124, 2139, 2139, 2194, 2189, 2110, 2191,  915, 2300, 2300,
+     2135, 2146,  847, 2148, 2143,    0, 2156, 2147, 2154, 2138,
+     2155, 2141,    0, 2125,    0, 2135, 2134, 2122,    0,  833,
+      267,    0, 2143,  852, 2132, 2145,    0, 2133, 2147, 2142,
+        0, 2135, 2097,    0,  879,  891, 2300,  909,  934, 2113,
+
+     2167,  853, 2166,  882,  886, 2165,  895,  896,  899,  901,
+      900,  907,  916, 2164, 2163,  917,  928,  418,  940,  985,
+      991,  995,  999, 1003, 2101, 2300, 1001, 2161, 2160, 1014,
+     2300, 2300, 2091, 2091, 2300, 2153, 2300, 1032, 2300, 2112,
+     2100, 2099, 2128, 2097, 2112, 2095, 2106,  881, 2110, 2103,
+     2118, 2120, 2102, 2111,    0, 2087,    0, 2112, 2112, 2108,
+     2102, 2100, 2107, 2108, 2079, 2093, 2090, 2089, 2073,    0,
+      938,  990, 1039,    0, 2129,  942,  945,  959,  960,  970,
+      967,  921, 1011,  954, 2128, 1064, 1068, 1072, 1079, 1083,
+     1087, 1091, 2130, 2300, 1077, 1110, 2071, 2058, 2300, 1090,
+
+     1117, 2082,    0, 2095, 2073,    0, 2066, 2093, 2075, 2063,
+     2075, 2061, 2060, 2059, 2071, 2083, 2056,    0, 2070, 2080,
+     2034, 2017, 2005, 2023, 1066, 1124, 2016, 1999, 1996, 1983,
+     1038, 1097, 2047, 2046, 2045, 2044, 1012, 1098, 2043, 1100,
+     1149, 1153, 1157, 1163, 1167, 1176, 1183, 1118, 2011, 1986,
+     2015, 1997, 1972, 1986, 1985, 1972,    0, 1978,    0, 1963,
+     1952, 1946, 1949,    0, 1918, 1941,    0, 1941,    0, 1906,
+     1913,    0, 1169, 1863, 1880,    0, 1829, 1862, 1111, 1156,
+     1116, 1165, 1198, 1202, 1209, 1217, 1224, 1228, 1238, 1172,
+     2300, 1193, 1833, 1828, 1829, 1827, 1769, 1778, 1735, 1733,
+
+     1744, 1757, 1755, 1729, 1710, 1194, 1720, 1726,    0, 1718,
+        0, 1718, 1671, 1691, 1669, 1207, 1658, 1244, 1248, 1252,
+     1269, 1278, 1284, 1291, 1591, 1617, 1599, 1594,    0, 1580,
+        0,    0, 1588, 1565, 1546, 1532,    0, 1531, 1530, 1528,
+     1538, 1526, 1545, 1509,    0, 1434, 1295, 1416, 1299, 1305,
+     1309, 1314, 1318,    0, 1368, 1367, 1378,    0, 1363,    0,
+        0,    0,    0,    0,    0, 1360, 1386, 1369,    0, 1324,
+     1393, 1241, 1333, 1337, 1346, 1350,    0,    0, 1341,    0,
+        0, 1346, 1309, 1356, 1220, 1361, 1366, 1370, 1374, 1309,
+     1308, 1270, 1217, 2300, 1313, 1335, 1343, 1270, 1238,    0,
+
+     1233, 1339, 1274, 1215, 1226, 1376, 1348,    0, 1206, 1219,
+     1347, 1203, 1188, 1356, 1181, 1146, 1361, 1015, 1011, 1345,
+        0,  993,  995,  950,  946,  940,  966,  909,  750,  682,
+      597,  586,  543,  434,  429, 1415, 1423,  319,  206,   26,
+     2300, 2300, 1449, 1471, 1493, 1515, 1537, 1556, 1567, 1398,
+     1580, 1593, 1612, 1628, 1636, 1656, 1678, 1700, 1718, 1737,
+     1747, 1764, 1780, 1797, 1816, 1838, 1402, 1852, 1872, 1894,
+     1916, 1936, 1953, 1405, 1969, 1989, 1245, 2005, 2022, 2043,
+     1625, 2052, 2072, 2094
     } ;
 
-static yyconst short int yy_def[881] =
+static yyconst short int yy_def[785] =
     {   0,
-      837,  837,  838,  838,  839,  839,  836,    7,  840,  840,
-      836,   11,   11,   13,   11,   15,  841,  841,  836,   19,
-      836,  836,  836,  842,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  843,  836,  836,  836,  836,  836,
-      836,  836,  836,  844,  836,  845,  846,  847,  836,  836,
-      845,  836,  845,  845,  836,  836,  845,  836,  845,  845,
-      845,  848,  836,  845,  836,  849,  836,  848,  848,  848,
-      848,  848,  848,  848,  848,  848,  848,  848,  836,  845,
-      836,  845,  845,  850,  851,  852,  853,  854,  845,  836,
-
-      836,  855,  849,  856,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  836,  857,   99,  836,  849,
-      858,  858,  858,  858,  858,  836,  845,  845,  845,  849,
-      856,  855,  855,  836,  836,  859,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  843,  836,
-      836,  836,  836,  836,  836,  836,  836,  844,  836,  842,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-
-      836,  836,  836,  836,  844,  836,  845,  846,  836,  860,
-      836,  861,  845,  845,  836,  836,  836,  862,  845,  836,
-      845,  863,  864,  849,  864,  863,  863,  863,  863,  863,
-      863,  863,  863,  863,  863,  863,  863,  863,  863,  863,
-      863,  863,  836,  865,  836,  866,  867,  867,  836,  868,
-      836,  868,  869,  836,  860,  836,  836,  836,  836,  836,
-      836,  870,  836,  855,  864,  871,  872,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  836,  860,  836,  836,  836,  836,
-      836,  864,  864,  864,  864,  864,  864,  864,  864,  864,
-
-      864,  864,  864,  864,  864,  864,  864,  873,  874,  874,
-      874,  874,  874,  836,  836,  855,  875,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      860,  836,  861,  861,  836,  861,  836,  836,  862,  864,
-      864,  863,  863,  863,  863,  863,  863,  863,  863,  863,
-      863,  863,  863,  863,  863,  863,  863,  863,  876,  865,
-      836,  865,  836,  836,  836,  836,  877,  836,  836,  870,
-      864,  864,  836,  871,  872,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
-
-      855,  855,  836,  836,  836,  836,  836,  836,  864,  864,
-      864,  864,  864,  864,  864,  864,  864,  864,  864,  864,
-      864,  864,  864,  864,  864,  864,  864,  864,  864,  864,
-      864,  864,  864,  864,  864,  864,  864,  864,  864,  864,
-      878,  874,  874,  836,  836,  836,  864,  863,  863,  863,
-      863,  863,  863,  863,  863,  863,  863,  863,  863,  863,
-      863,  863,  863,  876,  464,  876,  876,  876,  876,  876,
-      876,  836,  836,  836,  877,  836,  836,  836,  836,  864,
-      864,  836,  836,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  836,
-
-      836,  836,  864,  864,  864,  864,  864,  864,  864,  864,
-      864,  864,  864,  864,  864,  864,  864,  864,  864,  864,
-      864,  864,  864,  864,  864,  864,  864,  864,  864,  864,
-      864,  864,  878,  874,  836,  836,  864,  863,  863,  863,
-      863,  863,  863,  863,  863,  863,  863,  863,  876,  876,
-      876,  876,  876,  876,  876,  836,  836,  836,  836,  864,
-      864,  836,  855,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  836,  836,  864,  864,  864,  864,  864,
-      864,  864,  864,  864,  864,  864,  864,  864,  864,  864,
-      864,  864,  864,  864,  864,  864,  864,  864,  864,  864,
-
-      864,  864,  864,  864,  863,  863,  863,  863,  863,  863,
-      863,  863,  863,  863,  876,  876,  876,  876,  876,  876,
-      876,  879,  864,  864,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  864,  864,  864,  864,  864,  864,
-      864,  864,  864,  864,  864,  864,  864,  864,  864,  864,
-      864,  864,  864,  864,  864,  864,  864,  864,  864,  864,
-      864,  863,  863,  863,  863,  863,  876,  876,  876,  876,
-      876,  876,  876,  879,  836,  879,  864,  864,  855,  855,
-      855,  855,  855,  864,  864,  864,  864,  864,  864,  864,
-      864,  864,  864,  864,  864,  864,  864,  864,  864,  864,
-
-      864,  864,  863,  863,  863,  863,  876,  876,  876,  876,
-      876,  876,  876,  864,  864,  855,  855,  855,  855,  864,
-      864,  864,  864,  864,  864,  864,  864,  864,  864,  864,
-      864,  864,  864,  864,  864,  864,  864,  864,  863,  876,
-      880,  876,  876,  876,  876,  876,  864,  864,  855,  864,
-      864,  864,  864,  864,  864,  864,  864,  864,  864,  864,
-      864,  864,  864,  876,  880,  880,  876,  876,  876,  876,
-      864,  864,  864,  864,  864,  864,  864,  876,  880,  876,
-      876,  876,  876,  864,  864,  864,  783,  836,  880,  783,
-      783,  864,  864,  864,  783,  783,  783,  864,  864,  783,
-
-      783,  864,  864,  836,  783,  864,  836,  783,  864,  836,
-      783,  864,  836,  783,  864,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,    0,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836
+      743,  743,  744,  744,  745,  745,  742,    7,  746,  746,
+        7,    7,    7,   13,    7,   15,  747,  747,  742,   19,
+      742,  742,  742,  748,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  749,  742,  742,  742,  742,  742,
+      742,  742,  742,  750,  742,  751,  752,  753,  742,  742,
+      751,  742,  751,  751,  742,  742,  751,  742,  751,  751,
+      751,  754,  742,  751,  742,  755,  742,  754,  754,  754,
+      754,  754,  754,  754,  754,  754,  754,  754,  742,  751,
+      742,  751,  751,  756,  757,  758,  759,  760,  751,  742,
+
+      742,  755,  761,  742,  762,   99,  742,  755,  763,  763,
+      763,  763,  763,  742,  751,  751,  751,  755,  761,  754,
+      754,  742,  742,  764,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  749,  742,  742,  742,
+      742,  742,  742,  742,  742,  750,  742,  748,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  750,  742,  751,  752,  742,  765,  742,  766,
+
+      751,  751,  742,  742,  742,  767,  751,  742,  751,  742,
+      754,  768,  755,  768,  754,  754,  754,  754,  754,  754,
+      754,  754,  754,  754,  754,  754,  754,  754,  754,  754,
+      754,  742,  769,  742,  770,  771,  771,  742,  772,  742,
+      772,  773,  742,  765,  742,  742,  742,  742,  742,  742,
+      774,  768,  775,  776,  742,  765,  742,  742,  742,  742,
+      742,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  777,  778,  778,
+      778,  778,  778,  742,  742,  754,  779,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      765,  742,  766,  766,  742,  766,  742,  742,  767,  768,
+      768,  754,  754,  754,  754,  754,  754,  754,  754,  754,
+      754,  754,  754,  754,  754,  754,  754,  754,  780,  769,
+      742,  769,  742,  742,  742,  742,  781,  742,  742,  774,
+      768,  768,  742,  775,  776,  742,  742,  742,  742,  742,
+      742,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  782,  778,  778,  742,  742,  742,  768,
+
+      754,  754,  754,  754,  754,  754,  754,  754,  754,  754,
+      754,  754,  754,  754,  754,  754,  780,  417,  780,  780,
+      780,  780,  780,  780,  742,  742,  742,  781,  742,  742,
+      742,  742,  768,  768,  742,  742,  742,  742,  742,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  782,
+      778,  742,  742,  768,  754,  754,  754,  754,  754,  754,
+      754,  754,  754,  754,  754,  780,  780,  780,  780,  780,
+      780,  780,  742,  742,  742,  742,  768,  768,  742,  742,
+
+      742,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      754,  754,  754,  754,  754,  754,  754,  754,  754,  754,
+      780,  780,  780,  780,  780,  780,  780,  783,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  754,  754,  754,
+      754,  754,  780,  780,  780,  780,  780,  780,  780,  783,
+      742,  783,  768,  768,  768,  768,  768,  768,  768,  768,
+
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  754,  754,  754,  754,  780,  780,  780,
+      780,  780,  780,  780,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  754,  780,  784,  780,  780,
+      780,  780,  780,  768,  768,  768,  768,  768,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768,  768,  780,
+      784,  784,  780,  780,  780,  780,  768,  768,  768,  768,
+      768,  768,  768,  780,  784,  780,  780,  780,  780,  768,
+      768,  768,  689,  742,  784,  689,  689,  768,  768,  768,
+
+      689,  689,  689,  768,  768,  689,  689,  768,  768,  742,
+      689,  768,  742,  689,  768,  742,  689,  768,  742,  689,
+      768,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,    0,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742
     } ;
 
-static yyconst short int yy_nxt[2551] =
+static yyconst short int yy_nxt[2392] =
     {   0,
-       23,   23,   23,   23,   23,   23,   23,   23,  836,  263,
-      836,   25,  263,  308,  836,   25,   95,   95,  251,  204,
-      204,  204,  204,  204,  204,  135,  135,  135,  135,  248,
-      836,  137,  173,  173,  173,  173,  173,  173,  173,  135,
-      135,  135,  135,  175,  177,  137,  179,  187,  180,  263,
-      192,  206,  206,  206,  206,  181,  244,  176,  836,   26,
-      188,  178,  212,   26,   28,  182,  183,  184,  224,   28,
-      193,  185,  186,  263,  273,  226,  213,   29,   29,   29,
-       29,   29,   29,   29,  138,  227,  225,   96,   96,  252,
-       30,   31,   32,   33,   34,   35,   36,   37,  138,  232,
-
-      228,   38,  249,   39,  229,  233,  234,   40,   41,  195,
-       42,   43,  263,  284,  263,  196,  197,   44,  239,   45,
-      198,  199,   46,   47,  240,  200,  245,   48,  224,  263,
-      268,  263,  265,  241,   49,   50,  263,   51,  263,   52,
-      269,   53,  263,   54,   28,  263,  225,  263,  215,   28,
-      216,  216,  216,  216,  216,  216,  216,   29,   29,   29,
-       29,   29,   29,   29,  836,  263,  308,  257,  175,  192,
-       30,   31,   32,   33,   34,   35,   36,   37,  381,  272,
-      382,   38,  176,   39,  278,  835,  270,   40,   41,  193,
-       42,   43,  277,  206,  206,  206,  206,   44,  274,   45,
-
-      279,  177,   46,   47,  275,  276,  280,   48,  217,  632,
-      355,  316,  371,  372,   49,   50,  218,   51,  178,   52,
-      356,   53,  310,   54,   22,   55,   55,   55,   55,   56,
+       23,   23,   23,   23,   23,   23,   23,   23,  742,   97,
+      742,   25,  742,  210,   98,   25,   95,   95,  240,   99,
+      742,  200,  100,  101,  101,  101,  101,  101,  101,   97,
+       93,  742,  165,  742,   98,  201,  246,  180,  742,   99,
+      163,  210,  100,  101,  101,  101,  101,  101,  101,  166,
+      123,  123,  123,  123,  164,  175,  125,  181,  167,   26,
+      168,  210,  210,   26,   28,  102,  103,  169,  176,   28,
+      123,  123,  123,  123,  224,  210,  125,   29,   29,   29,
+       29,   29,   29,   29,  213,  102,  103,   96,   96,  241,
+       30,   31,   32,   33,   34,   35,   36,   37,  170,  171,
+
+      172,   38,  214,   39,  173,  174,  220,   40,   41,  126,
+       42,   43,  210,  237,  183,  741,  210,   44,  215,   45,
+      184,  185,   46,   47,  210,  186,  187,   48,  216,  126,
+      188,  210,  217,  329,   49,   50,  218,   51,  233,   52,
+      210,   53,  210,   54,   28,  194,  194,  194,  194,   28,
+      161,  161,  161,  161,  161,  161,  161,   29,   29,   29,
+       29,   29,   29,   29,  192,  192,  192,  192,  192,  192,
+       30,   31,   32,   33,   34,   35,   36,   37,  221,  219,
+      167,   38,  168,   39,  222,  223,  238,   40,   41,  169,
+       42,   43,  213,  226,  225,  163,  252,   44,  175,   45,
+
+      180,  227,   46,   47,  210,  278,  231,   48,  234,  164,
+      214,  176,  341,  342,   49,   50,  351,   51,  352,   52,
+      181,   53,  740,   54,   22,   55,   55,   55,   55,   56,
        57,   56,   56,   56,   56,   58,   59,   60,   61,   62,
        63,   64,   56,   65,   66,   66,   66,   66,   66,   66,
        67,   68,   69,   70,   56,   71,   72,   72,   72,   72,
@@ -662,281 +632,265 @@ static yyconst short int yy_nxt[2551] =
        78,   79,   80,   72,   72,   81,   82,   72,   83,   84,
 
        72,   85,   72,   86,   72,   87,   72,   72,   88,   72,
-       72,   89,   90,   91,   92,   22,   55,   55,   55,   55,
-       56,   97,   56,   56,   56,   56,   98,   59,   60,   61,
-       62,   99,   64,   56,  100,  101,  101,  101,  101,  101,
-      101,   67,   68,   69,   70,   56,   71,  102,  102,  102,
-      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-      102,  102,  102,   73,   74,   75,   56,  103,  104,  102,
-      102,  105,  106,  107,  102,  102,  108,  109,  102,  110,
-      111,  102,  112,  102,  113,  102,  114,  102,  102,  115,
-
-      102,  102,   89,   90,   91,   92,  116,  187,  206,  206,
-      206,  206,  834,  117,  285,  833,   56,  263,  118,   56,
-      188,  119,  119,  119,  119,  119,  119,  119,  263,  308,
-       56,  263,  215,   56,  216,  216,  216,  216,  216,  216,
-      216,  212,  263,  333,  256,  257,  257,  257,  257,  257,
-      257,  179,  584,  180,  585,  213,  263,  308,  263,  263,
-      181,  263,  263,  308,  120,  334,  121,  121,  122,  121,
-      121,  121,  121,  121,  123,  121,  124,  121,  121,  125,
-      121,  121,  121,  121,  121,  121,  121,  121,  121,  126,
-      386,  263,  127,   22,  128,  263,  263,  311,   22,  387,
-
-      263,   56,  263,  129,   56,  388,   22,   22,   22,   22,
-       22,   22,   22,  258,   22,   56,  270,  312,   56,  400,
-      271,  392,  258,  259,  313,  260,  260,  260,  260,  260,
-      260,  260,  287,  360,  288,  288,  288,  288,  288,  288,
-      288,  182,  183,  184,  361,  362,   56,  185,  186,  130,
-      131,  437,  830,  102,  132,  102,  414,  389,  102,  133,
-      398,  102,  102,  438,  102,  397,  102,  390,  102,  391,
-      415,  102,  829,  393,  134,   56,   22,  127,  139,  140,
-      140,  140,  140,  139,  141,  139,  139,  139,  139,  141,
-      139,  139,  139,  139,  142,  139,  139,  143,  143,  143,
-
-      143,  143,  143,  143,  139,  139,  139,  139,  139,  139,
-      144,  145,  146,  147,  148,  149,  150,  151,  139,  139,
-      139,  152,  139,  153,  139,  139,  139,  154,  155,  139,
-      156,  157,  139,  139,  139,  139,  139,  158,  139,  159,
-      139,  139,  160,  161,  139,  139,  139,  162,  139,  139,
-      139,  139,  139,  139,  163,  164,  139,  165,  139,  166,
-      139,  167,  139,  168,  139,  169,  139,  139,  139,  258,
-      263,  173,  173,  173,  173,  173,  173,  173,  263,  259,
-      263,  260,  260,  260,  260,  260,  260,  260,  195,  324,
-      325,  326,  327,  435,  196,  197,  828,  436,  549,  198,
-
-      199,  263,  308,  550,  200,  204,  204,  204,  204,  204,
-      204,  173,  173,  173,  173,  173,  173,  173,  204,  204,
-      204,  204,  204,  204,  206,  206,  206,  206,  344,  345,
-      346,  344,  263,  263,  281,  424,  425,  263,  263,  261,
-      282,  348,  348,  348,  348,  348,  348,  262,  491,  283,
-      289,  401,  290,  347,  347,  347,  347,  347,  347,  347,
-      263,  426,  215,  291,  216,  216,  216,  216,  216,  216,
-      216,  379,  379,  379,  379,  379,  379,  292,  427,  293,
-      294,  827,  295,  826,  428,  296,  263,  297,  298,  299,
-      300,  301,  302,  825,  394,  303,  304,  305,  402,  306,
-
-      429,  824,  399,  258,  263,  395,  396,  224,  416,  417,
-      499,  265,  418,  287,  307,  257,  257,  257,  257,  257,
-      257,  257,  258,  263,  419,  225,  263,  308,  263,  308,
-      263,  308,  287,  395,  257,  257,  257,  257,  257,  257,
-      257,  378,  378,  378,  378,  378,  378,  378,  258,  405,
-      405,  405,  405,  405,  405,  405,  263,  308,  259,  485,
-      260,  260,  260,  260,  260,  260,  260,  371,  372,  488,
-      258,  371,  372,  376,  344,  345,  346,  344,  432,  409,
-      287,  377,  288,  288,  288,  288,  288,  288,  288,  410,
-      433,  263,  497,  411,  344,  345,  346,  344,  412,  442,
-
-      445,  445,  445,  445,  443,  434,  263,  263,  413,  344,
-      345,  346,  344,  347,  347,  347,  347,  347,  347,  347,
-      348,  348,  348,  348,  348,  348,  464,  464,  464,  465,
-      446,  474,  474,  474,  474,  474,  474,  476,  263,  263,
-      263,  263,  263,  263,  263,  263,  521,  823,  486,  378,
-      378,  378,  378,  378,  378,  378,  504,  466,  263,  522,
-      468,  505,  446,  263,  478,  469,  477,  484,  489,  470,
-      476,  519,  506,  263,  308,  471,  379,  379,  379,  379,
-      379,  379,  405,  405,  405,  405,  405,  405,  405,  524,
-      520,  263,  308,  525,  263,  487,  263,  263,  477,  501,
-
-      263,  496,  263,  494,  490,  492,  498,  445,  445,  445,
-      445,  263,  263,  263,  535,  493,  535,  263,  495,  536,
-      536,  536,  536,  536,  536,  536,  464,  464,  464,  464,
-      263,  501,  566,  564,  534,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  263,  822,  466,  263,  308,
-      468,  836,  836,  836,  836,  469,  567,  551,  569,  470,
-      563,  478,  565,  821,  628,  471,  675,  676,  552,  571,
-      568,  572,  554,  474,  474,  474,  474,  474,  474,  570,
-      558,  553,  558,  627,  820,  559,  559,  559,  559,  559,
-
-      559,  559,  819,  574,  263,  574,  263,  555,  575,  575,
-      575,  575,  575,  575,  575,  263,  573,  536,  536,  536,
-      536,  536,  536,  536,  536,  536,  536,  536,  536,  536,
-      536,  609,  836,  836,  836,  836,  610,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  263,  263,  836,  836,  836,  836,  836,
-      836,  836,  836,  559,  559,  559,  559,  559,  559,  559,
-      615,  476,  263,  625,  263,  263,  616,  818,  679,  263,
-      626,  618,  655,  559,  559,  559,  559,  559,  559,  559,
-      617,  619,  620,  476,  621,  575,  575,  575,  575,  575,
-
-      575,  575,  263,  263,  656,  575,  575,  575,  575,  575,
-      575,  575,  657,  657,  657,  657,  657,  657,  657,  766,
-      629,  675,  676,  631,  817,  630,  836,  836,  836,  836,
-      675,  676,  682,  633,  836,  836,  836,  836,  681,  634,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  263,  263,  263,  667,
-      836,  836,  836,  836,  657,  657,  657,  657,  657,  657,
-      657,  680,  683,  836,  836,  836,  836,  263,  668,  836,
-      836,  836,  836,  836,  836,  836,  836,  671,  816,  670,
-      669,  672,  779,  673,  836,  836,  836,  836,  815,  836,
-
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  731,  263,  813,  708,  441,  441,  718,  717,  716,
-      732,  733,  836,  836,  836,  836,  836,  836,  836,  741,
-      812,  709,  795,  796,  707,  810,  712,  467,  467,  809,
-      719,  807,  710,  711,  467,  467,  713,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  800,  740,  836,
-      836,  836,  836,  749,  836,  836,  836,  836,  742,  836,
-      836,  836,  836,  806,  467,  467,  743,  803,  802,  799,
-      744,  467,  467,  798,  746,  836,  836,  836,  836,  836,
-
-      836,  836,  836,  836,  836,  836,  836,  767,  836,  836,
-      836,  836,  836,  836,  836,  836,  766,  764,  467,  794,
-      745,  836,  836,  836,  836,  467,  793,  792,  768,  836,
-      836,  836,  836,  836,  836,  836,  836,  788,  789,  778,
-      836,  836,  836,  836,  804,  770,  836,  836,  836,  836,
-      769,  766,  836,  836,  836,  836,  836,  836,  836,  836,
-      797,  801,  780,  836,  836,  836,  836,  805,  467,  808,
-      786,  781,  783,  782,  467,  467,  785,  787,  784,  467,
-      766,  467,  467,  811,  814,  205,  467,  205,  467,  467,
-      467,  777,  790,  205,  776,  467,  467,  467,  775,  774,
-
-      773,  772,  263,  467,  831,  831,  831,  831,  831,  831,
-      831,  832,  791,  349,  380,  349,  380,  771,  766,  791,
-      763,  349,  380,  762,  761,  760,  831,  831,  831,  831,
-      831,  831,  831,   22,   22,   22,   22,   22,   22,   22,
+       72,   89,   90,   91,   92,  104,  458,   97,  194,  194,
+      194,  194,  105,  303,  255,   56,  739,  106,   56,  459,
+      107,  107,  107,  107,  107,  107,  107,  210,  278,   56,
+      210,  278,   56,  210,  278,  304,  203,  210,  204,  204,
+      204,  204,  204,  204,  204,  203,  210,  204,  204,  204,
+      204,  204,  204,  204,  210,  210,  278,  194,  194,  194,
+      194,  210,  210,  108,  103,  109,  109,  110,  109,  109,
+      109,  109,  109,  111,  109,  112,  109,  109,  113,  109,
+      109,  109,  109,  109,  109,  109,  109,  109,  114,  283,
+
+      280,  115,   22,  116,  217,  165,  205,   22,  210,  281,
+       56,  210,  117,   56,  206,   22,   22,   22,   22,   22,
+       22,   22,  166,   22,   56,  286,  282,   56,  228,  323,
+      385,  367,  200,  736,  229,  245,  246,  246,  246,  246,
+      246,  246,  386,  230,  322,  368,  201,  161,  161,  161,
+      161,  161,  161,  161,  380,   56,  486,  387,  118,  119,
+      381,  487,   72,  120,   72,  369,  370,   72,  121,  371,
+       72,   72,  336,   72,  388,   72,  382,   72,  389,  735,
+       72,  372,  324,  122,   56,   22,  115,  127,  128,  128,
+      128,  128,  127,  129,  127,  127,  127,  127,  129,  127,
+
+      127,  127,  127,  130,  127,  127,  131,  131,  131,  131,
+      131,  131,  131,  127,  127,  127,  127,  127,  127,  132,
+      133,  134,  135,  136,  137,  138,  139,  127,  127,  127,
+      140,  127,  141,  127,  127,  127,  142,  143,  127,  144,
+      145,  127,  127,  127,  127,  127,  146,  127,  147,  127,
+      127,  148,  149,  127,  127,  127,  150,  127,  127,  127,
+      127,  127,  127,  151,  152,  127,  153,  127,  154,  127,
+      155,  127,  156,  127,  157,  127,  127,  127,  247,  170,
+      171,  172,  210,  278,  210,  173,  174,  247,  248,  734,
+      249,  249,  249,  249,  249,  249,  249,  248,  247,  249,
+
+      249,  249,  249,  249,  249,  249,  210,  278,  257,  210,
+      258,  258,  258,  258,  258,  258,  258,  183,  294,  295,
+      296,  297,  210,  184,  185,  210,  733,  210,  186,  187,
+      210,  210,  210,  188,  192,  192,  192,  192,  192,  192,
+      161,  161,  161,  161,  161,  161,  161,  732,  250,  192,
+      192,  192,  192,  192,  192,  210,  251,  259,  333,  260,
+      194,  194,  194,  194,  314,  315,  316,  314,  210,  328,
+      261,  317,  317,  317,  317,  317,  317,  317,  318,  318,
+      318,  318,  318,  318,  262,  334,  263,  264,  403,  265,
+      210,  335,  266,  338,  267,  268,  269,  270,  271,  272,
+
+      327,  337,  273,  274,  275,  203,  276,  204,  204,  204,
+      204,  204,  204,  204,  213,  210,  390,  325,  252,  210,
+      278,  277,  210,  278,  210,  278,  210,  326,  391,  210,
+      330,  731,  214,  247,  348,  348,  348,  348,  348,  348,
+      348,  331,  332,  257,  247,  246,  246,  246,  246,  246,
+      246,  246,  210,  247,  257,  405,  246,  246,  246,  246,
+      246,  246,  246,  248,  210,  249,  249,  249,  249,  249,
+      249,  249,  349,  349,  349,  349,  349,  349,  358,  358,
+      358,  358,  358,  358,  358,  408,  730,  377,  378,  210,
+      401,  210,  247,  396,  210,  395,  210,  210,  210,  331,
+
+      210,  210,  257,  346,  258,  258,  258,  258,  258,  258,
+      258,  347,  362,  379,  314,  315,  316,  314,  314,  315,
+      316,  314,  363,  210,  210,  402,  364,  398,  398,  398,
+      398,  365,  314,  315,  316,  314,  341,  342,  410,  341,
+      342,  366,  317,  317,  317,  317,  317,  317,  317,  318,
+      318,  318,  318,  318,  318,  404,  407,  406,  413,  399,
+      210,  411,  409,  414,  412,  429,  417,  417,  417,  418,
+      427,  427,  427,  427,  427,  427,  456,  348,  348,  348,
+      348,  348,  348,  348,  415,  441,  210,  278,  461,  210,
+      442,  399,  462,  210,  430,  457,  416,  419,  210,  278,
+
+      421,  443,  210,  210,  431,  422,  210,  210,  210,  423,
+      398,  398,  398,  398,  210,  424,  349,  349,  349,  349,
+      349,  349,  429,  210,  210,  510,  430,  511,  210,  417,
+      417,  417,  417,  475,  358,  358,  358,  358,  358,  358,
+      358,  742,  742,  742,  742,  210,  278,  471,  472,  210,
+      472,  438,  210,  473,  473,  473,  473,  473,  473,  473,
+      419,  210,  729,  421,  476,  481,  210,  210,  422,  477,
+      728,  478,  423,  488,  210,  479,  727,  210,  424,  482,
+      726,  483,  725,  438,  480,  485,  742,  742,  742,  742,
+      538,  484,  742,  742,  742,  742,  742,  742,  742,  742,
+
+      742,  742,  742,  742,  742,  742,  742,  742,  431,  473,
+      473,  473,  473,  473,  473,  473,  531,  532,  210,  210,
+      427,  427,  427,  427,  427,  427,  540,  489,  495,  533,
+      495,  491,  724,  496,  496,  496,  496,  496,  496,  496,
+      490,  534,  723,  537,  535,  210,  500,  722,  500,  536,
+      492,  501,  501,  501,  501,  501,  501,  501,  473,  473,
+      473,  473,  473,  473,  473,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  721,  580,  539,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  496,  496,  496,  496,
+
+      496,  496,  496,  541,  210,  210,  571,  210,  542,  501,
+      501,  501,  501,  501,  501,  501,  544,  429,  210,  578,
+      591,  592,  543,  210,  429,  546,  545,  547,  572,  496,
+      496,  496,  496,  496,  496,  496,  501,  501,  501,  501,
+      501,  501,  501,  573,  573,  573,  573,  573,  573,  573,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  581,  210,  742,  742,  742,  742,  742,  742,
+      742,  742,  210,  579,  591,  592,  582,  742,  742,  742,
+      742,  614,  616,  583,  742,  742,  742,  742,  573,  573,
+      573,  573,  573,  573,  573,  591,  592,  719,  584,  742,
+
+      742,  742,  742,  742,  742,  742,  742,  587,  585,  586,
+      742,  742,  742,  742,  210,  718,  588,  589,  742,  742,
+      742,  742,  694,  695,  615,  742,  742,  742,  742,  742,
+      742,  742,  742,  716,  638,  617,  672,  715,  619,  742,
+      742,  742,  742,  639,  640,  742,  742,  742,  742,  742,
+      742,  742,  648,  742,  742,  742,  742,  672,  620,  713,
+      618,  701,  623,  394,  394,  706,  621,  420,  712,  622,
+      742,  742,  742,  742,  420,  646,  709,  708,  624,  742,
+      742,  742,  742,  420,  649,  742,  742,  742,  742,  705,
+      420,  647,  742,  742,  742,  742,  742,  742,  742,  742,
+
+      742,  742,  742,  742,  704,  650,  742,  742,  742,  742,
+      742,  742,  742,  742,  651,  742,  742,  742,  742,  742,
+      742,  742,  742,  653,  420,  742,  742,  742,  742,  672,
+      685,  420,  700,  673,  742,  742,  742,  742,  742,  742,
+      742,  742,  699,  698,  670,  692,  652,  742,  742,  742,
+      742,  742,  742,  742,  742,  674,  684,  742,  742,  742,
+      742,  676,  742,  742,  742,  742,  675,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  703,
+      710,  702,  707,  711,  686,  420,  691,  714,  687,  420,
+      689,  688,  420,  420,  693,  420,  420,  420,  420,  720,
+
+      420,  717,  420,  690,  420,  420,  420,  696,  193,  672,
+      193,  420,  319,  420,  319,  350,  193,  350,  420,  683,
+      319,  682,  681,  350,  697,  680,  420,  738,  679,  678,
+      677,  697,  672,  420,  737,  737,  737,  737,  737,  737,
+      737,  210,  737,  737,  737,  737,  737,  737,  737,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
-       22,   22,   22,   22,   22,   24,   24,   24,   24,   24,
+       22,   24,   24,   24,   24,   24,   24,   24,   24,   24,
        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
-       24,   24,   24,   24,   24,   24,   24,   27,   27,   27,
-       27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
-       27,   27,   27,   27,   27,   27,   27,   27,   27,   94,
+       24,   24,   24,   27,   27,   27,   27,   27,   27,   27,
 
+       27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
+       27,   27,   27,   27,   27,   94,   94,   94,   94,   94,
        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
-       94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
-       94,  136,  136,  136,  136,  136,  136,  136,  136,  136,
-      136,  136,  136,  136,  136,  136,  136,  136,  136,  136,
-      136,  136,  136,  170,  170,  170,  170,  170,  170,  170,
-      170,  170,  170,  170,  170,  759,  170,  170,  170,  170,
-      170,  170,  203,  203,  203,  203,  203,  203,  207,  758,
-      207,  207,  757,  756,  755,  207,  754,  753,  752,  207,
-      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-      208,  208,  751,  208,  208,  208,  208,  208,  208,  210,
-
-      210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
-      210,  750,  210,  210,  210,  210,  210,  210,  222,  475,
-      222,  475,  222,  222,  263,  263,  222,  475,  222,  222,
-      223,  223,  263,  748,  223,  747,  223,  223,  246,  246,
-      246,  246,  246,  246,  246,  246,  246,  739,  246,  246,
-      246,  246,  246,  246,  246,  246,  246,  246,  738,  246,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      737,  247,  250,  250,  250,  250,  250,  250,  250,  250,
-      250,  250,  250,  250,  250,  250,  250,  250,  250,  250,
-
-      250,  250,  250,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  736,  253,  253,  253,  253,
-      253,  253,  255,  255,  255,  255,  255,  255,  255,  255,
-      255,  255,  255,  255,  735,  255,  255,  255,  255,  255,
-      255,  264,  734,  264,  730,  264,  729,  264,  264,  728,
-      727,  264,  726,  264,  264,  266,  266,  725,  724,  723,
-      266,  266,  266,  286,  286,  286,  286,  286,  722,  286,
-      286,  286,  286,  286,  286,  721,  286,  286,  286,  286,
-      286,  286,  309,  309,  309,  720,  309,  263,  309,  309,
-      715,  714,  309,  706,  309,  309,  317,  317,  317,  317,
-
-      317,  317,  317,  317,  317,  317,  317,  317,  705,  317,
-      317,  317,  317,  317,  317,  341,  341,  341,  341,  341,
-      341,  341,  341,  341,  341,  341,  341,  704,  341,  341,
-      341,  341,  341,  341,  343,  343,  343,  343,  343,  343,
-      343,  343,  343,  343,  343,  343,  343,  343,  343,  343,
-      343,  343,  343,  343,  343,  343,  222,  703,  222,  702,
-      222,  222,  701,  700,  222,  699,  222,  222,  350,  698,
-      350,  697,  350,  350,  696,  695,  350,  694,  350,  350,
-      370,  370,  370,  370,  370,  370,  370,  370,  370,  370,
-      370,  370,  370,  370,  370,  370,  370,  370,  370,  370,
-
-      370,  370,  246,  246,  246,  246,  246,  246,  246,  246,
-      246,  693,  246,  246,  246,  246,  246,  246,  246,  246,
-      246,  246,  692,  246,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  691,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  250,  250,  250,  250,  250,  250,
-      250,  250,  250,  690,  250,  250,  250,  250,  250,  250,
-      250,  250,  250,  250,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  689,  253,  253,  253,
-      253,  253,  253,  384,  688,  384,  687,  384,  686,  384,
-      384,  685,  684,  384,  263,  384,  384,  385,  385,  385,
-
-      385,  385,  385,  385,  385,  263,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  309,
-      309,  309,  263,  309,  263,  309,  309,  263,  678,  309,
-      677,  309,  309,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  666,  317,  317,  317,  317,
-      317,  317,  467,  467,  467,  665,  664,  663,  662,  661,
-      660,  659,  658,  467,  467,  654,  653,  467,  533,  652,
-      533,  651,  533,  533,  650,  649,  533,  648,  533,  533,
-      674,  674,  674,  674,  674,  674,  674,  674,  674,  674,
-      674,  674,  674,  674,  674,  674,  674,  674,  674,  674,
-
-      674,  674,  765,  765,  647,  765,  765,  765,  765,  765,
-      765,  765,  765,  765,  765,  765,  765,  765,  765,  765,
-      765,  765,  765,  765,  646,  645,  644,  643,  642,  641,
-      640,  639,  638,  637,  636,  635,  263,  263,  624,  623,
-      622,  614,  613,  612,  611,  608,  607,  606,  605,  604,
-      603,  602,  601,  600,  599,  598,  597,  596,  595,  594,
-      593,  592,  591,  590,  589,  588,  587,  586,  583,  582,
-      581,  580,  579,  578,  577,  576,  263,  263,  263,  263,
-      263,  562,  561,  560,  557,  479,  556,  548,  547,  546,
-      545,  544,  543,  542,  541,  540,  539,  538,  537,  532,
-
-      531,  530,  529,  528,  527,  526,  523,  518,  517,  516,
-      515,  514,  513,  512,  511,  510,  509,  508,  507,  503,
-      502,  473,  500,  263,  483,  383,  482,  481,  480,  479,
-      473,  472,  463,  462,  461,  460,  459,  458,  457,  456,
-      455,  454,  453,  452,  451,  450,  449,  448,  447,  836,
-      319,  318,  444,  440,  439,  431,  430,  423,  422,  421,
-      420,  408,  407,  406,  404,  403,  263,  263,  263,  383,
-      263,  375,  374,  254,  252,  248,  373,  369,  368,  367,
-      366,  365,  364,  363,  359,  358,  357,  354,  353,  352,
-      351,  224,  342,  209,  340,  339,  338,  337,  336,  335,
-
-      332,  331,  330,  329,  328,  323,  322,  321,  172,  171,
-      314,  202,  201,  194,  191,  190,  189,  174,  212,  320,
-      319,  318,  314,  836,  224,  213,  315,  314,  267,  263,
-      211,  254,  243,  242,  238,  237,  236,  235,  231,  230,
-      221,  220,  219,  214,  211,  209,  202,  201,  194,  191,
-      190,  189,  174,  172,  171,  836,   93,   93,   21,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836
+       94,   94,   94,   94,   94,   94,   94,  124,  124,  124,
+      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+      124,  124,  124,  124,  124,  124,  124,  124,  124,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  669,  158,  158,  158,  158,  158,  158,  191,  191,
+      191,  191,  191,  191,  195,  668,  195,  195,  667,  666,
+      665,  195,  664,  663,  662,  195,  196,  196,  196,  196,
+
+      196,  196,  196,  196,  196,  196,  196,  196,  661,  196,
+      196,  196,  196,  196,  196,  198,  198,  198,  198,  198,
+      198,  198,  198,  198,  198,  198,  198,  660,  198,  198,
+      198,  198,  198,  198,  211,  428,  211,  428,  211,  659,
+      211,  211,  658,  428,  211,  657,  211,  211,  212,  212,
+      656,  655,  212,  654,  212,  212,  235,  235,  235,  235,
+      235,  235,  235,  235,  235,  210,  235,  235,  235,  235,
+      235,  235,  235,  235,  235,  235,  210,  235,  236,  236,
+      236,  236,  236,  236,  236,  236,  236,  236,  236,  236,
+      236,  236,  236,  236,  236,  236,  236,  236,  210,  236,
+
+      239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
+      239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
+      239,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  645,  242,  242,  242,  242,  242,  242,
+      244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
+      244,  244,  644,  244,  244,  244,  244,  244,  244,  253,
+      253,  643,  642,  641,  253,  253,  253,  256,  256,  256,
+      256,  256,  637,  256,  256,  256,  256,  256,  256,  636,
+      256,  256,  256,  256,  256,  256,  279,  279,  279,  635,
+      279,  634,  279,  279,  633,  632,  279,  631,  279,  279,
+
+      287,  287,  287,  287,  287,  287,  287,  287,  287,  287,
+      287,  287,  630,  287,  287,  287,  287,  287,  287,  311,
+      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
+      311,  629,  311,  311,  311,  311,  311,  311,  313,  313,
+      313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
+      313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
+      320,  628,  320,  627,  320,  320,  626,  625,  320,  210,
+      320,  320,  340,  340,  340,  340,  340,  340,  340,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
+      340,  340,  340,  340,  235,  235,  235,  235,  235,  235,
+
+      235,  235,  235,  613,  235,  235,  235,  235,  235,  235,
+      235,  235,  235,  235,  612,  235,  236,  236,  236,  236,
+      236,  236,  236,  236,  236,  611,  236,  236,  236,  236,
+      236,  236,  236,  236,  236,  236,  239,  239,  239,  239,
+      239,  239,  239,  239,  239,  610,  239,  239,  239,  239,
+      239,  239,  239,  239,  239,  239,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  609,  242,
+      242,  242,  242,  242,  242,  354,  608,  354,  607,  354,
+      606,  354,  354,  605,  604,  354,  603,  354,  354,  355,
+      355,  355,  355,  355,  355,  355,  355,  602,  355,  355,
+
+      355,  355,  355,  355,  355,  355,  355,  355,  355,  355,
+      355,  279,  279,  279,  601,  279,  600,  279,  279,  599,
+      598,  279,  597,  279,  279,  287,  287,  287,  287,  287,
+      287,  287,  287,  287,  287,  287,  287,  596,  287,  287,
+      287,  287,  287,  287,  420,  420,  420,  595,  594,  593,
+      210,  210,  210,  210,  210,  420,  420,  577,  576,  420,
+      470,  575,  470,  574,  470,  470,  570,  569,  470,  568,
+      470,  470,  590,  590,  590,  590,  590,  590,  590,  590,
+      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
+      590,  590,  590,  590,  671,  671,  567,  671,  671,  671,
+
+      671,  671,  671,  671,  671,  671,  671,  671,  671,  671,
+      671,  671,  671,  671,  671,  671,  566,  565,  564,  563,
+      562,  561,  560,  559,  558,  557,  556,  555,  554,  553,
+      552,  551,  550,  549,  548,  210,  210,  530,  529,  528,
+      527,  526,  525,  524,  523,  522,  521,  520,  519,  518,
+      517,  516,  515,  514,  513,  512,  509,  508,  507,  506,
+      505,  504,  503,  502,  499,  498,  497,  494,  432,  493,
+      210,  210,  210,  210,  210,  474,  469,  468,  467,  466,
+      465,  464,  463,  460,  455,  454,  453,  452,  451,  450,
+      449,  448,  447,  446,  445,  444,  440,  439,  426,  437,
+
+      436,  353,  435,  434,  433,  432,  426,  425,  210,  400,
+      742,  289,  288,  397,  393,  392,  384,  383,  376,  375,
+      374,  373,  361,  360,  359,  357,  356,  353,  345,  344,
+      243,  241,  237,  343,  339,  210,  210,  210,  321,  213,
+      210,  312,  197,  310,  309,  308,  307,  306,  305,  302,
+      301,  300,  299,  298,  293,  292,  291,  160,  159,  284,
+      190,  189,  182,  179,  178,  177,  162,  200,  290,  289,
+      288,  284,  742,  213,  201,  285,  284,  254,  199,  243,
+      232,  210,  209,  208,  207,  202,  199,  197,  190,  189,
+      182,  179,  178,  177,  162,  160,  159,  742,   93,   21,
+
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742
+
     } ;
 
-static yyconst short int yy_chk[2551] =
+static yyconst short int yy_chk[2392] =
     {   0,
-        3,    3,    3,    3,    4,    4,    4,    4,    0,  108,
-        0,    3,  121,  121,    0,    4,    9,   10,   96,   50,
-       50,   50,   50,   50,   50,   17,   17,   17,   17,   95,
-        0,   17,   29,   29,   29,   29,   29,   29,   29,   18,
-       18,   18,   18,   31,   32,   18,   33,   35,   33,  115,
-       39,   55,   55,   55,   55,   33,   93,   31,    0,    3,
-       35,   32,   63,    4,    5,   34,   34,   34,   76,    5,
-       39,   34,   34,  105,  108,   78,   63,    5,    5,    5,
-        5,    5,    5,    5,   17,   78,   76,    9,   10,   96,
-        5,    5,    5,    5,    5,    5,    5,    5,   18,   82,
-
-       79,    5,   95,    5,   79,   82,   82,    5,    5,   41,
-        5,    5,  107,  115,  111,   41,   41,    5,   87,    5,
-       41,   41,    5,    5,   87,   41,   93,    5,  103,  132,
-      105,  110,  103,   87,    5,    5,  109,    5,  112,    5,
-      105,    5,  133,    5,    6,  113,  103,  570,   65,    6,
-       65,   65,   65,   65,   65,   65,   65,    6,    6,    6,
-        6,    6,    6,    6,  118,  122,  122,  118,  145,  153,
-        6,    6,    6,    6,    6,    6,    6,    6,  265,  107,
-      265,    6,  145,    6,  111,  834,  132,    6,    6,  153,
-        6,    6,  110,  140,  140,  140,  140,    6,  109,    6,
-
-      112,  146,    6,    6,  109,  109,  113,    6,   65,  570,
-      229,  133,  244,  244,    6,    6,   65,    6,  146,    6,
-      229,    6,  122,    6,    7,    7,    7,    7,    7,    7,
+        3,    3,    3,    3,    4,    4,    4,    4,    0,   11,
+        0,    3,    0,   83,   11,    4,    9,   10,   96,   11,
+        0,   63,   11,   11,   11,   11,   11,   11,   11,   12,
+       12,    0,   32,  106,   12,   63,  106,   39,    0,   12,
+       31,   81,   12,   12,   12,   12,   12,   12,   12,   32,
+       17,   17,   17,   17,   31,   35,   17,   39,   33,    3,
+       33,   78,  222,    4,    5,   11,   11,   33,   35,    5,
+       18,   18,   18,   18,   83,   79,   18,    5,    5,    5,
+        5,    5,    5,    5,   76,   12,   12,    9,   10,   96,
+        5,    5,    5,    5,    5,    5,    5,    5,   34,   34,
+
+       34,    5,   76,    5,   34,   34,   81,    5,    5,   17,
+        5,    5,   80,   95,   41,  740,   82,    5,   78,    5,
+       41,   41,    5,    5,   84,   41,   41,    5,   78,   18,
+       41,   85,   79,  222,    5,    5,   79,    5,   93,    5,
+       86,    5,   88,    5,    6,   55,   55,   55,   55,    6,
+       29,   29,   29,   29,   29,   29,   29,    6,    6,    6,
+        6,    6,    6,    6,   50,   50,   50,   50,   50,   50,
+        6,    6,    6,    6,    6,    6,    6,    6,   82,   80,
+      135,    6,  135,    6,   82,   82,   95,    6,    6,  135,
+        6,    6,  102,   85,   84,  133,  102,    6,  137,    6,
+
+      141,   86,    6,    6,  109,  109,   88,    6,   93,  133,
+      102,  137,  233,  233,    6,    6,  252,    6,  252,    6,
+      141,    6,  739,    6,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
@@ -946,36 +900,25 @@ static yyconst short int yy_chk[2551] =
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
 
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
-        7,    7,    7,    7,    7,   11,   11,   11,   11,   11,
-       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-
-       11,   11,   11,   11,   11,   11,   13,  149,  116,  116,
-      116,  116,  833,   13,  116,  832,   13,  268,   13,   13,
-      149,   13,   13,   13,   13,   13,   13,   13,  123,  123,
-       13,  270,   66,   13,   66,   66,   66,   66,   66,   66,
-       66,   99,  269,  186,   99,   99,   99,   99,   99,   99,
-       99,  147,  511,  147,  511,   99,  124,  124,  281,  106,
-      147,  273,  125,  125,   13,  186,   13,   13,   13,   13,
-       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
+        7,    7,    7,    7,    7,   13,  381,   13,  104,  104,
+      104,  104,   13,  174,  104,   13,  738,   13,   13,  381,
+       13,   13,   13,   13,   13,   13,   13,  113,  113,   13,
+      111,  111,   13,  110,  110,  174,   65,  120,   65,   65,
+       65,   65,   65,   65,   65,   66,  121,   66,   66,   66,
+       66,   66,   66,   66,   87,  112,  112,  128,  128,  128,
+      128,  215,  216,   13,   13,   13,   13,   13,   13,   13,
        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
-      268,  277,   13,   15,   15,  271,  272,  123,   15,  269,
-
-      278,   15,  275,   15,   15,  270,   15,   15,   15,   15,
-       15,   15,   15,  101,   15,   15,  106,  124,   15,  281,
-      106,  273,  119,  101,  125,  101,  101,  101,  101,  101,
-      101,  101,  119,  234,  119,  119,  119,  119,  119,  119,
-      119,  148,  148,  148,  234,  234,   15,  148,  148,   15,
-       15,  305,  829,   15,   15,   15,  293,  271,   15,   15,
-      278,   15,   15,  305,   15,  277,   15,  271,   15,  272,
-      293,   15,  828,  275,   15,   15,   15,   15,   19,   19,
-       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
+       13,   13,   13,   13,   13,   13,   13,   13,   13,  113,
+
+      110,   13,   15,   15,  120,  134,   65,   15,  217,  111,
+       15,  228,   15,   15,   65,   15,   15,   15,   15,   15,
+       15,   15,  134,   15,   15,  121,  112,   15,   87,  216,
+      273,  263,   99,  735,   87,   99,   99,   99,   99,   99,
+       99,   99,  273,   87,  215,  263,   99,  131,  131,  131,
+      131,  131,  131,  131,  270,   15,  418,  273,   15,   15,
+      270,  418,   15,   15,   15,  264,  264,   15,   15,  264,
+       15,   15,  228,   15,  274,   15,  270,   15,  274,  734,
+       15,  264,  217,   15,   15,   15,   15,   19,   19,   19,
        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
 
        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
@@ -984,214 +927,209 @@ static yyconst short int yy_chk[2551] =
        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
-       19,   19,   19,   19,   19,   19,   19,   19,   19,  100,
-      114,  143,  143,  143,  143,  143,  143,  143,  393,  100,
-      283,  100,  100,  100,  100,  100,  100,  100,  155,  179,
-      179,  179,  179,  304,  155,  155,  827,  304,  465,  155,
-
-      155,  309,  309,  465,  155,  164,  164,  164,  164,  164,
-      164,  173,  173,  173,  173,  173,  173,  173,  204,  204,
-      204,  204,  204,  204,  206,  206,  206,  206,  212,  212,
-      212,  212,  276,  280,  114,  299,  299,  284,  402,  100,
-      114,  217,  217,  217,  217,  217,  217,  100,  393,  114,
-      120,  283,  120,  215,  215,  215,  215,  215,  215,  215,
-      316,  299,  216,  120,  216,  216,  216,  216,  216,  216,
-      216,  261,  261,  261,  261,  261,  261,  120,  300,  120,
-      120,  826,  120,  825,  300,  120,  387,  120,  120,  120,
-      120,  120,  120,  824,  276,  120,  120,  120,  284,  120,
-
-      300,  823,  280,  256,  390,  276,  276,  120,  294,  294,
-      402,  120,  294,  256,  120,  256,  256,  256,  256,  256,
-      256,  256,  257,  400,  294,  120,  310,  310,  311,  311,
-      312,  312,  257,  316,  257,  257,  257,  257,  257,  257,
-      257,  259,  259,  259,  259,  259,  259,  259,  260,  287,
-      287,  287,  287,  287,  287,  287,  313,  313,  260,  387,
-      260,  260,  260,  260,  260,  260,  260,  370,  370,  390,
-      288,  372,  372,  256,  343,  343,  343,  343,  303,  292,
-      288,  256,  288,  288,  288,  288,  288,  288,  288,  292,
-      303,  388,  400,  292,  344,  344,  344,  344,  292,  310,
-
-      345,  345,  345,  345,  312,  303,  386,  391,  292,  346,
-      346,  346,  346,  347,  347,  347,  347,  347,  347,  347,
-      348,  348,  348,  348,  348,  348,  369,  369,  369,  369,
-      347,  376,  376,  376,  376,  376,  376,  378,  389,  392,
-      394,  395,  396,  398,  399,  401,  428,  822,  388,  378,
-      378,  378,  378,  378,  378,  378,  410,  369,  487,  428,
-      369,  410,  347,  490,  379,  369,  378,  386,  391,  369,
-      405,  427,  410,  442,  442,  369,  379,  379,  379,  379,
-      379,  379,  405,  405,  405,  405,  405,  405,  405,  431,
-      427,  443,  443,  431,  491,  389,  488,  485,  378,  405,
-
-      567,  399,  492,  396,  392,  394,  401,  445,  445,  445,
-      445,  493,  495,  496,  446,  395,  446,  494,  398,  446,
-      446,  446,  446,  446,  446,  446,  464,  464,  464,  464,
-      566,  405,  490,  487,  442,  466,  466,  466,  466,  467,
-      467,  467,  467,  468,  468,  468,  468,  469,  469,  469,
-      469,  470,  470,  470,  470,  499,  821,  464,  534,  534,
-      464,  471,  471,  471,  471,  464,  491,  466,  493,  464,
-      485,  474,  488,  820,  567,  464,  622,  622,  468,  495,
-      492,  496,  470,  474,  474,  474,  474,  474,  474,  494,
-      477,  469,  477,  566,  819,  477,  477,  477,  477,  477,
-
-      477,  477,  818,  501,  625,  501,  564,  471,  501,  501,
-      501,  501,  501,  501,  501,  565,  499,  535,  535,  535,
-      535,  535,  535,  535,  536,  536,  536,  536,  536,  536,
-      536,  543,  549,  549,  549,  549,  543,  550,  550,  550,
-      550,  551,  551,  551,  551,  552,  552,  552,  552,  553,
-      553,  553,  553,  568,  569,  554,  554,  554,  554,  555,
-      555,  555,  555,  558,  558,  558,  558,  558,  558,  558,
-      549,  559,  571,  564,  572,  632,  550,  817,  625,  631,
-      565,  552,  599,  559,  559,  559,  559,  559,  559,  559,
-      551,  553,  554,  575,  555,  574,  574,  574,  574,  574,
-
-      574,  574,  626,  634,  599,  575,  575,  575,  575,  575,
-      575,  575,  600,  600,  600,  600,  600,  600,  600,  766,
-      568,  674,  674,  569,  816,  568,  615,  615,  615,  615,
-      676,  676,  632,  571,  616,  616,  616,  616,  631,  572,
-      617,  617,  617,  617,  618,  618,  618,  618,  619,  619,
-      619,  619,  620,  620,  620,  620,  680,  681,  682,  615,
-      621,  621,  621,  621,  657,  657,  657,  657,  657,  657,
-      657,  626,  634,  667,  667,  667,  667,  683,  616,  668,
-      668,  668,  668,  669,  669,  669,  669,  619,  813,  618,
-      617,  620,  766,  621,  670,  670,  670,  670,  812,  671,
-
-      671,  671,  671,  672,  672,  672,  672,  673,  673,  673,
-      673,  695,  718,  810,  668,  873,  873,  682,  681,  680,
-      695,  695,  707,  707,  707,  707,  708,  708,  708,  708,
-      809,  669,  787,  790,  667,  807,  672,  790,  787,  806,
-      683,  804,  670,  671,  790,  787,  673,  709,  709,  709,
-      709,  710,  710,  710,  710,  711,  711,  711,  711,  712,
-      712,  712,  712,  713,  713,  713,  713,  795,  707,  740,
-      740,  740,  740,  718,  742,  742,  742,  742,  709,  743,
-      743,  743,  743,  803,  797,  795,  710,  799,  798,  793,
-      711,  797,  795,  792,  713,  744,  744,  744,  744,  745,
-
-      745,  745,  745,  746,  746,  746,  746,  742,  764,  764,
-      764,  764,  767,  767,  767,  767,  789,  740,  814,  786,
-      712,  768,  768,  768,  768,  814,  785,  784,  743,  769,
-      769,  769,  769,  770,  770,  770,  770,  779,  779,  764,
-      778,  778,  778,  778,  800,  746,  780,  780,  780,  780,
-      745,  779,  781,  781,  781,  781,  782,  782,  782,  782,
-      791,  796,  767,  783,  783,  783,  783,  801,  796,  805,
-      777,  768,  770,  769,  791,  796,  776,  778,  773,  805,
-      765,  791,  801,  808,  811,  844,  805,  844,  808,  801,
-      800,  762,  782,  844,  761,  808,  811,  800,  760,  753,
-
-      751,  750,  749,  811,  830,  830,  830,  830,  830,  830,
-      830,  831,  783,  862,  870,  862,  870,  748,  741,  783,
-      737,  862,  870,  736,  735,  734,  831,  831,  831,  831,
-      831,  831,  831,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-      837,  837,  837,  837,  837,  838,  838,  838,  838,  838,
-      838,  838,  838,  838,  838,  838,  838,  838,  838,  838,
-      838,  838,  838,  838,  838,  838,  838,  839,  839,  839,
-      839,  839,  839,  839,  839,  839,  839,  839,  839,  839,
-      839,  839,  839,  839,  839,  839,  839,  839,  839,  840,
-
-      840,  840,  840,  840,  840,  840,  840,  840,  840,  840,
-      840,  840,  840,  840,  840,  840,  840,  840,  840,  840,
-      840,  841,  841,  841,  841,  841,  841,  841,  841,  841,
-      841,  841,  841,  841,  841,  841,  841,  841,  841,  841,
-      841,  841,  841,  842,  842,  842,  842,  842,  842,  842,
-      842,  842,  842,  842,  842,  733,  842,  842,  842,  842,
-      842,  842,  843,  843,  843,  843,  843,  843,  845,  732,
-      845,  845,  731,  729,  728,  845,  727,  726,  723,  845,
-      846,  846,  846,  846,  846,  846,  846,  846,  846,  846,
-      846,  846,  721,  846,  846,  846,  846,  846,  846,  847,
-
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
-      847,  720,  847,  847,  847,  847,  847,  847,  848,  877,
-      848,  877,  848,  848,  719,  717,  848,  877,  848,  848,
-      849,  849,  716,  715,  849,  714,  849,  849,  850,  850,
-      850,  850,  850,  850,  850,  850,  850,  705,  850,  850,
-      850,  850,  850,  850,  850,  850,  850,  850,  702,  850,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      701,  851,  852,  852,  852,  852,  852,  852,  852,  852,
-      852,  852,  852,  852,  852,  852,  852,  852,  852,  852,
-
-      852,  852,  852,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  699,  853,  853,  853,  853,
-      853,  853,  854,  854,  854,  854,  854,  854,  854,  854,
-      854,  854,  854,  854,  697,  854,  854,  854,  854,  854,
-      854,  855,  696,  855,  694,  855,  693,  855,  855,  692,
-      691,  855,  690,  855,  855,  856,  856,  689,  688,  687,
-      856,  856,  856,  857,  857,  857,  857,  857,  686,  857,
-      857,  857,  857,  857,  857,  685,  857,  857,  857,  857,
-      857,  857,  858,  858,  858,  684,  858,  679,  858,  858,
-      678,  677,  858,  666,  858,  858,  859,  859,  859,  859,
-
-      859,  859,  859,  859,  859,  859,  859,  859,  665,  859,
-      859,  859,  859,  859,  859,  860,  860,  860,  860,  860,
-      860,  860,  860,  860,  860,  860,  860,  664,  860,  860,
-      860,  860,  860,  860,  861,  861,  861,  861,  861,  861,
-      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
-      861,  861,  861,  861,  861,  861,  863,  663,  863,  661,
-      863,  863,  659,  658,  863,  655,  863,  863,  864,  654,
-      864,  652,  864,  864,  650,  649,  864,  647,  864,  864,
-      865,  865,  865,  865,  865,  865,  865,  865,  865,  865,
-      865,  865,  865,  865,  865,  865,  865,  865,  865,  865,
-
-      865,  865,  866,  866,  866,  866,  866,  866,  866,  866,
-      866,  646,  866,  866,  866,  866,  866,  866,  866,  866,
-      866,  866,  645,  866,  867,  867,  867,  867,  867,  867,
-      867,  867,  867,  644,  867,  867,  867,  867,  867,  867,
-      867,  867,  867,  867,  868,  868,  868,  868,  868,  868,
-      868,  868,  868,  642,  868,  868,  868,  868,  868,  868,
-      868,  868,  868,  868,  869,  869,  869,  869,  869,  869,
-      869,  869,  869,  869,  869,  869,  640,  869,  869,  869,
-      869,  869,  869,  871,  639,  871,  638,  871,  637,  871,
-      871,  636,  635,  871,  633,  871,  871,  872,  872,  872,
-
-      872,  872,  872,  872,  872,  630,  872,  872,  872,  872,
-      872,  872,  872,  872,  872,  872,  872,  872,  872,  874,
-      874,  874,  629,  874,  628,  874,  874,  627,  624,  874,
-      623,  874,  874,  875,  875,  875,  875,  875,  875,  875,
-      875,  875,  875,  875,  875,  614,  875,  875,  875,  875,
-      875,  875,  876,  876,  876,  612,  611,  606,  605,  604,
-      603,  602,  601,  876,  876,  598,  597,  876,  878,  596,
-      878,  595,  878,  878,  594,  593,  878,  591,  878,  878,
-      879,  879,  879,  879,  879,  879,  879,  879,  879,  879,
-      879,  879,  879,  879,  879,  879,  879,  879,  879,  879,
-
-      879,  879,  880,  880,  590,  880,  880,  880,  880,  880,
-      880,  880,  880,  880,  880,  880,  880,  880,  880,  880,
-      880,  880,  880,  880,  589,  588,  587,  586,  585,  584,
-      583,  582,  581,  579,  578,  576,  573,  563,  561,  560,
-      556,  547,  546,  545,  544,  542,  541,  540,  539,  532,
-      531,  530,  529,  528,  527,  526,  525,  524,  523,  522,
-      521,  519,  517,  516,  515,  514,  513,  512,  510,  509,
-      508,  507,  506,  505,  504,  503,  498,  497,  489,  486,
-      484,  483,  481,  480,  476,  475,  472,  463,  460,  459,
-      458,  457,  456,  455,  454,  452,  451,  449,  447,  440,
-
-      439,  437,  436,  435,  433,  432,  430,  425,  424,  423,
-      421,  419,  418,  417,  416,  415,  414,  412,  411,  409,
-      408,  404,  403,  397,  385,  384,  383,  382,  381,  380,
-      375,  373,  368,  367,  366,  365,  364,  362,  361,  360,
-      359,  358,  357,  356,  355,  354,  353,  352,  351,  341,
-      318,  317,  315,  307,  306,  302,  301,  298,  297,  296,
-      295,  291,  290,  289,  286,  285,  282,  279,  274,  266,
-      264,  255,  254,  253,  252,  248,  245,  243,  242,  241,
-      239,  238,  236,  235,  233,  231,  230,  228,  227,  226,
-      225,  224,  210,  208,  200,  199,  198,  196,  193,  192,
-
-      185,  184,  183,  181,  180,  177,  175,  174,  171,  170,
-      169,  157,  156,  154,  152,  151,  150,  144,  142,  138,
-      137,  136,  134,  131,  130,  129,  128,  126,  104,  102,
-       98,   97,   89,   88,   86,   85,   84,   83,   81,   80,
-       70,   69,   67,   64,   58,   57,   43,   42,   40,   38,
-       37,   36,   30,   25,   24,   21,   12,    8,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
-      836,  836,  836,  836,  836,  836,  836,  836,  836,  836
+       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
+       19,   19,   19,   19,   19,   19,   19,   19,  100,  136,
+      136,  136,  279,  279,  224,  136,  136,  101,  100,  733,
+      100,  100,  100,  100,  100,  100,  100,  101,  107,  101,
+
+      101,  101,  101,  101,  101,  101,  281,  281,  107,  220,
+      107,  107,  107,  107,  107,  107,  107,  143,  167,  167,
+      167,  167,  227,  143,  143,  225,  732,  219,  143,  143,
+      230,  324,  231,  143,  152,  152,  152,  152,  152,  152,
+      161,  161,  161,  161,  161,  161,  161,  731,  100,  192,
+      192,  192,  192,  192,  192,  218,  100,  108,  224,  108,
+      194,  194,  194,  194,  200,  200,  200,  200,  223,  220,
+      108,  203,  203,  203,  203,  203,  203,  203,  205,  205,
+      205,  205,  205,  205,  108,  225,  108,  108,  324,  108,
+      326,  227,  108,  231,  108,  108,  108,  108,  108,  108,
+
+      219,  230,  108,  108,  108,  204,  108,  204,  204,  204,
+      204,  204,  204,  204,  108,  329,  275,  218,  108,  282,
+      282,  108,  280,  280,  283,  283,  286,  218,  275,  322,
+      223,  730,  108,  245,  248,  248,  248,  248,  248,  248,
+      248,  223,  223,  245,  246,  245,  245,  245,  245,  245,
+      245,  245,  323,  249,  246,  326,  246,  246,  246,  246,
+      246,  246,  246,  249,  331,  249,  249,  249,  249,  249,
+      249,  249,  250,  250,  250,  250,  250,  250,  257,  257,
+      257,  257,  257,  257,  257,  329,  729,  269,  269,  334,
+      322,  328,  258,  282,  336,  280,  327,  330,  325,  286,
+
+      332,  335,  258,  245,  258,  258,  258,  258,  258,  258,
+      258,  245,  262,  269,  313,  313,  313,  313,  314,  314,
+      314,  314,  262,  337,  338,  323,  262,  315,  315,  315,
+      315,  262,  316,  316,  316,  316,  340,  340,  331,  342,
+      342,  262,  317,  317,  317,  317,  317,  317,  317,  318,
+      318,  318,  318,  318,  318,  325,  328,  327,  335,  317,
+      402,  332,  330,  336,  334,  348,  339,  339,  339,  339,
+      346,  346,  346,  346,  346,  346,  380,  348,  348,  348,
+      348,  348,  348,  348,  337,  363,  395,  395,  384,  404,
+      363,  317,  384,  405,  348,  380,  338,  339,  396,  396,
+
+      339,  363,  407,  408,  349,  339,  409,  411,  410,  339,
+      398,  398,  398,  398,  412,  339,  349,  349,  349,  349,
+      349,  349,  358,  413,  416,  448,  348,  448,  482,  417,
+      417,  417,  417,  402,  358,  358,  358,  358,  358,  358,
+      358,  419,  419,  419,  419,  471,  471,  395,  399,  476,
+      399,  358,  477,  399,  399,  399,  399,  399,  399,  399,
+      417,  484,  728,  417,  404,  410,  478,  479,  417,  405,
+      727,  407,  417,  419,  481,  408,  726,  480,  417,  411,
+      725,  412,  724,  358,  409,  416,  420,  420,  420,  420,
+      482,  413,  421,  421,  421,  421,  422,  422,  422,  422,
+
+      423,  423,  423,  423,  424,  424,  424,  424,  427,  472,
+      472,  472,  472,  472,  472,  472,  476,  477,  483,  537,
+      427,  427,  427,  427,  427,  427,  484,  421,  430,  478,
+      430,  423,  723,  430,  430,  430,  430,  430,  430,  430,
+      422,  479,  722,  481,  480,  531,  438,  719,  438,  480,
+      424,  438,  438,  438,  438,  438,  438,  438,  473,  473,
+      473,  473,  473,  473,  473,  486,  486,  486,  486,  487,
+      487,  487,  487,  488,  488,  488,  488,  718,  537,  483,
+      489,  489,  489,  489,  490,  490,  490,  490,  491,  491,
+      491,  491,  492,  492,  492,  492,  495,  495,  495,  495,
+
+      495,  495,  495,  486,  532,  538,  525,  540,  487,  500,
+      500,  500,  500,  500,  500,  500,  489,  496,  579,  531,
+      548,  548,  488,  581,  501,  491,  490,  492,  525,  496,
+      496,  496,  496,  496,  496,  496,  501,  501,  501,  501,
+      501,  501,  501,  526,  526,  526,  526,  526,  526,  526,
+      541,  541,  541,  541,  542,  542,  542,  542,  543,  543,
+      543,  543,  538,  580,  544,  544,  544,  544,  545,  545,
+      545,  545,  582,  532,  590,  590,  540,  546,  546,  546,
+      546,  579,  581,  541,  547,  547,  547,  547,  573,  573,
+      573,  573,  573,  573,  573,  592,  592,  716,  542,  583,
+
+      583,  583,  583,  584,  584,  584,  584,  545,  543,  544,
+      585,  585,  585,  585,  616,  715,  546,  547,  586,  586,
+      586,  586,  685,  685,  580,  587,  587,  587,  587,  588,
+      588,  588,  588,  713,  606,  582,  685,  712,  584,  589,
+      589,  589,  589,  606,  606,  618,  618,  618,  618,  619,
+      619,  619,  619,  620,  620,  620,  620,  672,  585,  710,
+      583,  693,  588,  777,  777,  701,  586,  693,  709,  587,
+      621,  621,  621,  621,  693,  616,  705,  704,  589,  622,
+      622,  622,  622,  701,  620,  623,  623,  623,  623,  699,
+      701,  618,  624,  624,  624,  624,  647,  647,  647,  647,
+
+      649,  649,  649,  649,  698,  621,  650,  650,  650,  650,
+      651,  651,  651,  651,  622,  652,  652,  652,  652,  653,
+      653,  653,  653,  624,  703,  670,  670,  670,  670,  695,
+      672,  703,  692,  649,  673,  673,  673,  673,  674,  674,
+      674,  674,  691,  690,  647,  683,  623,  675,  675,  675,
+      675,  676,  676,  676,  676,  650,  670,  684,  684,  684,
+      684,  653,  686,  686,  686,  686,  652,  687,  687,  687,
+      687,  688,  688,  688,  688,  689,  689,  689,  689,  697,
+      706,  696,  702,  707,  673,  696,  682,  711,  674,  702,
+      676,  675,  696,  697,  684,  720,  702,  711,  707,  717,
+
+      697,  714,  720,  679,  711,  707,  714,  688,  750,  671,
+      750,  717,  767,  714,  767,  774,  750,  774,  717,  668,
+      767,  667,  666,  774,  689,  659,  706,  737,  657,  656,
+      655,  689,  648,  706,  736,  736,  736,  736,  736,  736,
+      736,  646,  737,  737,  737,  737,  737,  737,  737,  743,
+      743,  743,  743,  743,  743,  743,  743,  743,  743,  743,
+      743,  743,  743,  743,  743,  743,  743,  743,  743,  743,
+      743,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
+      744,  744,  744,  745,  745,  745,  745,  745,  745,  745,
+
+      745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
+      745,  745,  745,  745,  745,  746,  746,  746,  746,  746,
+      746,  746,  746,  746,  746,  746,  746,  746,  746,  746,
+      746,  746,  746,  746,  746,  746,  746,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  644,  748,  748,  748,  748,  748,  748,  749,  749,
+      749,  749,  749,  749,  751,  643,  751,  751,  642,  641,
+      640,  751,  639,  638,  636,  751,  752,  752,  752,  752,
+
+      752,  752,  752,  752,  752,  752,  752,  752,  635,  752,
+      752,  752,  752,  752,  752,  753,  753,  753,  753,  753,
+      753,  753,  753,  753,  753,  753,  753,  634,  753,  753,
+      753,  753,  753,  753,  754,  781,  754,  781,  754,  633,
+      754,  754,  630,  781,  754,  628,  754,  754,  755,  755,
+      627,  626,  755,  625,  755,  755,  756,  756,  756,  756,
+      756,  756,  756,  756,  756,  617,  756,  756,  756,  756,
+      756,  756,  756,  756,  756,  756,  615,  756,  757,  757,
+      757,  757,  757,  757,  757,  757,  757,  757,  757,  757,
+      757,  757,  757,  757,  757,  757,  757,  757,  614,  757,
+
+      758,  758,  758,  758,  758,  758,  758,  758,  758,  758,
+      758,  758,  758,  758,  758,  758,  758,  758,  758,  758,
+      758,  759,  759,  759,  759,  759,  759,  759,  759,  759,
+      759,  759,  759,  613,  759,  759,  759,  759,  759,  759,
+      760,  760,  760,  760,  760,  760,  760,  760,  760,  760,
+      760,  760,  612,  760,  760,  760,  760,  760,  760,  761,
+      761,  610,  608,  607,  761,  761,  761,  762,  762,  762,
+      762,  762,  605,  762,  762,  762,  762,  762,  762,  604,
+      762,  762,  762,  762,  762,  762,  763,  763,  763,  603,
+      763,  602,  763,  763,  601,  600,  763,  599,  763,  763,
+
+      764,  764,  764,  764,  764,  764,  764,  764,  764,  764,
+      764,  764,  598,  764,  764,  764,  764,  764,  764,  765,
+      765,  765,  765,  765,  765,  765,  765,  765,  765,  765,
+      765,  597,  765,  765,  765,  765,  765,  765,  766,  766,
+      766,  766,  766,  766,  766,  766,  766,  766,  766,  766,
+      766,  766,  766,  766,  766,  766,  766,  766,  766,  766,
+      768,  596,  768,  595,  768,  768,  594,  593,  768,  578,
+      768,  768,  769,  769,  769,  769,  769,  769,  769,  769,
+      769,  769,  769,  769,  769,  769,  769,  769,  769,  769,
+      769,  769,  769,  769,  770,  770,  770,  770,  770,  770,
+
+      770,  770,  770,  577,  770,  770,  770,  770,  770,  770,
+      770,  770,  770,  770,  575,  770,  771,  771,  771,  771,
+      771,  771,  771,  771,  771,  574,  771,  771,  771,  771,
+      771,  771,  771,  771,  771,  771,  772,  772,  772,  772,
+      772,  772,  772,  772,  772,  571,  772,  772,  772,  772,
+      772,  772,  772,  772,  772,  772,  773,  773,  773,  773,
+      773,  773,  773,  773,  773,  773,  773,  773,  570,  773,
+      773,  773,  773,  773,  773,  775,  568,  775,  566,  775,
+      565,  775,  775,  563,  562,  775,  561,  775,  775,  776,
+      776,  776,  776,  776,  776,  776,  776,  560,  776,  776,
+
+      776,  776,  776,  776,  776,  776,  776,  776,  776,  776,
+      776,  778,  778,  778,  558,  778,  556,  778,  778,  555,
+      554,  778,  553,  778,  778,  779,  779,  779,  779,  779,
+      779,  779,  779,  779,  779,  779,  779,  552,  779,  779,
+      779,  779,  779,  779,  780,  780,  780,  551,  550,  549,
+      539,  536,  535,  534,  533,  780,  780,  530,  529,  780,
+      782,  528,  782,  527,  782,  782,  524,  523,  782,  522,
+      782,  782,  783,  783,  783,  783,  783,  783,  783,  783,
+      783,  783,  783,  783,  783,  783,  783,  783,  783,  783,
+      783,  783,  783,  783,  784,  784,  521,  784,  784,  784,
+
+      784,  784,  784,  784,  784,  784,  784,  784,  784,  784,
+      784,  784,  784,  784,  784,  784,  520,  519,  517,  516,
+      515,  514,  513,  512,  511,  510,  509,  508,  507,  505,
+      504,  502,  498,  497,  493,  485,  475,  469,  468,  467,
+      466,  465,  464,  463,  462,  461,  460,  459,  458,  456,
+      454,  453,  452,  451,  450,  449,  447,  446,  445,  444,
+      443,  442,  441,  440,  436,  434,  433,  429,  428,  425,
+      415,  414,  406,  403,  401,  400,  393,  392,  390,  389,
+      388,  386,  385,  383,  378,  377,  376,  374,  372,  371,
+      370,  369,  368,  367,  365,  364,  362,  361,  357,  356,
+
+      355,  354,  353,  352,  351,  350,  345,  343,  333,  321,
+      311,  288,  287,  285,  277,  276,  272,  271,  268,  267,
+      266,  265,  261,  260,  259,  256,  255,  253,  244,  243,
+      242,  241,  237,  234,  232,  229,  226,  221,  214,  213,
+      211,  198,  196,  188,  187,  186,  184,  181,  180,  173,
+      172,  171,  169,  168,  165,  163,  162,  159,  158,  157,
+      145,  144,  142,  140,  139,  138,  132,  130,  126,  125,
+      124,  122,  119,  118,  117,  116,  114,  103,   98,   97,
+       89,   72,   70,   69,   67,   64,   58,   57,   43,   42,
+       40,   38,   37,   36,   30,   25,   24,   21,    8,  742,
+
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
+      742
+
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -1681,13 +1619,13 @@ yy_match:
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 837 )
+                               if ( yy_current_state >= 743 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_base[yy_current_state] != 2459 );
+               while ( yy_base[yy_current_state] != 2300 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -2417,20 +2355,25 @@ YY_RULE_SETUP
 #line 539 "yaccParser/hslexer.flex"
 { hsnewid(yytext, yyleng); RETURN(TYVAR_TEMPLATE_ID); }
        YY_BREAK
+
+/* These SHOULDNAE work in "Code" (sigh) */
+
 case 119:
 YY_RULE_SETUP
-#line 541 "yaccParser/hslexer.flex"
+#line 544 "yaccParser/hslexer.flex"
 { 
+                        if (! (nonstandardFlag || in_interface)) {
+                           char errbuf[ERR_BUF_SIZE];
+                           sprintf(errbuf, "Non-standard identifier (trailing `#'): %s\n", yytext);
+                           hsperror(errbuf);
+                        }
                         hsnewid(yytext, yyleng);
                         RETURN(_isconstr(yytext) ? CONID : VARID);
                        }
        YY_BREAK
-
-/* This SHOULDNAE work in "Code" (sigh) */
-
 case 120:
 YY_RULE_SETUP
-#line 548 "yaccParser/hslexer.flex"
+#line 553 "yaccParser/hslexer.flex"
 { 
                         if (! (nonstandardFlag || in_interface)) {
                            char errbuf[ERR_BUF_SIZE];
@@ -2444,7 +2387,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 558 "yaccParser/hslexer.flex"
+#line 563 "yaccParser/hslexer.flex"
 {
                         hsnewid(yytext, yyleng);
                         RETURN(_isconstr(yytext) ? CONID : VARID);
@@ -2452,7 +2395,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 562 "yaccParser/hslexer.flex"
+#line 567 "yaccParser/hslexer.flex"
 {
                         hsnewid(yytext, yyleng);
                         RETURN(_isconstr(yytext) ? CONSYM : VARSYM);
@@ -2469,7 +2412,7 @@ YY_RULE_SETUP
 
 case 123:
 YY_RULE_SETUP
-#line 577 "yaccParser/hslexer.flex"
+#line 582 "yaccParser/hslexer.flex"
 {      
                         hsnewid(yytext + 1, yyleng - 2);
                         RETURN(_isconstr(yytext+1) ? CONSYM : VARSYM);
@@ -2490,7 +2433,7 @@ YY_RULE_SETUP
 
 case 124:
 YY_RULE_SETUP
-#line 596 "yaccParser/hslexer.flex"
+#line 601 "yaccParser/hslexer.flex"
 {
                         yylval.uhstring = installHstring(1, yytext+1);
                         RETURN(CHARPRIM);
@@ -2498,7 +2441,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 600 "yaccParser/hslexer.flex"
+#line 605 "yaccParser/hslexer.flex"
 {
                         yylval.uhstring = installHstring(1, yytext+1);
                         RETURN(CHAR);
@@ -2506,7 +2449,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 604 "yaccParser/hslexer.flex"
+#line 609 "yaccParser/hslexer.flex"
 {char errbuf[ERR_BUF_SIZE];
                         sprintf(errbuf, "'' is not a valid character (or string) literal\n");
                         hsperror(errbuf);
@@ -2514,7 +2457,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 608 "yaccParser/hslexer.flex"
+#line 613 "yaccParser/hslexer.flex"
 {
                         hsmlcolno = hspcolno;
                         cleartext();
@@ -2524,7 +2467,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 614 "yaccParser/hslexer.flex"
+#line 619 "yaccParser/hslexer.flex"
 {
                         unsigned length;
                         char *text;
@@ -2553,7 +2496,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 639 "yaccParser/hslexer.flex"
+#line 644 "yaccParser/hslexer.flex"
 {
                         unsigned length;
                         char *text;
@@ -2576,7 +2519,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 658 "yaccParser/hslexer.flex"
+#line 663 "yaccParser/hslexer.flex"
 { addtext(yytext, yyleng); }
        YY_BREAK
 
@@ -2595,7 +2538,7 @@ YY_RULE_SETUP
 
 case 131:
 YY_RULE_SETUP
-#line 676 "yaccParser/hslexer.flex"
+#line 681 "yaccParser/hslexer.flex"
 {
                         yylval.uhstring = installHstring(yyleng-3, yytext+1);
                            /* the -3 accounts for the " on front, "# on the end */
@@ -2604,7 +2547,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 132:
 YY_RULE_SETUP
-#line 681 "yaccParser/hslexer.flex"
+#line 686 "yaccParser/hslexer.flex"
 {
                         yylval.uhstring = installHstring(yyleng-2, yytext+1);
                         RETURN(STRING); 
@@ -2612,7 +2555,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 133:
 YY_RULE_SETUP
-#line 685 "yaccParser/hslexer.flex"
+#line 690 "yaccParser/hslexer.flex"
 {
                         hsmlcolno = hspcolno;
                         cleartext();
@@ -2622,7 +2565,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 134:
 YY_RULE_SETUP
-#line 691 "yaccParser/hslexer.flex"
+#line 696 "yaccParser/hslexer.flex"
 {
                         unsigned length;
                         char *text;
@@ -2644,7 +2587,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 135:
 YY_RULE_SETUP
-#line 709 "yaccParser/hslexer.flex"
+#line 714 "yaccParser/hslexer.flex"
 {
                         unsigned length;
                         char *text;
@@ -2660,7 +2603,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 136:
 YY_RULE_SETUP
-#line 721 "yaccParser/hslexer.flex"
+#line 726 "yaccParser/hslexer.flex"
 { addtext(yytext, yyleng); }
        YY_BREAK
 
@@ -2680,226 +2623,226 @@ YY_RULE_SETUP
 
 case 137:
 YY_RULE_SETUP
-#line 739 "yaccParser/hslexer.flex"
+#line 744 "yaccParser/hslexer.flex"
 { PUSH_STATE(CharEsc); }
        YY_BREAK
 case 138:
 YY_RULE_SETUP
-#line 740 "yaccParser/hslexer.flex"
+#line 745 "yaccParser/hslexer.flex"
 /* Ignore */ ;
        YY_BREAK
 case 139:
 YY_RULE_SETUP
-#line 741 "yaccParser/hslexer.flex"
+#line 746 "yaccParser/hslexer.flex"
 { PUSH_STATE(StringEsc); noGap = TRUE; }
        YY_BREAK
 case 140:
 YY_RULE_SETUP
-#line 743 "yaccParser/hslexer.flex"
+#line 748 "yaccParser/hslexer.flex"
 { addchar(*yytext); POP_STATE; }
        YY_BREAK
 case 141:
 YY_RULE_SETUP
-#line 744 "yaccParser/hslexer.flex"
+#line 749 "yaccParser/hslexer.flex"
 { if (noGap) { addchar(*yytext); } POP_STATE; }
        YY_BREAK
 case 142:
 YY_RULE_SETUP
-#line 746 "yaccParser/hslexer.flex"
+#line 751 "yaccParser/hslexer.flex"
 { addchar(*yytext); POP_STATE; }
        YY_BREAK
 case 143:
 YY_RULE_SETUP
-#line 747 "yaccParser/hslexer.flex"
+#line 752 "yaccParser/hslexer.flex"
 { addchar('\000'); POP_STATE; }
        YY_BREAK
 case 144:
 YY_RULE_SETUP
-#line 748 "yaccParser/hslexer.flex"
+#line 753 "yaccParser/hslexer.flex"
 { addchar('\001'); POP_STATE; }
        YY_BREAK
 case 145:
 YY_RULE_SETUP
-#line 749 "yaccParser/hslexer.flex"
+#line 754 "yaccParser/hslexer.flex"
 { addchar('\002'); POP_STATE; }
        YY_BREAK
 case 146:
 YY_RULE_SETUP
-#line 750 "yaccParser/hslexer.flex"
+#line 755 "yaccParser/hslexer.flex"
 { addchar('\003'); POP_STATE; }
        YY_BREAK
 case 147:
 YY_RULE_SETUP
-#line 751 "yaccParser/hslexer.flex"
+#line 756 "yaccParser/hslexer.flex"
 { addchar('\004'); POP_STATE; }
        YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 752 "yaccParser/hslexer.flex"
+#line 757 "yaccParser/hslexer.flex"
 { addchar('\005'); POP_STATE; }
        YY_BREAK
 case 149:
 YY_RULE_SETUP
-#line 753 "yaccParser/hslexer.flex"
+#line 758 "yaccParser/hslexer.flex"
 { addchar('\006'); POP_STATE; }
        YY_BREAK
 case 150:
-#line 755 "yaccParser/hslexer.flex"
+#line 760 "yaccParser/hslexer.flex"
 case 151:
 YY_RULE_SETUP
-#line 755 "yaccParser/hslexer.flex"
+#line 760 "yaccParser/hslexer.flex"
 { addchar('\007'); POP_STATE; }
        YY_BREAK
 case 152:
-#line 757 "yaccParser/hslexer.flex"
+#line 762 "yaccParser/hslexer.flex"
 case 153:
 YY_RULE_SETUP
-#line 757 "yaccParser/hslexer.flex"
+#line 762 "yaccParser/hslexer.flex"
 { addchar('\010'); POP_STATE; }
        YY_BREAK
 case 154:
-#line 759 "yaccParser/hslexer.flex"
+#line 764 "yaccParser/hslexer.flex"
 case 155:
 YY_RULE_SETUP
-#line 759 "yaccParser/hslexer.flex"
+#line 764 "yaccParser/hslexer.flex"
 { addchar('\011'); POP_STATE; }
        YY_BREAK
 case 156:
-#line 761 "yaccParser/hslexer.flex"
+#line 766 "yaccParser/hslexer.flex"
 case 157:
 YY_RULE_SETUP
-#line 761 "yaccParser/hslexer.flex"
+#line 766 "yaccParser/hslexer.flex"
 { addchar('\012'); POP_STATE; }
        YY_BREAK
 case 158:
-#line 763 "yaccParser/hslexer.flex"
+#line 768 "yaccParser/hslexer.flex"
 case 159:
 YY_RULE_SETUP
-#line 763 "yaccParser/hslexer.flex"
+#line 768 "yaccParser/hslexer.flex"
 { addchar('\013'); POP_STATE; }
        YY_BREAK
 case 160:
-#line 765 "yaccParser/hslexer.flex"
+#line 770 "yaccParser/hslexer.flex"
 case 161:
 YY_RULE_SETUP
-#line 765 "yaccParser/hslexer.flex"
+#line 770 "yaccParser/hslexer.flex"
 { addchar('\014'); POP_STATE; }
        YY_BREAK
 case 162:
-#line 767 "yaccParser/hslexer.flex"
+#line 772 "yaccParser/hslexer.flex"
 case 163:
 YY_RULE_SETUP
-#line 767 "yaccParser/hslexer.flex"
+#line 772 "yaccParser/hslexer.flex"
 { addchar('\015'); POP_STATE; }
        YY_BREAK
 case 164:
 YY_RULE_SETUP
-#line 768 "yaccParser/hslexer.flex"
+#line 773 "yaccParser/hslexer.flex"
 { addchar('\016'); POP_STATE; }
        YY_BREAK
 case 165:
 YY_RULE_SETUP
-#line 769 "yaccParser/hslexer.flex"
+#line 774 "yaccParser/hslexer.flex"
 { addchar('\017'); POP_STATE; }
        YY_BREAK
 case 166:
 YY_RULE_SETUP
-#line 770 "yaccParser/hslexer.flex"
+#line 775 "yaccParser/hslexer.flex"
 { addchar('\020'); POP_STATE; }
        YY_BREAK
 case 167:
 YY_RULE_SETUP
-#line 771 "yaccParser/hslexer.flex"
+#line 776 "yaccParser/hslexer.flex"
 { addchar('\021'); POP_STATE; }
        YY_BREAK
 case 168:
 YY_RULE_SETUP
-#line 772 "yaccParser/hslexer.flex"
+#line 777 "yaccParser/hslexer.flex"
 { addchar('\022'); POP_STATE; }
        YY_BREAK
 case 169:
 YY_RULE_SETUP
-#line 773 "yaccParser/hslexer.flex"
+#line 778 "yaccParser/hslexer.flex"
 { addchar('\023'); POP_STATE; }
        YY_BREAK
 case 170:
 YY_RULE_SETUP
-#line 774 "yaccParser/hslexer.flex"
+#line 779 "yaccParser/hslexer.flex"
 { addchar('\024'); POP_STATE; }
        YY_BREAK
 case 171:
 YY_RULE_SETUP
-#line 775 "yaccParser/hslexer.flex"
+#line 780 "yaccParser/hslexer.flex"
 { addchar('\025'); POP_STATE; }
        YY_BREAK
 case 172:
 YY_RULE_SETUP
-#line 776 "yaccParser/hslexer.flex"
+#line 781 "yaccParser/hslexer.flex"
 { addchar('\026'); POP_STATE; }
        YY_BREAK
 case 173:
 YY_RULE_SETUP
-#line 777 "yaccParser/hslexer.flex"
+#line 782 "yaccParser/hslexer.flex"
 { addchar('\027'); POP_STATE; }
        YY_BREAK
 case 174:
 YY_RULE_SETUP
-#line 778 "yaccParser/hslexer.flex"
+#line 783 "yaccParser/hslexer.flex"
 { addchar('\030'); POP_STATE; }
        YY_BREAK
 case 175:
 YY_RULE_SETUP
-#line 779 "yaccParser/hslexer.flex"
+#line 784 "yaccParser/hslexer.flex"
 { addchar('\031'); POP_STATE; }
        YY_BREAK
 case 176:
 YY_RULE_SETUP
-#line 780 "yaccParser/hslexer.flex"
+#line 785 "yaccParser/hslexer.flex"
 { addchar('\032'); POP_STATE; }
        YY_BREAK
 case 177:
 YY_RULE_SETUP
-#line 781 "yaccParser/hslexer.flex"
+#line 786 "yaccParser/hslexer.flex"
 { addchar('\033'); POP_STATE; }
        YY_BREAK
 case 178:
 YY_RULE_SETUP
-#line 782 "yaccParser/hslexer.flex"
+#line 787 "yaccParser/hslexer.flex"
 { addchar('\034'); POP_STATE; }
        YY_BREAK
 case 179:
 YY_RULE_SETUP
-#line 783 "yaccParser/hslexer.flex"
+#line 788 "yaccParser/hslexer.flex"
 { addchar('\035'); POP_STATE; }
        YY_BREAK
 case 180:
 YY_RULE_SETUP
-#line 784 "yaccParser/hslexer.flex"
+#line 789 "yaccParser/hslexer.flex"
 { addchar('\036'); POP_STATE; }
        YY_BREAK
 case 181:
 YY_RULE_SETUP
-#line 785 "yaccParser/hslexer.flex"
+#line 790 "yaccParser/hslexer.flex"
 { addchar('\037'); POP_STATE; }
        YY_BREAK
 case 182:
 YY_RULE_SETUP
-#line 786 "yaccParser/hslexer.flex"
+#line 791 "yaccParser/hslexer.flex"
 { addchar('\040'); POP_STATE; }
        YY_BREAK
 case 183:
 YY_RULE_SETUP
-#line 787 "yaccParser/hslexer.flex"
+#line 792 "yaccParser/hslexer.flex"
 { addchar('\177'); POP_STATE; }
        YY_BREAK
 case 184:
 YY_RULE_SETUP
-#line 788 "yaccParser/hslexer.flex"
+#line 793 "yaccParser/hslexer.flex"
 { char c = yytext[1] - '@'; addchar(c); POP_STATE; }
        YY_BREAK
 case 185:
 YY_RULE_SETUP
-#line 789 "yaccParser/hslexer.flex"
+#line 794 "yaccParser/hslexer.flex"
 {
                          int i = strtol(yytext, NULL, 10);
                          if (i < NCHARS) {
@@ -2915,7 +2858,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 186:
 YY_RULE_SETUP
-#line 801 "yaccParser/hslexer.flex"
+#line 806 "yaccParser/hslexer.flex"
 {
                          int i = strtol(yytext + 1, NULL, 8);
                          if (i < NCHARS) {
@@ -2931,7 +2874,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 187:
 YY_RULE_SETUP
-#line 813 "yaccParser/hslexer.flex"
+#line 818 "yaccParser/hslexer.flex"
 {
                          int i = strtol(yytext + 1, NULL, 16);
                          if (i < NCHARS) {
@@ -2957,10 +2900,10 @@ YY_RULE_SETUP
      */
 
 case 188:
-#line 839 "yaccParser/hslexer.flex"
+#line 844 "yaccParser/hslexer.flex"
 case 189:
 YY_RULE_SETUP
-#line 839 "yaccParser/hslexer.flex"
+#line 844 "yaccParser/hslexer.flex"
 { noGap = FALSE; }
        YY_BREAK
 
@@ -2972,33 +2915,33 @@ YY_RULE_SETUP
 
 case 190:
 YY_RULE_SETUP
-#line 849 "yaccParser/hslexer.flex"
+#line 854 "yaccParser/hslexer.flex"
 { 
                          noGap = FALSE; nested_comments = 1; PUSH_STATE(Comment); 
                        }
        YY_BREAK
 case 191:
-#line 854 "yaccParser/hslexer.flex"
+#line 859 "yaccParser/hslexer.flex"
 case 192:
-#line 855 "yaccParser/hslexer.flex"
+#line 860 "yaccParser/hslexer.flex"
 case 193:
 YY_RULE_SETUP
-#line 855 "yaccParser/hslexer.flex"
+#line 860 "yaccParser/hslexer.flex"
 ;
        YY_BREAK
 case 194:
 YY_RULE_SETUP
-#line 856 "yaccParser/hslexer.flex"
+#line 861 "yaccParser/hslexer.flex"
 { nested_comments++; }
        YY_BREAK
 case 195:
 YY_RULE_SETUP
-#line 857 "yaccParser/hslexer.flex"
+#line 862 "yaccParser/hslexer.flex"
 { if (--nested_comments == 0) POP_STATE; }
        YY_BREAK
 case 196:
 YY_RULE_SETUP
-#line 858 "yaccParser/hslexer.flex"
+#line 863 "yaccParser/hslexer.flex"
 ;
        YY_BREAK
 
@@ -3010,7 +2953,7 @@ YY_RULE_SETUP
 
 case 197:
 YY_RULE_SETUP
-#line 868 "yaccParser/hslexer.flex"
+#line 873 "yaccParser/hslexer.flex"
 { 
                         fprintf(stderr, "\"%s\", line %d, column %d: Illegal character: `", 
                            input_filename, hsplineno, hspcolno + 1); 
@@ -3021,7 +2964,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 198:
 YY_RULE_SETUP
-#line 875 "yaccParser/hslexer.flex"
+#line 880 "yaccParser/hslexer.flex"
 { 
                         fprintf(stderr, "\"%s\", line %d, column %d: Illegal character: `",
                            input_filename, hsplineno, hspcolno + 1); 
@@ -3032,7 +2975,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 199:
 YY_RULE_SETUP
-#line 882 "yaccParser/hslexer.flex"
+#line 887 "yaccParser/hslexer.flex"
 {
                         fprintf(stderr, "\"%s\", line %d, column %d: Illegal character escape: `\\",
                            input_filename, hsplineno, hspcolno + 1); 
@@ -3043,7 +2986,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 200:
 YY_RULE_SETUP
-#line 889 "yaccParser/hslexer.flex"
+#line 894 "yaccParser/hslexer.flex"
 { if (nonstandardFlag) {
                              addtext(yytext, yyleng);
                           } else { 
@@ -3057,7 +3000,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 201:
 YY_RULE_SETUP
-#line 899 "yaccParser/hslexer.flex"
+#line 904 "yaccParser/hslexer.flex"
 {
                         if (noGap) {
                             fprintf(stderr, "\"%s\", line %d, column %d: Illegal string escape: `\\", 
@@ -3088,14 +3031,14 @@ YY_RULE_SETUP
 
 case YY_STATE_EOF(Char):
 case YY_STATE_EOF(CharEsc):
-#line 928 "yaccParser/hslexer.flex"
+#line 933 "yaccParser/hslexer.flex"
 { 
                          hsplineno = hslineno; hspcolno = hscolno;
                          hsperror("unterminated character literal");
                        }
        YY_BREAK
 case YY_STATE_EOF(Comment):
-#line 932 "yaccParser/hslexer.flex"
+#line 937 "yaccParser/hslexer.flex"
 { 
                          hsplineno = hslineno; hspcolno = hscolno;
                          hsperror("unterminated comment"); 
@@ -3103,21 +3046,21 @@ case YY_STATE_EOF(Comment):
        YY_BREAK
 case YY_STATE_EOF(String):
 case YY_STATE_EOF(StringEsc):
-#line 936 "yaccParser/hslexer.flex"
+#line 941 "yaccParser/hslexer.flex"
 { 
                          hsplineno = hslineno; hspcolno = hscolno;
                          hsperror("unterminated string literal"); 
                        }
        YY_BREAK
 case YY_STATE_EOF(GhcPragma):
-#line 940 "yaccParser/hslexer.flex"
+#line 945 "yaccParser/hslexer.flex"
 {
                          hsplineno = hslineno; hspcolno = hscolno;
                          hsperror("unterminated interface pragma"); 
                        }
        YY_BREAK
 case YY_STATE_EOF(UserPragma):
-#line 944 "yaccParser/hslexer.flex"
+#line 949 "yaccParser/hslexer.flex"
 {
                          hsplineno = hslineno; hspcolno = hscolno;
                          hsperror("unterminated user-specified pragma"); 
@@ -3125,12 +3068,12 @@ case YY_STATE_EOF(UserPragma):
        YY_BREAK
 case YY_STATE_EOF(Code):
 case YY_STATE_EOF(GlaExt):
-#line 948 "yaccParser/hslexer.flex"
+#line 953 "yaccParser/hslexer.flex"
 { hsplineno = hslineno; hspcolno = hscolno; return(EOF); }
        YY_BREAK
 case 202:
 YY_RULE_SETUP
-#line 950 "yaccParser/hslexer.flex"
+#line 955 "yaccParser/hslexer.flex"
 YY_FATAL_ERROR( "flex scanner jammed" );
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
@@ -3422,7 +3365,7 @@ static yy_state_type yy_get_previous_state()
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 837 )
+                       if ( yy_current_state >= 743 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -3457,11 +3400,11 @@ yy_state_type yy_current_state;
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 837 )
+               if ( yy_current_state >= 743 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 836);
+       yy_is_jam = (yy_current_state == 742);
 
        return yy_is_jam ? 0 : yy_current_state;
        }
@@ -3994,7 +3937,7 @@ int main()
        return 0;
        }
 #endif
-#line 950 "yaccParser/hslexer.flex"
+#line 955 "yaccParser/hslexer.flex"
 
 
 /**********************************************************************
index 0e3fb70..3c2ab36 100644 (file)
@@ -538,13 +538,18 @@ NL                        [\n\r]
 <GhcPragma>"_TUP_"{D}+         { hsnewid(yytext, yyleng); RETURN(CONID); }
 <GhcPragma>[a-z]{i}*"$"[a-z]{i}* { hsnewid(yytext, yyleng); RETURN(TYVAR_TEMPLATE_ID); }
 
-<GlaExt,GhcPragma,UserPragma>{Id}"#" { 
+%{
+/* These SHOULDNAE work in "Code" (sigh) */
+%}
+<Code,GlaExt,GhcPragma,UserPragma>{Id}"#" { 
+                        if (! (nonstandardFlag || in_interface)) {
+                           char errbuf[ERR_BUF_SIZE];
+                           sprintf(errbuf, "Non-standard identifier (trailing `#'): %s\n", yytext);
+                           hsperror(errbuf);
+                        }
                         hsnewid(yytext, yyleng);
                         RETURN(_isconstr(yytext) ? CONID : VARID);
                        }
-%{
-/* This SHOULDNAE work in "Code" (sigh) */
-%}
 <Code,GlaExt,GhcPragma,UserPragma>_+{Id} { 
                         if (! (nonstandardFlag || in_interface)) {
                            char errbuf[ERR_BUF_SIZE];
index e9e86bc..4599972 100644 (file)
@@ -981,9 +981,9 @@ PACKET packet;
 {
     GLOBAL_TASK_ID sender = Sender_Task(packet); 
     OPCODE opcode = Opcode(packet);
-    
+#if 0    
     fprintf(stderr,"STG_Exception: Received %s (%x), sender %x\n",GetOpName(opcode),opcode,sender); 
-
+#endif
     switch (opcode) {
 
     case PP_FINISH:
index abddf75..200ca34 100644 (file)
@@ -276,13 +276,16 @@ GLOBAL_TASK_ID who;
   rtsBool match;
 
   do {
+#if 0
     fprintf(stderr,"WaitForPEOp: op = %x, who = %x\n",op,who); 
+#endif
     while((p = pvm_recv(ANY_TASK,ANY_OPCODE)) < 0)
       pvm_perror("WaitForPEOp: Waiting for PEOp");
       
     pvm_bufinfo( p, &nbytes, &opcode, &sender_id );
+#if 0
     fprintf(stderr,"WaitForPEOp: received: opcode = %x, sender_id = %x\n",opcode,sender_id); 
-
+#endif
     match = (op == ANY_OPCODE || op == opcode) && (who == ANY_TASK || who == sender_id);
 
     if(match)
@@ -333,8 +336,11 @@ GLOBAL_TASK_ID *psender_id;
 
 @PEStartUp@ does the low-level comms specific startup stuff for a
 PE. It initialises the comms system, joins the appropriate groups,
-synchronises with the other PEs. Finally it receives from Control the
-array of Global Task Ids.
+synchronises with the other PEs. Receives and records in a global
+variable the task-id of SysMan. If this is the main thread (discovered
+in main.lc), identifies itself to SysMan. Finally it receives
+from SysMan an array of the Global Task Ids of each PE, which is
+returned as the value of the function.
 
 \begin{code}
 GLOBAL_TASK_ID *
@@ -349,13 +355,13 @@ unsigned nPEs;
 
     mytid = _my_gtid;          /* Initialise PVM and get task id into global var.*/
 
-    fprintf(stderr,"PEStartup, Task id = [%x], No. PEs = %d \n", mytid, nPEs); 
+/*    fprintf(stderr,"PEStartup, Task id = [%x], No. PEs = %d \n", mytid, nPEs); */
     checkComms(pvm_joingroup(PEGROUP), "PEStartup");
-    fprintf(stderr,"PEStartup, Joined PEGROUP\n"); 
+/*    fprintf(stderr,"PEStartup, Joined PEGROUP\n"); */
     checkComms(pvm_joingroup(PECTLGROUP), "PEStartup");
-    fprintf(stderr,"PEStartup, Joined PECTLGROUP\n"); 
+/*    fprintf(stderr,"PEStartup, Joined PECTLGROUP\n"); */
     checkComms(pvm_barrier(PECTLGROUP, nPEs+1), "PEStartup");
-    fprintf(stderr,"PEStartup, Passed PECTLGROUP barrier\n"); 
+/*    fprintf(stderr,"PEStartup, Passed PECTLGROUP barrier\n"); */
 
     addr = WaitForPEOp(PP_SYSMAN_TID, ANY_GLOBAL_TASK);
     SysManTask = Sender_Task(addr);
@@ -365,11 +371,12 @@ unsigned nPEs;
     } 
     addr = WaitForPEOp(PP_PETIDS, ANY_GLOBAL_TASK);
     GetArgs(buffer, nPEs);
-
+#if 0
     for (i = 0; i < nPEs; ++i) {
        PEs[i] = (GLOBAL_TASK_ID) buffer[i];
        fprintf(stderr,"PEs[%d] = %x \n", i, PEs[i]); 
     }
+#endif
     free(buffer);
     return PEs;
 }
index d6214d2..50a6cd2 100644 (file)
@@ -7,14 +7,16 @@
 %
 %****************************************************************************
 
-The Sysman task controls initiation, termination, global GC
-synchronisation and statistics gathering of a parallel Haskell program
-running under GUM. Based on K. Hammond's SysMan.lc in Graph for
-PVM. SysMan is unusual in that it is not part of the executable
-produced by ghc: it is a free-standing program that spawns PVM tasks
-(logical PEs) to evaluate the program.
+The Sysman task currently controls initiation, termination, of a
+parallel Haskell program running under GUM. In the future it may
+control global GC synchronisation and statistics gathering. Based on
+K. Hammond's SysMan.lc in Graph for PVM. SysMan is unusual in that it
+is not part of the executable produced by ghc: it is a free-standing
+program that spawns PVM tasks (logical PEs) to evaluate the
+program. After initialisation it runs in parallel with the PE tasks,
+awaiting messages.
 
-OK children, buckle down for some serious weirdness, it works like this.
+OK children, buckle down for some serious weirdness, it works like this ...
 
 \begin{itemize}
 \item The argument vector (argv) for SysMan has one the following 2 shapes:
@@ -68,7 +70,7 @@ The pvm-executable run by each PE-task, is initialised as follows.
 \item Receives and records the task-id of SysMan, for future use.
 \item If the PE is the main thread it sends its task-id to SysMan.
 \item Receives and records the array of task-ids of the other PEs.
-\item Begins execution
+\item Begins execution.
 \end{itemize}
 
 \end{itemize}
@@ -90,7 +92,7 @@ rtsBool IAmMainThread;
 
 
 \begin{code}
-static GLOBAL_TASK_ID gtids[MAX_PES], StatsTask = 0;
+static GLOBAL_TASK_ID gtids[MAX_PES];
 static long PEbuffer[MAX_PES];
 int nPEs = 0;
 static GLOBAL_TASK_ID sysman_id, sender_id, mainThread_id;
@@ -168,7 +170,7 @@ main(int argc, char **argv)
            nPEs--;
            /* Initialise the PE task arguments from Sysman's arguments */
            pargv = argv + 2;
-#if 1
+#if 0
            fprintf(stderr, "Spawning %d PEs(%s) ...\n", nPEs, petask);
            fprintf(stderr, "  args: ");
            for (i = 0; pargv[i]; ++i)
@@ -182,7 +184,7 @@ main(int argc, char **argv)
             */     
            for (i = 0; i < nPEs; i++)
                PEbuffer[i+1] = (long) gtids[i];
-#if 1
+#if 0
            fprintf(stderr, "Spawned /* PWT */\n");
 #endif
        }
@@ -195,7 +197,7 @@ main(int argc, char **argv)
        nPEs++;                         /* Record that the number of PEs is increasing */
        if (cc = fork()) {
             checkerr(cc);              /* Parent continues as SysMan */
-#if 1
+#if 0
            fprintf(stderr, "SysMan Task is [t%x]\n", sysman_id);
 #endif
            /*
@@ -208,12 +210,12 @@ main(int argc, char **argv)
            garbage collector manager.
            */
            checkerr(pvm_joingroup(PECTLGROUP));
-#if 1
+#if 0
            fprintf(stderr, "Joined PECTLGROUP /* PWT */\n");
 #endif
            /* Wait for all the PEs to arrive */
            checkerr(pvm_barrier(PECTLGROUP, nPEs + 1));
-#if 1
+#if 0
            fprintf(stderr, "PECTLGROUP  barrier passed /* HWL */\n");
 #endif
            /* Broadcast SysMan's ID, so Main Thread PE knows it */
@@ -224,14 +226,14 @@ main(int argc, char **argv)
            addr = WaitForPEOp(PP_MAIN_TASK, ANY_GLOBAL_TASK);
             pvm_bufinfo(addr, &nbytes, &opcode, &mainThread_id );
            PEbuffer[0] = mainThread_id;
-#if 1
+#if 0
            fprintf(stderr,"SysMan received Main Task = %x\n",mainThread_id); 
 #endif     
            /* Now that we have them all, broadcast Global Task Ids of all PEs */
            pvm_initsend(PvmDataDefault);
            PutArgs(PEbuffer, nPEs);
            pvm_bcast(PEGROUP, PP_PETIDS);
-#if 1
+#if 0
            fprintf(stderr, "Sysman successfully initialized!\n");
 #endif
            /* Process incoming messages */
@@ -260,12 +262,10 @@ main(int argc, char **argv)
                        break;
 
                    case PP_FINISH:
-                       fprintf(stderr, "Finish from %x\n", sender_id);
                        if (!Finishing) {
-                         long buf = (long) StatsTask;
+                         fprintf(stderr, "\nFinish from %x\n", sender_id);
                          Finishing = rtsTrue;
                          pvm_initsend(PvmDataDefault);
-                         pvm_pklong(&buf, 1, 1);
                          pvm_bcast(PEGROUP, PP_FINISH);
                      } else {
                          ++PEsTerminated;
index 3e97731..8d6d8dc 100644 (file)
@@ -122,10 +122,10 @@ Manager's requirements.
 
 \begin{code}
 #ifdef PAR
-    if (*argv[0] == '-') {     /* Look to see whether we're the Main Thread */
+    if (*argv[0] == '-') {             /* Look to see whether we're the Main Thread */
        IAmMainThread = rtsTrue;
-        argv++; argc--;
-       fprintf(stderr, "I am Main Thread\n");
+        argv++; argc--;                        /* Strip off flag argument */
+/*     fprintf(stderr, "I am Main Thread\n"); */
     }
     /* 
      * Grab the number of PEs out of the argument vector, and