]> granicus.if.org Git - postgresql/commitdiff
Fix compile error. Make transaction/work optional on all transaction
authorBruce Momjian <bruce@momjian.us>
Sun, 26 Jul 1998 01:18:09 +0000 (01:18 +0000)
committerBruce Momjian <bruce@momjian.us>
Sun, 26 Jul 1998 01:18:09 +0000 (01:18 +0000)
statements.  More cleanups of psql help.  Fix for shift/reduce on
UNION in subselect.

src/backend/parser/gram.c
src/backend/parser/gram.y
src/backend/parser/parse.h
src/bin/psql/psql.c
src/bin/psql/psqlHelp.h

index df0eb6b7da1dcff8107172b96d8983b5a47249a0..38b9616b8a052a1febede4e29e310e9bfc585fbf 100644 (file)
 #define        MATCH   324
 #define        MINUTE_P        325
 #define        MONTH_P 326
-#define        NATIONAL        327
-#define        NATURAL 328
-#define        NCHAR   329
-#define        NO      330
-#define        NOT     331
-#define        NOTIFY  332
-#define        NULL_P  333
-#define        NUMERIC 334
-#define        ON      335
-#define        OPTION  336
-#define        OR      337
-#define        ORDER   338
-#define        OUTER_P 339
-#define        PARTIAL 340
-#define        POSITION        341
-#define        PRECISION       342
-#define        PRIMARY 343
-#define        PRIVILEGES      344
-#define        PROCEDURE       345
-#define        PUBLIC  346
-#define        REFERENCES      347
-#define        REVOKE  348
-#define        RIGHT   349
-#define        ROLLBACK        350
-#define        SECOND_P        351
-#define        SELECT  352
-#define        SET     353
-#define        SUBSTRING       354
-#define        TABLE   355
-#define        TIME    356
-#define        TIMESTAMP       357
-#define        TIMEZONE_HOUR   358
-#define        TIMEZONE_MINUTE 359
-#define        TO      360
-#define        TRAILING        361
-#define        TRANSACTION     362
-#define        TRIM    363
-#define        UNION   364
-#define        UNIQUE  365
-#define        UPDATE  366
-#define        USER    367
-#define        USING   368
-#define        VALUES  369
-#define        VARCHAR 370
-#define        VARYING 371
-#define        VIEW    372
-#define        WHERE   373
-#define        WITH    374
-#define        WORK    375
-#define        YEAR_P  376
-#define        ZONE    377
-#define        FALSE_P 378
-#define        TRIGGER 379
-#define        TRUE_P  380
-#define        TYPE_P  381
-#define        ABORT_TRANS     382
-#define        AFTER   383
-#define        AGGREGATE       384
-#define        ANALYZE 385
-#define        BACKWARD        386
-#define        BEFORE  387
-#define        BINARY  388
-#define        CACHE   389
-#define        CLUSTER 390
-#define        COPY    391
-#define        CYCLE   392
-#define        DATABASE        393
-#define        DELIMITERS      394
-#define        DO      395
-#define        EACH    396
-#define        EXPLAIN 397
-#define        EXTEND  398
-#define        FORWARD 399
-#define        FUNCTION        400
-#define        HANDLER 401
-#define        INCREMENT       402
-#define        INDEX   403
-#define        INHERITS        404
-#define        INSTEAD 405
-#define        ISNULL  406
-#define        LANCOMPILER     407
-#define        LISTEN  408
-#define        LOAD    409
-#define        LOCK_P  410
-#define        LOCATION        411
-#define        MAXVALUE        412
-#define        MINVALUE        413
-#define        MOVE    414
-#define        NEW     415
-#define        NONE    416
-#define        NOTHING 417
-#define        NOTNULL 418
-#define        OIDS    419
-#define        OPERATOR        420
-#define        PROCEDURAL      421
-#define        RECIPE  422
-#define        RENAME  423
-#define        RESET   424
-#define        RETURNS 425
-#define        ROW     426
-#define        RULE    427
-#define        SEQUENCE        428
-#define        SETOF   429
-#define        SHOW    430
-#define        START   431
-#define        STATEMENT       432
-#define        STDIN   433
-#define        STDOUT  434
-#define        TRUSTED 435
-#define        VACUUM  436
-#define        VERBOSE 437
-#define        VERSION 438
-#define        ARCHIVE 439
-#define        PASSWORD        440
-#define        CREATEDB        441
-#define        NOCREATEDB      442
-#define        CREATEUSER      443
-#define        NOCREATEUSER    444
-#define        VALID   445
-#define        UNTIL   446
-#define        IDENT   447
-#define        SCONST  448
-#define        Op      449
-#define        ICONST  450
-#define        PARAM   451
-#define        FCONST  452
-#define        OP      453
-#define        UMINUS  454
-#define        TYPECAST        455
-#define        REDUCE  456
+#define        NAMES   327
+#define        NATIONAL        328
+#define        NATURAL 329
+#define        NCHAR   330
+#define        NO      331
+#define        NOT     332
+#define        NOTIFY  333
+#define        NULL_P  334
+#define        NUMERIC 335
+#define        ON      336
+#define        OPTION  337
+#define        OR      338
+#define        ORDER   339
+#define        OUTER_P 340
+#define        PARTIAL 341
+#define        POSITION        342
+#define        PRECISION       343
+#define        PRIMARY 344
+#define        PRIVILEGES      345
+#define        PROCEDURE       346
+#define        PUBLIC  347
+#define        REFERENCES      348
+#define        REVOKE  349
+#define        RIGHT   350
+#define        ROLLBACK        351
+#define        SECOND_P        352
+#define        SELECT  353
+#define        SET     354
+#define        SUBSTRING       355
+#define        TABLE   356
+#define        TIME    357
+#define        TIMESTAMP       358
+#define        TIMEZONE_HOUR   359
+#define        TIMEZONE_MINUTE 360
+#define        TO      361
+#define        TRAILING        362
+#define        TRANSACTION     363
+#define        TRIM    364
+#define        UNION   365
+#define        UNIQUE  366
+#define        UPDATE  367
+#define        USER    368
+#define        USING   369
+#define        VALUES  370
+#define        VARCHAR 371
+#define        VARYING 372
+#define        VIEW    373
+#define        WHERE   374
+#define        WITH    375
+#define        WORK    376
+#define        YEAR_P  377
+#define        ZONE    378
+#define        FALSE_P 379
+#define        TRIGGER 380
+#define        TRUE_P  381
+#define        TYPE_P  382
+#define        ABORT_TRANS     383
+#define        AFTER   384
+#define        AGGREGATE       385
+#define        ANALYZE 386
+#define        BACKWARD        387
+#define        BEFORE  388
+#define        BINARY  389
+#define        CACHE   390
+#define        CLUSTER 391
+#define        COPY    392
+#define        CYCLE   393
+#define        DATABASE        394
+#define        DELIMITERS      395
+#define        DO      396
+#define        EACH    397
+#define        EXPLAIN 398
+#define        EXTEND  399
+#define        FORWARD 400
+#define        FUNCTION        401
+#define        HANDLER 402
+#define        INCREMENT       403
+#define        INDEX   404
+#define        INHERITS        405
+#define        INSTEAD 406
+#define        ISNULL  407
+#define        LANCOMPILER     408
+#define        LISTEN  409
+#define        LOAD    410
+#define        LOCK_P  411
+#define        LOCATION        412
+#define        MAXVALUE        413
+#define        MINVALUE        414
+#define        MOVE    415
+#define        NEW     416
+#define        NONE    417
+#define        NOTHING 418
+#define        NOTNULL 419
+#define        OIDS    420
+#define        OPERATOR        421
+#define        PROCEDURAL      422
+#define        RECIPE  423
+#define        RENAME  424
+#define        RESET   425
+#define        RETURNS 426
+#define        ROW     427
+#define        RULE    428
+#define        SEQUENCE        429
+#define        SETOF   430
+#define        SHOW    431
+#define        START   432
+#define        STATEMENT       433
+#define        STDIN   434
+#define        STDOUT  435
+#define        TRUSTED 436
+#define        VACUUM  437
+#define        VERBOSE 438
+#define        VERSION 439
+#define        ENCODING        440
+#define        ARCHIVE 441
+#define        PASSWORD        442
+#define        CREATEDB        443
+#define        NOCREATEDB      444
+#define        CREATEUSER      445
+#define        NOCREATEUSER    446
+#define        VALID   447
+#define        UNTIL   448
+#define        IDENT   449
+#define        SCONST  450
+#define        Op      451
+#define        ICONST  452
+#define        PARAM   453
+#define        FCONST  454
+#define        OP      455
+#define        UMINUS  456
+#define        TYPECAST        457
 
 #line 1 "gram.y"
  /* -*-text-*- */
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/parser/Attic/gram.c,v 2.18 1998/07/20 11:17:10 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/parser/Attic/gram.c,v 2.19 1998/07/26 01:18:01 momjian Exp $
  *
  * HISTORY
  *       AUTHOR                        DATE                    MAJOR EVENT
 #include "utils/elog.h"
 #include "access/xact.h"
 
+#ifdef MB
+#include "mb/pg_wchar.h"
+#endif
+
 static char saved_relname[NAMEDATALEN];  /* need this for complex attributes */
 static bool QueryIsRule = FALSE;
 static List *saved_In_Expr = NIL;
@@ -287,7 +292,7 @@ Oid param_type(int t); /* used in parse_expr.c */
 #undef yywrap
 #endif /* yywrap */
 
-#line 84 "gram.y"
+#line 88 "gram.y"
 typedef union
 {
        double                          dval;
@@ -328,26 +333,26 @@ typedef union
 
 
 
-#define        YYFINAL         1540
+#define        YYFINAL         1557
 #define        YYFLAG          -32768
-#define        YYNTBASE        218
+#define        YYNTBASE        219
 
-#define YYTRANSLATE(x) ((unsigned)(x) <= 456 ? yytranslate[x] : 469)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 457 ? yytranslate[x] : 474)
 
 static const short yytranslate[] = {     0,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,   216,
-   217,   204,   202,   215,   203,   210,   205,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,   207,   208,   200,
-   199,   201,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,   217,
+   218,   206,   204,   216,   205,   212,   207,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,   209,   210,   202,
+   201,   203,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-   211,     2,   212,     2,     2,     2,     2,     2,     2,     2,
+   213,     2,   214,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,   206,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,   208,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -380,7 +385,7 @@ static const short yytranslate[] = {     0,
    166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
    176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
    186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
-   196,   197,   198,   209,   213,   214
+   196,   197,   198,   199,   200,   211,   215
 };
 
 #if YYDEBUG != 0
@@ -391,449 +396,453 @@ static const short yyprhs[] = {     0,
     64,    66,    68,    70,    72,    74,    76,    78,    80,    82,
     84,    86,    88,    90,    92,    94,    96,    98,   107,   116,
    120,   124,   125,   127,   129,   130,   132,   134,   135,   139,
-   141,   145,   146,   150,   151,   156,   161,   166,   168,   170,
-   172,   174,   176,   179,   183,   186,   190,   196,   200,   205,
-   209,   216,   222,   225,   228,   236,   238,   240,   242,   244,
-   246,   248,   249,   252,   253,   257,   258,   267,   271,   273,
-   274,   276,   278,   282,   284,   285,   288,   290,   294,   296,
-   301,   304,   307,   309,   312,   318,   322,   324,   326,   328,
-   331,   335,   339,   343,   347,   351,   355,   359,   362,   365,
-   368,   372,   379,   383,   387,   392,   396,   399,   402,   404,
-   406,   411,   413,   418,   420,   422,   426,   428,   433,   438,
-   444,   455,   459,   461,   463,   465,   467,   470,   474,   478,
-   482,   486,   490,   494,   498,   501,   504,   507,   511,   518,
-   522,   526,   531,   535,   539,   543,   547,   550,   553,   556,
-   559,   563,   566,   571,   575,   579,   584,   589,   592,   595,
-   596,   599,   601,   602,   606,   610,   613,   615,   618,   621,
-   626,   627,   631,   632,   639,   643,   644,   648,   650,   652,
-   657,   660,   661,   664,   666,   669,   672,   675,   678,   680,
-   682,   684,   687,   689,   692,   702,   704,   705,   710,   725,
-   727,   729,   731,   735,   741,   743,   745,   747,   751,   753,
-   754,   756,   758,   760,   764,   765,   767,   769,   771,   773,
-   779,   783,   786,   788,   790,   792,   794,   796,   798,   800,
-   802,   806,   808,   812,   816,   818,   822,   824,   826,   828,
-   830,   833,   837,   841,   846,   851,   853,   855,   856,   858,
-   860,   861,   864,   865,   873,   876,   878,   880,   882,   886,
-   888,   890,   892,   894,   896,   898,   901,   903,   907,   908,
-   915,   927,   929,   930,   933,   934,   936,   938,   942,   944,
-   951,   955,   958,   961,   962,   964,   967,   968,   973,   977,
-   989,   992,   993,   997,  1000,  1002,  1006,  1009,  1011,  1012,
-  1016,  1018,  1020,  1022,  1024,  1029,  1031,  1033,  1038,  1045,
-  1047,  1049,  1051,  1053,  1055,  1057,  1059,  1061,  1063,  1065,
-  1069,  1073,  1077,  1087,  1089,  1090,  1092,  1093,  1094,  1108,
-  1110,  1112,  1116,  1118,  1120,  1124,  1127,  1130,  1134,  1136,
-  1138,  1140,  1142,  1144,  1146,  1147,  1150,  1153,  1156,  1159,
-  1162,  1165,  1168,  1171,  1173,  1175,  1177,  1179,  1181,  1187,
-  1190,  1195,  1200,  1201,  1203,  1205,  1206,  1210,  1215,  1219,
-  1225,  1227,  1228,  1230,  1231,  1235,  1236,  1238,  1242,  1246,
-  1248,  1250,  1252,  1254,  1256,  1258,  1264,  1269,  1278,  1282,
-  1283,  1287,  1289,  1292,  1297,  1301,  1308,  1323,  1334,  1338,
-  1339,  1344,  1346,  1355,  1359,  1360,  1362,  1363,  1365,  1366,
-  1368,  1372,  1374,  1375,  1379,  1380,  1382,  1386,  1389,  1394,
-  1397,  1400,  1403,  1406,  1408,  1410,  1411,  1413,  1414,  1416,
-  1418,  1422,  1426,  1427,  1429,  1433,  1435,  1439,  1441,  1444,
-  1445,  1454,  1457,  1458,  1462,  1467,  1469,  1473,  1476,  1478,
-  1481,  1484,  1487,  1490,  1492,  1494,  1496,  1497,  1499,  1500,
-  1505,  1510,  1511,  1513,  1517,  1519,  1523,  1525,  1528,  1529,
-  1531,  1534,  1538,  1543,  1544,  1548,  1553,  1554,  1557,  1559,
-  1562,  1564,  1566,  1568,  1570,  1572,  1574,  1577,  1580,  1583,
-  1586,  1588,  1591,  1593,  1595,  1599,  1600,  1606,  1610,  1611,
-  1617,  1621,  1622,  1627,  1629,  1634,  1637,  1639,  1643,  1646,
-  1648,  1649,  1653,  1654,  1657,  1658,  1660,  1663,  1665,  1668,
-  1670,  1672,  1674,  1676,  1678,  1680,  1684,  1685,  1687,  1691,
-  1695,  1699,  1703,  1707,  1711,  1715,  1716,  1718,  1720,  1728,
-  1737,  1746,  1754,  1762,  1766,  1770,  1772,  1774,  1776,  1778,
-  1780,  1782,  1784,  1786,  1788,  1790,  1792,  1795,  1797,  1799,
-  1801,  1804,  1808,  1812,  1816,  1820,  1824,  1828,  1832,  1835,
-  1838,  1841,  1845,  1852,  1856,  1860,  1864,  1869,  1872,  1875,
-  1880,  1884,  1889,  1891,  1893,  1898,  1900,  1905,  1907,  1909,
-  1914,  1919,  1924,  1929,  1935,  1941,  1947,  1952,  1955,  1959,
-  1962,  1967,  1971,  1976,  1980,  1985,  1991,  1998,  1999,  2006,
-  2007,  2015,  2021,  2027,  2033,  2039,  2045,  2051,  2057,  2063,
-  2070,  2077,  2084,  2091,  2098,  2105,  2112,  2119,  2126,  2133,
-  2140,  2147,  2154,  2161,  2168,  2175,  2179,  2183,  2186,  2189,
-  2191,  2193,  2196,  2200,  2204,  2208,  2212,  2215,  2218,  2221,
-  2225,  2232,  2236,  2240,  2243,  2246,  2250,  2255,  2257,  2259,
-  2264,  2266,  2271,  2273,  2275,  2280,  2285,  2291,  2297,  2303,
-  2308,  2313,  2320,  2321,  2323,  2327,  2331,  2335,  2336,  2338,
-  2340,  2342,  2346,  2347,  2350,  2352,  2355,  2359,  2363,  2367,
-  2371,  2374,  2378,  2385,  2389,  2393,  2396,  2399,  2401,  2405,
-  2410,  2415,  2420,  2426,  2432,  2438,  2443,  2447,  2448,  2451,
-  2452,  2455,  2456,  2460,  2463,  2465,  2467,  2469,  2471,  2475,
-  2477,  2479,  2481,  2485,  2489,  2493,  2495,  2499,  2503,  2507,
-  2509,  2511,  2516,  2519,  2523,  2527,  2529,  2533,  2535,  2539,
-  2541,  2543,  2544,  2546,  2548,  2550,  2552,  2554,  2556,  2558,
-  2560,  2562,  2564,  2566,  2568,  2570,  2572,  2575,  2577,  2579,
-  2581,  2583,  2585,  2587,  2589,  2591,  2593,  2595,  2597,  2599,
-  2601,  2603,  2605,  2607,  2609,  2611,  2613,  2615,  2617,  2619,
-  2621,  2623,  2625,  2627,  2629,  2631,  2633,  2635,  2637,  2639,
-  2641,  2643,  2645,  2647,  2649,  2651,  2653,  2655,  2657,  2659,
-  2661,  2663,  2665,  2667,  2669,  2671,  2673,  2675,  2677,  2679,
-  2681,  2683,  2685,  2687,  2689,  2691,  2693,  2695
+   141,   145,   146,   150,   151,   156,   161,   166,   170,   172,
+   174,   176,   178,   180,   183,   187,   190,   194,   200,   204,
+   209,   213,   220,   226,   229,   232,   240,   242,   244,   246,
+   248,   250,   252,   253,   256,   257,   261,   262,   271,   275,
+   277,   278,   280,   282,   286,   288,   289,   292,   294,   298,
+   300,   305,   308,   311,   313,   316,   322,   326,   328,   330,
+   332,   335,   339,   343,   347,   351,   355,   359,   363,   366,
+   369,   372,   376,   383,   387,   391,   396,   400,   403,   406,
+   408,   410,   415,   417,   422,   424,   426,   430,   432,   437,
+   442,   448,   459,   463,   465,   467,   469,   471,   474,   478,
+   482,   486,   490,   494,   498,   502,   505,   508,   511,   515,
+   522,   526,   530,   535,   539,   543,   547,   551,   554,   557,
+   560,   563,   567,   570,   575,   579,   583,   588,   593,   596,
+   599,   600,   603,   605,   606,   610,   614,   617,   619,   622,
+   625,   630,   631,   635,   636,   643,   647,   648,   652,   654,
+   656,   661,   664,   665,   668,   670,   673,   676,   679,   682,
+   684,   686,   688,   691,   693,   696,   706,   708,   709,   714,
+   729,   731,   733,   735,   739,   745,   747,   749,   751,   755,
+   757,   758,   760,   762,   764,   768,   769,   771,   773,   775,
+   777,   783,   787,   790,   792,   794,   796,   798,   800,   802,
+   804,   806,   810,   812,   816,   820,   822,   826,   828,   830,
+   832,   834,   837,   841,   845,   850,   855,   857,   859,   860,
+   862,   864,   865,   868,   869,   877,   880,   882,   884,   886,
+   890,   892,   894,   896,   898,   900,   902,   905,   907,   911,
+   912,   919,   931,   933,   934,   937,   938,   940,   942,   946,
+   948,   955,   959,   962,   965,   966,   968,   971,   972,   977,
+   981,   993,   996,   997,  1001,  1004,  1006,  1010,  1013,  1015,
+  1016,  1020,  1022,  1024,  1026,  1028,  1033,  1035,  1037,  1042,
+  1049,  1051,  1053,  1055,  1057,  1059,  1061,  1063,  1065,  1067,
+  1069,  1073,  1077,  1081,  1091,  1093,  1094,  1096,  1097,  1098,
+  1112,  1114,  1116,  1120,  1122,  1124,  1128,  1131,  1134,  1138,
+  1140,  1142,  1144,  1146,  1148,  1150,  1151,  1154,  1157,  1160,
+  1163,  1166,  1169,  1172,  1174,  1176,  1177,  1183,  1186,  1193,
+  1197,  1201,  1202,  1206,  1207,  1209,  1211,  1212,  1214,  1216,
+  1217,  1221,  1226,  1230,  1236,  1238,  1239,  1241,  1242,  1246,
+  1247,  1249,  1253,  1257,  1259,  1261,  1263,  1265,  1267,  1269,
+  1275,  1280,  1289,  1293,  1294,  1298,  1300,  1303,  1308,  1312,
+  1319,  1334,  1345,  1354,  1358,  1359,  1364,  1366,  1374,  1378,
+  1379,  1381,  1382,  1384,  1385,  1387,  1391,  1393,  1394,  1398,
+  1399,  1401,  1405,  1408,  1413,  1416,  1419,  1422,  1425,  1427,
+  1429,  1430,  1432,  1433,  1435,  1437,  1441,  1445,  1446,  1448,
+  1452,  1454,  1458,  1460,  1463,  1464,  1473,  1476,  1477,  1481,
+  1486,  1488,  1492,  1495,  1497,  1500,  1503,  1506,  1509,  1511,
+  1513,  1515,  1516,  1518,  1519,  1524,  1529,  1530,  1532,  1536,
+  1538,  1542,  1544,  1547,  1548,  1550,  1553,  1557,  1562,  1563,
+  1567,  1572,  1573,  1576,  1578,  1581,  1583,  1585,  1587,  1589,
+  1591,  1593,  1596,  1599,  1602,  1605,  1607,  1610,  1612,  1614,
+  1618,  1619,  1625,  1629,  1630,  1636,  1640,  1641,  1646,  1648,
+  1653,  1656,  1658,  1662,  1665,  1667,  1668,  1672,  1673,  1676,
+  1677,  1679,  1682,  1684,  1687,  1689,  1691,  1693,  1695,  1697,
+  1699,  1703,  1704,  1706,  1710,  1714,  1718,  1722,  1726,  1730,
+  1734,  1735,  1737,  1739,  1747,  1756,  1765,  1773,  1781,  1785,
+  1789,  1791,  1793,  1795,  1797,  1799,  1801,  1803,  1805,  1807,
+  1809,  1811,  1814,  1816,  1818,  1820,  1823,  1827,  1831,  1835,
+  1839,  1843,  1847,  1851,  1854,  1857,  1860,  1864,  1871,  1875,
+  1879,  1883,  1888,  1891,  1894,  1899,  1903,  1908,  1910,  1912,
+  1917,  1919,  1924,  1926,  1928,  1933,  1938,  1943,  1948,  1954,
+  1960,  1966,  1971,  1974,  1978,  1981,  1986,  1990,  1995,  1999,
+  2004,  2010,  2017,  2018,  2025,  2026,  2034,  2040,  2046,  2052,
+  2058,  2064,  2070,  2076,  2082,  2089,  2096,  2103,  2110,  2117,
+  2124,  2131,  2138,  2145,  2152,  2159,  2166,  2173,  2180,  2187,
+  2194,  2198,  2202,  2205,  2208,  2210,  2212,  2215,  2219,  2223,
+  2227,  2231,  2234,  2237,  2240,  2244,  2251,  2255,  2259,  2262,
+  2265,  2269,  2274,  2276,  2278,  2283,  2285,  2290,  2292,  2294,
+  2299,  2304,  2310,  2316,  2322,  2327,  2332,  2339,  2340,  2342,
+  2346,  2350,  2354,  2355,  2357,  2359,  2361,  2365,  2366,  2369,
+  2371,  2374,  2378,  2382,  2386,  2390,  2393,  2397,  2404,  2408,
+  2412,  2415,  2418,  2420,  2424,  2429,  2434,  2439,  2445,  2451,
+  2457,  2462,  2466,  2467,  2470,  2471,  2474,  2475,  2479,  2482,
+  2484,  2486,  2488,  2490,  2494,  2496,  2498,  2500,  2504,  2508,
+  2512,  2514,  2518,  2522,  2526,  2528,  2530,  2535,  2538,  2542,
+  2546,  2548,  2552,  2554,  2558,  2560,  2562,  2563,  2565,  2567,
+  2569,  2571,  2573,  2575,  2577,  2579,  2581,  2583,  2585,  2587,
+  2589,  2591,  2594,  2596,  2598,  2600,  2602,  2604,  2606,  2608,
+  2610,  2612,  2614,  2616,  2618,  2620,  2622,  2624,  2626,  2628,
+  2630,  2632,  2634,  2636,  2638,  2640,  2642,  2644,  2646,  2648,
+  2650,  2652,  2654,  2656,  2658,  2660,  2662,  2664,  2666,  2668,
+  2670,  2672,  2674,  2676,  2678,  2680,  2682,  2684,  2686,  2688,
+  2690,  2692,  2694,  2696,  2698,  2700,  2702,  2704,  2706,  2708,
+  2710,  2712,  2714,  2716
 };
 
-static const short yyrhs[] = {   219,
-     0,   220,     0,   219,   220,   208,     0,   219,   220,     0,
-   220,   208,     0,   235,     0,   222,     0,   237,     0,   238,
-     0,   244,     0,   264,     0,   268,     0,   274,     0,   277,
-     0,   221,     0,   353,     0,   287,     0,   295,     0,   276,
-     0,   286,     0,   223,     0,   316,     0,   359,     0,   296,
-     0,   300,     0,   307,     0,   345,     0,   367,     0,   318,
-     0,   317,     0,   326,     0,   329,     0,   328,     0,   324,
-     0,   333,     0,   306,     0,   360,     0,   336,     0,   346,
-     0,   347,     0,   348,     0,   349,     0,   352,     0,   354,
-     0,   230,     0,   233,     0,   234,     0,    25,   112,   464,
-   224,   225,   226,   228,   229,     0,     6,   112,   464,   224,
-   225,   226,   228,   229,     0,    41,   112,   464,     0,   119,
-   185,   464,     0,     0,   186,     0,   187,     0,     0,   188,
-     0,   189,     0,     0,   227,   215,   464,     0,   464,     0,
-    56,    53,   227,     0,     0,   190,   191,   193,     0,     0,
-    98,   466,   105,   231,     0,    98,   466,   199,   231,     0,
-    98,   101,   122,   232,     0,   463,     0,    36,     0,   463,
-     0,    36,     0,    68,     0,   175,   466,     0,   175,   101,
-   122,     0,   169,   466,     0,   169,   101,   122,     0,     6,
-   100,   450,   382,   236,     0,     4,   335,   247,     0,     4,
-   216,   245,   217,     0,    41,   335,   466,     0,     6,   335,
-   466,    98,    36,   253,     0,     6,   335,   466,    41,    36,
-     0,     4,   255,     0,    20,   449,     0,   136,   241,   450,
-   242,   239,   240,   243,     0,   105,     0,    50,     0,   463,
-     0,   178,     0,   179,     0,   133,     0,     0,   119,   164,
-     0,     0,   113,   139,   463,     0,     0,    25,   100,   450,
-   216,   245,   217,   262,   263,     0,   245,   215,   246,     0,
-   246,     0,     0,   247,     0,   254,     0,   466,   401,   248,
-     0,   249,     0,     0,   249,   250,     0,   250,     0,    24,
-   456,   251,     0,   251,     0,    19,   216,   257,   217,     0,
-    36,   253,     0,    76,    78,     0,   110,     0,    88,    63,
-     0,    92,   466,   363,   258,   259,     0,   252,   215,   253,
-     0,   253,     0,   460,     0,    78,     0,   203,   253,     0,
-   253,   202,   253,     0,   253,   203,   253,     0,   253,   205,
-   253,     0,   253,   204,   253,     0,   253,   199,   253,     0,
-   253,   200,   253,     0,   253,   201,   253,     0,   207,   253,
-     0,   208,   253,     0,   206,   253,     0,   253,   213,   401,
-     0,    16,   216,   253,     9,   401,   217,     0,   216,   253,
-   217,     0,   457,   216,   217,     0,   457,   216,   252,   217,
-     0,   253,   194,   253,     0,   194,   253,     0,   253,   194,
-     0,    28,     0,    29,     0,    29,   216,   462,   217,     0,
-    30,     0,    30,   216,   462,   217,     0,    31,     0,   112,
-     0,    24,   456,   255,     0,   255,     0,    19,   216,   257,
-   217,     0,   110,   216,   364,   217,     0,    88,    63,   216,
-   364,   217,     0,    49,    63,   216,   364,   217,    92,   466,
-   363,   258,   259,     0,   256,   215,   257,     0,   257,     0,
-   460,     0,    78,     0,   466,     0,   203,   257,     0,   257,
-   202,   257,     0,   257,   203,   257,     0,   257,   205,   257,
-     0,   257,   204,   257,     0,   257,   199,   257,     0,   257,
-   200,   257,     0,   257,   201,   257,     0,   207,   257,     0,
-   208,   257,     0,   206,   257,     0,   257,   213,   401,     0,
-    16,   216,   257,     9,   401,   217,     0,   216,   257,   217,
-     0,   457,   216,   217,     0,   457,   216,   256,   217,     0,
-   257,   194,   257,     0,   257,    67,   257,     0,   257,     7,
-   257,     0,   257,    82,   257,     0,    76,   257,     0,   194,
-   257,     0,   257,   194,     0,   257,   151,     0,   257,    61,
-    78,     0,   257,   163,     0,   257,    61,    76,    78,     0,
-   257,    61,   125,     0,   257,    61,   123,     0,   257,    61,
-    76,   125,     0,   257,    61,    76,   123,     0,    69,    51,
-     0,    69,    85,     0,     0,   260,   260,     0,   260,     0,
-     0,    80,    37,   261,     0,    80,   111,   261,     0,    75,
-     3,     0,    15,     0,    98,    36,     0,    98,    78,     0,
-   149,   216,   383,   217,     0,     0,   184,   199,   161,     0,
-     0,    25,   100,   450,   265,     9,   373,     0,   216,   266,
-   217,     0,     0,   266,   215,   267,     0,   267,     0,   466,
-     0,    25,   173,   450,   269,     0,   269,   270,     0,     0,
-   134,   273,     0,   137,     0,   147,   273,     0,   157,   273,
-     0,   158,   273,     0,   176,   273,     0,   272,     0,   273,
-     0,   197,     0,   203,   197,     0,   462,     0,   203,   462,
-     0,    25,   275,   166,    64,   463,   146,   290,   152,   463,
-     0,   180,     0,     0,    41,   166,    64,   463,     0,    25,
-   124,   456,   278,   279,    80,   450,   281,    43,    90,   456,
-   216,   284,   217,     0,   132,     0,   128,     0,   280,     0,
-   280,    82,   280,     0,   280,    82,   280,    82,   280,     0,
-    58,     0,    37,     0,   111,     0,    48,   282,   283,     0,
-   141,     0,     0,   171,     0,   177,     0,   285,     0,   284,
-   215,   285,     0,     0,   195,     0,   197,     0,   463,     0,
-   192,     0,    41,   124,   456,    80,   450,     0,    25,   289,
-   288,     0,   290,   291,     0,   165,     0,   126,     0,   129,
-     0,    90,     0,    62,     0,   466,     0,   331,     0,   194,
-     0,   216,   292,   217,     0,   293,     0,   292,   215,   293,
-     0,   290,   199,   294,     0,   290,     0,    36,   199,   294,
-     0,   466,     0,   330,     0,   271,     0,   463,     0,   174,
-   466,     0,    41,   100,   383,     0,    41,   173,   383,     0,
-    46,   297,   298,   299,     0,   159,   297,   298,   299,     0,
-   144,     0,   131,     0,     0,   462,     0,     5,     0,     0,
-    56,   456,     0,     0,    52,   301,    80,   383,   105,   304,
-   305,     0,     5,    89,     0,     5,     0,   302,     0,   303,
-     0,   302,   215,   303,     0,    97,     0,    58,     0,   111,
-     0,    37,     0,   172,     0,    91,     0,    53,   466,     0,
-   466,     0,   119,    52,    81,     0,     0,    93,   301,    80,
-   383,    50,   304,     0,    25,   308,   148,   455,    80,   450,
-   309,   216,   310,   217,   319,     0,   110,     0,     0,   113,
-   452,     0,     0,   311,     0,   312,     0,   311,   215,   313,
-     0,   313,     0,   457,   216,   384,   217,   314,   315,     0,
-   453,   314,   315,     0,   207,   401,     0,    48,   401,     0,
-     0,   454,     0,   113,   454,     0,     0,   143,   148,   455,
-   397,     0,    43,   167,   459,     0,    25,   145,   457,   320,
-   170,   322,   319,     9,   463,    64,   463,     0,   119,   291,
-     0,     0,   216,   321,   217,     0,   216,   217,     0,   465,
-     0,   321,   215,   465,     0,   323,   465,     0,   174,     0,
-     0,    41,   325,   456,     0,   126,     0,   148,     0,   172,
-     0,   117,     0,    41,   129,   456,   327,     0,   456,     0,
-   204,     0,    41,   145,   457,   320,     0,    41,   165,   330,
-   216,   332,   217,     0,   194,     0,   331,     0,   202,     0,
-   203,     0,   204,     0,   205,     0,   200,     0,   201,     0,
-   199,     0,   456,     0,   456,   215,   456,     0,   161,   215,
-   456,     0,   456,   215,   161,     0,     6,   100,   450,   382,
-   168,   335,   334,   105,   456,     0,   456,     0,     0,    22,
-     0,     0,     0,    25,   172,   456,     9,   337,    80,   342,
-   105,   341,   397,   140,   343,   338,     0,   162,     0,   360,
-     0,   211,   339,   212,     0,   340,     0,   360,     0,   340,
-   360,   208,     0,   340,   360,     0,   360,   208,     0,   450,
-   210,   453,     0,   450,     0,    97,     0,   111,     0,    37,
-     0,    58,     0,   150,     0,     0,    77,   450,     0,   153,
-   450,     0,   127,   107,     0,    11,   107,     0,    11,   120,
-     0,    23,   120,     0,    42,   107,     0,    95,   120,     0,
-   127,     0,    11,     0,    23,     0,    42,     0,    95,     0,
-    25,   117,   456,     9,   370,     0,   154,   458,     0,    25,
-   138,   451,   350,     0,   119,   156,   199,   351,     0,     0,
-   463,     0,    36,     0,     0,    41,   138,   451,     0,   135,
-   455,    80,   450,     0,   181,   355,   356,     0,   181,   355,
-   356,   450,   357,     0,   182,     0,     0,   130,     0,     0,
-   216,   358,   217,     0,     0,   456,     0,   358,   215,   456,
-     0,   142,   355,   360,     0,   370,     0,   369,     0,   368,
-     0,   361,     0,   344,     0,   366,     0,    58,    60,   450,
-   363,   362,     0,   114,   216,   447,   217,     0,    97,   377,
-   447,   389,   397,   385,   388,   371,     0,   216,   364,   217,
-     0,     0,   364,   215,   365,     0,   365,     0,   466,   429,
-     0,    37,    50,   450,   397,     0,   155,   375,   450,     0,
-   111,   450,    98,   445,   389,   397,     0,    35,   456,   241,
-    32,    48,    97,   377,   447,   389,   397,   385,   388,   371,
-   378,     0,    97,   377,   447,   374,   389,   397,   385,   388,
-   371,   378,     0,   109,   376,   372,     0,     0,   372,   109,
-   376,   373,     0,   373,     0,    97,   377,   447,   389,   397,
-   385,   388,   371,     0,    60,   375,   450,     0,     0,   100,
-     0,     0,     5,     0,     0,    39,     0,    39,    80,   466,
-     0,     5,     0,     0,    83,    14,   379,     0,     0,   380,
-     0,   379,   215,   380,     0,   466,   381,     0,   466,   210,
-   466,   381,     0,   462,   381,     0,   113,   194,     0,   113,
-   200,     0,   113,   201,     0,    10,     0,    38,     0,     0,
-   204,     0,     0,   384,     0,   456,     0,   384,   215,   456,
-     0,    53,    14,   386,     0,     0,   387,     0,   386,   215,
-   387,     0,   466,     0,   466,   210,   466,     0,   462,     0,
-    54,   425,     0,     0,    50,   216,   398,   392,    62,   398,
-   394,   217,     0,    50,   390,     0,     0,   390,   215,   391,
-     0,   391,    26,    62,   391,     0,   391,     0,   398,     9,
-   467,     0,   398,   466,     0,   398,     0,    73,   392,     0,
-    51,   393,     0,    66,   393,     0,    94,   393,     0,    84,
-     0,    57,     0,   109,     0,     0,    84,     0,     0,    80,
-   216,   425,   217,     0,   113,   216,   395,   217,     0,     0,
-   396,     0,   395,   215,   396,     0,   466,     0,   466,   210,
-   466,     0,   462,     0,   118,   425,     0,     0,   450,     0,
-   450,   204,     0,   211,   212,   400,     0,   211,   462,   212,
-   400,     0,     0,   211,   212,   400,     0,   211,   462,   212,
-   400,     0,     0,   402,   399,     0,   410,     0,   174,   402,
-     0,   403,     0,   415,     0,   405,     0,   404,     0,   192,
-     0,   126,     0,    47,   407,     0,    40,    87,     0,    34,
-   409,     0,    79,   408,     0,    47,     0,    40,    87,     0,
-    34,     0,    79,     0,   216,   462,   217,     0,     0,   216,
-   462,   215,   462,   217,     0,   216,   462,   217,     0,     0,
-   216,   462,   215,   462,   217,     0,   216,   462,   217,     0,
-     0,   411,   216,   462,   217,     0,   411,     0,    18,   412,
-   413,   414,     0,    17,   412,     0,   115,     0,    72,    18,
-   412,     0,    74,   412,     0,   116,     0,     0,    18,    98,
-   466,     0,     0,    21,   466,     0,     0,   416,     0,   102,
-   417,     0,   101,     0,    59,   418,     0,   121,     0,    71,
-     0,    33,     0,    55,     0,    70,     0,    96,     0,   119,
-   101,   122,     0,     0,   416,     0,   121,   105,    71,     0,
-    33,   105,    55,     0,    33,   105,    70,     0,    33,   105,
-    96,     0,    55,   105,    70,     0,    55,   105,    96,     0,
-    70,   105,    96,     0,     0,   425,     0,    78,     0,   216,
-   421,   217,    56,   216,   373,   217,     0,   216,   421,   217,
-    76,    56,   216,   373,   217,     0,   216,   421,   217,   423,
-   424,   216,   373,   217,     0,   216,   421,   217,   423,   216,
-   373,   217,     0,   216,   421,   217,   423,   216,   421,   217,
-     0,   422,   215,   425,     0,   422,   215,   425,     0,   425,
-     0,   194,     0,   200,     0,   199,     0,   201,     0,   202,
-     0,   203,     0,   204,     0,   205,     0,     8,     0,     5,
-     0,   443,   429,     0,   420,     0,   460,     0,   466,     0,
-   203,   425,     0,   425,   202,   425,     0,   425,   203,   425,
-     0,   425,   205,   425,     0,   425,   204,   425,     0,   425,
-   200,   425,     0,   425,   201,   425,     0,   425,   199,   425,
-     0,   207,   425,     0,   208,   425,     0,   206,   425,     0,
-   425,   213,   401,     0,    16,   216,   425,     9,   401,   217,
-     0,   216,   419,   217,     0,   425,   194,   425,     0,   425,
-    67,   425,     0,   425,    76,    67,   425,     0,   194,   425,
-     0,   425,   194,     0,   457,   216,   204,   217,     0,   457,
-   216,   217,     0,   457,   216,   430,   217,     0,    28,     0,
-    29,     0,    29,   216,   462,   217,     0,    30,     0,    30,
-   216,   462,   217,     0,    31,     0,   112,     0,    44,   216,
-   373,   217,     0,    45,   216,   431,   217,     0,    86,   216,
-   433,   217,     0,    99,   216,   435,   217,     0,   108,   216,
-    13,   438,   217,     0,   108,   216,    65,   438,   217,     0,
-   108,   216,   106,   438,   217,     0,   108,   216,   438,   217,
-     0,   425,   151,     0,   425,    61,    78,     0,   425,   163,
-     0,   425,    61,    76,    78,     0,   425,    61,   125,     0,
-   425,    61,    76,   123,     0,   425,    61,   123,     0,   425,
-    61,    76,   125,     0,   425,    12,   428,     7,   428,     0,
-   425,    76,    12,   428,     7,   428,     0,     0,   425,    56,
-   426,   216,   439,   217,     0,     0,   425,    76,    56,   427,
-   216,   441,   217,     0,   425,   194,   216,   373,   217,     0,
-   425,   202,   216,   373,   217,     0,   425,   203,   216,   373,
-   217,     0,   425,   205,   216,   373,   217,     0,   425,   204,
-   216,   373,   217,     0,   425,   200,   216,   373,   217,     0,
-   425,   201,   216,   373,   217,     0,   425,   199,   216,   373,
-   217,     0,   425,   194,     8,   216,   373,   217,     0,   425,
-   202,     8,   216,   373,   217,     0,   425,   203,     8,   216,
-   373,   217,     0,   425,   205,     8,   216,   373,   217,     0,
-   425,   204,     8,   216,   373,   217,     0,   425,   200,     8,
-   216,   373,   217,     0,   425,   201,     8,   216,   373,   217,
-     0,   425,   199,     8,   216,   373,   217,     0,   425,   194,
-     5,   216,   373,   217,     0,   425,   202,     5,   216,   373,
-   217,     0,   425,   203,     5,   216,   373,   217,     0,   425,
-   205,     5,   216,   373,   217,     0,   425,   204,     5,   216,
-   373,   217,     0,   425,   200,     5,   216,   373,   217,     0,
-   425,   201,     5,   216,   373,   217,     0,   425,   199,     5,
-   216,   373,   217,     0,   425,     7,   425,     0,   425,    82,
-   425,     0,    76,   425,     0,   443,   429,     0,   460,     0,
-   466,     0,   203,   428,     0,   428,   202,   428,     0,   428,
-   203,   428,     0,   428,   205,   428,     0,   428,   204,   428,
-     0,   207,   428,     0,   208,   428,     0,   206,   428,     0,
-   428,   213,   401,     0,    16,   216,   428,     9,   401,   217,
-     0,   216,   425,   217,     0,   428,   194,   428,     0,   194,
-   428,     0,   428,   194,     0,   457,   216,   217,     0,   457,
-   216,   430,   217,     0,    28,     0,    29,     0,    29,   216,
-   462,   217,     0,    30,     0,    30,   216,   462,   217,     0,
-    31,     0,   112,     0,    86,   216,   433,   217,     0,    99,
-   216,   435,   217,     0,   108,   216,    13,   438,   217,     0,
-   108,   216,    65,   438,   217,     0,   108,   216,   106,   438,
-   217,     0,   108,   216,   438,   217,     0,   211,   425,   212,
-   429,     0,   211,   425,   207,   425,   212,   429,     0,     0,
-   419,     0,   430,   215,   419,     0,   430,   113,   425,     0,
-   432,    50,   425,     0,     0,   416,     0,   103,     0,   104,
-     0,   434,    56,   434,     0,     0,   443,   429,     0,   460,
-     0,   203,   434,     0,   434,   202,   434,     0,   434,   203,
-   434,     0,   434,   205,   434,     0,   434,   204,   434,     0,
-   206,   434,     0,   434,   213,   401,     0,    16,   216,   434,
-     9,   401,   217,     0,   216,   434,   217,     0,   434,   194,
-   434,     0,   194,   434,     0,   434,   194,     0,   466,     0,
-   457,   216,   217,     0,   457,   216,   430,   217,     0,    86,
-   216,   433,   217,     0,    99,   216,   435,   217,     0,   108,
-   216,    13,   438,   217,     0,   108,   216,    65,   438,   217,
-     0,   108,   216,   106,   438,   217,     0,   108,   216,   438,
-   217,     0,   430,   436,   437,     0,     0,    50,   430,     0,
-     0,    48,   430,     0,     0,   425,    50,   430,     0,    50,
-   430,     0,   430,     0,   373,     0,   440,     0,   460,     0,
-   440,   215,   460,     0,   373,     0,   442,     0,   460,     0,
-   442,   215,   460,     0,   450,   210,   444,     0,   461,   210,
-   444,     0,   453,     0,   444,   210,   453,     0,   444,   210,
-   204,     0,   445,   215,   446,     0,   446,     0,   204,     0,
-   466,   429,   199,   419,     0,   443,   429,     0,   450,   210,
-   204,     0,   447,   215,   448,     0,   448,     0,   419,     9,
-   467,     0,   419,     0,   450,   210,   204,     0,   204,     0,
-   466,     0,     0,   468,     0,   466,     0,   466,     0,   192,
-     0,   466,     0,   192,     0,   466,     0,   466,     0,   466,
-     0,   463,     0,   192,     0,   462,     0,   197,     0,   463,
-     0,   401,   463,     0,   461,     0,   125,     0,   123,     0,
-   196,     0,   195,     0,   193,     0,   192,     0,   466,     0,
-   406,     0,   411,     0,   192,     0,   416,     0,     3,     0,
-   134,     0,   137,     0,   138,     0,   139,     0,    40,     0,
-   141,     0,   145,     0,   147,     0,   148,     0,    63,     0,
-    64,     0,   156,     0,    69,     0,   157,     0,   158,     0,
-   165,     0,    81,     0,   185,     0,    89,     0,   167,     0,
-   171,     0,   176,     0,   177,     0,   101,     0,   103,     0,
-   104,     0,   124,     0,   126,     0,   190,     0,   183,     0,
-   122,     0,   466,     0,   184,     0,   135,     0,    24,     0,
-    26,     0,    49,     0,    53,     0,   154,     0,    83,     0,
-    86,     0,    87,     0,   100,     0,   107,     0,   125,     0,
-   123,     0,    27,     0,   160,     0
+static const short yyrhs[] = {   220,
+     0,   221,     0,   220,   221,   210,     0,   220,   221,     0,
+   221,   210,     0,   236,     0,   223,     0,   238,     0,   239,
+     0,   245,     0,   265,     0,   269,     0,   275,     0,   278,
+     0,   222,     0,   357,     0,   288,     0,   296,     0,   277,
+     0,   287,     0,   224,     0,   317,     0,   363,     0,   297,
+     0,   301,     0,   308,     0,   346,     0,   371,     0,   319,
+     0,   318,     0,   327,     0,   330,     0,   329,     0,   325,
+     0,   334,     0,   307,     0,   364,     0,   337,     0,   347,
+     0,   349,     0,   350,     0,   351,     0,   356,     0,   358,
+     0,   231,     0,   234,     0,   235,     0,    25,   113,   469,
+   225,   226,   227,   229,   230,     0,     6,   113,   469,   225,
+   226,   227,   229,   230,     0,    41,   113,   469,     0,   120,
+   187,   469,     0,     0,   188,     0,   189,     0,     0,   190,
+     0,   191,     0,     0,   228,   216,   469,     0,   469,     0,
+    56,    53,   228,     0,     0,   192,   193,   195,     0,     0,
+    99,   471,   106,   232,     0,    99,   471,   201,   232,     0,
+    99,   102,   123,   233,     0,    99,    72,   355,     0,   468,
+     0,    36,     0,   468,     0,    36,     0,    68,     0,   176,
+   471,     0,   176,   102,   123,     0,   170,   471,     0,   170,
+   102,   123,     0,     6,   101,   455,   387,   237,     0,     4,
+   336,   248,     0,     4,   217,   246,   218,     0,    41,   336,
+   471,     0,     6,   336,   471,    99,    36,   254,     0,     6,
+   336,   471,    41,    36,     0,     4,   256,     0,    20,   454,
+     0,   137,   242,   455,   243,   240,   241,   244,     0,   106,
+     0,    50,     0,   468,     0,   179,     0,   180,     0,   134,
+     0,     0,   120,   165,     0,     0,   114,   140,   468,     0,
+     0,    25,   101,   455,   217,   246,   218,   263,   264,     0,
+   246,   216,   247,     0,   247,     0,     0,   248,     0,   255,
+     0,   471,   406,   249,     0,   250,     0,     0,   250,   251,
+     0,   251,     0,    24,   461,   252,     0,   252,     0,    19,
+   217,   258,   218,     0,    36,   254,     0,    77,    79,     0,
+   111,     0,    89,    63,     0,    93,   471,   367,   259,   260,
+     0,   253,   216,   254,     0,   254,     0,   465,     0,    79,
+     0,   205,   254,     0,   254,   204,   254,     0,   254,   205,
+   254,     0,   254,   207,   254,     0,   254,   206,   254,     0,
+   254,   201,   254,     0,   254,   202,   254,     0,   254,   203,
+   254,     0,   209,   254,     0,   210,   254,     0,   208,   254,
+     0,   254,   215,   406,     0,    16,   217,   254,     9,   406,
+   218,     0,   217,   254,   218,     0,   462,   217,   218,     0,
+   462,   217,   253,   218,     0,   254,   196,   254,     0,   196,
+   254,     0,   254,   196,     0,    28,     0,    29,     0,    29,
+   217,   467,   218,     0,    30,     0,    30,   217,   467,   218,
+     0,    31,     0,   113,     0,    24,   461,   256,     0,   256,
+     0,    19,   217,   258,   218,     0,   111,   217,   368,   218,
+     0,    89,    63,   217,   368,   218,     0,    49,    63,   217,
+   368,   218,    93,   471,   367,   259,   260,     0,   257,   216,
+   258,     0,   258,     0,   465,     0,    79,     0,   471,     0,
+   205,   258,     0,   258,   204,   258,     0,   258,   205,   258,
+     0,   258,   207,   258,     0,   258,   206,   258,     0,   258,
+   201,   258,     0,   258,   202,   258,     0,   258,   203,   258,
+     0,   209,   258,     0,   210,   258,     0,   208,   258,     0,
+   258,   215,   406,     0,    16,   217,   258,     9,   406,   218,
+     0,   217,   258,   218,     0,   462,   217,   218,     0,   462,
+   217,   257,   218,     0,   258,   196,   258,     0,   258,    67,
+   258,     0,   258,     7,   258,     0,   258,    83,   258,     0,
+    77,   258,     0,   196,   258,     0,   258,   196,     0,   258,
+   152,     0,   258,    61,    79,     0,   258,   164,     0,   258,
+    61,    77,    79,     0,   258,    61,   126,     0,   258,    61,
+   124,     0,   258,    61,    77,   126,     0,   258,    61,    77,
+   124,     0,    69,    51,     0,    69,    86,     0,     0,   261,
+   261,     0,   261,     0,     0,    81,    37,   262,     0,    81,
+   112,   262,     0,    76,     3,     0,    15,     0,    99,    36,
+     0,    99,    79,     0,   150,   217,   388,   218,     0,     0,
+   186,   201,   162,     0,     0,    25,   101,   455,   266,     9,
+   375,     0,   217,   267,   218,     0,     0,   267,   216,   268,
+     0,   268,     0,   471,     0,    25,   174,   455,   270,     0,
+   270,   271,     0,     0,   135,   274,     0,   138,     0,   148,
+   274,     0,   158,   274,     0,   159,   274,     0,   177,   274,
+     0,   273,     0,   274,     0,   199,     0,   205,   199,     0,
+   467,     0,   205,   467,     0,    25,   276,   167,    64,   468,
+   147,   291,   153,   468,     0,   181,     0,     0,    41,   167,
+    64,   468,     0,    25,   125,   461,   279,   280,    81,   455,
+   282,    43,    91,   461,   217,   285,   218,     0,   133,     0,
+   129,     0,   281,     0,   281,    83,   281,     0,   281,    83,
+   281,    83,   281,     0,    58,     0,    37,     0,   112,     0,
+    48,   283,   284,     0,   142,     0,     0,   172,     0,   178,
+     0,   286,     0,   285,   216,   286,     0,     0,   197,     0,
+   199,     0,   468,     0,   194,     0,    41,   125,   461,    81,
+   455,     0,    25,   290,   289,     0,   291,   292,     0,   166,
+     0,   127,     0,   130,     0,    91,     0,    62,     0,   471,
+     0,   332,     0,   196,     0,   217,   293,   218,     0,   294,
+     0,   293,   216,   294,     0,   291,   201,   295,     0,   291,
+     0,    36,   201,   295,     0,   471,     0,   331,     0,   272,
+     0,   468,     0,   175,   471,     0,    41,   101,   388,     0,
+    41,   174,   388,     0,    46,   298,   299,   300,     0,   160,
+   298,   299,   300,     0,   145,     0,   132,     0,     0,   467,
+     0,     5,     0,     0,    56,   461,     0,     0,    52,   302,
+    81,   388,   106,   305,   306,     0,     5,    90,     0,     5,
+     0,   303,     0,   304,     0,   303,   216,   304,     0,    98,
+     0,    58,     0,   112,     0,    37,     0,   173,     0,    92,
+     0,    53,   471,     0,   471,     0,   120,    52,    82,     0,
+     0,    94,   302,    81,   388,    50,   305,     0,    25,   309,
+   149,   460,    81,   455,   310,   217,   311,   218,   320,     0,
+   111,     0,     0,   114,   457,     0,     0,   312,     0,   313,
+     0,   312,   216,   314,     0,   314,     0,   462,   217,   389,
+   218,   315,   316,     0,   458,   315,   316,     0,   209,   406,
+     0,    48,   406,     0,     0,   459,     0,   114,   459,     0,
+     0,   144,   149,   460,   402,     0,    43,   168,   464,     0,
+    25,   146,   462,   321,   171,   323,   320,     9,   468,    64,
+   468,     0,   120,   292,     0,     0,   217,   322,   218,     0,
+   217,   218,     0,   470,     0,   322,   216,   470,     0,   324,
+   470,     0,   175,     0,     0,    41,   326,   461,     0,   127,
+     0,   149,     0,   173,     0,   118,     0,    41,   130,   461,
+   328,     0,   461,     0,   206,     0,    41,   146,   462,   321,
+     0,    41,   166,   331,   217,   333,   218,     0,   196,     0,
+   332,     0,   204,     0,   205,     0,   206,     0,   207,     0,
+   202,     0,   203,     0,   201,     0,   461,     0,   461,   216,
+   461,     0,   162,   216,   461,     0,   461,   216,   162,     0,
+     6,   101,   455,   387,   169,   336,   335,   106,   461,     0,
+   461,     0,     0,    22,     0,     0,     0,    25,   173,   461,
+     9,   338,    81,   343,   106,   342,   402,   141,   344,   339,
+     0,   163,     0,   364,     0,   213,   340,   214,     0,   341,
+     0,   364,     0,   341,   364,   210,     0,   341,   364,     0,
+   364,   210,     0,   455,   212,   458,     0,   455,     0,    98,
+     0,   112,     0,    37,     0,    58,     0,   151,     0,     0,
+    78,   455,     0,   154,   455,     0,   128,   348,     0,    11,
+   348,     0,    23,   348,     0,    42,   348,     0,    96,   348,
+     0,   121,     0,   108,     0,     0,    25,   118,   461,     9,
+   374,     0,   155,   463,     0,    25,   139,   456,   120,   352,
+   353,     0,    25,   139,   456,     0,   157,   201,   354,     0,
+     0,   185,   201,   355,     0,     0,   468,     0,    36,     0,
+     0,   468,     0,    36,     0,     0,    41,   139,   456,     0,
+   136,   460,    81,   455,     0,   182,   359,   360,     0,   182,
+   359,   360,   455,   361,     0,   183,     0,     0,   131,     0,
+     0,   217,   362,   218,     0,     0,   461,     0,   362,   216,
+   461,     0,   143,   359,   364,     0,   374,     0,   373,     0,
+   372,     0,   365,     0,   345,     0,   370,     0,    58,    60,
+   455,   367,   366,     0,   115,   217,   452,   218,     0,    98,
+   382,   452,   394,   402,   390,   393,   376,     0,   217,   368,
+   218,     0,     0,   368,   216,   369,     0,   369,     0,   471,
+   434,     0,    37,    50,   455,   402,     0,   156,   380,   455,
+     0,   112,   455,    99,   450,   394,   402,     0,    35,   461,
+   242,    32,    48,    98,   382,   452,   394,   402,   390,   393,
+   376,   383,     0,    98,   382,   452,   379,   394,   402,   390,
+   393,   376,   383,     0,    98,   382,   452,   394,   402,   390,
+   393,   376,     0,   110,   381,   377,     0,     0,   377,   110,
+   381,   378,     0,   378,     0,    98,   382,   452,   394,   402,
+   390,   393,     0,    60,   380,   455,     0,     0,   101,     0,
+     0,     5,     0,     0,    39,     0,    39,    81,   471,     0,
+     5,     0,     0,    84,    14,   384,     0,     0,   385,     0,
+   384,   216,   385,     0,   471,   386,     0,   471,   212,   471,
+   386,     0,   467,   386,     0,   114,   196,     0,   114,   202,
+     0,   114,   203,     0,    10,     0,    38,     0,     0,   206,
+     0,     0,   389,     0,   461,     0,   389,   216,   461,     0,
+    53,    14,   391,     0,     0,   392,     0,   391,   216,   392,
+     0,   471,     0,   471,   212,   471,     0,   467,     0,    54,
+   430,     0,     0,    50,   217,   403,   397,    62,   403,   399,
+   218,     0,    50,   395,     0,     0,   395,   216,   396,     0,
+   396,    26,    62,   396,     0,   396,     0,   403,     9,   472,
+     0,   403,   471,     0,   403,     0,    74,   397,     0,    51,
+   398,     0,    66,   398,     0,    95,   398,     0,    85,     0,
+    57,     0,   110,     0,     0,    85,     0,     0,    81,   217,
+   430,   218,     0,   114,   217,   400,   218,     0,     0,   401,
+     0,   400,   216,   401,     0,   471,     0,   471,   212,   471,
+     0,   467,     0,   119,   430,     0,     0,   455,     0,   455,
+   206,     0,   213,   214,   405,     0,   213,   467,   214,   405,
+     0,     0,   213,   214,   405,     0,   213,   467,   214,   405,
+     0,     0,   407,   404,     0,   415,     0,   175,   407,     0,
+   408,     0,   420,     0,   410,     0,   409,     0,   194,     0,
+   127,     0,    47,   412,     0,    40,    88,     0,    34,   414,
+     0,    80,   413,     0,    47,     0,    40,    88,     0,    34,
+     0,    80,     0,   217,   467,   218,     0,     0,   217,   467,
+   216,   467,   218,     0,   217,   467,   218,     0,     0,   217,
+   467,   216,   467,   218,     0,   217,   467,   218,     0,     0,
+   416,   217,   467,   218,     0,   416,     0,    18,   417,   418,
+   419,     0,    17,   417,     0,   116,     0,    73,    18,   417,
+     0,    75,   417,     0,   117,     0,     0,    18,    99,   471,
+     0,     0,    21,   471,     0,     0,   421,     0,   103,   422,
+     0,   102,     0,    59,   423,     0,   122,     0,    71,     0,
+    33,     0,    55,     0,    70,     0,    97,     0,   120,   102,
+   123,     0,     0,   421,     0,   122,   106,    71,     0,    33,
+   106,    55,     0,    33,   106,    70,     0,    33,   106,    97,
+     0,    55,   106,    70,     0,    55,   106,    97,     0,    70,
+   106,    97,     0,     0,   430,     0,    79,     0,   217,   426,
+   218,    56,   217,   375,   218,     0,   217,   426,   218,    77,
+    56,   217,   375,   218,     0,   217,   426,   218,   428,   429,
+   217,   375,   218,     0,   217,   426,   218,   428,   217,   375,
+   218,     0,   217,   426,   218,   428,   217,   426,   218,     0,
+   427,   216,   430,     0,   427,   216,   430,     0,   430,     0,
+   196,     0,   202,     0,   201,     0,   203,     0,   204,     0,
+   205,     0,   206,     0,   207,     0,     8,     0,     5,     0,
+   448,   434,     0,   425,     0,   465,     0,   471,     0,   205,
+   430,     0,   430,   204,   430,     0,   430,   205,   430,     0,
+   430,   207,   430,     0,   430,   206,   430,     0,   430,   202,
+   430,     0,   430,   203,   430,     0,   430,   201,   430,     0,
+   209,   430,     0,   210,   430,     0,   208,   430,     0,   430,
+   215,   406,     0,    16,   217,   430,     9,   406,   218,     0,
+   217,   424,   218,     0,   430,   196,   430,     0,   430,    67,
+   430,     0,   430,    77,    67,   430,     0,   196,   430,     0,
+   430,   196,     0,   462,   217,   206,   218,     0,   462,   217,
+   218,     0,   462,   217,   435,   218,     0,    28,     0,    29,
+     0,    29,   217,   467,   218,     0,    30,     0,    30,   217,
+   467,   218,     0,    31,     0,   113,     0,    44,   217,   375,
+   218,     0,    45,   217,   436,   218,     0,    87,   217,   438,
+   218,     0,   100,   217,   440,   218,     0,   109,   217,    13,
+   443,   218,     0,   109,   217,    65,   443,   218,     0,   109,
+   217,   107,   443,   218,     0,   109,   217,   443,   218,     0,
+   430,   152,     0,   430,    61,    79,     0,   430,   164,     0,
+   430,    61,    77,    79,     0,   430,    61,   126,     0,   430,
+    61,    77,   124,     0,   430,    61,   124,     0,   430,    61,
+    77,   126,     0,   430,    12,   433,     7,   433,     0,   430,
+    77,    12,   433,     7,   433,     0,     0,   430,    56,   431,
+   217,   444,   218,     0,     0,   430,    77,    56,   432,   217,
+   446,   218,     0,   430,   196,   217,   375,   218,     0,   430,
+   204,   217,   375,   218,     0,   430,   205,   217,   375,   218,
+     0,   430,   207,   217,   375,   218,     0,   430,   206,   217,
+   375,   218,     0,   430,   202,   217,   375,   218,     0,   430,
+   203,   217,   375,   218,     0,   430,   201,   217,   375,   218,
+     0,   430,   196,     8,   217,   375,   218,     0,   430,   204,
+     8,   217,   375,   218,     0,   430,   205,     8,   217,   375,
+   218,     0,   430,   207,     8,   217,   375,   218,     0,   430,
+   206,     8,   217,   375,   218,     0,   430,   202,     8,   217,
+   375,   218,     0,   430,   203,     8,   217,   375,   218,     0,
+   430,   201,     8,   217,   375,   218,     0,   430,   196,     5,
+   217,   375,   218,     0,   430,   204,     5,   217,   375,   218,
+     0,   430,   205,     5,   217,   375,   218,     0,   430,   207,
+     5,   217,   375,   218,     0,   430,   206,     5,   217,   375,
+   218,     0,   430,   202,     5,   217,   375,   218,     0,   430,
+   203,     5,   217,   375,   218,     0,   430,   201,     5,   217,
+   375,   218,     0,   430,     7,   430,     0,   430,    83,   430,
+     0,    77,   430,     0,   448,   434,     0,   465,     0,   471,
+     0,   205,   433,     0,   433,   204,   433,     0,   433,   205,
+   433,     0,   433,   207,   433,     0,   433,   206,   433,     0,
+   209,   433,     0,   210,   433,     0,   208,   433,     0,   433,
+   215,   406,     0,    16,   217,   433,     9,   406,   218,     0,
+   217,   430,   218,     0,   433,   196,   433,     0,   196,   433,
+     0,   433,   196,     0,   462,   217,   218,     0,   462,   217,
+   435,   218,     0,    28,     0,    29,     0,    29,   217,   467,
+   218,     0,    30,     0,    30,   217,   467,   218,     0,    31,
+     0,   113,     0,    87,   217,   438,   218,     0,   100,   217,
+   440,   218,     0,   109,   217,    13,   443,   218,     0,   109,
+   217,    65,   443,   218,     0,   109,   217,   107,   443,   218,
+     0,   109,   217,   443,   218,     0,   213,   430,   214,   434,
+     0,   213,   430,   209,   430,   214,   434,     0,     0,   424,
+     0,   435,   216,   424,     0,   435,   114,   430,     0,   437,
+    50,   430,     0,     0,   421,     0,   104,     0,   105,     0,
+   439,    56,   439,     0,     0,   448,   434,     0,   465,     0,
+   205,   439,     0,   439,   204,   439,     0,   439,   205,   439,
+     0,   439,   207,   439,     0,   439,   206,   439,     0,   208,
+   439,     0,   439,   215,   406,     0,    16,   217,   439,     9,
+   406,   218,     0,   217,   439,   218,     0,   439,   196,   439,
+     0,   196,   439,     0,   439,   196,     0,   471,     0,   462,
+   217,   218,     0,   462,   217,   435,   218,     0,    87,   217,
+   438,   218,     0,   100,   217,   440,   218,     0,   109,   217,
+    13,   443,   218,     0,   109,   217,    65,   443,   218,     0,
+   109,   217,   107,   443,   218,     0,   109,   217,   443,   218,
+     0,   435,   441,   442,     0,     0,    50,   435,     0,     0,
+    48,   435,     0,     0,   430,    50,   435,     0,    50,   435,
+     0,   435,     0,   375,     0,   445,     0,   465,     0,   445,
+   216,   465,     0,   375,     0,   447,     0,   465,     0,   447,
+   216,   465,     0,   455,   212,   449,     0,   466,   212,   449,
+     0,   458,     0,   449,   212,   458,     0,   449,   212,   206,
+     0,   450,   216,   451,     0,   451,     0,   206,     0,   471,
+   434,   201,   424,     0,   448,   434,     0,   455,   212,   206,
+     0,   452,   216,   453,     0,   453,     0,   424,     9,   472,
+     0,   424,     0,   455,   212,   206,     0,   206,     0,   471,
+     0,     0,   473,     0,   471,     0,   471,     0,   194,     0,
+   471,     0,   194,     0,   471,     0,   471,     0,   471,     0,
+   468,     0,   194,     0,   467,     0,   199,     0,   468,     0,
+   406,   468,     0,   466,     0,   126,     0,   124,     0,   198,
+     0,   197,     0,   195,     0,   194,     0,   471,     0,   411,
+     0,   416,     0,   194,     0,   421,     0,     3,     0,   135,
+     0,   138,     0,   139,     0,   140,     0,    40,     0,   142,
+     0,   185,     0,   146,     0,   148,     0,   149,     0,    63,
+     0,    64,     0,   157,     0,    69,     0,   158,     0,   159,
+     0,   166,     0,    82,     0,   187,     0,    90,     0,   168,
+     0,   172,     0,   177,     0,   178,     0,   102,     0,   104,
+     0,   105,     0,   125,     0,   127,     0,   192,     0,   184,
+     0,   123,     0,   471,     0,   186,     0,   136,     0,    24,
+     0,    26,     0,    49,     0,    53,     0,   155,     0,    84,
+     0,    87,     0,    88,     0,   101,     0,   108,     0,   126,
+     0,   124,     0,    27,     0,   161,     0
 };
 
 #endif
 
 #if YYDEBUG != 0
 static const short yyrline[] = { 0,
-   341,   343,   347,   349,   351,   355,   356,   357,   358,   359,
-   360,   361,   362,   363,   364,   365,   366,   367,   368,   369,
-   370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
-   380,   381,   382,   383,   384,   385,   386,   387,   388,   389,
-   390,   391,   392,   393,   394,   395,   396,   406,   427,   448,
-   456,   457,   460,   466,   472,   475,   481,   487,   490,   494,
-   500,   501,   504,   505,   517,   524,   531,   540,   541,   544,
-   545,   546,   549,   555,   563,   569,   585,   595,   599,   607,
-   609,   611,   613,   625,   642,   655,   657,   666,   667,   668,
-   671,   672,   675,   676,   682,   683,   694,   706,   713,   720,
-   723,   724,   727,   739,   740,   743,   750,   759,   766,   770,
-   779,   788,   797,   806,   815,   822,   827,   833,   835,   837,
-   839,   841,   843,   845,   847,   849,   851,   853,   855,   857,
-   859,   864,   869,   871,   876,   882,   888,   890,   893,   895,
-   897,   903,   905,   911,   913,   921,   927,   931,   939,   948,
-   957,   964,   969,   975,   977,   979,   983,   985,   987,   989,
-   991,   993,   995,   997,   999,  1001,  1003,  1005,  1010,  1015,
-  1017,  1022,  1028,  1030,  1032,  1034,  1036,  1038,  1040,  1042,
-  1044,  1046,  1048,  1050,  1052,  1054,  1056,  1060,  1061,  1062,
-  1065,  1066,  1067,  1070,  1071,  1074,  1075,  1076,  1077,  1080,
-  1081,  1088,  1089,  1092,  1102,  1103,  1106,  1107,  1110,  1130,
-  1139,  1141,  1144,  1150,  1156,  1162,  1168,  1174,  1182,  1183,
-  1185,  1189,  1196,  1200,  1215,  1227,  1228,  1230,  1246,  1262,
-  1263,  1266,  1271,  1276,  1284,  1285,  1286,  1289,  1295,  1296,
-  1299,  1300,  1303,  1305,  1307,  1311,  1317,  1323,  1324,  1327,
-  1344,  1351,  1359,  1360,  1361,  1364,  1365,  1366,  1367,  1368,
-  1371,  1374,  1375,  1378,  1384,  1390,  1398,  1399,  1400,  1401,
-  1402,  1421,  1428,  1445,  1454,  1465,  1466,  1467,  1470,  1473,
-  1474,  1477,  1478,  1489,  1495,  1499,  1503,  1509,  1513,  1519,
-  1523,  1527,  1531,  1535,  1541,  1545,  1549,  1555,  1559,  1570,
-  1587,  1604,  1605,  1608,  1609,  1612,  1613,  1616,  1617,  1620,
-  1630,  1640,  1641,  1642,  1651,  1652,  1653,  1664,  1681,  1710,
-  1723,  1724,  1727,  1728,  1731,  1733,  1737,  1747,  1748,  1768,
-  1777,  1778,  1779,  1780,  1784,  1793,  1794,  1798,  1808,  1817,
-  1817,  1819,  1820,  1821,  1822,  1823,  1824,  1825,  1828,  1832,
-  1834,  1836,  1849,  1861,  1862,  1865,  1866,  1879,  1881,  1895,
-  1896,  1897,  1900,  1902,  1906,  1908,  1910,  1914,  1922,  1933,
-  1934,  1935,  1936,  1939,  1940,  1952,  1960,  1982,  1988,  1994,
-  2000,  2006,  2012,  2019,  2025,  2031,  2038,  2044,  2060,  2081,
-  2097,  2106,  2107,  2110,  2111,  2112,  2122,  2138,  2155,  2164,
-  2177,  2178,  2181,  2182,  2185,  2186,  2189,  2191,  2203,  2224,
-  2225,  2226,  2227,  2228,  2229,  2240,  2248,  2259,  2275,  2276,
-  2279,  2282,  2286,  2303,  2318,  2343,  2364,  2405,  2424,  2430,
-  2434,  2440,  2444,  2462,  2463,  2466,  2467,  2470,  2471,  2474,
-  2475,  2476,  2477,  2480,  2481,  2484,  2485,  2488,  2496,  2504,
-  2514,  2515,  2516,  2517,  2518,  2519,  2529,  2530,  2533,  2535,
-  2537,  2541,  2542,  2545,  2546,  2549,  2557,  2565,  2575,  2579,
-  2591,  2596,  2597,  2600,  2602,  2604,  2608,  2614,  2620,  2628,
-  2629,  2631,  2633,  2635,  2637,  2639,  2641,  2645,  2646,  2649,
-  2650,  2651,  2654,  2655,  2658,  2666,  2674,  2684,  2685,  2688,
-  2695,  2703,  2705,  2707,  2711,  2713,  2715,  2730,  2752,  2753,
-  2760,  2761,  2762,  2765,  2773,  2774,  2783,  2789,  2794,  2800,
-  2808,  2810,  2812,  2814,  2818,  2829,  2835,  2842,  2847,  2853,
-  2861,  2867,  2880,  2907,  2926,  2946,  2947,  2948,  2949,  2952,
-  2953,  2956,  2957,  2960,  2961,  2964,  2970,  2977,  2983,  2991,
-  2992,  2993,  2994,  2995,  2996,  2999,  3000,  3003,  3004,  3005,
-  3006,  3007,  3008,  3009,  3010,  3011,  3021,  3023,  3040,  3050,
-  3060,  3073,  3086,  3092,  3098,  3102,  3108,  3109,  3110,  3111,
-  3112,  3113,  3114,  3115,  3118,  3119,  3130,  3135,  3137,  3139,
-  3147,  3149,  3151,  3153,  3155,  3157,  3159,  3161,  3163,  3165,
-  3167,  3169,  3185,  3201,  3203,  3205,  3207,  3209,  3211,  3213,
-  3225,  3232,  3239,  3254,  3269,  3291,  3306,  3328,  3335,  3342,
-  3352,  3359,  3366,  3374,  3381,  3388,  3395,  3402,  3404,  3406,
-  3408,  3415,  3425,  3435,  3445,  3455,  3461,  3467,  3467,  3481,
-  3481,  3495,  3505,  3515,  3525,  3535,  3545,  3555,  3565,  3575,
-  3585,  3595,  3605,  3615,  3625,  3635,  3645,  3655,  3665,  3675,
-  3685,  3695,  3705,  3715,  3725,  3735,  3737,  3739,  3749,  3754,
-  3756,  3764,  3766,  3768,  3770,  3772,  3774,  3776,  3778,  3780,
-  3796,  3812,  3814,  3816,  3818,  3820,  3827,  3834,  3849,  3864,
-  3886,  3901,  3923,  3930,  3937,  3944,  3952,  3959,  3966,  3973,
-  3982,  3989,  3996,  4000,  4002,  4004,  4008,  4015,  4019,  4020,
-  4021,  4024,  4026,  4030,  4035,  4037,  4039,  4041,  4043,  4045,
-  4047,  4049,  4065,  4081,  4083,  4085,  4087,  4089,  4097,  4104,
-  4111,  4118,  4126,  4133,  4140,  4147,  4156,  4160,  4164,  4166,
-  4175,  4177,  4181,  4183,  4185,  4189,  4195,  4199,  4201,  4207,
-  4213,  4217,  4219,  4225,  4233,  4243,  4245,  4247,  4258,  4260,
-  4262,  4277,  4284,  4291,  4310,  4312,  4317,  4324,  4331,  4343,
-  4357,  4358,  4361,  4366,  4378,  4379,  4380,  4381,  4382,  4388,
-  4389,  4391,  4392,  4397,  4404,  4411,  4418,  4426,  4428,  4438,
-  4450,  4457,  4458,  4459,  4466,  4468,  4470,  4481,  4482,  4483,
-  4484,  4485,  4486,  4487,  4488,  4489,  4490,  4491,  4492,  4493,
-  4494,  4495,  4496,  4497,  4498,  4499,  4500,  4501,  4502,  4503,
-  4504,  4505,  4506,  4507,  4508,  4509,  4510,  4511,  4512,  4513,
-  4514,  4527,  4528,  4529,  4530,  4531,  4532,  4533,  4534,  4535,
-  4536,  4537,  4538,  4539,  4540,  4541,  4544,  4551
+   345,   347,   351,   353,   355,   359,   360,   361,   362,   363,
+   364,   365,   366,   367,   368,   369,   370,   371,   372,   373,
+   374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
+   384,   385,   386,   387,   388,   389,   390,   391,   392,   393,
+   394,   395,   396,   397,   398,   399,   400,   410,   431,   452,
+   460,   461,   464,   470,   476,   479,   485,   491,   494,   498,
+   504,   505,   508,   509,   521,   528,   535,   542,   555,   556,
+   559,   560,   561,   564,   570,   578,   584,   600,   610,   614,
+   622,   624,   626,   628,   640,   657,   670,   672,   681,   682,
+   683,   686,   687,   690,   691,   697,   698,   709,   721,   728,
+   735,   738,   739,   742,   754,   755,   758,   765,   774,   781,
+   785,   794,   803,   812,   821,   830,   837,   842,   848,   850,
+   852,   854,   856,   858,   860,   862,   864,   866,   868,   870,
+   872,   874,   879,   884,   886,   891,   897,   903,   905,   908,
+   910,   912,   918,   920,   926,   928,   936,   942,   946,   954,
+   963,   972,   979,   984,   990,   992,   994,   998,  1000,  1002,
+  1004,  1006,  1008,  1010,  1012,  1014,  1016,  1018,  1020,  1025,
+  1030,  1032,  1037,  1043,  1045,  1047,  1049,  1051,  1053,  1055,
+  1057,  1059,  1061,  1063,  1065,  1067,  1069,  1071,  1075,  1076,
+  1077,  1080,  1081,  1082,  1085,  1086,  1089,  1090,  1091,  1092,
+  1095,  1096,  1103,  1104,  1107,  1117,  1118,  1121,  1122,  1125,
+  1145,  1154,  1156,  1159,  1165,  1171,  1177,  1183,  1189,  1197,
+  1198,  1200,  1204,  1211,  1215,  1230,  1242,  1243,  1245,  1261,
+  1277,  1278,  1281,  1286,  1291,  1299,  1300,  1301,  1304,  1310,
+  1311,  1314,  1315,  1318,  1320,  1322,  1326,  1332,  1338,  1339,
+  1342,  1359,  1366,  1374,  1375,  1376,  1379,  1380,  1381,  1382,
+  1383,  1386,  1389,  1390,  1393,  1399,  1405,  1413,  1414,  1415,
+  1416,  1417,  1436,  1443,  1460,  1469,  1480,  1481,  1482,  1485,
+  1488,  1489,  1492,  1493,  1504,  1510,  1514,  1518,  1524,  1528,
+  1534,  1538,  1542,  1546,  1550,  1556,  1560,  1564,  1570,  1574,
+  1585,  1602,  1619,  1620,  1623,  1624,  1627,  1628,  1631,  1632,
+  1635,  1645,  1655,  1656,  1657,  1666,  1667,  1668,  1679,  1696,
+  1725,  1738,  1739,  1742,  1743,  1746,  1748,  1752,  1762,  1763,
+  1783,  1792,  1793,  1794,  1795,  1799,  1808,  1809,  1813,  1823,
+  1832,  1832,  1834,  1835,  1836,  1837,  1838,  1839,  1840,  1843,
+  1847,  1849,  1851,  1864,  1876,  1877,  1880,  1881,  1894,  1896,
+  1910,  1911,  1912,  1915,  1917,  1921,  1923,  1925,  1929,  1937,
+  1948,  1949,  1950,  1951,  1954,  1955,  1967,  1975,  1997,  2003,
+  2009,  2015,  2021,  2029,  2030,  2031,  2042,  2063,  2079,  2101,
+  2113,  2114,  2117,  2118,  2121,  2122,  2123,  2126,  2127,  2128,
+  2138,  2154,  2171,  2180,  2193,  2194,  2197,  2198,  2201,  2202,
+  2205,  2207,  2219,  2240,  2241,  2242,  2243,  2244,  2245,  2256,
+  2264,  2275,  2291,  2292,  2295,  2298,  2302,  2319,  2334,  2359,
+  2380,  2421,  2440,  2457,  2463,  2467,  2473,  2477,  2493,  2494,
+  2497,  2498,  2501,  2502,  2505,  2506,  2507,  2508,  2511,  2512,
+  2515,  2516,  2519,  2527,  2535,  2545,  2546,  2547,  2548,  2549,
+  2550,  2560,  2561,  2564,  2566,  2568,  2572,  2573,  2576,  2577,
+  2580,  2588,  2596,  2606,  2610,  2622,  2627,  2628,  2631,  2633,
+  2635,  2639,  2645,  2651,  2659,  2660,  2662,  2664,  2666,  2668,
+  2670,  2672,  2676,  2677,  2680,  2681,  2682,  2685,  2686,  2689,
+  2697,  2705,  2715,  2716,  2719,  2726,  2734,  2736,  2738,  2742,
+  2744,  2746,  2761,  2783,  2784,  2791,  2792,  2793,  2796,  2804,
+  2805,  2814,  2820,  2825,  2831,  2839,  2841,  2843,  2845,  2849,
+  2860,  2866,  2873,  2878,  2884,  2892,  2898,  2911,  2938,  2957,
+  2977,  2978,  2979,  2980,  2983,  2984,  2987,  2988,  2991,  2992,
+  2995,  3001,  3008,  3014,  3022,  3023,  3024,  3025,  3026,  3027,
+  3030,  3031,  3034,  3035,  3036,  3037,  3038,  3039,  3040,  3041,
+  3042,  3052,  3054,  3071,  3081,  3091,  3104,  3117,  3123,  3129,
+  3133,  3139,  3140,  3141,  3142,  3143,  3144,  3145,  3146,  3149,
+  3150,  3161,  3166,  3168,  3170,  3178,  3180,  3182,  3184,  3186,
+  3188,  3190,  3192,  3194,  3196,  3198,  3200,  3216,  3232,  3234,
+  3236,  3238,  3240,  3242,  3244,  3256,  3263,  3270,  3285,  3300,
+  3322,  3337,  3359,  3366,  3373,  3383,  3390,  3397,  3405,  3412,
+  3419,  3426,  3433,  3435,  3437,  3439,  3446,  3456,  3466,  3476,
+  3486,  3492,  3498,  3498,  3512,  3512,  3526,  3536,  3546,  3556,
+  3566,  3576,  3586,  3596,  3606,  3616,  3626,  3636,  3646,  3656,
+  3666,  3676,  3686,  3696,  3706,  3716,  3726,  3736,  3746,  3756,
+  3766,  3768,  3770,  3780,  3785,  3787,  3795,  3797,  3799,  3801,
+  3803,  3805,  3807,  3809,  3811,  3827,  3843,  3845,  3847,  3849,
+  3851,  3858,  3865,  3880,  3895,  3917,  3932,  3954,  3961,  3968,
+  3975,  3983,  3990,  3997,  4004,  4013,  4020,  4027,  4031,  4033,
+  4035,  4039,  4046,  4050,  4051,  4052,  4055,  4057,  4061,  4066,
+  4068,  4070,  4072,  4074,  4076,  4078,  4080,  4096,  4112,  4114,
+  4116,  4118,  4120,  4128,  4135,  4142,  4149,  4157,  4164,  4171,
+  4178,  4187,  4191,  4195,  4197,  4206,  4208,  4212,  4214,  4216,
+  4220,  4226,  4230,  4232,  4238,  4244,  4248,  4250,  4256,  4264,
+  4274,  4276,  4278,  4289,  4291,  4293,  4308,  4315,  4322,  4341,
+  4343,  4348,  4355,  4362,  4374,  4388,  4389,  4392,  4397,  4409,
+  4410,  4411,  4412,  4413,  4419,  4420,  4422,  4423,  4428,  4435,
+  4442,  4449,  4457,  4459,  4469,  4481,  4488,  4489,  4490,  4497,
+  4499,  4501,  4512,  4513,  4514,  4515,  4516,  4517,  4518,  4519,
+  4520,  4521,  4522,  4523,  4524,  4525,  4526,  4527,  4528,  4529,
+  4530,  4531,  4532,  4533,  4534,  4535,  4536,  4537,  4538,  4539,
+  4540,  4541,  4542,  4543,  4544,  4545,  4546,  4559,  4560,  4561,
+  4562,  4563,  4564,  4565,  4566,  4567,  4568,  4569,  4570,  4571,
+  4572,  4573,  4576,  4583
 };
 #endif
 
@@ -848,8 +857,8 @@ static const char * const yytname[] = {   "$","error","$undefined.","ACTION",
 "DISTINCT","DOUBLE","DROP","END_TRANS","EXECUTE","EXISTS","EXTRACT","FETCH",
 "FLOAT","FOR","FOREIGN","FROM","FULL","GRANT","GROUP","HAVING","HOUR_P","IN",
 "INNER_P","INSERT","INTERVAL","INTO","IS","JOIN","KEY","LANGUAGE","LEADING",
-"LEFT","LIKE","LOCAL","MATCH","MINUTE_P","MONTH_P","NATIONAL","NATURAL","NCHAR",
-"NO","NOT","NOTIFY","NULL_P","NUMERIC","ON","OPTION","OR","ORDER","OUTER_P",
+"LEFT","LIKE","LOCAL","MATCH","MINUTE_P","MONTH_P","NAMES","NATIONAL","NATURAL",
+"NCHAR","NO","NOT","NOTIFY","NULL_P","NUMERIC","ON","OPTION","OR","ORDER","OUTER_P",
 "PARTIAL","POSITION","PRECISION","PRIMARY","PRIVILEGES","PROCEDURE","PUBLIC",
 "REFERENCES","REVOKE","RIGHT","ROLLBACK","SECOND_P","SELECT","SET","SUBSTRING",
 "TABLE","TIME","TIMESTAMP","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO","TRAILING",
@@ -861,10 +870,10 @@ static const char * const yytname[] = {   "$","error","$undefined.","ACTION",
 "ISNULL","LANCOMPILER","LISTEN","LOAD","LOCK_P","LOCATION","MAXVALUE","MINVALUE",
 "MOVE","NEW","NONE","NOTHING","NOTNULL","OIDS","OPERATOR","PROCEDURAL","RECIPE",
 "RENAME","RESET","RETURNS","ROW","RULE","SEQUENCE","SETOF","SHOW","START","STATEMENT",
-"STDIN","STDOUT","TRUSTED","VACUUM","VERBOSE","VERSION","ARCHIVE","PASSWORD",
-"CREATEDB","NOCREATEDB","CREATEUSER","NOCREATEUSER","VALID","UNTIL","IDENT",
-"SCONST","Op","ICONST","PARAM","FCONST","OP","'='","'<'","'>'","'+'","'-'","'*'",
-"'/'","'|'","':'","';'","UMINUS","'.'","'['","']'","TYPECAST","REDUCE","','",
+"STDIN","STDOUT","TRUSTED","VACUUM","VERBOSE","VERSION","ENCODING","ARCHIVE",
+"PASSWORD","CREATEDB","NOCREATEDB","CREATEUSER","NOCREATEUSER","VALID","UNTIL",
+"IDENT","SCONST","Op","ICONST","PARAM","FCONST","OP","'='","'<'","'>'","'+'",
+"'-'","'*'","'/'","'|'","':'","';'","UMINUS","'.'","'['","']'","TYPECAST","','",
 "'('","')'","stmtblock","stmtmulti","stmt","CreateUserStmt","AlterUserStmt",
 "DropUserStmt","user_passwd_clause","user_createdb_clause","user_createuser_clause",
 "user_group_list","user_group_clause","user_valid_clause","VariableSetStmt",
@@ -888,115 +897,117 @@ static const char * const yytname[] = {   "$","error","$undefined.","ACTION",
 "remove_type","RemoveAggrStmt","aggr_argtype","RemoveFuncStmt","RemoveOperStmt",
 "all_Op","MathOp","oper_argtypes","RenameStmt","opt_name","opt_column","RuleStmt",
 "@1","OptStmtList","OptStmtBlock","OptStmtMulti","event_object","event","opt_instead",
-"NotifyStmt","ListenStmt","TransactionStmt","ViewStmt","LoadStmt","CreatedbStmt",
-"opt_database","location","DestroydbStmt","ClusterStmt","VacuumStmt","opt_verbose",
-"opt_analyze","opt_va_list","va_list","ExplainStmt","OptimizableStmt","InsertStmt",
-"insert_rest","opt_column_list","columnList","columnElem","DeleteStmt","LockStmt",
-"UpdateStmt","CursorStmt","SelectStmt","union_clause","select_list","SubSelect",
-"result","opt_table","opt_union","opt_unique","sort_clause","sortby_list","sortby",
-"OptUseOp","opt_inh_star","relation_name_list","name_list","group_clause","groupby_list",
-"groupby","having_clause","from_clause","from_list","from_val","join_expr","join_outer",
-"join_spec","join_list","join_using","where_clause","relation_expr","opt_array_bounds",
-"nest_array_bounds","Typename","Array","Generic","generic","Numeric","numeric",
-"opt_float","opt_numeric","opt_decimal","Character","character","opt_varying",
-"opt_charset","opt_collate","Datetime","datetime","opt_timezone","opt_interval",
-"a_expr_or_null","row_expr","row_descriptor","row_list","row_op","sub_type",
-"a_expr","@2","@3","b_expr","opt_indirection","expr_list","extract_list","extract_arg",
-"position_list","position_expr","substr_list","substr_from","substr_for","trim_list",
-"in_expr","in_expr_nodes","not_in_expr","not_in_expr_nodes","attr","attrs","res_target_list",
-"res_target_el","res_target_list2","res_target_el2","opt_id","relation_name",
-"database_name","access_method","attr_name","class","index_name","name","func_name",
-"file_name","recipe_name","AexprConst","ParamNo","Iconst","Sconst","UserId",
-"TypeId","ColId","ColLabel","SpecialRuleRelation", NULL
+"NotifyStmt","ListenStmt","TransactionStmt","opt_trans","ViewStmt","LoadStmt",
+"CreatedbStmt","opt_database1","opt_database2","location","encoding","DestroydbStmt",
+"ClusterStmt","VacuumStmt","opt_verbose","opt_analyze","opt_va_list","va_list",
+"ExplainStmt","OptimizableStmt","InsertStmt","insert_rest","opt_column_list",
+"columnList","columnElem","DeleteStmt","LockStmt","UpdateStmt","CursorStmt",
+"SelectStmt","SubSelect","union_clause","select_list","SubUnion","result","opt_table",
+"opt_union","opt_unique","sort_clause","sortby_list","sortby","OptUseOp","opt_inh_star",
+"relation_name_list","name_list","group_clause","groupby_list","groupby","having_clause",
+"from_clause","from_list","from_val","join_expr","join_outer","join_spec","join_list",
+"join_using","where_clause","relation_expr","opt_array_bounds","nest_array_bounds",
+"Typename","Array","Generic","generic","Numeric","numeric","opt_float","opt_numeric",
+"opt_decimal","Character","character","opt_varying","opt_charset","opt_collate",
+"Datetime","datetime","opt_timezone","opt_interval","a_expr_or_null","row_expr",
+"row_descriptor","row_list","row_op","sub_type","a_expr","@2","@3","b_expr",
+"opt_indirection","expr_list","extract_list","extract_arg","position_list","position_expr",
+"substr_list","substr_from","substr_for","trim_list","in_expr","in_expr_nodes",
+"not_in_expr","not_in_expr_nodes","attr","attrs","res_target_list","res_target_el",
+"res_target_list2","res_target_el2","opt_id","relation_name","database_name",
+"access_method","attr_name","class","index_name","name","func_name","file_name",
+"recipe_name","AexprConst","ParamNo","Iconst","Sconst","UserId","TypeId","ColId",
+"ColLabel","SpecialRuleRelation", NULL
 };
 #endif
 
 static const short yyr1[] = {     0,
-   218,   218,   219,   219,   219,   220,   220,   220,   220,   220,
-   220,   220,   220,   220,   220,   220,   220,   220,   220,   220,
-   220,   220,   220,   220,   220,   220,   220,   220,   220,   220,
-   220,   220,   220,   220,   220,   220,   220,   220,   220,   220,
-   220,   220,   220,   220,   220,   220,   220,   221,   222,   223,
-   224,   224,   225,   225,   225,   226,   226,   226,   227,   227,
-   228,   228,   229,   229,   230,   230,   230,   231,   231,   232,
-   232,   232,   233,   233,   234,   234,   235,   236,   236,   236,
-   236,   236,   236,   237,   238,   239,   239,   240,   240,   240,
-   241,   241,   242,   242,   243,   243,   244,   245,   245,   245,
-   246,   246,   247,   248,   248,   249,   249,   250,   250,   251,
-   251,   251,   251,   251,   251,   252,   252,   253,   253,   253,
-   253,   253,   253,   253,   253,   253,   253,   253,   253,   253,
-   253,   253,   253,   253,   253,   253,   253,   253,   253,   253,
-   253,   253,   253,   253,   253,   254,   254,   255,   255,   255,
-   255,   256,   256,   257,   257,   257,   257,   257,   257,   257,
-   257,   257,   257,   257,   257,   257,   257,   257,   257,   257,
-   257,   257,   257,   257,   257,   257,   257,   257,   257,   257,
-   257,   257,   257,   257,   257,   257,   257,   258,   258,   258,
-   259,   259,   259,   260,   260,   261,   261,   261,   261,   262,
-   262,   263,   263,   264,   265,   265,   266,   266,   267,   268,
-   269,   269,   270,   270,   270,   270,   270,   270,   271,   271,
-   272,   272,   273,   273,   274,   275,   275,   276,   277,   278,
-   278,   279,   279,   279,   280,   280,   280,   281,   282,   282,
-   283,   283,   284,   284,   284,   285,   285,   285,   285,   286,
-   287,   288,   289,   289,   289,   290,   290,   290,   290,   290,
-   291,   292,   292,   293,   293,   293,   294,   294,   294,   294,
-   294,   295,   295,   296,   296,   297,   297,   297,   298,   298,
-   298,   299,   299,   300,   301,   301,   301,   302,   302,   303,
-   303,   303,   303,   303,   304,   304,   304,   305,   305,   306,
-   307,   308,   308,   309,   309,   310,   310,   311,   311,   312,
-   313,   314,   314,   314,   315,   315,   315,   316,   317,   318,
-   319,   319,   320,   320,   321,   321,   322,   323,   323,   324,
-   325,   325,   325,   325,   326,   327,   327,   328,   329,   330,
-   330,   331,   331,   331,   331,   331,   331,   331,   332,   332,
-   332,   332,   333,   334,   334,   335,   335,   337,   336,   338,
-   338,   338,   339,   339,   340,   340,   340,   341,   341,   342,
-   342,   342,   342,   343,   343,   344,   345,   346,   346,   346,
-   346,   346,   346,   346,   346,   346,   346,   346,   347,   348,
-   349,   350,   350,   351,   351,   351,   352,   353,   354,   354,
-   355,   355,   356,   356,   357,   357,   358,   358,   359,   360,
-   360,   360,   360,   360,   360,   361,   362,   362,   363,   363,
-   364,   364,   365,   366,   367,   368,   369,   370,   371,   371,
-   372,   372,   373,   374,   374,   375,   375,   376,   376,   377,
-   377,   377,   377,   378,   378,   379,   379,   380,   380,   380,
-   381,   381,   381,   381,   381,   381,   382,   382,   383,   384,
-   384,   385,   385,   386,   386,   387,   387,   387,   388,   388,
-   389,   389,   389,   390,   390,   390,   391,   391,   391,   392,
-   392,   392,   392,   392,   392,   392,   392,   393,   393,   394,
-   394,   394,   395,   395,   396,   396,   396,   397,   397,   398,
-   398,   399,   399,   399,   400,   400,   400,   401,   401,   401,
-   402,   402,   402,   403,   404,   404,   405,   405,   405,   405,
-   406,   406,   406,   406,   407,   407,   408,   408,   408,   409,
-   409,   409,   410,   410,   411,   411,   411,   411,   411,   412,
-   412,   413,   413,   414,   414,   415,   415,   415,   415,   416,
-   416,   416,   416,   416,   416,   417,   417,   418,   418,   418,
-   418,   418,   418,   418,   418,   418,   419,   419,   420,   420,
-   420,   420,   420,   421,   422,   422,   423,   423,   423,   423,
-   423,   423,   423,   423,   424,   424,   425,   425,   425,   425,
-   425,   425,   425,   425,   425,   425,   425,   425,   425,   425,
-   425,   425,   425,   425,   425,   425,   425,   425,   425,   425,
-   425,   425,   425,   425,   425,   425,   425,   425,   425,   425,
-   425,   425,   425,   425,   425,   425,   425,   425,   425,   425,
-   425,   425,   425,   425,   425,   425,   425,   426,   425,   427,
-   425,   425,   425,   425,   425,   425,   425,   425,   425,   425,
-   425,   425,   425,   425,   425,   425,   425,   425,   425,   425,
-   425,   425,   425,   425,   425,   425,   425,   425,   428,   428,
-   428,   428,   428,   428,   428,   428,   428,   428,   428,   428,
-   428,   428,   428,   428,   428,   428,   428,   428,   428,   428,
-   428,   428,   428,   428,   428,   428,   428,   428,   428,   428,
-   429,   429,   429,   430,   430,   430,   431,   431,   432,   432,
-   432,   433,   433,   434,   434,   434,   434,   434,   434,   434,
-   434,   434,   434,   434,   434,   434,   434,   434,   434,   434,
-   434,   434,   434,   434,   434,   434,   435,   435,   436,   436,
-   437,   437,   438,   438,   438,   439,   439,   440,   440,   441,
-   441,   442,   442,   443,   443,   444,   444,   444,   445,   445,
-   445,   446,   446,   446,   447,   447,   448,   448,   448,   448,
-   449,   449,   450,   450,   451,   452,   453,   454,   455,   456,
-   457,   458,   459,   460,   460,   460,   460,   460,   460,   460,
-   461,   462,   463,   464,   465,   465,   465,   466,   466,   466,
-   466,   466,   466,   466,   466,   466,   466,   466,   466,   466,
-   466,   466,   466,   466,   466,   466,   466,   466,   466,   466,
-   466,   466,   466,   466,   466,   466,   466,   466,   466,   466,
-   466,   467,   467,   467,   467,   467,   467,   467,   467,   467,
-   467,   467,   467,   467,   467,   467,   468,   468
+   219,   219,   220,   220,   220,   221,   221,   221,   221,   221,
+   221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
+   221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
+   221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
+   221,   221,   221,   221,   221,   221,   221,   222,   223,   224,
+   225,   225,   226,   226,   226,   227,   227,   227,   228,   228,
+   229,   229,   230,   230,   231,   231,   231,   231,   232,   232,
+   233,   233,   233,   234,   234,   235,   235,   236,   237,   237,
+   237,   237,   237,   237,   238,   239,   240,   240,   241,   241,
+   241,   242,   242,   243,   243,   244,   244,   245,   246,   246,
+   246,   247,   247,   248,   249,   249,   250,   250,   251,   251,
+   252,   252,   252,   252,   252,   252,   253,   253,   254,   254,
+   254,   254,   254,   254,   254,   254,   254,   254,   254,   254,
+   254,   254,   254,   254,   254,   254,   254,   254,   254,   254,
+   254,   254,   254,   254,   254,   254,   255,   255,   256,   256,
+   256,   256,   257,   257,   258,   258,   258,   258,   258,   258,
+   258,   258,   258,   258,   258,   258,   258,   258,   258,   258,
+   258,   258,   258,   258,   258,   258,   258,   258,   258,   258,
+   258,   258,   258,   258,   258,   258,   258,   258,   259,   259,
+   259,   260,   260,   260,   261,   261,   262,   262,   262,   262,
+   263,   263,   264,   264,   265,   266,   266,   267,   267,   268,
+   269,   270,   270,   271,   271,   271,   271,   271,   271,   272,
+   272,   273,   273,   274,   274,   275,   276,   276,   277,   278,
+   279,   279,   280,   280,   280,   281,   281,   281,   282,   283,
+   283,   284,   284,   285,   285,   285,   286,   286,   286,   286,
+   287,   288,   289,   290,   290,   290,   291,   291,   291,   291,
+   291,   292,   293,   293,   294,   294,   294,   295,   295,   295,
+   295,   295,   296,   296,   297,   297,   298,   298,   298,   299,
+   299,   299,   300,   300,   301,   302,   302,   302,   303,   303,
+   304,   304,   304,   304,   304,   305,   305,   305,   306,   306,
+   307,   308,   309,   309,   310,   310,   311,   311,   312,   312,
+   313,   314,   315,   315,   315,   316,   316,   316,   317,   318,
+   319,   320,   320,   321,   321,   322,   322,   323,   324,   324,
+   325,   326,   326,   326,   326,   327,   328,   328,   329,   330,
+   331,   331,   332,   332,   332,   332,   332,   332,   332,   333,
+   333,   333,   333,   334,   335,   335,   336,   336,   338,   337,
+   339,   339,   339,   340,   340,   341,   341,   341,   342,   342,
+   343,   343,   343,   343,   344,   344,   345,   346,   347,   347,
+   347,   347,   347,   348,   348,   348,   349,   350,   351,   351,
+   352,   352,   353,   353,   354,   354,   354,   355,   355,   355,
+   356,   357,   358,   358,   359,   359,   360,   360,   361,   361,
+   362,   362,   363,   364,   364,   364,   364,   364,   364,   365,
+   366,   366,   367,   367,   368,   368,   369,   370,   371,   372,
+   373,   374,   375,   376,   376,   377,   377,   378,   379,   379,
+   380,   380,   381,   381,   382,   382,   382,   382,   383,   383,
+   384,   384,   385,   385,   385,   386,   386,   386,   386,   386,
+   386,   387,   387,   388,   389,   389,   390,   390,   391,   391,
+   392,   392,   392,   393,   393,   394,   394,   394,   395,   395,
+   395,   396,   396,   396,   397,   397,   397,   397,   397,   397,
+   397,   397,   398,   398,   399,   399,   399,   400,   400,   401,
+   401,   401,   402,   402,   403,   403,   404,   404,   404,   405,
+   405,   405,   406,   406,   406,   407,   407,   407,   408,   409,
+   409,   410,   410,   410,   410,   411,   411,   411,   411,   412,
+   412,   413,   413,   413,   414,   414,   414,   415,   415,   416,
+   416,   416,   416,   416,   417,   417,   418,   418,   419,   419,
+   420,   420,   420,   420,   421,   421,   421,   421,   421,   421,
+   422,   422,   423,   423,   423,   423,   423,   423,   423,   423,
+   423,   424,   424,   425,   425,   425,   425,   425,   426,   427,
+   427,   428,   428,   428,   428,   428,   428,   428,   428,   429,
+   429,   430,   430,   430,   430,   430,   430,   430,   430,   430,
+   430,   430,   430,   430,   430,   430,   430,   430,   430,   430,
+   430,   430,   430,   430,   430,   430,   430,   430,   430,   430,
+   430,   430,   430,   430,   430,   430,   430,   430,   430,   430,
+   430,   430,   430,   430,   430,   430,   430,   430,   430,   430,
+   430,   430,   431,   430,   432,   430,   430,   430,   430,   430,
+   430,   430,   430,   430,   430,   430,   430,   430,   430,   430,
+   430,   430,   430,   430,   430,   430,   430,   430,   430,   430,
+   430,   430,   430,   433,   433,   433,   433,   433,   433,   433,
+   433,   433,   433,   433,   433,   433,   433,   433,   433,   433,
+   433,   433,   433,   433,   433,   433,   433,   433,   433,   433,
+   433,   433,   433,   433,   433,   434,   434,   434,   435,   435,
+   435,   436,   436,   437,   437,   437,   438,   438,   439,   439,
+   439,   439,   439,   439,   439,   439,   439,   439,   439,   439,
+   439,   439,   439,   439,   439,   439,   439,   439,   439,   439,
+   439,   440,   440,   441,   441,   442,   442,   443,   443,   443,
+   444,   444,   445,   445,   446,   446,   447,   447,   448,   448,
+   449,   449,   449,   450,   450,   450,   451,   451,   451,   452,
+   452,   453,   453,   453,   453,   454,   454,   455,   455,   456,
+   457,   458,   459,   460,   461,   462,   463,   464,   465,   465,
+   465,   465,   465,   465,   465,   466,   467,   468,   469,   470,
+   470,   470,   471,   471,   471,   471,   471,   471,   471,   471,
+   471,   471,   471,   471,   471,   471,   471,   471,   471,   471,
+   471,   471,   471,   471,   471,   471,   471,   471,   471,   471,
+   471,   471,   471,   471,   471,   471,   471,   472,   472,   472,
+   472,   472,   472,   472,   472,   472,   472,   472,   472,   472,
+   472,   472,   473,   473
 };
 
 static const short yyr2[] = {     0,
@@ -1006,2959 +1017,2914 @@ static const short yyr2[] = {     0,
      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
      1,     1,     1,     1,     1,     1,     1,     8,     8,     3,
      3,     0,     1,     1,     0,     1,     1,     0,     3,     1,
-     3,     0,     3,     0,     4,     4,     4,     1,     1,     1,
-     1,     1,     2,     3,     2,     3,     5,     3,     4,     3,
-     6,     5,     2,     2,     7,     1,     1,     1,     1,     1,
-     1,     0,     2,     0,     3,     0,     8,     3,     1,     0,
-     1,     1,     3,     1,     0,     2,     1,     3,     1,     4,
-     2,     2,     1,     2,     5,     3,     1,     1,     1,     2,
-     3,     3,     3,     3,     3,     3,     3,     2,     2,     2,
-     3,     6,     3,     3,     4,     3,     2,     2,     1,     1,
-     4,     1,     4,     1,     1,     3,     1,     4,     4,     5,
-    10,     3,     1,     1,     1,     1,     2,     3,     3,     3,
-     3,     3,     3,     3,     2,     2,     2,     3,     6,     3,
-     3,     4,     3,     3,     3,     3,     2,     2,     2,     2,
-     3,     2,     4,     3,     3,     4,     4,     2,     2,     0,
-     2,     1,     0,     3,     3,     2,     1,     2,     2,     4,
-     0,     3,     0,     6,     3,     0,     3,     1,     1,     4,
-     2,     0,     2,     1,     2,     2,     2,     2,     1,     1,
-     1,     2,     1,     2,     9,     1,     0,     4,    14,     1,
-     1,     1,     3,     5,     1,     1,     1,     3,     1,     0,
-     1,     1,     1,     3,     0,     1,     1,     1,     1,     5,
-     3,     2,     1,     1,     1,     1,     1,     1,     1,     1,
-     3,     1,     3,     3,     1,     3,     1,     1,     1,     1,
-     2,     3,     3,     4,     4,     1,     1,     0,     1,     1,
-     0,     2,     0,     7,     2,     1,     1,     1,     3,     1,
-     1,     1,     1,     1,     1,     2,     1,     3,     0,     6,
-    11,     1,     0,     2,     0,     1,     1,     3,     1,     6,
-     3,     2,     2,     0,     1,     2,     0,     4,     3,    11,
-     2,     0,     3,     2,     1,     3,     2,     1,     0,     3,
-     1,     1,     1,     1,     4,     1,     1,     4,     6,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
-     3,     3,     9,     1,     0,     1,     0,     0,    13,     1,
-     1,     3,     1,     1,     3,     2,     2,     3,     1,     1,
-     1,     1,     1,     1,     0,     2,     2,     2,     2,     2,
-     2,     2,     2,     1,     1,     1,     1,     1,     5,     2,
-     4,     4,     0,     1,     1,     0,     3,     4,     3,     5,
-     1,     0,     1,     0,     3,     0,     1,     3,     3,     1,
-     1,     1,     1,     1,     1,     5,     4,     8,     3,     0,
-     3,     1,     2,     4,     3,     6,    14,    10,     3,     0,
-     4,     1,     8,     3,     0,     1,     0,     1,     0,     1,
-     3,     1,     0,     3,     0,     1,     3,     2,     4,     2,
-     2,     2,     2,     1,     1,     0,     1,     0,     1,     1,
-     3,     3,     0,     1,     3,     1,     3,     1,     2,     0,
-     8,     2,     0,     3,     4,     1,     3,     2,     1,     2,
-     2,     2,     2,     1,     1,     1,     0,     1,     0,     4,
-     4,     0,     1,     3,     1,     3,     1,     2,     0,     1,
-     2,     3,     4,     0,     3,     4,     0,     2,     1,     2,
-     1,     1,     1,     1,     1,     1,     2,     2,     2,     2,
-     1,     2,     1,     1,     3,     0,     5,     3,     0,     5,
-     3,     0,     4,     1,     4,     2,     1,     3,     2,     1,
-     0,     3,     0,     2,     0,     1,     2,     1,     2,     1,
-     1,     1,     1,     1,     1,     3,     0,     1,     3,     3,
-     3,     3,     3,     3,     3,     0,     1,     1,     7,     8,
-     8,     7,     7,     3,     3,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     2,     1,     1,     1,
+     3,     0,     3,     0,     4,     4,     4,     3,     1,     1,
+     1,     1,     1,     2,     3,     2,     3,     5,     3,     4,
+     3,     6,     5,     2,     2,     7,     1,     1,     1,     1,
+     1,     1,     0,     2,     0,     3,     0,     8,     3,     1,
+     0,     1,     1,     3,     1,     0,     2,     1,     3,     1,
+     4,     2,     2,     1,     2,     5,     3,     1,     1,     1,
      2,     3,     3,     3,     3,     3,     3,     3,     2,     2,
-     2,     3,     6,     3,     3,     3,     4,     2,     2,     4,
-     3,     4,     1,     1,     4,     1,     4,     1,     1,     4,
-     4,     4,     4,     5,     5,     5,     4,     2,     3,     2,
-     4,     3,     4,     3,     4,     5,     6,     0,     6,     0,
-     7,     5,     5,     5,     5,     5,     5,     5,     5,     6,
+     2,     3,     6,     3,     3,     4,     3,     2,     2,     1,
+     1,     4,     1,     4,     1,     1,     3,     1,     4,     4,
+     5,    10,     3,     1,     1,     1,     1,     2,     3,     3,
+     3,     3,     3,     3,     3,     2,     2,     2,     3,     6,
+     3,     3,     4,     3,     3,     3,     3,     2,     2,     2,
+     2,     3,     2,     4,     3,     3,     4,     4,     2,     2,
+     0,     2,     1,     0,     3,     3,     2,     1,     2,     2,
+     4,     0,     3,     0,     6,     3,     0,     3,     1,     1,
+     4,     2,     0,     2,     1,     2,     2,     2,     2,     1,
+     1,     1,     2,     1,     2,     9,     1,     0,     4,    14,
+     1,     1,     1,     3,     5,     1,     1,     1,     3,     1,
+     0,     1,     1,     1,     3,     0,     1,     1,     1,     1,
+     5,     3,     2,     1,     1,     1,     1,     1,     1,     1,
+     1,     3,     1,     3,     3,     1,     3,     1,     1,     1,
+     1,     2,     3,     3,     4,     4,     1,     1,     0,     1,
+     1,     0,     2,     0,     7,     2,     1,     1,     1,     3,
+     1,     1,     1,     1,     1,     1,     2,     1,     3,     0,
+     6,    11,     1,     0,     2,     0,     1,     1,     3,     1,
+     6,     3,     2,     2,     0,     1,     2,     0,     4,     3,
+    11,     2,     0,     3,     2,     1,     3,     2,     1,     0,
+     3,     1,     1,     1,     1,     4,     1,     1,     4,     6,
+     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+     3,     3,     3,     9,     1,     0,     1,     0,     0,    13,
+     1,     1,     3,     1,     1,     3,     2,     2,     3,     1,
+     1,     1,     1,     1,     1,     0,     2,     2,     2,     2,
+     2,     2,     2,     1,     1,     0,     5,     2,     6,     3,
+     3,     0,     3,     0,     1,     1,     0,     1,     1,     0,
+     3,     4,     3,     5,     1,     0,     1,     0,     3,     0,
+     1,     3,     3,     1,     1,     1,     1,     1,     1,     5,
+     4,     8,     3,     0,     3,     1,     2,     4,     3,     6,
+    14,    10,     8,     3,     0,     4,     1,     7,     3,     0,
+     1,     0,     1,     0,     1,     3,     1,     0,     3,     0,
+     1,     3,     2,     4,     2,     2,     2,     2,     1,     1,
+     0,     1,     0,     1,     1,     3,     3,     0,     1,     3,
+     1,     3,     1,     2,     0,     8,     2,     0,     3,     4,
+     1,     3,     2,     1,     2,     2,     2,     2,     1,     1,
+     1,     0,     1,     0,     4,     4,     0,     1,     3,     1,
+     3,     1,     2,     0,     1,     2,     3,     4,     0,     3,
+     4,     0,     2,     1,     2,     1,     1,     1,     1,     1,
+     1,     2,     2,     2,     2,     1,     2,     1,     1,     3,
+     0,     5,     3,     0,     5,     3,     0,     4,     1,     4,
+     2,     1,     3,     2,     1,     0,     3,     0,     2,     0,
+     1,     2,     1,     2,     1,     1,     1,     1,     1,     1,
+     3,     0,     1,     3,     3,     3,     3,     3,     3,     3,
+     0,     1,     1,     7,     8,     8,     7,     7,     3,     3,
+     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+     1,     2,     1,     1,     1,     2,     3,     3,     3,     3,
+     3,     3,     3,     2,     2,     2,     3,     6,     3,     3,
+     3,     4,     2,     2,     4,     3,     4,     1,     1,     4,
+     1,     4,     1,     1,     4,     4,     4,     4,     5,     5,
+     5,     4,     2,     3,     2,     4,     3,     4,     3,     4,
+     5,     6,     0,     6,     0,     7,     5,     5,     5,     5,
+     5,     5,     5,     5,     6,     6,     6,     6,     6,     6,
      6,     6,     6,     6,     6,     6,     6,     6,     6,     6,
-     6,     6,     6,     6,     6,     3,     3,     2,     2,     1,
-     1,     2,     3,     3,     3,     3,     2,     2,     2,     3,
-     6,     3,     3,     2,     2,     3,     4,     1,     1,     4,
-     1,     4,     1,     1,     4,     4,     5,     5,     5,     4,
-     4,     6,     0,     1,     3,     3,     3,     0,     1,     1,
-     1,     3,     0,     2,     1,     2,     3,     3,     3,     3,
-     2,     3,     6,     3,     3,     2,     2,     1,     3,     4,
-     4,     4,     5,     5,     5,     4,     3,     0,     2,     0,
-     2,     0,     3,     2,     1,     1,     1,     1,     3,     1,
-     1,     1,     3,     3,     3,     1,     3,     3,     3,     1,
-     1,     4,     2,     3,     3,     1,     3,     1,     3,     1,
-     1,     0,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     2,     1,     1,     1,
+     3,     3,     2,     2,     1,     1,     2,     3,     3,     3,
+     3,     2,     2,     2,     3,     6,     3,     3,     2,     2,
+     3,     4,     1,     1,     4,     1,     4,     1,     1,     4,
+     4,     5,     5,     5,     4,     4,     6,     0,     1,     3,
+     3,     3,     0,     1,     1,     1,     3,     0,     2,     1,
+     2,     3,     3,     3,     3,     2,     3,     6,     3,     3,
+     2,     2,     1,     3,     4,     4,     4,     5,     5,     5,
+     4,     3,     0,     2,     0,     2,     0,     3,     2,     1,
+     1,     1,     1,     3,     1,     1,     1,     3,     3,     3,
+     1,     3,     3,     3,     1,     1,     4,     2,     3,     3,
+     1,     3,     1,     3,     1,     1,     0,     1,     1,     1,
      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+     1,     2,     1,     1,     1,     1,     1,     1,     1,     1,
      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1
+     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+     1,     1,     1,     1
 };
 
 static const short yydefact[] = {     0,
-     0,   385,   772,   386,   227,     0,     0,     0,   387,     0,
-   278,     0,     0,     0,     0,   388,   443,     0,     0,   384,
-     0,    92,   402,     0,     0,     0,   437,   278,     0,     0,
-   402,     1,     2,    15,     7,    21,    45,    46,    47,     6,
+     0,   386,   777,   386,   228,     0,     0,     0,   386,     0,
+   279,     0,     0,     0,     0,   386,   448,     0,     0,   386,
+     0,    93,   406,     0,     0,     0,   442,   279,     0,     0,
+   406,     1,     2,    15,     7,    21,    45,    46,    47,     6,
      8,     9,    10,    11,    12,    13,    19,    14,    20,    17,
     18,    24,    25,    36,    26,    22,    30,    29,    34,    31,
-    33,    32,    35,    38,   414,    27,    39,    40,    41,    42,
-    43,    16,    44,    23,    37,   413,   415,    28,   412,   411,
-   410,     0,     0,   379,   380,   800,   552,   805,   553,   810,
-   811,   813,   554,   551,   817,   819,   555,   824,   825,   826,
-   550,   831,   827,   828,   801,   802,   803,   804,   806,   807,
-   808,   809,   812,   814,   815,   816,   820,   821,   822,   823,
-   830,   818,   829,   798,   799,    84,   771,   381,     0,   302,
-     0,     0,     0,   254,   255,     0,     0,   253,     0,     0,
-   226,     0,     0,     0,    92,   780,     0,     0,     0,   334,
-     0,   331,     0,     0,     0,   332,     0,     0,   333,     0,
-     0,   382,     0,   277,   276,   281,   286,   293,   291,   290,
-   292,   294,     0,   287,   288,     0,   847,   848,   376,   774,
-   773,     0,   383,   442,   440,     0,   824,     0,     0,   378,
-     0,   779,    91,     0,   401,     0,     0,   377,   793,   390,
-   782,   436,     0,   281,   824,    75,   824,    73,   404,     4,
-     5,   458,   794,    52,   206,    52,     0,     0,   393,   775,
-     0,   781,     0,   212,     0,   257,   256,   260,   348,   346,
-   347,   342,   343,   344,   345,   251,     0,   259,   258,     0,
-     0,   499,   272,   459,   460,    50,     0,     0,   397,     0,
-   340,     0,   341,     0,   273,   330,   783,   319,   280,   792,
-   283,   279,   285,     0,     0,   420,     0,     0,     0,   541,
-   541,   613,   614,   616,   618,   532,   805,     0,     0,   526,
-   566,     0,   541,     0,   568,   529,     0,     0,   824,   557,
-     0,   619,   537,   790,   789,   828,     0,   798,     0,   791,
-   785,     0,   770,     0,     0,     0,     0,     0,   504,   511,
-   514,   513,   509,   534,   512,   799,   768,   588,   567,   703,
-   435,   766,     0,     0,   589,   788,   784,   786,   590,     0,
-     0,     0,     0,     0,    94,   409,   499,   425,   283,    76,
-    74,   403,   399,     3,   457,     0,     0,    55,   100,     0,
-    55,     0,   231,   230,     0,     0,   391,     0,     0,   358,
-   210,     0,     0,   252,     0,     0,     0,   424,     0,     0,
-   337,   335,   336,   338,     0,   228,     0,   274,     0,   289,
-     0,     0,     0,   441,     0,   540,   536,   543,     0,     0,
-     0,   519,   518,     0,   708,     0,   517,   552,   553,   554,
-   550,   558,   549,   541,   539,   668,     0,     0,   520,   713,
-   738,     0,   547,     0,     0,   548,   516,   515,   510,   546,
-   608,   591,   601,   599,   600,     0,     0,     0,   567,   787,
-     0,   508,     0,     0,     0,     0,   638,     0,     0,     0,
-     0,   628,   630,   609,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   587,   437,     0,   473,     0,     0,     0,
-    71,    72,    67,    70,    69,    65,    68,    66,   761,   703,
-   473,   760,     0,     0,   703,   398,     0,     0,   318,   275,
-   406,   357,   357,   357,   357,    77,     0,    53,    54,    58,
-     0,     0,     0,     0,     0,     0,    99,   101,   102,   147,
-     0,   208,   209,     0,    58,   389,   236,   235,   237,     0,
-   232,     0,   523,   805,   521,   524,   324,     0,   796,   797,
-   325,   795,   329,     0,     0,   214,     0,     0,     0,     0,
-   211,     0,     0,   265,     0,   262,     0,     0,   498,   461,
-   250,     0,     0,   349,   282,     0,     0,   422,   703,   443,
-     0,   416,     0,     0,     0,   545,     0,     0,     0,   443,
-     0,   710,   711,   709,     0,     0,     0,     0,     0,     0,
-     0,   538,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   703,     0,   715,   728,   704,   740,
-     0,     0,     0,     0,     0,     0,   567,   745,     0,   604,
-     0,     0,   507,     0,     0,   835,   836,   837,   838,   840,
-   841,   842,   843,   844,   846,   845,   834,   839,   833,   832,
-   767,   666,     0,   688,   689,   691,   693,     0,     0,     0,
-   694,     0,     0,     0,     0,     0,     0,     0,   703,     0,
-   670,   671,     0,     0,   629,   634,   632,   606,     0,   640,
-     0,   667,     0,     0,     0,   605,     0,     0,     0,   598,
-     0,     0,     0,   596,     0,     0,     0,   597,     0,     0,
-     0,   592,     0,     0,     0,   593,     0,     0,     0,   595,
-     0,     0,     0,   594,   602,     0,     0,   765,     0,   499,
-   769,   754,   756,   777,     0,   611,     0,   755,   763,     0,
-   499,     0,     0,    93,    87,    86,     0,     0,   400,   356,
-   100,    83,     0,     0,     0,   355,    51,    56,    57,    62,
-     0,     0,     0,     0,     0,     0,   201,     0,   205,   105,
-   204,    62,     0,     0,   396,   522,     0,   323,   328,   322,
-     0,     0,     0,   213,   223,   215,   216,   217,   218,     0,
-     0,     0,     0,   261,   305,   443,     0,   339,     0,     0,
-   295,   299,   297,     0,   419,   423,     0,     0,   300,     0,
-     0,     0,   535,   615,   617,     0,   531,     0,   620,   621,
-     0,   525,   560,   561,   562,   563,   564,   565,   559,     0,
-   528,     0,   713,   738,     0,   726,   716,   721,     0,   622,
-     0,   727,     0,     0,     0,     0,     0,   714,     0,     0,
-     0,     0,   742,   623,   556,     0,   744,     0,     0,     0,
-   627,     0,     0,   577,   579,   578,   580,   581,   582,   583,
-   584,     0,   574,     0,   502,   507,   533,     0,     0,     0,
-   713,   738,     0,   684,   672,   679,   677,   678,     0,     0,
-   685,     0,     0,     0,     0,     0,   669,     0,     0,   631,
-   633,   635,     0,     0,   607,     0,     0,     0,     0,     0,
+    33,    32,    35,    38,   418,    27,    39,    40,    41,    42,
+    43,    16,    44,    23,    37,   417,   419,    28,   416,   415,
+   414,     0,     0,   385,   384,   380,   805,   557,   810,   558,
+   816,   817,   819,   559,   556,   823,   825,   560,   830,   831,
+   832,   555,   837,   833,   834,   806,   807,   808,   809,   811,
+   813,   814,   815,   818,   820,   821,   822,   826,   827,   828,
+   829,   836,   812,   824,   835,   803,   804,    85,   776,   381,
+     0,   303,     0,     0,     0,   255,   256,     0,     0,   254,
+     0,     0,   227,     0,     0,     0,    93,   785,     0,     0,
+     0,   335,     0,   332,     0,     0,     0,   333,     0,     0,
+   334,     0,     0,   382,     0,   278,   277,   282,   287,   294,
+   292,   291,   293,   295,     0,   288,   289,     0,   853,   854,
+   377,   779,   778,     0,   383,   447,   445,     0,   400,   830,
+     0,     0,   379,     0,   784,    92,     0,   405,     0,     0,
+   378,   798,   388,   787,   441,     0,   282,   830,    76,   830,
+    74,   408,     4,     5,   463,   799,    52,   207,    52,     0,
+     0,   390,   780,     0,   786,     0,   213,     0,   258,   257,
+   261,   349,   347,   348,   343,   344,   345,   346,   252,     0,
+   260,   259,     0,     0,   504,   273,   464,   465,    50,     0,
+     0,   401,     0,   341,     0,   342,     0,   274,   331,   788,
+   320,   281,   797,   284,   280,   286,     0,     0,   424,     0,
+     0,     0,   546,   546,   618,   619,   621,   623,   537,   810,
+     0,     0,   531,   571,     0,   546,     0,   573,   534,     0,
+     0,   830,   562,     0,   624,   542,   795,   794,   834,     0,
+   803,     0,   796,   790,     0,   775,     0,     0,     0,     0,
+     0,   509,   516,   519,   518,   514,   539,   517,   804,   773,
+   593,   572,   708,   440,   771,     0,     0,   594,   793,   789,
+   791,   595,   399,    68,   398,     0,     0,     0,     0,     0,
+    95,   413,   504,   429,   284,    77,    75,   407,   403,     3,
+   462,     0,     0,    55,   101,     0,    55,     0,   232,   231,
+     0,   392,     0,     0,   359,   211,     0,     0,   253,     0,
+     0,     0,   428,     0,     0,   338,   336,   337,   339,     0,
+   229,     0,   275,     0,   290,     0,     0,     0,   446,     0,
+   545,   541,   548,     0,     0,     0,   524,   523,     0,   713,
+     0,   522,   557,   558,   559,   555,   563,   554,   546,   544,
+   673,     0,     0,   525,   718,   743,     0,   552,     0,     0,
+   553,   521,   520,   515,   551,   613,   596,   606,   604,   605,
+     0,     0,     0,   572,   792,     0,   513,     0,     0,     0,
+     0,   643,     0,     0,     0,     0,   633,   635,   614,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   592,   442,
+     0,   478,     0,     0,     0,    72,    73,    67,    71,    70,
+    65,    69,    66,   766,   708,   478,   765,     0,     0,   708,
+   402,     0,     0,   319,   276,   410,   358,   358,   358,   358,
+    78,     0,    53,    54,    58,     0,     0,     0,     0,     0,
+     0,   100,   102,   103,   148,     0,   209,   210,     0,    58,
+   387,   237,   236,   238,     0,   233,     0,   394,   528,   810,
+   526,   529,   325,     0,   801,   802,   326,   800,   330,     0,
+     0,   215,     0,     0,     0,     0,   212,     0,     0,   266,
+     0,   263,     0,     0,   503,   466,   251,     0,     0,   350,
+   283,     0,     0,   426,   708,   448,     0,   420,     0,     0,
+     0,   550,     0,     0,     0,   448,     0,   715,   716,   714,
+     0,     0,     0,     0,     0,     0,     0,   543,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   708,     0,   720,   733,   709,   745,     0,     0,     0,     0,
+     0,     0,   572,   750,     0,   609,     0,     0,   512,     0,
+     0,   841,   842,   843,   844,   846,   847,   848,   849,   850,
+   852,   851,   840,   845,   839,   838,   772,   671,     0,   693,
+   694,   696,   698,     0,     0,     0,   699,     0,     0,     0,
+     0,     0,     0,     0,   708,     0,   675,   676,     0,     0,
+   634,   639,   637,   611,     0,   645,     0,   672,     0,     0,
+     0,   610,     0,     0,     0,   603,     0,     0,     0,   601,
+     0,     0,     0,   602,     0,     0,     0,   597,     0,     0,
+     0,   598,     0,     0,     0,   600,     0,     0,     0,   599,
+   607,     0,     0,   770,     0,   504,   774,   759,   761,   782,
+     0,   616,     0,   760,   768,     0,   504,     0,     0,    94,
+    88,    87,     0,     0,   404,   357,   101,    84,     0,     0,
+     0,   356,    51,    56,    57,    62,     0,     0,     0,     0,
+     0,     0,   202,     0,   206,   106,   205,    62,     0,     0,
+   397,     0,   389,   527,     0,   324,   329,   323,     0,     0,
+     0,   214,   224,   216,   217,   218,   219,     0,     0,     0,
+     0,   262,   306,   448,     0,   340,     0,     0,   296,   300,
+   298,     0,   423,   427,     0,     0,   301,     0,     0,     0,
+   540,   620,   622,     0,   536,     0,   625,   626,     0,   530,
+   565,   566,   567,   568,   569,   570,   564,     0,   533,     0,
+   718,   743,     0,   731,   721,   726,     0,   627,     0,   732,
+     0,     0,     0,     0,     0,   719,     0,     0,     0,     0,
+   747,   628,   561,     0,   749,     0,     0,     0,   632,     0,
+     0,   582,   584,   583,   585,   586,   587,   588,   589,     0,
+   579,     0,   507,   512,   538,     0,     0,     0,   718,   743,
+     0,   689,   677,   684,   682,   683,     0,     0,   690,     0,
+     0,     0,     0,     0,   674,     0,     0,   636,   638,   640,
+     0,     0,   612,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   703,   434,     0,   472,   476,   479,   500,   463,     0,   610,
-   612,   759,   426,   764,     0,    89,    90,    96,    88,     0,
-   407,     0,     0,    78,     0,    80,     0,   354,     0,    64,
-     0,     0,   155,     0,     0,     0,     0,     0,     0,     0,
-     0,   154,   788,   156,   146,     0,     0,     0,    98,     0,
-   203,   207,   209,     0,     0,     0,     0,     0,     0,   113,
-   103,   104,   107,   109,    64,     0,   233,   395,   392,   394,
-   326,     0,     0,   327,   372,   373,   370,   371,     0,   224,
-     0,     0,   221,   343,   269,   219,   220,   266,   268,   270,
-   267,   264,   263,     0,     0,     0,   351,   352,   350,   296,
-     0,   284,   421,   473,     0,     0,   542,   544,     0,   473,
-   707,     0,     0,     0,     0,     0,     0,     0,     0,   724,
-   712,   725,   717,   718,   720,   719,   722,   729,     0,   739,
-   706,   705,     0,   737,   624,   625,   626,   743,     0,     0,
-   586,   585,     0,     0,   507,     0,   503,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   682,   636,   683,   673,
-   674,   676,   675,   680,   686,     0,   746,     0,   747,   748,
-     0,     0,     0,     0,   642,     0,     0,   649,     0,     0,
-   647,     0,     0,   648,     0,     0,   643,     0,     0,   644,
-     0,     0,   646,     0,     0,   645,     0,   701,   487,     0,
-     0,     0,   478,   501,     0,   470,   758,   757,   762,     0,
-    85,     0,   405,    79,     0,     0,     0,     0,     0,    49,
-     0,   177,   178,   157,   167,   165,   166,     0,     0,     0,
-     0,     0,   180,   182,   179,     0,     0,     0,     0,     0,
-     0,     0,     0,   148,     0,     0,     0,   149,     0,     0,
-    97,     0,     0,     0,   139,   140,   142,   144,   119,   145,
-     0,     0,     0,     0,     0,     0,   111,     0,   118,   112,
-   114,   420,   106,    48,   240,     0,     0,   321,     0,     0,
-     0,   271,   222,   776,   304,     0,   473,     0,   499,   417,
-   603,   530,   499,   527,     0,   731,   732,     0,     0,     0,
-   736,   730,   741,     0,     0,     0,     0,   576,     0,   505,
-   507,     0,   690,   692,   695,   696,     0,     0,     0,   700,
-   687,   639,     0,   637,   750,     0,   751,   752,   658,   650,
-   665,   657,   663,   655,   664,   656,   659,   651,   660,   652,
-   662,   654,   661,   653,   703,   489,   485,   489,   487,   484,
-   489,   486,     0,   474,     0,   477,     0,     0,   430,     0,
-   408,    82,     0,   353,    61,    60,     0,     0,   170,   175,
-     0,   181,   185,   184,   174,   176,   173,   162,   163,   164,
-   158,   159,   161,   160,   168,   171,     0,   153,     0,   150,
-     0,     0,     0,   108,     0,     0,     0,   137,   120,   130,
-   128,   129,     0,   138,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   190,   239,     0,     0,   234,     0,   499,
-   369,   225,     0,   306,   307,   309,   314,     0,   777,   499,
-   298,   463,   463,     0,   733,   734,   735,   569,     0,   572,
-   573,     0,   506,     0,   697,   698,   699,   749,   641,     0,
-   702,   488,   481,   482,   480,   483,     0,   475,   462,   464,
-   468,   466,   469,   439,   445,    95,    81,     0,    63,     0,
-   183,   187,   186,     0,   172,     0,   200,   202,   110,     0,
-     0,     0,   133,   136,   125,   126,   127,   121,   122,   124,
-   123,   131,   134,     0,   117,     0,   193,   241,   242,   238,
-     0,     0,     0,     0,   322,     0,     0,     0,   317,     0,
-   463,   470,   470,   723,   570,   571,   681,   753,   492,     0,
-     0,   438,     0,     0,   428,    59,     0,   152,   420,     0,
-   141,   143,     0,   135,   188,   189,     0,   115,   192,     0,
-   320,   375,   368,   301,   308,   313,   312,     0,   778,   311,
-   315,     0,   470,   430,   430,     0,     0,     0,   465,   467,
-   429,   432,     0,   169,   190,     0,   116,     0,     0,   191,
-   245,   374,     0,   316,   314,   430,   418,   433,     0,     0,
-   471,   439,   444,   446,   456,   456,   193,   132,   197,     0,
-     0,   194,   195,   249,   246,   247,     0,   243,   248,   360,
-     0,   359,   361,   317,   445,     0,     0,   493,   497,   495,
-     0,     0,   454,   455,     0,   450,     0,   448,   151,   196,
-   198,   199,     0,   229,     0,   363,   364,   310,   427,   490,
-     0,   491,     0,   431,   447,   451,   452,   453,   456,   244,
-   362,   366,   367,   494,   496,   449,   365,     0,     0,     0
+     0,     0,     0,     0,     0,     0,     0,     0,   708,   439,
+     0,   477,   481,   484,   505,   468,     0,   615,   617,   764,
+   430,   769,     0,    90,    91,    97,    89,     0,   411,     0,
+     0,    79,     0,    81,     0,   355,     0,    64,     0,     0,
+   156,     0,     0,     0,     0,     0,     0,     0,     0,   155,
+   793,   157,   147,     0,     0,     0,    99,     0,   204,   208,
+   210,     0,     0,     0,     0,     0,     0,   114,   104,   105,
+   108,   110,    64,     0,   234,   396,   391,   395,   400,   327,
+     0,     0,   328,   373,   374,   371,   372,     0,   225,     0,
+     0,   222,   344,   270,   220,   221,   267,   269,   271,   268,
+   265,   264,     0,     0,     0,   352,   353,   351,   297,     0,
+   285,   425,   478,     0,     0,   547,   549,     0,   478,   712,
+     0,     0,     0,     0,     0,     0,     0,     0,   729,   717,
+   730,   722,   723,   725,   724,   727,   734,     0,   744,   711,
+   710,     0,   742,   629,   630,   631,   748,     0,     0,   591,
+   590,     0,     0,   512,     0,   508,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   687,   641,   688,   678,   679,
+   681,   680,   685,   691,     0,   751,     0,   752,   753,     0,
+     0,     0,     0,   647,     0,     0,   654,     0,     0,   652,
+     0,     0,   653,     0,     0,   648,     0,     0,   649,     0,
+     0,   651,     0,     0,   650,     0,   706,   492,     0,     0,
+     0,   483,   506,     0,   475,   763,   762,   767,     0,    86,
+     0,   409,    80,     0,     0,     0,     0,     0,    49,     0,
+   178,   179,   158,   168,   166,   167,     0,     0,     0,     0,
+     0,   181,   183,   180,     0,     0,     0,     0,     0,     0,
+     0,     0,   149,     0,     0,     0,   150,     0,     0,    98,
+     0,     0,     0,   140,   141,   143,   145,   120,   146,     0,
+     0,     0,     0,     0,     0,   112,     0,   119,   113,   115,
+   424,   107,    48,   241,     0,     0,   393,   322,     0,     0,
+     0,   272,   223,   781,   305,     0,   478,     0,   504,   421,
+   608,   535,   504,   532,     0,   736,   737,     0,     0,     0,
+   741,   735,   746,     0,     0,     0,     0,   581,     0,   510,
+   512,     0,   695,   697,   700,   701,     0,     0,     0,   705,
+   692,   644,     0,   642,   755,     0,   756,   757,   663,   655,
+   670,   662,   668,   660,   669,   661,   664,   656,   665,   657,
+   667,   659,   666,   658,   708,   494,   490,   494,   492,   489,
+   494,   491,     0,   479,     0,   482,     0,     0,   435,     0,
+   412,    83,     0,   354,    61,    60,     0,     0,   171,   176,
+     0,   182,   186,   185,   175,   177,   174,   163,   164,   165,
+   159,   160,   162,   161,   169,   172,     0,   154,     0,   151,
+     0,     0,     0,   109,     0,     0,     0,   138,   121,   131,
+   129,   130,     0,   139,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   191,   240,     0,     0,   235,     0,   504,
+   370,   226,     0,   307,   308,   310,   315,     0,   782,   504,
+   299,   468,   468,     0,   738,   739,   740,   574,     0,   577,
+   578,     0,   511,     0,   702,   703,   704,   754,   646,     0,
+   707,   493,   486,   487,   485,   488,     0,   480,   467,   469,
+   473,   471,   474,   444,   450,    96,    82,     0,    63,     0,
+   184,   188,   187,     0,   173,     0,   201,   203,   111,     0,
+     0,     0,   134,   137,   126,   127,   128,   122,   123,   125,
+   124,   132,   135,     0,   118,     0,   194,   242,   243,   239,
+     0,     0,     0,     0,   323,     0,     0,     0,   318,     0,
+   468,   475,   475,   728,   575,   576,   686,   758,   497,     0,
+     0,   443,     0,     0,   432,    59,     0,   153,   424,     0,
+   142,   144,     0,   136,   189,   190,     0,   116,   193,     0,
+   321,   376,   369,   302,   309,   314,   313,     0,   783,   312,
+   316,     0,   475,   435,   435,     0,     0,     0,   470,   472,
+   448,   434,   437,     0,   170,   191,     0,   117,     0,     0,
+   192,   246,   375,     0,   317,   315,   435,   422,   433,     0,
+     0,   476,     0,   444,   449,   451,   461,   461,   194,   133,
+   198,     0,     0,   195,   196,   250,   247,   248,     0,   244,
+   249,   361,     0,   360,   362,   318,   450,     0,     0,   498,
+   502,   500,   478,     0,     0,   459,   460,     0,   455,     0,
+   453,   152,   197,   199,   200,     0,   230,     0,   364,   365,
+   311,   431,   495,     0,   496,     0,   504,   436,   452,   456,
+   457,   458,   461,   245,   363,   367,   368,   499,   501,   468,
+   454,   366,   475,   438,     0,     0,     0
 };
 
-static const short yydefgoto[] = {  1538,
-    32,    33,    34,    35,    36,   348,   490,   720,  1255,   920,
-  1110,    37,   466,   463,    38,    39,    40,   486,    41,    42,
-   707,   908,   194,   478,  1101,    43,   496,   497,   498,   951,
-   952,   953,   954,  1384,  1157,   499,   500,  1277,   930,  1387,
-  1428,  1429,  1482,   941,  1141,    44,   350,   501,   502,    45,
-   361,   531,   975,   976,   977,    46,   142,    47,    48,   355,
-   510,   511,  1166,  1306,  1390,  1487,  1488,    49,    50,   236,
-   143,   534,   364,   535,   536,   978,    51,    52,   166,   261,
-   378,    53,   173,   174,   175,   762,   992,    54,    55,   144,
-   985,  1313,  1314,  1315,  1316,  1399,  1440,    56,    57,    58,
-   963,   359,   518,   740,   741,    59,   161,    60,   372,    61,
-    62,   979,   238,   543,    63,   917,   713,    64,   524,  1492,
-  1515,  1516,  1310,   969,  1463,    65,    66,    67,    68,    69,
-    70,   357,   959,    71,    72,    73,   196,   343,   709,   910,
-    74,    75,    76,   552,   382,   547,   548,    77,    78,    79,
-    80,    81,  1355,  1451,   561,   457,   203,  1413,   186,  1415,
-  1473,  1474,  1506,   346,   243,   244,  1096,  1349,  1350,  1249,
-   690,   894,   895,  1243,  1343,  1448,  1497,  1498,   368,   896,
-   432,   835,   308,   309,   310,   311,   312,   519,   397,   409,
-   392,   313,   314,   387,   556,   773,   315,   316,   413,   403,
-   589,   318,   427,   428,   832,  1034,   319,   643,   864,   638,
-   454,   598,   565,   566,   583,   584,   591,   813,  1024,   599,
-  1058,  1059,  1216,  1217,   320,   692,   471,   472,   321,   322,
-   126,   407,   219,  1175,   693,  1441,   191,   245,   324,   200,
-   258,   325,   326,   327,   328,   214,   521,   329,   621,   181
+static const short yydefgoto[] = {  1555,
+    32,    33,    34,    35,    36,   354,   495,   726,  1265,   928,
+  1119,    37,   471,   468,    38,    39,    40,   491,    41,    42,
+   713,   916,   197,   483,  1110,    43,   501,   502,   503,   959,
+   960,   961,   962,  1394,  1166,   504,   505,  1287,   938,  1397,
+  1438,  1439,  1494,   949,  1150,    44,   356,   506,   507,    45,
+   366,   537,   984,   985,   986,    46,   144,    47,    48,   361,
+   515,   516,  1175,  1316,  1400,  1499,  1500,    49,    50,   239,
+   145,   540,   369,   541,   542,   987,    51,    52,   168,   264,
+   383,    53,   175,   176,   177,   770,  1001,    54,    55,   146,
+   994,  1323,  1324,  1325,  1326,  1409,  1450,    56,    57,    58,
+   972,   364,   524,   748,   749,    59,   163,    60,   377,    61,
+    62,   988,   241,   549,    63,   925,   719,    64,   530,  1504,
+  1528,  1529,  1320,   978,  1474,    65,    66,    67,    86,    68,
+    69,    70,   518,   743,   967,   334,    71,    72,    73,   199,
+   349,   715,   918,    74,    75,    76,   558,   387,   553,   554,
+    77,    78,    79,    80,    81,   567,  1365,  1462,  1463,   462,
+   206,  1423,   188,  1425,  1485,  1486,  1519,   352,   246,   247,
+  1105,  1359,  1360,  1259,   696,   902,   903,  1253,  1353,  1458,
+  1509,  1510,   373,   904,   437,   843,   311,   312,   313,   314,
+   315,   525,   402,   414,   397,   316,   317,   392,   562,   781,
+   318,   319,   418,   408,   595,   321,   432,   433,   840,  1043,
+   322,   649,   872,   644,   459,   604,   571,   572,   589,   590,
+   597,   821,  1033,   605,  1067,  1068,  1226,  1227,   323,   698,
+   476,   477,   324,   325,   128,   412,   222,  1185,   699,  1451,
+   194,   248,   327,   203,   261,   328,   329,   330,   331,   217,
+   527,   332,   627,   183
 };
 
-static const short yypact[] = { 12282,
-   259,     4, 11611,   -37,  1908, 11611,   106,  1919,    72,   -63,
-   217,    88,   144, 10946,    88,    52,   188, 11744, 10946,   122,
- 11611,   148,   121,   227, 10946,   198,   283,   217, 11877, 12010,
-   121, 12282,   210,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+static const short yypact[] = { 12019,
+   269,    22, 11470,    22,  2959, 11470,     7,  1689,    22,   -75,
+   138,   384,    91, 10708,   384,    22,   101, 10962, 10708,    22,
+ 11470,    46,    28,    41, 10708,    98,   246,   138, 11597, 11724,
+    28, 12019,   113,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768, 10946,   206,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768, 10708,   194,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 10946,-32768,
-   206, 11611, 11611,-32768,-32768, 11611, 11611,-32768, 11611, 10946,
--32768,   264,  9394,   297,   148,-32768, 10946, 11611,   206,-32768,
- 11611,-32768, 11611, 11611, 11611,-32768,  1418,   388,-32768, 11611,
- 11611,-32768,   274,-32768,-32768,    48,   409,-32768,-32768,-32768,
--32768,-32768,   391,   272,-32768, 10946,-32768,-32768,-32768,-32768,
--32768,   419,-32768,-32768,   422,  4826,   389,   -29,   416,-32768,
-   437,-32768,-32768, 10946,-32768,   516, 11611,-32768,-32768,-32768,
--32768,-32768, 10946,    48,   404,-32768,   408,-32768,   390,   330,
--32768,   337,-32768,   423,   373,   423,   559,   241,   473,-32768,
-   383,-32768,   588,-32768,   546,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,   403,-32768,-32768, 11611,
-   610,   539,-32768,   445,-32768,-32768,   585,  9684,-32768,   383,
--32768,   450,-32768,   198,-32768,-32768,-32768,-32768,-32768,-32768,
-   619,-32768,-32768, 11611,   300,   463, 11611, 11611,   466,   572,
-   572,-32768,   476,   477,-32768,   478,   617,   490,   491,   493,
-   547,   696,   572,  7315,-32768,   499,   504,   505,    69,   605,
-   510,-32768,-32768,-32768,-32768,   107,  2321,   133,  7315,-32768,
--32768,  7315,-32768,  7315,  7315,  7315,  6751,   198,   517,-32768,
--32768,-32768,-32768,   513,-32768,   136,   722,-32768,  2679,   525,
-     3,-32768,   527,   528,-32768,   531,-32768,-32768,   -96,    59,
-    41,    41,  9545, 10946,   626,-32768,   539,-32768,   619,-32768,
--32768,-32768, 10946,-32768,-32768,    55,   567,   -68, 10813,   744,
-   -68,   665,-32768,-32768,    70,   604,-32768,  4079,   593,-32768,
-   501,   198,  9243,-32768,   684,   732,  7315,-32768, 11611, 10946,
--32768,-32768,-32768,-32768, 11212,-32768, 11611,-32768,   676,-32768,
- 11611,   112,   720,-32768,  7315,-32768,-32768,   764,   589,   589,
-   589,-32768,-32768,   688,   662,   589,-32768,   686,   690,   691,
-   692,-32768,-32768,   572,-32768,  2983,   583,   589,-32768,  8235,
-  6751,   703,-32768,  4250,   617,-32768,-32768,-32768,-32768,-32768,
-  1298,   592,   592,   592,   592,   591,   594,   595,  1740,-32768,
-    78,-32768,   589, 10527,  7315,  7499,-32768,    83,  7315,   232,
-  7315,-32768,-32768,  6947,  5023,  5219,  5415,  5611,  5807,  6003,
-  6199,  3175,  7315,-32768,   283,  4826,   756,  9823,  3313, 11611,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   525,
-    -8,-32768,   599,   531,   265,-32768,   652,    16,-32768,-32768,
-   607,    25,   802,   802,   802,-32768,   206,-32768,-32768,   306,
-   609, 11611,   765,   768,   611,    97,-32768,-32768,-32768,-32768,
-   164,-32768,  3175,   688,   306,-32768,-32768,-32768,-32768,   752,
-   754,   635,-32768,   750,-32768,-32768,-32768,   184,-32768,-32768,
--32768,-32768,   666,   759,   167,-32768,   167,   167,   167,   167,
--32768,   695,   644,   645,   204,-32768, 10946,   749,  2679,-32768,
--32768,   638,   639,   646,-32768, 11079,   266,-32768,   525,   188,
-   653,-32768, 11079,  2122,   773,   839,   655,   657,   308,   188,
-   660,-32768,-32768,-32768,   668,   836,   670,   183,   212,   792,
-   818,-32768, 11611,   320,   675,   678,   682,   685,  8235,  8235,
-  8235,  8235,   683,   260,   525,   687,-32768,   -96,-32768,   -10,
-   689,   780,  6383,  6751,  6383,  6383,  2406,   -31,   693,-32768,
-   663,  7315,   697,   699,   698,-32768,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,  2983,   700,-32768,   702,   711,-32768,   712,   713,   715,
--32768,  7499,  7499,  7499,  7499,  7499,  7315,    82,   525,   716,
--32768,   -96,   719,   179,-32768,-32768,-32768,  1168,  7499,-32768,
-  7315,  2695,   721,   723,  6567,  1298,   725,   728,  6567,   679,
-   731,   737,  6567,  2040,   741,   742,  6567,  2040,   745,   755,
-  6567,   201,   758,   760,  6567,   201,   766,   767,  6567,   592,
-   770,   771,  6567,   592,-32768,  2065, 10946,-32768,  8959,   539,
--32768,   694,-32768,-32768,   743,-32768,   -55,   694,-32768, 10240,
-   539,  9962,   708,-32768,-32768,-32768,   230, 11611,-32768,-32768,
- 10813,-32768, 11611, 11611, 11611, 11611,-32768,-32768,-32768,   856,
-  8603,    61,   775,   777, 11611, 10813,   789, 11611,-32768,   398,
--32768,   856, 10946,    70,    66,-32768, 10673,-32768,-32768,   776,
- 10673,   257,   589,-32768,-32768,-32768,-32768,-32768,-32768,  9394,
-  9092,  9092,  9243,-32768,   800,   188, 11611,-32768, 11345, 11611,
--32768,   795,-32768, 11611,-32768,-32768,  4826,  4826,-32768,  3175,
- 11611, 11611,-32768,-32768,-32768,   589,-32768,  4826,-32768,-32768,
-  7315,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   589,
--32768,  8235,  8235,  6751,  4446,   467,   757,   757,   762,-32768,
-  8235,  8419,  8235,  8235,  8235,  8235,  3175,-32768,  3508,  6751,
-  7315,  6751,   914,-32768,-32768,   751,   -31,   779,   781,  6751,
--32768,   778,   916,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,    30,  1912,    80,-32768,   697,-32768,  7499,   589,   589,
-  8235,  6751,  4642,   573,   786,   786,   786,   786,  1378,  7499,
-  7683,  7499,  7499,  7499,  7499,  3175,-32768,  3703, 12156,-32768,
--32768,-32768,   190,   784,  1168,   688,   688,   785,   688,   688,
-   794,   688,   688,   796,   688,   688,   809,   688,   688,   810,
-   688,   688,   812,   688,   688,   813,   688,   688,   814,  7315,
-   525,-32768, 10946,   769,   977, 11478,   805,   964, 10101,-32768,
--32768,-32768,-32768,-32768,  6751,-32768,-32768,   920,-32768,   332,
--32768,   345,  3175,-32768,    49,-32768,   929,-32768,   992,   846,
-   830,  8603,-32768,  8603,  8603,  8603,  8603,  8603,  8603,   838,
-   832,-32768,-32768,   833,-32768, 11611, 11611,   352,-32768,   837,
-   870,-32768,-32768,   840, 11611,  7867,   974,   994, 11611,-32768,
--32768,   398,-32768,-32768,   846,  1011,   978,-32768,-32768,-32768,
--32768,   403,  1052,-32768,-32768,-32768,-32768,-32768,   958,-32768,
-   922, 11611,-32768,   261,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,   874,   860,  4826,-32768,-32768,-32768,-32768,
-  1025,-32768,-32768,     6,   358,   861,-32768,-32768,   866,     6,
-  2679,   871,    45,   880,   881,  6383,  6383,  6383,   883,-32768,
-   803,   467,   211,   211,   757,   757,-32768,-32768,   -51,   -31,
-  2679,-32768,  6751,-32768,-32768,-32768,-32768,   -31,   688,   869,
--32768,-32768,  7131,   886,   697,   884,-32768,   246,   888,   889,
-   896,   897,  6383,  6383,  6383,   898,-32768,   890,   573,   292,
-   292,   786,   786,-32768,-32768,   -25,-32768,   900,   892,-32768,
-  7499, 12156,   904,   913,-32768,   921,   923,-32768,   924,   927,
--32768,   928,   930,-32768,   937,   939,-32768,   940,   941,-32768,
-   951,   952,-32768,   953,   954,-32768,  2623,-32768,   879, 10946,
-  1069, 10527,-32768,-32768,  1119,  1118,-32768,-32768,-32768,  1036,
--32768, 11611,-32768,-32768,  1140,  1143, 11611,   206,   990,-32768,
-  8603,  1272,  1371,   979,   979,   979,   979,  1152,  8603,   220,
-  8603,  8603,-32768,-32768,  8787,  8603,  8603,  8603,  8603,  8603,
-  8603,  8603,  3175,-32768,  2908,   368,   381,-32768, 11611,   996,
--32768,  8603,   552,   986,-32768,   987,   989,-32768,-32768,-32768,
-  7867,  7867,  7867,  7867,  7867,  7867,  1073,   991,-32768,-32768,
--32768,   463,-32768,-32768,  1058,  1163,    70,-32768,   198, 10946,
-   198,-32768,-32768,-32768,-32768, 11611,     6,  1129,   539,-32768,
--32768,-32768,   539,-32768,  3175,-32768,-32768,  1000,  1001,  1003,
--32768,-32768,   -31,  1006,   688,  1008,  1009,  2679,   688,-32768,
-   697,  3175,-32768,-32768,-32768,-32768,  1010,  1013,  1014,-32768,
--32768,-32768, 12189,   890,-32768,  1015,  1018,-32768,-32768,-32768,
+ 10708,-32768,   194, 11470, 11470,-32768,-32768, 11470, 11470,-32768,
+ 11470, 10708,-32768,   195,  9223,   245,    46,-32768, 10708, 11470,
+   194,-32768, 11470,-32768, 11470, 11470, 11470,-32768,  1080,   338,
+-32768, 11470, 11470,-32768,   216,-32768,-32768,    26,   341,-32768,
+-32768,-32768,-32768,-32768,   351,   223,-32768, 10708,-32768,-32768,
+-32768,-32768,-32768,   354,-32768,-32768,   362,  4719,    18,   347,
+   -38,   374,-32768,   400,-32768,-32768, 10708,-32768,   764, 11470,
+-32768,-32768,-32768,-32768,-32768, 10708,    26,   376,-32768,   403,
+-32768,   364,   332,-32768,   339,-32768,   424,   331,   424,   552,
+    72,   453,-32768,   369,-32768,   572,-32768,   526,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   383,
+-32768,-32768, 11470,   575,   495,-32768,   412,-32768,-32768,   550,
+  9516,-32768,   369,-32768,   447,-32768,    98,-32768,-32768,-32768,
+-32768,-32768,-32768,   611,-32768,-32768, 11470,   386,   471, 11470,
+ 11470,   472,   554,   554,-32768,   481,   482,-32768,   489,   607,
+   490,   493,   496,   279,   705,   554,  7124,-32768,   509,   515,
+   516,    67,   617,   524,-32768,-32768,-32768,-32768,    71,  1585,
+    81,  7124,-32768,-32768,  7124,-32768,  7124,  7124,  7124,  6569,
+    98,   540,-32768,-32768,-32768,-32768,   537,-32768,   129,   751,
+-32768,  8831,   553,    -2,-32768,   551,   558,-32768,   560,-32768,
+-32768,    62,-32768,-32768,-32768,    33,    51,    51,  9376, 10708,
+   659,-32768,   495,-32768,   611,-32768,-32768,-32768, 10708,-32768,
+-32768,    47,   593,   -67, 10581,   791,   -67,   706,-32768,-32768,
+    66,   646,  3958,   634,-32768,   507,    98,  9070,-32768,   731,
+   765,  7124,-32768, 11470, 10708,-32768,-32768,-32768,-32768, 11089,
+-32768, 11470,-32768,   713,-32768, 11470,   106,   776,-32768,  7124,
+-32768,-32768,   816,   638,   638,   638,-32768,-32768,   739,   630,
+   638,-32768,   732,   746,   747,   757,-32768,-32768,   554,-32768,
+  1465,   633,   638,-32768,  7989,  6569,   745,-32768,  4138,   607,
+-32768,-32768,-32768,-32768,-32768,   406,   649,   649,   649,   649,
+   647,   652,   656,  2146,-32768,   203,-32768,   638, 10313,  7124,
+  7297,-32768,   266,  7124,    60,  7124,-32768,-32768,  6754,  4904,
+  5089,  5274,  5459,  5644,  5829,  6014,  2766,  7124,-32768,   246,
+  4719,   823,  9643,  3218, 11470,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,   553,    -9,-32768,   665,   560,   317,
+-32768,   721,    27,-32768,-32768,   670,    37,   866,   866,   866,
+-32768,   194,-32768,-32768,   123,   672, 11470,   827,   829,   677,
+   157,-32768,-32768,-32768,-32768,   204,-32768,  2766,   739,   123,
+-32768,-32768,-32768,-32768,   814,   817,   696,   714,-32768,   818,
+-32768,-32768,-32768,   298,-32768,-32768,-32768,-32768,   727,   824,
+    68,-32768,    68,    68,    68,    68,-32768,   760,   707,   708,
+   302,-32768, 10708,   813,  8831,-32768,-32768,   697,   702,   709,
+-32768, 10835,   306,-32768,   553,   101,   711,-32768, 10835,  2984,
+   825,   901,   717,   722,   404,   101,   725,-32768,-32768,-32768,
+   734,   873,   737,   308,    32,   842,   878,-32768, 11470,   428,
+   740,   744,   748,   753,  7989,  7989,  7989,  7989,   761,   222,
+   553,   754,-32768,    62,-32768,    -4,   763,   839,  6199,  6569,
+  6199,  6199,  8763,   -54,   766,-32768,   391,  7124,   750,   768,
+   767,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1465,   758,-32768,
+   770,   771,-32768,   772,   778,   780,-32768,  7297,  7297,  7297,
+  7297,  7297,  7124,    54,   553,   782,-32768,    62,   783,   166,
+-32768,-32768,-32768,   854,  7297,-32768,  7124,  1392,   784,   786,
+  6384,   406,   788,   790,  6384,  1891,   799,   800,  6384,   587,
+   802,   803,  6384,   587,   804,   805,  6384,   326,   807,   811,
+  6384,   326,   815,   830,  6384,   649,   840,   845,  6384,   649,
+-32768,  2556, 10708,-32768,  8657,   495,-32768,   752,-32768,-32768,
+   812,-32768,   -49,   752,-32768, 10024,   495,  9770,   779,-32768,
+-32768,-32768,   312, 11470,-32768,-32768, 10581,-32768, 11470, 11470,
+ 11470, 11470,-32768,-32768,-32768,   969,  8335,    88,   846,   847,
+ 11470, 10581,   881, 11470,-32768,   461,-32768,   969, 10708,    66,
+    56,   834,-32768,-32768, 10440,-32768,-32768,   924, 10440,   388,
+   638,-32768,-32768,-32768,-32768,-32768,-32768,  9223,  8917,  8917,
+  9070,-32768,   942,   101, 11470,-32768, 11216, 11470,-32768,   945,
+-32768, 11470,-32768,-32768,  4719,  4719,-32768,  2766, 11470, 11470,
+-32768,-32768,-32768,   638,-32768,  4719,-32768,-32768,  7124,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,   638,-32768,  7989,
+  7989,  6569,  4336,   297,   851,   851,   741,-32768,  7989,  8162,
+  7989,  7989,  7989,  7989,  2766,-32768,  3415,  6569,  7124,  6569,
+  1020,-32768,-32768,   853,   -54,   856,   858,  6569,-32768,   855,
+  1021,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    39,
+  2398,   219,-32768,   750,-32768,  7297,   638,   638,  7989,  6569,
+  4534,   787,   870,   870,   870,   870,  1261,  7297,  7470,  7297,
+  7297,  7297,  7297,  2766,-32768,  3612, 11851,-32768,-32768,-32768,
+    92,   871,   854,   739,   739,   869,   739,   739,   876,   739,
+   739,   882,   739,   739,   889,   739,   739,   891,   739,   739,
+   893,   739,   739,   894,   739,   739,   897,  7124,   553,-32768,
+ 10708,   883,  1063, 11343,   910,  1069,  9897,-32768,-32768,-32768,
+-32768,-32768,  6569,-32768,-32768,  1009,-32768,   431,-32768,   435,
+  2766,-32768,    21,-32768,  1018,-32768,  1073,   938,   922,  8335,
+-32768,  8335,  8335,  8335,  8335,  8335,  8335,  1781,   923,-32768,
+-32768,   925,-32768, 11470, 11470,   478,-32768,   926,   958,-32768,
+-32768,   929, 11470,  7643,  1068,  1086, 11470,-32768,-32768,   461,
+-32768,-32768,   938,  1102,  1070,-32768,-32768,-32768,    18,-32768,
+   383,  1142,-32768,-32768,-32768,-32768,-32768,  1046,-32768,  1002,
+ 11470,-32768,   392,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,   962,   947,  4719,-32768,-32768,-32768,-32768,  1114,
+-32768,-32768,     2,   486,   949,-32768,-32768,   950,     2,  8831,
+   951,   104,   953,   954,  6199,  6199,  6199,   955,-32768,   899,
+   297,   340,   340,   851,   851,-32768,-32768,   -48,   -54,  8831,
+-32768,  6569,-32768,-32768,-32768,-32768,   -54,   739,   959,-32768,
+-32768,  6939,   965,   750,   961,-32768,   191,   966,   968,   970,
+   973,  6199,  6199,  6199,   975,-32768,   914,   787,   345,   345,
+   870,   870,-32768,-32768,   -44,-32768,   976,   971,-32768,  7297,
+ 11851,   977,   978,-32768,   980,   981,-32768,   982,   984,-32768,
+   986,   987,-32768,   990,   991,-32768,   994,   998,-32768,  1000,
+  1001,-32768,  1005,  1006,-32768,  8675,-32768,   664, 10708,  1130,
+ 10313,-32768,-32768,  1206,  1172,-32768,-32768,-32768,  1091,-32768,
+ 11470,-32768,-32768,  1196,  1197, 11470,   194,  1043,-32768,  8335,
+  1567,   762,  1023,  1023,  1023,  1023,  1860,  8335,   287,  8335,
+  8335,-32768,-32768,  8508,  8335,  8335,  8335,  8335,  8335,  8335,
+  8335,  2766,-32768,  2826,   504,   529,-32768, 11470,  1038,-32768,
+  8335,   598,  1024,-32768,  1025,  1026,-32768,-32768,-32768,  7643,
+  7643,  7643,  7643,  7643,  7643,  1060,  1028,-32768,-32768,-32768,
+   471,-32768,-32768,  1098,  1203,    66,-32768,-32768,    98, 10708,
+    98,-32768,-32768,-32768,-32768, 11470,     2,  1165,   495,-32768,
+-32768,-32768,   495,-32768,  2766,-32768,-32768,  1030,  1031,  1033,
+-32768,-32768,   -54,  1035,   739,  1039,  1040,  8831,   739,-32768,
+   750,  2766,-32768,-32768,-32768,-32768,  1041,  1053,  1056,-32768,
+-32768,-32768, 11911,   914,-32768,  1059,  1074,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,   525,  1127,-32768,  1127,   879,-32768,
-  1127,-32768,  1174,-32768, 10946,-32768, 10379,  7315,  1130,   198,
--32768,-32768,  7867,-32768,  1023,-32768,  1047,   983,-32768,  1272,
-   213,-32768,-32768,-32768,   746,   421,  1371,  1272,  1579,  1579,
-   377,   377,   979,   979,-32768,-32768,   394,  1672,  1149,-32768,
-  1026,  1084,  1448,-32768,  7867,   589,   589,   907,  1033,  1033,
-  1033,  1033,   961,  8051,  7867,  7867,  7867,  7867,  7867,  7867,
-  7867,  3175,  3898,  1178,-32768,    54,  1158,-32768,  1185,   539,
-  1041,-32768,  1035,  1038,-32768,-32768,   -24,  1040,   833,   539,
--32768,   964,   964,  1037,-32768,-32768,-32768,-32768,  1042,-32768,
--32768,  1043,-32768,  1044,-32768,-32768,-32768,-32768,-32768, 12189,
--32768,-32768,-32768,-32768,-32768,-32768, 10946,-32768,  1048,-32768,
--32768,  1055,  2679,  1257,  1183,-32768,  1073,   206,-32768,  3175,
--32768,-32768,-32768,  8603,-32768, 11611,-32768,-32768,-32768,   451,
-  1051,  1062,-32768,   907,  1073,   868,   868,   382,   382,  1033,
-  1033,-32768,-32768,   399,  1073,   221,  1189,-32768,-32768,-32768,
- 11611,   198,  1141, 11611,   776, 11611,  3175,  3175,   -38, 11611,
-   964,  1118,  1118,-32768,-32768,-32768,-32768,-32768,    28, 10379,
- 11611,-32768,   688,  1266,-32768,-32768,  1067,  1672,   463,  3175,
--32768,-32768,  7867,-32768,-32768,-32768,    44,-32768,  1189,  1071,
--32768,  1135,-32768,-32768,-32768,-32768,-32768,  1096,-32768,-32768,
--32768,   424,  1118,  1130,  1130,  1074,  1086,  1072,-32768,-32768,
--32768,-32768, 10379,-32768,  1178,  1087,  1073,   100,   100,-32768,
-   481,-32768,   145,-32768,   -24,  1130,-32768,-32768,  7315, 10379,
--32768,  1257,  1090,-32768,    74,    26,  1189,-32768,-32768,  1303,
-    65,-32768,-32768,-32768,-32768,-32768,   468,-32768,-32768,-32768,
-   516,-32768,-32768,   -38,  1183,  1652,   472,-32768,-32768,  1098,
-   688, 10379,-32768,-32768,   291,-32768, 11611,-32768,-32768,-32768,
--32768,-32768,   481,-32768,  1099,   516,  1102,-32768,-32768,-32768,
- 10379,-32768, 11611,-32768,-32768,-32768,-32768,-32768,    74,-32768,
--32768,  1105,-32768,-32768,-32768,-32768,-32768,  1314,  1316,-32768
+-32768,-32768,-32768,-32768,   553,  1194,-32768,  1194,   664,-32768,
+  1194,-32768,  1226,-32768, 10708,-32768, 10164,  7124,  1179,    98,
+-32768,-32768,  7643,-32768,  1077,-32768,  1099,   808,-32768,  1567,
+   192,-32768,-32768,-32768,   373,    29,   762,  1567,   877,   877,
+   409,   409,  1023,  1023,-32768,-32768,   532,  2167,  1202,-32768,
+  1078,  1135,  2072,-32768,  7643,   638,   638,   974,  1083,  1083,
+  1083,  1083,   678,  7816,  7643,  7643,  7643,  7643,  7643,  7643,
+  7643,  2766,  3785,  1230,-32768,    24,  1209,-32768,  1247,   495,
+  1100,-32768,  1095,  1103,-32768,-32768,     1,  1097,   925,   495,
+-32768,  1069,  1069,  1106,-32768,-32768,-32768,-32768,  1107,-32768,
+-32768,  1108,-32768,  1111,-32768,-32768,-32768,-32768,-32768, 11911,
+-32768,-32768,-32768,-32768,-32768,-32768, 10708,-32768,  1104,-32768,
+-32768,  1109,  8831,  1311,  1234,-32768,  1060,   194,-32768,  2766,
+-32768,-32768,-32768,  8335,-32768, 11470,-32768,-32768,-32768,   152,
+  1113,  1115,-32768,   974,  1060,   454,   454,   426,   426,  1083,
+  1083,-32768,-32768,   555,  1060,    93,  1251,-32768,-32768,-32768,
+ 11470,    98,  1193, 11470,   924, 11470,  2766,  2766,   -36, 11470,
+  1069,  1172,  1172,-32768,-32768,-32768,-32768,-32768,   168, 10164,
+ 11470,-32768,  1238,  1326,-32768,-32768,  1123,  2167,   471,  2766,
+-32768,-32768,  7643,-32768,-32768,-32768,    80,-32768,  1251,  1128,
+-32768,  1195,-32768,-32768,-32768,-32768,-32768,  1153,-32768,-32768,
+-32768,   600,  1172,  1179,  1179,  1131,  1132,  1133,-32768,-32768,
+   101,  1240,-32768, 10164,-32768,  1230,  1134,  1060,    89,    89,
+-32768,   264,-32768,    13,-32768,     1,  1179,-32768,-32768,  7124,
+ 10164,-32768,  4719,  1311,  1137,-32768,    57,    35,  1251,-32768,
+-32768,  1352,    40,-32768,-32768,-32768,-32768,-32768,   609,-32768,
+-32768,-32768,   764,-32768,-32768,   -36,  1234,  1372,   615,-32768,
+-32768,  1145,     2,  1238, 10164,-32768,-32768,   372,-32768, 11470,
+-32768,-32768,-32768,-32768,-32768,   264,-32768,  1144,   764,  1149,
+-32768,-32768,-32768, 10164,-32768, 11470,   495,-32768,-32768,-32768,
+-32768,-32768,    57,-32768,-32768,  1150,-32768,-32768,-32768,  1069,
+-32768,-32768,  1172,-32768,  1361,  1362,-32768
 };
 
 static const short yypgoto[] = {-32768,
--32768,  1285,-32768,-32768,-32768,  1104,   970,   821,-32768,   598,
-   372,-32768,  1002,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,  1187,-32768,-32768,-32768,   624,   612,   623,-32768,
--32768,   385,   197,-32768, -1084,-32768,  -459,-32768,  -107,  -114,
-  -134,   -84,  -112,-32768,-32768,-32768,-32768,-32768,   620,-32768,
--32768,-32768,-32768,-32768,   173,-32768,-32768,-32768,-32768,-32768,
--32768,  -720,-32768,-32768,-32768,-32768,  -164,-32768,-32768,-32768,
--32768,  -138,   402,-32768,   597,   608,-32768,-32768,  1338,  1164,
-  1028,-32768,  1359,-32768,  1111,   824,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,   -18,   -86,  -111,-32768,-32768,-32768,
-   -15,  1132,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,  1227,  -151,-32768,-32768,-32768,   -46,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,  1355,-32768,-32768,-32768,
--32768,  -192,-32768,-32768, -1142,  -704,   625,-32768,-32768,-32768,
--32768,  1046, -1103,-32768,  -366,-32768,   932,   -80,  -521,   -99,
--32768,  -103, -1398,-32768,  -158,     0, -1206,-32768,    -9, -1311,
-  -461,-32768, -1017,   163,  -861,-32768,-32768,  -118,  -325,  -886,
--32768,  -811,  -443,  1108,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,  -341,  -226,-32768,-32768,-32768,  1061,-32768,-32768,
-  -131,-32768,   376,-32768,-32768,-32768,  1243,-32768,-32768,  -584,
-  -462,  -374,-32768,-32768,  -699,  -482,  -689,-32768,-32768,  -565,
--32768,-32768,-32768,-32768,  -247,   946,-32768,   714,  -735,   955,
--32768,  1293,  1259,-32768,  -865,   -23,   -75,    35,  1368,-32768,
--32768,  2010,  1424,    36,    20,  -130,  -388,    -3,   324,-32768
+-32768,  1331,-32768,-32768,-32768,  1146,  1012,   860,-32768,   636,
+   413,-32768,  1037,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,  1231,-32768,-32768,-32768,   660,   648,   662,-32768,
+-32768,   422,   231,-32768,  -978,-32768,  -453,-32768,  -458,   -81,
+  -102,   -51,   -80,-32768,-32768,-32768,-32768,-32768,   655,-32768,
+-32768,-32768,-32768,-32768,   251,-32768,-32768,-32768,-32768,-32768,
+-32768,  -731,-32768,-32768,-32768,-32768,  -135,-32768,-32768,-32768,
+-32768,  -139,   421,-32768,   632,   635,-32768,-32768,  1366,  1189,
+  1052,-32768,  1385,-32768,  1138,   843,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,    -1,   -68,   -97,-32768,-32768,-32768,
+     5,  1161,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,  1256,  -151,-32768,-32768,-32768,   137,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   501,-32768,
+-32768,-32768,-32768,-32768,-32768,   450,-32768,-32768,-32768,  1389,
+-32768,-32768,-32768,-32768,  -194,-32768,-32768, -1143,  -702,   644,
+-32768,-32768,-32768,-32768,  1064,   159, -1086,-32768,   -91,-32768,
+   964,   -58,  -542,   -78,-32768,   -79, -1354,-32768,  -158,    31,
+ -1293,-32768,    14, -1298,  -475,-32768, -1035,   188,  -844,-32768,
+-32768,   -96,  -322,  -888,-32768,  -825,  -434,  1143,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,  -346,  -211,-32768,-32768,
+-32768,  1072,-32768,-32768,  -146,-32768,   402,-32768,-32768,-32768,
+  1446,-32768,-32768,  -557,  -450,  -409,-32768,-32768,  -704,  -247,
+  -694,-32768,-32768,  -564,-32768,-32768,-32768,-32768,  1577,   985,
+-32768,   736,  -743,   999,-32768,    75,  1289,-32768,  -895,     3,
+   -77,    74,  1381,-32768,-32768,  1918,   564,    70,   -16,  -131,
+  -365,    -3,   370,-32768
 };
 
 
-#define        YYLAST          12463
-
-
-static const short yytable[] = {   127,
-   216,   255,   146,   336,   237,   253,  1089,   699,   685,   701,
-   180,   479,   703,   957,   188,   180,   520,   192,   246,  1304,
-   938,   180,   712,  1397,  1037,   206,   208,   816,   767,   818,
-   819,   994,   995,  1098,  1031,  1503,   590,  1032,   778,   810,
-   145,   689,  1000,   491,   388,   201,   710,   844,   845,   846,
-   847,   848,   259,  1185,   317,   689,   405,   811,   482,   730,
-   483,   811,   455,  1504,   863,   705,  1288,  1289,  1290,  1291,
-  1292,  1293,  1244,   493,  1438,   331,   465,  1508,   180,   491,
-  1458,   811,   128,  1503,   697,   470,   766,   811,   850,  1105,
-  1444,  1445,   167,  1004,   461,   484,   796,   797,   798,   799,
-  1511,   958,   811,   163,  1005,   379,   507,  1446,   383,   493,
-    84,  1504,   494,  -774,  1479,  1402,  1403,   488,   489,  -781,
-   706,   337,   808,    85,   168,   180,   462,   508,   146,   146,
-  1536,  1466,   220,   222,   495,   146,   180,   731,  1505,   239,
-  1447,  1041,  1512,   180,   146,   169,  1106,   146,   494,   146,
-   220,   222,  1042,  1439,  1459,   147,   146,   146,   644,   812,
-   645,   901,   585,   812,   365,  1192,   217,   218,  1357,   332,
-   495,   183,   180,   223,  1480,   426,   857,   572,   162,     6,
-   509,     7,  1398,   812,   170,   247,  1505,   248,   639,   812,
-   180,  1211,   184,   192,  1443,   256,  1061,  1481,   171,   180,
-  1370,   262,    13,   176,   812,   646,   700,   647,   550,  1374,
-  1375,  1376,  1377,  1378,  1379,  1380,  1381,   456,  1385,   817,
-   456,    14,   485,  1200,  1388,   551,   185,  1348,   190,  1009,
-  1389,  1136,  1137,   199,   986,  1507,   192,   783,   802,   262,
-   711,    17,   260,   649,   146,  1033,   803,   804,   805,   806,
-  1177,   199,   784,  1038,  1202,    19,   860,   807,   199,   172,
-   146,  -548,   935,   146,   384,  1048,  1049,  1050,  1051,  1052,
-  1053,  1425,   260,   376,   260,   851,  1455,  1046,   785,  -548,
-   193,   786,   373,   852,   853,   854,   855,   650,   868,   603,
-  1361,  1035,   871,   965,   856,  1261,   874,  1262,   651,  -516,
-   877,   861,   195,   862,   880,  1426,  1490,   787,   883,  1003,
-  1317,   726,   886,   727,   966,   801,   889,  -516,  1011,  1012,
-  1013,  1014,  1015,  1016,   317,  -515,   996,   430,  -546,   475,
-   180,   585,   585,   585,   585,  1362,   168,  1363,  1457,   180,
-  1467,  1468,  1263,  -515,  1264,   503,  -546,   164,   961,   464,
-   467,   467,   964,   967,   522,  1491,   717,   169,    82,   239,
-   165,   260,  1495,  1017,   898,   146,   180,   968,   353,   743,
-    83,   146,   354,   146,   197,   903,  1344,   549,   728,  1346,
-   729,   532,   202,   851,   639,   639,   639,   639,   639,  1333,
-   199,   852,   853,   854,   855,   520,   170,   213,   737,   520,
-   738,   639,   856,   540,   450,   451,   588,   906,   907,   544,
-   171,   545,  1054,   452,   805,   806,   944,   211,   753,   590,
-   754,   945,   199,   807,   557,   558,   559,  1119,  1088,   225,
-   620,   567,   642,   946,  1019,  1020,   714,   715,   716,   851,
-  1188,  1189,  1190,   574,   240,  1028,  1308,   852,   853,   854,
-   855,   254,   470,   802,   694,   260,   694,  1173,   856,  1420,
-  1409,   803,   804,   805,   806,   257,   604,   590,   605,   730,
-   264,   172,   807,   947,  -774,   453,  1214,  1207,  1208,  1209,
-   764,  1120,   765,  1056,  1526,   948,   265,  1121,   146,   949,
-  1527,  1528,  1057,   718,   719,   854,   855,   263,   267,  1063,
-  1064,   268,  1066,  1067,   856,  1069,  1070,   950,  1072,  1073,
-   330,  1075,  1076,   333,  1078,  1079,   334,  1081,  1082,   342,
-  1084,  1085,   776,   426,   777,   340,   722,   426,  1433,   341,
-  1317,   426,  1179,   180,   790,   426,   791,   344,  1183,   426,
-   345,   347,   763,   426,   585,   585,  1102,   426,  1103,   763,
-     6,   426,     7,   585,   585,   585,   585,   585,   585,   726,
-   745,  1104,   745,   745,   745,   745,   764,   352,  1138,   694,
-   944,  1123,   456,    13,  1180,   588,   588,   588,   588,   398,
-  1131,  1132,   764,  1124,  1279,  1300,  1301,   946,   349,  1133,
-   639,   356,    14,   585,  1302,   764,   360,  1280,   358,   253,
-   253,   399,   639,   639,   639,   639,   639,   639,  1364,   362,
-  1365,   971,    17,  1423,  1125,  1424,   400,    94,   363,  1126,
-  1127,  1128,  1129,  1130,  1131,  1132,    19,   947,   642,   642,
-   642,   642,   642,  1133,   525,   317,   317,   526,   369,   948,
-  1465,   366,    97,   949,  1294,   642,   317,   527,  1193,  1295,
-  1296,  1297,  1298,  1299,  1300,  1301,   367,   528,   529,   369,
--32768,   950,  1194,  1302,   370,   375,  1196,   401,   803,   804,
-   805,   806,  1484,   199,   377,  1485,   530,  1486,   381,   807,
-  1022,   385,  1513,   180,  1514,   180,  1521,   386,  1522,  1275,
-   436,   389,   390,   391,    87,  1215,   475,   744,   694,   746,
-   747,   748,   749,   393,   146,   394,   395,   913,   396,   913,
-   915,   916,   146,   404,   408,  1320,    89,   934,   822,   410,
-   411,   549,   913,   412,   943,   414,   909,   431,   433,   180,
-   434,    93,    94,   522,   437,   453,   458,   522,   823,   438,
-   460,  1324,   911,   459,   477,   439,   239,   981,   981,   239,
-   918,   487,   504,   146,   960,   146,   990,    97,  1334,   512,
-   549,    17,   523,   537,   562,   563,-32768,   997,   998,   553,
-   980,   980,  1341,  1099,   852,   853,   854,   855,   970,   538,
-   546,   555,   101,   260,   560,   856,   745,   745,   588,   588,
-   568,   987,   573,   989,   569,   570,   571,   588,   588,   588,
-   588,   588,   588,   592,   452,   689,  1120,   600,   702,   602,
-   601,   999,-32768,   639,  1112,   704,  1113,  1114,  1115,  1116,
-  1117,  1118,   708,   710,   721,  1002,   725,   723,  1329,   442,
-   724,   733,  1332,   735,   642,   734,   736,   588,   742,   739,
-   750,   443,   751,   752,  1119,   756,   642,   642,   642,   642,
-   642,   642,   757,  1322,   317,   758,   824,  1323,  1382,   772,
-   759,   825,   826,   827,   828,   829,   830,   831,   768,  1036,
-   771,   774,   444,   775,  1039,  1040,   779,   445,   446,   447,
-   448,   449,   450,   451,   780,   781,   782,   788,   789,   180,
-   792,   452,  1093,   793,   962,   694,  1123,   794,  1120,   800,
-   795,   815,   809,   899,  1121,   814,   905,   834,  1124,   821,
-   836,   919,   984,   991,   837,   838,  1417,   839,   934,  1122,
-   934,   934,   934,   934,   934,   934,   840,   841,   842,  1236,
-   843,   858,   549,   549,   859,  1237,   866,   940,   867,  1125,
-   869,   146,   222,   870,  1238,  1162,   872,  1129,  1130,  1131,
-  1132,  1239,   873,  1436,  1437,   802,   875,   876,  1133,   900,
-   878,  1023,  1240,   803,   804,   805,   806,  1025,  1172,   807,
-   879,  1030,  1241,   881,   807,   882,  1456,  1256,  1010,  1143,
-  1281,   884,   885,  1090,  1393,   887,   888,  1242,  1123,  1119,
-   936,  1360,   937,  1029,  1401,  1026,   802,  1027,   856,  1062,
-  1124,  1065,  1091,  1258,   803,   804,   805,   806,  1094,   970,
-  1068,  1260,  1071,  1265,  1266,   807,  1095,  1267,  1268,  1269,
-  1270,  1271,  1272,  1273,  1274,  1074,  1077,  1278,  1080,  1083,
-  1086,  1125,  1100,  1107,  1283,  1109,  1126,  1127,  1128,  1129,
-  1130,  1131,  1132,  1120,  1108,  1111,  1452,  1135,  -781,  1121,
-  1133,  1160,  1139,  1140,  1134,  1142,  1161,   642,  1165,  1167,
-  1169,  1294,  1170,   125,  1122,  1174,   125,-32768,-32768,  1298,
-  1299,  1300,  1301,  1171,   125,  1176,  1178,  1181,   125,   125,
-  1302,   125,  1182,   851,  1195,   125,   180,  1184,   620,   125,
-   125,   852,   853,   854,   855,  1201,  1186,  1187,   146,  1191,
--32768,  1199,   856,   146,  1203,  1204,  1213,   934,  1298,  1299,
-  1300,  1301,  1205,  1206,  1210,   934,  1212,   934,   934,  1302,
-  1219,   934,   934,   934,   934,   934,   934,   934,   934,  1220,
-  1245,   934,  1247,  1123,  1524,   146,  1251,  1221,   934,  1222,
-  1223,  1254,   125,  1224,  1225,  1124,  1226,   222,   222,   222,
-   222,   222,   222,  1227,  1294,  1228,  1229,  1230,  1119,  1295,
-  1296,  1297,  1298,  1299,  1300,  1301,   180,  1231,  1232,  1233,
-  1234,  1248,  1319,  1302,  1250,  1252,  1125,  1373,  1253,   436,
-  1257,  1126,  1127,  1128,  1129,  1130,  1131,  1132,  1309,   125,
-  1312,  1133,   125,   125,  1282,  1133,   125,   125,  1305,   125,
-   125,  1285,  1286,   125,  1287,  1307,  1303,   125,   125,  1321,
-  1342,   125,  1120,   125,   125,   125,  1325,  1326,  1121,  1327,
-   125,   125,  1328,   437,  1330,  1331,  1335,  1416,   438,  1336,
-  1337,  1339,  1340,  1122,-32768,  1347,   125,  1358,  1354,  1359,
-  1366,   180,  1367,  1352,  1368,  1302,  1386,  1391,  1392,   222,
-  1394,  1395,  1396,  1404,   125,  1400,  1418,   125,  1405,  1406,
-  1407,  1412,  1410,   125,  1411,  1414,  1294,  1421,  1427,  1356,
-  1493,  1295,  1296,  1297,  1298,  1299,  1300,  1301,  1422,  1453,
-  1432,   222,  1351,  1454,  1462,  1302,  1461,  1439,  1471,  1469,
-   222,   222,   222,   222,   222,   222,   222,   222,  1517,   222,
-   125,  1470,  1123,  1478,  1502,  1510,   179,  1523,   125,  1533,
-  1531,   189,  1537,  1539,  1124,  1540,   210,   198,   442,   351,
-   505,  1371,  1372,  1532,   125,   732,  1164,   125,   125,   955,
-   443,   241,  1120,   468,   912,   914,  1163,   939,  1121,  1284,
-  1477,   402,  1509,   180,  1460,  1125,  1483,   942,  1530,   983,
-  1126,  1127,  1128,  1129,  1130,  1131,  1132,   420,   438,   982,
-   934,   444,  1419,  1168,  1133,   204,   480,   339,  1259,   448,
-   449,   450,   451,   182,   212,   380,   769,  1435,  1494,  1434,
-   452,   374,  1518,   252,   435,   209,   687,   146,   993,   436,
-   694,  1501,   694,   125,   125,  1519,   146,   506,  1525,  1442,
-  1449,  1345,  1534,   125,   419,   698,  1352,  1450,  1197,   125,
-   688,  1431,   249,   902,  1464,  1246,     0,     0,   125,   222,
-     0,   215,  1123,   125,     0,  1430,     0,     0,     0,   125,
-   125,  1120,   224,   437,  1124,   125,     0,   125,   438,   242,
-     0,   125,     0,     0,   439,  1351,     0,     0,   442,  1476,
-     0,     0,     0,   440,  1119,   564,     0,     0,     0,   441,
-   443,     0,     0,     0,     0,  1125,  1500,     0,   266,     0,
-  1126,  1127,  1128,  1129,  1130,  1131,  1132,     0,   323,     0,
-  1489,     0,     0,     0,  1133,     0,   335,     0,  1475,     0,
-     0,-32768,     0,     0,   125,   338,     0,     0,  1476,   448,
-   449,   450,   451,  1529,   221,  1499,     0,     0,  1120,     0,
-   452,     0,   420,     0,  1121,     0,     0,  1500,   125,  1535,
-   125,  1123,   250,     0,     0,     0,   406,     0,   442,  1122,
-     0,     0,  1489,  1124,     0,     0,     0,  1475,     0,     0,
-   443,   421,     0,     0,   422,     0,   423,   424,   425,   429,
-     0,     0,   125,     0,     0,     0,  1499,     0,     0,     0,
-     0,     0,     0,   420,-32768,     0,     0,     0,     0,     0,
-     0,   444,  1129,  1130,  1131,  1132,   445,   446,   447,   448,
-   449,   450,   451,  1133,     0,     0,     0,     0,     0,     0,
-   452,     0,     0,     0,  1047,     0,     0,   125,  1123,     0,
-     0,     0,     0,     0,     0,     0,   125,     0,     0,   539,
-  1124,   251,     0,   125,     0,     0,   229,   230,   231,   232,
-   233,   234,   235,     0,     0,   473,   476,   554,     0,     0,
-     0,     0,     0,   125,     0,   481,     0,     0,     0,  1120,
-     0,  1125,     0,     0,     0,  1121,  1126,  1127,  1128,  1129,
-  1130,  1131,  1132,     0,     0,     0,   597,     0,   435,     0,
-  1133,     0,   541,   436,  1369,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   622,  1119,     0,
-     0,   648,     0,   652,     0,     0,   656,   660,   664,   668,
-   672,   676,   680,   684,     0,   686,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   437,     0,     0,
-     0,     0,   438,     0,     0,     0,     0,     0,   439,     0,
-     0,     0,     0,     0,     0,     0,     0,   440,     0,  1123,
-     0,     0,  1120,   441,     0,     0,     0,     0,  1121,     0,
-     0,  1124,     0,     0,     0,     0,   435,   125,   323,   125,
-     0,   436,     0,  1122,     0,     0,   474,     0,     0,     0,
-   125,     0,   125,     0,     0,     0,     0,     0,   125,     0,
-     0,   125,  1125,   125,   125,   125,   125,   586,-32768,-32768,
-  1129,  1130,  1131,  1132,     0,   125,   125,     0,   125,     0,
-     0,  1133,     0,   125,     0,   437,     0,   125,     0,     0,
-   438,   125,   442,   640,     0,     0,   439,     0,     0,     0,
-   125,   125,   125,   125,   443,   440,     0,   125,     0,   125,
-   125,   441,  1123,     0,   125,     0,     0,     0,     0,   755,
-   420,   125,   125,     0,  1124,   597,     0,   597,   597,     0,
-     0,     0,     0,     0,   833,   444,     0,     0,     0,     0,
-   445,   446,   447,   448,   449,   450,   451,     0,     0,     0,
-     0,     0,     0,     0,   452,  1125,     0,   420,  1520,     0,
-  1126,  1127,  1128,  1129,  1130,  1131,  1132,     0,     0,   849,
-     0,     0,     0,     0,  1133,     0,     0,     0,     0,     0,
-   442,     0,     0,   865,     0,     0,     0,   429,     0,     0,
-     0,   429,   443,     0,     0,   429,     0,     0,     0,   429,
-     0,     0,     0,   429,     0,     0,   420,   429,   435,   420,
-     0,   429,     0,   436,     0,   429,     0,     0,     0,     0,
-     0,     0,     0,   444,     0,     0,     0,     0,   445,   446,
-   447,   448,   449,   450,   451,     0,   586,   586,   586,   586,
-     0,     0,   452,   125,  -576,     0,   125,     0,     0,   125,
-     0,     0,     0,     0,     0,     0,     0,   437,     0,     0,
-     0,     0,   438,   420,     0,     0,     0,     0,   439,   892,
-     0,   897,     0,     0,     0,     0,     0,   440,     0,     0,
-     0,     0,   473,   441,     0,     0,   125,   125,     0,   640,
-   640,   640,   640,   640,     0,   125,     0,   129,     0,   125,
-     0,     0,     0,     0,     0,     0,   640,   130,   148,   131,
-     0,     0,     0,  1001,   132,   956,     0,     0,     0,     0,
-   149,   133,   125,   134,     0,   150,   135,   597,     0,     0,
-     0,     0,   151,     0,   152,   136,     0,   153,     0,     0,
-     0,   436,   137,  1021,     0,  -303,   154,     0,     0,   323,
-   323,     0,   442,   155,     0,     0,   156,     0,     0,     0,
-   323,   435,   138,     0,   443,     0,   436,     0,     0,   139,
-   140,     0,     0,   157,   158,   597,     0,   141,   931,     0,
-   159,   160,     0,     0,     0,   437,     0,     0,     0,     0,
-   438,     0,     0,     0,     0,   444,   439,     0,     0,     0,
-   445,   446,   447,   448,   449,   450,   451,     0,     0,     0,
-   437,     0,   420,   474,   452,   438,  -575,     0,   435,     0,
-   770,   439,  1087,   436,     0,     0,     0,     0,     0,     0,
-   440,     0,     0,     0,   933,     0,   441,     0,     0,     0,
-   125,     0,   125,     0,     0,     0,     0,     0,     0,   586,
-   586,     0,   125,     0,     0,     0,     0,   125,   586,   586,
-   586,   586,   586,   586,     0,     0,     0,   437,     0,     0,
-     0,     0,   438,     0,     0,   897,     0,     0,   439,     0,
-   442,     0,     0,   420,     0,     0,     0,   440,     0,   125,
-     0,     0,   443,   441,     0,   640,     0,     0,   586,     0,
-     0,     0,     0,     0,     0,   442,     0,   640,   640,   640,
-   640,   640,   640,     0,     0,     0,     0,   443,     0,     0,
-   125,     0,     0,   444,     0,     0,   125,     0,     0,-32768,
--32768,   448,   449,   450,   451,   420,     0,     0,   597,   597,
-   597,     0,   452,     0,     0,     0,     0,     0,   444,     0,
-     0,     0,   420,   445,   446,   447,   448,   449,   450,   451,
-     0,   890,   442,   420,     0,  1198,   891,   452,   323,     0,
-     0,     0,   933,     0,   443,   597,   597,   597,     0,   931,
-     0,   931,   931,   931,   931,   931,   931,     0,     0,     0,
-     0,     0,     0,     0,     0,   125,     0,   125,     0,     0,
-     0,     0,     0,  1158,     0,   444,     0,     0,     0,     0,
-   445,   446,   447,   448,   449,   450,   451,     0,     0,     0,
-     0,     0,     0,     0,   452,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   933,     0,   933,   933,   933,
-   933,   933,   933,    87,   276,     0,     0,     0,     0,     0,
-   415,     0,   420,     0,     0,     0,     0,   280,     0,   933,
-     0,     0,     0,     0,     0,    89,     0,     0,     0,   281,
-     0,     0,   897,     0,     0,     0,     0,     0,     0,     0,
-    93,    94,     0,     0,     0,     0,     0,     0,     0,   286,
-   420,     0,     0,     0,     0,     0,     0,   125,     0,     0,
-     0,     0,   435,     0,     0,     0,    97,   436,     0,   587,
-   420,   416,   290,     0,     0,     0,   125,     0,   640,     0,
+#define        YYLAST          12201
+
+
+static const short yytable[] = {   129,
+   707,   219,   148,   258,   342,   240,   596,   256,   965,   204,
+   182,  1107,  1098,   775,   191,   182,   526,   195,  1046,   249,
+   484,   182,   691,   786,   705,   209,   211,  1314,   946,   709,
+   262,  1003,  1004,   718,   824,  1128,   826,   827,  1412,  1413,
+   695,   320,  1009,  1040,  1516,   818,  1041,     6,  1407,     7,
+   487,   695,   488,   333,   703,   496,   149,   460,   716,   819,
+   858,  1114,   393,  1254,   819,   819,  1516,   337,   466,   819,
+    13,   655,  1517,   736,   410,  1524,   711,  1448,   182,   147,
+   852,   853,   854,   855,   856,   498,   470,   489,   181,  1129,
+    14,   966,   165,   192,  1517,  1130,  1013,   871,  1070,   201,
+   467,   794,   512,  1491,   774,   186,   496,  1014,   384,   819,
+    17,   388,  1195,  1454,  1455,   656,  1469,  1453,  1525,  1115,
+   493,   494,   343,   513,    19,   499,   657,   182,   795,    84,
+   148,   148,   712,  1521,   223,   225,   498,   148,   182,   187,
+   816,   242,    85,  1435,  1050,   182,   148,   500,  1518,   148,
+   178,   148,   223,   225,  1477,  1051,   215,  1449,   148,   148,
+  1430,   820,   338,   431,  1492,   370,   820,   820,   909,  1202,
+  1518,   820,   335,  1221,   182,  1502,   499,   514,  1436,   196,
+  1132,  1298,  1299,  1300,  1301,  1302,  1303,  1493,  1551,   200,
+   825,  1470,  1133,   182,   865,  1398,   195,   578,   500,  1212,
+   359,  1399,   182,   556,   360,   218,   706,   220,   221,  1408,
+   198,   820,   202,   461,   226,   490,   227,   461,  1210,  1358,
+   557,   995,   263,   245,  1134,  1503,   250,   202,   251,  1135,
+  1136,  1137,  1138,  1139,  1140,  1141,   259,   265,  1018,   195,
+   381,  1145,  1146,  1142,   868,   202,  1520,   148,  1456,   859,
+   202,  1187,   269,   717,  1554,  1042,  1553,   860,   861,   862,
+   863,  -553,   326,   148,   263,  -521,   148,   389,   864,   166,
+  1371,   341,   751,  -779,   943,  -520,   265,   809,  -786,  -553,
+   344,  1457,   167,  -521,  1367,  1466,  1055,   859,  1047,   869,
+  1327,   870,   202,  -520,   435,   860,   861,   862,   863,   810,
+  1057,  1058,  1059,  1060,  1061,  1062,   864,   811,   812,   813,
+   814,   403,   724,   725,   320,  1372,  1380,  1373,   815,   469,
+   472,   472,   214,  -551,   378,  1384,  1385,  1386,  1387,  1388,
+  1389,  1390,  1391,   404,  1395,   480,   182,   804,   805,   806,
+   807,  -551,   650,  1005,   651,   182,   205,  1304,   405,    95,
+   538,   508,  1305,  1306,  1307,  1308,  1309,  1310,  1311,   528,
+   723,   228,   791,  1271,   242,  1272,  1312,  1478,  1479,    82,
+   148,   182,   732,   906,   733,    98,   148,   792,   148,   970,
+  1026,    83,   555,   973,   911,  1343,   859,   216,   169,   652,
+  1507,   653,   596,   243,   860,   861,   862,   863,   526,   263,
+   406,   257,   526,  1354,   793,   864,  1356,  1028,  1029,   260,
+  1273,   594,  1274,   478,   481,   263,   609,   810,  1037,   734,
+   170,   735,   170,   486,   974,   811,   812,   813,   814,  1063,
+   266,   267,  1044,  1129,   270,   626,   815,   648,   268,-32768,
+   596,   171,   271,   171,  1318,   975,   830,   546,  1097,   547,
+  1198,  1199,  1200,   550,  1468,   551,  1065,  1496,   202,   700,
+  1497,   700,  1498,   563,   564,   565,   443,   831,  1419,   336,
+   573,  1121,   339,  1122,  1123,  1124,  1125,  1126,  1127,   952,
+   340,   172,   580,   172,   953,   976,   736,  1217,  1218,  1219,
+   914,   915,-32768,   148,   348,   173,   954,   173,   346,   977,
+   811,   812,   813,   814,   130,   610,   202,   611,  1443,   164,
+  1327,   815,  1224,   745,   431,   746,   185,   761,   431,   762,
+   193,   772,   431,   773,  1132,   347,   431,  1189,  -779,   458,
+   431,   455,   456,  1193,   431,   326,  1133,   955,   431,   182,
+   457,   350,   431,   353,   351,   813,   814,   355,   771,   956,
+   862,   863,  1012,   957,   815,   771,   174,   447,   174,   864,
+   358,  1020,  1021,  1022,  1023,  1024,  1025,  1540,  1134,   448,
+   728,   958,   362,  1541,  1542,   700,  1138,  1139,  1140,  1141,
+   365,   594,   594,   594,   594,   363,   832,  1142,   263,   367,
+  1183,   833,   834,   835,   836,   837,   838,   839,   441,   368,
+   753,-32768,   753,   753,   753,   753,   371,   256,   256,   453,
+   454,   455,   456,   372,  1140,  1141,   952,   763,   980,   784,
+   457,   785,  1203,  1142,   720,   721,   722,   374,   320,   320,
+   375,  1310,  1311,   954,   648,   648,   648,   648,   648,   320,
+  1312,   531,   442,   798,   532,   799,  1111,   443,  1112,  1304,
+   732,   648,  1113,   444,   533,-32768,-32768,  1308,  1309,  1310,
+  1311,  1268,    88,   380,   534,   535,   382,   737,  1312,  1270,
+   391,  1275,  1276,  1031,   955,  1277,  1278,  1279,  1280,  1281,
+  1282,  1283,  1284,   536,    90,  1288,   956,   386,   390,   182,
+   957,   182,  1293,   772,   398,  1147,   917,   394,   395,    94,
+    95,   461,   480,  1190,   700,   396,   399,  1285,   958,   400,
+   148,  1330,   401,   921,  1246,   921,   923,   924,   148,   772,
+  1247,  1289,   409,   942,   968,   413,    98,   555,   921,  1248,
+   951,   415,   416,   568,   569,   182,   417,  1249,   447,  1513,
+   419,   528,   989,   989,   772,   528,  1290,  1374,  1250,  1375,
+   448,   102,   436,   438,   242,   990,   990,   242,  1251,   439,
+  1334,   148,   463,   148,   999,   458,  1108,   900,   555,   905,
+  1433,   465,  1434,  1252,   464,  1006,  1007,  1344,   482,   492,
+   478,   752,   449,   754,   755,   756,   757,   919,-32768,-32768,
+   453,   454,   455,   456,  1351,   926,   594,   594,     6,   509,
+     7,   457,   517,    17,   529,   594,   594,   594,   594,   594,
+   594,   543,   544,   964,  1128,   374,  1370,  1476,   552,   876,
+   979,    13,  1129,   879,  1526,   559,  1527,   882,   753,   753,
+  1534,   885,  1535,   561,   263,   888,   566,   574,   996,   891,
+   998,    14,   648,   894,   579,   594,   598,   897,   320,   326,
+   326,   575,   576,  1008,   648,   648,   648,   648,   648,   648,
+   326,    17,   577,   457,   606,   441,  1332,  1011,  1129,   607,
+  1333,   608,   695,  1304,  1130,    19,   708,  1392,  1305,  1306,
+  1307,  1308,  1309,  1310,  1311,   710,   714,   716,   727,   729,
+  1131,   730,  1312,   731,   739,  1383,   741,   182,   742,   740,
+  1102,   747,   479,   700,   750,   744,   758,   759,   760,   442,
+   764,  1045,   765,  1132,   443,  1428,  1048,  1049,  1483,   766,
+-32768,   780,   789,   779,   767,  1133,   942,   776,   942,   942,
+   942,   942,   942,   942,   782,  1427,   810,  1129,   796,   783,
+   555,   555,   787,  1130,   811,   812,   813,   814,   797,   148,
+   225,   788,   335,  1171,   790,   815,   800,-32768,  1019,  1132,
+   801,   823,   842,   907,   802,  1138,  1139,  1140,  1141,   803,
+   817,  1133,  1446,  1447,   846,   905,  1142,  1182,   808,   913,
+   822,   844,-32768,   829,   845,  1266,   847,   848,   849,  1291,
+   860,   861,   862,   863,   850,  1467,   851,  1403,   866,   867,
+   874,   864,   875,  1134,   877,   447,   878,  1411,  1135,  1136,
+  1137,  1138,  1139,  1140,  1141,   880,   881,   448,   883,   884,
+   886,   887,  1142,   889,   927,  1066,  1152,   890,  1132,   908,
+   948,   892,  1072,  1073,   969,  1075,  1076,  1537,  1078,  1079,
+  1133,  1081,  1082,   971,  1084,  1085,   893,  1087,  1088,   449,
+  1090,  1091,   979,  1093,  1094,   993,   895,   453,   454,   455,
+   456,   896,   944,   945,  1000,   815,   648,  1032,   457,   326,
+  1034,  1038,  1134,  1035,   127,  1036,  1039,   127,-32768,-32768,
+  1138,  1139,  1140,  1141,   864,   127,  1074,  1071,  1100,   127,
+   127,  1142,   127,  1077,   810,   182,   127,   626,  1099,  1080,
+   127,   127,   811,   812,   813,   814,  1083,   148,  1086,   859,
+  1089,  1092,   148,   815,  1095,  1103,   942,   860,   861,   862,
+   863,  1104,  1109,  1116,   942,  1117,   942,   942,   864,  1118,
+   942,   942,   942,   942,   942,   942,   942,   942,  1120,  1144,
+   942,  -786,  1148,  1149,   148,  1151,  1169,   942,  1170,  1174,
+  1179,  1180,  1176,   127,  1181,  1184,   225,   225,   225,   225,
+   225,   225,  1319,  1186,  1322,  1188,  1191,  1192,  1194,-32768,
+  1196,  1197,  1201,   905,  1211,  1205,   182,  1308,  1309,  1310,
+  1311,  1209,  1329,  1213,  1261,  1214,  1223,  1215,  1312,  1264,
+  1216,  1255,  1220,  1222,  1229,  1230,  1204,  1231,  1232,  1233,
+  1206,  1234,   127,  1235,  1236,   127,   127,  1237,  1238,   127,
+   127,  1239,   127,   127,  1550,  1240,   127,  1241,  1242,  1257,
+   127,   127,  1243,  1244,   127,  1258,   127,   127,   127,  1225,
+  1260,  1262,  1263,   127,   127,  1267,  1426,  1142,  1292,  1315,
+  1295,  1296,  1297,  1366,  1313,  1317,  1331,  1335,  1336,   127,
+  1337,   182,  1338,  1362,  1321,  1304,  1340,  1341,  1345,   225,
+  1305,  1306,  1307,  1308,  1309,  1310,  1311,   440,   127,   479,
+  1346,   127,   441,  1347,  1312,   254,  1349,   127,  1352,  1505,
+   232,   233,   234,   235,   236,   237,   238,  1357,  1364,  1350,
+   941,   225,  1368,  1369,  1376,  1377,  1378,  1312,  1396,  1401,
+   225,   225,   225,   225,   225,   225,   225,   225,  1530,   225,
+  1402,  1404,  1405,  1410,   127,  1422,   442,  1424,  1406,  1420,
+  1421,   443,   127,  1414,  1415,  1416,  1361,   444,  1417,   905,
+  1431,  1437,  1432,  1442,  1546,  1461,   320,   445,   127,  1464,
+  1465,   127,   127,   446,  1472,  1473,  1449,  1480,  1481,  1484,
+  1482,  1490,  1515,   182,  1523,   407,  1536,  1545,  1547,  1552,
+  1556,  1557,   213,  1339,   357,  1381,  1382,  1342,   510,   738,
+   942,   425,  1429,   963,   473,  1173,   920,   244,   440,   947,
+   922,  1172,  1294,   441,  1489,  1441,  1522,  1471,   950,  1495,
+  1544,  1178,   992,   207,   991,   345,   485,   148,   440,   184,
+   700,   777,   700,   441,  1445,   385,   148,  1506,  1531,  1444,
+   127,   127,   447,   379,   255,  1002,  1362,  1460,  1177,   212,
+   127,   511,  1538,   693,   448,  1514,   127,   442,  1532,   225,
+   941,   905,   443,  1459,   127,  1539,  1355,  1548,   444,   127,
+  1452,   910,   424,  1207,   252,   127,   127,   442,   445,   704,
+  1475,   127,   443,   127,   446,  1501,   449,   127,   444,   694,
+  1488,   450,   451,   452,   453,   454,   455,   456,   445,     0,
+  1256,   570,     0,     0,  1440,   457,   441,  1512,  1056,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,  1361,
+     0,     0,     0,   941,     0,   941,   941,   941,   941,   941,
+   941,     0,     0,     0,     0,     0,     0,     0,     0,  1501,
+   127,  1488,     0,     0,     0,     0,  1543,   941,     0,   224,
+   442,     0,     0,   447,     0,   443,     0,     0,   425,     0,
+  1512,   444,  1549,  1487,   127,   448,   127,   253,     0,     0,
+     0,   445,     0,   447,     0,     0,     0,     0,     0,     0,
+  1511,     0,     0,     0,     0,   448,     0,   326,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   449,   127,     0,
+     0,     0,   450,   451,   452,   453,   454,   455,   456,   425,
+     0,     0,     0,     0,  1487,     0,   457,   449,     0,  1533,
+     0,     0,   450,   451,   452,   453,   454,   455,   456,     0,
+     0,     0,     0,  1511,     0,     0,   457,     0,     0,     0,
+     0,     0,     0,     0,   127,     0,   447,    88,   279,     0,
+     0,     0,     0,   127,   420,     0,     0,  1129,   448,     0,
+   127,   283,     0,  1130,   941,     0,     0,     0,     0,    90,
+     0,     0,     0,   284,     0,     0,     0,     0,     0,     0,
+   127,     0,     0,     0,    94,    95,     0,     0,     0,     0,
+   449,     0,     0,     0,   289,   450,   451,   452,   453,   454,
+   455,   456,     0,     0,     0,     0,     0,     0,     0,   457,
+     0,    98,     0,   941,     0,     0,   421,   293,     0,     0,
+     0,   941,     0,   941,   941,     0,     0,   941,   941,   941,
+   941,   941,   941,   941,   941,     0,   102,   941,     0,     0,
+     0,   422,     0,     0,   941,     0,     0,     0,  1132,     0,
+     0,     0,     0,   941,   941,   941,   941,   941,   941,     0,
+  1133,     0,   411,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   426,     0,     0,
+   427,     0,   428,   429,   430,   434,     0,     0,     0,     0,
+     0,     0,  1134,     0,   127,     0,   127,  1135,  1136,  1137,
+  1138,  1139,  1140,  1141,     0,     0,     0,   127,   423,   127,
+     0,  1142,     0,     0,     0,   127,   941,  1128,   127,   150,
+   127,   127,   127,   127,     0,   592,     0,     0,     0,     0,
+     0,   151,   127,   127,     0,   127,   152,     0,     0,     0,
+   127,     0,     0,   153,     0,   154,   127,   545,   155,     0,
+   127,   646,     0,     0,     0,     0,   941,   156,     0,   127,
+   127,   127,   127,     0,   157,   560,   127,   158,   127,   127,
+     0,  1129,     0,   127,     0,     0,     0,  1130,     0,   425,
+   127,   127,     0,     0,   159,   160,     0,     0,   941,     0,
+     0,   161,   162,  1131,   603,     0,  1128,   941,   941,   941,
+   941,   941,   941,   941,   941,     0,   941,     0,     0,     0,
+     0,     0,     0,     0,     0,   628,   425,     0,     0,   654,
+     0,   658,     0,     0,   662,   666,   670,   674,   678,   682,
+   686,   690,   441,   692,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   941,     0,   475,     0,     0,     0,     0,
+  1129,     0,     0,     0,     0,     0,  1130,     0,     0,     0,
+     0,     0,  1132,     0,     0,   425,     0,   941,   425,     0,
+     0,     0,  1131,     0,  1133,     0,   442,     0,     0,     0,
+     0,   443,     0,     0,     0,     0,     0,   444,     0,     0,
+     0,     0,     0,     0,     0,   592,   592,   592,   592,     0,
+     0,     0,   127,     0,     0,   127,  1134,     0,   127,     0,
+     0,  1135,  1136,  1137,  1138,  1139,  1140,  1141,     0,     0,
+     0,   591,   425,     0,     0,  1142,   941,     0,  1143,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   101,     0,     0,     0,   641,   417,     0,     0,     0,
-     0,   125,     0,     0,   125,   820,   125,   420,   420,     0,
-   125,   437,  1311,     0,     0,     0,   438,     0,     0,     0,
-   125,   125,   439,     0,     0,     0,     0,     0,   931,     0,
-   420,   440,     0,     0,     0,   933,   931,   441,   931,   931,
-  1353,     0,   931,   931,   931,   931,   931,   931,   931,   931,
-     0,     0,   931,     0,     0,     0,     0,     0,     0,   931,
-     0,     0,   418,   125,     0,     0,     0,     0,  1158,  1158,
-  1158,  1158,  1158,  1158,     0,     0,     0,     0,     0,     0,
-   125,     0,     0,     0,   933,     0,     0,   897,     0,     0,
-     0,     0,   933,  1318,   933,   933,     0,     0,   933,   933,
-   933,   933,   933,   933,   933,   933,   442,     0,   933,     0,
-     0,     0,   125,     0,     0,   933,     0,   125,   443,     0,
-     0,     0,     0,     0,   933,   933,   933,   933,   933,   933,
-     0,   125,     0,   125,     0,     0,     0,     0,   587,   587,
-   587,   587,     0,     0,     0,     0,     0,     0,     0,   444,
-     0,     0,     0,     0,   445,   446,   447,   448,   449,   450,
-   451,     0,     0,     0,     0,     0,     0,     0,   452,     0,
-  1158,     0,     0,     0,     0,     0,     0,     0,     0,   435,
-     0,     0,     0,     0,   436,     0,   933,     0,     0,   897,
-     0,   641,   641,   641,   641,   641,     0,     0,     0,     0,
-     0,     0,  1158,     0,     0,     0,     0,     0,   641,     0,
-     0,  1158,  1158,  1158,  1158,  1158,  1158,  1158,  1158,     0,
-  1158,     0,     0,     0,     0,     0,   933,     0,   437,     0,
-     0,     0,     0,   438,     0,   435,     0,     0,     0,   439,
-   436,     0,     0,     0,     0,     0,     0,     0,   440,     0,
-     0,   435,     0,     0,   441,     0,   436,     0,   933,     0,
-     0,  1496,     0,     0,     0,     0,     0,   933,   933,   933,
-   933,   933,   933,   933,   933,     0,   933,     0,     0,     0,
-   932,   931,     0,     0,   437,     0,     0,     0,     0,   438,
-     0,     0,     0,     0,     0,   439,     0,     0,     0,     0,
-   437,     0,     0,     0,   440,   438,     0,     0,     0,     0,
-   441,   439,     0,   933,     0,     0,     0,     0,     0,     0,
-   440,     0,     0,   442,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   443,     0,   933,     0,     0,
-  1158,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   587,   587,     0,     0,     0,     0,     0,     0,     0,
-   587,   587,   587,   587,   587,   587,   444,     0,     0,     0,
-     0,   445,   446,   447,   448,   449,   450,   451,     0,   442,
-     0,     0,     0,     0,  1235,   452,     0,     0,     0,     0,
-     0,   443,     0,     0,     0,   442,   933,   641,     0,     0,
-   587,     0,     0,     0,     0,     0,     0,   443,     0,   641,
-   641,   641,   641,   641,   641,     0,     0,     0,  1060,     0,
-     0,     0,   444,     0,     0,     0,     0,   445,   446,   447,
-   448,   449,   450,   451,     0,     0,     0,     0,   444,     0,
-     0,   452,     0,   445,   446,   447,   448,   449,   450,   451,
-     0,     0,     0,     0,     0,     0,     0,   452,     0,     0,
-    86,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   921,   270,   271,     0,     0,     0,     0,
-     0,   932,     0,   932,   932,   932,   932,   932,   932,     0,
-    87,   276,     0,     0,     0,     0,     0,   277,     0,     0,
-     0,     0,     0,     0,   280,  1159,     0,     0,     0,     0,
-     0,     0,    89,     0,     0,     0,   281,     0,     0,     0,
-    90,    91,     0,     0,     0,     0,    92,    93,    94,   282,
-     0,   283,     0,   922,     0,   923,   286,     0,    95,     0,
-     0,     0,     0,     0,   436,     0,    96,     0,     0,     0,
-     0,     0,     0,    97,     0,     0,     0,     0,   289,   290,
-    99,   100,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   293,     0,     0,     0,     0,     0,   101,   102,
-   294,   103,   295,   296,     0,     0,     0,     0,   437,     0,
-     0,   105,     0,   438,   106,   107,   108,     0,   109,   439,
-     0,     0,   110,     0,   111,   112,     0,     0,   440,     0,
-     0,     0,     0,   113,   114,   115,     0,     0,     0,     0,
-   641,  1218,   116,     0,   117,     0,     0,     0,   118,     0,
-     0,   297,     0,   119,   120,     0,     0,     0,     0,     0,
-   121,     0,   122,     0,     0,     0,     0,   123,     0,   298,
-   199,   924,   260,   300,   301,     0,     0,     0,     0,     0,
-   925,     0,     0,   926,   927,   928,     0,     0,     0,     0,
-   932,     0,     0,   929,  1276,     0,     0,     0,   932,     0,
-   932,   932,     0,   442,   932,   932,   932,   932,   932,   932,
-   932,   932,     0,     0,   932,   443,     0,     0,     0,     0,
-     0,   932,     0,     0,     0,     0,     0,     0,     0,     0,
-  1159,  1159,  1159,  1159,  1159,  1159,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   444,     0,     0,     0,
-     0,   445,   446,   447,   448,   449,   450,   451,     0,     0,
-     0,   270,   271,     0,     0,   452,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,    87,   276,     0,
-     0,     0,     0,     0,   415,     0,     0,     0,     0,     0,
-     0,   280,  1338,     0,     0,     0,     0,     0,     0,    89,
-     0,     0,     0,   281,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,    93,    94,   282,     0,   283,     0,
-     0,     0,     0,   286,     0,     0,     0,     0,     0,     0,
-     0,     0,  1159,     0,     0,     0,     0,     0,     0,     0,
-    97,     0,     0,     0,     0,   416,   290,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   293,
-     0,     0,     0,     0,  1159,   101,     0,     0,     0,     0,
-   417,     0,     0,  1159,  1159,  1159,  1159,  1159,  1159,  1159,
-  1159,     0,  1159,     0,     0,    86,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   269,   270,
-   271,     0,     0,     0,     0,     0,     0,     0,     0,   177,
-   272,   273,   274,   275,     0,    87,   276,     0,   297,  1408,
-     0,     0,   277,     0,     0,     0,   278,   279,     0,   280,
-     0,     0,     0,     0,     0,     0,   418,    89,     0,     0,
-     0,   281,     0,   932,     0,    90,    91,     0,     0,     0,
-     0,    92,    93,    94,   282,     0,   283,     0,   284,     0,
-   285,   286,     0,    95,     0,     0,     0,     0,   287,     0,
-     0,    96,     0,     0,     0,     0,     0,     0,    97,     0,
-     0,   288,     0,   289,   290,    99,   100,     0,     0,     0,
-   291,     0,     0,     0,   292,     0,     0,   293,     0,     0,
-     0,     0,  1159,   101,   102,   294,   103,   295,   296,     0,
-     0,     0,     0,     0,     0,     0,   105,     0,     0,   106,
-   107,   108,     0,   109,     0,     0,     0,   110,     0,   111,
-   112,     0,     0,     0,     0,     0,     0,     0,   113,   114,
-   115,     0,   178,     0,     0,     0,     0,   116,     0,   117,
-     0,     0,     0,   118,     0,     0,   297,     0,   119,   120,
-     0,     0,     0,     0,     0,   121,     0,   122,     0,     0,
-     0,     0,   123,     0,   298,   199,   299,   260,   300,   301,
-    86,     0,     0,     0,     0,   302,   695,     0,   304,   305,
-   306,     0,     0,   269,   270,   271,     0,     0,   307,   696,
-     0,     0,     0,     0,   177,   272,   273,   274,   275,     0,
-    87,   276,     0,     0,     0,     0,     0,   277,     0,     0,
-     0,   278,   279,     0,   280,     0,     0,     0,     0,     0,
-     0,     0,    89,     0,     0,     0,   281,     0,     0,     0,
-    90,    91,     0,     0,     0,     0,    92,    93,    94,   282,
-     0,   283,     0,   284,     0,   285,   286,     0,    95,     0,
-     0,     0,     0,   287,     0,     0,    96,     0,     0,     0,
-     0,     0,     0,    97,     0,     0,   288,     0,   289,   290,
-    99,   100,     0,     0,     0,   291,     0,     0,     0,   292,
-     0,     0,   293,     0,     0,     0,     0,     0,   101,   102,
-   294,   103,   295,   296,     0,     0,     0,     0,     0,     0,
-     0,   105,     0,     0,   106,   107,   108,     0,   109,     0,
-     0,     0,   110,     0,   111,   112,     0,     0,     0,     0,
-     0,     0,     0,   113,   114,   115,     0,   178,     0,     0,
-     0,     0,   116,     0,   117,     0,     0,     0,   118,     0,
-     0,   297,     0,   119,   120,     0,     0,     0,     0,     0,
-   121,     0,   122,     0,     0,     0,     0,   123,     0,   298,
-   199,   299,   260,   300,   301,    86,     0,     0,     0,     0,
-   302,     0,     0,   304,   305,   306,     0,     0,   269,   270,
-   271,     0,     0,   307,  1018,     0,     0,     0,     0,   177,
-   272,   273,   274,   275,     0,    87,   276,     0,     0,     0,
-     0,     0,   277,     0,     0,     0,   278,   279,     0,   280,
-     0,     0,     0,     0,     0,     0,     0,    89,     0,     0,
-     0,   281,     0,     0,     0,    90,    91,     0,     0,     0,
-     0,    92,    93,    94,   282,     0,   283,     0,   284,     0,
-   285,   286,     0,    95,     0,     0,     0,     0,   287,     0,
-     0,    96,     0,     0,     0,     0,     0,     0,    97,     0,
-     0,   288,     0,   289,   290,    99,   100,     0,     0,     0,
-   291,     0,     0,     0,   292,     0,     0,   293,     0,     0,
-     0,     0,     0,   101,   102,   294,   103,   295,   296,     0,
-     0,     0,     0,     0,     0,     0,   105,     0,     0,   106,
-   107,   108,     0,   109,     0,     0,     0,   110,     0,   111,
-   112,     0,     0,     0,     0,     0,     0,     0,   113,   114,
-   115,     0,   178,     0,     0,     0,     0,   116,     0,   117,
-     0,     0,     0,   118,     0,     0,   297,     0,   119,   120,
-     0,     0,     0,     0,     0,   121,     0,   122,     0,     0,
-     0,     0,   123,     0,   298,   199,   299,   260,   300,   301,
-    86,     0,     0,     0,     0,   302,     0,     0,   304,   305,
-   306,     0,     0,  1144,   270,   271,     0,     0,   307,  1055,
-     0,     0,     0,     0,     0,  1145,  1146,  1147,  1148,     0,
-    87,   276,     0,     0,     0,     0,     0,   277,     0,     0,
-     0,     0,     0,     0,   280,     0,     0,     0,     0,     0,
-     0,     0,    89,     0,     0,     0,   281,     0,     0,     0,
-    90,    91,     0,     0,     0,     0,    92,    93,    94,   282,
-     0,   283,     0,     0,     0,  1149,   286,     0,    95,     0,
-     0,     0,     0,     0,     0,     0,    96,     0,     0,     0,
-     0,     0,     0,    97,     0,     0,     0,     0,   289,   290,
-    99,   100,     0,     0,     0,     0,     0,     0,     0,  1150,
-     0,     0,   293,     0,     0,     0,     0,     0,   101,   102,
-   294,   103,   295,   296,     0,     0,     0,     0,     0,     0,
-     0,   105,     0,     0,   106,   107,   108,     0,   109,     0,
-     0,     0,   110,     0,   111,   112,     0,     0,     0,     0,
-     0,     0,     0,   113,   114,   115,     0,     0,     0,     0,
-     0,     0,   116,     0,   117,     0,     0,     0,   118,     0,
-     0,   297,     0,   119,   120,     0,     0,     0,     0,     0,
-   121,    86,   122,     0,     0,     0,     0,   123,     0,   298,
-   199,  1151,   260,   300,   301,   270,   271,     0,     0,     0,
-  1152,     0,     0,  1153,  1154,  1155,     0,     0,     0,     0,
-     0,    87,   513,  1156,  1383,     0,     0,     0,   514,     0,
-     0,     0,     0,     0,     0,   515,     0,     0,     0,     0,
-     0,     0,     0,    89,     0,     0,     0,     0,     0,     0,
-     0,    90,    91,     0,     0,     0,     0,    92,    93,    94,
-   282,     0,   283,     0,     0,     0,     0,   516,     0,    95,
-     0,     0,     0,     0,     0,     0,     0,    96,     0,     0,
-     0,     0,     0,     0,    97,     0,     0,     0,     0,    98,
-     0,    99,   100,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   293,     0,     0,     0,     0,     0,   101,
-   102,     0,   103,     0,   104,     0,     0,     0,     0,     0,
-     0,     0,   105,     0,     0,   106,   107,   108,     0,   109,
-     0,     0,     0,   110,     0,   111,   112,     0,     0,     0,
-     0,     0,     0,     0,   113,   114,   115,     0,     0,     0,
-     0,     0,     0,   116,     0,   117,     0,     0,     0,   118,
-     0,     0,    86,     0,   119,   120,     0,     0,     0,     0,
-     0,   121,   593,   122,     0,   269,   270,   271,   123,     0,
-   124,     0,     0,     0,     0,     0,   177,   272,   273,   274,
-   275,     0,    87,   276,     0,     0,     0,     0,     0,   277,
-     0,     0,     0,   278,   279,   517,   280,     0,     0,   594,
-     0,     0,     0,     0,    89,     0,     0,     0,   281,     0,
-     0,     0,    90,    91,   595,     0,     0,     0,    92,    93,
-    94,   282,     0,   283,     0,   284,     0,   285,   286,     0,
-    95,     0,     0,     0,     0,   287,     0,     0,    96,     0,
-     0,     0,     0,     0,     0,    97,     0,     0,   288,     0,
-   289,   290,    99,   100,     0,   596,     0,   291,     0,     0,
-     0,   292,     0,     0,   293,     0,     0,     0,     0,     0,
-   101,   102,   294,   103,   295,   296,     0,     0,     0,     0,
-     0,     0,     0,   105,     0,     0,   106,   107,   108,     0,
-   109,     0,     0,     0,   110,     0,   111,   112,     0,     0,
-     0,     0,     0,     0,     0,   113,   114,   115,     0,   178,
-     0,     0,     0,     0,   116,     0,   117,     0,     0,     0,
-   118,     0,     0,   297,     0,   119,   120,     0,     0,     0,
-     0,     0,   121,     0,   122,     0,     0,     0,     0,   123,
-     0,   298,   199,   299,   260,   300,   301,     0,    86,     0,
-     0,     0,   302,     0,     0,   304,   305,   306,  1006,     0,
-     0,   269,   270,   271,     0,   307,     0,     0,     0,     0,
-     0,     0,   177,   272,   273,   274,   275,     0,    87,   276,
-     0,     0,     0,     0,     0,   277,     0,     0,     0,   278,
-   279,     0,   280,     0,     0,   594,     0,     0,     0,     0,
-    89,     0,     0,     0,   281,     0,     0,     0,    90,    91,
-  1007,     0,     0,     0,    92,    93,    94,   282,     0,   283,
-     0,   284,     0,   285,   286,     0,    95,     0,     0,     0,
-     0,   287,     0,     0,    96,     0,     0,     0,     0,     0,
-     0,    97,     0,     0,   288,     0,   289,   290,    99,   100,
-     0,  1008,     0,   291,     0,     0,     0,   292,     0,     0,
-   293,     0,     0,     0,     0,     0,   101,   102,   294,   103,
-   295,   296,     0,     0,     0,     0,     0,     0,     0,   105,
-     0,     0,   106,   107,   108,     0,   109,     0,     0,     0,
-   110,     0,   111,   112,     0,     0,     0,     0,     0,     0,
-     0,   113,   114,   115,     0,   178,     0,     0,     0,     0,
-   116,     0,   117,     0,     0,     0,   118,     0,     0,   297,
-     0,   119,   120,     0,     0,     0,     0,     0,   121,     0,
-   122,     0,     0,     0,     0,   123,     0,   298,   199,   299,
-   260,   300,   301,     0,    86,     0,     0,     0,   302,     0,
-     0,   304,   305,   306,  1043,     0,     0,   269,   270,   271,
-     0,   307,     0,     0,     0,     0,     0,     0,   177,   272,
-   273,   274,   275,     0,    87,   276,     0,     0,     0,     0,
-     0,   277,     0,     0,     0,   278,   279,     0,   280,     0,
-     0,   594,     0,     0,     0,     0,    89,     0,     0,     0,
-   281,     0,     0,     0,    90,    91,  1044,     0,     0,     0,
-    92,    93,    94,   282,     0,   283,     0,   284,     0,   285,
-   286,     0,    95,     0,     0,     0,     0,   287,     0,     0,
-    96,     0,     0,     0,     0,     0,     0,    97,     0,     0,
-   288,     0,   289,   290,    99,   100,     0,  1045,     0,   291,
-     0,     0,     0,   292,     0,     0,   293,     0,     0,     0,
-     0,     0,   101,   102,   294,   103,   295,   296,     0,     0,
-     0,     0,     0,     0,     0,   105,     0,     0,   106,   107,
-   108,     0,   109,     0,     0,     0,   110,     0,   111,   112,
-     0,     0,     0,     0,     0,     0,     0,   113,   114,   115,
-     0,   178,     0,     0,     0,     0,   116,     0,   117,     0,
-     0,     0,   118,     0,     0,   297,     0,   119,   120,     0,
-     0,     0,     0,     0,   121,     0,   122,     0,    86,     0,
-     0,   123,     0,   298,   199,   299,   260,   300,   301,     0,
-     0,   269,   270,   271,   302,     0,     0,   304,   305,   306,
-     0,     0,   177,   272,   273,   274,   275,   307,    87,   276,
-     0,     0,     0,     0,     0,   277,     0,     0,     0,   278,
-   279,     0,   280,     0,     0,     0,     0,     0,     0,     0,
-    89,     0,     0,     0,   281,     0,     0,     0,    90,    91,
-     0,     0,     0,     0,    92,    93,    94,   282,     0,   283,
-     0,   284,     0,   285,   286,     0,    95,     0,     0,     0,
-     0,   287,     0,     0,    96,     0,     0,     0,     0,     0,
-     0,    97,     0,     0,   288,     0,   289,   290,    99,   100,
-     0,     0,     0,   291,     0,     0,     0,   292,     0,     0,
-   293,     0,     0,     0,     0,     0,   101,   102,   294,   103,
-   295,   296,     0,     0,     0,     0,     0,     0,     0,   105,
-     0,     0,   106,   107,   108,     0,   109,     0,     0,     0,
-   110,     0,   111,   112,     0,     0,     0,     0,     0,     0,
-     0,   113,   114,   115,     0,   178,     0,     0,     0,     0,
-   116,     0,   117,     0,     0,     0,   118,     0,     0,   297,
-     0,   119,   120,     0,     0,     0,     0,     0,   121,     0,
-   122,     0,     0,     0,     0,   123,     0,   298,   199,   299,
-   260,   300,   301,     0,     0,    86,     0,   657,   302,   303,
-   658,   304,   305,   306,     0,     0,     0,     0,   269,   270,
-   271,   307,     0,     0,     0,     0,     0,     0,     0,   177,
-   272,   273,   274,   275,     0,    87,   276,     0,     0,     0,
-     0,     0,   277,     0,     0,     0,   278,   279,     0,   280,
-     0,     0,     0,     0,     0,     0,     0,    89,     0,     0,
-     0,   281,     0,     0,     0,    90,    91,     0,     0,     0,
-     0,    92,    93,    94,   282,     0,   283,     0,   284,     0,
-     0,   286,     0,    95,     0,     0,     0,     0,   287,     0,
-     0,    96,     0,     0,     0,     0,     0,     0,    97,     0,
-     0,   288,     0,   289,   290,    99,   100,     0,     0,     0,
-   291,     0,     0,     0,   292,     0,     0,   293,     0,     0,
-     0,     0,     0,   101,   102,   294,   103,   295,   296,     0,
-     0,     0,     0,     0,     0,     0,   105,     0,     0,   106,
-   107,   108,     0,   109,     0,     0,     0,   110,     0,   111,
-   112,     0,     0,     0,     0,     0,     0,     0,   113,   114,
-   115,     0,   178,     0,     0,     0,     0,   116,     0,   117,
-     0,     0,     0,   118,     0,     0,   297,     0,   119,   120,
-     0,     0,     0,     0,     0,   121,     0,   122,     0,     0,
-     0,     0,   123,     0,   298,   199,   299,   260,   300,   301,
-     0,    86,     0,   661,     0,   302,   662,     0,   304,   305,
-   306,     0,     0,     0,   269,   270,   271,     0,   659,     0,
-     0,     0,     0,     0,     0,   177,   272,   273,   274,   275,
-     0,    87,   276,     0,     0,     0,     0,     0,   277,     0,
-     0,     0,   278,   279,     0,   280,     0,     0,     0,     0,
-     0,     0,     0,    89,     0,     0,     0,   281,     0,     0,
-     0,    90,    91,     0,     0,     0,     0,    92,    93,    94,
-   282,     0,   283,     0,   284,     0,     0,   286,     0,    95,
-     0,     0,     0,     0,   287,     0,     0,    96,     0,     0,
-     0,     0,     0,     0,    97,     0,     0,   288,     0,   289,
-   290,    99,   100,     0,     0,     0,   291,     0,     0,     0,
-   292,     0,     0,   293,     0,     0,     0,     0,     0,   101,
-   102,   294,   103,   295,   296,     0,     0,     0,     0,     0,
-     0,     0,   105,     0,     0,   106,   107,   108,     0,   109,
-     0,     0,     0,   110,     0,   111,   112,     0,     0,     0,
-     0,     0,     0,     0,   113,   114,   115,     0,   178,     0,
-     0,     0,     0,   116,     0,   117,     0,     0,     0,   118,
-     0,     0,   297,     0,   119,   120,     0,     0,     0,     0,
-     0,   121,     0,   122,     0,     0,     0,     0,   123,     0,
-   298,   199,   299,   260,   300,   301,     0,    86,     0,   665,
-     0,   302,   666,     0,   304,   305,   306,     0,     0,     0,
-   269,   270,   271,     0,   663,     0,     0,     0,     0,     0,
-     0,   177,   272,   273,   274,   275,     0,    87,   276,     0,
-     0,     0,     0,     0,   277,     0,     0,     0,   278,   279,
-     0,   280,     0,     0,     0,     0,     0,     0,     0,    89,
-     0,     0,     0,   281,     0,     0,     0,    90,    91,     0,
-     0,     0,     0,    92,    93,    94,   282,     0,   283,     0,
-   284,     0,     0,   286,     0,    95,     0,     0,     0,     0,
-   287,     0,     0,    96,     0,     0,     0,     0,     0,     0,
-    97,     0,     0,   288,     0,   289,   290,    99,   100,     0,
-     0,     0,   291,     0,     0,     0,   292,     0,     0,   293,
-     0,     0,     0,     0,     0,   101,   102,   294,   103,   295,
-   296,     0,     0,     0,     0,     0,     0,     0,   105,     0,
-     0,   106,   107,   108,     0,   109,     0,     0,     0,   110,
-     0,   111,   112,     0,     0,     0,     0,     0,     0,     0,
-   113,   114,   115,     0,   178,     0,     0,     0,     0,   116,
-     0,   117,     0,     0,     0,   118,     0,     0,   297,     0,
-   119,   120,     0,     0,     0,     0,     0,   121,     0,   122,
-     0,     0,     0,     0,   123,     0,   298,   199,   299,   260,
-   300,   301,     0,    86,     0,   669,     0,   302,   670,     0,
-   304,   305,   306,     0,     0,     0,   269,   270,   271,     0,
-   667,     0,     0,     0,     0,     0,     0,   177,   272,   273,
-   274,   275,     0,    87,   276,     0,     0,     0,     0,     0,
-   277,     0,     0,     0,   278,   279,     0,   280,     0,     0,
-     0,     0,     0,     0,     0,    89,     0,     0,     0,   281,
-     0,     0,     0,    90,    91,     0,     0,     0,     0,    92,
-    93,    94,   282,     0,   283,     0,   284,     0,     0,   286,
-     0,    95,     0,     0,     0,     0,   287,     0,     0,    96,
-     0,     0,     0,     0,     0,     0,    97,     0,     0,   288,
-     0,   289,   290,    99,   100,     0,     0,     0,   291,     0,
-     0,     0,   292,     0,     0,   293,     0,     0,     0,     0,
-     0,   101,   102,   294,   103,   295,   296,     0,     0,     0,
-     0,     0,     0,     0,   105,     0,     0,   106,   107,   108,
-     0,   109,     0,     0,     0,   110,     0,   111,   112,     0,
-     0,     0,     0,     0,     0,     0,   113,   114,   115,     0,
-   178,     0,     0,     0,     0,   116,     0,   117,     0,     0,
-     0,   118,     0,     0,   297,     0,   119,   120,     0,     0,
-     0,     0,     0,   121,     0,   122,     0,     0,     0,     0,
-   123,     0,   298,   199,   299,   260,   300,   301,     0,    86,
-     0,   673,     0,   302,   674,     0,   304,   305,   306,     0,
-     0,     0,   269,   270,   271,     0,   671,     0,     0,     0,
-     0,     0,     0,   177,   272,   273,   274,   275,     0,    87,
-   276,     0,     0,     0,     0,     0,   277,     0,     0,     0,
-   278,   279,     0,   280,     0,     0,     0,     0,     0,     0,
-     0,    89,     0,     0,     0,   281,     0,     0,     0,    90,
-    91,     0,     0,     0,     0,    92,    93,    94,   282,     0,
-   283,     0,   284,     0,     0,   286,     0,    95,     0,     0,
-     0,     0,   287,     0,     0,    96,     0,     0,     0,     0,
-     0,     0,    97,     0,     0,   288,     0,   289,   290,    99,
-   100,     0,     0,     0,   291,     0,     0,     0,   292,     0,
-     0,   293,     0,     0,     0,     0,     0,   101,   102,   294,
-   103,   295,   296,     0,     0,     0,     0,     0,     0,     0,
-   105,     0,     0,   106,   107,   108,     0,   109,     0,     0,
-     0,   110,     0,   111,   112,     0,     0,     0,     0,     0,
-     0,     0,   113,   114,   115,     0,   178,     0,     0,     0,
-     0,   116,     0,   117,     0,     0,     0,   118,     0,     0,
-   297,     0,   119,   120,     0,     0,     0,     0,     0,   121,
-     0,   122,     0,     0,     0,     0,   123,     0,   298,   199,
-   299,   260,   300,   301,     0,    86,     0,   677,     0,   302,
-   678,     0,   304,   305,   306,     0,     0,     0,   269,   270,
-   271,     0,   675,     0,     0,     0,     0,     0,     0,   177,
-   272,   273,   274,   275,     0,    87,   276,     0,     0,     0,
-     0,     0,   277,     0,     0,     0,   278,   279,     0,   280,
-     0,     0,     0,     0,     0,     0,     0,    89,     0,     0,
-     0,   281,     0,     0,     0,    90,    91,     0,     0,     0,
-     0,    92,    93,    94,   282,     0,   283,     0,   284,     0,
-     0,   286,     0,    95,     0,     0,     0,     0,   287,     0,
-     0,    96,     0,     0,     0,     0,     0,     0,    97,     0,
-     0,   288,     0,   289,   290,    99,   100,     0,     0,     0,
-   291,     0,     0,     0,   292,     0,     0,   293,     0,     0,
-     0,     0,     0,   101,   102,   294,   103,   295,   296,     0,
-     0,     0,     0,     0,     0,     0,   105,     0,     0,   106,
-   107,   108,     0,   109,     0,     0,     0,   110,     0,   111,
-   112,     0,     0,     0,     0,     0,     0,     0,   113,   114,
-   115,     0,   178,     0,     0,     0,     0,   116,     0,   117,
-     0,     0,     0,   118,     0,     0,   297,     0,   119,   120,
-     0,     0,     0,     0,     0,   121,     0,   122,     0,     0,
-     0,     0,   123,     0,   298,   199,   299,   260,   300,   301,
-     0,    86,     0,   681,     0,   302,   682,     0,   304,   305,
-   306,     0,     0,     0,   269,   270,   271,     0,   679,     0,
-     0,     0,     0,     0,     0,   177,   272,   273,   274,   275,
-     0,    87,   276,     0,     0,     0,     0,     0,   277,     0,
-     0,     0,   278,   279,     0,   280,     0,     0,     0,     0,
-     0,     0,     0,    89,     0,     0,     0,   281,     0,     0,
-     0,    90,    91,     0,     0,     0,     0,    92,    93,    94,
-   282,     0,   283,     0,   284,     0,     0,   286,     0,    95,
-     0,     0,     0,     0,   287,     0,     0,    96,     0,     0,
-     0,     0,     0,     0,    97,     0,     0,   288,     0,   289,
-   290,    99,   100,     0,     0,     0,   291,     0,     0,     0,
-   292,     0,     0,   293,     0,     0,     0,     0,     0,   101,
-   102,   294,   103,   295,   296,     0,     0,     0,     0,     0,
-     0,     0,   105,     0,     0,   106,   107,   108,     0,   109,
-     0,     0,     0,   110,     0,   111,   112,     0,     0,     0,
-     0,     0,     0,     0,   113,   114,   115,     0,   178,     0,
-     0,     0,     0,   116,     0,   117,     0,     0,     0,   118,
-     0,     0,   297,     0,   119,   120,     0,     0,     0,     0,
-     0,   121,     0,   122,     0,    86,     0,     0,   123,     0,
-   298,   199,   299,   260,   300,   301,     0,     0,   269,   270,
-   271,   302,     0,     0,   304,   305,   306,     0,     0,   177,
-   272,   273,   274,   275,   683,    87,   276,     0,     0,     0,
-     0,     0,   277,     0,     0,     0,   278,   279,     0,   280,
-     0,     0,   594,     0,     0,     0,     0,    89,     0,     0,
-     0,   281,     0,     0,     0,    90,    91,     0,     0,     0,
-     0,    92,    93,    94,   282,     0,   283,     0,   284,     0,
-   285,   286,     0,    95,     0,     0,     0,     0,   287,     0,
-     0,    96,     0,     0,     0,     0,     0,     0,    97,     0,
-     0,   288,     0,   289,   290,    99,   100,     0,     0,     0,
-   291,     0,     0,     0,   292,     0,     0,   293,     0,     0,
-     0,     0,     0,   101,   102,   294,   103,   295,   296,     0,
-     0,     0,     0,     0,     0,     0,   105,     0,     0,   106,
-   107,   108,     0,   109,     0,     0,     0,   110,     0,   111,
-   112,     0,     0,     0,     0,     0,     0,     0,   113,   114,
-   115,     0,   178,     0,     0,     0,     0,   116,     0,   117,
-     0,     0,     0,   118,     0,     0,   297,     0,   119,   120,
-     0,     0,     0,     0,     0,   121,     0,   122,     0,    86,
-     0,     0,   123,     0,   298,   199,   299,   260,   300,   301,
-     0,     0,   269,   270,   271,   302,     0,     0,   304,   305,
-   306,     0,     0,   177,   272,   273,   274,   275,   307,    87,
-   276,     0,     0,     0,     0,     0,   277,     0,     0,     0,
-   278,   279,     0,   280,     0,     0,     0,     0,     0,     0,
-     0,    89,     0,     0,     0,   281,     0,     0,     0,    90,
-    91,     0,     0,     0,     0,    92,    93,    94,   282,     0,
-   283,     0,   284,     0,   285,   286,     0,    95,     0,     0,
-     0,     0,   287,     0,     0,    96,     0,     0,     0,     0,
-     0,     0,    97,   560,     0,   288,     0,   289,   290,    99,
-   100,     0,     0,     0,   291,     0,     0,     0,   292,     0,
-     0,   293,     0,     0,     0,     0,     0,   101,   102,   294,
-   103,   295,   296,     0,     0,     0,     0,     0,     0,     0,
-   105,     0,     0,   106,   107,   108,     0,   109,     0,     0,
-     0,   110,     0,   111,   112,     0,     0,     0,     0,     0,
-     0,     0,   113,   114,   115,     0,   178,     0,     0,     0,
-     0,   116,     0,   117,     0,     0,     0,   118,     0,     0,
-   297,     0,   119,   120,     0,     0,     0,     0,     0,   121,
-     0,   122,     0,    86,     0,     0,   123,     0,   298,   199,
-   299,   260,   300,   301,     0,     0,   269,   270,   271,   302,
-     0,     0,   304,   305,   306,     0,     0,   177,   272,   273,
-   274,   275,   307,    87,   276,     0,     0,     0,     0,     0,
-   277,     0,     0,     0,   278,   279,     0,   280,     0,     0,
-     0,     0,     0,     0,     0,    89,     0,     0,     0,   281,
-     0,     0,     0,    90,    91,     0,     0,     0,     0,    92,
-    93,    94,   282,     0,   283,     0,   284,     0,   285,   286,
-     0,    95,     0,     0,     0,     0,   287,     0,     0,    96,
-     0,     0,     0,     0,     0,     0,    97,     0,     0,   288,
-     0,   289,   290,    99,   100,     0,     0,     0,   291,     0,
-     0,     0,   292,     0,     0,   293,     0,     0,     0,     0,
-     0,   101,   102,   294,   103,   295,   296,     0,     0,     0,
-     0,     0,     0,     0,   105,     0,     0,   106,   107,   108,
-     0,   109,     0,     0,     0,   110,     0,   111,   112,     0,
-     0,     0,     0,     0,     0,     0,   113,   114,   115,     0,
-   178,     0,     0,     0,     0,   116,     0,   117,     0,     0,
-     0,   118,     0,     0,   297,     0,   119,   120,     0,     0,
-     0,     0,     0,   121,     0,   122,     0,     0,     0,     0,
-   123,     0,   298,   199,   299,   260,   300,   301,     0,    86,
-     0,   653,     0,   302,   654,     0,   304,   305,   306,     0,
-     0,     0,   269,   270,   271,     0,   307,     0,     0,     0,
-     0,     0,     0,   177,   272,   273,   274,   275,     0,    87,
-   276,     0,     0,     0,     0,     0,   277,     0,     0,     0,
-   278,   279,     0,   280,     0,     0,     0,     0,     0,     0,
-     0,    89,     0,     0,     0,   281,     0,     0,     0,    90,
-    91,     0,     0,     0,     0,    92,    93,    94,   282,     0,
-   283,     0,     0,     0,     0,   286,     0,    95,     0,     0,
-     0,     0,   287,     0,     0,    96,     0,     0,     0,     0,
-     0,     0,    97,     0,     0,   288,     0,   289,   290,    99,
-   100,     0,     0,     0,   291,     0,     0,     0,   292,     0,
-     0,   293,     0,     0,     0,     0,     0,   101,   102,   294,
-   103,   295,   296,     0,     0,     0,     0,     0,     0,     0,
-   105,     0,     0,   106,   107,   108,     0,   109,     0,     0,
-     0,   110,     0,   111,   112,     0,     0,     0,     0,     0,
-     0,     0,   113,   114,   115,     0,   178,     0,     0,     0,
-     0,   116,     0,   117,     0,     0,     0,   118,     0,     0,
-   297,     0,   119,   120,     0,     0,     0,     0,     0,   121,
-     0,   122,     0,    86,     0,     0,   123,     0,   298,   199,
--32768,   260,   300,   301,     0,     0,   269,   270,   271,   302,
-     0,     0,   304,   305,   306,     0,     0,   177,   272,   273,
-   274,   275,   655,    87,   276,     0,     0,     0,     0,     0,
-   277,     0,     0,     0,   278,   279,     0,   280,     0,     0,
-     0,     0,     0,     0,     0,    89,     0,     0,     0,   281,
-     0,     0,     0,    90,    91,     0,     0,     0,     0,    92,
-    93,    94,   282,     0,   283,     0,   284,     0,     0,   286,
-     0,    95,     0,     0,     0,     0,   287,     0,     0,    96,
-     0,     0,     0,     0,     0,     0,    97,   560,     0,   288,
-     0,   289,   290,    99,   100,     0,     0,     0,   291,     0,
-     0,     0,   292,     0,     0,   293,     0,     0,     0,     0,
-     0,   101,   102,   294,   103,   295,   296,     0,     0,     0,
-     0,     0,     0,     0,   105,     0,     0,   106,   107,   108,
-     0,   109,     0,     0,     0,   110,     0,   111,   112,     0,
-     0,     0,     0,     0,     0,     0,   113,   114,   115,     0,
-   178,     0,     0,     0,     0,   116,     0,   117,     0,     0,
-     0,   118,     0,     0,   297,     0,   119,   120,     0,     0,
-     0,     0,     0,   121,     0,   122,     0,    86,     0,     0,
-   123,     0,   298,   199,   299,   260,   300,   301,     0,     0,
-   269,   270,   271,   302,     0,     0,   304,   305,   306,     0,
-     0,   177,   272,   273,   274,   275,   307,    87,   276,     0,
-     0,     0,     0,     0,   277,     0,     0,     0,   278,   279,
-     0,   280,     0,     0,     0,     0,     0,     0,     0,    89,
-     0,     0,     0,   281,     0,     0,     0,    90,    91,     0,
-     0,     0,     0,    92,    93,    94,   282,     0,   283,     0,
-   284,     0,     0,   286,     0,    95,     0,     0,     0,     0,
-   287,     0,     0,    96,     0,     0,     0,     0,     0,     0,
-    97,     0,     0,   288,     0,   289,   290,    99,   100,     0,
-     0,     0,   291,     0,     0,     0,   292,     0,     0,   293,
-     0,     0,     0,     0,     0,   101,   102,   294,   103,   295,
-   296,     0,     0,     0,     0,     0,     0,     0,   105,     0,
-     0,   106,   107,   108,     0,   109,     0,     0,     0,   110,
-     0,   111,   112,     0,     0,     0,     0,     0,     0,     0,
-   113,   114,   115,     0,   178,     0,     0,     0,     0,   116,
-     0,   117,     0,     0,     0,   118,     0,     0,   297,     0,
-   119,   120,     0,     0,     0,     0,     0,   121,     0,   122,
-     0,    86,     0,     0,   123,     0,   298,   199,   299,   260,
-   300,   301,     0,     0,   623,   270,   271,   302,     0,     0,
-   304,   305,   306,     0,     0,   177,   624,   625,   626,   627,
-   307,    87,   276,     0,     0,     0,     0,     0,   277,     0,
-     0,     0,     0,     0,     0,   280,     0,     0,     0,     0,
-     0,     0,     0,    89,     0,     0,     0,   281,     0,     0,
-     0,    90,    91,     0,     0,     0,     0,    92,    93,    94,
-   282,     0,   283,     0,     0,     0,     0,   286,     0,    95,
-     0,     0,     0,     0,   628,     0,     0,    96,     0,     0,
-     0,     0,     0,     0,    97,     0,     0,   629,     0,   289,
-   290,    99,   100,     0,     0,     0,   630,     0,     0,     0,
-   631,     0,     0,   293,     0,     0,     0,     0,     0,   101,
-   102,   294,   103,   295,   296,     0,     0,     0,     0,     0,
-     0,     0,   105,     0,     0,   106,   107,   108,     0,   109,
-     0,     0,     0,   110,     0,   111,   112,     0,     0,     0,
-     0,     0,     0,     0,   113,   114,   115,     0,   178,     0,
-     0,     0,     0,   116,     0,   117,     0,     0,     0,   118,
-     0,     0,   297,     0,   119,   120,     0,     0,     0,     0,
-     0,   121,     0,   122,     0,    86,     0,     0,   123,     0,
-   298,   199,   632,   260,   300,   301,     0,     0,   623,   270,
-   271,   633,     0,     0,   634,   635,   636,     0,     0,   177,
-   624,   625,   626,   627,   637,    87,   276,     0,     0,     0,
-     0,     0,   277,     0,     0,     0,     0,     0,     0,   280,
-     0,     0,     0,     0,     0,     0,     0,    89,     0,     0,
-     0,   281,     0,     0,     0,    90,    91,     0,     0,     0,
-     0,    92,    93,    94,   282,     0,   283,     0,     0,     0,
-     0,   286,     0,    95,     0,     0,     0,     0,   628,     0,
-     0,    96,     0,     0,     0,     0,     0,     0,    97,     0,
-     0,   629,     0,   289,   290,    99,   100,     0,     0,     0,
-   630,     0,     0,     0,   631,     0,     0,   293,     0,     0,
-     0,     0,     0,   101,   102,   294,   103,   295,   296,     0,
-     0,     0,     0,     0,     0,     0,   105,     0,     0,   106,
-   107,   108,     0,   109,     0,     0,     0,   110,     0,   111,
-   112,     0,     0,     0,     0,     0,     0,     0,   113,   114,
-   115,     0,   178,     0,     0,     0,     0,   116,     0,   117,
-     0,     0,     0,   118,     0,     0,   297,     0,   119,   120,
-     0,     0,     0,     0,     0,   121,     0,   122,     0,    86,
-     0,     0,   123,     0,   298,   199,-32768,   260,   300,   301,
-     0,     0,  1144,   270,   271,   633,     0,     0,   634,   635,
-   636,     0,     0,     0,  1145,  1146,  1147,  1148,   637,    87,
-   276,     0,     0,     0,     0,     0,   277,     0,     0,     0,
-     0,     0,     0,   280,     0,     0,     0,     0,     0,     0,
-     0,    89,     0,     0,     0,   281,     0,     0,     0,    90,
-    91,     0,     0,     0,     0,    92,    93,    94,   282,     0,
-   283,     0,     0,     0,  1149,   286,     0,    95,     0,     0,
-     0,     0,     0,     0,     0,    96,     0,     0,     0,     0,
-     0,     0,    97,     0,     0,     0,     0,   289,   290,    99,
-   100,     0,     0,     0,     0,     0,     0,     0,  1150,     0,
-     0,   293,     0,     0,     0,     0,     0,   101,   102,   294,
-   103,   295,   296,     0,     0,     0,     0,     0,     0,     0,
-   105,     0,     0,   106,   107,   108,     0,   109,     0,     0,
-     0,   110,     0,   111,   112,     0,     0,     0,     0,     0,
-     0,     0,   113,   114,   115,     0,     0,     0,     0,     0,
-     0,   116,     0,   117,     0,     0,     0,   118,     0,     0,
-   297,     0,   119,   120,     0,     0,     0,     0,     0,   121,
-     0,   122,     0,    86,     0,     0,   123,     0,   298,   199,
-  1151,   260,   300,   301,     0,     0,  1144,   270,   271,  1152,
-     0,     0,  1153,  1154,  1155,     0,     0,     0,  1145,  1146,
-  1147,  1148,  1156,    87,   276,     0,     0,     0,     0,     0,
-   277,     0,     0,     0,     0,     0,     0,   280,     0,     0,
-     0,     0,     0,     0,     0,    89,     0,     0,     0,   281,
-     0,     0,     0,    90,    91,     0,     0,     0,     0,    92,
-    93,    94,   282,     0,   283,     0,     0,     0,  1149,   286,
-     0,    95,     0,     0,     0,     0,     0,     0,     0,    96,
-     0,     0,     0,     0,     0,     0,    97,     0,     0,     0,
-     0,   289,   290,    99,   100,     0,     0,     0,     0,     0,
-     0,     0,  1150,     0,     0,   293,     0,     0,     0,     0,
-     0,   101,   102,   294,   103,   295,   296,     0,     0,     0,
-     0,     0,     0,     0,   105,     0,     0,   106,   107,   108,
-     0,   109,     0,     0,     0,   110,     0,   111,   112,     0,
-     0,     0,     0,     0,     0,     0,   113,   114,   115,     0,
-     0,     0,     0,     0,     0,   116,     0,   117,     0,     0,
-     0,   118,     0,     0,   297,     0,   119,   120,     0,     0,
-     0,     0,     0,   121,     0,   122,     0,    86,     0,     0,
-   123,     0,   298,   199,-32768,   260,   300,   301,     0,     0,
-   575,   270,   271,  1152,     0,     0,  1153,  1154,  1155,     0,
-     0,   177,     0,     0,     0,     0,  1156,    87,   276,     0,
-     0,     0,     0,     0,   277,     0,     0,     0,     0,     0,
-     0,   280,     0,     0,     0,     0,     0,     0,     0,    89,
-     0,     0,     0,   281,     0,     0,     0,    90,    91,     0,
-     0,     0,     0,    92,    93,    94,   282,     0,   283,     0,
-     0,     0,     0,   286,     0,    95,     0,     0,     0,     0,
-   576,     0,     0,    96,     0,     0,     0,     0,     0,     0,
-    97,     0,     0,   577,     0,   289,   290,    99,   100,     0,
-     0,     0,   578,     0,     0,     0,     0,     0,     0,   293,
-     0,     0,     0,     0,     0,   101,   102,   294,   103,   295,
-   296,     0,     0,     0,     0,     0,     0,     0,   105,     0,
-     0,   106,   107,   108,     0,   109,     0,     0,     0,   110,
-     0,   111,   112,     0,     0,     0,     0,     0,     0,     0,
-   113,   114,   115,     0,   178,     0,     0,     0,     0,   116,
-     0,   117,     0,     0,     0,   118,     0,     0,   297,     0,
-   119,   120,     0,     0,     0,     0,     0,   121,     0,   122,
-     0,    86,     0,     0,   123,     0,   298,   199,   579,   260,
-   300,   301,     0,     0,   575,   270,   271,   580,     0,     0,
-   581,     0,     0,     0,     0,   177,     0,     0,     0,     0,
-   582,    87,   276,     0,     0,     0,     0,     0,   277,     0,
-     0,     0,     0,     0,     0,   280,     0,     0,     0,     0,
-     0,     0,     0,    89,     0,     0,     0,   281,     0,     0,
-     0,    90,    91,     0,     0,     0,     0,    92,    93,    94,
-   282,     0,   283,     0,     0,     0,     0,   286,     0,    95,
-     0,     0,     0,     0,   576,     0,     0,    96,     0,     0,
-     0,     0,     0,     0,    97,     0,     0,   577,     0,   289,
-   290,    99,   100,     0,     0,     0,   578,     0,     0,     0,
-     0,     0,     0,   293,     0,     0,     0,     0,     0,   101,
-   102,   294,   103,   295,   296,     0,     0,     0,     0,     0,
-     0,     0,   105,     0,     0,   106,   107,   108,     0,   109,
-     0,     0,     0,   110,     0,   111,   112,     0,     0,     0,
-     0,     0,     0,     0,   113,   114,   115,     0,   178,     0,
-     0,     0,     0,   116,     0,   117,     0,     0,     0,   118,
-     0,     0,   297,     0,   119,   120,     0,     0,     0,     0,
-     0,   121,     0,   122,     0,    86,     0,     0,   123,     0,
-   298,   199,-32768,   260,   300,   301,     0,     0,   921,   270,
-   271,   580,     0,     0,   581,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   582,    87,   276,     0,     0,     0,
-     0,     0,   277,     0,     0,     0,     0,     0,     0,   280,
-     0,     0,     0,     0,     0,     0,     0,    89,     0,     0,
-     0,   281,     0,     0,     0,    90,    91,     0,     0,     0,
-     0,    92,    93,    94,   282,     0,   283,     0,   922,     0,
-   923,   286,     0,    95,     0,     0,     0,     0,     0,     0,
-     0,    96,     0,     0,     0,     0,     0,     0,    97,     0,
-     0,     0,     0,   289,   290,    99,   100,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   293,     0,     0,
-     0,     0,     0,   101,   102,   294,   103,   295,   296,     0,
-     0,     0,     0,     0,     0,     0,   105,     0,     0,   106,
-   107,   108,     0,   109,     0,     0,     0,   110,     0,   111,
-   112,     0,     0,     0,     0,     0,     0,     0,   113,   114,
-   115,     0,     0,     0,     0,     0,     0,   116,     0,   117,
-     0,     0,     0,   118,     0,     0,   297,     0,   119,   120,
-     0,     0,     0,     0,     0,   121,     0,   122,     0,    86,
-     0,     0,   123,     0,   298,   199,   924,   260,   300,   301,
-     0,     0,   921,   270,   271,   925,     0,     0,   926,   927,
-   928,     0,     0,     0,     0,     0,     0,     0,   929,    87,
-   276,     0,     0,     0,     0,     0,   277,     0,     0,     0,
-     0,     0,     0,   280,     0,     0,     0,     0,     0,     0,
-     0,    89,     0,     0,     0,   281,     0,     0,     0,    90,
-    91,     0,     0,     0,     0,    92,    93,    94,   282,     0,
-   283,     0,   922,     0,   923,   286,     0,    95,     0,     0,
-     0,     0,     0,     0,     0,    96,     0,     0,     0,     0,
-     0,     0,    97,     0,     0,     0,     0,   289,   290,    99,
-   100,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   293,     0,     0,     0,     0,     0,   101,   102,   294,
-   103,   295,   296,     0,     0,     0,     0,     0,     0,     0,
-   105,     0,     0,   106,   107,   108,     0,   109,     0,     0,
-     0,   110,     0,   111,   112,     0,     0,     0,     0,     0,
-     0,     0,   113,   114,   115,     0,     0,     0,     0,     0,
-     0,   116,     0,   117,     0,     0,     0,   118,     0,     0,
-   297,    86,   119,   120,     0,     0,     0,     0,     0,   121,
-     0,   122,     0,     0,     0,     0,   123,     0,   298,   199,
--32768,   260,   300,   301,     0,   177,     0,     0,     0,   925,
-     0,    87,   926,   927,   928,     0,     0,     0,    88,     0,
-     0,     0,   929,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,    89,     0,     0,     0,     0,     0,     0,
-     0,    90,    91,     0,     0,     0,     0,    92,    93,    94,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,    95,
-     0,     0,     0,     0,     0,     0,     0,    96,     0,     0,
-     0,     0,     0,     0,    97,     0,     0,     0,     0,    98,
-     0,    99,   100,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   101,
-   102,     0,   103,     0,   104,     0,     0,     0,     0,     0,
-     0,     0,   105,     0,    86,   106,   107,   108,     0,   109,
-     0,     0,     0,   110,     0,   111,   112,     0,     0,     0,
-     0,     0,     0,     0,   113,   114,   115,     0,   178,     0,
-     0,     0,     0,   116,    87,   117,     0,     0,     0,   118,
-     0,    88,     0,     0,   119,   120,     0,     0,     0,     0,
-     0,   121,     0,   122,     0,     0,    89,     0,   123,     0,
-   124,     0,     0,     0,    90,    91,     0,     0,     0,     0,
-    92,    93,    94,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,    95,     0,   893,     0,     0,     0,     0,     0,
-    96,     0,     0,     0,     0,     0,     0,    97,     0,     0,
-     0,     0,    98,     0,    99,   100,     0,     0,     0,     0,
+     0,  1132,     0,     0,     0,   127,   127,   645,   646,   646,
+   646,   646,   646,  1133,   127,     0,     0,     0,   127,     0,
+     0,     0,     0,     0,     0,   646,     0,     0,     0,     0,
+     0,     0,   447,     0,   603,     0,   603,   603,     0,     0,
+     0,     0,   127,   841,   448,  1134,     0,     0,     0,     0,
+  1135,  1136,  1137,  1138,  1139,  1140,  1141,     0,     0,     0,
+     0,     0,     0,     0,  1142,     0,     0,  1269,  1128,     0,
+     0,     0,     0,     0,     0,     0,   449,     0,   857,     0,
+     0,   450,   451,   452,   453,   454,   455,   456,     0,     0,
+     0,     0,   873,     0,     0,   457,   434,   939,     0,     0,
+   434,     0,     0,     0,   434,     0,     0,     0,   434,     0,
+     0,     0,   434,     0,     0,     0,   434,     0,     0,     0,
+   434,     0,  1129,     0,   434,     0,     0,     0,  1130,     0,
+     0,     0,   425,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   440,     0,  1131,     0,     0,   441,     0,     0,
+     0,   591,   591,   591,   591,     0,     0,     0,     0,     0,
+   127,     0,   127,  1128,     0,     0,     0,     0,     0,     0,
+   592,   592,   127,     0,     0,     0,     0,   127,     0,   592,
+   592,   592,   592,   592,   592,     0,     0,     0,     0,     0,
+     0,   442,     0,     0,     0,     0,   443,     0,     0,     0,
+     0,     0,   444,   425,   645,   645,   645,   645,   645,   127,
+     0,     0,   445,  1132,     0,     0,   646,  1129,   446,   592,
+     0,   645,     0,  1130,  1010,  1133,     0,     0,   646,   646,
+   646,   646,   646,   646,     0,     0,     0,     0,   603,  1131,
+     0,   127,     0,     0,     0,     0,     0,   127,     0,     0,
+     0,     0,     0,     0,  1030,     0,   425,  1134,     0,     0,
+     0,     0,  1135,  1136,  1137,  1138,  1139,  1140,  1141,     0,
+     0,     0,   475,   425,     0,     0,  1142,     0,     0,  1379,
+     0,     0,     0,     0,   425,     0,   603,   447,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   448,
+   939,     0,   939,   939,   939,   939,   939,   939,  1132,     0,
+     0,     0,     0,     0,     0,     0,   127,     0,   127,     0,
+  1133,     0,   593,     0,  1167,     0,     0,     0,     0,     0,
+     0,   449,     0,  1096,     0,     0,   450,   451,   452,   453,
+   454,   455,   456,     0,     0,     0,     0,     0,   647,     0,
+   457,  -581,  1134,     0,     0,     0,     0,  1135,  1136,  1137,
+  1138,  1139,  1140,  1141,     0,     0,   591,   591,     0,     0,
+     0,  1142,     0,   425,     0,   591,   591,   591,   591,   591,
+   591,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   440,     0,     0,     0,     0,   441,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   101,   102,     0,   103,     0,   104,     0,     0,
-     0,     0,     0,     0,     0,   105,     0,     0,   106,   107,
-   108,     0,   109,     0,     0,     0,   110,     0,   111,   112,
-     0,     0,     0,     0,     0,    86,     0,   113,   114,   115,
-     0,     0,     0,     0,     0,     0,   116,     0,   117,     0,
-     0,     0,   118,     0,     0,   972,     0,   119,   120,     0,
-     0,     0,     0,     0,   121,    87,   122,     0,   533,     0,
-     0,   123,    88,   124,   199,   251,   260,     0,   973,     0,
-   229,   230,   231,   232,   974,   234,   235,    89,     0,     0,
-     0,     0,     0,     0,   226,    90,    91,     0,     0,     0,
-     0,    92,    93,    94,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,    95,     0,     0,     0,     0,     0,     0,
-     0,    96,   227,     0,     0,     0,     0,     0,    97,     0,
-     0,     0,     0,    98,     0,    99,   100,     0,     0,     0,
+     0,   425,   645,     0,     0,   591,     0,     0,   127,     0,
+     0,     0,     0,     0,   645,   645,   645,   645,   645,   645,
+     0,   425,     0,     0,     0,     0,     0,   127,     0,     0,
+   646,     0,     0,   442,     0,     0,     0,     0,   443,     0,
+   603,   603,   603,     0,   444,     0,     0,     0,     0,     0,
+     0,     0,   127,     0,   445,   127,     0,   127,   425,   425,
+   446,   127,     0,     0,     0,     0,     0,  1208,     0,     0,
+     0,   127,   127,     0,     0,     0,     0,   603,   603,   603,
+   939,   425,   593,   593,   593,   593,     0,     0,   939,     0,
+   939,   939,     0,     0,   939,   939,   939,   939,   939,   939,
+   939,   939,     0,     0,   939,     0,     0,     0,     0,     0,
+     0,   939,     0,     0,     0,   127,     0,     0,     0,     0,
+  1167,  1167,  1167,  1167,  1167,  1167,     0,     0,     0,   447,
+     0,     0,   127,     0,     0,   647,   647,   647,   647,   647,
+     0,   448,   440,     0,     0,     0,  1328,   441,     0,     0,
+     0,     0,   647,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   127,     0,     0,     0,
+     0,   127,     0,   449,     0,     0,     0,     0,   450,   451,
+   452,   453,   454,   455,   456,   127,     0,   127,     0,     0,
+     0,   442,   457,  -580,     0,     0,   443,     0,     0,     0,
+     0,     0,   444,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   445,     0,     0,     0,     0,     0,   446,     0,
+     0,     0,     0,  1167,   940,     0,   645,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   101,   102,     0,   103,     0,   104,     0,
-     0,     0,     0,     0,     0,     0,   105,     0,     0,   106,
-   107,   108,     0,   109,     0,     0,     0,   110,     0,   111,
-   112,     0,     0,     0,     0,     0,    86,     0,   113,   114,
-   115,     0,     0,     0,     0,     0,     0,   116,     0,   117,
-     0,     0,     0,   118,     0,     0,     0,     0,   119,   120,
-     0,     0,     0,     0,     0,   121,    87,   122,     0,     0,
-     0,     0,   123,    88,   124,     0,   228,     0,     0,     0,
-     0,   229,   230,   231,   232,   233,   234,   235,    89,     0,
-     0,     0,     0,     0,     0,   226,    90,    91,     0,     0,
-     0,     0,    92,    93,    94,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,    95,     0,     0,     0,     0,     0,
-     0,     0,    96,   227,     0,     0,     0,     0,     0,    97,
-     0,     0,     0,     0,    98,     0,    99,   100,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   101,   102,     0,   103,     0,   104,
-     0,     0,     0,     0,     0,     0,     0,   105,     0,     0,
-   106,   107,   108,     0,   109,     0,     0,     0,   110,     0,
-   111,   112,     0,     0,     0,     0,     0,    86,     0,   113,
-   114,   115,     0,     0,     0,     0,     0,     0,   116,     0,
-   117,     0,     0,     0,   118,     0,     0,     0,     0,   119,
-   120,   177,     0,     0,     0,     0,   121,    87,   122,     0,
-     0,     0,     0,   123,    88,   124,     0,   228,     0,     0,
-     0,     0,   229,   230,   231,   232,   233,   234,   235,    89,
-     0,     0,     0,     0,     0,     0,     0,    90,    91,     0,
-     0,     0,     0,    92,    93,    94,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,    95,     0,     0,     0,     0,
-     0,     0,     0,    96,     0,     0,     0,     0,     0,     0,
-    97,     0,     0,     0,     0,    98,     0,    99,   100,     0,
+     0,     0,     0,     0,     0,  1167,     0,     0,     0,     0,
+     0,     0,     0,     0,  1167,  1167,  1167,  1167,  1167,  1167,
+  1167,  1167,     0,  1167,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,  1363,     0,     0,     0,   447,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   593,   593,   448,
+     0,     0,     0,     0,     0,     0,   593,   593,   593,   593,
+   593,   593,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   101,   102,     0,   103,     0,
-   104,     0,     0,     0,     0,     0,     0,     0,   105,     0,
-     0,   106,   107,   108,     0,   109,    86,     0,     0,   110,
-     0,   111,   112,     0,     0,     0,     0,     0,     0,     0,
-   113,   114,   115,     0,   178,     0,     0,     0,     0,   116,
-     0,   117,     0,     0,     0,   118,    87,     0,     0,     0,
-   119,   120,     0,    88,     0,     0,     0,   121,     0,   122,
-     0,     0,     0,     0,   123,     0,   124,     0,    89,     0,
-   300,     0,     0,     0,     0,     0,    90,    91,   469,     0,
-     0,     0,    92,    93,    94,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,    95,     0,     0,     0,     0,     0,
-     0,     0,    96,     0,     0,     0,     0,     0,     0,    97,
-     0,     0,     0,     0,    98,     0,    99,   100,     0,     0,
+     0,   449,     0,     0,   939,     0,   450,   451,   452,   453,
+   454,   455,   456,   647,   898,     0,   593,     0,     0,   899,
+   457,     0,     0,     0,     0,   647,   647,   647,   647,   647,
+   647,     0,   273,   274,  1069,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    88,   279,
+     0,     0,     0,     0,     0,   420,     0,     0,     0,     0,
+     0,     0,   283,  1167,     0,     0,     0,     0,     0,     0,
+    90,     0,     0,     0,   284,     0,     0,     0,    87,     0,
+     0,     0,     0,     0,     0,    94,    95,     0,   285,     0,
+   286,   929,   273,   274,     0,   289,     0,   940,     0,   940,
+   940,   940,   940,   940,   940,     0,     0,     0,    88,   279,
+     0,     0,    98,     0,     0,   280,     0,   421,   293,     0,
+     0,  1168,   283,     0,     0,     0,     0,     0,     0,     0,
+    90,   296,     0,     0,   284,     0,     0,   102,    91,    92,
+     0,     0,   422,     0,    93,    94,    95,     0,   285,     0,
+   286,     0,   930,     0,   931,   289,     0,    96,     0,     0,
+     0,     0,     0,     0,     0,    97,     0,     0,     0,     0,
+     0,     0,    98,     0,     0,  1508,     0,   292,   293,   100,
+   101,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   300,   296,     0,     0,     0,     0,     0,   102,   103,   297,
+   104,   298,   299,     0,     0,     0,     0,     0,     0,   423,
+   106,     0,     0,   107,   108,   109,     0,   110,     0,     0,
+     0,   111,     0,   112,   113,     0,     0,     0,     0,     0,
+     0,     0,   114,   115,   116,     0,     0,   647,  1228,     0,
+   440,   117,   778,   118,     0,   441,     0,   119,     0,     0,
+   300,     0,   120,   121,     0,     0,     0,     0,     0,   122,
+   123,     0,   124,     0,     0,     0,     0,   125,     0,   301,
+   202,   932,   263,   303,   304,     0,     0,     0,     0,     0,
+   933,     0,     0,   934,   935,   936,     0,   940,     0,   442,
+     0,     0,   937,  1286,   443,   940,     0,   940,   940,     0,
+   444,   940,   940,   940,   940,   940,   940,   940,   940,   131,
+   445,   940,     0,     0,     0,     0,   446,     0,   940,   132,
+     0,   133,     0,     0,     0,     0,   134,  1168,  1168,  1168,
+  1168,  1168,  1168,   135,     0,   136,     0,     0,   137,     0,
+     0,     0,     0,     0,     0,     0,     0,   138,     0,     0,
+     0,     0,     0,     0,   139,     0,     0,  -304,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   101,   102,     0,   103,     0,   104,
-     0,     0,     0,     0,     0,     0,     0,   105,     0,     0,
-   106,   107,   108,     0,   109,    86,     0,     0,   110,     0,
-   111,   112,     0,     0,     0,     0,     0,     0,     0,   113,
-   114,   115,     0,     0,     0,     0,     0,     0,   116,     0,
-   117,     0,     0,     0,   118,    87,     0,     0,     0,   119,
-   120,     0,    88,     0,     0,     0,   121,     0,   122,     0,
-     0,     0,     0,   123,     0,   124,     0,    89,     0,     0,
-     0,     0,     0,     0,     0,    90,    91,   371,     0,     0,
-     0,    92,    93,    94,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,    95,     0,     0,     0,     0,     0,     0,
-     0,    96,     0,     0,     0,     0,     0,     0,    97,     0,
-     0,     0,     0,    98,     0,    99,   100,     0,     0,     0,
+     0,     0,     0,     0,   140,     0,     0,     0,     0,     0,
+     0,   141,   142,     0,     0,   447,     0,     0,     0,   143,
+  1348,     0,     0,     0,     0,     0,     0,   448,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   101,   102,     0,   103,     0,   104,     0,
-     0,     0,     0,     0,     0,     0,   105,     0,     0,   106,
-   107,   108,     0,   109,    86,     0,     0,   110,     0,   111,
-   112,     0,     0,     0,     0,     0,     0,     0,   113,   114,
-   115,     0,     0,     0,     0,     0,     0,   116,     0,   117,
-     0,     0,     0,   118,    87,     0,     0,     0,   119,   120,
-     0,    88,     0,     0,     0,   121,     0,   122,     0,     0,
-     0,     0,   123,     0,   124,     0,    89,     0,     0,     0,
-     0,     0,     0,     0,    90,    91,   691,     0,     0,     0,
-    92,    93,    94,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,    95,     0,     0,     0,     0,     0,     0,     0,
-    96,     0,     0,     0,     0,     0,     0,    97,     0,     0,
-     0,     0,    98,     0,    99,   100,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   101,   102,     0,   103,     0,   104,     0,     0,
-     0,     0,     0,     0,     0,   105,     0,     0,   106,   107,
-   108,     0,   109,    86,     0,     0,   110,     0,   111,   112,
-     0,     0,     0,     0,     0,     0,     0,   113,   114,   115,
-     0,     0,     0,     0,     0,     0,   116,     0,   117,     0,
-     0,     0,   118,    87,     0,     0,     0,   119,   120,     0,
-    88,     0,     0,     0,   121,     0,   122,     0,     0,     0,
-     0,   123,     0,   124,     0,    89,     0,     0,     0,     0,
-     0,     0,     0,    90,    91,   904,     0,     0,     0,    92,
-    93,    94,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,    95,     0,     0,     0,     0,     0,     0,     0,    96,
-     0,     0,     0,     0,     0,     0,    97,     0,     0,     0,
-     0,    98,     0,    99,   100,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   449,
+  1168,     0,     0,     0,   450,   451,   452,   453,   454,   455,
+   456,     0,     0,     0,     0,     0,     0,     0,   457,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   101,   102,     0,   103,     0,   104,     0,     0,     0,
-     0,     0,     0,     0,   105,     0,     0,   106,   107,   108,
-     0,   109,    86,     0,     0,   110,     0,   111,   112,     0,
-     0,     0,     0,     0,     0,     0,   113,   114,   115,     0,
-     0,     0,     0,     0,     0,   116,   177,   117,     0,     0,
-     0,   118,    87,     0,     0,     0,   119,   120,     0,    88,
-     0,     0,     0,   121,     0,   122,     0,     0,     0,     0,
-   123,     0,   124,     0,    89,     0,     0,     0,     0,     0,
-     0,     0,    90,    91,  1097,     0,     0,     0,    92,    93,
-    94,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    95,     0,     0,     0,     0,     0,     0,     0,    96,     0,
+     0,     0,  1168,     0,     0,     0,     0,     0,     0,     0,
+    87,  1168,  1168,  1168,  1168,  1168,  1168,  1168,  1168,     0,
+  1168,     0,     0,   272,   273,   274,     0,     0,     0,     0,
+     0,     0,     0,     0,   179,   275,   276,   277,   278,     0,
+    88,   279,     0,     0,     0,     0,     0,   280,     0,     0,
+     0,   281,   282,     0,   283,     0,     0,  1418,     0,     0,
+     0,     0,    90,     0,     0,     0,   284,     0,     0,     0,
+    91,    92,     0,     0,     0,     0,    93,    94,    95,     0,
+   285,   940,   286,     0,   287,     0,   288,   289,     0,    96,
+     0,     0,     0,     0,   290,     0,     0,    97,     0,     0,
+     0,     0,     0,     0,    98,     0,     0,   291,     0,   292,
+   293,   100,   101,     0,     0,     0,   294,     0,     0,     0,
+   295,     0,     0,   296,     0,     0,     0,     0,     0,   102,
+   103,   297,   104,   298,   299,     0,     0,     0,     0,     0,
+  1168,     0,   106,     0,     0,   107,   108,   109,     0,   110,
+     0,     0,     0,   111,     0,   112,   113,     0,     0,     0,
+     0,     0,     0,     0,   114,   115,   116,     0,   180,     0,
+     0,     0,     0,   117,     0,   118,     0,     0,     0,   119,
+     0,     0,   300,     0,   120,   121,     0,     0,     0,     0,
+     0,   122,   123,     0,   124,     0,     0,     0,     0,   125,
+     0,   301,   202,   302,   263,   303,   304,    87,     0,     0,
+     0,     0,   305,   701,     0,   307,   308,   309,     0,     0,
+   272,   273,   274,     0,   310,   702,     0,     0,     0,     0,
+     0,   179,   275,   276,   277,   278,     0,    88,   279,     0,
+     0,     0,     0,     0,   280,     0,     0,     0,   281,   282,
+     0,   283,     0,     0,     0,     0,     0,     0,     0,    90,
+     0,     0,     0,   284,     0,     0,     0,    91,    92,     0,
+     0,     0,     0,    93,    94,    95,     0,   285,     0,   286,
+     0,   287,     0,   288,   289,     0,    96,     0,     0,     0,
+     0,   290,     0,     0,    97,     0,     0,     0,     0,     0,
+     0,    98,     0,     0,   291,     0,   292,   293,   100,   101,
+     0,     0,     0,   294,     0,     0,     0,   295,     0,     0,
+   296,     0,     0,     0,     0,     0,   102,   103,   297,   104,
+   298,   299,     0,     0,     0,     0,     0,     0,     0,   106,
+     0,     0,   107,   108,   109,     0,   110,     0,     0,     0,
+   111,     0,   112,   113,     0,     0,     0,     0,     0,     0,
+     0,   114,   115,   116,     0,   180,     0,     0,     0,     0,
+   117,     0,   118,     0,     0,     0,   119,     0,     0,   300,
+     0,   120,   121,     0,     0,     0,     0,     0,   122,   123,
+     0,   124,     0,     0,     0,     0,   125,     0,   301,   202,
+   302,   263,   303,   304,    87,     0,     0,     0,     0,   305,
+     0,     0,   307,   308,   309,     0,     0,   272,   273,   274,
+     0,   310,  1027,     0,     0,     0,     0,     0,   179,   275,
+   276,   277,   278,     0,    88,   279,     0,     0,     0,     0,
+     0,   280,     0,     0,     0,   281,   282,     0,   283,     0,
+     0,     0,     0,     0,     0,     0,    90,     0,     0,     0,
+   284,     0,     0,     0,    91,    92,     0,     0,     0,     0,
+    93,    94,    95,     0,   285,     0,   286,     0,   287,     0,
+   288,   289,     0,    96,     0,     0,     0,     0,   290,     0,
+     0,    97,     0,     0,     0,     0,     0,     0,    98,     0,
+     0,   291,     0,   292,   293,   100,   101,     0,     0,     0,
+   294,     0,     0,     0,   295,     0,     0,   296,     0,     0,
+     0,     0,     0,   102,   103,   297,   104,   298,   299,     0,
+     0,     0,     0,     0,     0,     0,   106,     0,     0,   107,
+   108,   109,     0,   110,     0,     0,     0,   111,     0,   112,
+   113,     0,     0,     0,     0,     0,     0,     0,   114,   115,
+   116,     0,   180,     0,     0,     0,     0,   117,     0,   118,
+     0,     0,     0,   119,     0,     0,   300,    87,   120,   121,
+     0,     0,     0,     0,     0,   122,   123,     0,   124,     0,
+  1153,   273,   274,   125,     0,   301,   202,   302,   263,   303,
+   304,     0,  1154,  1155,  1156,  1157,   305,    88,   279,   307,
+   308,   309,     0,     0,   280,     0,     0,     0,   310,  1064,
+     0,   283,     0,     0,     0,     0,     0,     0,     0,    90,
+     0,     0,     0,   284,     0,     0,     0,    91,    92,     0,
+     0,     0,     0,    93,    94,    95,     0,   285,     0,   286,
+     0,     0,     0,  1158,   289,     0,    96,     0,     0,     0,
+     0,     0,     0,     0,    97,     0,     0,     0,     0,     0,
+     0,    98,     0,     0,     0,     0,   292,   293,   100,   101,
+     0,     0,     0,     0,     0,     0,     0,  1159,     0,     0,
+   296,     0,     0,     0,     0,     0,   102,   103,   297,   104,
+   298,   299,     0,     0,     0,     0,     0,     0,     0,   106,
+     0,     0,   107,   108,   109,     0,   110,     0,     0,     0,
+   111,     0,   112,   113,     0,     0,     0,     0,     0,     0,
+     0,   114,   115,   116,     0,     0,     0,     0,     0,     0,
+   117,     0,   118,     0,     0,     0,   119,     0,     0,   300,
+    87,   120,   121,     0,     0,     0,     0,     0,   122,   123,
+     0,   124,     0,     0,   273,   274,   125,     0,   301,   202,
+  1160,   263,   303,   304,     0,     0,     0,     0,     0,  1161,
+    88,   519,  1162,  1163,  1164,     0,     0,   520,     0,     0,
+     0,  1165,  1393,     0,   521,     0,     0,     0,     0,     0,
+     0,     0,    90,     0,     0,     0,     0,     0,     0,     0,
+    91,    92,     0,     0,     0,     0,    93,    94,    95,     0,
+   285,     0,   286,     0,     0,     0,     0,   522,     0,    96,
+     0,     0,     0,     0,     0,     0,     0,    97,     0,     0,
+     0,     0,     0,     0,    98,     0,     0,     0,     0,    99,
+     0,   100,   101,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   296,     0,     0,     0,     0,     0,   102,
+   103,     0,   104,     0,   105,     0,     0,     0,     0,     0,
+     0,     0,   106,     0,     0,   107,   108,   109,     0,   110,
+     0,     0,     0,   111,     0,   112,   113,     0,     0,     0,
+     0,     0,     0,     0,   114,   115,   116,     0,     0,     0,
+     0,     0,     0,   117,     0,   118,     0,     0,     0,   119,
+     0,     0,     0,     0,   120,   121,     0,     0,     0,     0,
+    87,   122,   123,     0,   124,     0,     0,     0,     0,   125,
+   599,   126,     0,   272,   273,   274,     0,     0,     0,     0,
+     0,     0,     0,     0,   179,   275,   276,   277,   278,     0,
+    88,   279,     0,     0,     0,   523,     0,   280,     0,     0,
+     0,   281,   282,     0,   283,     0,     0,   600,     0,     0,
+     0,     0,    90,     0,     0,     0,   284,     0,     0,     0,
+    91,    92,   601,     0,     0,     0,    93,    94,    95,     0,
+   285,     0,   286,     0,   287,     0,   288,   289,     0,    96,
+     0,     0,     0,     0,   290,     0,     0,    97,     0,     0,
+     0,     0,     0,     0,    98,     0,     0,   291,     0,   292,
+   293,   100,   101,     0,   602,     0,   294,     0,     0,     0,
+   295,     0,     0,   296,     0,     0,     0,     0,     0,   102,
+   103,   297,   104,   298,   299,     0,     0,     0,     0,     0,
+     0,     0,   106,     0,     0,   107,   108,   109,     0,   110,
+     0,     0,     0,   111,     0,   112,   113,     0,     0,     0,
+     0,     0,     0,     0,   114,   115,   116,     0,   180,     0,
+     0,     0,     0,   117,     0,   118,     0,     0,     0,   119,
+     0,     0,   300,     0,   120,   121,     0,     0,     0,     0,
+     0,   122,   123,     0,   124,     0,     0,     0,     0,   125,
+     0,   301,   202,   302,   263,   303,   304,     0,    87,     0,
+     0,     0,   305,     0,     0,   307,   308,   309,  1015,     0,
+     0,   272,   273,   274,   310,     0,     0,     0,     0,     0,
+     0,     0,   179,   275,   276,   277,   278,     0,    88,   279,
+     0,     0,     0,     0,     0,   280,     0,     0,     0,   281,
+   282,     0,   283,     0,     0,   600,     0,     0,     0,     0,
+    90,     0,     0,     0,   284,     0,     0,     0,    91,    92,
+  1016,     0,     0,     0,    93,    94,    95,     0,   285,     0,
+   286,     0,   287,     0,   288,   289,     0,    96,     0,     0,
+     0,     0,   290,     0,     0,    97,     0,     0,     0,     0,
+     0,     0,    98,     0,     0,   291,     0,   292,   293,   100,
+   101,     0,  1017,     0,   294,     0,     0,     0,   295,     0,
+     0,   296,     0,     0,     0,     0,     0,   102,   103,   297,
+   104,   298,   299,     0,     0,     0,     0,     0,     0,     0,
+   106,     0,     0,   107,   108,   109,     0,   110,     0,     0,
+     0,   111,     0,   112,   113,     0,     0,     0,     0,     0,
+     0,     0,   114,   115,   116,     0,   180,     0,     0,     0,
+     0,   117,     0,   118,     0,     0,     0,   119,     0,     0,
+   300,     0,   120,   121,     0,     0,     0,     0,     0,   122,
+   123,     0,   124,     0,     0,     0,     0,   125,     0,   301,
+   202,   302,   263,   303,   304,     0,    87,     0,     0,     0,
+   305,     0,     0,   307,   308,   309,  1052,     0,     0,   272,
+   273,   274,   310,     0,     0,     0,     0,     0,     0,     0,
+   179,   275,   276,   277,   278,     0,    88,   279,     0,     0,
+     0,     0,     0,   280,     0,     0,     0,   281,   282,     0,
+   283,     0,     0,   600,     0,     0,     0,     0,    90,     0,
+     0,     0,   284,     0,     0,     0,    91,    92,  1053,     0,
+     0,     0,    93,    94,    95,     0,   285,     0,   286,     0,
+   287,     0,   288,   289,     0,    96,     0,     0,     0,     0,
+   290,     0,     0,    97,     0,     0,     0,     0,     0,     0,
+    98,     0,     0,   291,     0,   292,   293,   100,   101,     0,
+  1054,     0,   294,     0,     0,     0,   295,     0,     0,   296,
+     0,     0,     0,     0,     0,   102,   103,   297,   104,   298,
+   299,     0,     0,     0,     0,     0,     0,     0,   106,     0,
+     0,   107,   108,   109,     0,   110,     0,     0,     0,   111,
+     0,   112,   113,     0,     0,     0,     0,     0,     0,     0,
+   114,   115,   116,     0,   180,     0,     0,     0,     0,   117,
+     0,   118,     0,     0,     0,   119,     0,     0,   300,     0,
+   120,   121,     0,     0,     0,     0,     0,   122,   123,     0,
+   124,    87,     0,     0,     0,   125,     0,   301,   202,   302,
+   263,   303,   304,     0,   272,   273,   274,     0,   305,     0,
+     0,   307,   308,   309,     0,   179,   275,   276,   277,   278,
+   310,    88,   279,     0,     0,     0,     0,     0,   280,     0,
+     0,     0,   281,   282,     0,   283,     0,     0,     0,     0,
+     0,     0,     0,    90,     0,     0,     0,   284,     0,     0,
+     0,    91,    92,     0,     0,     0,     0,    93,    94,    95,
+     0,   285,     0,   286,     0,   287,     0,   288,   289,     0,
+    96,     0,     0,     0,     0,   290,     0,     0,    97,     0,
+     0,     0,     0,     0,     0,    98,     0,     0,   291,     0,
+   292,   293,   100,   101,     0,     0,     0,   294,     0,     0,
+     0,   295,     0,     0,   296,     0,     0,     0,     0,     0,
+   102,   103,   297,   104,   298,   299,     0,     0,     0,     0,
+     0,     0,     0,   106,     0,     0,   107,   108,   109,     0,
+   110,     0,     0,     0,   111,     0,   112,   113,     0,     0,
+     0,     0,     0,     0,     0,   114,   115,   116,     0,   180,
+     0,     0,     0,     0,   117,     0,   118,     0,     0,     0,
+   119,     0,     0,   300,     0,   120,   121,     0,     0,     0,
+     0,     0,   122,   123,     0,   124,    87,     0,   663,     0,
+   125,   664,   301,   202,   302,   263,   303,   304,     0,   272,
+   273,   274,     0,   305,   306,     0,   307,   308,   309,     0,
+   179,   275,   276,   277,   278,   310,    88,   279,     0,     0,
+     0,     0,     0,   280,     0,     0,     0,   281,   282,     0,
+   283,     0,     0,     0,     0,     0,     0,     0,    90,     0,
+     0,     0,   284,     0,     0,     0,    91,    92,     0,     0,
+     0,     0,    93,    94,    95,     0,   285,     0,   286,     0,
+   287,     0,     0,   289,     0,    96,     0,     0,     0,     0,
+   290,     0,     0,    97,     0,     0,     0,     0,     0,     0,
+    98,     0,     0,   291,     0,   292,   293,   100,   101,     0,
+     0,     0,   294,     0,     0,     0,   295,     0,     0,   296,
+     0,     0,     0,     0,     0,   102,   103,   297,   104,   298,
+   299,     0,     0,     0,     0,     0,     0,     0,   106,     0,
+     0,   107,   108,   109,     0,   110,     0,     0,     0,   111,
+     0,   112,   113,     0,     0,     0,     0,     0,     0,     0,
+   114,   115,   116,     0,   180,     0,     0,     0,     0,   117,
+     0,   118,     0,     0,     0,   119,     0,     0,   300,     0,
+   120,   121,     0,     0,     0,     0,     0,   122,   123,     0,
+   124,    87,     0,   667,     0,   125,   668,   301,   202,   302,
+   263,   303,   304,     0,   272,   273,   274,     0,   305,     0,
+     0,   307,   308,   309,     0,   179,   275,   276,   277,   278,
+   665,    88,   279,     0,     0,     0,     0,     0,   280,     0,
+     0,     0,   281,   282,     0,   283,     0,     0,     0,     0,
+     0,     0,     0,    90,     0,     0,     0,   284,     0,     0,
+     0,    91,    92,     0,     0,     0,     0,    93,    94,    95,
+     0,   285,     0,   286,     0,   287,     0,     0,   289,     0,
+    96,     0,     0,     0,     0,   290,     0,     0,    97,     0,
+     0,     0,     0,     0,     0,    98,     0,     0,   291,     0,
+   292,   293,   100,   101,     0,     0,     0,   294,     0,     0,
+     0,   295,     0,     0,   296,     0,     0,     0,     0,     0,
+   102,   103,   297,   104,   298,   299,     0,     0,     0,     0,
+     0,     0,     0,   106,     0,     0,   107,   108,   109,     0,
+   110,     0,     0,     0,   111,     0,   112,   113,     0,     0,
+     0,     0,     0,     0,     0,   114,   115,   116,     0,   180,
+     0,     0,     0,     0,   117,     0,   118,     0,     0,     0,
+   119,     0,     0,   300,     0,   120,   121,     0,     0,     0,
+     0,     0,   122,   123,     0,   124,    87,     0,   671,     0,
+   125,   672,   301,   202,   302,   263,   303,   304,     0,   272,
+   273,   274,     0,   305,     0,     0,   307,   308,   309,     0,
+   179,   275,   276,   277,   278,   669,    88,   279,     0,     0,
+     0,     0,     0,   280,     0,     0,     0,   281,   282,     0,
+   283,     0,     0,     0,     0,     0,     0,     0,    90,     0,
+     0,     0,   284,     0,     0,     0,    91,    92,     0,     0,
+     0,     0,    93,    94,    95,     0,   285,     0,   286,     0,
+   287,     0,     0,   289,     0,    96,     0,     0,     0,     0,
+   290,     0,     0,    97,     0,     0,     0,     0,     0,     0,
+    98,     0,     0,   291,     0,   292,   293,   100,   101,     0,
+     0,     0,   294,     0,     0,     0,   295,     0,     0,   296,
+     0,     0,     0,     0,     0,   102,   103,   297,   104,   298,
+   299,     0,     0,     0,     0,     0,     0,     0,   106,     0,
+     0,   107,   108,   109,     0,   110,     0,     0,     0,   111,
+     0,   112,   113,     0,     0,     0,     0,     0,     0,     0,
+   114,   115,   116,     0,   180,     0,     0,     0,     0,   117,
+     0,   118,     0,     0,     0,   119,     0,     0,   300,     0,
+   120,   121,     0,     0,     0,     0,     0,   122,   123,     0,
+   124,    87,     0,   675,     0,   125,   676,   301,   202,   302,
+   263,   303,   304,     0,   272,   273,   274,     0,   305,     0,
+     0,   307,   308,   309,     0,   179,   275,   276,   277,   278,
+   673,    88,   279,     0,     0,     0,     0,     0,   280,     0,
+     0,     0,   281,   282,     0,   283,     0,     0,     0,     0,
+     0,     0,     0,    90,     0,     0,     0,   284,     0,     0,
+     0,    91,    92,     0,     0,     0,     0,    93,    94,    95,
+     0,   285,     0,   286,     0,   287,     0,     0,   289,     0,
+    96,     0,     0,     0,     0,   290,     0,     0,    97,     0,
+     0,     0,     0,     0,     0,    98,     0,     0,   291,     0,
+   292,   293,   100,   101,     0,     0,     0,   294,     0,     0,
+     0,   295,     0,     0,   296,     0,     0,     0,     0,     0,
+   102,   103,   297,   104,   298,   299,     0,     0,     0,     0,
+     0,     0,     0,   106,     0,     0,   107,   108,   109,     0,
+   110,     0,     0,     0,   111,     0,   112,   113,     0,     0,
+     0,     0,     0,     0,     0,   114,   115,   116,     0,   180,
+     0,     0,     0,     0,   117,     0,   118,     0,     0,     0,
+   119,     0,     0,   300,     0,   120,   121,     0,     0,     0,
+     0,     0,   122,   123,     0,   124,    87,     0,   679,     0,
+   125,   680,   301,   202,   302,   263,   303,   304,     0,   272,
+   273,   274,     0,   305,     0,     0,   307,   308,   309,     0,
+   179,   275,   276,   277,   278,   677,    88,   279,     0,     0,
+     0,     0,     0,   280,     0,     0,     0,   281,   282,     0,
+   283,     0,     0,     0,     0,     0,     0,     0,    90,     0,
+     0,     0,   284,     0,     0,     0,    91,    92,     0,     0,
+     0,     0,    93,    94,    95,     0,   285,     0,   286,     0,
+   287,     0,     0,   289,     0,    96,     0,     0,     0,     0,
+   290,     0,     0,    97,     0,     0,     0,     0,     0,     0,
+    98,     0,     0,   291,     0,   292,   293,   100,   101,     0,
+     0,     0,   294,     0,     0,     0,   295,     0,     0,   296,
+     0,     0,     0,     0,     0,   102,   103,   297,   104,   298,
+   299,     0,     0,     0,     0,     0,     0,     0,   106,     0,
+     0,   107,   108,   109,     0,   110,     0,     0,     0,   111,
+     0,   112,   113,     0,     0,     0,     0,     0,     0,     0,
+   114,   115,   116,     0,   180,     0,     0,     0,     0,   117,
+     0,   118,     0,     0,     0,   119,     0,     0,   300,     0,
+   120,   121,     0,     0,     0,     0,     0,   122,   123,     0,
+   124,    87,     0,   683,     0,   125,   684,   301,   202,   302,
+   263,   303,   304,     0,   272,   273,   274,     0,   305,     0,
+     0,   307,   308,   309,     0,   179,   275,   276,   277,   278,
+   681,    88,   279,     0,     0,     0,     0,     0,   280,     0,
+     0,     0,   281,   282,     0,   283,     0,     0,     0,     0,
+     0,     0,     0,    90,     0,     0,     0,   284,     0,     0,
+     0,    91,    92,     0,     0,     0,     0,    93,    94,    95,
+     0,   285,     0,   286,     0,   287,     0,     0,   289,     0,
+    96,     0,     0,     0,     0,   290,     0,     0,    97,     0,
+     0,     0,     0,     0,     0,    98,     0,     0,   291,     0,
+   292,   293,   100,   101,     0,     0,     0,   294,     0,     0,
+     0,   295,     0,     0,   296,     0,     0,     0,     0,     0,
+   102,   103,   297,   104,   298,   299,     0,     0,     0,     0,
+     0,     0,     0,   106,     0,     0,   107,   108,   109,     0,
+   110,     0,     0,     0,   111,     0,   112,   113,     0,     0,
+     0,     0,     0,     0,     0,   114,   115,   116,     0,   180,
+     0,     0,     0,     0,   117,     0,   118,     0,     0,     0,
+   119,     0,     0,   300,     0,   120,   121,     0,     0,     0,
+     0,     0,   122,   123,     0,   124,    87,     0,   687,     0,
+   125,   688,   301,   202,   302,   263,   303,   304,     0,   272,
+   273,   274,     0,   305,     0,     0,   307,   308,   309,     0,
+   179,   275,   276,   277,   278,   685,    88,   279,     0,     0,
+     0,     0,     0,   280,     0,     0,     0,   281,   282,     0,
+   283,     0,     0,     0,     0,     0,     0,     0,    90,     0,
+     0,     0,   284,     0,     0,     0,    91,    92,     0,     0,
+     0,     0,    93,    94,    95,     0,   285,     0,   286,     0,
+   287,     0,     0,   289,     0,    96,     0,     0,     0,     0,
+   290,     0,     0,    97,     0,     0,     0,     0,     0,     0,
+    98,     0,     0,   291,     0,   292,   293,   100,   101,     0,
+     0,     0,   294,     0,     0,     0,   295,     0,     0,   296,
+     0,     0,     0,     0,     0,   102,   103,   297,   104,   298,
+   299,     0,     0,     0,     0,     0,     0,     0,   106,     0,
+     0,   107,   108,   109,     0,   110,     0,     0,     0,   111,
+     0,   112,   113,     0,     0,     0,     0,     0,     0,     0,
+   114,   115,   116,     0,   180,     0,     0,     0,     0,   117,
+     0,   118,     0,     0,     0,   119,     0,     0,   300,     0,
+   120,   121,     0,     0,     0,     0,     0,   122,   123,     0,
+   124,    87,     0,     0,     0,   125,     0,   301,   202,   302,
+   263,   303,   304,     0,   272,   273,   274,     0,   305,     0,
+     0,   307,   308,   309,     0,   179,   275,   276,   277,   278,
+   689,    88,   279,     0,     0,     0,     0,     0,   280,     0,
+     0,     0,   281,   282,     0,   283,     0,     0,   600,     0,
+     0,     0,     0,    90,     0,     0,     0,   284,     0,     0,
+     0,    91,    92,     0,     0,     0,     0,    93,    94,    95,
+     0,   285,     0,   286,     0,   287,     0,   288,   289,     0,
+    96,     0,     0,     0,     0,   290,     0,     0,    97,     0,
+     0,     0,     0,     0,     0,    98,     0,     0,   291,     0,
+   292,   293,   100,   101,     0,     0,     0,   294,     0,     0,
+     0,   295,     0,     0,   296,     0,     0,     0,     0,     0,
+   102,   103,   297,   104,   298,   299,     0,     0,     0,     0,
+     0,     0,     0,   106,     0,     0,   107,   108,   109,     0,
+   110,     0,     0,     0,   111,     0,   112,   113,     0,     0,
+     0,     0,     0,     0,     0,   114,   115,   116,     0,   180,
+     0,     0,     0,     0,   117,     0,   118,     0,     0,     0,
+   119,     0,     0,   300,     0,   120,   121,     0,     0,     0,
+     0,     0,   122,   123,     0,   124,    87,     0,     0,     0,
+   125,     0,   301,   202,   302,   263,   303,   304,     0,   272,
+   273,   274,     0,   305,     0,     0,   307,   308,   309,     0,
+   179,   275,   276,   277,   278,   310,    88,   279,     0,     0,
+     0,     0,     0,   280,     0,     0,     0,   281,   282,     0,
+   283,     0,     0,     0,     0,     0,     0,     0,    90,     0,
+     0,     0,   284,     0,     0,     0,    91,    92,     0,     0,
+     0,     0,    93,    94,    95,     0,   285,     0,   286,     0,
+   287,     0,   288,   289,     0,    96,     0,     0,     0,     0,
+   290,     0,     0,    97,     0,     0,     0,     0,     0,     0,
+    98,   566,     0,   291,     0,   292,   293,   100,   101,     0,
+     0,     0,   294,     0,     0,     0,   295,     0,     0,   296,
+     0,     0,     0,     0,     0,   102,   103,   297,   104,   298,
+   299,     0,     0,     0,     0,     0,     0,     0,   106,     0,
+     0,   107,   108,   109,     0,   110,     0,     0,     0,   111,
+     0,   112,   113,     0,     0,     0,     0,     0,     0,     0,
+   114,   115,   116,     0,   180,     0,     0,     0,     0,   117,
+     0,   118,     0,     0,     0,   119,     0,     0,   300,     0,
+   120,   121,     0,     0,     0,     0,     0,   122,   123,     0,
+   124,    87,     0,     0,     0,   125,     0,   301,   202,   302,
+   263,   303,   304,     0,   272,   273,   274,     0,   305,     0,
+     0,   307,   308,   309,     0,   179,   275,   276,   277,   278,
+   310,    88,   279,     0,     0,     0,     0,     0,   280,     0,
+     0,     0,   281,   282,     0,   283,     0,     0,     0,     0,
+     0,     0,     0,    90,     0,     0,     0,   284,     0,     0,
+     0,    91,    92,     0,     0,     0,     0,    93,    94,    95,
+     0,   285,     0,   286,     0,   287,     0,   288,   289,     0,
+    96,     0,     0,     0,     0,   290,     0,     0,    97,     0,
+     0,     0,     0,     0,     0,    98,     0,     0,   291,     0,
+   292,   293,   100,   101,     0,     0,     0,   294,     0,     0,
+     0,   295,     0,     0,   296,     0,     0,     0,     0,     0,
+   102,   103,   297,   104,   298,   299,     0,     0,     0,     0,
+     0,     0,     0,   106,     0,     0,   107,   108,   109,     0,
+   110,     0,     0,     0,   111,     0,   112,   113,     0,     0,
+     0,     0,     0,     0,     0,   114,   115,   116,     0,   180,
+     0,     0,     0,     0,   117,     0,   118,     0,     0,     0,
+   119,     0,     0,   300,     0,   120,   121,     0,     0,     0,
+     0,     0,   122,   123,     0,   124,    87,     0,   659,     0,
+   125,   660,   301,   202,   302,   263,   303,   304,     0,   272,
+   273,   274,     0,   305,     0,     0,   307,   308,   309,     0,
+   179,   275,   276,   277,   278,   310,    88,   279,     0,     0,
+     0,     0,     0,   280,     0,     0,     0,   281,   282,     0,
+   283,     0,     0,     0,     0,     0,     0,     0,    90,     0,
+     0,     0,   284,     0,     0,     0,    91,    92,     0,     0,
+     0,     0,    93,    94,    95,     0,   285,     0,   286,     0,
+     0,     0,     0,   289,     0,    96,     0,     0,     0,     0,
+   290,     0,     0,    97,     0,     0,     0,     0,     0,     0,
+    98,     0,     0,   291,     0,   292,   293,   100,   101,     0,
+     0,     0,   294,     0,     0,     0,   295,     0,     0,   296,
+     0,     0,     0,     0,     0,   102,   103,   297,   104,   298,
+   299,     0,     0,     0,     0,     0,     0,     0,   106,     0,
+     0,   107,   108,   109,     0,   110,     0,     0,     0,   111,
+     0,   112,   113,     0,     0,     0,     0,     0,     0,     0,
+   114,   115,   116,     0,   180,     0,     0,     0,     0,   117,
+     0,   118,     0,     0,     0,   119,     0,     0,   300,     0,
+   120,   121,     0,     0,     0,     0,     0,   122,   123,     0,
+   124,    87,     0,     0,     0,   125,     0,   301,   202,-32768,
+   263,   303,   304,     0,   272,   273,   274,     0,   305,     0,
+     0,   307,   308,   309,     0,   179,   275,   276,   277,   278,
+   661,    88,   279,     0,     0,     0,     0,     0,   280,     0,
+     0,     0,   281,   282,     0,   283,     0,     0,     0,     0,
+     0,     0,     0,    90,     0,     0,     0,   284,     0,     0,
+     0,    91,    92,     0,     0,     0,     0,    93,    94,    95,
+     0,   285,     0,   286,     0,   287,     0,     0,   289,     0,
+    96,     0,     0,     0,     0,   290,     0,     0,    97,     0,
+     0,     0,     0,     0,     0,    98,   566,     0,   291,     0,
+   292,   293,   100,   101,     0,     0,     0,   294,     0,     0,
+     0,   295,     0,     0,   296,     0,     0,     0,     0,     0,
+   102,   103,   297,   104,   298,   299,     0,     0,     0,     0,
+     0,     0,     0,   106,     0,     0,   107,   108,   109,     0,
+   110,     0,     0,     0,   111,     0,   112,   113,     0,     0,
+     0,     0,     0,     0,     0,   114,   115,   116,     0,   180,
+     0,     0,     0,     0,   117,     0,   118,     0,     0,     0,
+   119,     0,     0,   300,     0,   120,   121,     0,     0,     0,
+     0,     0,   122,   123,     0,   124,    87,     0,     0,     0,
+   125,     0,   301,   202,   302,   263,   303,   304,     0,   272,
+   273,   274,     0,   305,     0,     0,   307,   308,   309,     0,
+   179,   275,   276,   277,   278,   310,    88,   279,     0,     0,
+     0,     0,     0,   280,     0,     0,     0,   281,   282,     0,
+   283,     0,     0,     0,     0,     0,     0,     0,    90,     0,
+     0,     0,   284,     0,     0,     0,    91,    92,     0,     0,
+     0,     0,    93,    94,    95,     0,   285,     0,   286,     0,
+   287,     0,     0,   289,     0,    96,     0,     0,     0,     0,
+   290,     0,     0,    97,     0,     0,     0,     0,     0,     0,
+    98,     0,     0,   291,     0,   292,   293,   100,   101,     0,
+     0,     0,   294,     0,     0,     0,   295,     0,     0,   296,
+     0,     0,     0,     0,     0,   102,   103,   297,   104,   298,
+   299,     0,     0,     0,     0,     0,     0,     0,   106,     0,
+     0,   107,   108,   109,     0,   110,     0,     0,     0,   111,
+     0,   112,   113,     0,     0,     0,     0,     0,     0,     0,
+   114,   115,   116,     0,   180,     0,     0,     0,     0,   117,
+     0,   118,     0,     0,     0,   119,     0,     0,   300,    87,
+   120,   121,     0,     0,     0,     0,     0,   122,   123,     0,
+   124,     0,   629,   273,   274,   125,     0,   301,   202,   302,
+   263,   303,   304,   179,   630,   631,   632,   633,   305,    88,
+   279,   307,   308,   309,     0,     0,   280,     0,     0,     0,
+   310,     0,     0,   283,     0,     0,     0,     0,     0,     0,
+     0,    90,     0,     0,     0,   284,     0,     0,     0,    91,
+    92,     0,     0,     0,     0,    93,    94,    95,     0,   285,
+     0,   286,     0,     0,     0,     0,   289,     0,    96,     0,
+     0,     0,     0,   634,     0,     0,    97,     0,     0,     0,
+     0,     0,     0,    98,     0,     0,   635,     0,   292,   293,
+   100,   101,     0,     0,     0,   636,     0,     0,     0,   637,
+     0,     0,   296,     0,     0,     0,     0,     0,   102,   103,
+   297,   104,   298,   299,     0,     0,     0,     0,     0,     0,
+     0,   106,     0,     0,   107,   108,   109,     0,   110,     0,
+     0,     0,   111,     0,   112,   113,     0,     0,     0,     0,
+     0,     0,     0,   114,   115,   116,     0,   180,     0,     0,
+     0,     0,   117,     0,   118,     0,     0,     0,   119,     0,
+     0,   300,    87,   120,   121,     0,     0,     0,     0,     0,
+   122,   123,     0,   124,     0,   629,   273,   274,   125,     0,
+   301,   202,   638,   263,   303,   304,   179,   630,   631,   632,
+   633,   639,    88,   279,   640,   641,   642,     0,     0,   280,
+     0,     0,     0,   643,     0,     0,   283,     0,     0,     0,
+     0,     0,     0,     0,    90,     0,     0,     0,   284,     0,
+     0,     0,    91,    92,     0,     0,     0,     0,    93,    94,
+    95,     0,   285,     0,   286,     0,     0,     0,     0,   289,
+     0,    96,     0,     0,     0,     0,   634,     0,     0,    97,
+     0,     0,     0,     0,     0,     0,    98,     0,     0,   635,
+     0,   292,   293,   100,   101,     0,     0,     0,   636,     0,
+     0,     0,   637,     0,     0,   296,     0,     0,     0,     0,
+     0,   102,   103,   297,   104,   298,   299,     0,     0,     0,
+     0,     0,     0,     0,   106,     0,     0,   107,   108,   109,
+     0,   110,     0,     0,     0,   111,     0,   112,   113,     0,
+     0,     0,     0,     0,     0,     0,   114,   115,   116,     0,
+   180,     0,     0,     0,     0,   117,     0,   118,     0,     0,
+     0,   119,     0,     0,   300,    87,   120,   121,     0,     0,
+     0,     0,     0,   122,   123,     0,   124,     0,  1153,   273,
+   274,   125,     0,   301,   202,-32768,   263,   303,   304,     0,
+  1154,  1155,  1156,  1157,   639,    88,   279,   640,   641,   642,
+     0,     0,   280,     0,     0,     0,   643,     0,     0,   283,
+     0,     0,     0,     0,     0,     0,     0,    90,     0,     0,
+     0,   284,     0,     0,     0,    91,    92,     0,     0,     0,
+     0,    93,    94,    95,     0,   285,     0,   286,     0,     0,
+     0,  1158,   289,     0,    96,     0,     0,     0,     0,     0,
+     0,     0,    97,     0,     0,     0,     0,     0,     0,    98,
+     0,     0,     0,     0,   292,   293,   100,   101,     0,     0,
+     0,     0,     0,     0,     0,  1159,     0,     0,   296,     0,
+     0,     0,     0,     0,   102,   103,   297,   104,   298,   299,
+     0,     0,     0,     0,     0,     0,     0,   106,     0,     0,
+   107,   108,   109,     0,   110,     0,     0,     0,   111,     0,
+   112,   113,     0,     0,     0,     0,     0,     0,     0,   114,
+   115,   116,     0,     0,     0,     0,     0,     0,   117,     0,
+   118,     0,     0,     0,   119,     0,     0,   300,    87,   120,
+   121,     0,     0,     0,     0,     0,   122,   123,     0,   124,
+     0,  1153,   273,   274,   125,     0,   301,   202,  1160,   263,
+   303,   304,     0,  1154,  1155,  1156,  1157,  1161,    88,   279,
+  1162,  1163,  1164,     0,     0,   280,     0,     0,     0,  1165,
+     0,     0,   283,     0,     0,     0,     0,     0,     0,     0,
+    90,     0,     0,     0,   284,     0,     0,     0,    91,    92,
+     0,     0,     0,     0,    93,    94,    95,     0,   285,     0,
+   286,     0,     0,     0,  1158,   289,     0,    96,     0,     0,
      0,     0,     0,     0,     0,    97,     0,     0,     0,     0,
-    98,     0,    99,   100,     0,     0,     0,     0,     0,     0,
+     0,     0,    98,     0,     0,     0,     0,   292,   293,   100,
+   101,     0,     0,     0,     0,     0,     0,     0,  1159,     0,
+     0,   296,     0,     0,     0,     0,     0,   102,   103,   297,
+   104,   298,   299,     0,     0,     0,     0,     0,     0,     0,
+   106,     0,     0,   107,   108,   109,     0,   110,     0,     0,
+     0,   111,     0,   112,   113,     0,     0,     0,     0,     0,
+     0,     0,   114,   115,   116,     0,     0,     0,     0,     0,
+     0,   117,     0,   118,     0,     0,     0,   119,     0,     0,
+   300,    87,   120,   121,     0,     0,     0,     0,     0,   122,
+   123,     0,   124,     0,   581,   273,   274,   125,     0,   301,
+   202,-32768,   263,   303,   304,   179,     0,     0,     0,     0,
+  1161,    88,   279,  1162,  1163,  1164,     0,     0,   280,     0,
+     0,     0,  1165,     0,     0,   283,     0,     0,     0,     0,
+     0,     0,     0,    90,     0,     0,     0,   284,     0,     0,
+     0,    91,    92,     0,     0,     0,     0,    93,    94,    95,
+     0,   285,     0,   286,     0,     0,     0,     0,   289,     0,
+    96,     0,     0,     0,     0,   582,     0,     0,    97,     0,
+     0,     0,     0,     0,     0,    98,     0,     0,   583,     0,
+   292,   293,   100,   101,     0,     0,     0,   584,     0,     0,
+     0,     0,     0,     0,   296,     0,     0,     0,     0,     0,
+   102,   103,   297,   104,   298,   299,     0,     0,     0,     0,
+     0,     0,     0,   106,     0,     0,   107,   108,   109,     0,
+   110,     0,     0,     0,   111,     0,   112,   113,     0,     0,
+     0,     0,     0,     0,     0,   114,   115,   116,     0,   180,
+     0,     0,     0,     0,   117,     0,   118,     0,     0,     0,
+   119,     0,     0,   300,    87,   120,   121,     0,     0,     0,
+     0,     0,   122,   123,     0,   124,     0,   581,   273,   274,
+   125,     0,   301,   202,   585,   263,   303,   304,   179,     0,
+     0,     0,     0,   586,    88,   279,   587,     0,     0,     0,
+     0,   280,     0,     0,     0,   588,     0,     0,   283,     0,
+     0,     0,     0,     0,     0,     0,    90,     0,     0,     0,
+   284,     0,     0,     0,    91,    92,     0,     0,     0,     0,
+    93,    94,    95,     0,   285,     0,   286,     0,     0,     0,
+     0,   289,     0,    96,     0,     0,     0,     0,   582,     0,
+     0,    97,     0,     0,     0,     0,     0,     0,    98,     0,
+     0,   583,     0,   292,   293,   100,   101,     0,     0,     0,
+   584,     0,     0,     0,     0,     0,     0,   296,     0,     0,
+     0,     0,     0,   102,   103,   297,   104,   298,   299,     0,
+     0,     0,     0,     0,     0,     0,   106,     0,     0,   107,
+   108,   109,     0,   110,     0,     0,     0,   111,     0,   112,
+   113,     0,     0,     0,     0,     0,     0,     0,   114,   115,
+   116,     0,   180,     0,     0,     0,     0,   117,     0,   118,
+     0,     0,     0,   119,     0,     0,   300,    87,   120,   121,
+     0,     0,     0,     0,     0,   122,   123,     0,   124,     0,
+   929,   273,   274,   125,     0,   301,   202,-32768,   263,   303,
+   304,     0,     0,     0,     0,     0,   586,    88,   279,   587,
+     0,     0,     0,     0,   280,     0,     0,     0,   588,     0,
+     0,   283,     0,     0,     0,     0,     0,     0,     0,    90,
+     0,     0,     0,   284,     0,     0,     0,    91,    92,     0,
+     0,     0,     0,    93,    94,    95,     0,   285,     0,   286,
+     0,   930,     0,   931,   289,     0,    96,     0,     0,     0,
+     0,     0,     0,     0,    97,     0,     0,     0,     0,     0,
+     0,    98,     0,     0,     0,     0,   292,   293,   100,   101,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   101,   102,     0,   103,     0,   104,     0,     0,     0,     0,
-     0,     0,     0,   105,     0,     0,   106,   107,   108,     0,
-   109,    86,     0,     0,   110,     0,   111,   112,     0,     0,
-     0,     0,     0,     0,     0,   113,   114,   115,     0,   178,
-     0,     0,     0,     0,   116,     0,   117,     0,     0,     0,
-   118,    87,     0,     0,     0,   119,   120,     0,    88,     0,
-     0,     0,   121,     0,   122,     0,     0,     0,     0,   123,
-     0,   124,     0,    89,     0,   300,     0,     0,     0,     0,
-     0,    90,    91,     0,     0,     0,     0,    92,    93,    94,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,    95,
-     0,     0,     0,     0,     0,     0,     0,    96,     0,     0,
-     0,     0,     0,     0,    97,     0,     0,     0,     0,    98,
-     0,    99,   100,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   101,
-   102,     0,   103,     0,   104,     0,     0,     0,     0,     0,
-     0,     0,   105,     0,     0,   106,   107,   108,     0,   109,
-     0,     0,     0,   110,     0,   111,   112,     0,     0,    86,
-     0,     0,     0,     0,   113,   114,   115,     0,     0,     0,
-     0,     0,     0,   116,     0,   117,     0,     0,     0,   118,
-   606,     0,   607,     0,   119,   120,     0,     0,     0,    87,
-     0,   121,     0,   122,     0,     0,    88,     0,   123,     0,
-   124,     0,     0,   260,     0,   608,     0,     0,     0,   609,
-     0,    89,     0,     0,     0,     0,     0,     0,     0,    90,
-    91,     0,     0,     0,     0,    92,    93,    94,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,    95,     0,   610,
-     0,     0,   611,   612,     0,    96,     0,     0,     0,     0,
-     0,     0,    97,     0,     0,     0,   613,    98,     0,    99,
-   100,     0,     0,   614,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   101,   102,   615,
-   103,   616,   104,     0,     0,     0,     0,     0,     0,     0,
-   105,   617,     0,   106,   107,   108,     0,   109,     0,     0,
-     0,   110,     0,   111,   112,    86,     0,     0,     0,     0,
-   618,     0,   113,   114,   115,     0,     0,     0,     0,   270,
-   271,   116,     0,   117,     0,     0,     0,   118,     0,     0,
-     0,     0,   119,   120,     0,    87,   513,     0,     0,   121,
-   619,   122,   514,     0,     0,     0,   123,     0,   124,   515,
-     0,     0,     0,     0,     0,     0,     0,    89,     0,     0,
-     0,     0,     0,     0,     0,    90,    91,     0,     0,     0,
-     0,    92,    93,    94,   282,     0,   283,     0,     0,     0,
-     0,   516,     0,    95,     0,     0,     0,     0,     0,     0,
-     0,    96,     0,     0,     0,     0,     0,     0,    97,     0,
-     0,     0,     0,    98,     0,    99,   100,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   293,     0,     0,
-     0,     0,     0,   101,   102,     0,   103,     0,   104,     0,
-     0,     0,     0,     0,     0,     0,   105,     0,     0,   106,
-   107,   108,     0,   109,     0,    86,     0,   110,     0,   111,
-   112,     0,     0,     0,     0,     0,     0,     0,   113,   114,
-   115,   491,     0,     0,     0,     0,   492,   116,     0,   117,
-     0,     0,     0,   118,     0,    87,     0,     0,   119,   120,
-     0,     0,    88,     0,     0,   121,     0,   122,     0,     0,
-     0,   493,   123,     0,   124,     0,     0,    89,     0,     0,
-     0,     0,     0,     0,     0,    90,    91,     0,     0,     0,
-     0,    92,    93,    94,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,    95,     0,     0,     0,     0,     0,     0,
-   494,    96,     0,     0,     0,     0,     0,     0,    97,     0,
-     0,     0,     0,    98,     0,    99,   100,     0,     0,     0,
-     0,     0,   495,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   101,   102,     0,   103,     0,   104,     0,
-     0,     0,     0,     0,     0,     0,   105,     0,    86,   106,
-   107,   108,     0,   109,     0,     0,     0,   110,     0,   111,
-   112,     0,     0,     0,     0,     0,     0,     0,   113,   114,
-   115,     0,   177,     0,     0,     0,     0,   116,    87,   117,
-     0,     0,     0,   118,     0,    88,     0,     0,   119,   120,
-     0,     0,     0,     0,     0,   121,     0,   122,     0,     0,
-    89,     0,   123,     0,   124,     0,     0,     0,    90,    91,
-     0,     0,     0,     0,    92,    93,    94,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,    95,     0,     0,     0,
+   296,     0,     0,     0,     0,     0,   102,   103,   297,   104,
+   298,   299,     0,     0,     0,     0,     0,     0,     0,   106,
+     0,     0,   107,   108,   109,     0,   110,     0,     0,     0,
+   111,     0,   112,   113,     0,     0,     0,     0,     0,     0,
+     0,   114,   115,   116,     0,     0,     0,     0,     0,     0,
+   117,     0,   118,     0,     0,     0,   119,     0,     0,   300,
+    87,   120,   121,     0,     0,     0,     0,     0,   122,   123,
+     0,   124,     0,   929,   273,   274,   125,     0,   301,   202,
+   932,   263,   303,   304,     0,     0,     0,     0,     0,   933,
+    88,   279,   934,   935,   936,     0,     0,   280,     0,     0,
+     0,   937,     0,     0,   283,     0,     0,     0,     0,     0,
+     0,     0,    90,     0,     0,     0,   284,     0,     0,     0,
+    91,    92,     0,     0,     0,     0,    93,    94,    95,     0,
+   285,     0,   286,     0,   930,     0,   931,   289,     0,    96,
+     0,     0,     0,     0,     0,     0,     0,    97,     0,     0,
+     0,     0,     0,     0,    98,     0,     0,     0,     0,   292,
+   293,   100,   101,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   296,     0,     0,     0,     0,     0,   102,
+   103,   297,   104,   298,   299,     0,     0,     0,     0,     0,
+     0,     0,   106,     0,     0,   107,   108,   109,     0,   110,
+     0,     0,     0,   111,     0,   112,   113,     0,     0,    87,
+     0,     0,     0,     0,   114,   115,   116,     0,     0,     0,
+     0,     0,     0,   117,     0,   118,     0,     0,     0,   119,
+     0,   440,   300,   179,   120,   121,   441,     0,     0,    88,
+     0,   122,   123,     0,   124,     0,    89,     0,     0,   125,
+     0,   301,   202,-32768,   263,   303,   304,     0,     0,     0,
+     0,    90,   933,     0,     0,   934,   935,   936,     0,    91,
+    92,     0,     0,     0,   937,    93,    94,    95,     0,     0,
+   442,     0,     0,     0,     0,   443,     0,     0,    96,     0,
+     0,   444,     0,     0,     0,     0,    97,     0,     0,     0,
+     0,   445,     0,    98,     0,     0,     0,   446,    99,     0,
+   100,   101,     0,     0,     0,     0,     0,     0,     0,   440,
+     0,     0,     0,     0,   441,     0,     0,     0,   102,   103,
+     0,   104,     0,   105,     0,     0,     0,     0,     0,     0,
+     0,   106,     0,     0,   107,   108,   109,     0,   110,     0,
+     0,     0,   111,     0,   112,   113,     0,     0,     0,     0,
+     0,     0,   828,   114,   115,   116,     0,   180,   442,     0,
+     0,     0,   117,   443,   118,     0,   447,     0,   119,   444,
+     0,     0,     0,   120,   121,     0,     0,   440,   448,   445,
+   122,   123,   441,   124,     0,   446,     0,     0,   125,     0,
+   126,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   449,     0,     0,   901,     0,   450,   451,   452,   453,   454,
+   455,   456,     0,     0,     0,     0,   442,     0,  1245,   457,
+     0,   443,     0,     0,     0,     0,     0,   444,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   445,     0,     0,
+     0,     0,     0,   446,   447,     0,     0,     0,     0,    87,
+     0,     0,     0,     0,     0,     0,   448,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,    88,
+     0,     0,     0,     0,     0,     0,    89,     0,   449,     0,
+     0,     0,     0,   450,   451,   452,   453,   454,   455,   456,
+     0,    90,     0,     0,     0,     0,     0,   457,     0,    91,
+    92,     0,   447,     0,     0,    93,    94,    95,     0,     0,
+     0,     0,     0,     0,   448,     0,     0,     0,    96,     0,
+     0,     0,     0,     0,     0,     0,    97,     0,     0,     0,
+     0,     0,     0,    98,     0,     0,     0,     0,    99,     0,
+   100,   101,     0,     0,     0,     0,   449,     0,     0,     0,
+     0,   450,   451,   452,   453,   454,   455,   456,   102,   103,
+     0,   104,     0,   105,     0,   457,     0,     0,     0,     0,
+     0,   106,     0,     0,   107,   108,   109,     0,   110,     0,
+     0,     0,   111,     0,   112,   113,     0,     0,     0,     0,
+     0,     0,    87,   114,   115,   116,     0,     0,     0,     0,
+     0,     0,   117,     0,   118,     0,     0,     0,   119,     0,
+     0,   981,     0,   120,   121,     0,     0,     0,     0,     0,
+   122,   123,    88,   124,     0,   539,     0,     0,   125,    89,
+   126,   202,   254,   263,     0,   982,     0,   232,   233,   234,
+   235,   983,   237,   238,    90,     0,     0,     0,     0,     0,
+     0,   229,    91,    92,     0,     0,     0,     0,    93,    94,
+    95,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,    96,     0,     0,     0,     0,     0,     0,     0,    97,
+   230,     0,     0,     0,     0,     0,    98,     0,     0,     0,
+     0,    99,     0,   100,   101,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,   102,   103,     0,   104,     0,   105,     0,     0,     0,
+     0,     0,     0,     0,   106,     0,     0,   107,   108,   109,
+     0,   110,     0,     0,     0,   111,     0,   112,   113,     0,
+     0,     0,     0,     0,     0,    87,   114,   115,   116,     0,
+     0,     0,     0,     0,     0,   117,     0,   118,     0,     0,
+     0,   119,     0,     0,     0,     0,   120,   121,     0,     0,
+     0,     0,     0,   122,   123,    88,   124,     0,     0,     0,
+     0,   125,    89,   126,     0,   231,     0,     0,     0,     0,
+   232,   233,   234,   235,   236,   237,   238,    90,     0,     0,
+     0,     0,     0,     0,   229,    91,    92,     0,     0,     0,
+     0,    93,    94,    95,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,    96,     0,     0,     0,     0,     0,
-     0,    97,     0,     0,     0,     0,    98,     0,    99,   100,
+     0,     0,    97,   230,     0,     0,     0,     0,     0,    98,
+     0,     0,     0,     0,    99,     0,   100,   101,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   101,   102,     0,   103,
-     0,   104,     0,     0,     0,     0,     0,     0,     0,   105,
-     0,    86,   106,   107,   108,     0,   109,     0,     0,     0,
-   110,     0,   111,   112,     0,     0,     0,     0,     0,     0,
-     0,   113,   114,   115,     0,   178,     0,     0,     0,     0,
-   116,    87,   117,     0,     0,     0,   118,     0,    88,     0,
-     0,   119,   120,     0,     0,     0,     0,     0,   121,     0,
-   122,   760,     0,    89,     0,   123,     0,   124,     0,     0,
-     0,    90,    91,     0,     0,     0,     0,    92,    93,    94,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,    95,
-     0,     0,     0,     0,     0,     0,     0,    96,     0,   761,
-     0,     0,     0,     0,    97,     0,     0,     0,     0,    98,
-     0,    99,   100,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   101,
-   102,     0,   103,     0,   104,     0,     0,     0,     0,     0,
-     0,     0,   105,     0,    86,   106,   107,   108,     0,   109,
-     0,     0,     0,   110,     0,   111,   112,     0,     0,     0,
-     0,     0,     0,     0,   113,   114,   115,     0,     0,     0,
-     0,     0,     0,   116,    87,   117,     0,     0,     0,   118,
-     0,    88,     0,     0,   119,   120,     0,     0,     0,     0,
-     0,   121,     0,   122,     0,     0,    89,     0,   123,     0,
-   124,     0,     0,     0,    90,    91,     0,     0,     0,     0,
-    92,    93,    94,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,    95,     0,     0,     0,     0,     0,     0,     0,
-    96,     0,     0,     0,     0,     0,     0,    97,     0,     0,
-     0,     0,    98,     0,    99,   100,     0,     0,     0,     0,
+     0,     0,     0,     0,   102,   103,     0,   104,     0,   105,
+     0,     0,     0,     0,     0,     0,     0,   106,     0,     0,
+   107,   108,   109,     0,   110,     0,     0,     0,   111,     0,
+   112,   113,     0,     0,     0,     0,     0,     0,    87,   114,
+   115,   116,     0,     0,     0,     0,     0,     0,   117,     0,
+   118,     0,     0,     0,   119,     0,     0,     0,     0,   120,
+   121,     0,   179,     0,     0,     0,   122,   123,    88,   124,
+     0,     0,     0,     0,   125,    89,   126,     0,   231,     0,
+     0,     0,     0,   232,   233,   234,   235,   236,   237,   238,
+    90,     0,     0,     0,     0,     0,     0,     0,    91,    92,
+     0,     0,     0,     0,    93,    94,    95,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    96,     0,     0,
+     0,     0,     0,     0,     0,    97,     0,     0,     0,     0,
+     0,     0,    98,     0,     0,     0,     0,    99,     0,   100,
+   101,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   102,   103,     0,
+   104,     0,   105,     0,     0,     0,     0,     0,     0,     0,
+   106,     0,     0,   107,   108,   109,     0,   110,    87,     0,
+     0,   111,     0,   112,   113,     0,     0,     0,     0,     0,
+     0,     0,   114,   115,   116,     0,   180,     0,     0,     0,
+     0,   117,     0,   118,     0,     0,     0,   119,    88,     0,
+     0,     0,   120,   121,     0,    89,     0,     0,     0,   122,
+   123,     0,   124,     0,     0,     0,     0,   125,     0,   126,
+    90,     0,     0,   303,     0,     0,     0,     0,    91,    92,
+     0,   474,     0,     0,    93,    94,    95,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    96,     0,     0,
+     0,     0,     0,     0,     0,    97,     0,     0,     0,     0,
+     0,     0,    98,     0,     0,     0,     0,    99,     0,   100,
+   101,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   102,   103,     0,
+   104,     0,   105,     0,     0,    87,     0,     0,     0,     0,
+   106,     0,     0,   107,   108,   109,     0,   110,     0,     0,
+     0,   111,     0,   112,   113,     0,     0,     0,     0,     0,
+     0,     0,   114,   115,   116,    88,     0,     0,     0,     0,
+     0,   117,    89,   118,     0,     0,     0,   119,     0,     0,
+     0,     0,   120,   121,     0,     0,     0,    90,     0,   122,
+   123,     0,   124,     0,     0,    91,    92,   125,     0,   126,
+     0,    93,    94,    95,     0,     0,     0,     0,     0,     0,
+     0,   376,     0,     0,    96,     0,     0,     0,     0,     0,
+     0,     0,    97,     0,     0,     0,     0,     0,     0,    98,
+     0,     0,     0,     0,    99,     0,   100,   101,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   101,   102,     0,   103,     0,   104,     0,     0,
-     0,     0,     0,     0,     0,   105,     0,    86,   106,   107,
-   108,     0,   109,     0,     0,     0,   110,     0,   111,   112,
-     0,     0,     0,     0,     0,     0,     0,   113,   114,   115,
-     0,     0,   542,     0,     0,     0,   116,    87,   117,     0,
-     0,     0,   118,     0,    88,     0,     0,   119,   120,     0,
-     0,     0,     0,     0,   121,     0,   122,     0,     0,    89,
-     0,   123,     0,   124,     0,     0,     0,    90,    91,     0,
-     0,     0,     0,    92,    93,    94,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,    95,     0,     0,     0,     0,
-     0,     0,     0,    96,     0,     0,     0,     0,     0,     0,
-    97,     0,     0,     0,     0,    98,     0,    99,   100,     0,
+     0,     0,     0,     0,   102,   103,     0,   104,     0,   105,
+     0,     0,    87,     0,     0,     0,     0,   106,     0,     0,
+   107,   108,   109,     0,   110,     0,     0,     0,   111,     0,
+   112,   113,     0,     0,     0,     0,     0,     0,     0,   114,
+   115,   116,    88,     0,     0,     0,     0,     0,   117,    89,
+   118,     0,     0,     0,   119,     0,     0,     0,     0,   120,
+   121,     0,     0,     0,    90,     0,   122,   123,     0,   124,
+     0,     0,    91,    92,   125,     0,   126,     0,    93,    94,
+    95,     0,     0,     0,     0,     0,     0,     0,   697,     0,
+     0,    96,     0,     0,     0,     0,     0,     0,     0,    97,
+     0,     0,     0,     0,     0,     0,    98,     0,     0,     0,
+     0,    99,     0,   100,   101,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   101,   102,     0,   103,     0,
-   104,     0,     0,     0,     0,     0,     0,     0,   105,     0,
-    86,   106,   107,   108,     0,   109,  1092,     0,     0,   110,
-     0,   111,   112,     0,     0,     0,     0,     0,     0,     0,
-   113,   114,   115,     0,     0,   988,     0,     0,     0,   116,
-    87,   117,     0,     0,     0,   118,     0,    88,     0,     0,
-   119,   120,     0,     0,     0,     0,     0,   121,     0,   122,
-     0,     0,    89,     0,   123,     0,   124,     0,     0,     0,
-    90,    91,     0,     0,     0,     0,    92,    93,    94,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,    95,     0,
-     0,     0,     0,     0,     0,     0,    96,     0,     0,     0,
-     0,     0,     0,    97,     0,     0,     0,     0,    98,     0,
-    99,   100,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   101,   102,
-     0,   103,     0,   104,     0,     0,     0,     0,     0,     0,
-     0,   105,     0,    86,   106,   107,   108,     0,   109,     0,
-     0,     0,   110,     0,   111,   112,     0,     0,     0,     0,
-     0,     0,     0,   113,   114,   115,     0,     0,     0,     0,
-     0,     0,   116,    87,   117,     0,     0,     0,   118,     0,
-    88,     0,     0,   119,   120,     0,     0,     0,     0,     0,
-   121,     0,   122,     0,     0,    89,     0,   123,     0,   124,
-     0,     0,     0,    90,    91,     0,     0,     0,     0,    92,
-    93,    94,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,    95,     0,     0,     0,     0,     0,     0,     0,    96,
+     0,   102,   103,     0,   104,     0,   105,     0,     0,    87,
+     0,     0,     0,     0,   106,     0,     0,   107,   108,   109,
+     0,   110,     0,     0,     0,   111,     0,   112,   113,     0,
+     0,     0,     0,     0,     0,     0,   114,   115,   116,    88,
+     0,     0,     0,     0,     0,   117,    89,   118,     0,     0,
+     0,   119,     0,     0,     0,     0,   120,   121,     0,     0,
+     0,    90,     0,   122,   123,     0,   124,     0,     0,    91,
+    92,   125,     0,   126,     0,    93,    94,    95,     0,     0,
+     0,     0,     0,     0,     0,   912,     0,     0,    96,     0,
      0,     0,     0,     0,     0,     0,    97,     0,     0,     0,
-     0,    98,     0,    99,   100,     0,     0,     0,     0,     0,
+     0,     0,     0,    98,     0,     0,     0,     0,    99,     0,
+   100,   101,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   102,   103,
+     0,   104,     0,   105,     0,     0,    87,     0,     0,     0,
+     0,   106,     0,     0,   107,   108,   109,     0,   110,     0,
+     0,     0,   111,     0,   112,   113,     0,     0,     0,     0,
+   179,     0,     0,   114,   115,   116,    88,     0,     0,     0,
+     0,     0,   117,    89,   118,     0,     0,     0,   119,     0,
+     0,     0,     0,   120,   121,     0,     0,     0,    90,     0,
+   122,   123,     0,   124,     0,     0,    91,    92,   125,     0,
+   126,     0,    93,    94,    95,     0,     0,     0,     0,     0,
+     0,     0,  1106,     0,     0,    96,     0,     0,     0,     0,
+     0,     0,     0,    97,     0,     0,     0,     0,     0,     0,
+    98,     0,     0,     0,     0,    99,     0,   100,   101,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   101,   102,     0,   103,     0,   104,     0,     0,     0,
-     0,     0,     0,     0,   105,     0,    86,   106,   107,   108,
-     0,   109,     0,     0,     0,   110,     0,   111,   112,     0,
-     0,     0,     0,     0,     0,     0,   113,   114,   115,     0,
-     0,     0,     0,     0,     0,   116,    87,   117,     0,     0,
-     0,   118,     0,    88,     0,     0,   119,   120,     0,     0,
-     0,     0,     0,   121,     0,   122,     0,     0,    89,     0,
-   123,     0,   124,     0,     0,     0,    90,    91,     0,     0,
-     0,     0,    92,    93,    94,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,    95,     0,     0,     0,     0,     0,
-     0,     0,    96,     0,     0,     0,     0,     0,     0,    97,
-     0,     0,     0,     0,   187,     0,    99,   100,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   101,   102,     0,   103,     0,   104,
-     0,     0,     0,     0,     0,     0,     0,   105,     0,    86,
-   106,   107,   108,     0,   109,     0,     0,     0,   110,     0,
-   111,   112,     0,     0,     0,     0,     0,     0,     0,   113,
-   114,   115,     0,     0,     0,     0,     0,     0,   116,    87,
-   117,     0,     0,     0,   118,     0,    88,     0,     0,   119,
-   120,     0,     0,     0,     0,     0,   121,     0,   122,     0,
-     0,    89,     0,   123,     0,   124,     0,     0,     0,    90,
-    91,     0,     0,     0,     0,    92,    93,    94,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,    95,     0,     0,
+     0,     0,     0,     0,     0,   102,   103,     0,   104,     0,
+   105,     0,     0,     0,     0,     0,     0,     0,   106,     0,
+     0,   107,   108,   109,     0,   110,    87,     0,     0,   111,
+     0,   112,   113,     0,     0,     0,     0,     0,     0,     0,
+   114,   115,   116,     0,   180,     0,     0,     0,     0,   117,
+     0,   118,     0,     0,     0,   119,    88,     0,     0,     0,
+   120,   121,     0,    89,     0,     0,     0,   122,   123,     0,
+   124,     0,     0,     0,     0,   125,     0,   126,    90,     0,
+     0,   303,     0,     0,     0,     0,    91,    92,     0,     0,
+     0,     0,    93,    94,    95,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,    96,     0,     0,     0,     0,
-     0,     0,    97,     0,     0,     0,     0,   205,     0,    99,
-   100,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   101,   102,     0,
-   103,     0,   104,     0,     0,     0,     0,     0,     0,     0,
-   105,     0,    86,   106,   107,   108,     0,   109,     0,     0,
-     0,   110,     0,   111,   112,     0,     0,     0,     0,     0,
-     0,     0,   113,   114,   115,     0,     0,     0,     0,     0,
-     0,   116,    87,   117,     0,     0,     0,   118,     0,    88,
-     0,     0,   119,   120,     0,     0,     0,     0,     0,   121,
-     0,   122,     0,     0,    89,     0,   123,     0,   124,     0,
-     0,     0,    90,    91,     0,     0,     0,     0,    92,    93,
-    94,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    95,     0,     0,     0,     0,     0,     0,     0,    96,     0,
+     0,     0,     0,    97,     0,     0,     0,     0,     0,     0,
+    98,     0,     0,     0,     0,    99,     0,   100,   101,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   102,   103,     0,   104,     0,
+   105,     0,     0,     0,     0,     0,     0,     0,   106,     0,
+     0,   107,   108,   109,     0,   110,     0,     0,     0,   111,
+     0,   112,   113,     0,     0,    87,     0,     0,     0,     0,
+   114,   115,   116,     0,     0,     0,     0,     0,     0,   117,
+     0,   118,     0,     0,     0,   119,   612,     0,   613,     0,
+   120,   121,     0,     0,     0,    88,     0,   122,   123,     0,
+   124,     0,    89,     0,     0,   125,     0,   126,     0,     0,
+   263,   614,     0,     0,     0,   615,     0,    90,     0,     0,
+     0,     0,     0,     0,     0,    91,    92,     0,     0,     0,
+     0,    93,    94,    95,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,    96,     0,   616,     0,     0,   617,
+   618,     0,    97,     0,     0,     0,     0,     0,     0,    98,
+     0,     0,     0,   619,    99,     0,   100,   101,     0,     0,
+   620,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   102,   103,   621,   104,   622,   105,
+     0,     0,    87,     0,     0,     0,     0,   106,   623,     0,
+   107,   108,   109,     0,   110,     0,   273,   274,   111,     0,
+   112,   113,     0,     0,     0,     0,     0,   624,     0,   114,
+   115,   116,    88,   519,     0,     0,     0,     0,   117,   520,
+   118,     0,     0,     0,   119,     0,   521,     0,     0,   120,
+   121,     0,     0,     0,    90,     0,   122,   123,   625,   124,
+     0,     0,    91,    92,   125,     0,   126,     0,    93,    94,
+    95,     0,   285,     0,   286,     0,     0,     0,     0,   522,
+     0,    96,     0,     0,     0,     0,     0,     0,     0,    97,
+     0,     0,     0,     0,     0,     0,    98,     0,     0,     0,
+     0,    99,     0,   100,   101,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   296,     0,     0,     0,     0,
+     0,   102,   103,     0,   104,     0,   105,     0,     0,     0,
+     0,     0,     0,     0,   106,     0,     0,   107,   108,   109,
+     0,   110,     0,    87,     0,   111,     0,   112,   113,     0,
+     0,     0,     0,     0,     0,     0,   114,   115,   116,   496,
+     0,     0,     0,     0,   497,   117,     0,   118,     0,     0,
+     0,   119,     0,    88,     0,     0,   120,   121,     0,     0,
+    89,     0,     0,   122,   123,     0,   124,     0,     0,   498,
+     0,   125,     0,   126,     0,    90,     0,     0,     0,     0,
+     0,     0,     0,    91,    92,     0,     0,     0,     0,    93,
+    94,    95,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,    96,     0,     0,     0,     0,     0,     0,   499,
+    97,     0,     0,     0,     0,     0,     0,    98,     0,     0,
+     0,     0,    99,     0,   100,   101,     0,     0,     0,     0,
+     0,   500,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   102,   103,     0,   104,     0,   105,     0,     0,
+    87,     0,     0,     0,     0,   106,     0,     0,   107,   108,
+   109,     0,   110,     0,     0,     0,   111,     0,   112,   113,
+     0,     0,     0,     0,   179,     0,     0,   114,   115,   116,
+    88,     0,     0,     0,     0,     0,   117,    89,   118,     0,
+     0,     0,   119,     0,     0,     0,     0,   120,   121,     0,
+     0,     0,    90,     0,   122,   123,     0,   124,     0,     0,
+    91,    92,   125,     0,   126,     0,    93,    94,    95,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,    96,
+     0,     0,     0,     0,     0,     0,     0,    97,     0,     0,
+     0,     0,     0,     0,    98,     0,     0,     0,     0,    99,
+     0,   100,   101,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   102,
+   103,     0,   104,     0,   105,     0,     0,    87,     0,     0,
+     0,     0,   106,     0,     0,   107,   108,   109,     0,   110,
+     0,     0,     0,   111,     0,   112,   113,     0,     0,     0,
+     0,     0,     0,     0,   114,   115,   116,    88,   180,     0,
+     0,     0,     0,   117,    89,   118,     0,     0,     0,   119,
+     0,     0,     0,     0,   120,   121,     0,   768,     0,    90,
+     0,   122,   123,     0,   124,     0,     0,    91,    92,   125,
+     0,   126,     0,    93,    94,    95,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,    96,     0,     0,     0,
+     0,     0,     0,     0,    97,     0,   769,     0,     0,     0,
+     0,    98,     0,     0,     0,     0,    99,     0,   100,   101,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   102,   103,     0,   104,
+     0,   105,     0,     0,    87,     0,     0,     0,     0,   106,
+     0,     0,   107,   108,   109,     0,   110,     0,     0,     0,
+   111,     0,   112,   113,     0,     0,     0,     0,     0,     0,
+     0,   114,   115,   116,    88,     0,     0,     0,     0,     0,
+   117,    89,   118,     0,     0,     0,   119,     0,     0,     0,
+     0,   120,   121,     0,     0,     0,    90,     0,   122,   123,
+     0,   124,     0,     0,    91,    92,   125,     0,   126,     0,
+    93,    94,    95,   189,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,    96,     0,     0,     0,     0,     0,     0,
+     0,    97,     0,     0,     0,     0,     0,     0,    98,     0,
+     0,     0,     0,   190,     0,   100,   101,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   102,   103,     0,   104,     0,   105,     0,
+     0,    87,     0,     0,     0,     0,   106,     0,     0,   107,
+   108,   109,     0,   110,     0,     0,     0,   111,     0,   112,
+   113,     0,     0,     0,     0,     0,     0,     0,   114,   115,
+   116,    88,     0,     0,     0,     0,     0,   117,    89,   118,
+     0,     0,     0,   119,     0,     0,     0,     0,   120,   121,
+     0,     0,     0,    90,     0,   122,   123,     0,   124,     0,
+     0,    91,    92,   125,     0,   126,     0,    93,    94,    95,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    96,     0,     0,     0,     0,     0,     0,     0,    97,     0,
+     0,     0,     0,     0,     0,    98,     0,     0,     0,     0,
+    99,     0,   100,   101,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   102,   103,     0,   104,     0,   105,     0,     0,    87,     0,
+     0,     0,     0,   106,     0,     0,   107,   108,   109,     0,
+   110,     0,     0,     0,   111,     0,   112,   113,     0,     0,
+     0,     0,     0,     0,     0,   114,   115,   116,    88,     0,
+   548,     0,     0,     0,   117,    89,   118,     0,     0,     0,
+   119,     0,     0,     0,     0,   120,   121,     0,     0,     0,
+    90,     0,   122,   123,     0,   124,     0,     0,    91,    92,
+   125,     0,   126,     0,    93,    94,    95,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    96,     0,     0,
      0,     0,     0,     0,     0,    97,     0,     0,     0,     0,
-   207,     0,    99,   100,     0,     0,     0,     0,     0,     0,
+     0,     0,    98,     0,     0,     0,     0,    99,     0,   100,
+   101,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   102,   103,     0,
+   104,     0,   105,     0,     0,    87,     0,     0,     0,     0,
+   106,  1101,     0,   107,   108,   109,     0,   110,     0,     0,
+     0,   111,     0,   112,   113,     0,     0,     0,     0,     0,
+     0,     0,   114,   115,   116,    88,     0,   997,     0,     0,
+     0,   117,    89,   118,     0,     0,     0,   119,     0,     0,
+     0,     0,   120,   121,     0,     0,     0,    90,     0,   122,
+   123,     0,   124,     0,     0,    91,    92,   125,     0,   126,
+     0,    93,    94,    95,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,    96,     0,     0,     0,     0,     0,
+     0,     0,    97,     0,     0,     0,     0,     0,     0,    98,
+     0,     0,     0,     0,    99,     0,   100,   101,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   102,   103,     0,   104,     0,   105,
+     0,     0,    87,     0,     0,     0,     0,   106,     0,     0,
+   107,   108,   109,     0,   110,     0,     0,     0,   111,     0,
+   112,   113,     0,     0,     0,     0,     0,     0,     0,   114,
+   115,   116,    88,     0,     0,     0,     0,     0,   117,    89,
+   118,     0,     0,     0,   119,     0,     0,     0,     0,   120,
+   121,     0,     0,     0,    90,     0,   122,   123,     0,   124,
+     0,     0,    91,    92,   125,     0,   126,     0,    93,    94,
+    95,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,    96,     0,     0,     0,     0,     0,     0,     0,    97,
+     0,     0,     0,     0,     0,     0,    98,     0,     0,     0,
+     0,    99,     0,   100,   101,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,   102,   103,     0,   104,     0,   105,     0,     0,    87,
+     0,     0,     0,     0,   106,     0,     0,   107,   108,   109,
+     0,   110,     0,     0,     0,   111,     0,   112,   113,     0,
+     0,     0,     0,     0,     0,     0,   114,   115,   116,    88,
+     0,     0,     0,     0,     0,   117,    89,   118,     0,     0,
+     0,   119,     0,     0,     0,     0,   120,   121,     0,     0,
+     0,    90,     0,   122,   123,     0,   124,     0,     0,    91,
+    92,   125,     0,   126,     0,    93,    94,    95,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    96,     0,
+     0,     0,     0,     0,     0,     0,    97,     0,     0,     0,
+     0,     0,     0,    98,     0,     0,     0,     0,   208,     0,
+   100,   101,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   102,   103,
+     0,   104,     0,   105,     0,     0,    87,     0,     0,     0,
+     0,   106,     0,     0,   107,   108,   109,     0,   110,     0,
+     0,     0,   111,     0,   112,   113,     0,     0,     0,     0,
+     0,     0,     0,   114,   115,   116,    88,     0,     0,     0,
+     0,     0,   117,    89,   118,     0,     0,     0,   119,     0,
+     0,     0,     0,   120,   121,     0,     0,     0,    90,     0,
+   122,   123,     0,   124,     0,     0,    91,    92,   125,     0,
+   126,     0,    93,    94,    95,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    96,     0,     0,     0,     0,
+     0,     0,     0,    97,     0,     0,     0,     0,     0,     0,
+    98,     0,     0,     0,     0,   210,     0,   100,   101,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   101,   102,     0,   103,     0,   104,     0,     0,     0,     0,
-     0,     0,     0,   105,     0,     0,   106,   107,   108,     0,
-   109,     0,     0,     0,   110,     0,   111,   112,     0,     0,
-     0,     0,     0,     0,     0,   113,   114,   115,     0,     0,
-     0,     0,   270,   271,   116,     0,   117,     0,     0,     0,
-   118,     0,     0,     0,     0,   119,   120,     0,    87,   276,
-     0,     0,   121,     0,   122,   415,     0,     0,     0,   123,
-     0,   124,   280,     0,     0,   270,   271,     0,     0,     0,
-    89,     0,     0,     0,   281,     0,     0,     0,     0,     0,
-     0,    87,   276,     0,     0,    93,    94,   282,   415,   283,
-     0,     0,     0,     0,   286,   280,     0,     0,     0,     0,
-     0,     0,     0,    89,     0,     0,     0,   281,     0,     0,
-     0,    97,   560,     0,     0,     0,   416,   290,    93,    94,
-   282,     0,   283,     0,     0,     0,     0,   286,     0,     0,
-   293,     0,     0,     0,     0,     0,   101,     0,   294,     0,
-   295,   417,     0,     0,    97,     0,     0,     1,     0,   416,
-   290,     0,     2,     0,     0,     0,     0,     0,     0,     0,
-     0,     3,     0,   293,     4,     0,     5,     0,     0,   101,
-     0,   294,     0,   295,   417,     0,     6,     0,     7,     0,
-     0,     0,     8,     9,    10,     0,     0,    11,     0,   297,
-     0,     0,     0,    12,     0,     0,     0,     0,     0,    13,
-     0,     0,     0,     0,     0,     0,     0,   418,   199,     0,
-   260,   300,   301,     0,     0,     0,     0,     0,    14,     0,
-     0,     0,   297,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,    15,     0,    16,     0,    17,    18,
-   418,   199,     0,   260,   300,   301,     0,     0,     0,     0,
-     0,     0,    19,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,    20,     0,
-     0,     0,     0,     0,     0,     0,    21,    22,     0,     0,
-     0,     0,     0,    23,    24,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,    25,    26,    27,     0,     0,     0,
-    28,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    29,     0,     0,     0,     0,     0,    30,     0,     0,     0,
-     0,     0,    31
+     0,     0,     0,     0,     0,   102,   103,     0,   104,     0,
+   105,     0,     0,     0,     0,     0,     0,     0,   106,     0,
+     0,   107,   108,   109,     0,   110,     0,   273,   274,   111,
+     0,   112,   113,     0,     0,     0,     0,     0,     0,     0,
+   114,   115,   116,    88,   279,     0,     0,     0,     0,   117,
+   420,   118,     0,     0,     0,   119,     0,   283,     0,     0,
+   120,   121,     0,     0,     0,    90,     0,   122,   123,   284,
+   124,     0,     0,     0,     0,   125,     0,   126,     0,     0,
+    94,    95,     0,   285,     0,   286,     0,   273,   274,     0,
+   289,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,    88,   279,     0,     0,    98,   566,     0,
+   420,     0,   421,   293,     0,     0,     0,   283,     0,     0,
+     0,     0,     0,     0,     0,    90,   296,     0,     0,   284,
+     0,     0,   102,     0,   297,     0,   298,   422,     0,     0,
+    94,    95,     0,   285,     0,   286,     0,     0,     0,     0,
+   289,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    98,     0,     0,
+     0,     0,   421,   293,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     1,   300,   296,     0,     0,     2,
+     0,     0,   102,     0,   297,     0,   298,   422,     3,     0,
+     0,     4,     0,     5,   423,   202,     0,   263,   303,   304,
+     0,     0,     0,     6,     0,     7,     0,     0,     0,     8,
+     9,    10,     0,     0,    11,     0,     0,     0,     0,     0,
+    12,     0,     0,     0,     0,     0,    13,     0,     0,     0,
+     0,     0,     0,     0,     0,   300,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,    14,     0,     0,     0,
+     0,     0,     0,     0,   423,   202,     0,   263,   303,   304,
+     0,     0,    15,     0,    16,     0,    17,    18,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    19,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,    20,     0,     0,     0,
+     0,     0,     0,     0,    21,    22,     0,     0,     0,     0,
+     0,    23,    24,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,    25,    26,    27,     0,     0,     0,    28,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    29,     0,
+     0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
+    31
 };
 
 static const short yycheck[] = {     3,
-   131,   160,     6,   196,   143,   157,   893,   470,   452,   471,
-    14,   337,   475,   734,    18,    19,   358,    21,   149,  1162,
-   725,    25,   482,    48,   836,    29,    30,   593,   550,   595,
-   596,   767,   768,   899,     5,    10,   411,     8,   560,    50,
-     6,    50,   778,    19,   271,    26,    22,   632,   633,   634,
-   635,   636,     5,     9,   186,    50,   283,   113,     4,   503,
-     6,   113,    60,    38,   649,    50,  1151,  1152,  1153,  1154,
-  1155,  1156,  1090,    49,   113,   105,    36,  1476,    82,    19,
-    37,   113,   120,    10,   459,   333,   549,   113,     7,    41,
-  1402,  1403,     5,   793,    36,    41,   579,   580,   581,   582,
-    36,    36,   113,   167,   794,   264,    37,    80,   267,    49,
-   107,    38,    88,   210,    15,  1322,  1323,   186,   187,   216,
-   105,   197,   585,   120,    37,   129,    68,    58,   132,   133,
-  1529,  1443,   136,   137,   110,   139,   140,   504,   113,   143,
-   113,   841,    78,   147,   148,    58,    98,   151,    88,   153,
-   154,   155,   842,   192,   111,    50,   160,   161,    76,   215,
-    78,   217,   410,   215,   240,   217,   132,   133,  1253,   199,
-   110,   120,   176,   139,    75,   307,   639,   404,   107,    35,
-   111,    37,   207,   215,    97,   151,   113,   153,   436,   215,
-   194,   217,     5,   197,  1401,   161,     7,    98,   111,   203,
-  1285,   166,    58,    60,   215,   123,   215,   125,    97,  1294,
-  1295,  1296,  1297,  1298,  1299,  1300,  1301,   215,  1303,   594,
-   215,    77,   168,  1035,   171,   114,    39,  1245,   107,   795,
-   177,   936,   937,   193,   756,   210,   240,    55,   194,   204,
-   216,    97,   195,    12,   248,   216,   202,   203,   204,   205,
-   986,   193,    70,   838,     9,   111,    78,   213,   193,   172,
-   264,   193,   722,   267,   268,   850,   851,   852,   853,   854,
-   855,    51,   195,   254,   195,   194,  1419,   843,    96,   211,
-   133,    70,   248,   202,   203,   204,   205,    56,   655,   212,
-    78,   212,   659,    37,   213,    76,   663,    78,    67,   193,
-   667,   123,   182,   125,   671,    85,   162,    96,   675,   792,
-  1176,   215,   679,   217,    58,    56,   683,   211,   801,   802,
-   803,   804,   805,   806,   456,   193,   770,   308,   193,   333,
-   334,   579,   580,   581,   582,   123,    37,   125,  1423,   343,
-  1444,  1445,   123,   211,   125,   349,   211,   131,   737,   330,
-   331,   332,   741,    97,   358,   211,   487,    58,   100,   363,
-   144,   195,  1466,   807,   690,   369,   370,   111,   128,   203,
-   112,   375,   132,   377,   148,   701,  1238,   381,   215,  1241,
-   217,   362,   100,   194,   632,   633,   634,   635,   636,  1201,
-   193,   202,   203,   204,   205,   737,    97,   192,   215,   741,
-   217,   649,   213,   369,   204,   205,   410,   178,   179,   375,
-   111,   377,   856,   213,   204,   205,    19,   208,   215,   794,
-   217,    24,   193,   213,   389,   390,   391,     7,   891,   166,
-   434,   396,   436,    36,   809,   810,   483,   484,   485,   194,
-  1006,  1007,  1008,   408,   148,   820,  1167,   202,   203,   204,
-   205,    64,   700,   194,   458,   195,   460,   197,   213,     9,
-  1347,   202,   203,   204,   205,   192,   431,   842,   433,   913,
-    80,   172,   213,    76,   210,   211,  1061,  1043,  1044,  1045,
-   215,    61,   217,   858,   194,    88,   215,    67,   492,    92,
-   200,   201,   859,   188,   189,   204,   205,    89,    80,   866,
-   867,    80,   869,   870,   213,   872,   873,   110,   875,   876,
-   122,   878,   879,    98,   881,   882,    80,   884,   885,   130,
-   887,   888,   215,   655,   217,   122,   492,   659,  1394,   122,
-  1396,   663,   994,   537,   215,   667,   217,   208,  1000,   671,
-   204,   119,   546,   675,   792,   793,   215,   679,   217,   553,
-    35,   683,    37,   801,   802,   803,   804,   805,   806,   215,
-   525,   217,   527,   528,   529,   530,   215,     9,   217,   573,
-    19,   151,   215,    58,   217,   579,   580,   581,   582,    33,
-   204,   205,   215,   163,   217,   204,   205,    36,   216,   213,
-   838,   119,    77,   841,   213,   215,     9,   217,   216,   751,
-   752,    55,   850,   851,   852,   853,   854,   855,   215,    64,
-   217,   750,    97,   215,   194,   217,    70,    71,   216,   199,
-   200,   201,   202,   203,   204,   205,   111,    76,   632,   633,
-   634,   635,   636,   213,   134,   767,   768,   137,   215,    88,
-   217,    32,    96,    92,   194,   649,   778,   147,  1023,   199,
-   200,   201,   202,   203,   204,   205,   118,   157,   158,   215,
-   194,   110,  1029,   213,    80,   216,  1033,   121,   202,   203,
-   204,   205,   192,   193,    56,   195,   176,   197,   216,   213,
-   812,   216,   215,   687,   217,   689,   215,   116,   217,  1133,
-    12,   216,   216,   216,    33,  1062,   700,   525,   702,   527,
-   528,   529,   530,    87,   708,   216,   216,   711,   216,   713,
-   714,   715,   716,    18,   216,  1177,    55,   721,    56,   216,
-   216,   725,   726,   119,   728,   216,   707,   211,   216,   733,
-     9,    70,    71,   737,    56,   211,   210,   741,    76,    61,
-   210,  1185,   708,   216,   119,    67,   750,   751,   752,   753,
-   716,   185,     9,   757,   735,   759,   760,    96,  1202,   156,
-   764,    97,   170,    80,   103,   104,   194,   771,   772,    50,
-   751,   752,  1235,   905,   202,   203,   204,   205,   743,    48,
-   105,    18,   121,   195,    97,   213,   751,   752,   792,   793,
-   105,   757,   210,   759,   105,   105,   105,   801,   802,   803,
-   804,   805,   806,   101,   213,    50,    61,   217,   210,   215,
-   217,   776,    67,  1061,   922,   164,   924,   925,   926,   927,
-   928,   929,   216,    22,   216,   790,   216,    63,  1195,   151,
-    63,    80,  1199,   199,   838,    82,    87,   841,    80,   174,
-   146,   163,   199,   199,     7,    97,   850,   851,   852,   853,
-   854,   855,   215,  1179,   986,   217,   194,  1183,  1302,    21,
-   215,   199,   200,   201,   202,   203,   204,   205,   216,   834,
-    98,   217,   194,   217,   839,   840,   217,   199,   200,   201,
-   202,   203,   204,   205,   217,    50,   217,    96,    71,   893,
-   216,   213,   896,   216,   119,   899,   151,   216,    61,   217,
-   216,   122,   216,   210,    67,   217,   199,   211,   163,   217,
-   212,    56,   113,   119,   217,   216,  1360,   216,   922,    82,
-   924,   925,   926,   927,   928,   929,   216,   216,   216,    51,
-   216,   216,   936,   937,   216,    57,   216,   149,   216,   194,
-   216,   945,   946,   216,    66,   949,   216,   202,   203,   204,
-   205,    73,   216,  1397,  1398,   194,   216,   216,   213,   217,
-   216,    48,    84,   202,   203,   204,   205,   217,   972,   213,
-   216,    56,    94,   216,   213,   216,  1420,  1108,   217,   945,
-  1139,   216,   216,   215,  1310,   216,   216,   109,   151,     7,
-   216,     9,   216,   216,  1320,   217,   194,   217,   213,   216,
-   163,   217,    26,  1111,   202,   203,   204,   205,   204,   974,
-   217,  1119,   217,  1121,  1122,   213,    53,  1125,  1126,  1127,
-  1128,  1129,  1130,  1131,  1132,   217,   217,  1135,   217,   217,
-   217,   194,   113,   105,  1142,   190,   199,   200,   201,   202,
-   203,   204,   205,    61,    53,   216,  1413,   216,   216,    67,
-   213,    78,   216,   184,   217,   216,    63,  1061,    48,    82,
-     9,   194,   105,     3,    82,   192,     6,   200,   201,   202,
-   203,   204,   205,   152,    14,   216,    52,   217,    18,    19,
-   213,    21,   217,   194,   216,    25,  1090,   217,  1092,    29,
-    30,   202,   203,   204,   205,   212,   217,   217,  1102,   217,
-   194,   216,   213,  1107,   217,   217,   215,  1111,   202,   203,
-   204,   205,   217,   217,   217,  1119,   217,  1121,  1122,   213,
-   217,  1125,  1126,  1127,  1128,  1129,  1130,  1131,  1132,   217,
-    62,  1135,    14,   151,  1501,  1139,  1102,   217,  1142,   217,
-   217,  1107,    82,   217,   217,   163,   217,  1151,  1152,  1153,
-  1154,  1155,  1156,   217,   194,   217,   217,   217,     7,   199,
-   200,   201,   202,   203,   204,   205,  1170,   217,   217,   217,
-   217,    54,  1176,   213,   139,    36,   194,   217,    36,    12,
-   191,   199,   200,   201,   202,   203,   204,   205,  1169,   129,
-  1171,   213,   132,   133,   199,   213,   136,   137,   141,   139,
-   140,   216,   216,   143,   216,    43,   216,   147,   148,    81,
-    84,   151,    61,   153,   154,   155,   217,   217,    67,   217,
-   160,   161,   217,    56,   217,   217,   217,  1358,    61,   217,
-   217,   217,   215,    82,    67,    62,   176,   215,   109,   193,
-    92,  1245,   217,  1247,   161,   213,    69,    90,    64,  1253,
-   210,   217,   215,   217,   194,   216,  1364,   197,   217,   217,
-   217,     5,   215,   203,   210,    83,   194,   217,    80,  1250,
-  1463,   199,   200,   201,   202,   203,   204,   205,   217,    14,
-   140,  1285,  1247,   217,   150,   213,   216,   192,   217,   216,
-  1294,  1295,  1296,  1297,  1298,  1299,  1300,  1301,  1491,  1303,
-   240,   216,   151,   217,   215,     3,    14,   210,   248,   208,
-   212,    19,   208,     0,   163,     0,    32,    25,   151,   216,
-   351,  1286,  1287,  1516,   264,   505,   955,   267,   268,   732,
-   163,   145,    61,   332,   711,   713,   952,   726,    67,  1143,
-  1455,   281,  1477,  1347,  1429,   194,  1459,   728,  1513,   753,
-   199,   200,   201,   202,   203,   204,   205,   297,    61,   752,
-  1364,   194,  1366,   962,   213,    28,   339,   204,   217,   202,
-   203,   204,   205,    15,    82,   265,   553,  1396,  1465,  1395,
-   213,   250,  1494,   157,     7,    31,   455,  1391,   764,    12,
-  1394,  1472,  1396,   333,   334,  1495,  1400,   352,  1502,  1400,
-  1410,  1239,  1521,   343,   297,   460,  1410,  1411,  1033,   349,
-   456,  1392,   154,   700,  1438,  1092,    -1,    -1,   358,  1423,
-    -1,   129,   151,   363,    -1,  1391,    -1,    -1,    -1,   369,
-   370,    61,   140,    56,   163,   375,    -1,   377,    61,   147,
-    -1,   381,    -1,    -1,    67,  1410,    -1,    -1,   151,  1453,
-    -1,    -1,    -1,    76,     7,   395,    -1,    -1,    -1,    82,
-   163,    -1,    -1,    -1,    -1,   194,  1470,    -1,   176,    -1,
-   199,   200,   201,   202,   203,   204,   205,    -1,   186,    -1,
-  1461,    -1,    -1,    -1,   213,    -1,   194,    -1,  1453,    -1,
-    -1,   194,    -1,    -1,   434,   203,    -1,    -1,  1502,   202,
-   203,   204,   205,  1507,   137,  1470,    -1,    -1,    61,    -1,
-   213,    -1,   452,    -1,    67,    -1,    -1,  1521,   458,  1523,
-   460,   151,   155,    -1,    -1,    -1,   284,    -1,   151,    82,
-    -1,    -1,  1513,   163,    -1,    -1,    -1,  1502,    -1,    -1,
-   163,   299,    -1,    -1,   302,    -1,   304,   305,   306,   307,
-    -1,    -1,   492,    -1,    -1,    -1,  1521,    -1,    -1,    -1,
-    -1,    -1,    -1,   503,   194,    -1,    -1,    -1,    -1,    -1,
-    -1,   194,   202,   203,   204,   205,   199,   200,   201,   202,
-   203,   204,   205,   213,    -1,    -1,    -1,    -1,    -1,    -1,
-   213,    -1,    -1,    -1,   217,    -1,    -1,   537,   151,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,    -1,   367,
-   163,   194,    -1,   553,    -1,    -1,   199,   200,   201,   202,
-   203,   204,   205,    -1,    -1,   333,   334,   385,    -1,    -1,
-    -1,    -1,    -1,   573,    -1,   343,    -1,    -1,    -1,    61,
-    -1,   194,    -1,    -1,    -1,    67,   199,   200,   201,   202,
-   203,   204,   205,    -1,    -1,    -1,   414,    -1,     7,    -1,
-   213,    -1,   370,    12,   217,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,     7,    -1,
-    -1,   439,    -1,   441,    -1,    -1,   444,   445,   446,   447,
-   448,   449,   450,   451,    -1,   453,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    56,    -1,    -1,
-    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,   151,
-    -1,    -1,    61,    82,    -1,    -1,    -1,    -1,    67,    -1,
-    -1,   163,    -1,    -1,    -1,    -1,     7,   687,   456,   689,
-    -1,    12,    -1,    82,    -1,    -1,   333,    -1,    -1,    -1,
-   700,    -1,   702,    -1,    -1,    -1,    -1,    -1,   708,    -1,
-    -1,   711,   194,   713,   714,   715,   716,   410,   200,   201,
-   202,   203,   204,   205,    -1,   725,   726,    -1,   728,    -1,
-    -1,   213,    -1,   733,    -1,    56,    -1,   737,    -1,    -1,
-    61,   741,   151,   436,    -1,    -1,    67,    -1,    -1,    -1,
-   750,   751,   752,   753,   163,    76,    -1,   757,    -1,   759,
-   760,    82,   151,    -1,   764,    -1,    -1,    -1,    -1,   537,
-   770,   771,   772,    -1,   163,   593,    -1,   595,   596,    -1,
-    -1,    -1,    -1,    -1,   602,   194,    -1,    -1,    -1,    -1,
-   199,   200,   201,   202,   203,   204,   205,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   213,   194,    -1,   807,   217,    -1,
-   199,   200,   201,   202,   203,   204,   205,    -1,    -1,   637,
-    -1,    -1,    -1,    -1,   213,    -1,    -1,    -1,    -1,    -1,
-   151,    -1,    -1,   651,    -1,    -1,    -1,   655,    -1,    -1,
-    -1,   659,   163,    -1,    -1,   663,    -1,    -1,    -1,   667,
-    -1,    -1,    -1,   671,    -1,    -1,   856,   675,     7,   859,
-    -1,   679,    -1,    12,    -1,   683,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   194,    -1,    -1,    -1,    -1,   199,   200,
-   201,   202,   203,   204,   205,    -1,   579,   580,   581,   582,
-    -1,    -1,   213,   893,   215,    -1,   896,    -1,    -1,   899,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    56,    -1,    -1,
-    -1,    -1,    61,   913,    -1,    -1,    -1,    -1,    67,   687,
-    -1,   689,    -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,
-    -1,    -1,   700,    82,    -1,    -1,   936,   937,    -1,   632,
-   633,   634,   635,   636,    -1,   945,    -1,   100,    -1,   949,
-    -1,    -1,    -1,    -1,    -1,    -1,   649,   110,   100,   112,
-    -1,    -1,    -1,   781,   117,   733,    -1,    -1,    -1,    -1,
-   112,   124,   972,   126,    -1,   117,   129,   795,    -1,    -1,
-    -1,    -1,   124,    -1,   126,   138,    -1,   129,    -1,    -1,
-    -1,    12,   145,   811,    -1,   148,   138,    -1,    -1,   767,
-   768,    -1,   151,   145,    -1,    -1,   148,    -1,    -1,    -1,
-   778,     7,   165,    -1,   163,    -1,    12,    -1,    -1,   172,
-   173,    -1,    -1,   165,   166,   843,    -1,   180,   721,    -1,
-   172,   173,    -1,    -1,    -1,    56,    -1,    -1,    -1,    -1,
-    61,    -1,    -1,    -1,    -1,   194,    67,    -1,    -1,    -1,
-   199,   200,   201,   202,   203,   204,   205,    -1,    -1,    -1,
-    56,    -1,  1062,   700,   213,    61,   215,    -1,     7,    -1,
-     9,    67,   890,    12,    -1,    -1,    -1,    -1,    -1,    -1,
-    76,    -1,    -1,    -1,   721,    -1,    82,    -1,    -1,    -1,
-  1090,    -1,  1092,    -1,    -1,    -1,    -1,    -1,    -1,   792,
-   793,    -1,  1102,    -1,    -1,    -1,    -1,  1107,   801,   802,
-   803,   804,   805,   806,    -1,    -1,    -1,    56,    -1,    -1,
-    -1,    -1,    61,    -1,    -1,   893,    -1,    -1,    67,    -1,
-   151,    -1,    -1,  1133,    -1,    -1,    -1,    76,    -1,  1139,
-    -1,    -1,   163,    82,    -1,   838,    -1,    -1,   841,    -1,
-    -1,    -1,    -1,    -1,    -1,   151,    -1,   850,   851,   852,
-   853,   854,   855,    -1,    -1,    -1,    -1,   163,    -1,    -1,
-  1170,    -1,    -1,   194,    -1,    -1,  1176,    -1,    -1,   200,
-   201,   202,   203,   204,   205,  1185,    -1,    -1,  1006,  1007,
-  1008,    -1,   213,    -1,    -1,    -1,    -1,    -1,   194,    -1,
-    -1,    -1,  1202,   199,   200,   201,   202,   203,   204,   205,
-    -1,   207,   151,  1213,    -1,  1033,   212,   213,   986,    -1,
-    -1,    -1,   859,    -1,   163,  1043,  1044,  1045,    -1,   922,
-    -1,   924,   925,   926,   927,   928,   929,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,  1245,    -1,  1247,    -1,    -1,
-    -1,    -1,    -1,   946,    -1,   194,    -1,    -1,    -1,    -1,
-   199,   200,   201,   202,   203,   204,   205,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   213,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   922,    -1,   924,   925,   926,
-   927,   928,   929,    33,    34,    -1,    -1,    -1,    -1,    -1,
-    40,    -1,  1302,    -1,    -1,    -1,    -1,    47,    -1,   946,
-    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,    59,
-    -1,    -1,  1090,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
-  1340,    -1,    -1,    -1,    -1,    -1,    -1,  1347,    -1,    -1,
-    -1,    -1,     7,    -1,    -1,    -1,    96,    12,    -1,   410,
-  1360,   101,   102,    -1,    -1,    -1,  1366,    -1,  1061,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   121,    -1,    -1,    -1,   436,   126,    -1,    -1,    -1,
-    -1,  1391,    -1,    -1,  1394,    50,  1396,  1397,  1398,    -1,
-  1400,    56,  1170,    -1,    -1,    -1,    61,    -1,    -1,    -1,
-  1410,  1411,    67,    -1,    -1,    -1,    -1,    -1,  1111,    -1,
-  1420,    76,    -1,    -1,    -1,  1062,  1119,    82,  1121,  1122,
-  1248,    -1,  1125,  1126,  1127,  1128,  1129,  1130,  1131,  1132,
-    -1,    -1,  1135,    -1,    -1,    -1,    -1,    -1,    -1,  1142,
-    -1,    -1,   192,  1453,    -1,    -1,    -1,    -1,  1151,  1152,
-  1153,  1154,  1155,  1156,    -1,    -1,    -1,    -1,    -1,    -1,
-  1470,    -1,    -1,    -1,  1111,    -1,    -1,  1245,    -1,    -1,
-    -1,    -1,  1119,  1176,  1121,  1122,    -1,    -1,  1125,  1126,
-  1127,  1128,  1129,  1130,  1131,  1132,   151,    -1,  1135,    -1,
-    -1,    -1,  1502,    -1,    -1,  1142,    -1,  1507,   163,    -1,
-    -1,    -1,    -1,    -1,  1151,  1152,  1153,  1154,  1155,  1156,
-    -1,  1521,    -1,  1523,    -1,    -1,    -1,    -1,   579,   580,
-   581,   582,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   194,
-    -1,    -1,    -1,    -1,   199,   200,   201,   202,   203,   204,
-   205,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   213,    -1,
-  1253,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     7,
-    -1,    -1,    -1,    -1,    12,    -1,  1213,    -1,    -1,  1347,
-    -1,   632,   633,   634,   635,   636,    -1,    -1,    -1,    -1,
-    -1,    -1,  1285,    -1,    -1,    -1,    -1,    -1,   649,    -1,
-    -1,  1294,  1295,  1296,  1297,  1298,  1299,  1300,  1301,    -1,
-  1303,    -1,    -1,    -1,    -1,    -1,  1253,    -1,    56,    -1,
-    -1,    -1,    -1,    61,    -1,     7,    -1,    -1,    -1,    67,
-    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,
-    -1,     7,    -1,    -1,    82,    -1,    12,    -1,  1285,    -1,
-    -1,  1469,    -1,    -1,    -1,    -1,    -1,  1294,  1295,  1296,
-  1297,  1298,  1299,  1300,  1301,    -1,  1303,    -1,    -1,    -1,
-   721,  1364,    -1,    -1,    56,    -1,    -1,    -1,    -1,    61,
-    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
-    56,    -1,    -1,    -1,    76,    61,    -1,    -1,    -1,    -1,
-    82,    67,    -1,  1340,    -1,    -1,    -1,    -1,    -1,    -1,
-    76,    -1,    -1,   151,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   163,    -1,  1364,    -1,    -1,
-  1423,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   792,   793,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   801,   802,   803,   804,   805,   806,   194,    -1,    -1,    -1,
-    -1,   199,   200,   201,   202,   203,   204,   205,    -1,   151,
-    -1,    -1,    -1,    -1,   212,   213,    -1,    -1,    -1,    -1,
-    -1,   163,    -1,    -1,    -1,   151,  1423,   838,    -1,    -1,
-   841,    -1,    -1,    -1,    -1,    -1,    -1,   163,    -1,   850,
-   851,   852,   853,   854,   855,    -1,    -1,    -1,   859,    -1,
-    -1,    -1,   194,    -1,    -1,    -1,    -1,   199,   200,   201,
-   202,   203,   204,   205,    -1,    -1,    -1,    -1,   194,    -1,
-    -1,   213,    -1,   199,   200,   201,   202,   203,   204,   205,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   213,    -1,    -1,
-     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    16,    17,    18,    -1,    -1,    -1,    -1,
-    -1,   922,    -1,   924,   925,   926,   927,   928,   929,    -1,
-    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
-    -1,    -1,    -1,    -1,    47,   946,    -1,    -1,    -1,    -1,
-    -1,    -1,    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,
-    63,    64,    -1,    -1,    -1,    -1,    69,    70,    71,    72,
-    -1,    74,    -1,    76,    -1,    78,    79,    -1,    81,    -1,
-    -1,    -1,    -1,    -1,    12,    -1,    89,    -1,    -1,    -1,
-    -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,   101,   102,
-   103,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   115,    -1,    -1,    -1,    -1,    -1,   121,   122,
-   123,   124,   125,   126,    -1,    -1,    -1,    -1,    56,    -1,
-    -1,   134,    -1,    61,   137,   138,   139,    -1,   141,    67,
-    -1,    -1,   145,    -1,   147,   148,    -1,    -1,    76,    -1,
-    -1,    -1,    -1,   156,   157,   158,    -1,    -1,    -1,    -1,
-  1061,  1062,   165,    -1,   167,    -1,    -1,    -1,   171,    -1,
-    -1,   174,    -1,   176,   177,    -1,    -1,    -1,    -1,    -1,
-   183,    -1,   185,    -1,    -1,    -1,    -1,   190,    -1,   192,
-   193,   194,   195,   196,   197,    -1,    -1,    -1,    -1,    -1,
-   203,    -1,    -1,   206,   207,   208,    -1,    -1,    -1,    -1,
-  1111,    -1,    -1,   216,   217,    -1,    -1,    -1,  1119,    -1,
-  1121,  1122,    -1,   151,  1125,  1126,  1127,  1128,  1129,  1130,
-  1131,  1132,    -1,    -1,  1135,   163,    -1,    -1,    -1,    -1,
-    -1,  1142,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-  1151,  1152,  1153,  1154,  1155,  1156,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   194,    -1,    -1,    -1,
-    -1,   199,   200,   201,   202,   203,   204,   205,    -1,    -1,
-    -1,    17,    18,    -1,    -1,   213,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    -1,
-    -1,    -1,    -1,    -1,    40,    -1,    -1,    -1,    -1,    -1,
-    -1,    47,  1213,    -1,    -1,    -1,    -1,    -1,    -1,    55,
+   476,   133,     6,   162,   199,   145,   416,   159,   740,    26,
+    14,   907,   901,   556,    18,    19,   363,    21,   844,   151,
+   343,    25,   457,   566,   475,    29,    30,  1171,   731,   480,
+     5,   775,   776,   487,   599,     7,   601,   602,  1332,  1333,
+    50,   188,   786,     5,    10,    50,     8,    35,    48,    37,
+     4,    50,     6,    36,   464,    19,    50,    60,    22,   114,
+     7,    41,   274,  1099,   114,   114,    10,   106,    36,   114,
+    58,    12,    38,   508,   286,    36,    50,   114,    82,     6,
+   638,   639,   640,   641,   642,    49,    36,    41,    14,    61,
+    78,    36,   168,    19,    38,    67,   801,   655,     7,    25,
+    68,    70,    37,    15,   555,     5,    19,   802,   267,   114,
+    98,   270,     9,  1412,  1413,    56,    37,  1411,    79,    99,
+   188,   189,   200,    58,   112,    89,    67,   131,    97,   108,
+   134,   135,   106,  1488,   138,   139,    49,   141,   142,    39,
+   591,   145,   121,    51,   849,   149,   150,   111,   114,   153,
+    60,   155,   156,   157,  1453,   850,    82,   194,   162,   163,
+     9,   216,   201,   310,    76,   243,   216,   216,   218,   218,
+   114,   216,   189,   218,   178,   163,    89,   112,    86,   134,
+   152,  1160,  1161,  1162,  1163,  1164,  1165,    99,  1543,   149,
+   600,   112,   164,   197,   645,   172,   200,   409,   111,     9,
+   129,   178,   206,    98,   133,   131,   216,   134,   135,   209,
+   183,   216,   195,   216,   141,   169,   142,   216,  1044,  1255,
+   115,   764,   197,   149,   196,   213,   153,   195,   155,   201,
+   202,   203,   204,   205,   206,   207,   163,   168,   803,   243,
+   257,   944,   945,   215,    79,   195,   212,   251,    81,   196,
+   195,   995,   178,   217,  1553,   217,  1550,   204,   205,   206,
+   207,   195,   188,   267,   197,   195,   270,   271,   215,   132,
+    79,   197,   205,   212,   728,   195,   207,    56,   217,   213,
+   206,   114,   145,   213,  1263,  1429,   851,   196,   846,   124,
+  1186,   126,   195,   213,   311,   204,   205,   206,   207,   196,
+   858,   859,   860,   861,   862,   863,   215,   204,   205,   206,
+   207,    33,   190,   191,   461,   124,  1295,   126,   215,   336,
+   337,   338,   210,   195,   251,  1304,  1305,  1306,  1307,  1308,
+  1309,  1310,  1311,    55,  1313,   339,   340,   585,   586,   587,
+   588,   213,    77,   778,    79,   349,   101,   196,    70,    71,
+   367,   355,   201,   202,   203,   204,   205,   206,   207,   363,
+   492,   167,    55,    77,   368,    79,   215,  1454,  1455,   101,
+   374,   375,   216,   696,   218,    97,   380,    70,   382,   745,
+   815,   113,   386,   749,   707,  1211,   196,   194,     5,   124,
+  1477,   126,   802,   149,   204,   205,   206,   207,   745,   197,
+   122,    64,   749,  1248,    97,   215,  1251,   817,   818,   194,
+   124,   415,   126,   339,   340,   197,   214,   196,   828,   216,
+    37,   218,    37,   349,    37,   204,   205,   206,   207,   864,
+    90,    81,   214,    61,    81,   439,   215,   441,   216,    67,
+   850,    58,    81,    58,  1176,    58,    56,   374,   899,   375,
+  1015,  1016,  1017,   380,  1433,   382,   866,   194,   195,   463,
+   197,   465,   199,   394,   395,   396,    61,    77,  1357,   123,
+   401,   930,    99,   932,   933,   934,   935,   936,   937,    19,
+    81,    98,   413,    98,    24,    98,   921,  1052,  1053,  1054,
+   179,   180,   196,   497,   131,   112,    36,   112,   123,   112,
+   204,   205,   206,   207,     4,   436,   195,   438,  1404,     9,
+  1406,   215,  1070,   216,   661,   218,    16,   216,   665,   218,
+    20,   216,   669,   218,   152,   123,   673,  1003,   212,   213,
+   677,   206,   207,  1009,   681,   461,   164,    77,   685,   543,
+   215,   210,   689,   120,   206,   206,   207,   217,   552,    89,
+   206,   207,   800,    93,   215,   559,   173,   152,   173,   215,
+     9,   809,   810,   811,   812,   813,   814,   196,   196,   164,
+   497,   111,   120,   202,   203,   579,   204,   205,   206,   207,
+     9,   585,   586,   587,   588,   217,   196,   215,   197,    64,
+   199,   201,   202,   203,   204,   205,   206,   207,    12,   217,
+   531,   196,   533,   534,   535,   536,    32,   759,   760,   204,
+   205,   206,   207,   119,   206,   207,    19,   543,   758,   216,
+   215,   218,  1032,   215,   488,   489,   490,   216,   775,   776,
+    81,   206,   207,    36,   638,   639,   640,   641,   642,   786,
+   215,   135,    56,   216,   138,   218,   216,    61,   218,   196,
+   216,   655,   218,    67,   148,   202,   203,   204,   205,   206,
+   207,  1120,    33,   217,   158,   159,    56,   509,   215,  1128,
+   117,  1130,  1131,   820,    77,  1134,  1135,  1136,  1137,  1138,
+  1139,  1140,  1141,   177,    55,  1144,    89,   217,   217,   693,
+    93,   695,  1151,   216,    88,   218,   713,   217,   217,    70,
+    71,   216,   706,   218,   708,   217,   217,  1142,   111,   217,
+   714,  1187,   217,   717,    51,   719,   720,   721,   722,   216,
+    57,   218,    18,   727,   741,   217,    97,   731,   732,    66,
+   734,   217,   217,   104,   105,   739,   120,    74,   152,  1483,
+   217,   745,   759,   760,   216,   749,   218,   216,    85,   218,
+   164,   122,   213,   217,   758,   759,   760,   761,    95,     9,
+  1195,   765,   212,   767,   768,   213,   913,   693,   772,   695,
+   216,   212,   218,   110,   217,   779,   780,  1212,   120,   187,
+   706,   531,   196,   533,   534,   535,   536,   714,   202,   203,
+   204,   205,   206,   207,  1245,   722,   800,   801,    35,     9,
+    37,   215,   157,    98,   171,   809,   810,   811,   812,   813,
+   814,    81,    48,   739,     7,   216,     9,   218,   106,   661,
+   751,    58,    61,   665,   216,    50,   218,   669,   759,   760,
+   216,   673,   218,    18,   197,   677,    98,   106,   765,   681,
+   767,    78,   846,   685,   212,   849,   102,   689,   995,   775,
+   776,   106,   106,   784,   858,   859,   860,   861,   862,   863,
+   786,    98,   106,   215,   218,    12,  1189,   798,    61,   218,
+  1193,   216,    50,   196,    67,   112,   212,  1312,   201,   202,
+   203,   204,   205,   206,   207,   165,   217,    22,   217,    63,
+    83,    63,   215,   217,    81,   218,   201,   901,   185,    83,
+   904,   175,   339,   907,    81,    88,   147,   201,   201,    56,
+    98,   842,   216,   152,    61,  1374,   847,   848,  1461,   218,
+    67,    21,    50,    99,   216,   164,   930,   217,   932,   933,
+   934,   935,   936,   937,   218,  1370,   196,    61,    97,   218,
+   944,   945,   218,    67,   204,   205,   206,   207,    71,   953,
+   954,   218,   969,   957,   218,   215,   217,   196,   218,   152,
+   217,   123,   213,   212,   217,   204,   205,   206,   207,   217,
+   217,   164,  1407,  1408,   217,   901,   215,   981,   218,   201,
+   218,   214,   196,   218,   218,  1117,   217,   217,   217,  1148,
+   204,   205,   206,   207,   217,  1430,   217,  1320,   217,   217,
+   217,   215,   217,   196,   217,   152,   217,  1330,   201,   202,
+   203,   204,   205,   206,   207,   217,   217,   164,   217,   217,
+   217,   217,   215,   217,    56,   867,   953,   217,   152,   218,
+   150,   217,   874,   875,   201,   877,   878,  1513,   880,   881,
+   164,   883,   884,   120,   886,   887,   217,   889,   890,   196,
+   892,   893,   983,   895,   896,   114,   217,   204,   205,   206,
+   207,   217,   217,   217,   120,   215,  1070,    48,   215,   995,
+   218,   217,   196,   218,     3,   218,    56,     6,   202,   203,
+   204,   205,   206,   207,   215,    14,   218,   217,    26,    18,
+    19,   215,    21,   218,   196,  1099,    25,  1101,   216,   218,
+    29,    30,   204,   205,   206,   207,   218,  1111,   218,   196,
+   218,   218,  1116,   215,   218,   206,  1120,   204,   205,   206,
+   207,    53,   114,   106,  1128,    53,  1130,  1131,   215,   192,
+  1134,  1135,  1136,  1137,  1138,  1139,  1140,  1141,   217,   217,
+  1144,   217,   217,   186,  1148,   217,    79,  1151,    63,    48,
+     9,   106,    83,    82,   153,   194,  1160,  1161,  1162,  1163,
+  1164,  1165,  1179,   217,  1181,    52,   218,   218,   218,   196,
+   218,   218,   218,  1099,   214,   217,  1180,   204,   205,   206,
+   207,   217,  1186,   218,  1111,   218,   216,   218,   215,  1116,
+   218,    62,   218,   218,   218,   218,  1038,   218,   218,   218,
+  1042,   218,   131,   218,   218,   134,   135,   218,   218,   138,
+   139,   218,   141,   142,  1537,   218,   145,   218,   218,    14,
+   149,   150,   218,   218,   153,    54,   155,   156,   157,  1071,
+   140,    36,    36,   162,   163,   193,  1368,   215,   201,   142,
+   217,   217,   217,  1260,   217,    43,    82,   218,   218,   178,
+   218,  1255,   218,  1257,  1180,   196,   218,   218,   218,  1263,
+   201,   202,   203,   204,   205,   206,   207,     7,   197,   706,
+   218,   200,    12,   218,   215,   196,   218,   206,    85,  1474,
+   201,   202,   203,   204,   205,   206,   207,    62,   110,   216,
+   727,  1295,   216,   195,    93,   218,   162,   215,    69,    91,
+  1304,  1305,  1306,  1307,  1308,  1309,  1310,  1311,  1503,  1313,
+    64,   212,   218,   217,   243,     5,    56,    84,   216,   216,
+   212,    61,   251,   218,   218,   218,  1257,    67,   218,  1255,
+   218,    81,   218,   141,  1529,    98,  1483,    77,   267,    14,
+   218,   270,   271,    83,   217,   151,   194,   217,   217,   110,
+   218,   218,   216,  1357,     3,   284,   212,   214,   210,   210,
+     0,     0,    32,  1205,   219,  1296,  1297,  1209,   357,   510,
+  1374,   300,  1376,   738,   338,   963,   717,   147,     7,   732,
+   719,   960,  1152,    12,  1466,  1402,  1489,  1439,   734,  1470,
+  1526,   971,   761,    28,   760,   207,   345,  1401,     7,    15,
+  1404,   559,  1406,    12,  1406,   268,  1410,  1476,  1506,  1405,
+   339,   340,   152,   253,   159,   772,  1420,  1421,   969,    31,
+   349,   358,  1514,   460,   164,  1484,   355,    56,  1507,  1433,
+   867,  1357,    61,  1420,   363,  1515,  1249,  1534,    67,   368,
+  1410,   706,   300,  1042,   156,   374,   375,    56,    77,   465,
+  1448,   380,    61,   382,    83,  1472,   196,   386,    67,   461,
+  1464,   201,   202,   203,   204,   205,   206,   207,    77,    -1,
+  1101,   400,    -1,    -1,  1401,   215,    12,  1481,   218,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1420,
+    -1,    -1,    -1,   930,    -1,   932,   933,   934,   935,   936,
+   937,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1526,
+   439,  1515,    -1,    -1,    -1,    -1,  1520,   954,    -1,   139,
+    56,    -1,    -1,   152,    -1,    61,    -1,    -1,   457,    -1,
+  1534,    67,  1536,  1464,   463,   164,   465,   157,    -1,    -1,
+    -1,    77,    -1,   152,    -1,    -1,    -1,    -1,    -1,    -1,
+  1481,    -1,    -1,    -1,    -1,   164,    -1,  1483,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   196,   497,    -1,
+    -1,    -1,   201,   202,   203,   204,   205,   206,   207,   508,
+    -1,    -1,    -1,    -1,  1515,    -1,   215,   196,    -1,   218,
+    -1,    -1,   201,   202,   203,   204,   205,   206,   207,    -1,
+    -1,    -1,    -1,  1534,    -1,    -1,   215,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   543,    -1,   152,    33,    34,    -1,
+    -1,    -1,    -1,   552,    40,    -1,    -1,    61,   164,    -1,
+   559,    47,    -1,    67,  1071,    -1,    -1,    -1,    -1,    55,
     -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    70,    71,    72,    -1,    74,    -1,
-    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,  1253,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    96,    -1,    -1,    -1,    -1,   101,   102,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   115,
-    -1,    -1,    -1,    -1,  1285,   121,    -1,    -1,    -1,    -1,
-   126,    -1,    -1,  1294,  1295,  1296,  1297,  1298,  1299,  1300,
-  1301,    -1,  1303,    -1,    -1,     3,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    16,    17,
-    18,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,
-    28,    29,    30,    31,    -1,    33,    34,    -1,   174,  1340,
-    -1,    -1,    40,    -1,    -1,    -1,    44,    45,    -1,    47,
-    -1,    -1,    -1,    -1,    -1,    -1,   192,    55,    -1,    -1,
-    -1,    59,    -1,  1364,    -1,    63,    64,    -1,    -1,    -1,
-    -1,    69,    70,    71,    72,    -1,    74,    -1,    76,    -1,
-    78,    79,    -1,    81,    -1,    -1,    -1,    -1,    86,    -1,
-    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,
-    -1,    99,    -1,   101,   102,   103,   104,    -1,    -1,    -1,
-   108,    -1,    -1,    -1,   112,    -1,    -1,   115,    -1,    -1,
-    -1,    -1,  1423,   121,   122,   123,   124,   125,   126,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,   137,
-   138,   139,    -1,   141,    -1,    -1,    -1,   145,    -1,   147,
-   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,   157,
-   158,    -1,   160,    -1,    -1,    -1,    -1,   165,    -1,   167,
-    -1,    -1,    -1,   171,    -1,    -1,   174,    -1,   176,   177,
-    -1,    -1,    -1,    -1,    -1,   183,    -1,   185,    -1,    -1,
-    -1,    -1,   190,    -1,   192,   193,   194,   195,   196,   197,
-     3,    -1,    -1,    -1,    -1,   203,   204,    -1,   206,   207,
-   208,    -1,    -1,    16,    17,    18,    -1,    -1,   216,   217,
+   579,    -1,    -1,    -1,    70,    71,    -1,    -1,    -1,    -1,
+   196,    -1,    -1,    -1,    80,   201,   202,   203,   204,   205,
+   206,   207,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   215,
+    -1,    97,    -1,  1120,    -1,    -1,   102,   103,    -1,    -1,
+    -1,  1128,    -1,  1130,  1131,    -1,    -1,  1134,  1135,  1136,
+  1137,  1138,  1139,  1140,  1141,    -1,   122,  1144,    -1,    -1,
+    -1,   127,    -1,    -1,  1151,    -1,    -1,    -1,   152,    -1,
+    -1,    -1,    -1,  1160,  1161,  1162,  1163,  1164,  1165,    -1,
+   164,    -1,   287,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   302,    -1,    -1,
+   305,    -1,   307,   308,   309,   310,    -1,    -1,    -1,    -1,
+    -1,    -1,   196,    -1,   693,    -1,   695,   201,   202,   203,
+   204,   205,   206,   207,    -1,    -1,    -1,   706,   194,   708,
+    -1,   215,    -1,    -1,    -1,   714,  1223,     7,   717,   101,
+   719,   720,   721,   722,    -1,   415,    -1,    -1,    -1,    -1,
+    -1,   113,   731,   732,    -1,   734,   118,    -1,    -1,    -1,
+   739,    -1,    -1,   125,    -1,   127,   745,   372,   130,    -1,
+   749,   441,    -1,    -1,    -1,    -1,  1263,   139,    -1,   758,
+   759,   760,   761,    -1,   146,   390,   765,   149,   767,   768,
+    -1,    61,    -1,   772,    -1,    -1,    -1,    67,    -1,   778,
+   779,   780,    -1,    -1,   166,   167,    -1,    -1,  1295,    -1,
+    -1,   173,   174,    83,   419,    -1,     7,  1304,  1305,  1306,
+  1307,  1308,  1309,  1310,  1311,    -1,  1313,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   440,   815,    -1,    -1,   444,
+    -1,   446,    -1,    -1,   449,   450,   451,   452,   453,   454,
+   455,   456,    12,   458,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,  1350,    -1,   339,    -1,    -1,    -1,    -1,
+    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
+    -1,    -1,   152,    -1,    -1,   864,    -1,  1374,   867,    -1,
+    -1,    -1,    83,    -1,   164,    -1,    56,    -1,    -1,    -1,
+    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   585,   586,   587,   588,    -1,
+    -1,    -1,   901,    -1,    -1,   904,   196,    -1,   907,    -1,
+    -1,   201,   202,   203,   204,   205,   206,   207,    -1,    -1,
+    -1,   415,   921,    -1,    -1,   215,  1433,    -1,   218,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,   152,    -1,    -1,    -1,   944,   945,   441,   638,   639,
+   640,   641,   642,   164,   953,    -1,    -1,    -1,   957,    -1,
+    -1,    -1,    -1,    -1,    -1,   655,    -1,    -1,    -1,    -1,
+    -1,    -1,   152,    -1,   599,    -1,   601,   602,    -1,    -1,
+    -1,    -1,   981,   608,   164,   196,    -1,    -1,    -1,    -1,
+   201,   202,   203,   204,   205,   206,   207,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   215,    -1,    -1,   218,     7,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,   196,    -1,   643,    -1,
+    -1,   201,   202,   203,   204,   205,   206,   207,    -1,    -1,
+    -1,    -1,   657,    -1,    -1,   215,   661,   727,    -1,    -1,
+   665,    -1,    -1,    -1,   669,    -1,    -1,    -1,   673,    -1,
+    -1,    -1,   677,    -1,    -1,    -1,   681,    -1,    -1,    -1,
+   685,    -1,    61,    -1,   689,    -1,    -1,    -1,    67,    -1,
+    -1,    -1,  1071,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,     7,    -1,    83,    -1,    -1,    12,    -1,    -1,
+    -1,   585,   586,   587,   588,    -1,    -1,    -1,    -1,    -1,
+  1099,    -1,  1101,     7,    -1,    -1,    -1,    -1,    -1,    -1,
+   800,   801,  1111,    -1,    -1,    -1,    -1,  1116,    -1,   809,
+   810,   811,   812,   813,   814,    -1,    -1,    -1,    -1,    -1,
+    -1,    56,    -1,    -1,    -1,    -1,    61,    -1,    -1,    -1,
+    -1,    -1,    67,  1142,   638,   639,   640,   641,   642,  1148,
+    -1,    -1,    77,   152,    -1,    -1,   846,    61,    83,   849,
+    -1,   655,    -1,    67,   789,   164,    -1,    -1,   858,   859,
+   860,   861,   862,   863,    -1,    -1,    -1,    -1,   803,    83,
+    -1,  1180,    -1,    -1,    -1,    -1,    -1,  1186,    -1,    -1,
+    -1,    -1,    -1,    -1,   819,    -1,  1195,   196,    -1,    -1,
+    -1,    -1,   201,   202,   203,   204,   205,   206,   207,    -1,
+    -1,    -1,   706,  1212,    -1,    -1,   215,    -1,    -1,   218,
+    -1,    -1,    -1,    -1,  1223,    -1,   851,   152,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   164,
+   930,    -1,   932,   933,   934,   935,   936,   937,   152,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,  1255,    -1,  1257,    -1,
+   164,    -1,   415,    -1,   954,    -1,    -1,    -1,    -1,    -1,
+    -1,   196,    -1,   898,    -1,    -1,   201,   202,   203,   204,
+   205,   206,   207,    -1,    -1,    -1,    -1,    -1,   441,    -1,
+   215,   216,   196,    -1,    -1,    -1,    -1,   201,   202,   203,
+   204,   205,   206,   207,    -1,    -1,   800,   801,    -1,    -1,
+    -1,   215,    -1,  1312,    -1,   809,   810,   811,   812,   813,
+   814,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,     7,    -1,    -1,    -1,    -1,    12,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,  1350,   846,    -1,    -1,   849,    -1,    -1,  1357,    -1,
+    -1,    -1,    -1,    -1,   858,   859,   860,   861,   862,   863,
+    -1,  1370,    -1,    -1,    -1,    -1,    -1,  1376,    -1,    -1,
+  1070,    -1,    -1,    56,    -1,    -1,    -1,    -1,    61,    -1,
+  1015,  1016,  1017,    -1,    67,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,  1401,    -1,    77,  1404,    -1,  1406,  1407,  1408,
+    83,  1410,    -1,    -1,    -1,    -1,    -1,  1042,    -1,    -1,
+    -1,  1420,  1421,    -1,    -1,    -1,    -1,  1052,  1053,  1054,
+  1120,  1430,   585,   586,   587,   588,    -1,    -1,  1128,    -1,
+  1130,  1131,    -1,    -1,  1134,  1135,  1136,  1137,  1138,  1139,
+  1140,  1141,    -1,    -1,  1144,    -1,    -1,    -1,    -1,    -1,
+    -1,  1151,    -1,    -1,    -1,  1464,    -1,    -1,    -1,    -1,
+  1160,  1161,  1162,  1163,  1164,  1165,    -1,    -1,    -1,   152,
+    -1,    -1,  1481,    -1,    -1,   638,   639,   640,   641,   642,
+    -1,   164,     7,    -1,    -1,    -1,  1186,    12,    -1,    -1,
+    -1,    -1,   655,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,  1515,    -1,    -1,    -1,
+    -1,  1520,    -1,   196,    -1,    -1,    -1,    -1,   201,   202,
+   203,   204,   205,   206,   207,  1534,    -1,  1536,    -1,    -1,
+    -1,    56,   215,   216,    -1,    -1,    61,    -1,    -1,    -1,
+    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,    83,    -1,
+    -1,    -1,    -1,  1263,   727,    -1,  1070,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,  1295,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,  1304,  1305,  1306,  1307,  1308,  1309,
+  1310,  1311,    -1,  1313,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,  1258,    -1,    -1,    -1,   152,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   800,   801,   164,
+    -1,    -1,    -1,    -1,    -1,    -1,   809,   810,   811,   812,
+   813,   814,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,   196,    -1,    -1,  1374,    -1,   201,   202,   203,   204,
+   205,   206,   207,   846,   209,    -1,   849,    -1,    -1,   214,
+   215,    -1,    -1,    -1,    -1,   858,   859,   860,   861,   862,
+   863,    -1,    17,    18,   867,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,
+    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    -1,    -1,
+    -1,    -1,    47,  1433,    -1,    -1,    -1,    -1,    -1,    -1,
+    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,     3,    -1,
+    -1,    -1,    -1,    -1,    -1,    70,    71,    -1,    73,    -1,
+    75,    16,    17,    18,    -1,    80,    -1,   930,    -1,   932,
+   933,   934,   935,   936,   937,    -1,    -1,    -1,    33,    34,
+    -1,    -1,    97,    -1,    -1,    40,    -1,   102,   103,    -1,
+    -1,   954,    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    55,   116,    -1,    -1,    59,    -1,    -1,   122,    63,    64,
+    -1,    -1,   127,    -1,    69,    70,    71,    -1,    73,    -1,
+    75,    -1,    77,    -1,    79,    80,    -1,    82,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    90,    -1,    -1,    -1,    -1,
+    -1,    -1,    97,    -1,    -1,  1480,    -1,   102,   103,   104,
+   105,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   175,   116,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,
+   125,   126,   127,    -1,    -1,    -1,    -1,    -1,    -1,   194,
+   135,    -1,    -1,   138,   139,   140,    -1,   142,    -1,    -1,
+    -1,   146,    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,   157,   158,   159,    -1,    -1,  1070,  1071,    -1,
+     7,   166,     9,   168,    -1,    12,    -1,   172,    -1,    -1,
+   175,    -1,   177,   178,    -1,    -1,    -1,    -1,    -1,   184,
+   185,    -1,   187,    -1,    -1,    -1,    -1,   192,    -1,   194,
+   195,   196,   197,   198,   199,    -1,    -1,    -1,    -1,    -1,
+   205,    -1,    -1,   208,   209,   210,    -1,  1120,    -1,    56,
+    -1,    -1,   217,   218,    61,  1128,    -1,  1130,  1131,    -1,
+    67,  1134,  1135,  1136,  1137,  1138,  1139,  1140,  1141,   101,
+    77,  1144,    -1,    -1,    -1,    -1,    83,    -1,  1151,   111,
+    -1,   113,    -1,    -1,    -1,    -1,   118,  1160,  1161,  1162,
+  1163,  1164,  1165,   125,    -1,   127,    -1,    -1,   130,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   139,    -1,    -1,
+    -1,    -1,    -1,    -1,   146,    -1,    -1,   149,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   166,    -1,    -1,    -1,    -1,    -1,
+    -1,   173,   174,    -1,    -1,   152,    -1,    -1,    -1,   181,
+  1223,    -1,    -1,    -1,    -1,    -1,    -1,   164,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   196,
+  1263,    -1,    -1,    -1,   201,   202,   203,   204,   205,   206,
+   207,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   215,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,  1295,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     3,  1304,  1305,  1306,  1307,  1308,  1309,  1310,  1311,    -1,
+  1313,    -1,    -1,    16,    17,    18,    -1,    -1,    -1,    -1,
     -1,    -1,    -1,    -1,    27,    28,    29,    30,    31,    -1,
     33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
-    -1,    44,    45,    -1,    47,    -1,    -1,    -1,    -1,    -1,
+    -1,    44,    45,    -1,    47,    -1,    -1,  1350,    -1,    -1,
     -1,    -1,    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,
-    63,    64,    -1,    -1,    -1,    -1,    69,    70,    71,    72,
-    -1,    74,    -1,    76,    -1,    78,    79,    -1,    81,    -1,
-    -1,    -1,    -1,    86,    -1,    -1,    89,    -1,    -1,    -1,
-    -1,    -1,    -1,    96,    -1,    -1,    99,    -1,   101,   102,
-   103,   104,    -1,    -1,    -1,   108,    -1,    -1,    -1,   112,
-    -1,    -1,   115,    -1,    -1,    -1,    -1,    -1,   121,   122,
-   123,   124,   125,   126,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   134,    -1,    -1,   137,   138,   139,    -1,   141,    -1,
-    -1,    -1,   145,    -1,   147,   148,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   156,   157,   158,    -1,   160,    -1,    -1,
-    -1,    -1,   165,    -1,   167,    -1,    -1,    -1,   171,    -1,
-    -1,   174,    -1,   176,   177,    -1,    -1,    -1,    -1,    -1,
-   183,    -1,   185,    -1,    -1,    -1,    -1,   190,    -1,   192,
-   193,   194,   195,   196,   197,     3,    -1,    -1,    -1,    -1,
-   203,    -1,    -1,   206,   207,   208,    -1,    -1,    16,    17,
-    18,    -1,    -1,   216,   217,    -1,    -1,    -1,    -1,    27,
-    28,    29,    30,    31,    -1,    33,    34,    -1,    -1,    -1,
-    -1,    -1,    40,    -1,    -1,    -1,    44,    45,    -1,    47,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,
-    -1,    59,    -1,    -1,    -1,    63,    64,    -1,    -1,    -1,
-    -1,    69,    70,    71,    72,    -1,    74,    -1,    76,    -1,
-    78,    79,    -1,    81,    -1,    -1,    -1,    -1,    86,    -1,
-    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,
-    -1,    99,    -1,   101,   102,   103,   104,    -1,    -1,    -1,
-   108,    -1,    -1,    -1,   112,    -1,    -1,   115,    -1,    -1,
-    -1,    -1,    -1,   121,   122,   123,   124,   125,   126,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,   137,
-   138,   139,    -1,   141,    -1,    -1,    -1,   145,    -1,   147,
-   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,   157,
-   158,    -1,   160,    -1,    -1,    -1,    -1,   165,    -1,   167,
-    -1,    -1,    -1,   171,    -1,    -1,   174,    -1,   176,   177,
-    -1,    -1,    -1,    -1,    -1,   183,    -1,   185,    -1,    -1,
-    -1,    -1,   190,    -1,   192,   193,   194,   195,   196,   197,
-     3,    -1,    -1,    -1,    -1,   203,    -1,    -1,   206,   207,
-   208,    -1,    -1,    16,    17,    18,    -1,    -1,   216,   217,
-    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    -1,
-    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
-    -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,
+    63,    64,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,
+    73,  1374,    75,    -1,    77,    -1,    79,    80,    -1,    82,
+    -1,    -1,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,
+    -1,    -1,    -1,    -1,    97,    -1,    -1,   100,    -1,   102,
+   103,   104,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
+   113,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,
+   123,   124,   125,   126,   127,    -1,    -1,    -1,    -1,    -1,
+  1433,    -1,   135,    -1,    -1,   138,   139,   140,    -1,   142,
+    -1,    -1,    -1,   146,    -1,   148,   149,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   157,   158,   159,    -1,   161,    -1,
+    -1,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,   172,
+    -1,    -1,   175,    -1,   177,   178,    -1,    -1,    -1,    -1,
+    -1,   184,   185,    -1,   187,    -1,    -1,    -1,    -1,   192,
+    -1,   194,   195,   196,   197,   198,   199,     3,    -1,    -1,
+    -1,    -1,   205,   206,    -1,   208,   209,   210,    -1,    -1,
+    16,    17,    18,    -1,   217,   218,    -1,    -1,    -1,    -1,
+    -1,    27,    28,    29,    30,    31,    -1,    33,    34,    -1,
+    -1,    -1,    -1,    -1,    40,    -1,    -1,    -1,    44,    45,
+    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,
+    -1,    -1,    -1,    59,    -1,    -1,    -1,    63,    64,    -1,
+    -1,    -1,    -1,    69,    70,    71,    -1,    73,    -1,    75,
+    -1,    77,    -1,    79,    80,    -1,    82,    -1,    -1,    -1,
+    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,
+    -1,    97,    -1,    -1,   100,    -1,   102,   103,   104,   105,
+    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,    -1,    -1,
+   116,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,
+   126,   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,
+    -1,    -1,   138,   139,   140,    -1,   142,    -1,    -1,    -1,
+   146,    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,   157,   158,   159,    -1,   161,    -1,    -1,    -1,    -1,
+   166,    -1,   168,    -1,    -1,    -1,   172,    -1,    -1,   175,
+    -1,   177,   178,    -1,    -1,    -1,    -1,    -1,   184,   185,
+    -1,   187,    -1,    -1,    -1,    -1,   192,    -1,   194,   195,
+   196,   197,   198,   199,     3,    -1,    -1,    -1,    -1,   205,
+    -1,    -1,   208,   209,   210,    -1,    -1,    16,    17,    18,
+    -1,   217,   218,    -1,    -1,    -1,    -1,    -1,    27,    28,
+    29,    30,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
+    -1,    40,    -1,    -1,    -1,    44,    45,    -1,    47,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,
+    59,    -1,    -1,    -1,    63,    64,    -1,    -1,    -1,    -1,
+    69,    70,    71,    -1,    73,    -1,    75,    -1,    77,    -1,
+    79,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,
+    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    -1,
+    -1,   100,    -1,   102,   103,   104,   105,    -1,    -1,    -1,
+   109,    -1,    -1,    -1,   113,    -1,    -1,   116,    -1,    -1,
+    -1,    -1,    -1,   122,   123,   124,   125,   126,   127,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,    -1,   138,
+   139,   140,    -1,   142,    -1,    -1,    -1,   146,    -1,   148,
+   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   157,   158,
+   159,    -1,   161,    -1,    -1,    -1,    -1,   166,    -1,   168,
+    -1,    -1,    -1,   172,    -1,    -1,   175,     3,   177,   178,
+    -1,    -1,    -1,    -1,    -1,   184,   185,    -1,   187,    -1,
+    16,    17,    18,   192,    -1,   194,   195,   196,   197,   198,
+   199,    -1,    28,    29,    30,    31,   205,    33,    34,   208,
+   209,   210,    -1,    -1,    40,    -1,    -1,    -1,   217,   218,
+    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,
+    -1,    -1,    -1,    59,    -1,    -1,    -1,    63,    64,    -1,
+    -1,    -1,    -1,    69,    70,    71,    -1,    73,    -1,    75,
+    -1,    -1,    -1,    79,    80,    -1,    82,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,
+    -1,    97,    -1,    -1,    -1,    -1,   102,   103,   104,   105,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   113,    -1,    -1,
+   116,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,
+   126,   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,
+    -1,    -1,   138,   139,   140,    -1,   142,    -1,    -1,    -1,
+   146,    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,   157,   158,   159,    -1,    -1,    -1,    -1,    -1,    -1,
+   166,    -1,   168,    -1,    -1,    -1,   172,    -1,    -1,   175,
+     3,   177,   178,    -1,    -1,    -1,    -1,    -1,   184,   185,
+    -1,   187,    -1,    -1,    17,    18,   192,    -1,   194,   195,
+   196,   197,   198,   199,    -1,    -1,    -1,    -1,    -1,   205,
+    33,    34,   208,   209,   210,    -1,    -1,    40,    -1,    -1,
+    -1,   217,   218,    -1,    47,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    63,    64,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,
+    73,    -1,    75,    -1,    -1,    -1,    -1,    80,    -1,    82,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    -1,    -1,
+    -1,    -1,    -1,    -1,    97,    -1,    -1,    -1,    -1,   102,
+    -1,   104,   105,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,
+   123,    -1,   125,    -1,   127,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,   135,    -1,    -1,   138,   139,   140,    -1,   142,
+    -1,    -1,    -1,   146,    -1,   148,   149,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   157,   158,   159,    -1,    -1,    -1,
+    -1,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,   172,
+    -1,    -1,    -1,    -1,   177,   178,    -1,    -1,    -1,    -1,
+     3,   184,   185,    -1,   187,    -1,    -1,    -1,    -1,   192,
+    13,   194,    -1,    16,    17,    18,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    27,    28,    29,    30,    31,    -1,
+    33,    34,    -1,    -1,    -1,   218,    -1,    40,    -1,    -1,
+    -1,    44,    45,    -1,    47,    -1,    -1,    50,    -1,    -1,
     -1,    -1,    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,
-    63,    64,    -1,    -1,    -1,    -1,    69,    70,    71,    72,
-    -1,    74,    -1,    -1,    -1,    78,    79,    -1,    81,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,
-    -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,   101,   102,
-   103,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,
-    -1,    -1,   115,    -1,    -1,    -1,    -1,    -1,   121,   122,
-   123,   124,   125,   126,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   134,    -1,    -1,   137,   138,   139,    -1,   141,    -1,
-    -1,    -1,   145,    -1,   147,   148,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   156,   157,   158,    -1,    -1,    -1,    -1,
-    -1,    -1,   165,    -1,   167,    -1,    -1,    -1,   171,    -1,
-    -1,   174,    -1,   176,   177,    -1,    -1,    -1,    -1,    -1,
-   183,     3,   185,    -1,    -1,    -1,    -1,   190,    -1,   192,
-   193,   194,   195,   196,   197,    17,    18,    -1,    -1,    -1,
-   203,    -1,    -1,   206,   207,   208,    -1,    -1,    -1,    -1,
-    -1,    33,    34,   216,   217,    -1,    -1,    -1,    40,    -1,
-    -1,    -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    63,    64,    -1,    -1,    -1,    -1,    69,    70,    71,
-    72,    -1,    74,    -1,    -1,    -1,    -1,    79,    -1,    81,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,
-    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,   101,
-    -1,   103,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   115,    -1,    -1,    -1,    -1,    -1,   121,
-   122,    -1,   124,    -1,   126,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   134,    -1,    -1,   137,   138,   139,    -1,   141,
-    -1,    -1,    -1,   145,    -1,   147,   148,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   156,   157,   158,    -1,    -1,    -1,
-    -1,    -1,    -1,   165,    -1,   167,    -1,    -1,    -1,   171,
-    -1,    -1,     3,    -1,   176,   177,    -1,    -1,    -1,    -1,
-    -1,   183,    13,   185,    -1,    16,    17,    18,   190,    -1,
-   192,    -1,    -1,    -1,    -1,    -1,    27,    28,    29,    30,
-    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
-    -1,    -1,    -1,    44,    45,   217,    47,    -1,    -1,    50,
-    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,    59,    -1,
-    -1,    -1,    63,    64,    65,    -1,    -1,    -1,    69,    70,
-    71,    72,    -1,    74,    -1,    76,    -1,    78,    79,    -1,
-    81,    -1,    -1,    -1,    -1,    86,    -1,    -1,    89,    -1,
-    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,    99,    -1,
-   101,   102,   103,   104,    -1,   106,    -1,   108,    -1,    -1,
-    -1,   112,    -1,    -1,   115,    -1,    -1,    -1,    -1,    -1,
-   121,   122,   123,   124,   125,   126,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   134,    -1,    -1,   137,   138,   139,    -1,
-   141,    -1,    -1,    -1,   145,    -1,   147,   148,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   156,   157,   158,    -1,   160,
-    -1,    -1,    -1,    -1,   165,    -1,   167,    -1,    -1,    -1,
-   171,    -1,    -1,   174,    -1,   176,   177,    -1,    -1,    -1,
-    -1,    -1,   183,    -1,   185,    -1,    -1,    -1,    -1,   190,
-    -1,   192,   193,   194,   195,   196,   197,    -1,     3,    -1,
-    -1,    -1,   203,    -1,    -1,   206,   207,   208,    13,    -1,
-    -1,    16,    17,    18,    -1,   216,    -1,    -1,    -1,    -1,
+    63,    64,    65,    -1,    -1,    -1,    69,    70,    71,    -1,
+    73,    -1,    75,    -1,    77,    -1,    79,    80,    -1,    82,
+    -1,    -1,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,
+    -1,    -1,    -1,    -1,    97,    -1,    -1,   100,    -1,   102,
+   103,   104,   105,    -1,   107,    -1,   109,    -1,    -1,    -1,
+   113,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,
+   123,   124,   125,   126,   127,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,   135,    -1,    -1,   138,   139,   140,    -1,   142,
+    -1,    -1,    -1,   146,    -1,   148,   149,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   157,   158,   159,    -1,   161,    -1,
+    -1,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,   172,
+    -1,    -1,   175,    -1,   177,   178,    -1,    -1,    -1,    -1,
+    -1,   184,   185,    -1,   187,    -1,    -1,    -1,    -1,   192,
+    -1,   194,   195,   196,   197,   198,   199,    -1,     3,    -1,
+    -1,    -1,   205,    -1,    -1,   208,   209,   210,    13,    -1,
+    -1,    16,    17,    18,   217,    -1,    -1,    -1,    -1,    -1,
     -1,    -1,    27,    28,    29,    30,    31,    -1,    33,    34,
     -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    -1,    44,
     45,    -1,    47,    -1,    -1,    50,    -1,    -1,    -1,    -1,
     55,    -1,    -1,    -1,    59,    -1,    -1,    -1,    63,    64,
-    65,    -1,    -1,    -1,    69,    70,    71,    72,    -1,    74,
-    -1,    76,    -1,    78,    79,    -1,    81,    -1,    -1,    -1,
-    -1,    86,    -1,    -1,    89,    -1,    -1,    -1,    -1,    -1,
-    -1,    96,    -1,    -1,    99,    -1,   101,   102,   103,   104,
-    -1,   106,    -1,   108,    -1,    -1,    -1,   112,    -1,    -1,
-   115,    -1,    -1,    -1,    -1,    -1,   121,   122,   123,   124,
-   125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,
-    -1,    -1,   137,   138,   139,    -1,   141,    -1,    -1,    -1,
-   145,    -1,   147,   148,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   156,   157,   158,    -1,   160,    -1,    -1,    -1,    -1,
-   165,    -1,   167,    -1,    -1,    -1,   171,    -1,    -1,   174,
-    -1,   176,   177,    -1,    -1,    -1,    -1,    -1,   183,    -1,
-   185,    -1,    -1,    -1,    -1,   190,    -1,   192,   193,   194,
-   195,   196,   197,    -1,     3,    -1,    -1,    -1,   203,    -1,
-    -1,   206,   207,   208,    13,    -1,    -1,    16,    17,    18,
-    -1,   216,    -1,    -1,    -1,    -1,    -1,    -1,    27,    28,
-    29,    30,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
-    -1,    40,    -1,    -1,    -1,    44,    45,    -1,    47,    -1,
-    -1,    50,    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,
-    59,    -1,    -1,    -1,    63,    64,    65,    -1,    -1,    -1,
-    69,    70,    71,    72,    -1,    74,    -1,    76,    -1,    78,
-    79,    -1,    81,    -1,    -1,    -1,    -1,    86,    -1,    -1,
-    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,
-    99,    -1,   101,   102,   103,   104,    -1,   106,    -1,   108,
-    -1,    -1,    -1,   112,    -1,    -1,   115,    -1,    -1,    -1,
-    -1,    -1,   121,   122,   123,   124,   125,   126,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,   137,   138,
-   139,    -1,   141,    -1,    -1,    -1,   145,    -1,   147,   148,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,   157,   158,
-    -1,   160,    -1,    -1,    -1,    -1,   165,    -1,   167,    -1,
-    -1,    -1,   171,    -1,    -1,   174,    -1,   176,   177,    -1,
-    -1,    -1,    -1,    -1,   183,    -1,   185,    -1,     3,    -1,
-    -1,   190,    -1,   192,   193,   194,   195,   196,   197,    -1,
-    -1,    16,    17,    18,   203,    -1,    -1,   206,   207,   208,
-    -1,    -1,    27,    28,    29,    30,    31,   216,    33,    34,
-    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    -1,    44,
-    45,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,    63,    64,
-    -1,    -1,    -1,    -1,    69,    70,    71,    72,    -1,    74,
-    -1,    76,    -1,    78,    79,    -1,    81,    -1,    -1,    -1,
-    -1,    86,    -1,    -1,    89,    -1,    -1,    -1,    -1,    -1,
-    -1,    96,    -1,    -1,    99,    -1,   101,   102,   103,   104,
-    -1,    -1,    -1,   108,    -1,    -1,    -1,   112,    -1,    -1,
-   115,    -1,    -1,    -1,    -1,    -1,   121,   122,   123,   124,
-   125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,
-    -1,    -1,   137,   138,   139,    -1,   141,    -1,    -1,    -1,
-   145,    -1,   147,   148,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   156,   157,   158,    -1,   160,    -1,    -1,    -1,    -1,
-   165,    -1,   167,    -1,    -1,    -1,   171,    -1,    -1,   174,
-    -1,   176,   177,    -1,    -1,    -1,    -1,    -1,   183,    -1,
-   185,    -1,    -1,    -1,    -1,   190,    -1,   192,   193,   194,
-   195,   196,   197,    -1,    -1,     3,    -1,     5,   203,   204,
-     8,   206,   207,   208,    -1,    -1,    -1,    -1,    16,    17,
-    18,   216,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,
-    28,    29,    30,    31,    -1,    33,    34,    -1,    -1,    -1,
-    -1,    -1,    40,    -1,    -1,    -1,    44,    45,    -1,    47,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,
-    -1,    59,    -1,    -1,    -1,    63,    64,    -1,    -1,    -1,
-    -1,    69,    70,    71,    72,    -1,    74,    -1,    76,    -1,
-    -1,    79,    -1,    81,    -1,    -1,    -1,    -1,    86,    -1,
-    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,
-    -1,    99,    -1,   101,   102,   103,   104,    -1,    -1,    -1,
-   108,    -1,    -1,    -1,   112,    -1,    -1,   115,    -1,    -1,
-    -1,    -1,    -1,   121,   122,   123,   124,   125,   126,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,   137,
-   138,   139,    -1,   141,    -1,    -1,    -1,   145,    -1,   147,
-   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,   157,
-   158,    -1,   160,    -1,    -1,    -1,    -1,   165,    -1,   167,
-    -1,    -1,    -1,   171,    -1,    -1,   174,    -1,   176,   177,
-    -1,    -1,    -1,    -1,    -1,   183,    -1,   185,    -1,    -1,
-    -1,    -1,   190,    -1,   192,   193,   194,   195,   196,   197,
-    -1,     3,    -1,     5,    -1,   203,     8,    -1,   206,   207,
-   208,    -1,    -1,    -1,    16,    17,    18,    -1,   216,    -1,
-    -1,    -1,    -1,    -1,    -1,    27,    28,    29,    30,    31,
-    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
+    65,    -1,    -1,    -1,    69,    70,    71,    -1,    73,    -1,
+    75,    -1,    77,    -1,    79,    80,    -1,    82,    -1,    -1,
+    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,
+    -1,    -1,    97,    -1,    -1,   100,    -1,   102,   103,   104,
+   105,    -1,   107,    -1,   109,    -1,    -1,    -1,   113,    -1,
+    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,
+   125,   126,   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   135,    -1,    -1,   138,   139,   140,    -1,   142,    -1,    -1,
+    -1,   146,    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,   157,   158,   159,    -1,   161,    -1,    -1,    -1,
+    -1,   166,    -1,   168,    -1,    -1,    -1,   172,    -1,    -1,
+   175,    -1,   177,   178,    -1,    -1,    -1,    -1,    -1,   184,
+   185,    -1,   187,    -1,    -1,    -1,    -1,   192,    -1,   194,
+   195,   196,   197,   198,   199,    -1,     3,    -1,    -1,    -1,
+   205,    -1,    -1,   208,   209,   210,    13,    -1,    -1,    16,
+    17,    18,   217,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    27,    28,    29,    30,    31,    -1,    33,    34,    -1,    -1,
+    -1,    -1,    -1,    40,    -1,    -1,    -1,    44,    45,    -1,
+    47,    -1,    -1,    50,    -1,    -1,    -1,    -1,    55,    -1,
+    -1,    -1,    59,    -1,    -1,    -1,    63,    64,    65,    -1,
+    -1,    -1,    69,    70,    71,    -1,    73,    -1,    75,    -1,
+    77,    -1,    79,    80,    -1,    82,    -1,    -1,    -1,    -1,
+    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,
+    97,    -1,    -1,   100,    -1,   102,   103,   104,   105,    -1,
+   107,    -1,   109,    -1,    -1,    -1,   113,    -1,    -1,   116,
+    -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,
+   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,
+    -1,   138,   139,   140,    -1,   142,    -1,    -1,    -1,   146,
+    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   157,   158,   159,    -1,   161,    -1,    -1,    -1,    -1,   166,
+    -1,   168,    -1,    -1,    -1,   172,    -1,    -1,   175,    -1,
+   177,   178,    -1,    -1,    -1,    -1,    -1,   184,   185,    -1,
+   187,     3,    -1,    -1,    -1,   192,    -1,   194,   195,   196,
+   197,   198,   199,    -1,    16,    17,    18,    -1,   205,    -1,
+    -1,   208,   209,   210,    -1,    27,    28,    29,    30,    31,
+   217,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
     -1,    -1,    44,    45,    -1,    47,    -1,    -1,    -1,    -1,
     -1,    -1,    -1,    55,    -1,    -1,    -1,    59,    -1,    -1,
     -1,    63,    64,    -1,    -1,    -1,    -1,    69,    70,    71,
-    72,    -1,    74,    -1,    76,    -1,    -1,    79,    -1,    81,
-    -1,    -1,    -1,    -1,    86,    -1,    -1,    89,    -1,    -1,
-    -1,    -1,    -1,    -1,    96,    -1,    -1,    99,    -1,   101,
-   102,   103,   104,    -1,    -1,    -1,   108,    -1,    -1,    -1,
-   112,    -1,    -1,   115,    -1,    -1,    -1,    -1,    -1,   121,
-   122,   123,   124,   125,   126,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   134,    -1,    -1,   137,   138,   139,    -1,   141,
-    -1,    -1,    -1,   145,    -1,   147,   148,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   156,   157,   158,    -1,   160,    -1,
-    -1,    -1,    -1,   165,    -1,   167,    -1,    -1,    -1,   171,
-    -1,    -1,   174,    -1,   176,   177,    -1,    -1,    -1,    -1,
-    -1,   183,    -1,   185,    -1,    -1,    -1,    -1,   190,    -1,
-   192,   193,   194,   195,   196,   197,    -1,     3,    -1,     5,
-    -1,   203,     8,    -1,   206,   207,   208,    -1,    -1,    -1,
-    16,    17,    18,    -1,   216,    -1,    -1,    -1,    -1,    -1,
-    -1,    27,    28,    29,    30,    31,    -1,    33,    34,    -1,
-    -1,    -1,    -1,    -1,    40,    -1,    -1,    -1,    44,    45,
-    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,
-    -1,    -1,    -1,    59,    -1,    -1,    -1,    63,    64,    -1,
-    -1,    -1,    -1,    69,    70,    71,    72,    -1,    74,    -1,
-    76,    -1,    -1,    79,    -1,    81,    -1,    -1,    -1,    -1,
-    86,    -1,    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,
-    96,    -1,    -1,    99,    -1,   101,   102,   103,   104,    -1,
-    -1,    -1,   108,    -1,    -1,    -1,   112,    -1,    -1,   115,
-    -1,    -1,    -1,    -1,    -1,   121,   122,   123,   124,   125,
-   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,
-    -1,   137,   138,   139,    -1,   141,    -1,    -1,    -1,   145,
-    -1,   147,   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   156,   157,   158,    -1,   160,    -1,    -1,    -1,    -1,   165,
-    -1,   167,    -1,    -1,    -1,   171,    -1,    -1,   174,    -1,
-   176,   177,    -1,    -1,    -1,    -1,    -1,   183,    -1,   185,
-    -1,    -1,    -1,    -1,   190,    -1,   192,   193,   194,   195,
-   196,   197,    -1,     3,    -1,     5,    -1,   203,     8,    -1,
-   206,   207,   208,    -1,    -1,    -1,    16,    17,    18,    -1,
-   216,    -1,    -1,    -1,    -1,    -1,    -1,    27,    28,    29,
-    30,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
-    40,    -1,    -1,    -1,    44,    45,    -1,    47,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,    59,
-    -1,    -1,    -1,    63,    64,    -1,    -1,    -1,    -1,    69,
-    70,    71,    72,    -1,    74,    -1,    76,    -1,    -1,    79,
-    -1,    81,    -1,    -1,    -1,    -1,    86,    -1,    -1,    89,
-    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,    99,
-    -1,   101,   102,   103,   104,    -1,    -1,    -1,   108,    -1,
-    -1,    -1,   112,    -1,    -1,   115,    -1,    -1,    -1,    -1,
-    -1,   121,   122,   123,   124,   125,   126,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   134,    -1,    -1,   137,   138,   139,
-    -1,   141,    -1,    -1,    -1,   145,    -1,   147,   148,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   156,   157,   158,    -1,
-   160,    -1,    -1,    -1,    -1,   165,    -1,   167,    -1,    -1,
-    -1,   171,    -1,    -1,   174,    -1,   176,   177,    -1,    -1,
-    -1,    -1,    -1,   183,    -1,   185,    -1,    -1,    -1,    -1,
-   190,    -1,   192,   193,   194,   195,   196,   197,    -1,     3,
-    -1,     5,    -1,   203,     8,    -1,   206,   207,   208,    -1,
-    -1,    -1,    16,    17,    18,    -1,   216,    -1,    -1,    -1,
-    -1,    -1,    -1,    27,    28,    29,    30,    31,    -1,    33,
-    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    -1,
-    44,    45,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,    63,
-    64,    -1,    -1,    -1,    -1,    69,    70,    71,    72,    -1,
-    74,    -1,    76,    -1,    -1,    79,    -1,    81,    -1,    -1,
-    -1,    -1,    86,    -1,    -1,    89,    -1,    -1,    -1,    -1,
-    -1,    -1,    96,    -1,    -1,    99,    -1,   101,   102,   103,
-   104,    -1,    -1,    -1,   108,    -1,    -1,    -1,   112,    -1,
-    -1,   115,    -1,    -1,    -1,    -1,    -1,   121,   122,   123,
-   124,   125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   134,    -1,    -1,   137,   138,   139,    -1,   141,    -1,    -1,
-    -1,   145,    -1,   147,   148,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   156,   157,   158,    -1,   160,    -1,    -1,    -1,
-    -1,   165,    -1,   167,    -1,    -1,    -1,   171,    -1,    -1,
-   174,    -1,   176,   177,    -1,    -1,    -1,    -1,    -1,   183,
-    -1,   185,    -1,    -1,    -1,    -1,   190,    -1,   192,   193,
-   194,   195,   196,   197,    -1,     3,    -1,     5,    -1,   203,
-     8,    -1,   206,   207,   208,    -1,    -1,    -1,    16,    17,
-    18,    -1,   216,    -1,    -1,    -1,    -1,    -1,    -1,    27,
-    28,    29,    30,    31,    -1,    33,    34,    -1,    -1,    -1,
-    -1,    -1,    40,    -1,    -1,    -1,    44,    45,    -1,    47,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,
-    -1,    59,    -1,    -1,    -1,    63,    64,    -1,    -1,    -1,
-    -1,    69,    70,    71,    72,    -1,    74,    -1,    76,    -1,
-    -1,    79,    -1,    81,    -1,    -1,    -1,    -1,    86,    -1,
-    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,
-    -1,    99,    -1,   101,   102,   103,   104,    -1,    -1,    -1,
-   108,    -1,    -1,    -1,   112,    -1,    -1,   115,    -1,    -1,
-    -1,    -1,    -1,   121,   122,   123,   124,   125,   126,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,   137,
-   138,   139,    -1,   141,    -1,    -1,    -1,   145,    -1,   147,
-   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,   157,
-   158,    -1,   160,    -1,    -1,    -1,    -1,   165,    -1,   167,
-    -1,    -1,    -1,   171,    -1,    -1,   174,    -1,   176,   177,
-    -1,    -1,    -1,    -1,    -1,   183,    -1,   185,    -1,    -1,
-    -1,    -1,   190,    -1,   192,   193,   194,   195,   196,   197,
-    -1,     3,    -1,     5,    -1,   203,     8,    -1,   206,   207,
-   208,    -1,    -1,    -1,    16,    17,    18,    -1,   216,    -1,
-    -1,    -1,    -1,    -1,    -1,    27,    28,    29,    30,    31,
-    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
+    -1,    73,    -1,    75,    -1,    77,    -1,    79,    80,    -1,
+    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    90,    -1,
+    -1,    -1,    -1,    -1,    -1,    97,    -1,    -1,   100,    -1,
+   102,   103,   104,   105,    -1,    -1,    -1,   109,    -1,    -1,
+    -1,   113,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,
+   122,   123,   124,   125,   126,   127,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,   135,    -1,    -1,   138,   139,   140,    -1,
+   142,    -1,    -1,    -1,   146,    -1,   148,   149,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   157,   158,   159,    -1,   161,
+    -1,    -1,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,
+   172,    -1,    -1,   175,    -1,   177,   178,    -1,    -1,    -1,
+    -1,    -1,   184,   185,    -1,   187,     3,    -1,     5,    -1,
+   192,     8,   194,   195,   196,   197,   198,   199,    -1,    16,
+    17,    18,    -1,   205,   206,    -1,   208,   209,   210,    -1,
+    27,    28,    29,    30,    31,   217,    33,    34,    -1,    -1,
+    -1,    -1,    -1,    40,    -1,    -1,    -1,    44,    45,    -1,
+    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,
+    -1,    -1,    59,    -1,    -1,    -1,    63,    64,    -1,    -1,
+    -1,    -1,    69,    70,    71,    -1,    73,    -1,    75,    -1,
+    77,    -1,    -1,    80,    -1,    82,    -1,    -1,    -1,    -1,
+    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,
+    97,    -1,    -1,   100,    -1,   102,   103,   104,   105,    -1,
+    -1,    -1,   109,    -1,    -1,    -1,   113,    -1,    -1,   116,
+    -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,
+   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,
+    -1,   138,   139,   140,    -1,   142,    -1,    -1,    -1,   146,
+    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   157,   158,   159,    -1,   161,    -1,    -1,    -1,    -1,   166,
+    -1,   168,    -1,    -1,    -1,   172,    -1,    -1,   175,    -1,
+   177,   178,    -1,    -1,    -1,    -1,    -1,   184,   185,    -1,
+   187,     3,    -1,     5,    -1,   192,     8,   194,   195,   196,
+   197,   198,   199,    -1,    16,    17,    18,    -1,   205,    -1,
+    -1,   208,   209,   210,    -1,    27,    28,    29,    30,    31,
+   217,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
     -1,    -1,    44,    45,    -1,    47,    -1,    -1,    -1,    -1,
     -1,    -1,    -1,    55,    -1,    -1,    -1,    59,    -1,    -1,
     -1,    63,    64,    -1,    -1,    -1,    -1,    69,    70,    71,
-    72,    -1,    74,    -1,    76,    -1,    -1,    79,    -1,    81,
-    -1,    -1,    -1,    -1,    86,    -1,    -1,    89,    -1,    -1,
-    -1,    -1,    -1,    -1,    96,    -1,    -1,    99,    -1,   101,
-   102,   103,   104,    -1,    -1,    -1,   108,    -1,    -1,    -1,
-   112,    -1,    -1,   115,    -1,    -1,    -1,    -1,    -1,   121,
-   122,   123,   124,   125,   126,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   134,    -1,    -1,   137,   138,   139,    -1,   141,
-    -1,    -1,    -1,   145,    -1,   147,   148,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   156,   157,   158,    -1,   160,    -1,
-    -1,    -1,    -1,   165,    -1,   167,    -1,    -1,    -1,   171,
-    -1,    -1,   174,    -1,   176,   177,    -1,    -1,    -1,    -1,
-    -1,   183,    -1,   185,    -1,     3,    -1,    -1,   190,    -1,
-   192,   193,   194,   195,   196,   197,    -1,    -1,    16,    17,
-    18,   203,    -1,    -1,   206,   207,   208,    -1,    -1,    27,
-    28,    29,    30,    31,   216,    33,    34,    -1,    -1,    -1,
-    -1,    -1,    40,    -1,    -1,    -1,    44,    45,    -1,    47,
-    -1,    -1,    50,    -1,    -1,    -1,    -1,    55,    -1,    -1,
-    -1,    59,    -1,    -1,    -1,    63,    64,    -1,    -1,    -1,
-    -1,    69,    70,    71,    72,    -1,    74,    -1,    76,    -1,
-    78,    79,    -1,    81,    -1,    -1,    -1,    -1,    86,    -1,
-    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,
-    -1,    99,    -1,   101,   102,   103,   104,    -1,    -1,    -1,
-   108,    -1,    -1,    -1,   112,    -1,    -1,   115,    -1,    -1,
-    -1,    -1,    -1,   121,   122,   123,   124,   125,   126,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,   137,
-   138,   139,    -1,   141,    -1,    -1,    -1,   145,    -1,   147,
-   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,   157,
-   158,    -1,   160,    -1,    -1,    -1,    -1,   165,    -1,   167,
-    -1,    -1,    -1,   171,    -1,    -1,   174,    -1,   176,   177,
-    -1,    -1,    -1,    -1,    -1,   183,    -1,   185,    -1,     3,
-    -1,    -1,   190,    -1,   192,   193,   194,   195,   196,   197,
-    -1,    -1,    16,    17,    18,   203,    -1,    -1,   206,   207,
-   208,    -1,    -1,    27,    28,    29,    30,    31,   216,    33,
-    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    -1,
-    44,    45,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,    63,
-    64,    -1,    -1,    -1,    -1,    69,    70,    71,    72,    -1,
-    74,    -1,    76,    -1,    78,    79,    -1,    81,    -1,    -1,
-    -1,    -1,    86,    -1,    -1,    89,    -1,    -1,    -1,    -1,
-    -1,    -1,    96,    97,    -1,    99,    -1,   101,   102,   103,
-   104,    -1,    -1,    -1,   108,    -1,    -1,    -1,   112,    -1,
-    -1,   115,    -1,    -1,    -1,    -1,    -1,   121,   122,   123,
-   124,   125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   134,    -1,    -1,   137,   138,   139,    -1,   141,    -1,    -1,
-    -1,   145,    -1,   147,   148,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   156,   157,   158,    -1,   160,    -1,    -1,    -1,
-    -1,   165,    -1,   167,    -1,    -1,    -1,   171,    -1,    -1,
-   174,    -1,   176,   177,    -1,    -1,    -1,    -1,    -1,   183,
-    -1,   185,    -1,     3,    -1,    -1,   190,    -1,   192,   193,
-   194,   195,   196,   197,    -1,    -1,    16,    17,    18,   203,
-    -1,    -1,   206,   207,   208,    -1,    -1,    27,    28,    29,
-    30,    31,   216,    33,    34,    -1,    -1,    -1,    -1,    -1,
-    40,    -1,    -1,    -1,    44,    45,    -1,    47,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,    59,
-    -1,    -1,    -1,    63,    64,    -1,    -1,    -1,    -1,    69,
-    70,    71,    72,    -1,    74,    -1,    76,    -1,    78,    79,
-    -1,    81,    -1,    -1,    -1,    -1,    86,    -1,    -1,    89,
-    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,    99,
-    -1,   101,   102,   103,   104,    -1,    -1,    -1,   108,    -1,
-    -1,    -1,   112,    -1,    -1,   115,    -1,    -1,    -1,    -1,
-    -1,   121,   122,   123,   124,   125,   126,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   134,    -1,    -1,   137,   138,   139,
-    -1,   141,    -1,    -1,    -1,   145,    -1,   147,   148,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   156,   157,   158,    -1,
-   160,    -1,    -1,    -1,    -1,   165,    -1,   167,    -1,    -1,
-    -1,   171,    -1,    -1,   174,    -1,   176,   177,    -1,    -1,
-    -1,    -1,    -1,   183,    -1,   185,    -1,    -1,    -1,    -1,
-   190,    -1,   192,   193,   194,   195,   196,   197,    -1,     3,
-    -1,     5,    -1,   203,     8,    -1,   206,   207,   208,    -1,
-    -1,    -1,    16,    17,    18,    -1,   216,    -1,    -1,    -1,
-    -1,    -1,    -1,    27,    28,    29,    30,    31,    -1,    33,
-    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    -1,
-    44,    45,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,    63,
-    64,    -1,    -1,    -1,    -1,    69,    70,    71,    72,    -1,
-    74,    -1,    -1,    -1,    -1,    79,    -1,    81,    -1,    -1,
-    -1,    -1,    86,    -1,    -1,    89,    -1,    -1,    -1,    -1,
-    -1,    -1,    96,    -1,    -1,    99,    -1,   101,   102,   103,
-   104,    -1,    -1,    -1,   108,    -1,    -1,    -1,   112,    -1,
-    -1,   115,    -1,    -1,    -1,    -1,    -1,   121,   122,   123,
-   124,   125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   134,    -1,    -1,   137,   138,   139,    -1,   141,    -1,    -1,
-    -1,   145,    -1,   147,   148,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   156,   157,   158,    -1,   160,    -1,    -1,    -1,
-    -1,   165,    -1,   167,    -1,    -1,    -1,   171,    -1,    -1,
-   174,    -1,   176,   177,    -1,    -1,    -1,    -1,    -1,   183,
-    -1,   185,    -1,     3,    -1,    -1,   190,    -1,   192,   193,
-   194,   195,   196,   197,    -1,    -1,    16,    17,    18,   203,
-    -1,    -1,   206,   207,   208,    -1,    -1,    27,    28,    29,
-    30,    31,   216,    33,    34,    -1,    -1,    -1,    -1,    -1,
-    40,    -1,    -1,    -1,    44,    45,    -1,    47,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,    59,
-    -1,    -1,    -1,    63,    64,    -1,    -1,    -1,    -1,    69,
-    70,    71,    72,    -1,    74,    -1,    76,    -1,    -1,    79,
-    -1,    81,    -1,    -1,    -1,    -1,    86,    -1,    -1,    89,
-    -1,    -1,    -1,    -1,    -1,    -1,    96,    97,    -1,    99,
-    -1,   101,   102,   103,   104,    -1,    -1,    -1,   108,    -1,
-    -1,    -1,   112,    -1,    -1,   115,    -1,    -1,    -1,    -1,
-    -1,   121,   122,   123,   124,   125,   126,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   134,    -1,    -1,   137,   138,   139,
-    -1,   141,    -1,    -1,    -1,   145,    -1,   147,   148,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   156,   157,   158,    -1,
-   160,    -1,    -1,    -1,    -1,   165,    -1,   167,    -1,    -1,
-    -1,   171,    -1,    -1,   174,    -1,   176,   177,    -1,    -1,
-    -1,    -1,    -1,   183,    -1,   185,    -1,     3,    -1,    -1,
-   190,    -1,   192,   193,   194,   195,   196,   197,    -1,    -1,
-    16,    17,    18,   203,    -1,    -1,   206,   207,   208,    -1,
-    -1,    27,    28,    29,    30,    31,   216,    33,    34,    -1,
-    -1,    -1,    -1,    -1,    40,    -1,    -1,    -1,    44,    45,
-    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,
-    -1,    -1,    -1,    59,    -1,    -1,    -1,    63,    64,    -1,
-    -1,    -1,    -1,    69,    70,    71,    72,    -1,    74,    -1,
-    76,    -1,    -1,    79,    -1,    81,    -1,    -1,    -1,    -1,
-    86,    -1,    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,
-    96,    -1,    -1,    99,    -1,   101,   102,   103,   104,    -1,
-    -1,    -1,   108,    -1,    -1,    -1,   112,    -1,    -1,   115,
-    -1,    -1,    -1,    -1,    -1,   121,   122,   123,   124,   125,
-   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,
-    -1,   137,   138,   139,    -1,   141,    -1,    -1,    -1,   145,
-    -1,   147,   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   156,   157,   158,    -1,   160,    -1,    -1,    -1,    -1,   165,
-    -1,   167,    -1,    -1,    -1,   171,    -1,    -1,   174,    -1,
-   176,   177,    -1,    -1,    -1,    -1,    -1,   183,    -1,   185,
-    -1,     3,    -1,    -1,   190,    -1,   192,   193,   194,   195,
-   196,   197,    -1,    -1,    16,    17,    18,   203,    -1,    -1,
-   206,   207,   208,    -1,    -1,    27,    28,    29,    30,    31,
-   216,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
-    -1,    -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,
+    -1,    73,    -1,    75,    -1,    77,    -1,    -1,    80,    -1,
+    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    90,    -1,
+    -1,    -1,    -1,    -1,    -1,    97,    -1,    -1,   100,    -1,
+   102,   103,   104,   105,    -1,    -1,    -1,   109,    -1,    -1,
+    -1,   113,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,
+   122,   123,   124,   125,   126,   127,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,   135,    -1,    -1,   138,   139,   140,    -1,
+   142,    -1,    -1,    -1,   146,    -1,   148,   149,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   157,   158,   159,    -1,   161,
+    -1,    -1,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,
+   172,    -1,    -1,   175,    -1,   177,   178,    -1,    -1,    -1,
+    -1,    -1,   184,   185,    -1,   187,     3,    -1,     5,    -1,
+   192,     8,   194,   195,   196,   197,   198,   199,    -1,    16,
+    17,    18,    -1,   205,    -1,    -1,   208,   209,   210,    -1,
+    27,    28,    29,    30,    31,   217,    33,    34,    -1,    -1,
+    -1,    -1,    -1,    40,    -1,    -1,    -1,    44,    45,    -1,
+    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,
+    -1,    -1,    59,    -1,    -1,    -1,    63,    64,    -1,    -1,
+    -1,    -1,    69,    70,    71,    -1,    73,    -1,    75,    -1,
+    77,    -1,    -1,    80,    -1,    82,    -1,    -1,    -1,    -1,
+    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,
+    97,    -1,    -1,   100,    -1,   102,   103,   104,   105,    -1,
+    -1,    -1,   109,    -1,    -1,    -1,   113,    -1,    -1,   116,
+    -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,
+   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,
+    -1,   138,   139,   140,    -1,   142,    -1,    -1,    -1,   146,
+    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   157,   158,   159,    -1,   161,    -1,    -1,    -1,    -1,   166,
+    -1,   168,    -1,    -1,    -1,   172,    -1,    -1,   175,    -1,
+   177,   178,    -1,    -1,    -1,    -1,    -1,   184,   185,    -1,
+   187,     3,    -1,     5,    -1,   192,     8,   194,   195,   196,
+   197,   198,   199,    -1,    16,    17,    18,    -1,   205,    -1,
+    -1,   208,   209,   210,    -1,    27,    28,    29,    30,    31,
+   217,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
+    -1,    -1,    44,    45,    -1,    47,    -1,    -1,    -1,    -1,
     -1,    -1,    -1,    55,    -1,    -1,    -1,    59,    -1,    -1,
     -1,    63,    64,    -1,    -1,    -1,    -1,    69,    70,    71,
-    72,    -1,    74,    -1,    -1,    -1,    -1,    79,    -1,    81,
-    -1,    -1,    -1,    -1,    86,    -1,    -1,    89,    -1,    -1,
-    -1,    -1,    -1,    -1,    96,    -1,    -1,    99,    -1,   101,
-   102,   103,   104,    -1,    -1,    -1,   108,    -1,    -1,    -1,
-   112,    -1,    -1,   115,    -1,    -1,    -1,    -1,    -1,   121,
-   122,   123,   124,   125,   126,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   134,    -1,    -1,   137,   138,   139,    -1,   141,
-    -1,    -1,    -1,   145,    -1,   147,   148,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   156,   157,   158,    -1,   160,    -1,
-    -1,    -1,    -1,   165,    -1,   167,    -1,    -1,    -1,   171,
-    -1,    -1,   174,    -1,   176,   177,    -1,    -1,    -1,    -1,
-    -1,   183,    -1,   185,    -1,     3,    -1,    -1,   190,    -1,
-   192,   193,   194,   195,   196,   197,    -1,    -1,    16,    17,
-    18,   203,    -1,    -1,   206,   207,   208,    -1,    -1,    27,
-    28,    29,    30,    31,   216,    33,    34,    -1,    -1,    -1,
-    -1,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    47,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,
-    -1,    59,    -1,    -1,    -1,    63,    64,    -1,    -1,    -1,
-    -1,    69,    70,    71,    72,    -1,    74,    -1,    -1,    -1,
-    -1,    79,    -1,    81,    -1,    -1,    -1,    -1,    86,    -1,
-    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,
-    -1,    99,    -1,   101,   102,   103,   104,    -1,    -1,    -1,
-   108,    -1,    -1,    -1,   112,    -1,    -1,   115,    -1,    -1,
-    -1,    -1,    -1,   121,   122,   123,   124,   125,   126,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,   137,
-   138,   139,    -1,   141,    -1,    -1,    -1,   145,    -1,   147,
-   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,   157,
-   158,    -1,   160,    -1,    -1,    -1,    -1,   165,    -1,   167,
-    -1,    -1,    -1,   171,    -1,    -1,   174,    -1,   176,   177,
-    -1,    -1,    -1,    -1,    -1,   183,    -1,   185,    -1,     3,
-    -1,    -1,   190,    -1,   192,   193,   194,   195,   196,   197,
-    -1,    -1,    16,    17,    18,   203,    -1,    -1,   206,   207,
-   208,    -1,    -1,    -1,    28,    29,    30,    31,   216,    33,
-    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    -1,
-    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,    63,
-    64,    -1,    -1,    -1,    -1,    69,    70,    71,    72,    -1,
-    74,    -1,    -1,    -1,    78,    79,    -1,    81,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,
-    -1,    -1,    96,    -1,    -1,    -1,    -1,   101,   102,   103,
-   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,
-    -1,   115,    -1,    -1,    -1,    -1,    -1,   121,   122,   123,
-   124,   125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   134,    -1,    -1,   137,   138,   139,    -1,   141,    -1,    -1,
-    -1,   145,    -1,   147,   148,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   156,   157,   158,    -1,    -1,    -1,    -1,    -1,
-    -1,   165,    -1,   167,    -1,    -1,    -1,   171,    -1,    -1,
-   174,    -1,   176,   177,    -1,    -1,    -1,    -1,    -1,   183,
-    -1,   185,    -1,     3,    -1,    -1,   190,    -1,   192,   193,
-   194,   195,   196,   197,    -1,    -1,    16,    17,    18,   203,
-    -1,    -1,   206,   207,   208,    -1,    -1,    -1,    28,    29,
-    30,    31,   216,    33,    34,    -1,    -1,    -1,    -1,    -1,
-    40,    -1,    -1,    -1,    -1,    -1,    -1,    47,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,    59,
-    -1,    -1,    -1,    63,    64,    -1,    -1,    -1,    -1,    69,
-    70,    71,    72,    -1,    74,    -1,    -1,    -1,    78,    79,
-    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,
-    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,
-    -1,   101,   102,   103,   104,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   112,    -1,    -1,   115,    -1,    -1,    -1,    -1,
-    -1,   121,   122,   123,   124,   125,   126,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   134,    -1,    -1,   137,   138,   139,
-    -1,   141,    -1,    -1,    -1,   145,    -1,   147,   148,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   156,   157,   158,    -1,
-    -1,    -1,    -1,    -1,    -1,   165,    -1,   167,    -1,    -1,
-    -1,   171,    -1,    -1,   174,    -1,   176,   177,    -1,    -1,
-    -1,    -1,    -1,   183,    -1,   185,    -1,     3,    -1,    -1,
-   190,    -1,   192,   193,   194,   195,   196,   197,    -1,    -1,
-    16,    17,    18,   203,    -1,    -1,   206,   207,   208,    -1,
-    -1,    27,    -1,    -1,    -1,    -1,   216,    33,    34,    -1,
-    -1,    -1,    -1,    -1,    40,    -1,    -1,    -1,    -1,    -1,
-    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,
-    -1,    -1,    -1,    59,    -1,    -1,    -1,    63,    64,    -1,
-    -1,    -1,    -1,    69,    70,    71,    72,    -1,    74,    -1,
-    -1,    -1,    -1,    79,    -1,    81,    -1,    -1,    -1,    -1,
-    86,    -1,    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,
-    96,    -1,    -1,    99,    -1,   101,   102,   103,   104,    -1,
-    -1,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,   115,
-    -1,    -1,    -1,    -1,    -1,   121,   122,   123,   124,   125,
-   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,
-    -1,   137,   138,   139,    -1,   141,    -1,    -1,    -1,   145,
-    -1,   147,   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   156,   157,   158,    -1,   160,    -1,    -1,    -1,    -1,   165,
-    -1,   167,    -1,    -1,    -1,   171,    -1,    -1,   174,    -1,
-   176,   177,    -1,    -1,    -1,    -1,    -1,   183,    -1,   185,
-    -1,     3,    -1,    -1,   190,    -1,   192,   193,   194,   195,
-   196,   197,    -1,    -1,    16,    17,    18,   203,    -1,    -1,
-   206,    -1,    -1,    -1,    -1,    27,    -1,    -1,    -1,    -1,
-   216,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
-    -1,    -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,
+    -1,    73,    -1,    75,    -1,    77,    -1,    -1,    80,    -1,
+    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    90,    -1,
+    -1,    -1,    -1,    -1,    -1,    97,    -1,    -1,   100,    -1,
+   102,   103,   104,   105,    -1,    -1,    -1,   109,    -1,    -1,
+    -1,   113,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,
+   122,   123,   124,   125,   126,   127,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,   135,    -1,    -1,   138,   139,   140,    -1,
+   142,    -1,    -1,    -1,   146,    -1,   148,   149,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   157,   158,   159,    -1,   161,
+    -1,    -1,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,
+   172,    -1,    -1,   175,    -1,   177,   178,    -1,    -1,    -1,
+    -1,    -1,   184,   185,    -1,   187,     3,    -1,     5,    -1,
+   192,     8,   194,   195,   196,   197,   198,   199,    -1,    16,
+    17,    18,    -1,   205,    -1,    -1,   208,   209,   210,    -1,
+    27,    28,    29,    30,    31,   217,    33,    34,    -1,    -1,
+    -1,    -1,    -1,    40,    -1,    -1,    -1,    44,    45,    -1,
+    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,
+    -1,    -1,    59,    -1,    -1,    -1,    63,    64,    -1,    -1,
+    -1,    -1,    69,    70,    71,    -1,    73,    -1,    75,    -1,
+    77,    -1,    -1,    80,    -1,    82,    -1,    -1,    -1,    -1,
+    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,
+    97,    -1,    -1,   100,    -1,   102,   103,   104,   105,    -1,
+    -1,    -1,   109,    -1,    -1,    -1,   113,    -1,    -1,   116,
+    -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,
+   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,
+    -1,   138,   139,   140,    -1,   142,    -1,    -1,    -1,   146,
+    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   157,   158,   159,    -1,   161,    -1,    -1,    -1,    -1,   166,
+    -1,   168,    -1,    -1,    -1,   172,    -1,    -1,   175,    -1,
+   177,   178,    -1,    -1,    -1,    -1,    -1,   184,   185,    -1,
+   187,     3,    -1,     5,    -1,   192,     8,   194,   195,   196,
+   197,   198,   199,    -1,    16,    17,    18,    -1,   205,    -1,
+    -1,   208,   209,   210,    -1,    27,    28,    29,    30,    31,
+   217,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
+    -1,    -1,    44,    45,    -1,    47,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    55,    -1,    -1,    -1,    59,    -1,    -1,
+    -1,    63,    64,    -1,    -1,    -1,    -1,    69,    70,    71,
+    -1,    73,    -1,    75,    -1,    77,    -1,    -1,    80,    -1,
+    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    90,    -1,
+    -1,    -1,    -1,    -1,    -1,    97,    -1,    -1,   100,    -1,
+   102,   103,   104,   105,    -1,    -1,    -1,   109,    -1,    -1,
+    -1,   113,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,
+   122,   123,   124,   125,   126,   127,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,   135,    -1,    -1,   138,   139,   140,    -1,
+   142,    -1,    -1,    -1,   146,    -1,   148,   149,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   157,   158,   159,    -1,   161,
+    -1,    -1,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,
+   172,    -1,    -1,   175,    -1,   177,   178,    -1,    -1,    -1,
+    -1,    -1,   184,   185,    -1,   187,     3,    -1,     5,    -1,
+   192,     8,   194,   195,   196,   197,   198,   199,    -1,    16,
+    17,    18,    -1,   205,    -1,    -1,   208,   209,   210,    -1,
+    27,    28,    29,    30,    31,   217,    33,    34,    -1,    -1,
+    -1,    -1,    -1,    40,    -1,    -1,    -1,    44,    45,    -1,
+    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,
+    -1,    -1,    59,    -1,    -1,    -1,    63,    64,    -1,    -1,
+    -1,    -1,    69,    70,    71,    -1,    73,    -1,    75,    -1,
+    77,    -1,    -1,    80,    -1,    82,    -1,    -1,    -1,    -1,
+    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,
+    97,    -1,    -1,   100,    -1,   102,   103,   104,   105,    -1,
+    -1,    -1,   109,    -1,    -1,    -1,   113,    -1,    -1,   116,
+    -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,
+   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,
+    -1,   138,   139,   140,    -1,   142,    -1,    -1,    -1,   146,
+    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   157,   158,   159,    -1,   161,    -1,    -1,    -1,    -1,   166,
+    -1,   168,    -1,    -1,    -1,   172,    -1,    -1,   175,    -1,
+   177,   178,    -1,    -1,    -1,    -1,    -1,   184,   185,    -1,
+   187,     3,    -1,    -1,    -1,   192,    -1,   194,   195,   196,
+   197,   198,   199,    -1,    16,    17,    18,    -1,   205,    -1,
+    -1,   208,   209,   210,    -1,    27,    28,    29,    30,    31,
+   217,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
+    -1,    -1,    44,    45,    -1,    47,    -1,    -1,    50,    -1,
+    -1,    -1,    -1,    55,    -1,    -1,    -1,    59,    -1,    -1,
+    -1,    63,    64,    -1,    -1,    -1,    -1,    69,    70,    71,
+    -1,    73,    -1,    75,    -1,    77,    -1,    79,    80,    -1,
+    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    90,    -1,
+    -1,    -1,    -1,    -1,    -1,    97,    -1,    -1,   100,    -1,
+   102,   103,   104,   105,    -1,    -1,    -1,   109,    -1,    -1,
+    -1,   113,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,
+   122,   123,   124,   125,   126,   127,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,   135,    -1,    -1,   138,   139,   140,    -1,
+   142,    -1,    -1,    -1,   146,    -1,   148,   149,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   157,   158,   159,    -1,   161,
+    -1,    -1,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,
+   172,    -1,    -1,   175,    -1,   177,   178,    -1,    -1,    -1,
+    -1,    -1,   184,   185,    -1,   187,     3,    -1,    -1,    -1,
+   192,    -1,   194,   195,   196,   197,   198,   199,    -1,    16,
+    17,    18,    -1,   205,    -1,    -1,   208,   209,   210,    -1,
+    27,    28,    29,    30,    31,   217,    33,    34,    -1,    -1,
+    -1,    -1,    -1,    40,    -1,    -1,    -1,    44,    45,    -1,
+    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,
+    -1,    -1,    59,    -1,    -1,    -1,    63,    64,    -1,    -1,
+    -1,    -1,    69,    70,    71,    -1,    73,    -1,    75,    -1,
+    77,    -1,    79,    80,    -1,    82,    -1,    -1,    -1,    -1,
+    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,
+    97,    98,    -1,   100,    -1,   102,   103,   104,   105,    -1,
+    -1,    -1,   109,    -1,    -1,    -1,   113,    -1,    -1,   116,
+    -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,
+   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,
+    -1,   138,   139,   140,    -1,   142,    -1,    -1,    -1,   146,
+    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   157,   158,   159,    -1,   161,    -1,    -1,    -1,    -1,   166,
+    -1,   168,    -1,    -1,    -1,   172,    -1,    -1,   175,    -1,
+   177,   178,    -1,    -1,    -1,    -1,    -1,   184,   185,    -1,
+   187,     3,    -1,    -1,    -1,   192,    -1,   194,   195,   196,
+   197,   198,   199,    -1,    16,    17,    18,    -1,   205,    -1,
+    -1,   208,   209,   210,    -1,    27,    28,    29,    30,    31,
+   217,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
+    -1,    -1,    44,    45,    -1,    47,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    55,    -1,    -1,    -1,    59,    -1,    -1,
+    -1,    63,    64,    -1,    -1,    -1,    -1,    69,    70,    71,
+    -1,    73,    -1,    75,    -1,    77,    -1,    79,    80,    -1,
+    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    90,    -1,
+    -1,    -1,    -1,    -1,    -1,    97,    -1,    -1,   100,    -1,
+   102,   103,   104,   105,    -1,    -1,    -1,   109,    -1,    -1,
+    -1,   113,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,
+   122,   123,   124,   125,   126,   127,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,   135,    -1,    -1,   138,   139,   140,    -1,
+   142,    -1,    -1,    -1,   146,    -1,   148,   149,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   157,   158,   159,    -1,   161,
+    -1,    -1,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,
+   172,    -1,    -1,   175,    -1,   177,   178,    -1,    -1,    -1,
+    -1,    -1,   184,   185,    -1,   187,     3,    -1,     5,    -1,
+   192,     8,   194,   195,   196,   197,   198,   199,    -1,    16,
+    17,    18,    -1,   205,    -1,    -1,   208,   209,   210,    -1,
+    27,    28,    29,    30,    31,   217,    33,    34,    -1,    -1,
+    -1,    -1,    -1,    40,    -1,    -1,    -1,    44,    45,    -1,
+    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,
+    -1,    -1,    59,    -1,    -1,    -1,    63,    64,    -1,    -1,
+    -1,    -1,    69,    70,    71,    -1,    73,    -1,    75,    -1,
+    -1,    -1,    -1,    80,    -1,    82,    -1,    -1,    -1,    -1,
+    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,
+    97,    -1,    -1,   100,    -1,   102,   103,   104,   105,    -1,
+    -1,    -1,   109,    -1,    -1,    -1,   113,    -1,    -1,   116,
+    -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,
+   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,
+    -1,   138,   139,   140,    -1,   142,    -1,    -1,    -1,   146,
+    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   157,   158,   159,    -1,   161,    -1,    -1,    -1,    -1,   166,
+    -1,   168,    -1,    -1,    -1,   172,    -1,    -1,   175,    -1,
+   177,   178,    -1,    -1,    -1,    -1,    -1,   184,   185,    -1,
+   187,     3,    -1,    -1,    -1,   192,    -1,   194,   195,   196,
+   197,   198,   199,    -1,    16,    17,    18,    -1,   205,    -1,
+    -1,   208,   209,   210,    -1,    27,    28,    29,    30,    31,
+   217,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
+    -1,    -1,    44,    45,    -1,    47,    -1,    -1,    -1,    -1,
     -1,    -1,    -1,    55,    -1,    -1,    -1,    59,    -1,    -1,
     -1,    63,    64,    -1,    -1,    -1,    -1,    69,    70,    71,
-    72,    -1,    74,    -1,    -1,    -1,    -1,    79,    -1,    81,
-    -1,    -1,    -1,    -1,    86,    -1,    -1,    89,    -1,    -1,
-    -1,    -1,    -1,    -1,    96,    -1,    -1,    99,    -1,   101,
-   102,   103,   104,    -1,    -1,    -1,   108,    -1,    -1,    -1,
-    -1,    -1,    -1,   115,    -1,    -1,    -1,    -1,    -1,   121,
-   122,   123,   124,   125,   126,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   134,    -1,    -1,   137,   138,   139,    -1,   141,
-    -1,    -1,    -1,   145,    -1,   147,   148,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   156,   157,   158,    -1,   160,    -1,
-    -1,    -1,    -1,   165,    -1,   167,    -1,    -1,    -1,   171,
-    -1,    -1,   174,    -1,   176,   177,    -1,    -1,    -1,    -1,
-    -1,   183,    -1,   185,    -1,     3,    -1,    -1,   190,    -1,
-   192,   193,   194,   195,   196,   197,    -1,    -1,    16,    17,
-    18,   203,    -1,    -1,   206,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   216,    33,    34,    -1,    -1,    -1,
-    -1,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    47,
+    -1,    73,    -1,    75,    -1,    77,    -1,    -1,    80,    -1,
+    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    90,    -1,
+    -1,    -1,    -1,    -1,    -1,    97,    98,    -1,   100,    -1,
+   102,   103,   104,   105,    -1,    -1,    -1,   109,    -1,    -1,
+    -1,   113,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,
+   122,   123,   124,   125,   126,   127,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,   135,    -1,    -1,   138,   139,   140,    -1,
+   142,    -1,    -1,    -1,   146,    -1,   148,   149,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   157,   158,   159,    -1,   161,
+    -1,    -1,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,
+   172,    -1,    -1,   175,    -1,   177,   178,    -1,    -1,    -1,
+    -1,    -1,   184,   185,    -1,   187,     3,    -1,    -1,    -1,
+   192,    -1,   194,   195,   196,   197,   198,   199,    -1,    16,
+    17,    18,    -1,   205,    -1,    -1,   208,   209,   210,    -1,
+    27,    28,    29,    30,    31,   217,    33,    34,    -1,    -1,
+    -1,    -1,    -1,    40,    -1,    -1,    -1,    44,    45,    -1,
+    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,
+    -1,    -1,    59,    -1,    -1,    -1,    63,    64,    -1,    -1,
+    -1,    -1,    69,    70,    71,    -1,    73,    -1,    75,    -1,
+    77,    -1,    -1,    80,    -1,    82,    -1,    -1,    -1,    -1,
+    87,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,
+    97,    -1,    -1,   100,    -1,   102,   103,   104,   105,    -1,
+    -1,    -1,   109,    -1,    -1,    -1,   113,    -1,    -1,   116,
+    -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,
+   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,
+    -1,   138,   139,   140,    -1,   142,    -1,    -1,    -1,   146,
+    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   157,   158,   159,    -1,   161,    -1,    -1,    -1,    -1,   166,
+    -1,   168,    -1,    -1,    -1,   172,    -1,    -1,   175,     3,
+   177,   178,    -1,    -1,    -1,    -1,    -1,   184,   185,    -1,
+   187,    -1,    16,    17,    18,   192,    -1,   194,   195,   196,
+   197,   198,   199,    27,    28,    29,    30,    31,   205,    33,
+    34,   208,   209,   210,    -1,    -1,    40,    -1,    -1,    -1,
+   217,    -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,    63,
+    64,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,    73,
+    -1,    75,    -1,    -1,    -1,    -1,    80,    -1,    82,    -1,
+    -1,    -1,    -1,    87,    -1,    -1,    90,    -1,    -1,    -1,
+    -1,    -1,    -1,    97,    -1,    -1,   100,    -1,   102,   103,
+   104,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
+    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,   123,
+   124,   125,   126,   127,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,   135,    -1,    -1,   138,   139,   140,    -1,   142,    -1,
+    -1,    -1,   146,    -1,   148,   149,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,   157,   158,   159,    -1,   161,    -1,    -1,
+    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,   172,    -1,
+    -1,   175,     3,   177,   178,    -1,    -1,    -1,    -1,    -1,
+   184,   185,    -1,   187,    -1,    16,    17,    18,   192,    -1,
+   194,   195,   196,   197,   198,   199,    27,    28,    29,    30,
+    31,   205,    33,    34,   208,   209,   210,    -1,    -1,    40,
+    -1,    -1,    -1,   217,    -1,    -1,    47,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,    59,    -1,
+    -1,    -1,    63,    64,    -1,    -1,    -1,    -1,    69,    70,
+    71,    -1,    73,    -1,    75,    -1,    -1,    -1,    -1,    80,
+    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    90,
+    -1,    -1,    -1,    -1,    -1,    -1,    97,    -1,    -1,   100,
+    -1,   102,   103,   104,   105,    -1,    -1,    -1,   109,    -1,
+    -1,    -1,   113,    -1,    -1,   116,    -1,    -1,    -1,    -1,
+    -1,   122,   123,   124,   125,   126,   127,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   135,    -1,    -1,   138,   139,   140,
+    -1,   142,    -1,    -1,    -1,   146,    -1,   148,   149,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,   157,   158,   159,    -1,
+   161,    -1,    -1,    -1,    -1,   166,    -1,   168,    -1,    -1,
+    -1,   172,    -1,    -1,   175,     3,   177,   178,    -1,    -1,
+    -1,    -1,    -1,   184,   185,    -1,   187,    -1,    16,    17,
+    18,   192,    -1,   194,   195,   196,   197,   198,   199,    -1,
+    28,    29,    30,    31,   205,    33,    34,   208,   209,   210,
+    -1,    -1,    40,    -1,    -1,    -1,   217,    -1,    -1,    47,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,
     -1,    59,    -1,    -1,    -1,    63,    64,    -1,    -1,    -1,
-    -1,    69,    70,    71,    72,    -1,    74,    -1,    76,    -1,
-    78,    79,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,
-    -1,    -1,    -1,   101,   102,   103,   104,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   115,    -1,    -1,
-    -1,    -1,    -1,   121,   122,   123,   124,   125,   126,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,   137,
-   138,   139,    -1,   141,    -1,    -1,    -1,   145,    -1,   147,
-   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,   157,
-   158,    -1,    -1,    -1,    -1,    -1,    -1,   165,    -1,   167,
-    -1,    -1,    -1,   171,    -1,    -1,   174,    -1,   176,   177,
-    -1,    -1,    -1,    -1,    -1,   183,    -1,   185,    -1,     3,
-    -1,    -1,   190,    -1,   192,   193,   194,   195,   196,   197,
-    -1,    -1,    16,    17,    18,   203,    -1,    -1,   206,   207,
-   208,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   216,    33,
-    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    -1,
-    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,    63,
-    64,    -1,    -1,    -1,    -1,    69,    70,    71,    72,    -1,
-    74,    -1,    76,    -1,    78,    79,    -1,    81,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,
-    -1,    -1,    96,    -1,    -1,    -1,    -1,   101,   102,   103,
-   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   115,    -1,    -1,    -1,    -1,    -1,   121,   122,   123,
-   124,   125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   134,    -1,    -1,   137,   138,   139,    -1,   141,    -1,    -1,
-    -1,   145,    -1,   147,   148,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   156,   157,   158,    -1,    -1,    -1,    -1,    -1,
-    -1,   165,    -1,   167,    -1,    -1,    -1,   171,    -1,    -1,
-   174,     3,   176,   177,    -1,    -1,    -1,    -1,    -1,   183,
-    -1,   185,    -1,    -1,    -1,    -1,   190,    -1,   192,   193,
-   194,   195,   196,   197,    -1,    27,    -1,    -1,    -1,   203,
-    -1,    33,   206,   207,   208,    -1,    -1,    -1,    40,    -1,
-    -1,    -1,   216,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    69,    70,    71,    -1,    73,    -1,    75,    -1,    -1,
+    -1,    79,    80,    -1,    82,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,
+    -1,    -1,    -1,    -1,   102,   103,   104,   105,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   113,    -1,    -1,   116,    -1,
+    -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,   127,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,    -1,
+   138,   139,   140,    -1,   142,    -1,    -1,    -1,   146,    -1,
+   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   157,
+   158,   159,    -1,    -1,    -1,    -1,    -1,    -1,   166,    -1,
+   168,    -1,    -1,    -1,   172,    -1,    -1,   175,     3,   177,
+   178,    -1,    -1,    -1,    -1,    -1,   184,   185,    -1,   187,
+    -1,    16,    17,    18,   192,    -1,   194,   195,   196,   197,
+   198,   199,    -1,    28,    29,    30,    31,   205,    33,    34,
+   208,   209,   210,    -1,    -1,    40,    -1,    -1,    -1,   217,
+    -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,    63,    64,
+    -1,    -1,    -1,    -1,    69,    70,    71,    -1,    73,    -1,
+    75,    -1,    -1,    -1,    79,    80,    -1,    82,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    90,    -1,    -1,    -1,    -1,
+    -1,    -1,    97,    -1,    -1,    -1,    -1,   102,   103,   104,
+   105,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   113,    -1,
+    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,
+   125,   126,   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   135,    -1,    -1,   138,   139,   140,    -1,   142,    -1,    -1,
+    -1,   146,    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,   157,   158,   159,    -1,    -1,    -1,    -1,    -1,
+    -1,   166,    -1,   168,    -1,    -1,    -1,   172,    -1,    -1,
+   175,     3,   177,   178,    -1,    -1,    -1,    -1,    -1,   184,
+   185,    -1,   187,    -1,    16,    17,    18,   192,    -1,   194,
+   195,   196,   197,   198,   199,    27,    -1,    -1,    -1,    -1,
+   205,    33,    34,   208,   209,   210,    -1,    -1,    40,    -1,
+    -1,    -1,   217,    -1,    -1,    47,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    55,    -1,    -1,    -1,    59,    -1,    -1,
     -1,    63,    64,    -1,    -1,    -1,    -1,    69,    70,    71,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,
-    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,   101,
-    -1,   103,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   121,
-   122,    -1,   124,    -1,   126,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   134,    -1,     3,   137,   138,   139,    -1,   141,
-    -1,    -1,    -1,   145,    -1,   147,   148,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   156,   157,   158,    -1,   160,    -1,
-    -1,    -1,    -1,   165,    33,   167,    -1,    -1,    -1,   171,
-    -1,    40,    -1,    -1,   176,   177,    -1,    -1,    -1,    -1,
-    -1,   183,    -1,   185,    -1,    -1,    55,    -1,   190,    -1,
-   192,    -1,    -1,    -1,    63,    64,    -1,    -1,    -1,    -1,
-    69,    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    81,    -1,   216,    -1,    -1,    -1,    -1,    -1,
-    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,
-    -1,    -1,   101,    -1,   103,   104,    -1,    -1,    -1,    -1,
+    -1,    73,    -1,    75,    -1,    -1,    -1,    -1,    80,    -1,
+    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    90,    -1,
+    -1,    -1,    -1,    -1,    -1,    97,    -1,    -1,   100,    -1,
+   102,   103,   104,   105,    -1,    -1,    -1,   109,    -1,    -1,
+    -1,    -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,
+   122,   123,   124,   125,   126,   127,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,   135,    -1,    -1,   138,   139,   140,    -1,
+   142,    -1,    -1,    -1,   146,    -1,   148,   149,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   157,   158,   159,    -1,   161,
+    -1,    -1,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,
+   172,    -1,    -1,   175,     3,   177,   178,    -1,    -1,    -1,
+    -1,    -1,   184,   185,    -1,   187,    -1,    16,    17,    18,
+   192,    -1,   194,   195,   196,   197,   198,   199,    27,    -1,
+    -1,    -1,    -1,   205,    33,    34,   208,    -1,    -1,    -1,
+    -1,    40,    -1,    -1,    -1,   217,    -1,    -1,    47,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,
+    59,    -1,    -1,    -1,    63,    64,    -1,    -1,    -1,    -1,
+    69,    70,    71,    -1,    73,    -1,    75,    -1,    -1,    -1,
+    -1,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,
+    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    -1,
+    -1,   100,    -1,   102,   103,   104,   105,    -1,    -1,    -1,
+   109,    -1,    -1,    -1,    -1,    -1,    -1,   116,    -1,    -1,
+    -1,    -1,    -1,   122,   123,   124,   125,   126,   127,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,    -1,   138,
+   139,   140,    -1,   142,    -1,    -1,    -1,   146,    -1,   148,
+   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   157,   158,
+   159,    -1,   161,    -1,    -1,    -1,    -1,   166,    -1,   168,
+    -1,    -1,    -1,   172,    -1,    -1,   175,     3,   177,   178,
+    -1,    -1,    -1,    -1,    -1,   184,   185,    -1,   187,    -1,
+    16,    17,    18,   192,    -1,   194,   195,   196,   197,   198,
+   199,    -1,    -1,    -1,    -1,    -1,   205,    33,    34,   208,
+    -1,    -1,    -1,    -1,    40,    -1,    -1,    -1,   217,    -1,
+    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,
+    -1,    -1,    -1,    59,    -1,    -1,    -1,    63,    64,    -1,
+    -1,    -1,    -1,    69,    70,    71,    -1,    73,    -1,    75,
+    -1,    77,    -1,    79,    80,    -1,    82,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,
+    -1,    97,    -1,    -1,    -1,    -1,   102,   103,   104,   105,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   121,   122,    -1,   124,    -1,   126,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,   137,   138,
-   139,    -1,   141,    -1,    -1,    -1,   145,    -1,   147,   148,
-    -1,    -1,    -1,    -1,    -1,     3,    -1,   156,   157,   158,
-    -1,    -1,    -1,    -1,    -1,    -1,   165,    -1,   167,    -1,
-    -1,    -1,   171,    -1,    -1,   174,    -1,   176,   177,    -1,
-    -1,    -1,    -1,    -1,   183,    33,   185,    -1,    36,    -1,
-    -1,   190,    40,   192,   193,   194,   195,    -1,   197,    -1,
-   199,   200,   201,   202,   203,   204,   205,    55,    -1,    -1,
-    -1,    -1,    -1,    -1,    62,    63,    64,    -1,    -1,    -1,
-    -1,    69,    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    89,    90,    -1,    -1,    -1,    -1,    -1,    96,    -1,
-    -1,    -1,    -1,   101,    -1,   103,   104,    -1,    -1,    -1,
+   116,    -1,    -1,    -1,    -1,    -1,   122,   123,   124,   125,
+   126,   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,
+    -1,    -1,   138,   139,   140,    -1,   142,    -1,    -1,    -1,
+   146,    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,   157,   158,   159,    -1,    -1,    -1,    -1,    -1,    -1,
+   166,    -1,   168,    -1,    -1,    -1,   172,    -1,    -1,   175,
+     3,   177,   178,    -1,    -1,    -1,    -1,    -1,   184,   185,
+    -1,   187,    -1,    16,    17,    18,   192,    -1,   194,   195,
+   196,   197,   198,   199,    -1,    -1,    -1,    -1,    -1,   205,
+    33,    34,   208,   209,   210,    -1,    -1,    40,    -1,    -1,
+    -1,   217,    -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,
+    63,    64,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,
+    73,    -1,    75,    -1,    77,    -1,    79,    80,    -1,    82,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    -1,    -1,
+    -1,    -1,    -1,    -1,    97,    -1,    -1,    -1,    -1,   102,
+   103,   104,   105,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,   122,
+   123,   124,   125,   126,   127,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,   135,    -1,    -1,   138,   139,   140,    -1,   142,
+    -1,    -1,    -1,   146,    -1,   148,   149,    -1,    -1,     3,
+    -1,    -1,    -1,    -1,   157,   158,   159,    -1,    -1,    -1,
+    -1,    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,   172,
+    -1,     7,   175,    27,   177,   178,    12,    -1,    -1,    33,
+    -1,   184,   185,    -1,   187,    -1,    40,    -1,    -1,   192,
+    -1,   194,   195,   196,   197,   198,   199,    -1,    -1,    -1,
+    -1,    55,   205,    -1,    -1,   208,   209,   210,    -1,    63,
+    64,    -1,    -1,    -1,   217,    69,    70,    71,    -1,    -1,
+    56,    -1,    -1,    -1,    -1,    61,    -1,    -1,    82,    -1,
+    -1,    67,    -1,    -1,    -1,    -1,    90,    -1,    -1,    -1,
+    -1,    77,    -1,    97,    -1,    -1,    -1,    83,   102,    -1,
+   104,   105,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     7,
+    -1,    -1,    -1,    -1,    12,    -1,    -1,    -1,   122,   123,
+    -1,   125,    -1,   127,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,   135,    -1,    -1,   138,   139,   140,    -1,   142,    -1,
+    -1,    -1,   146,    -1,   148,   149,    -1,    -1,    -1,    -1,
+    -1,    -1,    50,   157,   158,   159,    -1,   161,    56,    -1,
+    -1,    -1,   166,    61,   168,    -1,   152,    -1,   172,    67,
+    -1,    -1,    -1,   177,   178,    -1,    -1,     7,   164,    77,
+   184,   185,    12,   187,    -1,    83,    -1,    -1,   192,    -1,
+   194,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   121,   122,    -1,   124,    -1,   126,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,   137,
-   138,   139,    -1,   141,    -1,    -1,    -1,   145,    -1,   147,
-   148,    -1,    -1,    -1,    -1,    -1,     3,    -1,   156,   157,
-   158,    -1,    -1,    -1,    -1,    -1,    -1,   165,    -1,   167,
-    -1,    -1,    -1,   171,    -1,    -1,    -1,    -1,   176,   177,
-    -1,    -1,    -1,    -1,    -1,   183,    33,   185,    -1,    -1,
-    -1,    -1,   190,    40,   192,    -1,   194,    -1,    -1,    -1,
-    -1,   199,   200,   201,   202,   203,   204,   205,    55,    -1,
-    -1,    -1,    -1,    -1,    -1,    62,    63,    64,    -1,    -1,
-    -1,    -1,    69,    70,    71,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    89,    90,    -1,    -1,    -1,    -1,    -1,    96,
-    -1,    -1,    -1,    -1,   101,    -1,   103,   104,    -1,    -1,
+   196,    -1,    -1,   217,    -1,   201,   202,   203,   204,   205,
+   206,   207,    -1,    -1,    -1,    -1,    56,    -1,   214,   215,
+    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    77,    -1,    -1,
+    -1,    -1,    -1,    83,   152,    -1,    -1,    -1,    -1,     3,
+    -1,    -1,    -1,    -1,    -1,    -1,   164,    -1,    -1,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   121,   122,    -1,   124,    -1,   126,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,
-   137,   138,   139,    -1,   141,    -1,    -1,    -1,   145,    -1,
-   147,   148,    -1,    -1,    -1,    -1,    -1,     3,    -1,   156,
-   157,   158,    -1,    -1,    -1,    -1,    -1,    -1,   165,    -1,
-   167,    -1,    -1,    -1,   171,    -1,    -1,    -1,    -1,   176,
-   177,    27,    -1,    -1,    -1,    -1,   183,    33,   185,    -1,
-    -1,    -1,    -1,   190,    40,   192,    -1,   194,    -1,    -1,
-    -1,    -1,   199,   200,   201,   202,   203,   204,   205,    55,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    64,    -1,
-    -1,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,
-    96,    -1,    -1,    -1,    -1,   101,    -1,   103,   104,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,
+    -1,    -1,    -1,    -1,    -1,    -1,    40,    -1,   196,    -1,
+    -1,    -1,    -1,   201,   202,   203,   204,   205,   206,   207,
+    -1,    55,    -1,    -1,    -1,    -1,    -1,   215,    -1,    63,
+    64,    -1,   152,    -1,    -1,    69,    70,    71,    -1,    -1,
+    -1,    -1,    -1,    -1,   164,    -1,    -1,    -1,    82,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    90,    -1,    -1,    -1,
+    -1,    -1,    -1,    97,    -1,    -1,    -1,    -1,   102,    -1,
+   104,   105,    -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,
+    -1,   201,   202,   203,   204,   205,   206,   207,   122,   123,
+    -1,   125,    -1,   127,    -1,   215,    -1,    -1,    -1,    -1,
+    -1,   135,    -1,    -1,   138,   139,   140,    -1,   142,    -1,
+    -1,    -1,   146,    -1,   148,   149,    -1,    -1,    -1,    -1,
+    -1,    -1,     3,   157,   158,   159,    -1,    -1,    -1,    -1,
+    -1,    -1,   166,    -1,   168,    -1,    -1,    -1,   172,    -1,
+    -1,   175,    -1,   177,   178,    -1,    -1,    -1,    -1,    -1,
+   184,   185,    33,   187,    -1,    36,    -1,    -1,   192,    40,
+   194,   195,   196,   197,    -1,   199,    -1,   201,   202,   203,
+   204,   205,   206,   207,    55,    -1,    -1,    -1,    -1,    -1,
+    -1,    62,    63,    64,    -1,    -1,    -1,    -1,    69,    70,
+    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,
+    91,    -1,    -1,    -1,    -1,    -1,    97,    -1,    -1,    -1,
+    -1,   102,    -1,   104,   105,    -1,    -1,    -1,    -1,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   121,   122,    -1,   124,    -1,
-   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,
-    -1,   137,   138,   139,    -1,   141,     3,    -1,    -1,   145,
-    -1,   147,   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   156,   157,   158,    -1,   160,    -1,    -1,    -1,    -1,   165,
-    -1,   167,    -1,    -1,    -1,   171,    33,    -1,    -1,    -1,
-   176,   177,    -1,    40,    -1,    -1,    -1,   183,    -1,   185,
-    -1,    -1,    -1,    -1,   190,    -1,   192,    -1,    55,    -1,
-   196,    -1,    -1,    -1,    -1,    -1,    63,    64,   204,    -1,
-    -1,    -1,    69,    70,    71,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,
-    -1,    -1,    -1,    -1,   101,    -1,   103,   104,    -1,    -1,
+    -1,   122,   123,    -1,   125,    -1,   127,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   135,    -1,    -1,   138,   139,   140,
+    -1,   142,    -1,    -1,    -1,   146,    -1,   148,   149,    -1,
+    -1,    -1,    -1,    -1,    -1,     3,   157,   158,   159,    -1,
+    -1,    -1,    -1,    -1,    -1,   166,    -1,   168,    -1,    -1,
+    -1,   172,    -1,    -1,    -1,    -1,   177,   178,    -1,    -1,
+    -1,    -1,    -1,   184,   185,    33,   187,    -1,    -1,    -1,
+    -1,   192,    40,   194,    -1,   196,    -1,    -1,    -1,    -1,
+   201,   202,   203,   204,   205,   206,   207,    55,    -1,    -1,
+    -1,    -1,    -1,    -1,    62,    63,    64,    -1,    -1,    -1,
+    -1,    69,    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    90,    91,    -1,    -1,    -1,    -1,    -1,    97,
+    -1,    -1,    -1,    -1,   102,    -1,   104,   105,    -1,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   121,   122,    -1,   124,    -1,   126,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,
-   137,   138,   139,    -1,   141,     3,    -1,    -1,   145,    -1,
-   147,   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,
-   157,   158,    -1,    -1,    -1,    -1,    -1,    -1,   165,    -1,
-   167,    -1,    -1,    -1,   171,    33,    -1,    -1,    -1,   176,
-   177,    -1,    40,    -1,    -1,    -1,   183,    -1,   185,    -1,
-    -1,    -1,    -1,   190,    -1,   192,    -1,    55,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    63,    64,   204,    -1,    -1,
+    -1,    -1,    -1,    -1,   122,   123,    -1,   125,    -1,   127,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,    -1,
+   138,   139,   140,    -1,   142,    -1,    -1,    -1,   146,    -1,
+   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,     3,   157,
+   158,   159,    -1,    -1,    -1,    -1,    -1,    -1,   166,    -1,
+   168,    -1,    -1,    -1,   172,    -1,    -1,    -1,    -1,   177,
+   178,    -1,    27,    -1,    -1,    -1,   184,   185,    33,   187,
+    -1,    -1,    -1,    -1,   192,    40,   194,    -1,   196,    -1,
+    -1,    -1,    -1,   201,   202,   203,   204,   205,   206,   207,
+    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    64,
+    -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    90,    -1,    -1,    -1,    -1,
+    -1,    -1,    97,    -1,    -1,    -1,    -1,   102,    -1,   104,
+   105,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,    -1,
+   125,    -1,   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   135,    -1,    -1,   138,   139,   140,    -1,   142,     3,    -1,
+    -1,   146,    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,   157,   158,   159,    -1,   161,    -1,    -1,    -1,
+    -1,   166,    -1,   168,    -1,    -1,    -1,   172,    33,    -1,
+    -1,    -1,   177,   178,    -1,    40,    -1,    -1,    -1,   184,
+   185,    -1,   187,    -1,    -1,    -1,    -1,   192,    -1,   194,
+    55,    -1,    -1,   198,    -1,    -1,    -1,    -1,    63,    64,
+    -1,   206,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    90,    -1,    -1,    -1,    -1,
+    -1,    -1,    97,    -1,    -1,    -1,    -1,   102,    -1,   104,
+   105,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,    -1,
+   125,    -1,   127,    -1,    -1,     3,    -1,    -1,    -1,    -1,
+   135,    -1,    -1,   138,   139,   140,    -1,   142,    -1,    -1,
+    -1,   146,    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,   157,   158,   159,    33,    -1,    -1,    -1,    -1,
+    -1,   166,    40,   168,    -1,    -1,    -1,   172,    -1,    -1,
+    -1,    -1,   177,   178,    -1,    -1,    -1,    55,    -1,   184,
+   185,    -1,   187,    -1,    -1,    63,    64,   192,    -1,   194,
     -1,    69,    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,
-    -1,    -1,    -1,   101,    -1,   103,   104,    -1,    -1,    -1,
+    -1,   206,    -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,
+    -1,    -1,    -1,    -1,   102,    -1,   104,   105,    -1,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   121,   122,    -1,   124,    -1,   126,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,   137,
-   138,   139,    -1,   141,     3,    -1,    -1,   145,    -1,   147,
-   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,   157,
-   158,    -1,    -1,    -1,    -1,    -1,    -1,   165,    -1,   167,
-    -1,    -1,    -1,   171,    33,    -1,    -1,    -1,   176,   177,
-    -1,    40,    -1,    -1,    -1,   183,    -1,   185,    -1,    -1,
-    -1,    -1,   190,    -1,   192,    -1,    55,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    63,    64,   204,    -1,    -1,    -1,
-    69,    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,
-    -1,    -1,   101,    -1,   103,   104,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   122,   123,    -1,   125,    -1,   127,
+    -1,    -1,     3,    -1,    -1,    -1,    -1,   135,    -1,    -1,
+   138,   139,   140,    -1,   142,    -1,    -1,    -1,   146,    -1,
+   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   157,
+   158,   159,    33,    -1,    -1,    -1,    -1,    -1,   166,    40,
+   168,    -1,    -1,    -1,   172,    -1,    -1,    -1,    -1,   177,
+   178,    -1,    -1,    -1,    55,    -1,   184,   185,    -1,   187,
+    -1,    -1,    63,    64,   192,    -1,   194,    -1,    69,    70,
+    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   206,    -1,
+    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,
+    -1,    -1,    -1,    -1,    -1,    -1,    97,    -1,    -1,    -1,
+    -1,   102,    -1,   104,   105,    -1,    -1,    -1,    -1,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   121,   122,    -1,   124,    -1,   126,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,   137,   138,
-   139,    -1,   141,     3,    -1,    -1,   145,    -1,   147,   148,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,   157,   158,
-    -1,    -1,    -1,    -1,    -1,    -1,   165,    -1,   167,    -1,
-    -1,    -1,   171,    33,    -1,    -1,    -1,   176,   177,    -1,
-    40,    -1,    -1,    -1,   183,    -1,   185,    -1,    -1,    -1,
-    -1,   190,    -1,   192,    -1,    55,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    63,    64,   204,    -1,    -1,    -1,    69,
-    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,
-    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,
-    -1,   101,    -1,   103,   104,    -1,    -1,    -1,    -1,    -1,
+    -1,   122,   123,    -1,   125,    -1,   127,    -1,    -1,     3,
+    -1,    -1,    -1,    -1,   135,    -1,    -1,   138,   139,   140,
+    -1,   142,    -1,    -1,    -1,   146,    -1,   148,   149,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,   157,   158,   159,    33,
+    -1,    -1,    -1,    -1,    -1,   166,    40,   168,    -1,    -1,
+    -1,   172,    -1,    -1,    -1,    -1,   177,   178,    -1,    -1,
+    -1,    55,    -1,   184,   185,    -1,   187,    -1,    -1,    63,
+    64,   192,    -1,   194,    -1,    69,    70,    71,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   206,    -1,    -1,    82,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    90,    -1,    -1,    -1,
+    -1,    -1,    -1,    97,    -1,    -1,    -1,    -1,   102,    -1,
+   104,   105,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,
+    -1,   125,    -1,   127,    -1,    -1,     3,    -1,    -1,    -1,
+    -1,   135,    -1,    -1,   138,   139,   140,    -1,   142,    -1,
+    -1,    -1,   146,    -1,   148,   149,    -1,    -1,    -1,    -1,
+    27,    -1,    -1,   157,   158,   159,    33,    -1,    -1,    -1,
+    -1,    -1,   166,    40,   168,    -1,    -1,    -1,   172,    -1,
+    -1,    -1,    -1,   177,   178,    -1,    -1,    -1,    55,    -1,
+   184,   185,    -1,   187,    -1,    -1,    63,    64,   192,    -1,
+   194,    -1,    69,    70,    71,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,   206,    -1,    -1,    82,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,
+    97,    -1,    -1,    -1,    -1,   102,    -1,   104,   105,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   121,   122,    -1,   124,    -1,   126,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   134,    -1,    -1,   137,   138,   139,
-    -1,   141,     3,    -1,    -1,   145,    -1,   147,   148,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   156,   157,   158,    -1,
-    -1,    -1,    -1,    -1,    -1,   165,    27,   167,    -1,    -1,
-    -1,   171,    33,    -1,    -1,    -1,   176,   177,    -1,    40,
-    -1,    -1,    -1,   183,    -1,   185,    -1,    -1,    -1,    -1,
-   190,    -1,   192,    -1,    55,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    63,    64,   204,    -1,    -1,    -1,    69,    70,
-    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    81,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,
-    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,
-   101,    -1,   103,   104,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   122,   123,    -1,   125,    -1,
+   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,
+    -1,   138,   139,   140,    -1,   142,     3,    -1,    -1,   146,
+    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   157,   158,   159,    -1,   161,    -1,    -1,    -1,    -1,   166,
+    -1,   168,    -1,    -1,    -1,   172,    33,    -1,    -1,    -1,
+   177,   178,    -1,    40,    -1,    -1,    -1,   184,   185,    -1,
+   187,    -1,    -1,    -1,    -1,   192,    -1,   194,    55,    -1,
+    -1,   198,    -1,    -1,    -1,    -1,    63,    64,    -1,    -1,
+    -1,    -1,    69,    70,    71,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,
+    97,    -1,    -1,    -1,    -1,   102,    -1,   104,   105,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   121,   122,    -1,   124,    -1,   126,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   134,    -1,    -1,   137,   138,   139,    -1,
-   141,     3,    -1,    -1,   145,    -1,   147,   148,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   156,   157,   158,    -1,   160,
-    -1,    -1,    -1,    -1,   165,    -1,   167,    -1,    -1,    -1,
-   171,    33,    -1,    -1,    -1,   176,   177,    -1,    40,    -1,
-    -1,    -1,   183,    -1,   185,    -1,    -1,    -1,    -1,   190,
-    -1,   192,    -1,    55,    -1,   196,    -1,    -1,    -1,    -1,
-    -1,    63,    64,    -1,    -1,    -1,    -1,    69,    70,    71,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,
-    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,   101,
-    -1,   103,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   121,
-   122,    -1,   124,    -1,   126,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   134,    -1,    -1,   137,   138,   139,    -1,   141,
-    -1,    -1,    -1,   145,    -1,   147,   148,    -1,    -1,     3,
-    -1,    -1,    -1,    -1,   156,   157,   158,    -1,    -1,    -1,
-    -1,    -1,    -1,   165,    -1,   167,    -1,    -1,    -1,   171,
-    24,    -1,    26,    -1,   176,   177,    -1,    -1,    -1,    33,
-    -1,   183,    -1,   185,    -1,    -1,    40,    -1,   190,    -1,
-   192,    -1,    -1,   195,    -1,    49,    -1,    -1,    -1,    53,
-    -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,
-    64,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    83,
-    -1,    -1,    86,    87,    -1,    89,    -1,    -1,    -1,    -1,
-    -1,    -1,    96,    -1,    -1,    -1,   100,   101,    -1,   103,
-   104,    -1,    -1,   107,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   121,   122,   123,
-   124,   125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   134,   135,    -1,   137,   138,   139,    -1,   141,    -1,    -1,
-    -1,   145,    -1,   147,   148,     3,    -1,    -1,    -1,    -1,
-   154,    -1,   156,   157,   158,    -1,    -1,    -1,    -1,    17,
-    18,   165,    -1,   167,    -1,    -1,    -1,   171,    -1,    -1,
-    -1,    -1,   176,   177,    -1,    33,    34,    -1,    -1,   183,
-   184,   185,    40,    -1,    -1,    -1,   190,    -1,   192,    47,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    63,    64,    -1,    -1,    -1,
-    -1,    69,    70,    71,    72,    -1,    74,    -1,    -1,    -1,
-    -1,    79,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,
-    -1,    -1,    -1,   101,    -1,   103,   104,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   115,    -1,    -1,
-    -1,    -1,    -1,   121,   122,    -1,   124,    -1,   126,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,   137,
-   138,   139,    -1,   141,    -1,     3,    -1,   145,    -1,   147,
-   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,   157,
-   158,    19,    -1,    -1,    -1,    -1,    24,   165,    -1,   167,
-    -1,    -1,    -1,   171,    -1,    33,    -1,    -1,   176,   177,
-    -1,    -1,    40,    -1,    -1,   183,    -1,   185,    -1,    -1,
-    -1,    49,   190,    -1,   192,    -1,    -1,    55,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   122,   123,    -1,   125,    -1,
+   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,
+    -1,   138,   139,   140,    -1,   142,    -1,    -1,    -1,   146,
+    -1,   148,   149,    -1,    -1,     3,    -1,    -1,    -1,    -1,
+   157,   158,   159,    -1,    -1,    -1,    -1,    -1,    -1,   166,
+    -1,   168,    -1,    -1,    -1,   172,    24,    -1,    26,    -1,
+   177,   178,    -1,    -1,    -1,    33,    -1,   184,   185,    -1,
+   187,    -1,    40,    -1,    -1,   192,    -1,   194,    -1,    -1,
+   197,    49,    -1,    -1,    -1,    53,    -1,    55,    -1,    -1,
     -1,    -1,    -1,    -1,    -1,    63,    64,    -1,    -1,    -1,
     -1,    69,    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,
-    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,
-    -1,    -1,    -1,   101,    -1,   103,   104,    -1,    -1,    -1,
-    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   121,   122,    -1,   124,    -1,   126,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,     3,   137,
-   138,   139,    -1,   141,    -1,    -1,    -1,   145,    -1,   147,
-   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,   157,
-   158,    -1,    27,    -1,    -1,    -1,    -1,   165,    33,   167,
-    -1,    -1,    -1,   171,    -1,    40,    -1,    -1,   176,   177,
-    -1,    -1,    -1,    -1,    -1,   183,    -1,   185,    -1,    -1,
-    55,    -1,   190,    -1,   192,    -1,    -1,    -1,    63,    64,
-    -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,    -1,
-    -1,    96,    -1,    -1,    -1,    -1,   101,    -1,   103,   104,
+    -1,    -1,    -1,    -1,    82,    -1,    84,    -1,    -1,    87,
+    88,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,
+    -1,    -1,    -1,   101,   102,    -1,   104,   105,    -1,    -1,
+   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   122,   123,   124,   125,   126,   127,
+    -1,    -1,     3,    -1,    -1,    -1,    -1,   135,   136,    -1,
+   138,   139,   140,    -1,   142,    -1,    17,    18,   146,    -1,
+   148,   149,    -1,    -1,    -1,    -1,    -1,   155,    -1,   157,
+   158,   159,    33,    34,    -1,    -1,    -1,    -1,   166,    40,
+   168,    -1,    -1,    -1,   172,    -1,    47,    -1,    -1,   177,
+   178,    -1,    -1,    -1,    55,    -1,   184,   185,   186,   187,
+    -1,    -1,    63,    64,   192,    -1,   194,    -1,    69,    70,
+    71,    -1,    73,    -1,    75,    -1,    -1,    -1,    -1,    80,
+    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,
+    -1,    -1,    -1,    -1,    -1,    -1,    97,    -1,    -1,    -1,
+    -1,   102,    -1,   104,   105,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,
+    -1,   122,   123,    -1,   125,    -1,   127,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   135,    -1,    -1,   138,   139,   140,
+    -1,   142,    -1,     3,    -1,   146,    -1,   148,   149,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,   157,   158,   159,    19,
+    -1,    -1,    -1,    -1,    24,   166,    -1,   168,    -1,    -1,
+    -1,   172,    -1,    33,    -1,    -1,   177,   178,    -1,    -1,
+    40,    -1,    -1,   184,   185,    -1,   187,    -1,    -1,    49,
+    -1,   192,    -1,   194,    -1,    55,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    63,    64,    -1,    -1,    -1,    -1,    69,
+    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    89,
+    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    -1,    -1,
+    -1,    -1,   102,    -1,   104,   105,    -1,    -1,    -1,    -1,
+    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,   122,   123,    -1,   125,    -1,   127,    -1,    -1,
+     3,    -1,    -1,    -1,    -1,   135,    -1,    -1,   138,   139,
+   140,    -1,   142,    -1,    -1,    -1,   146,    -1,   148,   149,
+    -1,    -1,    -1,    -1,    27,    -1,    -1,   157,   158,   159,
+    33,    -1,    -1,    -1,    -1,    -1,   166,    40,   168,    -1,
+    -1,    -1,   172,    -1,    -1,    -1,    -1,   177,   178,    -1,
+    -1,    -1,    55,    -1,   184,   185,    -1,   187,    -1,    -1,
+    63,    64,   192,    -1,   194,    -1,    69,    70,    71,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    82,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    -1,    -1,
+    -1,    -1,    -1,    -1,    97,    -1,    -1,    -1,    -1,   102,
+    -1,   104,   105,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,
+   123,    -1,   125,    -1,   127,    -1,    -1,     3,    -1,    -1,
+    -1,    -1,   135,    -1,    -1,   138,   139,   140,    -1,   142,
+    -1,    -1,    -1,   146,    -1,   148,   149,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   157,   158,   159,    33,   161,    -1,
+    -1,    -1,    -1,   166,    40,   168,    -1,    -1,    -1,   172,
+    -1,    -1,    -1,    -1,   177,   178,    -1,    53,    -1,    55,
+    -1,   184,   185,    -1,   187,    -1,    -1,    63,    64,   192,
+    -1,   194,    -1,    69,    70,    71,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    90,    -1,    92,    -1,    -1,    -1,
+    -1,    97,    -1,    -1,    -1,    -1,   102,    -1,   104,   105,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   121,   122,    -1,   124,
-    -1,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,
-    -1,     3,   137,   138,   139,    -1,   141,    -1,    -1,    -1,
-   145,    -1,   147,   148,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   156,   157,   158,    -1,   160,    -1,    -1,    -1,    -1,
-   165,    33,   167,    -1,    -1,    -1,   171,    -1,    40,    -1,
-    -1,   176,   177,    -1,    -1,    -1,    -1,    -1,   183,    -1,
-   185,    53,    -1,    55,    -1,   190,    -1,   192,    -1,    -1,
-    -1,    63,    64,    -1,    -1,    -1,    -1,    69,    70,    71,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    91,
-    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,   101,
-    -1,   103,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   121,
-   122,    -1,   124,    -1,   126,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   134,    -1,     3,   137,   138,   139,    -1,   141,
-    -1,    -1,    -1,   145,    -1,   147,   148,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   156,   157,   158,    -1,    -1,    -1,
-    -1,    -1,    -1,   165,    33,   167,    -1,    -1,    -1,   171,
-    -1,    40,    -1,    -1,   176,   177,    -1,    -1,    -1,    -1,
-    -1,   183,    -1,   185,    -1,    -1,    55,    -1,   190,    -1,
-   192,    -1,    -1,    -1,    63,    64,    -1,    -1,    -1,    -1,
-    69,    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,
-    -1,    -1,   101,    -1,   103,   104,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,    -1,   125,
+    -1,   127,    -1,    -1,     3,    -1,    -1,    -1,    -1,   135,
+    -1,    -1,   138,   139,   140,    -1,   142,    -1,    -1,    -1,
+   146,    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,   157,   158,   159,    33,    -1,    -1,    -1,    -1,    -1,
+   166,    40,   168,    -1,    -1,    -1,   172,    -1,    -1,    -1,
+    -1,   177,   178,    -1,    -1,    -1,    55,    -1,   184,   185,
+    -1,   187,    -1,    -1,    63,    64,   192,    -1,   194,    -1,
+    69,    70,    71,    72,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,    -1,
+    -1,    -1,    -1,   102,    -1,   104,   105,    -1,    -1,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   121,   122,    -1,   124,    -1,   126,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   134,    -1,     3,   137,   138,
-   139,    -1,   141,    -1,    -1,    -1,   145,    -1,   147,   148,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,   157,   158,
-    -1,    -1,   161,    -1,    -1,    -1,   165,    33,   167,    -1,
-    -1,    -1,   171,    -1,    40,    -1,    -1,   176,   177,    -1,
-    -1,    -1,    -1,    -1,   183,    -1,   185,    -1,    -1,    55,
-    -1,   190,    -1,   192,    -1,    -1,    -1,    63,    64,    -1,
-    -1,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,
-    96,    -1,    -1,    -1,    -1,   101,    -1,   103,   104,    -1,
+    -1,    -1,    -1,   122,   123,    -1,   125,    -1,   127,    -1,
+    -1,     3,    -1,    -1,    -1,    -1,   135,    -1,    -1,   138,
+   139,   140,    -1,   142,    -1,    -1,    -1,   146,    -1,   148,
+   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   157,   158,
+   159,    33,    -1,    -1,    -1,    -1,    -1,   166,    40,   168,
+    -1,    -1,    -1,   172,    -1,    -1,    -1,    -1,   177,   178,
+    -1,    -1,    -1,    55,    -1,   184,   185,    -1,   187,    -1,
+    -1,    63,    64,   192,    -1,   194,    -1,    69,    70,    71,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   121,   122,    -1,   124,    -1,
-   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,
-     3,   137,   138,   139,    -1,   141,     9,    -1,    -1,   145,
-    -1,   147,   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   156,   157,   158,    -1,    -1,   161,    -1,    -1,    -1,   165,
-    33,   167,    -1,    -1,    -1,   171,    -1,    40,    -1,    -1,
-   176,   177,    -1,    -1,    -1,    -1,    -1,   183,    -1,   185,
-    -1,    -1,    55,    -1,   190,    -1,   192,    -1,    -1,    -1,
-    63,    64,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,
-    -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,   101,    -1,
-   103,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   121,   122,
-    -1,   124,    -1,   126,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   134,    -1,     3,   137,   138,   139,    -1,   141,    -1,
-    -1,    -1,   145,    -1,   147,   148,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   156,   157,   158,    -1,    -1,    -1,    -1,
-    -1,    -1,   165,    33,   167,    -1,    -1,    -1,   171,    -1,
-    40,    -1,    -1,   176,   177,    -1,    -1,    -1,    -1,    -1,
-   183,    -1,   185,    -1,    -1,    55,    -1,   190,    -1,   192,
-    -1,    -1,    -1,    63,    64,    -1,    -1,    -1,    -1,    69,
-    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,
-    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,
-    -1,   101,    -1,   103,   104,    -1,    -1,    -1,    -1,    -1,
+    82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    -1,
+    -1,    -1,    -1,    -1,    -1,    97,    -1,    -1,    -1,    -1,
+   102,    -1,   104,   105,    -1,    -1,    -1,    -1,    -1,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   121,   122,    -1,   124,    -1,   126,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   134,    -1,     3,   137,   138,   139,
-    -1,   141,    -1,    -1,    -1,   145,    -1,   147,   148,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   156,   157,   158,    -1,
-    -1,    -1,    -1,    -1,    -1,   165,    33,   167,    -1,    -1,
-    -1,   171,    -1,    40,    -1,    -1,   176,   177,    -1,    -1,
-    -1,    -1,    -1,   183,    -1,   185,    -1,    -1,    55,    -1,
-   190,    -1,   192,    -1,    -1,    -1,    63,    64,    -1,    -1,
-    -1,    -1,    69,    70,    71,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,
-    -1,    -1,    -1,    -1,   101,    -1,   103,   104,    -1,    -1,
+   122,   123,    -1,   125,    -1,   127,    -1,    -1,     3,    -1,
+    -1,    -1,    -1,   135,    -1,    -1,   138,   139,   140,    -1,
+   142,    -1,    -1,    -1,   146,    -1,   148,   149,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   157,   158,   159,    33,    -1,
+   162,    -1,    -1,    -1,   166,    40,   168,    -1,    -1,    -1,
+   172,    -1,    -1,    -1,    -1,   177,   178,    -1,    -1,    -1,
+    55,    -1,   184,   185,    -1,   187,    -1,    -1,    63,    64,
+   192,    -1,   194,    -1,    69,    70,    71,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    90,    -1,    -1,    -1,    -1,
+    -1,    -1,    97,    -1,    -1,    -1,    -1,   102,    -1,   104,
+   105,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,    -1,
+   125,    -1,   127,    -1,    -1,     3,    -1,    -1,    -1,    -1,
+   135,     9,    -1,   138,   139,   140,    -1,   142,    -1,    -1,
+    -1,   146,    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,   157,   158,   159,    33,    -1,   162,    -1,    -1,
+    -1,   166,    40,   168,    -1,    -1,    -1,   172,    -1,    -1,
+    -1,    -1,   177,   178,    -1,    -1,    -1,    55,    -1,   184,
+   185,    -1,   187,    -1,    -1,    63,    64,   192,    -1,   194,
+    -1,    69,    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    97,
+    -1,    -1,    -1,    -1,   102,    -1,   104,   105,    -1,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   121,   122,    -1,   124,    -1,   126,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,     3,
-   137,   138,   139,    -1,   141,    -1,    -1,    -1,   145,    -1,
-   147,   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,
-   157,   158,    -1,    -1,    -1,    -1,    -1,    -1,   165,    33,
-   167,    -1,    -1,    -1,   171,    -1,    40,    -1,    -1,   176,
-   177,    -1,    -1,    -1,    -1,    -1,   183,    -1,   185,    -1,
-    -1,    55,    -1,   190,    -1,   192,    -1,    -1,    -1,    63,
-    64,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,
-    -1,    -1,    96,    -1,    -1,    -1,    -1,   101,    -1,   103,
-   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   121,   122,    -1,
-   124,    -1,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   134,    -1,     3,   137,   138,   139,    -1,   141,    -1,    -1,
-    -1,   145,    -1,   147,   148,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   156,   157,   158,    -1,    -1,    -1,    -1,    -1,
-    -1,   165,    33,   167,    -1,    -1,    -1,   171,    -1,    40,
-    -1,    -1,   176,   177,    -1,    -1,    -1,    -1,    -1,   183,
-    -1,   185,    -1,    -1,    55,    -1,   190,    -1,   192,    -1,
-    -1,    -1,    63,    64,    -1,    -1,    -1,    -1,    69,    70,
+    -1,    -1,    -1,    -1,   122,   123,    -1,   125,    -1,   127,
+    -1,    -1,     3,    -1,    -1,    -1,    -1,   135,    -1,    -1,
+   138,   139,   140,    -1,   142,    -1,    -1,    -1,   146,    -1,
+   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   157,
+   158,   159,    33,    -1,    -1,    -1,    -1,    -1,   166,    40,
+   168,    -1,    -1,    -1,   172,    -1,    -1,    -1,    -1,   177,
+   178,    -1,    -1,    -1,    55,    -1,   184,   185,    -1,   187,
+    -1,    -1,    63,    64,   192,    -1,   194,    -1,    69,    70,
     71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    81,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,
-    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,
-   101,    -1,   103,   104,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,
+    -1,    -1,    -1,    -1,    -1,    -1,    97,    -1,    -1,    -1,
+    -1,   102,    -1,   104,   105,    -1,    -1,    -1,    -1,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   121,   122,    -1,   124,    -1,   126,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   134,    -1,    -1,   137,   138,   139,    -1,
-   141,    -1,    -1,    -1,   145,    -1,   147,   148,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   156,   157,   158,    -1,    -1,
-    -1,    -1,    17,    18,   165,    -1,   167,    -1,    -1,    -1,
-   171,    -1,    -1,    -1,    -1,   176,   177,    -1,    33,    34,
-    -1,    -1,   183,    -1,   185,    40,    -1,    -1,    -1,   190,
-    -1,   192,    47,    -1,    -1,    17,    18,    -1,    -1,    -1,
-    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,
-    -1,    33,    34,    -1,    -1,    70,    71,    72,    40,    74,
-    -1,    -1,    -1,    -1,    79,    47,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    55,    -1,    -1,    -1,    59,    -1,    -1,
-    -1,    96,    97,    -1,    -1,    -1,   101,   102,    70,    71,
-    72,    -1,    74,    -1,    -1,    -1,    -1,    79,    -1,    -1,
-   115,    -1,    -1,    -1,    -1,    -1,   121,    -1,   123,    -1,
-   125,   126,    -1,    -1,    96,    -1,    -1,     6,    -1,   101,
-   102,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    20,    -1,   115,    23,    -1,    25,    -1,    -1,   121,
-    -1,   123,    -1,   125,   126,    -1,    35,    -1,    37,    -1,
-    -1,    -1,    41,    42,    43,    -1,    -1,    46,    -1,   174,
-    -1,    -1,    -1,    52,    -1,    -1,    -1,    -1,    -1,    58,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   192,   193,    -1,
-   195,   196,   197,    -1,    -1,    -1,    -1,    -1,    77,    -1,
-    -1,    -1,   174,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    93,    -1,    95,    -1,    97,    98,
-   192,   193,    -1,   195,   196,   197,    -1,    -1,    -1,    -1,
-    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   127,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,   135,   136,    -1,    -1,
-    -1,    -1,    -1,   142,   143,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   153,   154,   155,    -1,    -1,    -1,
-   159,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   169,    -1,    -1,    -1,    -1,    -1,   175,    -1,    -1,    -1,
-    -1,    -1,   181
+    -1,   122,   123,    -1,   125,    -1,   127,    -1,    -1,     3,
+    -1,    -1,    -1,    -1,   135,    -1,    -1,   138,   139,   140,
+    -1,   142,    -1,    -1,    -1,   146,    -1,   148,   149,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,   157,   158,   159,    33,
+    -1,    -1,    -1,    -1,    -1,   166,    40,   168,    -1,    -1,
+    -1,   172,    -1,    -1,    -1,    -1,   177,   178,    -1,    -1,
+    -1,    55,    -1,   184,   185,    -1,   187,    -1,    -1,    63,
+    64,   192,    -1,   194,    -1,    69,    70,    71,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    90,    -1,    -1,    -1,
+    -1,    -1,    -1,    97,    -1,    -1,    -1,    -1,   102,    -1,
+   104,   105,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,   123,
+    -1,   125,    -1,   127,    -1,    -1,     3,    -1,    -1,    -1,
+    -1,   135,    -1,    -1,   138,   139,   140,    -1,   142,    -1,
+    -1,    -1,   146,    -1,   148,   149,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,   157,   158,   159,    33,    -1,    -1,    -1,
+    -1,    -1,   166,    40,   168,    -1,    -1,    -1,   172,    -1,
+    -1,    -1,    -1,   177,   178,    -1,    -1,    -1,    55,    -1,
+   184,   185,    -1,   187,    -1,    -1,    63,    64,   192,    -1,
+   194,    -1,    69,    70,    71,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,
+    97,    -1,    -1,    -1,    -1,   102,    -1,   104,   105,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   122,   123,    -1,   125,    -1,
+   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,
+    -1,   138,   139,   140,    -1,   142,    -1,    17,    18,   146,
+    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   157,   158,   159,    33,    34,    -1,    -1,    -1,    -1,   166,
+    40,   168,    -1,    -1,    -1,   172,    -1,    47,    -1,    -1,
+   177,   178,    -1,    -1,    -1,    55,    -1,   184,   185,    59,
+   187,    -1,    -1,    -1,    -1,   192,    -1,   194,    -1,    -1,
+    70,    71,    -1,    73,    -1,    75,    -1,    17,    18,    -1,
+    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    33,    34,    -1,    -1,    97,    98,    -1,
+    40,    -1,   102,   103,    -1,    -1,    -1,    47,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    55,   116,    -1,    -1,    59,
+    -1,    -1,   122,    -1,   124,    -1,   126,   127,    -1,    -1,
+    70,    71,    -1,    73,    -1,    75,    -1,    -1,    -1,    -1,
+    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    97,    -1,    -1,
+    -1,    -1,   102,   103,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,     6,   175,   116,    -1,    -1,    11,
+    -1,    -1,   122,    -1,   124,    -1,   126,   127,    20,    -1,
+    -1,    23,    -1,    25,   194,   195,    -1,   197,   198,   199,
+    -1,    -1,    -1,    35,    -1,    37,    -1,    -1,    -1,    41,
+    42,    43,    -1,    -1,    46,    -1,    -1,    -1,    -1,    -1,
+    52,    -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   175,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   194,   195,    -1,   197,   198,   199,
+    -1,    -1,    94,    -1,    96,    -1,    98,    99,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,   128,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   136,   137,    -1,    -1,    -1,    -1,
+    -1,   143,   144,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,   154,   155,   156,    -1,    -1,    -1,   160,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   170,    -1,
+    -1,    -1,    -1,    -1,   176,    -1,    -1,    -1,    -1,    -1,
+   182
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
 #line 3 "/usr/local/bison/bison.simple"
@@ -4459,27 +4425,27 @@ yyreduce:
   switch (yyn) {
 
 case 1:
-#line 342 "gram.y"
+#line 346 "gram.y"
 { parsetree = yyvsp[0].list; ;
     break;}
 case 2:
-#line 344 "gram.y"
+#line 348 "gram.y"
 { parsetree = lcons(yyvsp[0].node,NIL); ;
     break;}
 case 3:
-#line 348 "gram.y"
+#line 352 "gram.y"
 { yyval.list = lappend(yyvsp[-2].list, yyvsp[-1].node); ;
     break;}
 case 4:
-#line 350 "gram.y"
+#line 354 "gram.y"
 { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node); ;
     break;}
 case 5:
-#line 352 "gram.y"
+#line 356 "gram.y"
 { yyval.list = lcons(yyvsp[-1].node,NIL); ;
     break;}
 case 48:
-#line 408 "gram.y"
+#line 412 "gram.y"
 {
                                        CreateUserStmt *n = makeNode(CreateUserStmt);
                                        n->user = yyvsp[-5].str;
@@ -4492,7 +4458,7 @@ case 48:
                                ;
     break;}
 case 49:
-#line 429 "gram.y"
+#line 433 "gram.y"
 {
                                        AlterUserStmt *n = makeNode(AlterUserStmt);
                                        n->user = yyvsp[-5].str;
@@ -4505,7 +4471,7 @@ case 49:
                                ;
     break;}
 case 50:
-#line 449 "gram.y"
+#line 453 "gram.y"
 {
                                        DropUserStmt *n = makeNode(DropUserStmt);
                                        n->user = yyvsp[0].str;
@@ -4513,15 +4479,15 @@ case 50:
                                ;
     break;}
 case 51:
-#line 456 "gram.y"
+#line 460 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 52:
-#line 457 "gram.y"
+#line 461 "gram.y"
 { yyval.str = NULL; ;
     break;}
 case 53:
-#line 461 "gram.y"
+#line 465 "gram.y"
 {
                                        bool*  b;
                                        yyval.pboolean = (b = (bool*)palloc(sizeof(bool)));
@@ -4529,7 +4495,7 @@ case 53:
                                ;
     break;}
 case 54:
-#line 467 "gram.y"
+#line 471 "gram.y"
 {
                                        bool*  b;
                                        yyval.pboolean = (b = (bool*)palloc(sizeof(bool)));
@@ -4537,11 +4503,11 @@ case 54:
                                ;
     break;}
 case 55:
-#line 472 "gram.y"
+#line 476 "gram.y"
 { yyval.pboolean = NULL; ;
     break;}
 case 56:
-#line 476 "gram.y"
+#line 480 "gram.y"
 {
                                        bool*  b;
                                        yyval.pboolean = (b = (bool*)palloc(sizeof(bool)));
@@ -4549,7 +4515,7 @@ case 56:
                                ;
     break;}
 case 57:
-#line 482 "gram.y"
+#line 486 "gram.y"
 {
                                        bool*  b;
                                        yyval.pboolean = (b = (bool*)palloc(sizeof(bool)));
@@ -4557,39 +4523,39 @@ case 57:
                                ;
     break;}
 case 58:
-#line 487 "gram.y"
+#line 491 "gram.y"
 { yyval.pboolean = NULL; ;
     break;}
 case 59:
-#line 491 "gram.y"
+#line 495 "gram.y"
 {
                                        yyval.list = lcons((void*)makeString(yyvsp[0].str), yyvsp[-2].list);
                                ;
     break;}
 case 60:
-#line 495 "gram.y"
+#line 499 "gram.y"
 {
                                        yyval.list = lcons((void*)makeString(yyvsp[0].str), NIL);
                                ;
     break;}
 case 61:
-#line 500 "gram.y"
+#line 504 "gram.y"
 { yyval.list = yyvsp[0].list; ;
     break;}
 case 62:
-#line 501 "gram.y"
+#line 505 "gram.y"
 { yyval.list = NULL; ;
     break;}
 case 63:
-#line 504 "gram.y"
+#line 508 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 64:
-#line 505 "gram.y"
+#line 509 "gram.y"
 { yyval.str = NULL; ;
     break;}
 case 65:
-#line 518 "gram.y"
+#line 522 "gram.y"
 {
                                        VariableSetStmt *n = makeNode(VariableSetStmt);
                                        n->name  = yyvsp[-2].str;
@@ -4598,7 +4564,7 @@ case 65:
                                ;
     break;}
 case 66:
-#line 525 "gram.y"
+#line 529 "gram.y"
 {
                                        VariableSetStmt *n = makeNode(VariableSetStmt);
                                        n->name  = yyvsp[-2].str;
@@ -4607,7 +4573,7 @@ case 66:
                                ;
     break;}
 case 67:
-#line 532 "gram.y"
+#line 536 "gram.y"
 {
                                        VariableSetStmt *n = makeNode(VariableSetStmt);
                                        n->name  = "timezone";
@@ -4616,59 +4582,72 @@ case 67:
                                ;
     break;}
 case 68:
-#line 540 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
+#line 543 "gram.y"
+{
+#ifdef MB
+                                       VariableSetStmt *n = makeNode(VariableSetStmt);
+                                       n->name  = "client_encoding";
+                                       n->value = yyvsp[0].str;
+                                       yyval.node = (Node *) n;
+#else
+                                       elog(ERROR, "SET NAMES is not supported");
+#endif
+                               ;
     break;}
 case 69:
-#line 541 "gram.y"
-{ yyval.str = NULL; ;
+#line 555 "gram.y"
+{ yyval.str = yyvsp[0].str; ;
     break;}
 case 70:
-#line 544 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
+#line 556 "gram.y"
+{ yyval.str = NULL; ;
     break;}
 case 71:
-#line 545 "gram.y"
-{ yyval.str = NULL; ;
+#line 559 "gram.y"
+{ yyval.str = yyvsp[0].str; ;
     break;}
 case 72:
-#line 546 "gram.y"
+#line 560 "gram.y"
 { yyval.str = NULL; ;
     break;}
 case 73:
-#line 550 "gram.y"
+#line 561 "gram.y"
+{ yyval.str = NULL; ;
+    break;}
+case 74:
+#line 565 "gram.y"
 {
                                        VariableShowStmt *n = makeNode(VariableShowStmt);
                                        n->name  = yyvsp[0].str;
                                        yyval.node = (Node *) n;
                                ;
     break;}
-case 74:
-#line 556 "gram.y"
+case 75:
+#line 571 "gram.y"
 {
                                        VariableShowStmt *n = makeNode(VariableShowStmt);
                                        n->name  = "timezone";
                                        yyval.node = (Node *) n;
                                ;
     break;}
-case 75:
-#line 564 "gram.y"
+case 76:
+#line 579 "gram.y"
 {
                                        VariableResetStmt *n = makeNode(VariableResetStmt);
                                        n->name  = yyvsp[0].str;
                                        yyval.node = (Node *) n;
                                ;
     break;}
-case 76:
-#line 570 "gram.y"
+case 77:
+#line 585 "gram.y"
 {
                                        VariableResetStmt *n = makeNode(VariableResetStmt);
                                        n->name  = "timezone";
                                        yyval.node = (Node *) n;
                                ;
     break;}
-case 77:
-#line 586 "gram.y"
+case 78:
+#line 601 "gram.y"
 {
                                        AddAttrStmt *n = makeNode(AddAttrStmt);
                                        n->relname = yyvsp[-2].str;
@@ -4677,14 +4656,14 @@ case 77:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 78:
-#line 596 "gram.y"
+case 79:
+#line 611 "gram.y"
 {
                                        yyval.node = yyvsp[0].node;
                                ;
     break;}
-case 79:
-#line 600 "gram.y"
+case 80:
+#line 615 "gram.y"
 {
                                        Node *lp = lfirst(yyvsp[-1].list);
 
@@ -4693,32 +4672,32 @@ case 79:
                                        yyval.node = lp;
                                ;
     break;}
-case 80:
-#line 608 "gram.y"
+case 81:
+#line 623 "gram.y"
 {      elog(ERROR,"ALTER TABLE/DROP COLUMN not yet implemented"); ;
     break;}
-case 81:
-#line 610 "gram.y"
+case 82:
+#line 625 "gram.y"
 {      elog(ERROR,"ALTER TABLE/ALTER COLUMN/SET DEFAULT not yet implemented"); ;
     break;}
-case 82:
-#line 612 "gram.y"
+case 83:
+#line 627 "gram.y"
 {      elog(ERROR,"ALTER TABLE/ALTER COLUMN/DROP DEFAULT not yet implemented"); ;
     break;}
-case 83:
-#line 614 "gram.y"
+case 84:
+#line 629 "gram.y"
 {      elog(ERROR,"ALTER TABLE/ADD CONSTRAINT not yet implemented"); ;
     break;}
-case 84:
-#line 626 "gram.y"
+case 85:
+#line 641 "gram.y"
 {
                                        ClosePortalStmt *n = makeNode(ClosePortalStmt);
                                        n->portalname = yyvsp[0].str;
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 85:
-#line 643 "gram.y"
+case 86:
+#line 658 "gram.y"
 {
                                        CopyStmt *n = makeNode(CopyStmt);
                                        n->binary = yyvsp[-5].boolean;
@@ -4730,52 +4709,52 @@ case 85:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 86:
-#line 656 "gram.y"
-{ yyval.ival = TO; ;
-    break;}
 case 87:
-#line 658 "gram.y"
-{ yyval.ival = FROM; ;
+#line 671 "gram.y"
+{ yyval.ival = TO; ;
     break;}
 case 88:
-#line 666 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
+#line 673 "gram.y"
+{ yyval.ival = FROM; ;
     break;}
 case 89:
-#line 667 "gram.y"
-{ yyval.str = NULL; ;
+#line 681 "gram.y"
+{ yyval.str = yyvsp[0].str; ;
     break;}
 case 90:
-#line 668 "gram.y"
+#line 682 "gram.y"
 { yyval.str = NULL; ;
     break;}
 case 91:
-#line 671 "gram.y"
-{ yyval.boolean = TRUE; ;
+#line 683 "gram.y"
+{ yyval.str = NULL; ;
     break;}
 case 92:
-#line 672 "gram.y"
-{ yyval.boolean = FALSE; ;
+#line 686 "gram.y"
+{ yyval.boolean = TRUE; ;
     break;}
 case 93:
-#line 675 "gram.y"
-{ yyval.boolean = TRUE; ;
+#line 687 "gram.y"
+{ yyval.boolean = FALSE; ;
     break;}
 case 94:
-#line 676 "gram.y"
-{ yyval.boolean = FALSE; ;
+#line 690 "gram.y"
+{ yyval.boolean = TRUE; ;
     break;}
 case 95:
-#line 682 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
+#line 691 "gram.y"
+{ yyval.boolean = FALSE; ;
     break;}
 case 96:
-#line 683 "gram.y"
-{ yyval.str = "\t"; ;
+#line 697 "gram.y"
+{ yyval.str = yyvsp[0].str; ;
     break;}
 case 97:
-#line 696 "gram.y"
+#line 698 "gram.y"
+{ yyval.str = "\t"; ;
+    break;}
+case 98:
+#line 711 "gram.y"
 {
                                        CreateStmt *n = makeNode(CreateStmt);
                                        n->relname = yyvsp[-5].str;
@@ -4785,8 +4764,8 @@ case 97:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 98:
-#line 707 "gram.y"
+case 99:
+#line 722 "gram.y"
 {
                                        if (yyvsp[0].node != NULL)
                                                yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node);
@@ -4794,8 +4773,8 @@ case 98:
                                                yyval.list = yyvsp[-2].list;
                                ;
     break;}
-case 99:
-#line 714 "gram.y"
+case 100:
+#line 729 "gram.y"
 {
                                        if (yyvsp[0].node != NULL)
                                                yyval.list = lcons(yyvsp[0].node, NIL);
@@ -4803,20 +4782,20 @@ case 99:
                                                yyval.list = NULL;
                                ;
     break;}
-case 100:
-#line 720 "gram.y"
-{ yyval.list = NULL; ;
-    break;}
 case 101:
-#line 723 "gram.y"
-{ yyval.node = yyvsp[0].node; ;
+#line 735 "gram.y"
+{ yyval.list = NULL; ;
     break;}
 case 102:
-#line 724 "gram.y"
+#line 738 "gram.y"
 { yyval.node = yyvsp[0].node; ;
     break;}
 case 103:
-#line 728 "gram.y"
+#line 739 "gram.y"
+{ yyval.node = yyvsp[0].node; ;
+    break;}
+case 104:
+#line 743 "gram.y"
 {
                                        ColumnDef *n = makeNode(ColumnDef);
                                        n->colname = yyvsp[-2].str;
@@ -4827,16 +4806,16 @@ case 103:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 104:
-#line 739 "gram.y"
+case 105:
+#line 754 "gram.y"
 { yyval.list = yyvsp[0].list; ;
     break;}
-case 105:
-#line 740 "gram.y"
+case 106:
+#line 755 "gram.y"
 { yyval.list = NULL; ;
     break;}
-case 106:
-#line 744 "gram.y"
+case 107:
+#line 759 "gram.y"
 {
                                        if (yyvsp[0].node != NULL)
                                                yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node);
@@ -4844,8 +4823,8 @@ case 106:
                                                yyval.list = yyvsp[-1].list;
                                ;
     break;}
-case 107:
-#line 751 "gram.y"
+case 108:
+#line 766 "gram.y"
 {
                                        if (yyvsp[0].node != NULL)
                                                yyval.list = lcons(yyvsp[0].node, NIL);
@@ -4853,20 +4832,20 @@ case 107:
                                                yyval.list = NULL;
                                ;
     break;}
-case 108:
-#line 761 "gram.y"
+case 109:
+#line 776 "gram.y"
 {
                                                Constraint *n = (Constraint *)yyvsp[0].node;
                                                if (n != NULL) n->name = fmtId(yyvsp[-1].str);
                                                yyval.node = yyvsp[0].node;
                                ;
     break;}
-case 109:
-#line 767 "gram.y"
+case 110:
+#line 782 "gram.y"
 { yyval.node = yyvsp[0].node; ;
     break;}
-case 110:
-#line 771 "gram.y"
+case 111:
+#line 786 "gram.y"
 {
                                        Constraint *n = makeNode(Constraint);
                                        n->contype = CONSTR_CHECK;
@@ -4876,8 +4855,8 @@ case 110:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 111:
-#line 780 "gram.y"
+case 112:
+#line 795 "gram.y"
 {
                                        Constraint *n = makeNode(Constraint);
                                        n->contype = CONSTR_DEFAULT;
@@ -4887,8 +4866,8 @@ case 111:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 112:
-#line 789 "gram.y"
+case 113:
+#line 804 "gram.y"
 {
                                        Constraint *n = makeNode(Constraint);
                                        n->contype = CONSTR_NOTNULL;
@@ -4898,8 +4877,8 @@ case 112:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 113:
-#line 798 "gram.y"
+case 114:
+#line 813 "gram.y"
 {
                                        Constraint *n = makeNode(Constraint);
                                        n->contype = CONSTR_UNIQUE;
@@ -4909,8 +4888,8 @@ case 113:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 114:
-#line 807 "gram.y"
+case 115:
+#line 822 "gram.y"
 {
                                        Constraint *n = makeNode(Constraint);
                                        n->contype = CONSTR_PRIMARY;
@@ -4920,177 +4899,177 @@ case 114:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 115:
-#line 816 "gram.y"
+case 116:
+#line 831 "gram.y"
 {
                                        elog(NOTICE,"CREATE TABLE/FOREIGN KEY clause ignored; not yet implemented");
                                        yyval.node = NULL;
                                ;
     break;}
-case 116:
-#line 823 "gram.y"
+case 117:
+#line 838 "gram.y"
 {
                                        yyval.list = lappend(yyvsp[-2].list,makeString(","));
                                        yyval.list = nconc(yyval.list, yyvsp[0].list);
                                ;
     break;}
-case 117:
-#line 828 "gram.y"
+case 118:
+#line 843 "gram.y"
 {
                                        yyval.list = yyvsp[0].list;
                                ;
     break;}
-case 118:
-#line 834 "gram.y"
-{      yyval.list = makeConstantList((A_Const *) yyvsp[0].node); ;
-    break;}
 case 119:
-#line 836 "gram.y"
-{      yyval.list = lcons( makeString("NULL"), NIL); ;
+#line 849 "gram.y"
+{      yyval.list = makeConstantList((A_Const *) yyvsp[0].node); ;
     break;}
 case 120:
-#line 838 "gram.y"
-{      yyval.list = lcons( makeString( "-"), yyvsp[0].list); ;
+#line 851 "gram.y"
+{      yyval.list = lcons( makeString("NULL"), NIL); ;
     break;}
 case 121:
-#line 840 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "+"), yyvsp[0].list)); ;
+#line 853 "gram.y"
+{      yyval.list = lcons( makeString( "-"), yyvsp[0].list); ;
     break;}
 case 122:
-#line 842 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "-"), yyvsp[0].list)); ;
+#line 855 "gram.y"
+{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "+"), yyvsp[0].list)); ;
     break;}
 case 123:
-#line 844 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "/"), yyvsp[0].list)); ;
+#line 857 "gram.y"
+{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "-"), yyvsp[0].list)); ;
     break;}
 case 124:
-#line 846 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "*"), yyvsp[0].list)); ;
+#line 859 "gram.y"
+{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "/"), yyvsp[0].list)); ;
     break;}
 case 125:
-#line 848 "gram.y"
-{      elog(ERROR,"boolean expressions not supported in DEFAULT"); ;
+#line 861 "gram.y"
+{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "*"), yyvsp[0].list)); ;
     break;}
 case 126:
-#line 850 "gram.y"
+#line 863 "gram.y"
 {      elog(ERROR,"boolean expressions not supported in DEFAULT"); ;
     break;}
 case 127:
-#line 852 "gram.y"
+#line 865 "gram.y"
 {      elog(ERROR,"boolean expressions not supported in DEFAULT"); ;
     break;}
 case 128:
-#line 854 "gram.y"
-{      yyval.list = lcons( makeString( ":"), yyvsp[0].list); ;
+#line 867 "gram.y"
+{      elog(ERROR,"boolean expressions not supported in DEFAULT"); ;
     break;}
 case 129:
-#line 856 "gram.y"
-{      yyval.list = lcons( makeString( ";"), yyvsp[0].list); ;
+#line 869 "gram.y"
+{      yyval.list = lcons( makeString( ":"), yyvsp[0].list); ;
     break;}
 case 130:
-#line 858 "gram.y"
-{      yyval.list = lcons( makeString( "|"), yyvsp[0].list); ;
+#line 871 "gram.y"
+{      yyval.list = lcons( makeString( ";"), yyvsp[0].list); ;
     break;}
 case 131:
-#line 860 "gram.y"
+#line 873 "gram.y"
+{      yyval.list = lcons( makeString( "|"), yyvsp[0].list); ;
+    break;}
+case 132:
+#line 875 "gram.y"
 {
                                        yyvsp[0].typnam->name = fmtId(yyvsp[0].typnam->name);
                                        yyval.list = nconc( lcons( makeString( "CAST"), yyvsp[-2].list), makeList( makeString("AS"), yyvsp[0].typnam, -1));
                                ;
     break;}
-case 132:
-#line 865 "gram.y"
+case 133:
+#line 880 "gram.y"
 {
                                        yyvsp[-1].typnam->name = fmtId(yyvsp[-1].typnam->name);
                                        yyval.list = nconc( lcons( makeString( "CAST"), yyvsp[-3].list), makeList( makeString("AS"), yyvsp[-1].typnam, -1));
                                ;
     break;}
-case 133:
-#line 870 "gram.y"
+case 134:
+#line 885 "gram.y"
 {      yyval.list = lappend( lcons( makeString( "("), yyvsp[-1].list), makeString( ")")); ;
     break;}
-case 134:
-#line 872 "gram.y"
+case 135:
+#line 887 "gram.y"
 {
                                        yyval.list = makeList( makeString(yyvsp[-2].str), makeString("("), -1);
                                        yyval.list = lappend( yyval.list, makeString(")"));
                                ;
     break;}
-case 135:
-#line 877 "gram.y"
+case 136:
+#line 892 "gram.y"
 {
                                        yyval.list = makeList( makeString(yyvsp[-3].str), makeString("("), -1);
                                        yyval.list = nconc( yyval.list, yyvsp[-1].list);
                                        yyval.list = lappend( yyval.list, makeString(")"));
                                ;
     break;}
-case 136:
-#line 883 "gram.y"
+case 137:
+#line 898 "gram.y"
 {
                                        if (!strcmp("<=", yyvsp[-1].str) || !strcmp(">=", yyvsp[-1].str))
                                                elog(ERROR,"boolean expressions not supported in DEFAULT");
                                        yyval.list = nconc( yyvsp[-2].list, lcons( makeString( yyvsp[-1].str), yyvsp[0].list));
                                ;
     break;}
-case 137:
-#line 889 "gram.y"
+case 138:
+#line 904 "gram.y"
 {      yyval.list = lcons( makeString( yyvsp[-1].str), yyvsp[0].list); ;
     break;}
-case 138:
-#line 891 "gram.y"
+case 139:
+#line 906 "gram.y"
 {      yyval.list = lappend( yyvsp[-1].list, makeString( yyvsp[0].str)); ;
     break;}
-case 139:
-#line 894 "gram.y"
+case 140:
+#line 909 "gram.y"
 {      yyval.list = lcons( makeString( "date( 'current'::datetime + '0 sec')"), NIL); ;
     break;}
-case 140:
-#line 896 "gram.y"
+case 141:
+#line 911 "gram.y"
 {      yyval.list = lcons( makeString( "'now'::time"), NIL); ;
     break;}
-case 141:
-#line 898 "gram.y"
+case 142:
+#line 913 "gram.y"
 {
                                        if (yyvsp[-1].ival != 0)
                                                elog(NOTICE,"CURRENT_TIME(%d) precision not implemented; zero used instead",yyvsp[-1].ival);
                                        yyval.list = lcons( makeString( "'now'::time"), NIL);
                                ;
     break;}
-case 142:
-#line 904 "gram.y"
+case 143:
+#line 919 "gram.y"
 {      yyval.list = lcons( makeString( "now()"), NIL); ;
     break;}
-case 143:
-#line 906 "gram.y"
+case 144:
+#line 921 "gram.y"
 {
                                        if (yyvsp[-1].ival != 0)
                                                elog(NOTICE,"CURRENT_TIMESTAMP(%d) precision not implemented; zero used instead",yyvsp[-1].ival);
                                        yyval.list = lcons( makeString( "now()"), NIL);
                                ;
     break;}
-case 144:
-#line 912 "gram.y"
+case 145:
+#line 927 "gram.y"
 {      yyval.list = lcons( makeString( "CURRENT_USER"), NIL); ;
     break;}
-case 145:
-#line 914 "gram.y"
+case 146:
+#line 929 "gram.y"
 {      yyval.list = lcons( makeString( "USER"), NIL); ;
     break;}
-case 146:
-#line 922 "gram.y"
+case 147:
+#line 937 "gram.y"
 {
                                                Constraint *n = (Constraint *)yyvsp[0].node;
                                                if (n != NULL) n->name = fmtId(yyvsp[-1].str);
                                                yyval.node = yyvsp[0].node;
                                ;
     break;}
-case 147:
-#line 928 "gram.y"
+case 148:
+#line 943 "gram.y"
 { yyval.node = yyvsp[0].node; ;
     break;}
-case 148:
-#line 932 "gram.y"
+case 149:
+#line 947 "gram.y"
 {
                                        Constraint *n = makeNode(Constraint);
                                        n->contype = CONSTR_CHECK;
@@ -5099,8 +5078,8 @@ case 148:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 149:
-#line 940 "gram.y"
+case 150:
+#line 955 "gram.y"
 {
                                        Constraint *n = makeNode(Constraint);
                                        n->contype = CONSTR_UNIQUE;
@@ -5110,8 +5089,8 @@ case 149:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 150:
-#line 949 "gram.y"
+case 151:
+#line 964 "gram.y"
 {
                                        Constraint *n = makeNode(Constraint);
                                        n->contype = CONSTR_PRIMARY;
@@ -5121,243 +5100,243 @@ case 150:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 151:
-#line 958 "gram.y"
+case 152:
+#line 973 "gram.y"
 {
                                        elog(NOTICE,"CREATE TABLE/FOREIGN KEY clause ignored; not yet implemented");
                                        yyval.node = NULL;
                                ;
     break;}
-case 152:
-#line 965 "gram.y"
+case 153:
+#line 980 "gram.y"
 {
                                        yyval.list = lappend(yyvsp[-2].list,makeString(","));
                                        yyval.list = nconc(yyval.list, yyvsp[0].list);
                                ;
     break;}
-case 153:
-#line 970 "gram.y"
+case 154:
+#line 985 "gram.y"
 {
                                        yyval.list = yyvsp[0].list;
                                ;
     break;}
-case 154:
-#line 976 "gram.y"
+case 155:
+#line 991 "gram.y"
 {      yyval.list = makeConstantList((A_Const *) yyvsp[0].node); ;
     break;}
-case 155:
-#line 978 "gram.y"
+case 156:
+#line 993 "gram.y"
 {      yyval.list = lcons( makeString("NULL"), NIL); ;
     break;}
-case 156:
-#line 980 "gram.y"
+case 157:
+#line 995 "gram.y"
 {
                                        yyval.list = lcons( makeString(fmtId(yyvsp[0].str)), NIL);
                                ;
     break;}
-case 157:
-#line 984 "gram.y"
+case 158:
+#line 999 "gram.y"
 {      yyval.list = lcons( makeString( "-"), yyvsp[0].list); ;
     break;}
-case 158:
-#line 986 "gram.y"
+case 159:
+#line 1001 "gram.y"
 {      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "+"), yyvsp[0].list)); ;
     break;}
-case 159:
-#line 988 "gram.y"
+case 160:
+#line 1003 "gram.y"
 {      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "-"), yyvsp[0].list)); ;
     break;}
-case 160:
-#line 990 "gram.y"
+case 161:
+#line 1005 "gram.y"
 {      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "/"), yyvsp[0].list)); ;
     break;}
-case 161:
-#line 992 "gram.y"
+case 162:
+#line 1007 "gram.y"
 {      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "*"), yyvsp[0].list)); ;
     break;}
-case 162:
-#line 994 "gram.y"
+case 163:
+#line 1009 "gram.y"
 {      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "="), yyvsp[0].list)); ;
     break;}
-case 163:
-#line 996 "gram.y"
+case 164:
+#line 1011 "gram.y"
 {      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "<"), yyvsp[0].list)); ;
     break;}
-case 164:
-#line 998 "gram.y"
+case 165:
+#line 1013 "gram.y"
 {      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( ">"), yyvsp[0].list)); ;
     break;}
-case 165:
-#line 1000 "gram.y"
+case 166:
+#line 1015 "gram.y"
 {      yyval.list = lcons( makeString( ":"), yyvsp[0].list); ;
     break;}
-case 166:
-#line 1002 "gram.y"
+case 167:
+#line 1017 "gram.y"
 {      yyval.list = lcons( makeString( ";"), yyvsp[0].list); ;
     break;}
-case 167:
-#line 1004 "gram.y"
+case 168:
+#line 1019 "gram.y"
 {      yyval.list = lcons( makeString( "|"), yyvsp[0].list); ;
     break;}
-case 168:
-#line 1006 "gram.y"
+case 169:
+#line 1021 "gram.y"
 {
                                        yyvsp[0].typnam->name = fmtId(yyvsp[0].typnam->name);
                                        yyval.list = nconc( lcons( makeString( "CAST"), yyvsp[-2].list), makeList( makeString("AS"), yyvsp[0].typnam, -1));
                                ;
     break;}
-case 169:
-#line 1011 "gram.y"
+case 170:
+#line 1026 "gram.y"
 {
                                        yyvsp[-1].typnam->name = fmtId(yyvsp[-1].typnam->name);
                                        yyval.list = nconc( lcons( makeString( "CAST"), yyvsp[-3].list), makeList( makeString("AS"), yyvsp[-1].typnam, -1));
                                ;
     break;}
-case 170:
-#line 1016 "gram.y"
+case 171:
+#line 1031 "gram.y"
 {      yyval.list = lappend( lcons( makeString( "("), yyvsp[-1].list), makeString( ")")); ;
     break;}
-case 171:
-#line 1018 "gram.y"
+case 172:
+#line 1033 "gram.y"
 {
                                        yyval.list = makeList( makeString(yyvsp[-2].str), makeString("("), -1);
                                        yyval.list = lappend( yyval.list, makeString(")"));
                                ;
     break;}
-case 172:
-#line 1023 "gram.y"
+case 173:
+#line 1038 "gram.y"
 {
                                        yyval.list = makeList( makeString(yyvsp[-3].str), makeString("("), -1);
                                        yyval.list = nconc( yyval.list, yyvsp[-1].list);
                                        yyval.list = lappend( yyval.list, makeString(")"));
                                ;
     break;}
-case 173:
-#line 1029 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( yyvsp[-1].str), yyvsp[0].list)); ;
-    break;}
 case 174:
-#line 1031 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "like"), yyvsp[0].list)); ;
+#line 1044 "gram.y"
+{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( yyvsp[-1].str), yyvsp[0].list)); ;
     break;}
 case 175:
-#line 1033 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "AND"), yyvsp[0].list)); ;
+#line 1046 "gram.y"
+{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "like"), yyvsp[0].list)); ;
     break;}
 case 176:
-#line 1035 "gram.y"
-{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "OR"), yyvsp[0].list)); ;
+#line 1048 "gram.y"
+{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "AND"), yyvsp[0].list)); ;
     break;}
 case 177:
-#line 1037 "gram.y"
-{      yyval.list = lcons( makeString( "NOT"), yyvsp[0].list); ;
+#line 1050 "gram.y"
+{      yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "OR"), yyvsp[0].list)); ;
     break;}
 case 178:
-#line 1039 "gram.y"
-{      yyval.list = lcons( makeString( yyvsp[-1].str), yyvsp[0].list); ;
+#line 1052 "gram.y"
+{      yyval.list = lcons( makeString( "NOT"), yyvsp[0].list); ;
     break;}
 case 179:
-#line 1041 "gram.y"
-{      yyval.list = lappend( yyvsp[-1].list, makeString( yyvsp[0].str)); ;
+#line 1054 "gram.y"
+{      yyval.list = lcons( makeString( yyvsp[-1].str), yyvsp[0].list); ;
     break;}
 case 180:
-#line 1043 "gram.y"
-{      yyval.list = lappend( yyvsp[-1].list, makeString( "IS NULL")); ;
+#line 1056 "gram.y"
+{      yyval.list = lappend( yyvsp[-1].list, makeString( yyvsp[0].str)); ;
     break;}
 case 181:
-#line 1045 "gram.y"
-{      yyval.list = lappend( yyvsp[-2].list, makeString( "IS NULL")); ;
+#line 1058 "gram.y"
+{      yyval.list = lappend( yyvsp[-1].list, makeString( "IS NULL")); ;
     break;}
 case 182:
-#line 1047 "gram.y"
-{      yyval.list = lappend( yyvsp[-1].list, makeString( "IS NOT NULL")); ;
+#line 1060 "gram.y"
+{      yyval.list = lappend( yyvsp[-2].list, makeString( "IS NULL")); ;
     break;}
 case 183:
-#line 1049 "gram.y"
-{      yyval.list = lappend( yyvsp[-3].list, makeString( "IS NOT NULL")); ;
+#line 1062 "gram.y"
+{      yyval.list = lappend( yyvsp[-1].list, makeString( "IS NOT NULL")); ;
     break;}
 case 184:
-#line 1051 "gram.y"
-{      yyval.list = lappend( yyvsp[-2].list, makeString( "IS TRUE")); ;
+#line 1064 "gram.y"
+{      yyval.list = lappend( yyvsp[-3].list, makeString( "IS NOT NULL")); ;
     break;}
 case 185:
-#line 1053 "gram.y"
-{      yyval.list = lappend( yyvsp[-2].list, makeString( "IS FALSE")); ;
+#line 1066 "gram.y"
+{      yyval.list = lappend( yyvsp[-2].list, makeString( "IS TRUE")); ;
     break;}
 case 186:
-#line 1055 "gram.y"
-{      yyval.list = lappend( yyvsp[-3].list, makeString( "IS NOT TRUE")); ;
+#line 1068 "gram.y"
+{      yyval.list = lappend( yyvsp[-2].list, makeString( "IS FALSE")); ;
     break;}
 case 187:
-#line 1057 "gram.y"
-{      yyval.list = lappend( yyvsp[-3].list, makeString( "IS NOT FALSE")); ;
+#line 1070 "gram.y"
+{      yyval.list = lappend( yyvsp[-3].list, makeString( "IS NOT TRUE")); ;
     break;}
 case 188:
-#line 1060 "gram.y"
-{ yyval.str = NULL; ;
+#line 1072 "gram.y"
+{      yyval.list = lappend( yyvsp[-3].list, makeString( "IS NOT FALSE")); ;
     break;}
 case 189:
-#line 1061 "gram.y"
+#line 1075 "gram.y"
 { yyval.str = NULL; ;
     break;}
 case 190:
-#line 1062 "gram.y"
+#line 1076 "gram.y"
 { yyval.str = NULL; ;
     break;}
 case 191:
-#line 1065 "gram.y"
-{ yyval.list = NIL; ;
+#line 1077 "gram.y"
+{ yyval.str = NULL; ;
     break;}
 case 192:
-#line 1066 "gram.y"
+#line 1080 "gram.y"
 { yyval.list = NIL; ;
     break;}
 case 193:
-#line 1067 "gram.y"
+#line 1081 "gram.y"
 { yyval.list = NIL; ;
     break;}
 case 194:
-#line 1070 "gram.y"
+#line 1082 "gram.y"
 { yyval.list = NIL; ;
     break;}
 case 195:
-#line 1071 "gram.y"
+#line 1085 "gram.y"
 { yyval.list = NIL; ;
     break;}
 case 196:
-#line 1074 "gram.y"
-{ yyval.str = NULL; ;
+#line 1086 "gram.y"
+{ yyval.list = NIL; ;
     break;}
 case 197:
-#line 1075 "gram.y"
+#line 1089 "gram.y"
 { yyval.str = NULL; ;
     break;}
 case 198:
-#line 1076 "gram.y"
+#line 1090 "gram.y"
 { yyval.str = NULL; ;
     break;}
 case 199:
-#line 1077 "gram.y"
+#line 1091 "gram.y"
 { yyval.str = NULL; ;
     break;}
 case 200:
-#line 1080 "gram.y"
-{ yyval.list = yyvsp[-1].list; ;
+#line 1092 "gram.y"
+{ yyval.str = NULL; ;
     break;}
 case 201:
-#line 1081 "gram.y"
-{ yyval.list = NIL; ;
+#line 1095 "gram.y"
+{ yyval.list = yyvsp[-1].list; ;
     break;}
 case 202:
-#line 1088 "gram.y"
-{ ;
+#line 1096 "gram.y"
+{ yyval.list = NIL; ;
     break;}
 case 203:
-#line 1089 "gram.y"
+#line 1103 "gram.y"
 { ;
     break;}
 case 204:
-#line 1093 "gram.y"
+#line 1104 "gram.y"
+{ ;
+    break;}
+case 205:
+#line 1108 "gram.y"
 {
                                        SelectStmt *n = (SelectStmt *)yyvsp[0].node;
                                        if (yyvsp[-2].list != NIL)
@@ -5366,24 +5345,24 @@ case 204:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 205:
-#line 1102 "gram.y"
+case 206:
+#line 1117 "gram.y"
 { yyval.list = yyvsp[-1].list; ;
     break;}
-case 206:
-#line 1103 "gram.y"
+case 207:
+#line 1118 "gram.y"
 { yyval.list = NULL; ;
     break;}
-case 207:
-#line 1106 "gram.y"
+case 208:
+#line 1121 "gram.y"
 { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ;
     break;}
-case 208:
-#line 1107 "gram.y"
+case 209:
+#line 1122 "gram.y"
 { yyval.list = lcons(yyvsp[0].node, NIL); ;
     break;}
-case 209:
-#line 1111 "gram.y"
+case 210:
+#line 1126 "gram.y"
 {
                                        ColumnDef *n = makeNode(ColumnDef);
                                        n->colname = yyvsp[0].str;
@@ -5394,8 +5373,8 @@ case 209:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 210:
-#line 1131 "gram.y"
+case 211:
+#line 1146 "gram.y"
 {
                                        CreateSeqStmt *n = makeNode(CreateSeqStmt);
                                        n->seqname = yyvsp[-1].str;
@@ -5403,98 +5382,98 @@ case 210:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 211:
-#line 1140 "gram.y"
+case 212:
+#line 1155 "gram.y"
 { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].defelt); ;
     break;}
-case 212:
-#line 1141 "gram.y"
+case 213:
+#line 1156 "gram.y"
 { yyval.list = NIL; ;
     break;}
-case 213:
-#line 1145 "gram.y"
+case 214:
+#line 1160 "gram.y"
 {
                                        yyval.defelt = makeNode(DefElem);
                                        yyval.defelt->defname = "cache";
                                        yyval.defelt->arg = (Node *)yyvsp[0].value;
                                ;
     break;}
-case 214:
-#line 1151 "gram.y"
+case 215:
+#line 1166 "gram.y"
 {
                                        yyval.defelt = makeNode(DefElem);
                                        yyval.defelt->defname = "cycle";
                                        yyval.defelt->arg = (Node *)NULL;
                                ;
     break;}
-case 215:
-#line 1157 "gram.y"
+case 216:
+#line 1172 "gram.y"
 {
                                        yyval.defelt = makeNode(DefElem);
                                        yyval.defelt->defname = "increment";
                                        yyval.defelt->arg = (Node *)yyvsp[0].value;
                                ;
     break;}
-case 216:
-#line 1163 "gram.y"
+case 217:
+#line 1178 "gram.y"
 {
                                        yyval.defelt = makeNode(DefElem);
                                        yyval.defelt->defname = "maxvalue";
                                        yyval.defelt->arg = (Node *)yyvsp[0].value;
                                ;
     break;}
-case 217:
-#line 1169 "gram.y"
+case 218:
+#line 1184 "gram.y"
 {
                                        yyval.defelt = makeNode(DefElem);
                                        yyval.defelt->defname = "minvalue";
                                        yyval.defelt->arg = (Node *)yyvsp[0].value;
                                ;
     break;}
-case 218:
-#line 1175 "gram.y"
+case 219:
+#line 1190 "gram.y"
 {
                                        yyval.defelt = makeNode(DefElem);
                                        yyval.defelt->defname = "start";
                                        yyval.defelt->arg = (Node *)yyvsp[0].value;
                                ;
     break;}
-case 219:
-#line 1182 "gram.y"
-{ yyval.value = yyvsp[0].value; ;
-    break;}
 case 220:
-#line 1183 "gram.y"
+#line 1197 "gram.y"
 { yyval.value = yyvsp[0].value; ;
     break;}
 case 221:
-#line 1186 "gram.y"
-{
-                                       yyval.value = makeFloat(yyvsp[0].dval);
-                               ;
+#line 1198 "gram.y"
+{ yyval.value = yyvsp[0].value; ;
     break;}
 case 222:
-#line 1190 "gram.y"
+#line 1201 "gram.y"
 {
                                        yyval.value = makeFloat(yyvsp[0].dval);
-                                       yyval.value->val.dval = - yyval.value->val.dval;
                                ;
     break;}
 case 223:
-#line 1197 "gram.y"
+#line 1205 "gram.y"
 {
-                                       yyval.value = makeInteger(yyvsp[0].ival);
+                                       yyval.value = makeFloat(yyvsp[0].dval);
+                                       yyval.value->val.dval = - yyval.value->val.dval;
                                ;
     break;}
 case 224:
-#line 1201 "gram.y"
+#line 1212 "gram.y"
 {
                                        yyval.value = makeInteger(yyvsp[0].ival);
-                                       yyval.value->val.ival = - yyval.value->val.ival;
                                ;
     break;}
 case 225:
-#line 1217 "gram.y"
+#line 1216 "gram.y"
+{
+                                       yyval.value = makeInteger(yyvsp[0].ival);
+                                       yyval.value->val.ival = - yyval.value->val.ival;
+                               ;
+    break;}
+case 226:
+#line 1232 "gram.y"
 {
                                CreatePLangStmt *n = makeNode(CreatePLangStmt);
                                n->plname = yyvsp[-4].str;
@@ -5504,24 +5483,24 @@ case 225:
                                yyval.node = (Node *)n;
                        ;
     break;}
-case 226:
-#line 1227 "gram.y"
+case 227:
+#line 1242 "gram.y"
 { yyval.boolean = TRUE; ;
     break;}
-case 227:
-#line 1228 "gram.y"
+case 228:
+#line 1243 "gram.y"
 { yyval.boolean = FALSE; ;
     break;}
-case 228:
-#line 1231 "gram.y"
+case 229:
+#line 1246 "gram.y"
 {
                                DropPLangStmt *n = makeNode(DropPLangStmt);
                                n->plname = yyvsp[0].str;
                                yyval.node = (Node *)n;
                        ;
     break;}
-case 229:
-#line 1249 "gram.y"
+case 230:
+#line 1264 "gram.y"
 {
                                        CreateTrigStmt *n = makeNode(CreateTrigStmt);
                                        n->trigname = yyvsp[-11].str;
@@ -5534,108 +5513,108 @@ case 229:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 230:
-#line 1262 "gram.y"
+case 231:
+#line 1277 "gram.y"
 { yyval.boolean = TRUE; ;
     break;}
-case 231:
-#line 1263 "gram.y"
+case 232:
+#line 1278 "gram.y"
 { yyval.boolean = FALSE; ;
     break;}
-case 232:
-#line 1267 "gram.y"
+case 233:
+#line 1282 "gram.y"
 {
                                        char *e = palloc (4);
                                        e[0] = yyvsp[0].chr; e[1] = 0; yyval.str = e;
                                ;
     break;}
-case 233:
-#line 1272 "gram.y"
+case 234:
+#line 1287 "gram.y"
 {
                                        char *e = palloc (4);
                                        e[0] = yyvsp[-2].chr; e[1] = yyvsp[0].chr; e[2] = 0; yyval.str = e;
                                ;
     break;}
-case 234:
-#line 1277 "gram.y"
+case 235:
+#line 1292 "gram.y"
 {
                                        char *e = palloc (4);
                                        e[0] = yyvsp[-4].chr; e[1] = yyvsp[-2].chr; e[2] = yyvsp[0].chr; e[3] = 0;
                                        yyval.str = e;
                                ;
     break;}
-case 235:
-#line 1284 "gram.y"
+case 236:
+#line 1299 "gram.y"
 { yyval.chr = 'i'; ;
     break;}
-case 236:
-#line 1285 "gram.y"
+case 237:
+#line 1300 "gram.y"
 { yyval.chr = 'd'; ;
     break;}
-case 237:
-#line 1286 "gram.y"
+case 238:
+#line 1301 "gram.y"
 { yyval.chr = 'u'; ;
     break;}
-case 238:
-#line 1290 "gram.y"
+case 239:
+#line 1305 "gram.y"
 {
                                        yyval.boolean = yyvsp[0].boolean;
                                ;
     break;}
-case 239:
-#line 1295 "gram.y"
+case 240:
+#line 1310 "gram.y"
 { yyval.boolean = TRUE; ;
     break;}
-case 240:
-#line 1296 "gram.y"
+case 241:
+#line 1311 "gram.y"
 { yyval.boolean = FALSE; ;
     break;}
-case 241:
-#line 1299 "gram.y"
+case 242:
+#line 1314 "gram.y"
 { yyval.boolean = TRUE; ;
     break;}
-case 242:
-#line 1300 "gram.y"
+case 243:
+#line 1315 "gram.y"
 { yyval.boolean = FALSE; ;
     break;}
-case 243:
-#line 1304 "gram.y"
+case 244:
+#line 1319 "gram.y"
 { yyval.list = lcons(yyvsp[0].str, NIL); ;
     break;}
-case 244:
-#line 1306 "gram.y"
+case 245:
+#line 1321 "gram.y"
 { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].str); ;
     break;}
-case 245:
-#line 1308 "gram.y"
+case 246:
+#line 1323 "gram.y"
 { yyval.list = NIL; ;
     break;}
-case 246:
-#line 1312 "gram.y"
+case 247:
+#line 1327 "gram.y"
 {
                                        char *s = (char *) palloc (256);
                                        sprintf (s, "%d", yyvsp[0].ival);
                                        yyval.str = s;
                                ;
     break;}
-case 247:
-#line 1318 "gram.y"
+case 248:
+#line 1333 "gram.y"
 {
                                        char *s = (char *) palloc (256);
                                        sprintf (s, "%g", yyvsp[0].dval);
                                        yyval.str = s;
                                ;
     break;}
-case 248:
-#line 1323 "gram.y"
-{  yyval.str = yyvsp[0].str; ;
-    break;}
 case 249:
-#line 1324 "gram.y"
+#line 1338 "gram.y"
 {  yyval.str = yyvsp[0].str; ;
     break;}
 case 250:
-#line 1328 "gram.y"
+#line 1339 "gram.y"
+{  yyval.str = yyvsp[0].str; ;
+    break;}
+case 251:
+#line 1343 "gram.y"
 {
                                        DropTrigStmt *n = makeNode(DropTrigStmt);
                                        n->trigname = yyvsp[-2].str;
@@ -5643,107 +5622,107 @@ case 250:
                                        yyval.node = (Node *) n;
                                ;
     break;}
-case 251:
-#line 1345 "gram.y"
+case 252:
+#line 1360 "gram.y"
 {
                                        yyvsp[0].dstmt->defType = yyvsp[-1].ival;
                                        yyval.node = (Node *)yyvsp[0].dstmt;
                                ;
     break;}
-case 252:
-#line 1352 "gram.y"
+case 253:
+#line 1367 "gram.y"
 {
                                        yyval.dstmt = makeNode(DefineStmt);
                                        yyval.dstmt->defname = yyvsp[-1].str;
                                        yyval.dstmt->definition = yyvsp[0].list;
                                ;
     break;}
-case 253:
-#line 1359 "gram.y"
-{ yyval.ival = OPERATOR; ;
-    break;}
 case 254:
-#line 1360 "gram.y"
-{ yyval.ival = TYPE_P; ;
+#line 1374 "gram.y"
+{ yyval.ival = OPERATOR; ;
     break;}
 case 255:
-#line 1361 "gram.y"
-{ yyval.ival = AGGREGATE; ;
+#line 1375 "gram.y"
+{ yyval.ival = TYPE_P; ;
     break;}
 case 256:
-#line 1364 "gram.y"
-{ yyval.str = "procedure"; ;
+#line 1376 "gram.y"
+{ yyval.ival = AGGREGATE; ;
     break;}
 case 257:
-#line 1365 "gram.y"
-{ yyval.str = "join"; ;
+#line 1379 "gram.y"
+{ yyval.str = "procedure"; ;
     break;}
 case 258:
-#line 1366 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
+#line 1380 "gram.y"
+{ yyval.str = "join"; ;
     break;}
 case 259:
-#line 1367 "gram.y"
+#line 1381 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 260:
-#line 1368 "gram.y"
+#line 1382 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 261:
-#line 1371 "gram.y"
-{ yyval.list = yyvsp[-1].list; ;
+#line 1383 "gram.y"
+{ yyval.str = yyvsp[0].str; ;
     break;}
 case 262:
-#line 1374 "gram.y"
-{ yyval.list = lcons(yyvsp[0].defelt, NIL); ;
+#line 1386 "gram.y"
+{ yyval.list = yyvsp[-1].list; ;
     break;}
 case 263:
-#line 1375 "gram.y"
-{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].defelt); ;
+#line 1389 "gram.y"
+{ yyval.list = lcons(yyvsp[0].defelt, NIL); ;
     break;}
 case 264:
-#line 1379 "gram.y"
+#line 1390 "gram.y"
+{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].defelt); ;
+    break;}
+case 265:
+#line 1394 "gram.y"
 {
                                        yyval.defelt = makeNode(DefElem);
                                        yyval.defelt->defname = yyvsp[-2].str;
                                        yyval.defelt->arg = (Node *)yyvsp[0].node;
                                ;
     break;}
-case 265:
-#line 1385 "gram.y"
+case 266:
+#line 1400 "gram.y"
 {
                                        yyval.defelt = makeNode(DefElem);
                                        yyval.defelt->defname = yyvsp[0].str;
                                        yyval.defelt->arg = (Node *)NULL;
                                ;
     break;}
-case 266:
-#line 1391 "gram.y"
+case 267:
+#line 1406 "gram.y"
 {
                                        yyval.defelt = makeNode(DefElem);
                                        yyval.defelt->defname = "default";
                                        yyval.defelt->arg = (Node *)yyvsp[0].node;
                                ;
     break;}
-case 267:
-#line 1398 "gram.y"
-{  yyval.node = (Node *)makeString(yyvsp[0].str); ;
-    break;}
 case 268:
-#line 1399 "gram.y"
+#line 1413 "gram.y"
 {  yyval.node = (Node *)makeString(yyvsp[0].str); ;
     break;}
 case 269:
-#line 1400 "gram.y"
-{  yyval.node = (Node *)yyvsp[0].value; ;
+#line 1414 "gram.y"
+{  yyval.node = (Node *)makeString(yyvsp[0].str); ;
     break;}
 case 270:
-#line 1401 "gram.y"
-{  yyval.node = (Node *)makeString(yyvsp[0].str); ;
+#line 1415 "gram.y"
+{  yyval.node = (Node *)yyvsp[0].value; ;
     break;}
 case 271:
-#line 1403 "gram.y"
+#line 1416 "gram.y"
+{  yyval.node = (Node *)makeString(yyvsp[0].str); ;
+    break;}
+case 272:
+#line 1418 "gram.y"
 {
                                        TypeName *n = makeNode(TypeName);
                                        n->name = yyvsp[0].str;
@@ -5753,8 +5732,8 @@ case 271:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 272:
-#line 1422 "gram.y"
+case 273:
+#line 1437 "gram.y"
 {
                                        DestroyStmt *n = makeNode(DestroyStmt);
                                        n->relNames = yyvsp[0].list;
@@ -5762,8 +5741,8 @@ case 272:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 273:
-#line 1429 "gram.y"
+case 274:
+#line 1444 "gram.y"
 {
                                        DestroyStmt *n = makeNode(DestroyStmt);
                                        n->relNames = yyvsp[0].list;
@@ -5771,8 +5750,8 @@ case 273:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 274:
-#line 1446 "gram.y"
+case 275:
+#line 1461 "gram.y"
 {
                                        FetchStmt *n = makeNode(FetchStmt);
                                        n->direction = yyvsp[-2].ival;
@@ -5782,8 +5761,8 @@ case 274:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 275:
-#line 1455 "gram.y"
+case 276:
+#line 1470 "gram.y"
 {
                                        FetchStmt *n = makeNode(FetchStmt);
                                        n->direction = yyvsp[-2].ival;
@@ -5793,137 +5772,137 @@ case 275:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 276:
-#line 1465 "gram.y"
+case 277:
+#line 1480 "gram.y"
 { yyval.ival = FORWARD; ;
     break;}
-case 277:
-#line 1466 "gram.y"
+case 278:
+#line 1481 "gram.y"
 { yyval.ival = BACKWARD; ;
     break;}
-case 278:
-#line 1467 "gram.y"
+case 279:
+#line 1482 "gram.y"
 { yyval.ival = FORWARD; /* default */ ;
     break;}
-case 279:
-#line 1471 "gram.y"
+case 280:
+#line 1486 "gram.y"
 { yyval.ival = yyvsp[0].ival;
                                 if (yyvsp[0].ival <= 0) elog(ERROR,"Please specify nonnegative count for fetch"); ;
     break;}
-case 280:
-#line 1473 "gram.y"
+case 281:
+#line 1488 "gram.y"
 { yyval.ival = 0; /* 0 means fetch all tuples*/ ;
     break;}
-case 281:
-#line 1474 "gram.y"
+case 282:
+#line 1489 "gram.y"
 { yyval.ival = 1; /*default*/ ;
     break;}
-case 282:
-#line 1477 "gram.y"
+case 283:
+#line 1492 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 283:
-#line 1478 "gram.y"
+case 284:
+#line 1493 "gram.y"
 { yyval.str = NULL; ;
     break;}
-case 284:
-#line 1490 "gram.y"
+case 285:
+#line 1505 "gram.y"
 {
                                        yyval.node = (Node*)makeAclStmt(yyvsp[-5].str,yyvsp[-3].list,yyvsp[-1].str,'+');
                                ;
     break;}
-case 285:
-#line 1496 "gram.y"
+case 286:
+#line 1511 "gram.y"
 {
                                 yyval.str = aclmakepriv("rwaR",0);
                                ;
     break;}
-case 286:
-#line 1500 "gram.y"
+case 287:
+#line 1515 "gram.y"
 {
                                 yyval.str = aclmakepriv("rwaR",0);
                                ;
     break;}
-case 287:
-#line 1504 "gram.y"
+case 288:
+#line 1519 "gram.y"
 {
                                 yyval.str = yyvsp[0].str;
                                ;
     break;}
-case 288:
-#line 1510 "gram.y"
+case 289:
+#line 1525 "gram.y"
 {
                                                yyval.str = aclmakepriv("",yyvsp[0].chr);
                                ;
     break;}
-case 289:
-#line 1514 "gram.y"
+case 290:
+#line 1529 "gram.y"
 {
                                                yyval.str = aclmakepriv(yyvsp[-2].str,yyvsp[0].chr);
                                ;
     break;}
-case 290:
-#line 1520 "gram.y"
+case 291:
+#line 1535 "gram.y"
 {
                                                yyval.chr = ACL_MODE_RD_CHR;
                                ;
     break;}
-case 291:
-#line 1524 "gram.y"
+case 292:
+#line 1539 "gram.y"
 {
                                                yyval.chr = ACL_MODE_AP_CHR;
                                ;
     break;}
-case 292:
-#line 1528 "gram.y"
+case 293:
+#line 1543 "gram.y"
 {
                                                yyval.chr = ACL_MODE_WR_CHR;
                                ;
     break;}
-case 293:
-#line 1532 "gram.y"
+case 294:
+#line 1547 "gram.y"
 {
                                                yyval.chr = ACL_MODE_WR_CHR;
                                ;
     break;}
-case 294:
-#line 1536 "gram.y"
+case 295:
+#line 1551 "gram.y"
 {
                                                yyval.chr = ACL_MODE_RU_CHR;
                                ;
     break;}
-case 295:
-#line 1542 "gram.y"
+case 296:
+#line 1557 "gram.y"
 {
                                                yyval.str = aclmakeuser("A","");
                                ;
     break;}
-case 296:
-#line 1546 "gram.y"
+case 297:
+#line 1561 "gram.y"
 {
                                                yyval.str = aclmakeuser("G",yyvsp[0].str);
                                ;
     break;}
-case 297:
-#line 1550 "gram.y"
+case 298:
+#line 1565 "gram.y"
 {
                                                yyval.str = aclmakeuser("U",yyvsp[0].str);
                                ;
     break;}
-case 298:
-#line 1556 "gram.y"
+case 299:
+#line 1571 "gram.y"
 {
                                        yyerror("WITH GRANT OPTION is not supported.  Only relation owners can set privileges");
                                 ;
     break;}
-case 300:
-#line 1571 "gram.y"
+case 301:
+#line 1586 "gram.y"
 {
                                        yyval.node = (Node*)makeAclStmt(yyvsp[-4].str,yyvsp[-2].list,yyvsp[0].str,'-');
                                ;
     break;}
-case 301:
-#line 1589 "gram.y"
+case 302:
+#line 1604 "gram.y"
 {
                                        /* should check that access_method is valid,
                                           etc ... but doesn't */
@@ -5938,40 +5917,40 @@ case 301:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 302:
-#line 1604 "gram.y"
+case 303:
+#line 1619 "gram.y"
 { yyval.boolean = TRUE; ;
     break;}
-case 303:
-#line 1605 "gram.y"
+case 304:
+#line 1620 "gram.y"
 { yyval.boolean = FALSE; ;
     break;}
-case 304:
-#line 1608 "gram.y"
+case 305:
+#line 1623 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 305:
-#line 1609 "gram.y"
+case 306:
+#line 1624 "gram.y"
 { yyval.str = "btree"; ;
     break;}
-case 306:
-#line 1612 "gram.y"
+case 307:
+#line 1627 "gram.y"
 { yyval.list = yyvsp[0].list; ;
     break;}
-case 307:
-#line 1613 "gram.y"
+case 308:
+#line 1628 "gram.y"
 { yyval.list = lcons(yyvsp[0].ielem,NIL); ;
     break;}
-case 308:
-#line 1616 "gram.y"
+case 309:
+#line 1631 "gram.y"
 { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].ielem); ;
     break;}
-case 309:
-#line 1617 "gram.y"
+case 310:
+#line 1632 "gram.y"
 { yyval.list = lcons(yyvsp[0].ielem, NIL); ;
     break;}
-case 310:
-#line 1621 "gram.y"
+case 311:
+#line 1636 "gram.y"
 {
                                        yyval.ielem = makeNode(IndexElem);
                                        yyval.ielem->name = yyvsp[-5].str;
@@ -5980,8 +5959,8 @@ case 310:
                                        yyval.ielem->tname = yyvsp[-1].typnam;
                                ;
     break;}
-case 311:
-#line 1631 "gram.y"
+case 312:
+#line 1646 "gram.y"
 {
                                        yyval.ielem = makeNode(IndexElem);
                                        yyval.ielem->name = yyvsp[-2].str;
@@ -5990,32 +5969,32 @@ case 311:
                                        yyval.ielem->tname = yyvsp[-1].typnam;
                                ;
     break;}
-case 312:
-#line 1640 "gram.y"
-{ yyval.typnam = yyvsp[0].typnam; ;
-    break;}
 case 313:
-#line 1641 "gram.y"
+#line 1655 "gram.y"
 { yyval.typnam = yyvsp[0].typnam; ;
     break;}
 case 314:
-#line 1642 "gram.y"
-{ yyval.typnam = NULL; ;
+#line 1656 "gram.y"
+{ yyval.typnam = yyvsp[0].typnam; ;
     break;}
 case 315:
-#line 1651 "gram.y"
-{ yyval.str = yyvsp[0].str; ;
+#line 1657 "gram.y"
+{ yyval.typnam = NULL; ;
     break;}
 case 316:
-#line 1652 "gram.y"
+#line 1666 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
 case 317:
-#line 1653 "gram.y"
-{ yyval.str = NULL; ;
+#line 1667 "gram.y"
+{ yyval.str = yyvsp[0].str; ;
     break;}
 case 318:
-#line 1665 "gram.y"
+#line 1668 "gram.y"
+{ yyval.str = NULL; ;
+    break;}
+case 319:
+#line 1680 "gram.y"
 {
                                        ExtendStmt *n = makeNode(ExtendStmt);
                                        n->idxname = yyvsp[-1].str;
@@ -6023,8 +6002,8 @@ case 318:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 319:
-#line 1682 "gram.y"
+case 320:
+#line 1697 "gram.y"
 {
                                        RecipeStmt *n;
                                        if (!IsTransactionBlock())
@@ -6035,8 +6014,8 @@ case 319:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 320:
-#line 1712 "gram.y"
+case 321:
+#line 1727 "gram.y"
 {
                                        ProcedureStmt *n = makeNode(ProcedureStmt);
                                        n->funcname = yyvsp[-8].str;
@@ -6048,32 +6027,32 @@ case 320:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 321:
-#line 1723 "gram.y"
+case 322:
+#line 1738 "gram.y"
 { yyval.list = yyvsp[0].list; ;
     break;}
-case 322:
-#line 1724 "gram.y"
+case 323:
+#line 1739 "gram.y"
 { yyval.list = NIL; ;
     break;}
-case 323:
-#line 1727 "gram.y"
+case 324:
+#line 1742 "gram.y"
 { yyval.list = yyvsp[-1].list; ;
     break;}
-case 324:
-#line 1728 "gram.y"
+case 325:
+#line 1743 "gram.y"
 { yyval.list = NIL; ;
     break;}
-case 325:
-#line 1732 "gram.y"
+case 326:
+#line 1747 "gram.y"
 {      yyval.list = lcons(makeString(yyvsp[0].str),NIL); ;
     break;}
-case 326:
-#line 1734 "gram.y"
+case 327:
+#line 1749 "gram.y"
 {      yyval.list = lappend(yyvsp[-2].list,makeString(yyvsp[0].str)); ;
     break;}
-case 327:
-#line 1738 "gram.y"
+case 328:
+#line 1753 "gram.y"
 {
                                        TypeName *n = makeNode(TypeName);
                                        n->name = yyvsp[0].str;
@@ -6082,16 +6061,16 @@ case 327:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 328:
-#line 1747 "gram.y"
+case 329:
+#line 1762 "gram.y"
 { yyval.boolean = TRUE; ;
     break;}
-case 329:
-#line 1748 "gram.y"
+case 330:
+#line 1763 "gram.y"
 { yyval.boolean = FALSE; ;
     break;}
-case 330:
-#line 1769 "gram.y"
+case 331:
+#line 1784 "gram.y"
 {
                                        RemoveStmt *n = makeNode(RemoveStmt);
                                        n->removeType = yyvsp[-1].ival;
@@ -6099,24 +6078,24 @@ case 330:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 331:
-#line 1777 "gram.y"
+case 332:
+#line 1792 "gram.y"
 {  yyval.ival = TYPE_P; ;
     break;}
-case 332:
-#line 1778 "gram.y"
+case 333:
+#line 1793 "gram.y"
 {  yyval.ival = INDEX; ;
     break;}
-case 333:
-#line 1779 "gram.y"
+case 334:
+#line 1794 "gram.y"
 {  yyval.ival = RULE; ;
     break;}
-case 334:
-#line 1780 "gram.y"
+case 335:
+#line 1795 "gram.y"
 {  yyval.ival = VIEW; ;
     break;}
-case 335:
-#line 1785 "gram.y"
+case 336:
+#line 1800 "gram.y"
 {
                                                RemoveAggrStmt *n = makeNode(RemoveAggrStmt);
                                                n->aggname = yyvsp[-1].str;
@@ -6124,16 +6103,16 @@ case 335:
                                                yyval.node = (Node *)n;
                                ;
     break;}
-case 336:
-#line 1793 "gram.y"
+case 337:
+#line 1808 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 337:
-#line 1794 "gram.y"
+case 338:
+#line 1809 "gram.y"
 { yyval.str = NULL; ;
     break;}
-case 338:
-#line 1799 "gram.y"
+case 339:
+#line 1814 "gram.y"
 {
                                        RemoveFuncStmt *n = makeNode(RemoveFuncStmt);
                                        n->funcname = yyvsp[-1].str;
@@ -6141,8 +6120,8 @@ case 338:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 339:
-#line 1809 "gram.y"
+case 340:
+#line 1824 "gram.y"
 {
                                        RemoveOperStmt *n = makeNode(RemoveOperStmt);
                                        n->opname = yyvsp[-3].str;
@@ -6150,54 +6129,54 @@ case 339:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 342:
-#line 1819 "gram.y"
+case 343:
+#line 1834 "gram.y"
 { yyval.str = "+"; ;
     break;}
-case 343:
-#line 1820 "gram.y"
+case 344:
+#line 1835 "gram.y"
 { yyval.str = "-"; ;
     break;}
-case 344:
-#line 1821 "gram.y"
+case 345:
+#line 1836 "gram.y"
 { yyval.str = "*"; ;
     break;}
-case 345:
-#line 1822 "gram.y"
+case 346:
+#line 1837 "gram.y"
 { yyval.str = "/"; ;
     break;}
-case 346:
-#line 1823 "gram.y"
+case 347:
+#line 1838 "gram.y"
 { yyval.str = "<"; ;
     break;}
-case 347:
-#line 1824 "gram.y"
+case 348:
+#line 1839 "gram.y"
 { yyval.str = ">"; ;
     break;}
-case 348:
-#line 1825 "gram.y"
+case 349:
+#line 1840 "gram.y"
 { yyval.str = "="; ;
     break;}
-case 349:
-#line 1829 "gram.y"
+case 350:
+#line 1844 "gram.y"
 {
                                   elog(ERROR,"parser: argument type missing (use NONE for unary operators)");
                                ;
     break;}
-case 350:
-#line 1833 "gram.y"
+case 351:
+#line 1848 "gram.y"
 { yyval.list = makeList(makeString(yyvsp[-2].str), makeString(yyvsp[0].str), -1); ;
     break;}
-case 351:
-#line 1835 "gram.y"
+case 352:
+#line 1850 "gram.y"
 { yyval.list = makeList(NULL, makeString(yyvsp[0].str), -1); ;
     break;}
-case 352:
-#line 1837 "gram.y"
+case 353:
+#line 1852 "gram.y"
 { yyval.list = makeList(makeString(yyvsp[-2].str), NULL, -1); ;
     break;}
-case 353:
-#line 1851 "gram.y"
+case 354:
+#line 1866 "gram.y"
 {
                                        RenameStmt *n = makeNode(RenameStmt);
                                        n->relname = yyvsp[-6].str;
@@ -6207,28 +6186,28 @@ case 353:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 354:
-#line 1861 "gram.y"
+case 355:
+#line 1876 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 355:
-#line 1862 "gram.y"
+case 356:
+#line 1877 "gram.y"
 { yyval.str = NULL; ;
     break;}
-case 356:
-#line 1865 "gram.y"
+case 357:
+#line 1880 "gram.y"
 { yyval.ival = COLUMN; ;
     break;}
-case 357:
-#line 1866 "gram.y"
+case 358:
+#line 1881 "gram.y"
 { yyval.ival = 0; ;
     break;}
-case 358:
-#line 1880 "gram.y"
+case 359:
+#line 1895 "gram.y"
 { QueryIsRule=TRUE; ;
     break;}
-case 359:
-#line 1883 "gram.y"
+case 360:
+#line 1898 "gram.y"
 {
                                        RuleStmt *n = makeNode(RuleStmt);
                                        n->rulename = yyvsp[-10].str;
@@ -6240,40 +6219,40 @@ case 359:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 360:
-#line 1895 "gram.y"
+case 361:
+#line 1910 "gram.y"
 { yyval.list = NIL; ;
     break;}
-case 361:
-#line 1896 "gram.y"
+case 362:
+#line 1911 "gram.y"
 { yyval.list = lcons(yyvsp[0].node, NIL); ;
     break;}
-case 362:
-#line 1897 "gram.y"
+case 363:
+#line 1912 "gram.y"
 { yyval.list = yyvsp[-1].list; ;
     break;}
-case 363:
-#line 1901 "gram.y"
+case 364:
+#line 1916 "gram.y"
 {  yyval.list = yyvsp[0].list; ;
     break;}
-case 364:
-#line 1903 "gram.y"
+case 365:
+#line 1918 "gram.y"
 { yyval.list = lcons(yyvsp[0].node, NIL); ;
     break;}
-case 365:
-#line 1907 "gram.y"
+case 366:
+#line 1922 "gram.y"
 {  yyval.list = lappend(yyvsp[-2].list, yyvsp[-1].node); ;
     break;}
-case 366:
-#line 1909 "gram.y"
+case 367:
+#line 1924 "gram.y"
 {  yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node); ;
     break;}
-case 367:
-#line 1911 "gram.y"
+case 368:
+#line 1926 "gram.y"
 { yyval.list = lcons(yyvsp[-1].node, NIL); ;
     break;}
-case 368:
-#line 1915 "gram.y"
+case 369:
+#line 1930 "gram.y"
 {
                                        yyval.attr = makeNode(Attr);
                                        yyval.attr->relname = yyvsp[-2].str;
@@ -6282,8 +6261,8 @@ case 368:
                                        yyval.attr->indirection = NIL;
                                ;
     break;}
-case 369:
-#line 1923 "gram.y"
+case 370:
+#line 1938 "gram.y"
 {
                                        yyval.attr = makeNode(Attr);
                                        yyval.attr->relname = yyvsp[0].str;
@@ -6292,64 +6271,56 @@ case 369:
                                        yyval.attr->indirection = NIL;
                                ;
     break;}
-case 370:
-#line 1933 "gram.y"
+case 371:
+#line 1948 "gram.y"
 { yyval.ival = CMD_SELECT; ;
     break;}
-case 371:
-#line 1934 "gram.y"
+case 372:
+#line 1949 "gram.y"
 { yyval.ival = CMD_UPDATE; ;
     break;}
-case 372:
-#line 1935 "gram.y"
+case 373:
+#line 1950 "gram.y"
 { yyval.ival = CMD_DELETE; ;
     break;}
-case 373:
-#line 1936 "gram.y"
+case 374:
+#line 1951 "gram.y"
 { yyval.ival = CMD_INSERT; ;
     break;}
-case 374:
-#line 1939 "gram.y"
+case 375:
+#line 1954 "gram.y"
 { yyval.boolean = TRUE; ;
     break;}
-case 375:
-#line 1940 "gram.y"
+case 376:
+#line 1955 "gram.y"
 { yyval.boolean = FALSE; ;
     break;}
-case 376:
-#line 1953 "gram.y"
+case 377:
+#line 1968 "gram.y"
 {
                                        NotifyStmt *n = makeNode(NotifyStmt);
                                        n->relname = yyvsp[0].str;
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 377:
-#line 1961 "gram.y"
+case 378:
+#line 1976 "gram.y"
 {
                                        ListenStmt *n = makeNode(ListenStmt);
                                        n->relname = yyvsp[0].str;
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 378:
-#line 1983 "gram.y"
-{
-                                       TransactionStmt *n = makeNode(TransactionStmt);
-                                       n->command = ABORT_TRANS;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
 case 379:
-#line 1989 "gram.y"
+#line 1998 "gram.y"
 {
                                        TransactionStmt *n = makeNode(TransactionStmt);
-                                       n->command = BEGIN_TRANS;
+                                       n->command = ABORT_TRANS;
                                        yyval.node = (Node *)n;
                                ;
     break;}
 case 380:
-#line 1995 "gram.y"
+#line 2004 "gram.y"
 {
                                        TransactionStmt *n = makeNode(TransactionStmt);
                                        n->command = BEGIN_TRANS;
@@ -6357,7 +6328,7 @@ case 380:
                                ;
     break;}
 case 381:
-#line 2001 "gram.y"
+#line 2010 "gram.y"
 {
                                        TransactionStmt *n = makeNode(TransactionStmt);
                                        n->command = END_TRANS;
@@ -6365,7 +6336,7 @@ case 381:
                                ;
     break;}
 case 382:
-#line 2007 "gram.y"
+#line 2016 "gram.y"
 {
                                        TransactionStmt *n = makeNode(TransactionStmt);
                                        n->command = END_TRANS;
@@ -6373,7 +6344,7 @@ case 382:
                                ;
     break;}
 case 383:
-#line 2013 "gram.y"
+#line 2022 "gram.y"
 {
                                        TransactionStmt *n = makeNode(TransactionStmt);
                                        n->command = ABORT_TRANS;
@@ -6381,47 +6352,19 @@ case 383:
                                ;
     break;}
 case 384:
-#line 2020 "gram.y"
-{
-                                       TransactionStmt *n = makeNode(TransactionStmt);
-                                       n->command = ABORT_TRANS;
-                                       yyval.node = (Node *)n;
-                               ;
+#line 2029 "gram.y"
+{ yyval.boolean = TRUE; ;
     break;}
 case 385:
-#line 2026 "gram.y"
-{
-                                       TransactionStmt *n = makeNode(TransactionStmt);
-                                       n->command = BEGIN_TRANS;
-                                       yyval.node = (Node *)n;
-                               ;
+#line 2030 "gram.y"
+{ yyval.boolean = TRUE; ;
     break;}
 case 386:
-#line 2032 "gram.y"
-{
-                                       TransactionStmt *n = makeNode(TransactionStmt);
-                                       n->command = END_TRANS;
-                                       yyval.node = (Node *)n;
-                               ;
+#line 2031 "gram.y"
+{ yyval.boolean = TRUE; ;
     break;}
 case 387:
-#line 2039 "gram.y"
-{
-                                       TransactionStmt *n = makeNode(TransactionStmt);
-                                       n->command = END_TRANS;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 388:
-#line 2045 "gram.y"
-{
-                                       TransactionStmt *n = makeNode(TransactionStmt);
-                                       n->command = ABORT_TRANS;
-                                       yyval.node = (Node *)n;
-                               ;
-    break;}
-case 389:
-#line 2061 "gram.y"
+#line 2043 "gram.y"
 {
                                        ViewStmt *n = makeNode(ViewStmt);
                                        n->viewname = yyvsp[-2].str;
@@ -6433,53 +6376,100 @@ case 389:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 390:
-#line 2082 "gram.y"
+case 388:
+#line 2064 "gram.y"
 {
                                        LoadStmt *n = makeNode(LoadStmt);
                                        n->filename = yyvsp[0].str;
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 391:
-#line 2098 "gram.y"
+case 389:
+#line 2080 "gram.y"
 {
                                        CreatedbStmt *n = makeNode(CreatedbStmt);
-                                       n->dbname = yyvsp[-1].str;
-                                       n->dbpath = yyvsp[0].str;
+                                       if (yyvsp[-1].str == NULL && yyvsp[0].str == NULL) {
+                                               elog(ERROR, "CREATE DATABASE WITH requires at least an option");
+                                       }
+                                       n->dbname = yyvsp[-3].str;
+                                       n->dbpath = yyvsp[-1].str;
+#ifdef MB
+                                       if (yyvsp[0].str != NULL) {
+                                               n->encoding = pg_char_to_encoding(yyvsp[0].str);
+                                               if (n->encoding < 0) {
+                                                       elog(ERROR, "invalid encoding name %s", yyvsp[0].str);
+                                               }
+                                       } else {
+                                               n->encoding = GetTemplateEncoding();
+                                       }
+#else
+                                       elog(ERROR, "WITH ENCODING is not supported");
+#endif
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 392:
-#line 2106 "gram.y"
+case 390:
+#line 2102 "gram.y"
+{
+                                       CreatedbStmt *n = makeNode(CreatedbStmt);
+                                       n->dbname = yyvsp[0].str;
+                                       n->dbpath = NULL;
+#ifdef MB
+                                       n->encoding = GetTemplateEncoding();
+#endif
+                                       yyval.node = (Node *)n;
+                               ;
+    break;}
+case 391:
+#line 2113 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 393:
-#line 2107 "gram.y"
+case 392:
+#line 2114 "gram.y"
 { yyval.str = NULL; ;
     break;}
-case 394:
-#line 2110 "gram.y"
+case 393:
+#line 2117 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 395:
-#line 2111 "gram.y"
+case 394:
+#line 2118 "gram.y"
 { yyval.str = NULL; ;
     break;}
+case 395:
+#line 2121 "gram.y"
+{ yyval.str = yyvsp[0].str; ;
+    break;}
 case 396:
-#line 2112 "gram.y"
+#line 2122 "gram.y"
 { yyval.str = NULL; ;
     break;}
 case 397:
 #line 2123 "gram.y"
+{ yyval.str = NULL; ;
+    break;}
+case 398:
+#line 2126 "gram.y"
+{ yyval.str = yyvsp[0].str; ;
+    break;}
+case 399:
+#line 2127 "gram.y"
+{ yyval.str = NULL; ;
+    break;}
+case 400:
+#line 2128 "gram.y"
+{ yyval.str = NULL; ;
+    break;}
+case 401:
+#line 2139 "gram.y"
 {
                                        DestroydbStmt *n = makeNode(DestroydbStmt);
                                        n->dbname = yyvsp[0].str;
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 398:
-#line 2139 "gram.y"
+case 402:
+#line 2155 "gram.y"
 {
                                   ClusterStmt *n = makeNode(ClusterStmt);
                                   n->relname = yyvsp[0].str;
@@ -6487,8 +6477,8 @@ case 398:
                                   yyval.node = (Node*)n;
                                ;
     break;}
-case 399:
-#line 2156 "gram.y"
+case 403:
+#line 2172 "gram.y"
 {
                                        VacuumStmt *n = makeNode(VacuumStmt);
                                        n->verbose = yyvsp[-1].boolean;
@@ -6498,8 +6488,8 @@ case 399:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 400:
-#line 2165 "gram.y"
+case 404:
+#line 2181 "gram.y"
 {
                                        VacuumStmt *n = makeNode(VacuumStmt);
                                        n->verbose = yyvsp[-3].boolean;
@@ -6511,40 +6501,40 @@ case 400:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 401:
-#line 2177 "gram.y"
+case 405:
+#line 2193 "gram.y"
 { yyval.boolean = TRUE; ;
     break;}
-case 402:
-#line 2178 "gram.y"
+case 406:
+#line 2194 "gram.y"
 { yyval.boolean = FALSE; ;
     break;}
-case 403:
-#line 2181 "gram.y"
+case 407:
+#line 2197 "gram.y"
 { yyval.boolean = TRUE; ;
     break;}
-case 404:
-#line 2182 "gram.y"
+case 408:
+#line 2198 "gram.y"
 { yyval.boolean = FALSE; ;
     break;}
-case 405:
-#line 2185 "gram.y"
+case 409:
+#line 2201 "gram.y"
 { yyval.list = yyvsp[-1].list; ;
     break;}
-case 406:
-#line 2186 "gram.y"
+case 410:
+#line 2202 "gram.y"
 { yyval.list = NIL; ;
     break;}
-case 407:
-#line 2190 "gram.y"
+case 411:
+#line 2206 "gram.y"
 { yyval.list=lcons(yyvsp[0].str,NIL); ;
     break;}
-case 408:
-#line 2192 "gram.y"
+case 412:
+#line 2208 "gram.y"
 { yyval.list=lappend(yyvsp[-2].list,yyvsp[0].str); ;
     break;}
-case 409:
-#line 2204 "gram.y"
+case 413:
+#line 2220 "gram.y"
 {
                                        ExplainStmt *n = makeNode(ExplainStmt);
                                        n->verbose = yyvsp[-1].boolean;
@@ -6552,16 +6542,16 @@ case 409:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 416:
-#line 2241 "gram.y"
+case 420:
+#line 2257 "gram.y"
 {
                                        yyvsp[0].astmt->relname = yyvsp[-2].str;
                                        yyvsp[0].astmt->cols = yyvsp[-1].list;
                                        yyval.node = (Node *)yyvsp[0].astmt;
                                ;
     break;}
-case 417:
-#line 2249 "gram.y"
+case 421:
+#line 2265 "gram.y"
 {
                                        yyval.astmt = makeNode(InsertStmt);
                                        yyval.astmt->unique = NULL;
@@ -6573,8 +6563,8 @@ case 417:
                                        yyval.astmt->unionClause = NIL;
                                ;
     break;}
-case 418:
-#line 2263 "gram.y"
+case 422:
+#line 2279 "gram.y"
 {
                                        yyval.astmt = makeNode(InsertStmt);
                                        yyval.astmt->unique = yyvsp[-6].str;
@@ -6586,24 +6576,24 @@ case 418:
                                        yyval.astmt->unionClause = yyvsp[0].list;
                                ;
     break;}
-case 419:
-#line 2275 "gram.y"
+case 423:
+#line 2291 "gram.y"
 { yyval.list = yyvsp[-1].list; ;
     break;}
-case 420:
-#line 2276 "gram.y"
+case 424:
+#line 2292 "gram.y"
 { yyval.list = NIL; ;
     break;}
-case 421:
-#line 2281 "gram.y"
+case 425:
+#line 2297 "gram.y"
 { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ;
     break;}
-case 422:
-#line 2283 "gram.y"
+case 426:
+#line 2299 "gram.y"
 { yyval.list = lcons(yyvsp[0].node, NIL); ;
     break;}
-case 423:
-#line 2287 "gram.y"
+case 427:
+#line 2303 "gram.y"
 {
                                        Ident *id = makeNode(Ident);
                                        id->name = yyvsp[-1].str;
@@ -6611,8 +6601,8 @@ case 423:
                                        yyval.node = (Node *)id;
                                ;
     break;}
-case 424:
-#line 2305 "gram.y"
+case 428:
+#line 2321 "gram.y"
 {
                                        DeleteStmt *n = makeNode(DeleteStmt);
                                        n->relname = yyvsp[-1].str;
@@ -6620,8 +6610,8 @@ case 424:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 425:
-#line 2319 "gram.y"
+case 429:
+#line 2335 "gram.y"
 {
                                        DeleteStmt *n = makeNode(DeleteStmt);
                                        A_Const *c = makeNode(A_Const);
@@ -6637,8 +6627,8 @@ case 425:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 426:
-#line 2347 "gram.y"
+case 430:
+#line 2363 "gram.y"
 {
                                        UpdateStmt *n = makeNode(UpdateStmt);
                                        n->relname = yyvsp[-4].str;
@@ -6648,8 +6638,8 @@ case 426:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 427:
-#line 2369 "gram.y"
+case 431:
+#line 2385 "gram.y"
 {
                                        SelectStmt *n = makeNode(SelectStmt);
 
@@ -6677,8 +6667,8 @@ case 427:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 428:
-#line 2409 "gram.y"
+case 432:
+#line 2425 "gram.y"
 {
                                        SelectStmt *n = makeNode(SelectStmt);
                                        n->unique = yyvsp[-8].str;
@@ -6693,103 +6683,116 @@ case 428:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 429:
-#line 2425 "gram.y"
+case 433:
+#line 2444 "gram.y"
+{
+                                       SelectStmt *n = makeNode(SelectStmt);
+                                       n->unique = yyvsp[-6].str;
+                                       n->targetList = yyvsp[-5].list;
+                                       n->fromClause = yyvsp[-4].list;
+                                       n->whereClause = yyvsp[-3].node;
+                                       n->groupClause = yyvsp[-2].list;
+                                       n->havingClause = yyvsp[-1].node;
+                                       n->unionClause = yyvsp[0].list;
+                                       yyval.node = (Node *)n;
+                               ;
+    break;}
+case 434:
+#line 2458 "gram.y"
 {
                                        SelectStmt *n = (SelectStmt *)lfirst(yyvsp[0].list);
                                        n->unionall = yyvsp[-1].boolean;
                                        yyval.list = yyvsp[0].list;
                                ;
     break;}
-case 430:
-#line 2431 "gram.y"
+case 435:
+#line 2464 "gram.y"
 { yyval.list = NIL; ;
     break;}
-case 431:
-#line 2435 "gram.y"
+case 436:
+#line 2468 "gram.y"
 {
                                        SelectStmt *n = (SelectStmt *)yyvsp[0].node;
                                        n->unionall = yyvsp[-1].boolean;
                                        yyval.list = lappend(yyvsp[-3].list, yyvsp[0].node);
                                ;
     break;}
-case 432:
-#line 2441 "gram.y"
+case 437:
+#line 2474 "gram.y"
 { yyval.list = lcons(yyvsp[0].node, NIL); ;
     break;}
-case 433:
-#line 2448 "gram.y"
+case 438:
+#line 2480 "gram.y"
 {
                                        SelectStmt *n = makeNode(SelectStmt);
-                                       n->unique = yyvsp[-6].str;
+                                       n->unique = yyvsp[-5].str;
                                        n->unionall = FALSE;
-                                       n->targetList = yyvsp[-5].list;
-                                       n->fromClause = yyvsp[-4].list;
-                                       n->whereClause = yyvsp[-3].node;
-                                       n->groupClause = yyvsp[-2].list;
-                                       n->havingClause = yyvsp[-1].node;
-                                       n->unionClause = yyvsp[0].list;
+                                       n->targetList = yyvsp[-4].list;
+                                       n->fromClause = yyvsp[-3].list;
+                                       n->whereClause = yyvsp[-2].node;
+                                       n->groupClause = yyvsp[-1].list;
+                                       n->havingClause = yyvsp[0].node;
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 434:
-#line 2462 "gram.y"
+case 439:
+#line 2493 "gram.y"
 { yyval.str= yyvsp[0].str; ;
     break;}
-case 435:
-#line 2463 "gram.y"
+case 440:
+#line 2494 "gram.y"
 { yyval.str = NULL; ;
     break;}
-case 436:
-#line 2466 "gram.y"
+case 441:
+#line 2497 "gram.y"
 { yyval.boolean = TRUE; ;
     break;}
-case 437:
-#line 2467 "gram.y"
+case 442:
+#line 2498 "gram.y"
 { yyval.boolean = FALSE; ;
     break;}
-case 438:
-#line 2470 "gram.y"
+case 443:
+#line 2501 "gram.y"
 { yyval.boolean = TRUE; ;
     break;}
-case 439:
-#line 2471 "gram.y"
+case 444:
+#line 2502 "gram.y"
 { yyval.boolean = FALSE; ;
     break;}
-case 440:
-#line 2474 "gram.y"
+case 445:
+#line 2505 "gram.y"
 { yyval.str = "*"; ;
     break;}
-case 441:
-#line 2475 "gram.y"
+case 446:
+#line 2506 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 442:
-#line 2476 "gram.y"
+case 447:
+#line 2507 "gram.y"
 { yyval.str = NULL; ;
     break;}
-case 443:
-#line 2477 "gram.y"
+case 448:
+#line 2508 "gram.y"
 { yyval.str = NULL; ;
     break;}
-case 444:
-#line 2480 "gram.y"
+case 449:
+#line 2511 "gram.y"
 { yyval.list = yyvsp[0].list; ;
     break;}
-case 445:
-#line 2481 "gram.y"
+case 450:
+#line 2512 "gram.y"
 { yyval.list = NIL; ;
     break;}
-case 446:
-#line 2484 "gram.y"
+case 451:
+#line 2515 "gram.y"
 { yyval.list = lcons(yyvsp[0].sortgroupby, NIL); ;
     break;}
-case 447:
-#line 2485 "gram.y"
+case 452:
+#line 2516 "gram.y"
 { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].sortgroupby); ;
     break;}
-case 448:
-#line 2489 "gram.y"
+case 453:
+#line 2520 "gram.y"
 {
                                        yyval.sortgroupby = makeNode(SortGroupBy);
                                        yyval.sortgroupby->resno = 0;
@@ -6798,8 +6801,8 @@ case 448:
                                        yyval.sortgroupby->useOp = yyvsp[0].str;
                                ;
     break;}
-case 449:
-#line 2497 "gram.y"
+case 454:
+#line 2528 "gram.y"
 {
                                        yyval.sortgroupby = makeNode(SortGroupBy);
                                        yyval.sortgroupby->resno = 0;
@@ -6808,8 +6811,8 @@ case 449:
                                        yyval.sortgroupby->useOp = yyvsp[0].str;
                                ;
     break;}
-case 450:
-#line 2505 "gram.y"
+case 455:
+#line 2536 "gram.y"
 {
                                        yyval.sortgroupby = makeNode(SortGroupBy);
                                        yyval.sortgroupby->resno = yyvsp[-1].ival;
@@ -6818,64 +6821,64 @@ case 450:
                                        yyval.sortgroupby->useOp = yyvsp[0].str;
                                ;
     break;}
-case 451:
-#line 2514 "gram.y"
+case 456:
+#line 2545 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 452:
-#line 2515 "gram.y"
+case 457:
+#line 2546 "gram.y"
 { yyval.str = "<"; ;
     break;}
-case 453:
-#line 2516 "gram.y"
+case 458:
+#line 2547 "gram.y"
 { yyval.str = ">"; ;
     break;}
-case 454:
-#line 2517 "gram.y"
+case 459:
+#line 2548 "gram.y"
 { yyval.str = "<"; ;
     break;}
-case 455:
-#line 2518 "gram.y"
+case 460:
+#line 2549 "gram.y"
 { yyval.str = ">"; ;
     break;}
-case 456:
-#line 2519 "gram.y"
+case 461:
+#line 2550 "gram.y"
 { yyval.str = "<"; /*default*/ ;
     break;}
-case 457:
-#line 2529 "gram.y"
+case 462:
+#line 2560 "gram.y"
 { yyval.boolean = TRUE; ;
     break;}
-case 458:
-#line 2530 "gram.y"
+case 463:
+#line 2561 "gram.y"
 { yyval.boolean = FALSE; ;
     break;}
-case 460:
-#line 2536 "gram.y"
+case 465:
+#line 2567 "gram.y"
 {      yyval.list = lcons(makeString(yyvsp[0].str),NIL); ;
     break;}
-case 461:
-#line 2538 "gram.y"
+case 466:
+#line 2569 "gram.y"
 {      yyval.list = lappend(yyvsp[-2].list,makeString(yyvsp[0].str)); ;
     break;}
-case 462:
-#line 2541 "gram.y"
+case 467:
+#line 2572 "gram.y"
 { yyval.list = yyvsp[0].list; ;
     break;}
-case 463:
-#line 2542 "gram.y"
+case 468:
+#line 2573 "gram.y"
 { yyval.list = NIL; ;
     break;}
-case 464:
-#line 2545 "gram.y"
+case 469:
+#line 2576 "gram.y"
 { yyval.list = lcons(yyvsp[0].sortgroupby, NIL); ;
     break;}
-case 465:
-#line 2546 "gram.y"
+case 470:
+#line 2577 "gram.y"
 { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].sortgroupby); ;
     break;}
-case 466:
-#line 2550 "gram.y"
+case 471:
+#line 2581 "gram.y"
 {
                                        yyval.sortgroupby = makeNode(SortGroupBy);
                                        yyval.sortgroupby->resno = 0;
@@ -6884,8 +6887,8 @@ case 466:
                                        yyval.sortgroupby->useOp = NULL;
                                ;
     break;}
-case 467:
-#line 2558 "gram.y"
+case 472:
+#line 2589 "gram.y"
 {
                                        yyval.sortgroupby = makeNode(SortGroupBy);
                                        yyval.sortgroupby->resno = 0;
@@ -6894,8 +6897,8 @@ case 467:
                                        yyval.sortgroupby->useOp = NULL;
                                ;
     break;}
-case 468:
-#line 2566 "gram.y"
+case 473:
+#line 2597 "gram.y"
 {
                                        yyval.sortgroupby = makeNode(SortGroupBy);
                                        yyval.sortgroupby->resno = yyvsp[0].ival;
@@ -6904,129 +6907,129 @@ case 468:
                                        yyval.sortgroupby->useOp = NULL;
                                ;
     break;}
-case 469:
-#line 2576 "gram.y"
+case 474:
+#line 2607 "gram.y"
 {
                                        yyval.node = yyvsp[0].node;
                                ;
     break;}
-case 470:
-#line 2579 "gram.y"
+case 475:
+#line 2610 "gram.y"
 { yyval.node = NULL; ;
     break;}
-case 471:
-#line 2592 "gram.y"
+case 476:
+#line 2623 "gram.y"
 {
                                        yyval.list = NIL;
                                        elog(ERROR,"JOIN not yet implemented");
                                ;
     break;}
-case 472:
-#line 2596 "gram.y"
+case 477:
+#line 2627 "gram.y"
 { yyval.list = yyvsp[0].list; ;
     break;}
-case 473:
-#line 2597 "gram.y"
+case 478:
+#line 2628 "gram.y"
 { yyval.list = NIL; ;
     break;}
-case 474:
-#line 2601 "gram.y"
+case 479:
+#line 2632 "gram.y"
 { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].range); ;
     break;}
-case 475:
-#line 2603 "gram.y"
+case 480:
+#line 2634 "gram.y"
 { elog(ERROR,"CROSS JOIN not yet implemented"); ;
     break;}
-case 476:
-#line 2605 "gram.y"
+case 481:
+#line 2636 "gram.y"
 { yyval.list = lcons(yyvsp[0].range, NIL); ;
     break;}
-case 477:
-#line 2609 "gram.y"
+case 482:
+#line 2640 "gram.y"
 {
                                        yyval.range = makeNode(RangeVar);
                                        yyval.range->relExpr = yyvsp[-2].relexp;
                                        yyval.range->name = yyvsp[0].str;
                                ;
     break;}
-case 478:
-#line 2615 "gram.y"
+case 483:
+#line 2646 "gram.y"
 {
                                        yyval.range = makeNode(RangeVar);
                                        yyval.range->relExpr = yyvsp[-1].relexp;
                                        yyval.range->name = yyvsp[0].str;
                                ;
     break;}
-case 479:
-#line 2621 "gram.y"
+case 484:
+#line 2652 "gram.y"
 {
                                        yyval.range = makeNode(RangeVar);
                                        yyval.range->relExpr = yyvsp[0].relexp;
                                        yyval.range->name = NULL;
                                ;
     break;}
-case 480:
-#line 2628 "gram.y"
+case 485:
+#line 2659 "gram.y"
 { yyval.str = NULL; ;
     break;}
-case 481:
-#line 2630 "gram.y"
+case 486:
+#line 2661 "gram.y"
 { elog(ERROR,"FULL OUTER JOIN not yet implemented"); ;
     break;}
-case 482:
-#line 2632 "gram.y"
+case 487:
+#line 2663 "gram.y"
 { elog(ERROR,"LEFT OUTER JOIN not yet implemented"); ;
     break;}
-case 483:
-#line 2634 "gram.y"
+case 488:
+#line 2665 "gram.y"
 { elog(ERROR,"RIGHT OUTER JOIN not yet implemented"); ;
     break;}
-case 484:
-#line 2636 "gram.y"
+case 489:
+#line 2667 "gram.y"
 { elog(ERROR,"OUTER JOIN not yet implemented"); ;
     break;}
-case 485:
-#line 2638 "gram.y"
+case 490:
+#line 2669 "gram.y"
 { elog(ERROR,"INNER JOIN not yet implemented"); ;
     break;}
-case 486:
-#line 2640 "gram.y"
+case 491:
+#line 2671 "gram.y"
 { elog(ERROR,"UNION JOIN not yet implemented"); ;
     break;}
-case 487:
-#line 2642 "gram.y"
+case 492:
+#line 2673 "gram.y"
 { elog(ERROR,"INNER JOIN not yet implemented"); ;
     break;}
-case 488:
-#line 2645 "gram.y"
+case 493:
+#line 2676 "gram.y"
 { yyval.str = NULL; ;
     break;}
-case 489:
-#line 2646 "gram.y"
+case 494:
+#line 2677 "gram.y"
 { yyval.str = NULL;  /* no qualifiers */ ;
     break;}
-case 490:
-#line 2649 "gram.y"
+case 495:
+#line 2680 "gram.y"
 { yyval.str = NULL; ;
     break;}
-case 491:
-#line 2650 "gram.y"
+case 496:
+#line 2681 "gram.y"
 { yyval.str = NULL; ;
     break;}
-case 492:
-#line 2651 "gram.y"
+case 497:
+#line 2682 "gram.y"
 { yyval.str = NULL;  /* no qualifiers */ ;
     break;}
-case 493:
-#line 2654 "gram.y"
+case 498:
+#line 2685 "gram.y"
 { yyval.list = lcons(yyvsp[0].sortgroupby, NIL); ;
     break;}
-case 494:
-#line 2655 "gram.y"
+case 499:
+#line 2686 "gram.y"
 { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].sortgroupby); ;
     break;}
-case 495:
-#line 2659 "gram.y"
+case 500:
+#line 2690 "gram.y"
 {
                                        yyval.sortgroupby = makeNode(SortGroupBy);
                                        yyval.sortgroupby->resno = 0;
@@ -7035,8 +7038,8 @@ case 495:
                                        yyval.sortgroupby->useOp = NULL;
                                ;
     break;}
-case 496:
-#line 2667 "gram.y"
+case 501:
+#line 2698 "gram.y"
 {
                                        yyval.sortgroupby = makeNode(SortGroupBy);
                                        yyval.sortgroupby->resno = 0;
@@ -7045,8 +7048,8 @@ case 496:
                                        yyval.sortgroupby->useOp = NULL;
                                ;
     break;}
-case 497:
-#line 2675 "gram.y"
+case 502:
+#line 2706 "gram.y"
 {
                                        yyval.sortgroupby = makeNode(SortGroupBy);
                                        yyval.sortgroupby->resno = yyvsp[0].ival;
@@ -7055,16 +7058,16 @@ case 497:
                                        yyval.sortgroupby->useOp = NULL;
                                ;
     break;}
-case 498:
-#line 2684 "gram.y"
+case 503:
+#line 2715 "gram.y"
 { yyval.node = yyvsp[0].node; ;
     break;}
-case 499:
-#line 2685 "gram.y"
+case 504:
+#line 2716 "gram.y"
 { yyval.node = NULL;  /* no qualifiers */ ;
     break;}
-case 500:
-#line 2689 "gram.y"
+case 505:
+#line 2720 "gram.y"
 {
                                        /* normal relations */
                                        yyval.relexp = makeNode(RelExpr);
@@ -7072,8 +7075,8 @@ case 500:
                                        yyval.relexp->inh = FALSE;
                                ;
     break;}
-case 501:
-#line 2696 "gram.y"
+case 506:
+#line 2727 "gram.y"
 {
                                        /* inheritance query */
                                        yyval.relexp = makeNode(RelExpr);
@@ -7081,32 +7084,32 @@ case 501:
                                        yyval.relexp->inh = TRUE;
                                ;
     break;}
-case 502:
-#line 2704 "gram.y"
+case 507:
+#line 2735 "gram.y"
 {  yyval.list = lcons(makeInteger(-1), yyvsp[0].list); ;
     break;}
-case 503:
-#line 2706 "gram.y"
+case 508:
+#line 2737 "gram.y"
 {  yyval.list = lcons(makeInteger(yyvsp[-2].ival), yyvsp[0].list); ;
     break;}
-case 504:
-#line 2708 "gram.y"
+case 509:
+#line 2739 "gram.y"
 {  yyval.list = NIL; ;
     break;}
-case 505:
-#line 2712 "gram.y"
+case 510:
+#line 2743 "gram.y"
 {  yyval.list = lcons(makeInteger(-1), yyvsp[0].list); ;
     break;}
-case 506:
-#line 2714 "gram.y"
+case 511:
+#line 2745 "gram.y"
 {  yyval.list = lcons(makeInteger(yyvsp[-2].ival), yyvsp[0].list); ;
     break;}
-case 507:
-#line 2716 "gram.y"
+case 512:
+#line 2747 "gram.y"
 {  yyval.list = NIL; ;
     break;}
-case 508:
-#line 2731 "gram.y"
+case 513:
+#line 2762 "gram.y"
 {
                                        yyval.typnam = yyvsp[-1].typnam;
                                        yyval.typnam->arrayBounds = yyvsp[0].list;
@@ -7129,78 +7132,78 @@ case 508:
                                                yyval.typnam->setof = FALSE;
                                ;
     break;}
-case 510:
-#line 2754 "gram.y"
+case 515:
+#line 2785 "gram.y"
 {
                                        yyval.typnam = yyvsp[0].typnam;
                                        yyval.typnam->setof = TRUE;
                                ;
     break;}
-case 514:
-#line 2766 "gram.y"
+case 519:
+#line 2797 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        yyval.typnam->name = xlateSqlType(yyvsp[0].str);
                                        yyval.typnam->typmod = -1;
                                ;
     break;}
-case 515:
-#line 2773 "gram.y"
+case 520:
+#line 2804 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 516:
-#line 2774 "gram.y"
+case 521:
+#line 2805 "gram.y"
 { yyval.str = xlateSqlType("type"); ;
     break;}
-case 517:
-#line 2784 "gram.y"
+case 522:
+#line 2815 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        yyval.typnam->name = xlateSqlType(yyvsp[0].str);
                                        yyval.typnam->typmod = -1;
                                ;
     break;}
-case 518:
-#line 2790 "gram.y"
+case 523:
+#line 2821 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        yyval.typnam->name = xlateSqlType("float");
                                ;
     break;}
-case 519:
-#line 2795 "gram.y"
+case 524:
+#line 2826 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        yyval.typnam->name = xlateSqlType("integer");
                                        yyval.typnam->typmod = -1;
                                ;
     break;}
-case 520:
-#line 2801 "gram.y"
+case 525:
+#line 2832 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        yyval.typnam->name = xlateSqlType("integer");
                                        yyval.typnam->typmod = -1;
                                ;
     break;}
-case 521:
-#line 2809 "gram.y"
+case 526:
+#line 2840 "gram.y"
 {      yyval.str = xlateSqlType("float8"); ;
     break;}
-case 522:
-#line 2811 "gram.y"
+case 527:
+#line 2842 "gram.y"
 {      yyval.str = xlateSqlType("float8"); ;
     break;}
-case 523:
-#line 2813 "gram.y"
+case 528:
+#line 2844 "gram.y"
 {      yyval.str = xlateSqlType("decimal"); ;
     break;}
-case 524:
-#line 2815 "gram.y"
+case 529:
+#line 2846 "gram.y"
 {      yyval.str = xlateSqlType("numeric"); ;
     break;}
-case 525:
-#line 2819 "gram.y"
+case 530:
+#line 2850 "gram.y"
 {
                                        if (yyvsp[-1].ival < 1)
                                                elog(ERROR,"precision for FLOAT must be at least 1");
@@ -7212,14 +7215,14 @@ case 525:
                                                elog(ERROR,"precision for FLOAT must be less than 16");
                                ;
     break;}
-case 526:
-#line 2830 "gram.y"
+case 531:
+#line 2861 "gram.y"
 {
                                        yyval.str = xlateSqlType("float8");
                                ;
     break;}
-case 527:
-#line 2836 "gram.y"
+case 532:
+#line 2867 "gram.y"
 {
                                        if (yyvsp[-3].ival != 9)
                                                elog(ERROR,"NUMERIC precision %d must be 9",yyvsp[-3].ival);
@@ -7227,21 +7230,21 @@ case 527:
                                                elog(ERROR,"NUMERIC scale %d must be zero",yyvsp[-1].ival);
                                ;
     break;}
-case 528:
-#line 2843 "gram.y"
+case 533:
+#line 2874 "gram.y"
 {
                                        if (yyvsp[-1].ival != 9)
                                                elog(ERROR,"NUMERIC precision %d must be 9",yyvsp[-1].ival);
                                ;
     break;}
-case 529:
-#line 2848 "gram.y"
+case 534:
+#line 2879 "gram.y"
 {
                                        yyval.str = NULL;
                                ;
     break;}
-case 530:
-#line 2854 "gram.y"
+case 535:
+#line 2885 "gram.y"
 {
                                        if (yyvsp[-3].ival > 9)
                                                elog(ERROR,"DECIMAL precision %d exceeds implementation limit of 9",yyvsp[-3].ival);
@@ -7250,22 +7253,22 @@ case 530:
                                        yyval.str = NULL;
                                ;
     break;}
-case 531:
-#line 2862 "gram.y"
+case 536:
+#line 2893 "gram.y"
 {
                                        if (yyvsp[-1].ival > 9)
                                                elog(ERROR,"DECIMAL precision %d exceeds implementation limit of 9",yyvsp[-1].ival);
                                        yyval.str = NULL;
                                ;
     break;}
-case 532:
-#line 2868 "gram.y"
+case 537:
+#line 2899 "gram.y"
 {
                                        yyval.str = NULL;
                                ;
     break;}
-case 533:
-#line 2881 "gram.y"
+case 538:
+#line 2912 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        if (strcasecmp(yyvsp[-3].str, "char") == 0)
@@ -7293,8 +7296,8 @@ case 533:
                                        yyval.typnam->typmod = VARHDRSZ + yyvsp[-1].ival;
                                ;
     break;}
-case 534:
-#line 2908 "gram.y"
+case 539:
+#line 2939 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        /* Let's try to make all single-character types into bpchar(1)
@@ -7312,8 +7315,8 @@ case 534:
                                        }
                                ;
     break;}
-case 535:
-#line 2927 "gram.y"
+case 540:
+#line 2958 "gram.y"
 {
                                        char *type, *c;
                                        if ((yyvsp[-1].str == NULL) || (strcasecmp(yyvsp[-1].str, "sql_text") == 0)) {
@@ -7334,56 +7337,56 @@ case 535:
                                        yyval.str = type;
                                ;
     break;}
-case 536:
-#line 2946 "gram.y"
+case 541:
+#line 2977 "gram.y"
 { yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ;
     break;}
-case 537:
-#line 2947 "gram.y"
+case 542:
+#line 2978 "gram.y"
 { yyval.str = xlateSqlType("varchar"); ;
     break;}
-case 538:
-#line 2948 "gram.y"
+case 543:
+#line 2979 "gram.y"
 { yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ;
     break;}
-case 539:
-#line 2949 "gram.y"
+case 544:
+#line 2980 "gram.y"
 { yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ;
     break;}
-case 540:
-#line 2952 "gram.y"
+case 545:
+#line 2983 "gram.y"
 { yyval.boolean = TRUE; ;
     break;}
-case 541:
-#line 2953 "gram.y"
+case 546:
+#line 2984 "gram.y"
 { yyval.boolean = FALSE; ;
     break;}
-case 542:
-#line 2956 "gram.y"
+case 547:
+#line 2987 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 543:
-#line 2957 "gram.y"
+case 548:
+#line 2988 "gram.y"
 { yyval.str = NULL; ;
     break;}
-case 544:
-#line 2960 "gram.y"
+case 549:
+#line 2991 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 545:
-#line 2961 "gram.y"
+case 550:
+#line 2992 "gram.y"
 { yyval.str = NULL; ;
     break;}
-case 546:
-#line 2965 "gram.y"
+case 551:
+#line 2996 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        yyval.typnam->name = xlateSqlType(yyvsp[0].str);
                                        yyval.typnam->typmod = -1;
                                ;
     break;}
-case 547:
-#line 2971 "gram.y"
+case 552:
+#line 3002 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        yyval.typnam->name = xlateSqlType("timestamp");
@@ -7391,104 +7394,104 @@ case 547:
                                        yyval.typnam->typmod = -1;
                                ;
     break;}
-case 548:
-#line 2978 "gram.y"
+case 553:
+#line 3009 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        yyval.typnam->name = xlateSqlType("time");
                                        yyval.typnam->typmod = -1;
                                ;
     break;}
-case 549:
-#line 2984 "gram.y"
+case 554:
+#line 3015 "gram.y"
 {
                                        yyval.typnam = makeNode(TypeName);
                                        yyval.typnam->name = xlateSqlType("interval");
                                        yyval.typnam->typmod = -1;
                                ;
     break;}
-case 550:
-#line 2991 "gram.y"
+case 555:
+#line 3022 "gram.y"
 { yyval.str = "year"; ;
     break;}
-case 551:
-#line 2992 "gram.y"
+case 556:
+#line 3023 "gram.y"
 { yyval.str = "month"; ;
     break;}
-case 552:
-#line 2993 "gram.y"
+case 557:
+#line 3024 "gram.y"
 { yyval.str = "day"; ;
     break;}
-case 553:
-#line 2994 "gram.y"
+case 558:
+#line 3025 "gram.y"
 { yyval.str = "hour"; ;
     break;}
-case 554:
-#line 2995 "gram.y"
+case 559:
+#line 3026 "gram.y"
 { yyval.str = "minute"; ;
     break;}
-case 555:
-#line 2996 "gram.y"
+case 560:
+#line 3027 "gram.y"
 { yyval.str = "second"; ;
     break;}
-case 556:
-#line 2999 "gram.y"
+case 561:
+#line 3030 "gram.y"
 { yyval.boolean = TRUE; ;
     break;}
-case 557:
-#line 3000 "gram.y"
+case 562:
+#line 3031 "gram.y"
 { yyval.boolean = FALSE; ;
     break;}
-case 558:
-#line 3003 "gram.y"
+case 563:
+#line 3034 "gram.y"
 { yyval.list = lcons(yyvsp[0].str, NIL); ;
     break;}
-case 559:
-#line 3004 "gram.y"
+case 564:
+#line 3035 "gram.y"
 { yyval.list = NIL; ;
     break;}
-case 560:
-#line 3005 "gram.y"
+case 565:
+#line 3036 "gram.y"
 { yyval.list = NIL; ;
     break;}
-case 561:
-#line 3006 "gram.y"
+case 566:
+#line 3037 "gram.y"
 { yyval.list = NIL; ;
     break;}
-case 562:
-#line 3007 "gram.y"
+case 567:
+#line 3038 "gram.y"
 { yyval.list = NIL; ;
     break;}
-case 563:
-#line 3008 "gram.y"
+case 568:
+#line 3039 "gram.y"
 { yyval.list = NIL; ;
     break;}
-case 564:
-#line 3009 "gram.y"
+case 569:
+#line 3040 "gram.y"
 { yyval.list = NIL; ;
     break;}
-case 565:
-#line 3010 "gram.y"
+case 570:
+#line 3041 "gram.y"
 { yyval.list = NIL; ;
     break;}
-case 566:
-#line 3011 "gram.y"
+case 571:
+#line 3042 "gram.y"
 { yyval.list = NIL; ;
     break;}
-case 567:
-#line 3022 "gram.y"
+case 572:
+#line 3053 "gram.y"
 { yyval.node = yyvsp[0].node; ;
     break;}
-case 568:
-#line 3024 "gram.y"
+case 573:
+#line 3055 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_Null;
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 569:
-#line 3041 "gram.y"
+case 574:
+#line 3072 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-5].list;
@@ -7499,8 +7502,8 @@ case 569:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 570:
-#line 3051 "gram.y"
+case 575:
+#line 3082 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-6].list;
@@ -7511,8 +7514,8 @@ case 570:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 571:
-#line 3061 "gram.y"
+case 576:
+#line 3092 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-6].list;
@@ -7526,8 +7529,8 @@ case 571:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 572:
-#line 3074 "gram.y"
+case 577:
+#line 3105 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = yyvsp[-5].list;
@@ -7541,87 +7544,87 @@ case 572:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 573:
-#line 3087 "gram.y"
+case 578:
+#line 3118 "gram.y"
 {
                                        yyval.node = makeRowExpr(yyvsp[-3].str, yyvsp[-5].list, yyvsp[-1].list);
                                ;
     break;}
-case 574:
-#line 3093 "gram.y"
+case 579:
+#line 3124 "gram.y"
 {
                                        yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node);
                                ;
     break;}
-case 575:
-#line 3099 "gram.y"
+case 580:
+#line 3130 "gram.y"
 {
                                        yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node);
                                ;
     break;}
-case 576:
-#line 3103 "gram.y"
+case 581:
+#line 3134 "gram.y"
 {
                                        yyval.list = lcons(yyvsp[0].node, NIL);
                                ;
     break;}
-case 577:
-#line 3108 "gram.y"
+case 582:
+#line 3139 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 578:
-#line 3109 "gram.y"
+case 583:
+#line 3140 "gram.y"
 { yyval.str = "<"; ;
     break;}
-case 579:
-#line 3110 "gram.y"
+case 584:
+#line 3141 "gram.y"
 { yyval.str = "="; ;
     break;}
-case 580:
-#line 3111 "gram.y"
+case 585:
+#line 3142 "gram.y"
 { yyval.str = ">"; ;
     break;}
-case 581:
-#line 3112 "gram.y"
+case 586:
+#line 3143 "gram.y"
 { yyval.str = "+"; ;
     break;}
-case 582:
-#line 3113 "gram.y"
+case 587:
+#line 3144 "gram.y"
 { yyval.str = "-"; ;
     break;}
-case 583:
-#line 3114 "gram.y"
+case 588:
+#line 3145 "gram.y"
 { yyval.str = "*"; ;
     break;}
-case 584:
-#line 3115 "gram.y"
+case 589:
+#line 3146 "gram.y"
 { yyval.str = "/"; ;
     break;}
-case 585:
-#line 3118 "gram.y"
+case 590:
+#line 3149 "gram.y"
 { yyval.ival = ANY_SUBLINK; ;
     break;}
-case 586:
-#line 3119 "gram.y"
+case 591:
+#line 3150 "gram.y"
 { yyval.ival = ALL_SUBLINK; ;
     break;}
-case 587:
-#line 3131 "gram.y"
+case 592:
+#line 3162 "gram.y"
 {
                                        yyvsp[-1].attr->indirection = yyvsp[0].list;
                                        yyval.node = (Node *)yyvsp[-1].attr;
                                ;
     break;}
-case 588:
-#line 3136 "gram.y"
+case 593:
+#line 3167 "gram.y"
 {      yyval.node = yyvsp[0].node;  ;
     break;}
-case 589:
-#line 3138 "gram.y"
+case 594:
+#line 3169 "gram.y"
 {      yyval.node = yyvsp[0].node;  ;
     break;}
-case 590:
-#line 3140 "gram.y"
+case 595:
+#line 3171 "gram.y"
 {
                                        /* could be a column name or a relation_name */
                                        Ident *n = makeNode(Ident);
@@ -7630,52 +7633,52 @@ case 590:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 591:
-#line 3148 "gram.y"
+case 596:
+#line 3179 "gram.y"
 {      yyval.node = makeA_Expr(OP, "-", NULL, yyvsp[0].node); ;
     break;}
-case 592:
-#line 3150 "gram.y"
+case 597:
+#line 3181 "gram.y"
 {      yyval.node = makeA_Expr(OP, "+", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
-case 593:
-#line 3152 "gram.y"
+case 598:
+#line 3183 "gram.y"
 {      yyval.node = makeA_Expr(OP, "-", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
-case 594:
-#line 3154 "gram.y"
+case 599:
+#line 3185 "gram.y"
 {      yyval.node = makeA_Expr(OP, "/", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
-case 595:
-#line 3156 "gram.y"
+case 600:
+#line 3187 "gram.y"
 {      yyval.node = makeA_Expr(OP, "*", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
-case 596:
-#line 3158 "gram.y"
+case 601:
+#line 3189 "gram.y"
 {      yyval.node = makeA_Expr(OP, "<", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
-case 597:
-#line 3160 "gram.y"
+case 602:
+#line 3191 "gram.y"
 {      yyval.node = makeA_Expr(OP, ">", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
-case 598:
-#line 3162 "gram.y"
+case 603:
+#line 3193 "gram.y"
 {      yyval.node = makeA_Expr(OP, "=", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
-case 599:
-#line 3164 "gram.y"
+case 604:
+#line 3195 "gram.y"
 {      yyval.node = makeA_Expr(OP, ":", NULL, yyvsp[0].node); ;
     break;}
-case 600:
-#line 3166 "gram.y"
+case 605:
+#line 3197 "gram.y"
 {      yyval.node = makeA_Expr(OP, ";", NULL, yyvsp[0].node); ;
     break;}
-case 601:
-#line 3168 "gram.y"
+case 606:
+#line 3199 "gram.y"
 {      yyval.node = makeA_Expr(OP, "|", NULL, yyvsp[0].node); ;
     break;}
-case 602:
-#line 3170 "gram.y"
+case 607:
+#line 3201 "gram.y"
 {
                                        yyval.node = (Node *)yyvsp[-2].node;
                                        /* AexprConst can be either A_Const or ParamNo */
@@ -7692,8 +7695,8 @@ case 602:
                                        }
                                ;
     break;}
-case 603:
-#line 3186 "gram.y"
+case 608:
+#line 3217 "gram.y"
 {
                                        yyval.node = (Node *)yyvsp[-3].node;
                                        /* AexprConst can be either A_Const or ParamNo */
@@ -7710,32 +7713,32 @@ case 603:
                                        }
                                ;
     break;}
-case 604:
-#line 3202 "gram.y"
+case 609:
+#line 3233 "gram.y"
 {      yyval.node = yyvsp[-1].node; ;
     break;}
-case 605:
-#line 3204 "gram.y"
+case 610:
+#line 3235 "gram.y"
 {      yyval.node = makeIndexable(yyvsp[-1].str,yyvsp[-2].node,yyvsp[0].node); ;
     break;}
-case 606:
-#line 3206 "gram.y"
+case 611:
+#line 3237 "gram.y"
 {      yyval.node = makeIndexable("~~", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
-case 607:
-#line 3208 "gram.y"
+case 612:
+#line 3239 "gram.y"
 {      yyval.node = makeA_Expr(OP, "!~~", yyvsp[-3].node, yyvsp[0].node); ;
     break;}
-case 608:
-#line 3210 "gram.y"
+case 613:
+#line 3241 "gram.y"
 {      yyval.node = makeA_Expr(OP, yyvsp[-1].str, NULL, yyvsp[0].node); ;
     break;}
-case 609:
-#line 3212 "gram.y"
+case 614:
+#line 3243 "gram.y"
 {      yyval.node = makeA_Expr(OP, yyvsp[0].str, yyvsp[-1].node, NULL); ;
     break;}
-case 610:
-#line 3214 "gram.y"
+case 615:
+#line 3245 "gram.y"
 {
                                        /* cheap hack for aggregate (eg. count) */
                                        FuncCall *n = makeNode(FuncCall);
@@ -7748,8 +7751,8 @@ case 610:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 611:
-#line 3226 "gram.y"
+case 616:
+#line 3257 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = yyvsp[-2].str;
@@ -7757,8 +7760,8 @@ case 611:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 612:
-#line 3233 "gram.y"
+case 617:
+#line 3264 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = yyvsp[-3].str;
@@ -7766,8 +7769,8 @@ case 612:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 613:
-#line 3240 "gram.y"
+case 618:
+#line 3271 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        TypeName *t = makeNode(TypeName);
@@ -7783,8 +7786,8 @@ case 613:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 614:
-#line 3255 "gram.y"
+case 619:
+#line 3286 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        TypeName *t = makeNode(TypeName);
@@ -7800,8 +7803,8 @@ case 614:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 615:
-#line 3270 "gram.y"
+case 620:
+#line 3301 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        A_Const *s = makeNode(A_Const);
@@ -7824,8 +7827,8 @@ case 615:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 616:
-#line 3292 "gram.y"
+case 621:
+#line 3323 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        TypeName *t = makeNode(TypeName);
@@ -7841,8 +7844,8 @@ case 616:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 617:
-#line 3307 "gram.y"
+case 622:
+#line 3338 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        A_Const *s = makeNode(A_Const);
@@ -7865,8 +7868,8 @@ case 617:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 618:
-#line 3329 "gram.y"
+case 623:
+#line 3360 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "getpgusername";
@@ -7874,8 +7877,8 @@ case 618:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 619:
-#line 3336 "gram.y"
+case 624:
+#line 3367 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "getpgusername";
@@ -7883,8 +7886,8 @@ case 619:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 620:
-#line 3343 "gram.y"
+case 625:
+#line 3374 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = NIL;
@@ -7895,8 +7898,8 @@ case 620:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 621:
-#line 3353 "gram.y"
+case 626:
+#line 3384 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "date_part";
@@ -7904,8 +7907,8 @@ case 621:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 622:
-#line 3360 "gram.y"
+case 627:
+#line 3391 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "strpos";
@@ -7913,8 +7916,8 @@ case 622:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 623:
-#line 3367 "gram.y"
+case 628:
+#line 3398 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "substr";
@@ -7922,8 +7925,8 @@ case 623:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 624:
-#line 3375 "gram.y"
+case 629:
+#line 3406 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "btrim";
@@ -7931,8 +7934,8 @@ case 624:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 625:
-#line 3382 "gram.y"
+case 630:
+#line 3413 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "ltrim";
@@ -7940,8 +7943,8 @@ case 625:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 626:
-#line 3389 "gram.y"
+case 631:
+#line 3420 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "rtrim";
@@ -7949,8 +7952,8 @@ case 626:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 627:
-#line 3396 "gram.y"
+case 632:
+#line 3427 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "btrim";
@@ -7958,24 +7961,24 @@ case 627:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 628:
-#line 3403 "gram.y"
+case 633:
+#line 3434 "gram.y"
 {      yyval.node = makeA_Expr(ISNULL, NULL, yyvsp[-1].node, NULL); ;
     break;}
-case 629:
-#line 3405 "gram.y"
+case 634:
+#line 3436 "gram.y"
 {      yyval.node = makeA_Expr(ISNULL, NULL, yyvsp[-2].node, NULL); ;
     break;}
-case 630:
-#line 3407 "gram.y"
+case 635:
+#line 3438 "gram.y"
 {      yyval.node = makeA_Expr(NOTNULL, NULL, yyvsp[-1].node, NULL); ;
     break;}
-case 631:
-#line 3409 "gram.y"
+case 636:
+#line 3440 "gram.y"
 {      yyval.node = makeA_Expr(NOTNULL, NULL, yyvsp[-3].node, NULL); ;
     break;}
-case 632:
-#line 3416 "gram.y"
+case 637:
+#line 3447 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_String;
@@ -7986,8 +7989,8 @@ case 632:
                                        yyval.node = makeA_Expr(OP, "=", yyvsp[-2].node,(Node *)n);
                                ;
     break;}
-case 633:
-#line 3426 "gram.y"
+case 638:
+#line 3457 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_String;
@@ -7998,8 +8001,8 @@ case 633:
                                        yyval.node = makeA_Expr(OP, "=", yyvsp[-3].node,(Node *)n);
                                ;
     break;}
-case 634:
-#line 3436 "gram.y"
+case 639:
+#line 3467 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_String;
@@ -8010,8 +8013,8 @@ case 634:
                                        yyval.node = makeA_Expr(OP, "=", yyvsp[-2].node,(Node *)n);
                                ;
     break;}
-case 635:
-#line 3446 "gram.y"
+case 640:
+#line 3477 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_String;
@@ -8022,28 +8025,28 @@ case 635:
                                        yyval.node = makeA_Expr(OP, "=", yyvsp[-3].node,(Node *)n);
                                ;
     break;}
-case 636:
-#line 3456 "gram.y"
+case 641:
+#line 3487 "gram.y"
 {
                                        yyval.node = makeA_Expr(AND, NULL,
                                                makeA_Expr(OP, ">=", yyvsp[-4].node, yyvsp[-2].node),
                                                makeA_Expr(OP, "<=", yyvsp[-4].node, yyvsp[0].node));
                                ;
     break;}
-case 637:
-#line 3462 "gram.y"
+case 642:
+#line 3493 "gram.y"
 {
                                        yyval.node = makeA_Expr(OR, NULL,
                                                makeA_Expr(OP, "<", yyvsp[-5].node, yyvsp[-2].node),
                                                makeA_Expr(OP, ">", yyvsp[-5].node, yyvsp[0].node));
                                ;
     break;}
-case 638:
-#line 3467 "gram.y"
+case 643:
+#line 3498 "gram.y"
 { saved_In_Expr = lcons(yyvsp[-1].node,saved_In_Expr); ;
     break;}
-case 639:
-#line 3468 "gram.y"
+case 644:
+#line 3499 "gram.y"
 {
                                        saved_In_Expr = lnext(saved_In_Expr);
                                        if (nodeTag(yyvsp[-1].node) == T_SubLink)
@@ -8058,12 +8061,12 @@ case 639:
                                        else    yyval.node = yyvsp[-1].node;
                                ;
     break;}
-case 640:
-#line 3481 "gram.y"
+case 645:
+#line 3512 "gram.y"
 { saved_In_Expr = lcons(yyvsp[-2].node,saved_In_Expr); ;
     break;}
-case 641:
-#line 3482 "gram.y"
+case 646:
+#line 3513 "gram.y"
 {
                                        saved_In_Expr = lnext(saved_In_Expr);
                                        if (nodeTag(yyvsp[-1].node) == T_SubLink)
@@ -8078,8 +8081,8 @@ case 641:
                                        else    yyval.node = yyvsp[-1].node;
                                ;
     break;}
-case 642:
-#line 3496 "gram.y"
+case 647:
+#line 3527 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-4].node, NULL);
@@ -8090,8 +8093,8 @@ case 642:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 643:
-#line 3506 "gram.y"
+case 648:
+#line 3537 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-4].node, NULL);
@@ -8102,8 +8105,8 @@ case 643:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 644:
-#line 3516 "gram.y"
+case 649:
+#line 3547 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-4].node, NULL);
@@ -8114,8 +8117,8 @@ case 644:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 645:
-#line 3526 "gram.y"
+case 650:
+#line 3557 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-4].node, NULL);
@@ -8126,8 +8129,8 @@ case 645:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 646:
-#line 3536 "gram.y"
+case 651:
+#line 3567 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-4].node, NULL);
@@ -8138,8 +8141,8 @@ case 646:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 647:
-#line 3546 "gram.y"
+case 652:
+#line 3577 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-4].node, NULL);
@@ -8150,8 +8153,8 @@ case 647:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 648:
-#line 3556 "gram.y"
+case 653:
+#line 3587 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-4].node, NULL);
@@ -8162,8 +8165,8 @@ case 648:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 649:
-#line 3566 "gram.y"
+case 654:
+#line 3597 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-4].node, NULL);
@@ -8174,8 +8177,8 @@ case 649:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 650:
-#line 3576 "gram.y"
+case 655:
+#line 3607 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node,NIL);
@@ -8186,8 +8189,8 @@ case 650:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 651:
-#line 3586 "gram.y"
+case 656:
+#line 3617 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node,NIL);
@@ -8198,8 +8201,8 @@ case 651:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 652:
-#line 3596 "gram.y"
+case 657:
+#line 3627 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node,NIL);
@@ -8210,8 +8213,8 @@ case 652:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 653:
-#line 3606 "gram.y"
+case 658:
+#line 3637 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node,NIL);
@@ -8222,8 +8225,8 @@ case 653:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 654:
-#line 3616 "gram.y"
+case 659:
+#line 3647 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node,NIL);
@@ -8234,8 +8237,8 @@ case 654:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 655:
-#line 3626 "gram.y"
+case 660:
+#line 3657 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node,NIL);
@@ -8246,8 +8249,8 @@ case 655:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 656:
-#line 3636 "gram.y"
+case 661:
+#line 3667 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node,NIL);
@@ -8258,8 +8261,8 @@ case 656:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 657:
-#line 3646 "gram.y"
+case 662:
+#line 3677 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node,NIL);
@@ -8270,8 +8273,8 @@ case 657:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 658:
-#line 3656 "gram.y"
+case 663:
+#line 3687 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node, NULL);
@@ -8282,8 +8285,8 @@ case 658:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 659:
-#line 3666 "gram.y"
+case 664:
+#line 3697 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node, NULL);
@@ -8294,8 +8297,8 @@ case 659:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 660:
-#line 3676 "gram.y"
+case 665:
+#line 3707 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node, NULL);
@@ -8306,8 +8309,8 @@ case 660:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 661:
-#line 3686 "gram.y"
+case 666:
+#line 3717 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node, NULL);
@@ -8318,8 +8321,8 @@ case 661:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 662:
-#line 3696 "gram.y"
+case 667:
+#line 3727 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node, NULL);
@@ -8330,8 +8333,8 @@ case 662:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 663:
-#line 3706 "gram.y"
+case 668:
+#line 3737 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node, NULL);
@@ -8342,8 +8345,8 @@ case 663:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 664:
-#line 3716 "gram.y"
+case 669:
+#line 3747 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node, NULL);
@@ -8354,8 +8357,8 @@ case 664:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 665:
-#line 3726 "gram.y"
+case 670:
+#line 3757 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->lefthand = lcons(yyvsp[-5].node, NULL);
@@ -8366,31 +8369,31 @@ case 665:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 666:
-#line 3736 "gram.y"
+case 671:
+#line 3767 "gram.y"
 {      yyval.node = makeA_Expr(AND, NULL, yyvsp[-2].node, yyvsp[0].node); ;
     break;}
-case 667:
-#line 3738 "gram.y"
+case 672:
+#line 3769 "gram.y"
 {      yyval.node = makeA_Expr(OR, NULL, yyvsp[-2].node, yyvsp[0].node); ;
     break;}
-case 668:
-#line 3740 "gram.y"
+case 673:
+#line 3771 "gram.y"
 {      yyval.node = makeA_Expr(NOT, NULL, NULL, yyvsp[0].node); ;
     break;}
-case 669:
-#line 3750 "gram.y"
+case 674:
+#line 3781 "gram.y"
 {
                                        yyvsp[-1].attr->indirection = yyvsp[0].list;
                                        yyval.node = (Node *)yyvsp[-1].attr;
                                ;
     break;}
-case 670:
-#line 3755 "gram.y"
+case 675:
+#line 3786 "gram.y"
 {      yyval.node = yyvsp[0].node;  ;
     break;}
-case 671:
-#line 3757 "gram.y"
+case 676:
+#line 3788 "gram.y"
 {
                                        /* could be a column name or a relation_name */
                                        Ident *n = makeNode(Ident);
@@ -8399,40 +8402,40 @@ case 671:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 672:
-#line 3765 "gram.y"
+case 677:
+#line 3796 "gram.y"
 {      yyval.node = makeA_Expr(OP, "-", NULL, yyvsp[0].node); ;
     break;}
-case 673:
-#line 3767 "gram.y"
+case 678:
+#line 3798 "gram.y"
 {      yyval.node = makeA_Expr(OP, "+", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
-case 674:
-#line 3769 "gram.y"
+case 679:
+#line 3800 "gram.y"
 {      yyval.node = makeA_Expr(OP, "-", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
-case 675:
-#line 3771 "gram.y"
+case 680:
+#line 3802 "gram.y"
 {      yyval.node = makeA_Expr(OP, "/", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
-case 676:
-#line 3773 "gram.y"
+case 681:
+#line 3804 "gram.y"
 {      yyval.node = makeA_Expr(OP, "*", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
-case 677:
-#line 3775 "gram.y"
+case 682:
+#line 3806 "gram.y"
 {      yyval.node = makeA_Expr(OP, ":", NULL, yyvsp[0].node); ;
     break;}
-case 678:
-#line 3777 "gram.y"
+case 683:
+#line 3808 "gram.y"
 {      yyval.node = makeA_Expr(OP, ";", NULL, yyvsp[0].node); ;
     break;}
-case 679:
-#line 3779 "gram.y"
+case 684:
+#line 3810 "gram.y"
 {      yyval.node = makeA_Expr(OP, "|", NULL, yyvsp[0].node); ;
     break;}
-case 680:
-#line 3781 "gram.y"
+case 685:
+#line 3812 "gram.y"
 {
                                        yyval.node = (Node *)yyvsp[-2].node;
                                        /* AexprConst can be either A_Const or ParamNo */
@@ -8449,8 +8452,8 @@ case 680:
                                        }
                                ;
     break;}
-case 681:
-#line 3797 "gram.y"
+case 686:
+#line 3828 "gram.y"
 {
                                        yyval.node = (Node *)yyvsp[-3].node;
                                        /* AexprConst can be either A_Const or ParamNo */
@@ -8467,24 +8470,24 @@ case 681:
                                        }
                                ;
     break;}
-case 682:
-#line 3813 "gram.y"
+case 687:
+#line 3844 "gram.y"
 {      yyval.node = yyvsp[-1].node; ;
     break;}
-case 683:
-#line 3815 "gram.y"
+case 688:
+#line 3846 "gram.y"
 {      yyval.node = makeIndexable(yyvsp[-1].str,yyvsp[-2].node,yyvsp[0].node); ;
     break;}
-case 684:
-#line 3817 "gram.y"
+case 689:
+#line 3848 "gram.y"
 {      yyval.node = makeA_Expr(OP, yyvsp[-1].str, NULL, yyvsp[0].node); ;
     break;}
-case 685:
-#line 3819 "gram.y"
+case 690:
+#line 3850 "gram.y"
 {      yyval.node = makeA_Expr(OP, yyvsp[0].str, yyvsp[-1].node, NULL); ;
     break;}
-case 686:
-#line 3821 "gram.y"
+case 691:
+#line 3852 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = yyvsp[-2].str;
@@ -8492,8 +8495,8 @@ case 686:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 687:
-#line 3828 "gram.y"
+case 692:
+#line 3859 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = yyvsp[-3].str;
@@ -8501,8 +8504,8 @@ case 687:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 688:
-#line 3835 "gram.y"
+case 693:
+#line 3866 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        TypeName *t = makeNode(TypeName);
@@ -8518,8 +8521,8 @@ case 688:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 689:
-#line 3850 "gram.y"
+case 694:
+#line 3881 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        TypeName *t = makeNode(TypeName);
@@ -8535,8 +8538,8 @@ case 689:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 690:
-#line 3865 "gram.y"
+case 695:
+#line 3896 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        A_Const *s = makeNode(A_Const);
@@ -8559,8 +8562,8 @@ case 690:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 691:
-#line 3887 "gram.y"
+case 696:
+#line 3918 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        TypeName *t = makeNode(TypeName);
@@ -8576,8 +8579,8 @@ case 691:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 692:
-#line 3902 "gram.y"
+case 697:
+#line 3933 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        A_Const *s = makeNode(A_Const);
@@ -8600,8 +8603,8 @@ case 692:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 693:
-#line 3924 "gram.y"
+case 698:
+#line 3955 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "getpgusername";
@@ -8609,8 +8612,8 @@ case 693:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 694:
-#line 3931 "gram.y"
+case 699:
+#line 3962 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "getpgusername";
@@ -8618,8 +8621,8 @@ case 694:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 695:
-#line 3938 "gram.y"
+case 700:
+#line 3969 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "strpos";
@@ -8627,8 +8630,8 @@ case 695:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 696:
-#line 3945 "gram.y"
+case 701:
+#line 3976 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "substr";
@@ -8636,8 +8639,8 @@ case 696:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 697:
-#line 3953 "gram.y"
+case 702:
+#line 3984 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "btrim";
@@ -8645,8 +8648,8 @@ case 697:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 698:
-#line 3960 "gram.y"
+case 703:
+#line 3991 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "ltrim";
@@ -8654,8 +8657,8 @@ case 698:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 699:
-#line 3967 "gram.y"
+case 704:
+#line 3998 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "rtrim";
@@ -8663,8 +8666,8 @@ case 699:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 700:
-#line 3974 "gram.y"
+case 705:
+#line 4005 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "btrim";
@@ -8672,8 +8675,8 @@ case 700:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 701:
-#line 3983 "gram.y"
+case 706:
+#line 4014 "gram.y"
 {
                                        A_Indices *ai = makeNode(A_Indices);
                                        ai->lidx = NULL;
@@ -8681,8 +8684,8 @@ case 701:
                                        yyval.list = lcons(ai, yyvsp[0].list);
                                ;
     break;}
-case 702:
-#line 3990 "gram.y"
+case 707:
+#line 4021 "gram.y"
 {
                                        A_Indices *ai = makeNode(A_Indices);
                                        ai->lidx = yyvsp[-4].node;
@@ -8690,24 +8693,24 @@ case 702:
                                        yyval.list = lcons(ai, yyvsp[0].list);
                                ;
     break;}
-case 703:
-#line 3997 "gram.y"
+case 708:
+#line 4028 "gram.y"
 {      yyval.list = NIL; ;
     break;}
-case 704:
-#line 4001 "gram.y"
+case 709:
+#line 4032 "gram.y"
 { yyval.list = lcons(yyvsp[0].node, NIL); ;
     break;}
-case 705:
-#line 4003 "gram.y"
+case 710:
+#line 4034 "gram.y"
 { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ;
     break;}
-case 706:
-#line 4005 "gram.y"
+case 711:
+#line 4036 "gram.y"
 { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ;
     break;}
-case 707:
-#line 4009 "gram.y"
+case 712:
+#line 4040 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_String;
@@ -8715,67 +8718,67 @@ case 707:
                                        yyval.list = lappend(lcons((Node *)n,NIL), yyvsp[0].node);
                                ;
     break;}
-case 708:
-#line 4016 "gram.y"
+case 713:
+#line 4047 "gram.y"
 {      yyval.list = NIL; ;
     break;}
-case 709:
-#line 4019 "gram.y"
+case 714:
+#line 4050 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 710:
-#line 4020 "gram.y"
+case 715:
+#line 4051 "gram.y"
 { yyval.str = "tz_hour"; ;
     break;}
-case 711:
-#line 4021 "gram.y"
+case 716:
+#line 4052 "gram.y"
 { yyval.str = "tz_minute"; ;
     break;}
-case 712:
-#line 4025 "gram.y"
+case 717:
+#line 4056 "gram.y"
 {      yyval.list = makeList(yyvsp[0].node, yyvsp[-2].node, -1); ;
     break;}
-case 713:
-#line 4027 "gram.y"
+case 718:
+#line 4058 "gram.y"
 {      yyval.list = NIL; ;
     break;}
-case 714:
-#line 4031 "gram.y"
+case 719:
+#line 4062 "gram.y"
 {
                                        yyvsp[-1].attr->indirection = yyvsp[0].list;
                                        yyval.node = (Node *)yyvsp[-1].attr;
                                ;
     break;}
-case 715:
-#line 4036 "gram.y"
+case 720:
+#line 4067 "gram.y"
 {      yyval.node = yyvsp[0].node;  ;
     break;}
-case 716:
-#line 4038 "gram.y"
+case 721:
+#line 4069 "gram.y"
 {      yyval.node = makeA_Expr(OP, "-", NULL, yyvsp[0].node); ;
     break;}
-case 717:
-#line 4040 "gram.y"
+case 722:
+#line 4071 "gram.y"
 {      yyval.node = makeA_Expr(OP, "+", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
-case 718:
-#line 4042 "gram.y"
+case 723:
+#line 4073 "gram.y"
 {      yyval.node = makeA_Expr(OP, "-", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
-case 719:
-#line 4044 "gram.y"
+case 724:
+#line 4075 "gram.y"
 {      yyval.node = makeA_Expr(OP, "/", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
-case 720:
-#line 4046 "gram.y"
+case 725:
+#line 4077 "gram.y"
 {      yyval.node = makeA_Expr(OP, "*", yyvsp[-2].node, yyvsp[0].node); ;
     break;}
-case 721:
-#line 4048 "gram.y"
+case 726:
+#line 4079 "gram.y"
 {      yyval.node = makeA_Expr(OP, "|", NULL, yyvsp[0].node); ;
     break;}
-case 722:
-#line 4050 "gram.y"
+case 727:
+#line 4081 "gram.y"
 {
                                        yyval.node = (Node *)yyvsp[-2].node;
                                        /* AexprConst can be either A_Const or ParamNo */
@@ -8792,8 +8795,8 @@ case 722:
                                        }
                                ;
     break;}
-case 723:
-#line 4066 "gram.y"
+case 728:
+#line 4097 "gram.y"
 {
                                        yyval.node = (Node *)yyvsp[-3].node;
                                        /* AexprConst can be either A_Const or ParamNo */
@@ -8810,24 +8813,24 @@ case 723:
                                        }
                                ;
     break;}
-case 724:
-#line 4082 "gram.y"
+case 729:
+#line 4113 "gram.y"
 {      yyval.node = yyvsp[-1].node; ;
     break;}
-case 725:
-#line 4084 "gram.y"
+case 730:
+#line 4115 "gram.y"
 {      yyval.node = makeA_Expr(OP, yyvsp[-1].str, yyvsp[-2].node, yyvsp[0].node); ;
     break;}
-case 726:
-#line 4086 "gram.y"
+case 731:
+#line 4117 "gram.y"
 {      yyval.node = makeA_Expr(OP, yyvsp[-1].str, NULL, yyvsp[0].node); ;
     break;}
-case 727:
-#line 4088 "gram.y"
+case 732:
+#line 4119 "gram.y"
 {      yyval.node = makeA_Expr(OP, yyvsp[0].str, yyvsp[-1].node, NULL); ;
     break;}
-case 728:
-#line 4090 "gram.y"
+case 733:
+#line 4121 "gram.y"
 {
                                        /* could be a column name or a relation_name */
                                        Ident *n = makeNode(Ident);
@@ -8836,8 +8839,8 @@ case 728:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 729:
-#line 4098 "gram.y"
+case 734:
+#line 4129 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = yyvsp[-2].str;
@@ -8845,8 +8848,8 @@ case 729:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 730:
-#line 4105 "gram.y"
+case 735:
+#line 4136 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = yyvsp[-3].str;
@@ -8854,8 +8857,8 @@ case 730:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 731:
-#line 4112 "gram.y"
+case 736:
+#line 4143 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "strpos";
@@ -8863,8 +8866,8 @@ case 731:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 732:
-#line 4119 "gram.y"
+case 737:
+#line 4150 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "substr";
@@ -8872,8 +8875,8 @@ case 732:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 733:
-#line 4127 "gram.y"
+case 738:
+#line 4158 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "btrim";
@@ -8881,8 +8884,8 @@ case 733:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 734:
-#line 4134 "gram.y"
+case 739:
+#line 4165 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "ltrim";
@@ -8890,8 +8893,8 @@ case 734:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 735:
-#line 4141 "gram.y"
+case 740:
+#line 4172 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "rtrim";
@@ -8899,8 +8902,8 @@ case 735:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 736:
-#line 4148 "gram.y"
+case 741:
+#line 4179 "gram.y"
 {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = "btrim";
@@ -8908,22 +8911,22 @@ case 736:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 737:
-#line 4157 "gram.y"
+case 742:
+#line 4188 "gram.y"
 {
                                        yyval.list = nconc(nconc(yyvsp[-2].list,yyvsp[-1].list),yyvsp[0].list);
                                ;
     break;}
-case 738:
-#line 4161 "gram.y"
+case 743:
+#line 4192 "gram.y"
 {      yyval.list = NIL; ;
     break;}
-case 739:
-#line 4165 "gram.y"
+case 744:
+#line 4196 "gram.y"
 {      yyval.list = yyvsp[0].list; ;
     break;}
-case 740:
-#line 4167 "gram.y"
+case 745:
+#line 4198 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_Integer;
@@ -8931,72 +8934,72 @@ case 740:
                                        yyval.list = lcons((Node *)n,NIL);
                                ;
     break;}
-case 741:
-#line 4176 "gram.y"
+case 746:
+#line 4207 "gram.y"
 {      yyval.list = yyvsp[0].list; ;
     break;}
-case 742:
-#line 4178 "gram.y"
+case 747:
+#line 4209 "gram.y"
 {      yyval.list = NIL; ;
     break;}
-case 743:
-#line 4182 "gram.y"
+case 748:
+#line 4213 "gram.y"
 { yyval.list = lappend(yyvsp[0].list, yyvsp[-2].node); ;
     break;}
-case 744:
-#line 4184 "gram.y"
+case 749:
+#line 4215 "gram.y"
 { yyval.list = yyvsp[0].list; ;
     break;}
-case 745:
-#line 4186 "gram.y"
+case 750:
+#line 4217 "gram.y"
 { yyval.list = yyvsp[0].list; ;
     break;}
-case 746:
-#line 4190 "gram.y"
+case 751:
+#line 4221 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->subselect = yyvsp[0].node;
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 747:
-#line 4196 "gram.y"
+case 752:
+#line 4227 "gram.y"
 {      yyval.node = yyvsp[0].node; ;
     break;}
-case 748:
-#line 4200 "gram.y"
+case 753:
+#line 4231 "gram.y"
 {      yyval.node = makeA_Expr(OP, "=", lfirst(saved_In_Expr), yyvsp[0].node); ;
     break;}
-case 749:
-#line 4202 "gram.y"
+case 754:
+#line 4233 "gram.y"
 {      yyval.node = makeA_Expr(OR, NULL, yyvsp[-2].node,
                                                makeA_Expr(OP, "=", lfirst(saved_In_Expr), yyvsp[0].node));
                                ;
     break;}
-case 750:
-#line 4208 "gram.y"
+case 755:
+#line 4239 "gram.y"
 {
                                        SubLink *n = makeNode(SubLink);
                                        n->subselect = yyvsp[0].node;
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 751:
-#line 4214 "gram.y"
+case 756:
+#line 4245 "gram.y"
 {      yyval.node = yyvsp[0].node; ;
     break;}
-case 752:
-#line 4218 "gram.y"
+case 757:
+#line 4249 "gram.y"
 {      yyval.node = makeA_Expr(OP, "<>", lfirst(saved_In_Expr), yyvsp[0].node); ;
     break;}
-case 753:
-#line 4220 "gram.y"
+case 758:
+#line 4251 "gram.y"
 {      yyval.node = makeA_Expr(AND, NULL, yyvsp[-2].node,
                                                makeA_Expr(OP, "<>", lfirst(saved_In_Expr), yyvsp[0].node));
                                ;
     break;}
-case 754:
-#line 4226 "gram.y"
+case 759:
+#line 4257 "gram.y"
 {
                                        yyval.attr = makeNode(Attr);
                                        yyval.attr->relname = yyvsp[-2].str;
@@ -9005,8 +9008,8 @@ case 754:
                                        yyval.attr->indirection = NULL;
                                ;
     break;}
-case 755:
-#line 4234 "gram.y"
+case 760:
+#line 4265 "gram.y"
 {
                                        yyval.attr = makeNode(Attr);
                                        yyval.attr->relname = NULL;
@@ -9015,28 +9018,28 @@ case 755:
                                        yyval.attr->indirection = NULL;
                                ;
     break;}
-case 756:
-#line 4244 "gram.y"
+case 761:
+#line 4275 "gram.y"
 { yyval.list = lcons(makeString(yyvsp[0].str), NIL); ;
     break;}
-case 757:
-#line 4246 "gram.y"
+case 762:
+#line 4277 "gram.y"
 { yyval.list = lappend(yyvsp[-2].list, makeString(yyvsp[0].str)); ;
     break;}
-case 758:
-#line 4248 "gram.y"
+case 763:
+#line 4279 "gram.y"
 { yyval.list = lappend(yyvsp[-2].list, makeString("*")); ;
     break;}
-case 759:
-#line 4259 "gram.y"
+case 764:
+#line 4290 "gram.y"
 {      yyval.list = lappend(yyvsp[-2].list,yyvsp[0].target);  ;
     break;}
-case 760:
-#line 4261 "gram.y"
+case 765:
+#line 4292 "gram.y"
 {      yyval.list = lcons(yyvsp[0].target, NIL);  ;
     break;}
-case 761:
-#line 4263 "gram.y"
+case 766:
+#line 4294 "gram.y"
 {
                                        ResTarget *rt = makeNode(ResTarget);
                                        Attr *att = makeNode(Attr);
@@ -9050,8 +9053,8 @@ case 761:
                                        yyval.list = lcons(rt, NIL);
                                ;
     break;}
-case 762:
-#line 4278 "gram.y"
+case 767:
+#line 4309 "gram.y"
 {
                                        yyval.target = makeNode(ResTarget);
                                        yyval.target->name = yyvsp[-3].str;
@@ -9059,8 +9062,8 @@ case 762:
                                        yyval.target->val = (Node *)yyvsp[0].node;
                                ;
     break;}
-case 763:
-#line 4285 "gram.y"
+case 768:
+#line 4316 "gram.y"
 {
                                        yyval.target = makeNode(ResTarget);
                                        yyval.target->name = NULL;
@@ -9068,8 +9071,8 @@ case 763:
                                        yyval.target->val = (Node *)yyvsp[-1].attr;
                                ;
     break;}
-case 764:
-#line 4292 "gram.y"
+case 769:
+#line 4323 "gram.y"
 {
                                        Attr *att = makeNode(Attr);
                                        att->relname = yyvsp[-2].str;
@@ -9082,16 +9085,16 @@ case 764:
                                        yyval.target->val = (Node *)att;
                                ;
     break;}
-case 765:
-#line 4311 "gram.y"
+case 770:
+#line 4342 "gram.y"
 {      yyval.list = lappend(yyvsp[-2].list, yyvsp[0].target);  ;
     break;}
-case 766:
-#line 4313 "gram.y"
+case 771:
+#line 4344 "gram.y"
 {      yyval.list = lcons(yyvsp[0].target, NIL);  ;
     break;}
-case 767:
-#line 4318 "gram.y"
+case 772:
+#line 4349 "gram.y"
 {
                                        yyval.target = makeNode(ResTarget);
                                        yyval.target->name = yyvsp[0].str;
@@ -9099,8 +9102,8 @@ case 767:
                                        yyval.target->val = (Node *)yyvsp[-2].node;
                                ;
     break;}
-case 768:
-#line 4325 "gram.y"
+case 773:
+#line 4356 "gram.y"
 {
                                        yyval.target = makeNode(ResTarget);
                                        yyval.target->name = NULL;
@@ -9108,8 +9111,8 @@ case 768:
                                        yyval.target->val = (Node *)yyvsp[0].node;
                                ;
     break;}
-case 769:
-#line 4332 "gram.y"
+case 774:
+#line 4363 "gram.y"
 {
                                        Attr *att = makeNode(Attr);
                                        att->relname = yyvsp[-2].str;
@@ -9122,8 +9125,8 @@ case 769:
                                        yyval.target->val = (Node *)att;
                                ;
     break;}
-case 770:
-#line 4344 "gram.y"
+case 775:
+#line 4375 "gram.y"
 {
                                        Attr *att = makeNode(Attr);
                                        att->relname = "*";
@@ -9136,23 +9139,23 @@ case 770:
                                        yyval.target->val = (Node *)att;
                                ;
     break;}
-case 771:
-#line 4357 "gram.y"
+case 776:
+#line 4388 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 772:
-#line 4358 "gram.y"
+case 777:
+#line 4389 "gram.y"
 { yyval.str = NULL; ;
     break;}
-case 773:
-#line 4362 "gram.y"
+case 778:
+#line 4393 "gram.y"
 {
                                        yyval.str = yyvsp[0].str;
                                        StrNCpy(saved_relname, yyvsp[0].str, NAMEDATALEN);
                                ;
     break;}
-case 774:
-#line 4367 "gram.y"
+case 779:
+#line 4398 "gram.y"
 {
                                        /* disallow refs to variable system tables */
                                        if (strcmp(LogRelationName, yyvsp[0].str) == 0
@@ -9163,44 +9166,44 @@ case 774:
                                        StrNCpy(saved_relname, yyvsp[0].str, NAMEDATALEN);
                                ;
     break;}
-case 775:
-#line 4378 "gram.y"
+case 780:
+#line 4409 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 776:
-#line 4379 "gram.y"
+case 781:
+#line 4410 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 777:
-#line 4380 "gram.y"
+case 782:
+#line 4411 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 778:
-#line 4381 "gram.y"
+case 783:
+#line 4412 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 779:
-#line 4382 "gram.y"
+case 784:
+#line 4413 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 780:
-#line 4388 "gram.y"
+case 785:
+#line 4419 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 781:
-#line 4389 "gram.y"
+case 786:
+#line 4420 "gram.y"
 { yyval.str = xlateSqlFunc(yyvsp[0].str); ;
     break;}
-case 782:
-#line 4391 "gram.y"
+case 787:
+#line 4422 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 783:
-#line 4392 "gram.y"
+case 788:
+#line 4423 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 784:
-#line 4398 "gram.y"
+case 789:
+#line 4429 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_Integer;
@@ -9208,8 +9211,8 @@ case 784:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 785:
-#line 4405 "gram.y"
+case 790:
+#line 4436 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_Float;
@@ -9217,8 +9220,8 @@ case 785:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 786:
-#line 4412 "gram.y"
+case 791:
+#line 4443 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_String;
@@ -9226,8 +9229,8 @@ case 786:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 787:
-#line 4419 "gram.y"
+case 792:
+#line 4450 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->typename = yyvsp[-1].typnam;
@@ -9236,12 +9239,12 @@ case 787:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 788:
-#line 4427 "gram.y"
+case 793:
+#line 4458 "gram.y"
 {      yyval.node = (Node *)yyvsp[0].paramno;  ;
     break;}
-case 789:
-#line 4429 "gram.y"
+case 794:
+#line 4460 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_String;
@@ -9252,8 +9255,8 @@ case 789:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 790:
-#line 4439 "gram.y"
+case 795:
+#line 4470 "gram.y"
 {
                                        A_Const *n = makeNode(A_Const);
                                        n->val.type = T_String;
@@ -9264,235 +9267,239 @@ case 790:
                                        yyval.node = (Node *)n;
                                ;
     break;}
-case 791:
-#line 4451 "gram.y"
+case 796:
+#line 4482 "gram.y"
 {
                                        yyval.paramno = makeNode(ParamNo);
                                        yyval.paramno->number = yyvsp[0].ival;
                                ;
     break;}
-case 792:
-#line 4457 "gram.y"
+case 797:
+#line 4488 "gram.y"
 { yyval.ival = yyvsp[0].ival; ;
     break;}
-case 793:
-#line 4458 "gram.y"
+case 798:
+#line 4489 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 794:
-#line 4459 "gram.y"
+case 799:
+#line 4490 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 795:
-#line 4467 "gram.y"
+case 800:
+#line 4498 "gram.y"
 {      yyval.str = xlateSqlType(yyvsp[0].str); ;
     break;}
-case 796:
-#line 4469 "gram.y"
+case 801:
+#line 4500 "gram.y"
 {      yyval.str = xlateSqlType(yyvsp[0].str); ;
     break;}
-case 797:
-#line 4471 "gram.y"
+case 802:
+#line 4502 "gram.y"
 {      yyval.str = xlateSqlType(yyvsp[0].str); ;
     break;}
-case 798:
-#line 4481 "gram.y"
+case 803:
+#line 4512 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 799:
-#line 4482 "gram.y"
+case 804:
+#line 4513 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 800:
-#line 4483 "gram.y"
+case 805:
+#line 4514 "gram.y"
 { yyval.str = "action"; ;
     break;}
-case 801:
-#line 4484 "gram.y"
+case 806:
+#line 4515 "gram.y"
 { yyval.str = "cache"; ;
     break;}
-case 802:
-#line 4485 "gram.y"
+case 807:
+#line 4516 "gram.y"
 { yyval.str = "cycle"; ;
     break;}
-case 803:
-#line 4486 "gram.y"
+case 808:
+#line 4517 "gram.y"
 { yyval.str = "database"; ;
     break;}
-case 804:
-#line 4487 "gram.y"
+case 809:
+#line 4518 "gram.y"
 { yyval.str = "delimiters"; ;
     break;}
-case 805:
-#line 4488 "gram.y"
+case 810:
+#line 4519 "gram.y"
 { yyval.str = "double"; ;
     break;}
-case 806:
-#line 4489 "gram.y"
+case 811:
+#line 4520 "gram.y"
 { yyval.str = "each"; ;
     break;}
-case 807:
-#line 4490 "gram.y"
+case 812:
+#line 4521 "gram.y"
+{ yyval.str = "encoding"; ;
+    break;}
+case 813:
+#line 4522 "gram.y"
 { yyval.str = "function"; ;
     break;}
-case 808:
-#line 4491 "gram.y"
+case 814:
+#line 4523 "gram.y"
 { yyval.str = "increment"; ;
     break;}
-case 809:
-#line 4492 "gram.y"
+case 815:
+#line 4524 "gram.y"
 { yyval.str = "index"; ;
     break;}
-case 810:
-#line 4493 "gram.y"
+case 816:
+#line 4525 "gram.y"
 { yyval.str = "key"; ;
     break;}
-case 811:
-#line 4494 "gram.y"
+case 817:
+#line 4526 "gram.y"
 { yyval.str = "language"; ;
     break;}
-case 812:
-#line 4495 "gram.y"
+case 818:
+#line 4527 "gram.y"
 { yyval.str = "location"; ;
     break;}
-case 813:
-#line 4496 "gram.y"
+case 819:
+#line 4528 "gram.y"
 { yyval.str = "match"; ;
     break;}
-case 814:
-#line 4497 "gram.y"
+case 820:
+#line 4529 "gram.y"
 { yyval.str = "maxvalue"; ;
     break;}
-case 815:
-#line 4498 "gram.y"
+case 821:
+#line 4530 "gram.y"
 { yyval.str = "minvalue"; ;
     break;}
-case 816:
-#line 4499 "gram.y"
+case 822:
+#line 4531 "gram.y"
 { yyval.str = "operator"; ;
     break;}
-case 817:
-#line 4500 "gram.y"
+case 823:
+#line 4532 "gram.y"
 { yyval.str = "option"; ;
     break;}
-case 818:
-#line 4501 "gram.y"
+case 824:
+#line 4533 "gram.y"
 { yyval.str = "password"; ;
     break;}
-case 819:
-#line 4502 "gram.y"
+case 825:
+#line 4534 "gram.y"
 { yyval.str = "privileges"; ;
     break;}
-case 820:
-#line 4503 "gram.y"
+case 826:
+#line 4535 "gram.y"
 { yyval.str = "recipe"; ;
     break;}
-case 821:
-#line 4504 "gram.y"
+case 827:
+#line 4536 "gram.y"
 { yyval.str = "row"; ;
     break;}
-case 822:
-#line 4505 "gram.y"
+case 828:
+#line 4537 "gram.y"
 { yyval.str = "start"; ;
     break;}
-case 823:
-#line 4506 "gram.y"
+case 829:
+#line 4538 "gram.y"
 { yyval.str = "statement"; ;
     break;}
-case 824:
-#line 4507 "gram.y"
+case 830:
+#line 4539 "gram.y"
 { yyval.str = "time"; ;
     break;}
-case 825:
-#line 4508 "gram.y"
+case 831:
+#line 4540 "gram.y"
 { yyval.str = "timezone_hour"; ;
     break;}
-case 826:
-#line 4509 "gram.y"
+case 832:
+#line 4541 "gram.y"
 { yyval.str = "timezone_minute"; ;
     break;}
-case 827:
-#line 4510 "gram.y"
+case 833:
+#line 4542 "gram.y"
 { yyval.str = "trigger"; ;
     break;}
-case 828:
-#line 4511 "gram.y"
+case 834:
+#line 4543 "gram.y"
 { yyval.str = "type"; ;
     break;}
-case 829:
-#line 4512 "gram.y"
+case 835:
+#line 4544 "gram.y"
 { yyval.str = "valid"; ;
     break;}
-case 830:
-#line 4513 "gram.y"
+case 836:
+#line 4545 "gram.y"
 { yyval.str = "version"; ;
     break;}
-case 831:
-#line 4514 "gram.y"
+case 837:
+#line 4546 "gram.y"
 { yyval.str = "zone"; ;
     break;}
-case 832:
-#line 4527 "gram.y"
+case 838:
+#line 4559 "gram.y"
 { yyval.str = yyvsp[0].str; ;
     break;}
-case 833:
-#line 4528 "gram.y"
+case 839:
+#line 4560 "gram.y"
 { yyval.str = "archive"; ;
     break;}
-case 834:
-#line 4529 "gram.y"
+case 840:
+#line 4561 "gram.y"
 { yyval.str = "cluster"; ;
     break;}
-case 835:
-#line 4530 "gram.y"
+case 841:
+#line 4562 "gram.y"
 { yyval.str = "constraint"; ;
     break;}
-case 836:
-#line 4531 "gram.y"
+case 842:
+#line 4563 "gram.y"
 { yyval.str = "cross"; ;
     break;}
-case 837:
-#line 4532 "gram.y"
+case 843:
+#line 4564 "gram.y"
 { yyval.str = "foreign"; ;
     break;}
-case 838:
-#line 4533 "gram.y"
+case 844:
+#line 4565 "gram.y"
 { yyval.str = "group"; ;
     break;}
-case 839:
-#line 4534 "gram.y"
+case 845:
+#line 4566 "gram.y"
 { yyval.str = "load"; ;
     break;}
-case 840:
-#line 4535 "gram.y"
+case 846:
+#line 4567 "gram.y"
 { yyval.str = "order"; ;
     break;}
-case 841:
-#line 4536 "gram.y"
+case 847:
+#line 4568 "gram.y"
 { yyval.str = "position"; ;
     break;}
-case 842:
-#line 4537 "gram.y"
+case 848:
+#line 4569 "gram.y"
 { yyval.str = "precision"; ;
     break;}
-case 843:
-#line 4538 "gram.y"
+case 849:
+#line 4570 "gram.y"
 { yyval.str = "table"; ;
     break;}
-case 844:
-#line 4539 "gram.y"
+case 850:
+#line 4571 "gram.y"
 { yyval.str = "transaction"; ;
     break;}
-case 845:
-#line 4540 "gram.y"
+case 851:
+#line 4572 "gram.y"
 { yyval.str = "true"; ;
     break;}
-case 846:
-#line 4541 "gram.y"
+case 852:
+#line 4573 "gram.y"
 { yyval.str = "false"; ;
     break;}
-case 847:
-#line 4545 "gram.y"
+case 853:
+#line 4577 "gram.y"
 {
                                        if (QueryIsRule)
                                                yyval.str = "*CURRENT*";
@@ -9500,8 +9507,8 @@ case 847:
                                                elog(ERROR,"CURRENT used in non-rule query");
                                ;
     break;}
-case 848:
-#line 4552 "gram.y"
+case 854:
+#line 4584 "gram.y"
 {
                                        if (QueryIsRule)
                                                yyval.str = "*NEW*";
@@ -9707,7 +9714,7 @@ yyerrhandle:
   yystate = yyn;
   goto yynewstate;
 }
-#line 4560 "gram.y"
+#line 4592 "gram.y"
 
 
 static Node *
index 74aa97fcb7b46442ef6568308e48213bfa458b4a..bb06c854f7285041ff8d911ca60ee9616226fcf9 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.17 1998/07/25 00:17:28 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.18 1998/07/26 01:18:04 momjian Exp $
  *
  * HISTORY
  *       AUTHOR                        DATE                    MAJOR EVENT
@@ -125,7 +125,7 @@ Oid param_type(int t); /* used in parse_expr.c */
                ProcedureStmt,  RecipeStmt, RemoveAggrStmt, RemoveOperStmt,
                RemoveFuncStmt, RemoveStmt,
                RenameStmt, RevokeStmt, RuleStmt, TransactionStmt, ViewStmt, LoadStmt,
-               CreatedbStmt, DestroydbStmt, VacuumStmt, CursorStmt, SubSelect,
+               CreatedbStmt, DestroydbStmt, VacuumStmt, CursorStmt, SubSelect, SubUnion,
                UpdateStmt, InsertStmt, SelectStmt, NotifyStmt, DeleteStmt, ClusterStmt,
                ExplainStmt, VariableSetStmt, VariableShowStmt, VariableResetStmt,
                CreateUserStmt, AlterUserStmt, DropUserStmt
@@ -339,7 +339,6 @@ Oid param_type(int t); /* used in parse_expr.c */
 %left          '.'
 %left          '[' ']'
 %nonassoc      TYPECAST
-%nonassoc      REDUCE
 %left          UNION
 %%
 
@@ -2027,9 +2026,9 @@ TransactionStmt: ABORT_TRANS opt_trans
                                }
                ;
 
-opt_trans:  WORK                                                               { $$ = NULL; }
-               |       TRANSACTION                                                     { $$ = NULL: }
-               |  /*EMPTY*/                                                    { $$ = NULL; }
+opt_trans: WORK                                                                        { $$ = TRUE; }
+               | TRANSACTION                                                   { $$ = TRUE; }
+               | /*EMPTY*/                                                             { $$ = TRUE; }
                ;
 
 
@@ -2438,6 +2437,23 @@ SelectStmt:  SELECT opt_unique res_target_list2
                                }
                ;
 
+SubSelect:  SELECT opt_unique res_target_list2
+                        from_clause where_clause
+                        group_clause having_clause
+                        union_clause
+                               {
+                                       SelectStmt *n = makeNode(SelectStmt);
+                                       n->unique = $2;
+                                       n->targetList = $3;
+                                       n->fromClause = $4;
+                                       n->whereClause = $5;
+                                       n->groupClause = $6;
+                                       n->havingClause = $7;
+                                       n->unionClause = $8;
+                                       $$ = (Node *)n;
+                               }
+               ;
+
 union_clause:  UNION opt_union select_list
                                {
                                        SelectStmt *n = (SelectStmt *)lfirst($3);
@@ -2448,20 +2464,19 @@ union_clause:  UNION opt_union select_list
                                { $$ = NIL; }
                ;
 
-select_list:  select_list UNION opt_union SubSelect
+select_list:  select_list UNION opt_union SubUnion
                                {
                                        SelectStmt *n = (SelectStmt *)$4;
                                        n->unionall = $3;
                                        $$ = lappend($1, $4);
                                }
-               | SubSelect
+               | SubUnion
                                { $$ = lcons($1, NIL); }
                ;
 
-SubSelect:     SELECT opt_unique res_target_list2
+SubUnion:      SELECT opt_unique res_target_list2
                         from_clause where_clause
                         group_clause having_clause
-                        union_clause
                                {
                                        SelectStmt *n = makeNode(SelectStmt);
                                        n->unique = $2;
@@ -2471,7 +2486,6 @@ SubSelect:        SELECT opt_unique res_target_list2
                                        n->whereClause = $5;
                                        n->groupClause = $6;
                                        n->havingClause = $7;
-                                       n->unionClause = $8;
                                        $$ = (Node *)n;
                                }
                ;
index 89fef416e6b5ba96ed6eff0400c21a9260b37a0b..5ce1d6f2996ffda6488f75da5ad9cdd2888a9fe6 100644 (file)
@@ -97,136 +97,137 @@ typedef union
 #define        MATCH   324
 #define        MINUTE_P        325
 #define        MONTH_P 326
-#define        NATIONAL        327
-#define        NATURAL 328
-#define        NCHAR   329
-#define        NO      330
-#define        NOT     331
-#define        NOTIFY  332
-#define        NULL_P  333
-#define        NUMERIC 334
-#define        ON      335
-#define        OPTION  336
-#define        OR      337
-#define        ORDER   338
-#define        OUTER_P 339
-#define        PARTIAL 340
-#define        POSITION        341
-#define        PRECISION       342
-#define        PRIMARY 343
-#define        PRIVILEGES      344
-#define        PROCEDURE       345
-#define        PUBLIC  346
-#define        REFERENCES      347
-#define        REVOKE  348
-#define        RIGHT   349
-#define        ROLLBACK        350
-#define        SECOND_P        351
-#define        SELECT  352
-#define        SET     353
-#define        SUBSTRING       354
-#define        TABLE   355
-#define        TIME    356
-#define        TIMESTAMP       357
-#define        TIMEZONE_HOUR   358
-#define        TIMEZONE_MINUTE 359
-#define        TO      360
-#define        TRAILING        361
-#define        TRANSACTION     362
-#define        TRIM    363
-#define        UNION   364
-#define        UNIQUE  365
-#define        UPDATE  366
-#define        USER    367
-#define        USING   368
-#define        VALUES  369
-#define        VARCHAR 370
-#define        VARYING 371
-#define        VIEW    372
-#define        WHERE   373
-#define        WITH    374
-#define        WORK    375
-#define        YEAR_P  376
-#define        ZONE    377
-#define        FALSE_P 378
-#define        TRIGGER 379
-#define        TRUE_P  380
-#define        TYPE_P  381
-#define        ABORT_TRANS     382
-#define        AFTER   383
-#define        AGGREGATE       384
-#define        ANALYZE 385
-#define        BACKWARD        386
-#define        BEFORE  387
-#define        BINARY  388
-#define        CACHE   389
-#define        CLUSTER 390
-#define        COPY    391
-#define        CYCLE   392
-#define        DATABASE        393
-#define        DELIMITERS      394
-#define        DO      395
-#define        EACH    396
-#define        EXPLAIN 397
-#define        EXTEND  398
-#define        FORWARD 399
-#define        FUNCTION        400
-#define        HANDLER 401
-#define        INCREMENT       402
-#define        INDEX   403
-#define        INHERITS        404
-#define        INSTEAD 405
-#define        ISNULL  406
-#define        LANCOMPILER     407
-#define        LISTEN  408
-#define        LOAD    409
-#define        LOCK_P  410
-#define        LOCATION        411
-#define        MAXVALUE        412
-#define        MINVALUE        413
-#define        MOVE    414
-#define        NEW     415
-#define        NONE    416
-#define        NOTHING 417
-#define        NOTNULL 418
-#define        OIDS    419
-#define        OPERATOR        420
-#define        PROCEDURAL      421
-#define        RECIPE  422
-#define        RENAME  423
-#define        RESET   424
-#define        RETURNS 425
-#define        ROW     426
-#define        RULE    427
-#define        SEQUENCE        428
-#define        SETOF   429
-#define        SHOW    430
-#define        START   431
-#define        STATEMENT       432
-#define        STDIN   433
-#define        STDOUT  434
-#define        TRUSTED 435
-#define        VACUUM  436
-#define        VERBOSE 437
-#define        VERSION 438
-#define        ARCHIVE 439
-#define        PASSWORD        440
-#define        CREATEDB        441
-#define        NOCREATEDB      442
-#define        CREATEUSER      443
-#define        NOCREATEUSER    444
-#define        VALID   445
-#define        UNTIL   446
-#define        IDENT   447
-#define        SCONST  448
-#define        Op      449
-#define        ICONST  450
-#define        PARAM   451
-#define        FCONST  452
-#define        OP      453
-#define        UMINUS  454
-#define        TYPECAST        455
-#define        REDUCE  456
+#define        NAMES   327
+#define        NATIONAL        328
+#define        NATURAL 329
+#define        NCHAR   330
+#define        NO      331
+#define        NOT     332
+#define        NOTIFY  333
+#define        NULL_P  334
+#define        NUMERIC 335
+#define        ON      336
+#define        OPTION  337
+#define        OR      338
+#define        ORDER   339
+#define        OUTER_P 340
+#define        PARTIAL 341
+#define        POSITION        342
+#define        PRECISION       343
+#define        PRIMARY 344
+#define        PRIVILEGES      345
+#define        PROCEDURE       346
+#define        PUBLIC  347
+#define        REFERENCES      348
+#define        REVOKE  349
+#define        RIGHT   350
+#define        ROLLBACK        351
+#define        SECOND_P        352
+#define        SELECT  353
+#define        SET     354
+#define        SUBSTRING       355
+#define        TABLE   356
+#define        TIME    357
+#define        TIMESTAMP       358
+#define        TIMEZONE_HOUR   359
+#define        TIMEZONE_MINUTE 360
+#define        TO      361
+#define        TRAILING        362
+#define        TRANSACTION     363
+#define        TRIM    364
+#define        UNION   365
+#define        UNIQUE  366
+#define        UPDATE  367
+#define        USER    368
+#define        USING   369
+#define        VALUES  370
+#define        VARCHAR 371
+#define        VARYING 372
+#define        VIEW    373
+#define        WHERE   374
+#define        WITH    375
+#define        WORK    376
+#define        YEAR_P  377
+#define        ZONE    378
+#define        FALSE_P 379
+#define        TRIGGER 380
+#define        TRUE_P  381
+#define        TYPE_P  382
+#define        ABORT_TRANS     383
+#define        AFTER   384
+#define        AGGREGATE       385
+#define        ANALYZE 386
+#define        BACKWARD        387
+#define        BEFORE  388
+#define        BINARY  389
+#define        CACHE   390
+#define        CLUSTER 391
+#define        COPY    392
+#define        CYCLE   393
+#define        DATABASE        394
+#define        DELIMITERS      395
+#define        DO      396
+#define        EACH    397
+#define        EXPLAIN 398
+#define        EXTEND  399
+#define        FORWARD 400
+#define        FUNCTION        401
+#define        HANDLER 402
+#define        INCREMENT       403
+#define        INDEX   404
+#define        INHERITS        405
+#define        INSTEAD 406
+#define        ISNULL  407
+#define        LANCOMPILER     408
+#define        LISTEN  409
+#define        LOAD    410
+#define        LOCK_P  411
+#define        LOCATION        412
+#define        MAXVALUE        413
+#define        MINVALUE        414
+#define        MOVE    415
+#define        NEW     416
+#define        NONE    417
+#define        NOTHING 418
+#define        NOTNULL 419
+#define        OIDS    420
+#define        OPERATOR        421
+#define        PROCEDURAL      422
+#define        RECIPE  423
+#define        RENAME  424
+#define        RESET   425
+#define        RETURNS 426
+#define        ROW     427
+#define        RULE    428
+#define        SEQUENCE        429
+#define        SETOF   430
+#define        SHOW    431
+#define        START   432
+#define        STATEMENT       433
+#define        STDIN   434
+#define        STDOUT  435
+#define        TRUSTED 436
+#define        VACUUM  437
+#define        VERBOSE 438
+#define        VERSION 439
+#define        ENCODING        440
+#define        ARCHIVE 441
+#define        PASSWORD        442
+#define        CREATEDB        443
+#define        NOCREATEDB      444
+#define        CREATEUSER      445
+#define        NOCREATEUSER    446
+#define        VALID   447
+#define        UNTIL   448
+#define        IDENT   449
+#define        SCONST  450
+#define        Op      451
+#define        ICONST  452
+#define        PARAM   453
+#define        FCONST  454
+#define        OP      455
+#define        UMINUS  456
+#define        TYPECAST        457
 
 
 extern YYSTYPE yylval;
index 28237901f72476461d549793925cb20780cea155..eba14a2881f850cce77b88800e91472d87f026e5 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.148 1998/07/18 18:34:14 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.149 1998/07/26 01:18:07 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1575,7 +1575,7 @@ do_help(PsqlSettings *pset, const char *topic)
                help_found = false;             /* Haven't found it yet */
                for (i = 0; QL_HELP[i].cmd; i++)
                {
-                       if (strcmp(QL_HELP[i].cmd, topic) == 0 ||
+                       if (strcasecmp(QL_HELP[i].cmd, topic) == 0 ||
                                strcmp(topic, "*") == 0)
                        {
                                help_found = true;
index 8fbf4dccb72a42efb2622aad93285ef02ce69406..f9052d0a95493ec2a66d642738370a4368c7bac1 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: psqlHelp.h,v 1.48 1998/07/25 00:17:29 momjian Exp $
+ * $Id: psqlHelp.h,v 1.49 1998/07/26 01:18:09 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -18,20 +18,20 @@ struct _helpStruct
 };
 
 static struct _helpStruct QL_HELP[] = {
-       {"abort",
-               "abort the current transaction",
-       "abort [transaction];"},
        {"abort transaction",
                "abort the current transaction",
-       "abort [transaction];"},
+    "\
+\tabort [transaction|work];"},
        {"alter table",
                "add/rename attributes, rename tables",
-       "\tALTER TABLE class_name [*] ADD COLUMN attr type\n\
+       "\
+\tALTER TABLE class_name [*] ADD COLUMN attr type\n\
 \tALTER TABLE class_name [*] RENAME [COLUMN] attr1 TO attr2\n\
 \tALTER TABLE class_name1 RENAME TO class_name2"},
        {"alter user",
                "alter system information for a user",
-       "ALTER USER user_name\n\
+       "\
+\tALTER USER user_name\n\
 \t[WITH PASSWORD password]\n\
 \t[CREATEDB | NOCCREATEDB]\n\
 \t[CREATEUSER | NOCREATEUSER]\n\
@@ -39,23 +39,29 @@ static struct _helpStruct QL_HELP[] = {
 \t[VALID UNTIL 'abstime'];"},
        {"begin work",
                "begin a new transaction",
-       "BEGIN [TRANSACTION|WORK];"},
+       "\
+\tBEGIN [WORK|TRANSACTION];"},
        {"cluster",
                "create a clustered index (from an existing index)",
-       "CLUSTER index_name ON relation_name"},
+       "\
+\tCLUSTER index_name ON relation_name"},
        {"close",
                "close an existing cursor (cursor)",
-       "CLOSE cursorname;"},
+       "\
+\tCLOSE cursorname;"},
        {"commit work",
                "commit a transaction",
-       "COMMIT [TRANSACTION|WORK]"},
+       "\
+\tCOMMIT [WORK|TRANSACTION]"},
        {"copy",
                "copy data to and from a table",
-       "COPY [BINARY] class_name [WITH OIDS]\n\
+       "\
+\tCOPY [BINARY] class_name [WITH OIDS]\n\
 \tTO|FROM filename|STDIN|STDOUT [USING DELIMITERS 'delim'];"},
        {"create",
                "Please be more specific:",
-       "\tcreate aggregate\n\
+       "\
+\tcreate aggregate\n\
 \tcreate database\n\
 \tcreate function\n\
 \tcreate index\n\
@@ -68,26 +74,31 @@ static struct _helpStruct QL_HELP[] = {
 \tcreate view"},
        {"create aggregate",
                "define an aggregate function",
-       "CREATE AGGREGATE agg_name [AS] (BASETYPE = data_type, \n\
+       "\
+\tCREATE AGGREGATE agg_name [AS] (BASETYPE = data_type, \n\
 \t[SFUNC1 = sfunc_1, STYPE1 = sfunc1_return_type]\n\
 \t[SFUNC2 = sfunc_2, STYPE2 = sfunc2_return_type]\n\
 \t[,FINALFUNC = final-function]\n\
 \t[,INITCOND1 = initial-cond1][,INITCOND2 = initial-cond2]);"},
        {"create database",
                "create a database",
-       "CREATE DATABASE dbname [WITH LOCATION = 'dbpath']"},
+       "\
+\tCREATE DATABASE dbname [WITH LOCATION = 'dbpath']"},
        {"create function",
                "create a user-defined function",
-       "CREATE FUNCTION function_name ([type1, ...typeN]) RETURNS return_type\n\
+       "\
+\tCREATE FUNCTION function_name ([type1, ...typeN]) RETURNS return_type\n\
 \tAS 'object_filename'|'sql-queries'\n\
 \tLANGUAGE 'c'|'sql'|'internal';"},
        {"create index",
                "construct an index",
-       "CREATE [UNIQUE] INDEX indexname ON class_name [USING access_method]\n\
+       "\
+\tCREATE [UNIQUE] INDEX indexname ON class_name [USING access_method]\n\
 ( attr1 [type_class1], ...attrN | funcname(attr1, ...) [type_class] );"},
        {"create operator",
                "create a user-defined operator",
-       "CREATE OPERATOR operator_name (\n\
+       "\
+\tCREATE OPERATOR operator_name (\n\
 \t[LEFTARG = type1][,RIGHTARG = type2]\n\
 \t,PROCEDURE = func_name,\n\
 \t[,COMMUTATOR = com_op][,NEGATOR = neg_op]\n\
@@ -95,13 +106,15 @@ static struct _helpStruct QL_HELP[] = {
 \t[,JOIN = join_proc][,SORT = sort_op1...sort_opN]);"},
        {"create rule",
                "define a new rule",
-       "CREATE RULE rule_name AS ON\n\
+       "\
+\tCREATE RULE rule_name AS ON\n\
 \t[SELECT|UPDATE|DELETE|INSERT]\n\
 \tTO object [WHERE qual]\n\
 \tDO [INSTEAD] [action|NOTHING|[actions]];"},
        {"create sequence",
                "create a new sequence number generator",
-       "CREATE SEQUENCE sequence_name\n\
+       "\
+\tCREATE SEQUENCE sequence_name\n\
 \t[INCREMENT number]\n\
 \t[START number]\n\
 \t[MINVALUE number]\n\
@@ -110,21 +123,24 @@ static struct _helpStruct QL_HELP[] = {
 \t[CYCLE];"},
        {"create table",
                "create a new table",
-       "CREATE TABLE class_name\n\
+       "\
+\tCREATE TABLE class_name\n\
 \t(attr1 type1 [DEFAULT expression] [NOT NULL], ...attrN)\n\
 \t[INHERITS (class_name1, ...class_nameN)\n\
 \t[[CONSTRAINT name] CHECK condition1, ...conditionN] ]\n\
 ;"},
        {"create trigger",
                "create a new trigger",
-       "CREATE TRIGGER trigger_name AFTER|BEFORE event1 [OR event2 [OR event3] ]\n\
+       "\
+\tCREATE TRIGGER trigger_name AFTER|BEFORE event1 [OR event2 [OR event3] ]\n\
 \tON class_name FOR EACH ROW|STATEMENT\n\
 \tEXECUTE PROCEDURE func_name ([arguments])\n\
 \n\
 \teventX is one of INSERT, DELETE, UPDATE"},
        {"create type",
                "create a new user-defined base data type",
-       "CREATE TYPE typename (\n\
+       "\
+\tCREATE TYPE typename (\n\
 \tINTERNALLENGTH = (number|VARIABLE),\n\
 \t[EXTERNALLENGTH = (number|VARIABLE),]\n\
 \tINPUT = input_function, OUTPUT = output_function\n\
@@ -132,7 +148,8 @@ static struct _helpStruct QL_HELP[] = {
 \t[,SEND = send_function][,RECEIVE = receive_function][,PASSEDBYVALUE]);"},
        {"create user",
                "create a new user",
-       "CREATE USER user_name\n\
+       "\
+\tCREATE USER user_name\n\
 \t[WITH PASSWORD password]\n\
 \t[CREATEDB | NOCREATEDB]\n\
 \t[CREATEUSER | NOCREATEUSER]\n\
@@ -140,7 +157,8 @@ static struct _helpStruct QL_HELP[] = {
 \t[VALID UNTIL 'abstime'];"},
        {"create view",
                "create a view",
-       "CREATE VIEW view_name AS\n\
+       "\
+\tCREATE VIEW view_name AS\n\
 \tSELECT [DISTINCT [ON attrN]]\n\
 \texpr1 [AS attr1], ...exprN\n\
 \t[FROM from_list]\n\
@@ -148,7 +166,8 @@ static struct _helpStruct QL_HELP[] = {
 \t[GROUP BY group_list];"},
        {"declare",
                "set up a cursor",
-       "DECLARE cursorname [BINARY] CURSOR FOR\n\
+       "\
+\tDECLARE cursorname [BINARY] CURSOR FOR\n\
 \tSELECT [DISTINCT [ON attrN]]\n\
 \texpr1 [AS attr1], ...exprN\n\
 \t[FROM from_list]\n\
@@ -159,10 +178,12 @@ static struct _helpStruct QL_HELP[] = {
 \t[UNION [ALL] SELECT ...];"},
        {"delete",
                "delete tuples",
-       "DELETE FROM class_name [WHERE qual];"},
+       "\
+\tDELETE FROM class_name [WHERE qual];"},
        {"drop",
                "Please be more specific:",
-       "\tdrop aggregate\n\
+       "\
+\tdrop aggregate\n\
 \tdrop database\n\
 \tdrop function\n\
 \tdrop index\n\
@@ -175,57 +196,74 @@ static struct _helpStruct QL_HELP[] = {
 \tdrop view"},
        {"drop aggregate",
                "remove an aggregate function",
-       "DROP AGGREGATE agg_name agg_type|*;"},
+       "\
+\tDROP AGGREGATE agg_name agg_type|*;"},
        {"drop database",
                "remove a database",
-       "DROP DATABASE dbname"},
+       "\
+\tDROP DATABASE dbname"},
        {"drop function",
                "remove a user-defined function",
-       "DROP FUNCTION funcname ([type1, ...typeN]);"},
+       "\
+\tDROP FUNCTION funcname ([type1, ...typeN]);"},
        {"drop index",
                "remove an existing index",
-       "DROP INDEX indexname;"},
+       "\
+\tDROP INDEX indexname;"},
        {"drop operator",
                "remove a user-defined operator",
-       "DROP OPERATOR operator_name ([ltype|NONE],[RTYPE|none]);"},
+       "\
+\tDROP OPERATOR operator_name ([ltype|NONE],[RTYPE|none]);"},
        {"drop rule",
                "remove a rule",
-       "DROP RULE rulename;"},
+       "\
+\tDROP RULE rulename;"},
        {"drop sequence",
                "remove a sequence number generator",
-       "DROP SEQUENCE sequence_name[, ...sequence_nameN];"},
+       "\
+\tDROP SEQUENCE sequence_name[, ...sequence_nameN];"},
        {"drop table",
                "remove a table",
-       "DROP TABLE class_name1, ...class_nameN;"},
+       "\
+\tDROP TABLE class_name1, ...class_nameN;"},
        {"drop trigger",
                "remove a trigger",
-       "DROP TRIGGER trigger_name ON class_name;"},
+       "\
+\tDROP TRIGGER trigger_name ON class_name;"},
        {"drop type",
                "remove a user-defined base type",
-       "DROP TYPE typename;"},
+       "\
+\tDROP TYPE typename;"},
        {"drop user",
                "remove a user from the system",
-       "DROP USER user_name;"},
+       "\
+\tDROP USER user_name;"},
        {"drop view",
                "remove a view",
-       "DROP VIEW view_name"},
-       {"end transaction",
+       "\
+\tDROP VIEW view_name"},
+       {"end work",
                "end the current transaction",
-       "END [TRANSACTION|WORK];"},
+       "\
+\tEND [WORK|TRANSACTION];"},
        {"explain",
                "explain the query execution plan",
-       "EXPLAIN [VERBOSE] query"},
+       "\
+\tEXPLAIN [VERBOSE] query"},
        {"fetch",
                "retrieve tuples from a cursor",
-       "FETCH [FORWARD|BACKWARD] [number|ALL] [IN cursorname];"},
+       "\
+\tFETCH [FORWARD|BACKWARD] [number|ALL] [IN cursorname];"},
        {"grant",
                "grant access control to a user or group",
-       "GRANT privilege1, ...privilegeN ON rel1, ...relN TO \n\
+       "\
+\tGRANT privilege1, ...privilegeN ON rel1, ...relN TO \n\
 [PUBLIC|GROUP group|username]\n\
 \t privilege is ALL|SELECT|INSERT|UPDATE|DELETE|RULE"},
        {"insert",
                "insert tuples",
-       "INSERT INTO class_name [(attr1, ...attrN)]\n\
+       "\
+\tINSERT INTO class_name [(attr1, ...attrN)]\n\
 \tVALUES (expr1,..exprN) |\n\
 \tSELECT [DISTINCT [ON attrN]]\n\
 \texpr1, ...exprN\n\
@@ -236,37 +274,47 @@ static struct _helpStruct QL_HELP[] = {
 \t[UNION [ALL] SELECT ...];"},
        {"listen",
                "listen for notification on a relation",
-       "LISTEN class_name"},
+       "\
+\tLISTEN class_name"},
        {"load",
                "dynamically load a module",
-       "LOAD 'filename';"},
+       "\
+\tLOAD 'filename';"},
        {"lock",
                "exclusive lock a table inside a transaction",
-       "LOCK [TABLE] class_name;"},
+       "\
+\tLOCK [TABLE] class_name;"},
        {"move",
                "move an cursor position",
-       "MOVE [FORWARD|BACKWARD] [number|ALL] [IN cursorname];"},
+       "\
+\tMOVE [FORWARD|BACKWARD] [number|ALL] [IN cursorname];"},
        {"notify",
                "signal all frontends and backends listening on a relation",
-       "NOTIFY class_name"},
+       "\
+\tNOTIFY class_name"},
        {"reset",
                "set run-time environment back to default",
 #ifdef MULTIBYTE
-       "RESET DateStyle|GEQO|R_PLANS|CLIENT_ENCODING"},
+       "\
+\tRESET DateStyle|GEQO|R_PLANS|CLIENT_ENCODING"},
 #else
-       "RESET DateStyle|GEQO|R_PLANS"},
+       "\
+\tRESET DateStyle|GEQO|R_PLANS"},
 #endif
        {"revoke",
                "revoke access control from a user or group",
-       "REVOKE privilege1, ...privilegeN ON rel1, ...relN FROM \n\
+       "\
+\tREVOKE privilege1, ...privilegeN ON rel1, ...relN FROM \n\
 [PUBLIC|GROUP group|username]\n\
 \t privilege is ALL|SELECT|INSERT|UPDATE|DELETE|RULE"},
-       {"rollback",
+       {"rollback work",
                "abort a transaction",
-       "ROLLBACK [TRANSACTION|WORK]"},
+       "\
+\tROLLBACK [WORK|TRANSACTION]"},
        {"select",
                "retrieve tuples",
-       "SELECT [DISTINCT [ON attrN]] expr1 [AS attr1], ...exprN\n\
+       "\
+\tSELECT [DISTINCT [ON attrN]] expr1 [AS attr1], ...exprN\n\
 \t[INTO [TABLE] class_name]\n\
 \t[FROM from_list]\n\
 \t[WHERE qual]\n\
@@ -277,32 +325,38 @@ static struct _helpStruct QL_HELP[] = {
        {"set",
                "set run-time environment",
 #ifdef MULTIBYTE
-       "SET DateStyle TO 'ISO'|'SQL'|'Postgres'|'European'|'US'|'NonEuropean'\n\
+       "\
+\tSET DateStyle TO 'ISO'|'SQL'|'Postgres'|'European'|'US'|'NonEuropean'\n\
 set GEQO TO 'ON[=#]'|'OFF'\n\
 set R_PLANS TO 'ON'|'OFF'\n\
 set CLIENT_ENCODING TO 'EUC_JP'|'SJIS'|'EUC_CN'|'EUC_KR'|'EUC_TW'|'MULE_INTERNAL'|'LATIN1'|'LATIN2'|'LATIN3'|'LATIN4'|'LATIN5'"},
 #else
-       "SET DateStyle TO 'ISO'|'SQL'|'Postgres'|'European'|'US'|'NonEuropean'\n\
+       "\
+\tSET DateStyle TO 'ISO'|'SQL'|'Postgres'|'European'|'US'|'NonEuropean'\n\
 set GEQO TO 'ON[=#]'|'OFF'\n\
 set R_PLANS TO 'ON'| 'OFF'"},
 #endif
        {"show",
                "show current run-time environment",
 #ifdef MULTIBYTE
-       "SHOW DateStyle|GEQO|R_PLANS|CLIENT_ENCODING"},
+       "\
+\tSHOW DateStyle|GEQO|R_PLANS|CLIENT_ENCODING"},
 #else
-       "SHOW DateStyle|GEQO|R_PLANS"},
+       "\
+\tSHOW DateStyle|GEQO|R_PLANS"},
 #endif
        {"UPDATE",
                "update tuples",
-       "UPDATE class_name SET attr1 = expr1, ...attrN = exprN\n\
+       "\
+\tUPDATE class_name SET attr1 = expr1, ...attrN = exprN\n\
 \t [FROM from_clause]\n\
 \t[WHERE qual];"},
        {"vacuum",
                "vacuum the database, i.e. cleans out deleted records, updates statistics",
-       "VACUUM [VERBOSE] [ANALYZE] [table]\n\
+       "\
+\tVACUUM [VERBOSE] [ANALYZE] [table]\n\
 \tor\n\
-VACUUM [VERBOSE]  ANALYZE  [table [(attr1, ...attrN)]];"},
+\tVACUUM [VERBOSE]  ANALYZE  [table [(attr1, ...attrN)]];"},
        {NULL, NULL, NULL}                      /* important to keep a NULL terminator
                                                                 * here! */
 };