From 91a3628f6d95b559239b68c7ff3da87fcf583182 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Mon, 4 Dec 2000 09:51:51 +0000
Subject: [PATCH] clip plqnes

---
 Graphics/Mesh.cpp     |    7 +-
 Parser/Gmsh.tab.cpp   | 1658 +++++++++++++++++++++--------------------
 Parser/Gmsh.tab.cpp.h |  280 +++----
 Parser/Gmsh.y         |   10 +-
 Parser/Gmsh.yy.cpp    |    4 +-
 5 files changed, 1016 insertions(+), 943 deletions(-)

diff --git a/Graphics/Mesh.cpp b/Graphics/Mesh.cpp
index 4643b5c7ec..22867a0275 100644
--- a/Graphics/Mesh.cpp
+++ b/Graphics/Mesh.cpp
@@ -1,4 +1,4 @@
-/* $Id: Mesh.cpp,v 1.9 2000-12-04 09:29:38 colignon Exp $ */
+/* $Id: Mesh.cpp,v 1.10 2000-12-04 09:51:51 geuzaine Exp $ */
 
 #include "Gmsh.h"
 #include "GmshUI.h"
@@ -60,8 +60,9 @@ void Draw_Mesh (Mesh *M) {
   InitPosition();
 
   for(i = 0 ; i < 6 ; i++)
-    if(CTX.clip[i]) glClipPlane(GL_CLIP_PLANE0 + i, CTX.clip_plane[i]);
-  
+    if(CTX.clip[i])
+      glClipPlane(GL_CLIP_PLANE0 + i, CTX.clip_plane[i]);
+
   glPointSize(2);
   glLineWidth(1);
 
diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index 47589fa3dc..10e8bb4456 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -1,153 +1,152 @@
 
 /*  A Bison parser, made from Gmsh.y
- by  GNU Bison version 1.25
-  */
+    by GNU Bison version 1.28  */
 
 #define YYBISON 1  /* Identify Bison output.  */
 
-#define	tDOUBLE	258
-#define	tSTRING	259
-#define	tBIGSTR	260
-#define	tEND	261
-#define	tAFFECT	262
-#define	tDOTS	263
-#define	tPi	264
-#define	tExp	265
-#define	tLog	266
-#define	tLog10	267
-#define	tSqrt	268
-#define	tSin	269
-#define	tAsin	270
-#define	tCos	271
-#define	tAcos	272
-#define	tTan	273
-#define	tAtan	274
-#define	tAtan2	275
-#define	tSinh	276
-#define	tCosh	277
-#define	tTanh	278
-#define	tFabs	279
-#define	tFloor	280
-#define	tCeil	281
-#define	tFmod	282
-#define	tModulo	283
-#define	tHypot	284
-#define	tPoint	285
-#define	tCircle	286
-#define	tEllipsis	287
-#define	tLine	288
-#define	tSurface	289
-#define	tSpline	290
-#define	tVolume	291
-#define	tCharacteristic	292
-#define	tLength	293
-#define	tParametric	294
-#define	tElliptic	295
-#define	tPlane	296
-#define	tRuled	297
-#define	tTransfinite	298
-#define	tComplex	299
-#define	tPhysical	300
-#define	tUsing	301
-#define	tPower	302
-#define	tBump	303
-#define	tProgression	304
-#define	tAssociation	305
-#define	tRotate	306
-#define	tTranslate	307
-#define	tSymmetry	308
-#define	tDilate	309
-#define	tExtrude	310
-#define	tDuplicata	311
-#define	tLoop	312
-#define	tInclude	313
-#define	tRecombine	314
-#define	tDelete	315
-#define	tCoherence	316
-#define	tView	317
-#define	tOffset	318
-#define	tAttractor	319
-#define	tLayers	320
-#define	tScalarTetrahedron	321
-#define	tVectorTetrahedron	322
-#define	tTensorTetrahedron	323
-#define	tScalarTriangle	324
-#define	tVectorTriangle	325
-#define	tTensorTriangle	326
-#define	tScalarLine	327
-#define	tVectorLine	328
-#define	tTensorLine	329
-#define	tScalarPoint	330
-#define	tVectorPoint	331
-#define	tTensorPoint	332
-#define	tBSpline	333
-#define	tNurbs	334
-#define	tOrder	335
-#define	tWith	336
-#define	tBounds	337
-#define	tKnots	338
-#define	tColor	339
-#define	tGeneral	340
-#define	tGeometry	341
-#define	tMesh	342
-#define	tClip	343
-#define	tB_SPLINE_SURFACE_WITH_KNOTS	344
-#define	tB_SPLINE_CURVE_WITH_KNOTS	345
-#define	tCARTESIAN_POINT	346
-#define	tTRUE	347
-#define	tFALSE	348
-#define	tUNSPECIFIED	349
-#define	tU	350
-#define	tV	351
-#define	tEDGE_CURVE	352
-#define	tVERTEX_POINT	353
-#define	tORIENTED_EDGE	354
-#define	tPLANE	355
-#define	tFACE_OUTER_BOUND	356
-#define	tEDGE_LOOP	357
-#define	tADVANCED_FACE	358
-#define	tVECTOR	359
-#define	tDIRECTION	360
-#define	tAXIS2_PLACEMENT_3D	361
-#define	tISO	362
-#define	tENDISO	363
-#define	tENDSEC	364
-#define	tDATA	365
-#define	tHEADER	366
-#define	tFILE_DESCRIPTION	367
-#define	tFILE_SCHEMA	368
-#define	tFILE_NAME	369
-#define	tMANIFOLD_SOLID_BREP	370
-#define	tCLOSED_SHELL	371
-#define	tADVANCED_BREP_SHAPE_REPRESENTATION	372
-#define	tFACE_BOUND	373
-#define	tCYLINDRICAL_SURFACE	374
-#define	tCONICAL_SURFACE	375
-#define	tCIRCLE	376
-#define	tTRIMMED_CURVE	377
-#define	tGEOMETRIC_SET	378
-#define	tCOMPOSITE_CURVE_SEGMENT	379
-#define	tCONTINUOUS	380
-#define	tCOMPOSITE_CURVE	381
-#define	tTOROIDAL_SURFACE	382
-#define	tPRODUCT_DEFINITION	383
-#define	tPRODUCT_DEFINITION_SHAPE	384
-#define	tSHAPE_DEFINITION_REPRESENTATION	385
-#define	tELLIPSE	386
-#define	tTrimmed	387
-#define	tSolid	388
-#define	tEndSolid	389
-#define	tVertex	390
-#define	tFacet	391
-#define	tNormal	392
-#define	tOuter	393
-#define	tLoopSTL	394
-#define	tEndLoop	395
-#define	tEndFacet	396
-#define	UMINUS	397
+#define	tDOUBLE	257
+#define	tSTRING	258
+#define	tBIGSTR	259
+#define	tEND	260
+#define	tAFFECT	261
+#define	tDOTS	262
+#define	tPi	263
+#define	tExp	264
+#define	tLog	265
+#define	tLog10	266
+#define	tSqrt	267
+#define	tSin	268
+#define	tAsin	269
+#define	tCos	270
+#define	tAcos	271
+#define	tTan	272
+#define	tAtan	273
+#define	tAtan2	274
+#define	tSinh	275
+#define	tCosh	276
+#define	tTanh	277
+#define	tFabs	278
+#define	tFloor	279
+#define	tCeil	280
+#define	tFmod	281
+#define	tModulo	282
+#define	tHypot	283
+#define	tPoint	284
+#define	tCircle	285
+#define	tEllipsis	286
+#define	tLine	287
+#define	tSurface	288
+#define	tSpline	289
+#define	tVolume	290
+#define	tCharacteristic	291
+#define	tLength	292
+#define	tParametric	293
+#define	tElliptic	294
+#define	tPlane	295
+#define	tRuled	296
+#define	tTransfinite	297
+#define	tComplex	298
+#define	tPhysical	299
+#define	tUsing	300
+#define	tPower	301
+#define	tBump	302
+#define	tProgression	303
+#define	tAssociation	304
+#define	tRotate	305
+#define	tTranslate	306
+#define	tSymmetry	307
+#define	tDilate	308
+#define	tExtrude	309
+#define	tDuplicata	310
+#define	tLoop	311
+#define	tInclude	312
+#define	tRecombine	313
+#define	tDelete	314
+#define	tCoherence	315
+#define	tView	316
+#define	tOffset	317
+#define	tAttractor	318
+#define	tLayers	319
+#define	tScalarTetrahedron	320
+#define	tVectorTetrahedron	321
+#define	tTensorTetrahedron	322
+#define	tScalarTriangle	323
+#define	tVectorTriangle	324
+#define	tTensorTriangle	325
+#define	tScalarLine	326
+#define	tVectorLine	327
+#define	tTensorLine	328
+#define	tScalarPoint	329
+#define	tVectorPoint	330
+#define	tTensorPoint	331
+#define	tBSpline	332
+#define	tNurbs	333
+#define	tOrder	334
+#define	tWith	335
+#define	tBounds	336
+#define	tKnots	337
+#define	tColor	338
+#define	tGeneral	339
+#define	tGeometry	340
+#define	tMesh	341
+#define	tClip	342
+#define	tB_SPLINE_SURFACE_WITH_KNOTS	343
+#define	tB_SPLINE_CURVE_WITH_KNOTS	344
+#define	tCARTESIAN_POINT	345
+#define	tTRUE	346
+#define	tFALSE	347
+#define	tUNSPECIFIED	348
+#define	tU	349
+#define	tV	350
+#define	tEDGE_CURVE	351
+#define	tVERTEX_POINT	352
+#define	tORIENTED_EDGE	353
+#define	tPLANE	354
+#define	tFACE_OUTER_BOUND	355
+#define	tEDGE_LOOP	356
+#define	tADVANCED_FACE	357
+#define	tVECTOR	358
+#define	tDIRECTION	359
+#define	tAXIS2_PLACEMENT_3D	360
+#define	tISO	361
+#define	tENDISO	362
+#define	tENDSEC	363
+#define	tDATA	364
+#define	tHEADER	365
+#define	tFILE_DESCRIPTION	366
+#define	tFILE_SCHEMA	367
+#define	tFILE_NAME	368
+#define	tMANIFOLD_SOLID_BREP	369
+#define	tCLOSED_SHELL	370
+#define	tADVANCED_BREP_SHAPE_REPRESENTATION	371
+#define	tFACE_BOUND	372
+#define	tCYLINDRICAL_SURFACE	373
+#define	tCONICAL_SURFACE	374
+#define	tCIRCLE	375
+#define	tTRIMMED_CURVE	376
+#define	tGEOMETRIC_SET	377
+#define	tCOMPOSITE_CURVE_SEGMENT	378
+#define	tCONTINUOUS	379
+#define	tCOMPOSITE_CURVE	380
+#define	tTOROIDAL_SURFACE	381
+#define	tPRODUCT_DEFINITION	382
+#define	tPRODUCT_DEFINITION_SHAPE	383
+#define	tSHAPE_DEFINITION_REPRESENTATION	384
+#define	tELLIPSE	385
+#define	tTrimmed	386
+#define	tSolid	387
+#define	tEndSolid	388
+#define	tVertex	389
+#define	tFacet	390
+#define	tNormal	391
+#define	tOuter	392
+#define	tLoopSTL	393
+#define	tEndLoop	394
+#define	tEndFacet	395
+#define	UMINUS	396
 
 #line 1 "Gmsh.y"
- /* $Id: Gmsh.tab.cpp,v 1.12 2000-12-04 09:29:38 colignon Exp $ */
+ /* $Id: Gmsh.tab.cpp,v 1.13 2000-12-04 09:51:51 geuzaine Exp $ */
 
 #include <stdarg.h>
 
@@ -217,11 +216,11 @@ typedef union {
 
 
 
-#define	YYFINAL		1341
+#define	YYFINAL		1342
 #define	YYFLAG		-32768
 #define	YYNTBASE	158
 
-#define YYTRANSLATE(x) ((unsigned)(x) <= 397 ? yytranslate[x] : 238)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 396 ? yytranslate[x] : 238)
 
 static const short yytranslate[] = {     0,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -249,21 +248,21 @@ 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,     1,     2,     3,     4,     5,
-     6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-    46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-    56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-    66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-    76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
-    86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
-    96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
-   106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
-   116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
-   126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
-   136,   137,   138,   139,   140,   141,   149
+     2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
+     7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
+    37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
+    47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
+    57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
+    67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
+    77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
+    87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
+    97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
+   107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
+   117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
+   127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
+   137,   138,   139,   140,   141,   149
 };
 
 #if YYDEBUG != 0
@@ -287,14 +286,14 @@ static const short yyprhs[] = {     0,
   1255,  1257,  1259,  1261,  1262,  1265,  1270,  1275,  1279,  1288,
   1301,  1310,  1323,  1332,  1345,  1357,  1373,  1375,  1378,  1388,
   1391,  1398,  1408,  1418,  1427,  1436,  1445,  1452,  1457,  1460,
-  1465,  1481,  1482,  1485,  1486,  1492,  1493,  1499,  1500,  1506,
-  1507,  1510,  1515,  1524,  1529,  1539,  1547,  1549,  1551,  1553,
-  1555,  1557,  1559,  1563,  1567,  1571,  1575,  1579,  1583,  1586,
-  1589,  1594,  1599,  1604,  1609,  1614,  1619,  1624,  1629,  1634,
-  1639,  1646,  1651,  1656,  1661,  1666,  1671,  1676,  1683,  1690,
-  1697,  1699,  1701,  1703,  1707,  1714,  1726,  1736,  1744,  1752,
-  1753,  1757,  1759,  1763,  1764,  1768,  1772,  1774,  1778,  1779,
-  1781,  1785,  1787,  1789,  1793
+  1465,  1482,  1483,  1486,  1487,  1493,  1494,  1500,  1501,  1507,
+  1508,  1511,  1516,  1525,  1530,  1540,  1548,  1550,  1552,  1554,
+  1556,  1558,  1560,  1564,  1568,  1572,  1576,  1580,  1584,  1587,
+  1590,  1595,  1600,  1605,  1610,  1615,  1620,  1625,  1630,  1635,
+  1640,  1647,  1652,  1657,  1662,  1667,  1672,  1677,  1684,  1691,
+  1698,  1700,  1702,  1704,  1708,  1715,  1727,  1737,  1745,  1753,
+  1754,  1758,  1760,  1764,  1765,  1769,  1773,  1775,  1779,  1780,
+  1782,  1786,  1788,  1790,  1794
 };
 
 static const short yyrhs[] = {   160,
@@ -445,39 +444,39 @@ static const short yyrhs[] = {   160,
      7,   236,     6,     0,    59,    34,   236,     7,   228,     6,
      0,    59,    34,   236,     6,     0,    61,     6,     0,    84,
    154,   219,   155,     0,    88,    41,   151,   228,   153,     7,
-   154,   228,   152,   228,   152,   228,   152,   228,   155,     0,
-     0,   219,   220,     0,     0,    85,   221,   154,   224,   155,
-     0,     0,    86,   222,   154,   224,   155,     0,     0,    87,
-   223,   154,   224,   155,     0,     0,   225,   224,     0,     4,
-     7,     4,     6,     0,     4,     7,   154,     4,   152,   228,
-   155,     6,     0,     4,     7,   226,     6,     0,   154,   228,
-   152,   228,   152,   228,   152,   228,   155,     0,   154,   228,
-   152,   228,   152,   228,   155,     0,    92,     0,    93,     0,
-    94,     0,    95,     0,    96,     0,   229,     0,   151,   228,
-   153,     0,   228,   145,   228,     0,   228,   144,   228,     0,
-   228,   146,   228,     0,   228,   147,   228,     0,   228,   150,
-   228,     0,   145,   228,     0,   144,   228,     0,    10,   151,
-   228,   153,     0,    11,   151,   228,   153,     0,    12,   151,
-   228,   153,     0,    13,   151,   228,   153,     0,    14,   151,
-   228,   153,     0,    15,   151,   228,   153,     0,    16,   151,
-   228,   153,     0,    17,   151,   228,   153,     0,    18,   151,
-   228,   153,     0,    19,   151,   228,   153,     0,    20,   151,
-   228,   152,   228,   153,     0,    21,   151,   228,   153,     0,
-    22,   151,   228,   153,     0,    23,   151,   228,   153,     0,
-    24,   151,   228,   153,     0,    25,   151,   228,   153,     0,
-    26,   151,   228,   153,     0,    27,   151,   228,   152,   228,
-   153,     0,    28,   151,   228,   152,   228,   153,     0,    29,
-   151,   228,   152,   228,   153,     0,     3,     0,     9,     0,
-     4,     0,   228,     8,   228,     0,   228,     8,   156,   228,
-   157,   228,     0,   154,   228,   152,   228,   152,   228,   152,
-   228,   152,   228,   155,     0,   154,   228,   152,   228,   152,
-   228,   152,   228,   155,     0,   154,   228,   152,   228,   152,
-   228,   155,     0,   151,   228,   152,   228,   152,   228,   153,
-     0,     0,   151,   233,   153,     0,     5,     0,   233,   152,
-     5,     0,     0,   154,   235,   155,     0,   151,   235,   153,
-     0,   236,     0,   235,   152,   236,     0,     0,   228,     0,
-   154,   237,   155,     0,   228,     0,   230,     0,   237,   152,
-   228,     0,   237,   152,   230,     0
+   154,   228,   152,   228,   152,   228,   152,   228,   155,     6,
+     0,     0,   219,   220,     0,     0,    85,   221,   154,   224,
+   155,     0,     0,    86,   222,   154,   224,   155,     0,     0,
+    87,   223,   154,   224,   155,     0,     0,   225,   224,     0,
+     4,     7,     4,     6,     0,     4,     7,   154,     4,   152,
+   228,   155,     6,     0,     4,     7,   226,     6,     0,   154,
+   228,   152,   228,   152,   228,   152,   228,   155,     0,   154,
+   228,   152,   228,   152,   228,   155,     0,    92,     0,    93,
+     0,    94,     0,    95,     0,    96,     0,   229,     0,   151,
+   228,   153,     0,   228,   145,   228,     0,   228,   144,   228,
+     0,   228,   146,   228,     0,   228,   147,   228,     0,   228,
+   150,   228,     0,   145,   228,     0,   144,   228,     0,    10,
+   151,   228,   153,     0,    11,   151,   228,   153,     0,    12,
+   151,   228,   153,     0,    13,   151,   228,   153,     0,    14,
+   151,   228,   153,     0,    15,   151,   228,   153,     0,    16,
+   151,   228,   153,     0,    17,   151,   228,   153,     0,    18,
+   151,   228,   153,     0,    19,   151,   228,   153,     0,    20,
+   151,   228,   152,   228,   153,     0,    21,   151,   228,   153,
+     0,    22,   151,   228,   153,     0,    23,   151,   228,   153,
+     0,    24,   151,   228,   153,     0,    25,   151,   228,   153,
+     0,    26,   151,   228,   153,     0,    27,   151,   228,   152,
+   228,   153,     0,    28,   151,   228,   152,   228,   153,     0,
+    29,   151,   228,   152,   228,   153,     0,     3,     0,     9,
+     0,     4,     0,   228,     8,   228,     0,   228,     8,   156,
+   228,   157,   228,     0,   154,   228,   152,   228,   152,   228,
+   152,   228,   152,   228,   155,     0,   154,   228,   152,   228,
+   152,   228,   152,   228,   155,     0,   154,   228,   152,   228,
+   152,   228,   155,     0,   151,   228,   152,   228,   152,   228,
+   153,     0,     0,   151,   233,   153,     0,     5,     0,   233,
+   152,     5,     0,     0,   154,   235,   155,     0,   151,   235,
+   153,     0,   236,     0,   235,   152,   236,     0,     0,   228,
+     0,   154,   237,   155,     0,   228,     0,   230,     0,   237,
+   152,   228,     0,   237,   152,   230,     0
 };
 
 #endif
@@ -607,7 +606,7 @@ static const short yyr2[] = {     0,
      1,     1,     1,     0,     2,     4,     4,     3,     8,    12,
      8,    12,     8,    12,    11,    15,     1,     2,     9,     2,
      6,     9,     9,     8,     8,     8,     6,     4,     2,     4,
-    15,     0,     2,     0,     5,     0,     5,     0,     5,     0,
+    16,     0,     2,     0,     5,     0,     5,     0,     5,     0,
      2,     4,     8,     4,     9,     7,     1,     1,     1,     1,
      1,     1,     3,     3,     3,     3,     3,     3,     2,     2,
      4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
@@ -730,394 +729,396 @@ static const short yydefact[] = {    51,
      0,     0,     0,     0,     0,    24,    27,     0,     0,     0,
    176,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,    80,     0,    84,     0,    88,     0,     0,     0,
-   206,   191,     0,     0,   259,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   206,     0,     0,     0,   259,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    44,    20,   139,   179,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,    81,    83,    85,    87,    89,    91,     0,
-     0,   205,     0,     0,   259,     0,     0,     0,     0,     0,
-     0,    94,    98,   102,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   191,     0,     0,
+     0,    44,    20,   139,   179,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,    81,    83,    85,    87,    89,    91,
+     0,     0,   205,     0,     0,   259,     0,     0,     0,     0,
+     0,     0,    94,    98,   102,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     5,   259,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   150,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,    92,     0,    96,     0,   100,     0,   259,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   149,     0,    22,     0,     0,     0,     0,
-     0,     0,    93,    95,    97,    99,   101,   103,   259,     0,
-     0,     0,   106,   110,   114,     0,     0,     0,     0,     0,
-     0,     0,   259,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   104,     0,   108,     0,   112,     0,
+     0,     5,   259,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   150,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,    92,     0,    96,     0,   100,     0,
+   259,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   149,     0,    22,     0,     0,     0,
+     0,     0,     0,    93,    95,    97,    99,   101,   103,   259,
+     0,     0,     0,   106,   110,   114,     0,     0,     0,     0,
+     0,     0,     0,   259,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   104,     0,   108,     0,   112,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   105,   107,   109,   111,   113,   115,     0,
-   118,   122,   126,    23,     0,     0,     0,     0,     0,     0,
-     0,   116,     0,   120,     0,   124,     0,     0,     0,     0,
-     0,     0,   117,   119,   121,   123,   125,   127,     0,     0,
-     0
+     0,     0,     0,     0,   105,   107,   109,   111,   113,   115,
+     0,   118,   122,   126,    23,     0,     0,     0,     0,     0,
+     0,     0,   116,     0,   120,     0,   124,     0,     0,     0,
+     0,     0,     0,   117,   119,   121,   123,   125,   127,     0,
+     0,     0
 };
 
-static const short yydefgoto[] = {  1339,
+static const short yydefgoto[] = {  1340,
      4,     5,    18,    19,    20,    21,     6,    56,    57,   379,
-  1112,   502,  1058,  1114,   503,  1059,  1116,   504,  1060,  1223,
-   505,  1196,  1225,   506,  1197,  1227,   507,  1198,  1284,   508,
-  1270,  1286,   509,  1271,  1288,   510,  1272,  1321,   511,  1315,
-  1323,   512,  1316,  1325,   513,  1317,    58,   374,   364,   365,
+  1112,   502,  1058,  1114,   503,  1059,  1116,   504,  1060,  1224,
+   505,  1197,  1226,   506,  1198,  1228,   507,  1199,  1285,   508,
+  1271,  1287,   509,  1272,  1289,   510,  1273,  1322,   511,  1316,
+  1324,   512,  1317,  1326,   513,  1318,    58,   374,   364,   365,
    366,   367,    62,    63,    64,   859,   860,    65,    66,    67,
    266,   390,   520,   521,   522,   719,   720,   883,   655,   231,
     95,   346,   135,   215,   329,   716,   802,   803,   347
 };
 
 static const short yypact[] = {     7,
--32768,-32768,  -122,-32768,   221,  1498,  1349,    21,    50,    65,
-    77,    84,   126,   139,   -87,   -23,    37,-32768,-32768,-32768,
--32768,   183,   202,  -106,    69,    79,   -46,   -31,    96,    97,
-   211,   103,   208,   224,   225,    36,   230,    58,   113,   -98,
-   -98,   127,    -5,   153,   306,   290,   190,   274,   340,    66,
-   196,   -29,   198,   312,   327,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,  -120,-32768,   465,  1499,  1350,    30,    38,    37,
+    47,    52,    61,    67,   -80,   -68,   -61,-32768,-32768,-32768,
+-32768,    92,   132,  -126,   -23,    45,   -46,   -31,    46,    53,
+   107,    62,   172,   192,   208,    63,   188,    58,    76,   -16,
+   -16,    93,    26,    94,   244,   220,   104,   253,   261,    39,
+   116,   -29,   126,   240,   272,-32768,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-   212,   217,   222,   226,   236,   249,   260,   265,   279,   282,
-   284,   285,   287,   288,   291,   298,   301,   302,   303,   309,
-  1349,  1349,  1349,  1322,-32768,-32768,  1321,-32768,-32768,-32768,
--32768,-32768,   310,   310,   371,-32768,  1349,  1349,  1349,  1349,
-  1349,   311,  1349,  1349,   318,  1349,  1349,  1349,   937,  1349,
-   227,   323,   324,   937,   228,   239,   326,   328,   329,   334,
-   341,   -98,  1349,  1349,   271,   297,   -98,   345,   355,   361,
--32768,   422,   937,-32768,-32768,   -59,   937,   937,  1349,   -62,
-  1349,-32768,   365,   368,  1349,  1349,  1349,  1349,  1349,  1349,
-  1349,  1349,  1349,  1349,  1349,  1349,  1349,  1349,  1349,  1349,
-  1349,  1349,  1349,  1349,   344,   344,   428,  1349,  1349,  1349,
-  1349,  1349,  1322,   370,   372,   380,   385,   387,   410,   411,
-   412,   419,   426,   429,   434,   435,   436,   437,   438,   439,
-   452,   454,   455,   457,   462,   466,   467,   470,   471,   472,
-   473,   482,   487,   513,   381,   325,   427,    40,   692,   204,
-   830,   851,  1349,   888,   220,  1349,   343,   901,   950,  1349,
-   668,   609,   961,  1349,  1349,  1349,   634,  1349,  1349,  1349,
-  1349,  1349,  1349,  1349,   491,   916,  1072,   187,   187,   492,
-  1349,  1349,  1349,   595,-32768,    91,   731,   -98,-32768,   638,
-   640,   993,   566,  1349,  1005,   -73,  1349,  1349,  1015,  1034,
-  1062,  1092,  1112,  1129,  1148,  1309,  1330,  1342,  1158,  1359,
-  1369,  1419,  1434,  1444,  1454,  1171,  1837,  1846,  1349,  1349,
--32768,   -88,   170,   344,   344,   344,   -70,   649,   651,   652,
-   653,   657,   659,   661,   662,   663,   664,   665,   674,   675,
-   678,   679,   681,   682,   684,   686,   688,   693,   694,   696,
-   536,   697,   705,   706,   708,   711,   710,-32768,    -6,   714,
-   715,   721,-32768,   722,   725,   727,   728,  1464,   729,   726,
-  1474,   739,   740,   742,   125,-32768,   -74,  1349,   745,   367,
-  1487,  1497,  1349,   382,   421,  1507,  1517,  1527,  1537,  1547,
-   -98,  1349,  1349,-32768,   600,   986,-32768,   601,  1349,  1855,
-  1864,  1873,-32768,-32768,-32768,  1349,-32768,   603,   754,   607,
-   605,   753,   620,  1557,   767,-32768,-32768,-32768,-32768,-32768,
-  1567,  1577,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,  1349,-32768,-32768,-32768,-32768,-32768,-32768,  1349,
-  1349,  1349,  -130,  -130,   639,   625,   627,   641,   644,   646,
-   647,   680,   689,   691,   712,   713,   720,   730,   733,   744,
-   747,   749,   750,   751,   756,   758,   759,   760,   773,   778,
-   781,   783,   786,   790,   791,   787,-32768,   655,-32768,   792,
-   -98,-32768,   937,   937,   797,   937,-32768,   798,-32768,   937,
-   937,   275,  1349,-32768,    48,   690,   809,   810,   826,    33,
-   827,   833,   839,   855,   869,   871,   873,   793,  1882,  1891,
--32768,-32768,   465,   -98,   -98,   -98,    57,-32768,   732,   820,
-   821,   831,   841,   849,   852,   854,   878,   885,   886,   889,
-   875,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,  1349,  1349,   937,  1349,   884,   937,   741,
-   780,   848,   887,   898,  1587,  1597,  1607,  1617,   846,  1003,
-  1349,  1349,   -98,  1021,  1036,   896,  1041,  1046,   937,   937,
-  1049,   -98,  1050,  1052,   937,   937,  1053,  1056,  1064,  1080,
-  1081,   937,    43,   937,  1082,  1084,  1085,  1089,  1095,-32768,
-  1093,   310,  1096,     3,  1098,   937,  1103,   937,  1104,  1109,
-  1349,   668,   125,-32768,-32768,  1349,   937,   937,   937,-32768,
-   133,   937,   937,   937,   937,   937,   937,   937,  1349,  1349,
-  1349,   933,    44,    45,    53,-32768,   784,  1349,  1349,  1349,
-  1349,  1349,  1349,  1349,  1349,  1349,  1349,  1349,  1349,-32768,
-  1900,  1909,  1111,  1627,    64,  1018,  1115,  1115,  1115,   967,
-  1349,-32768,-32768,-32768,-32768,  1349,   970,  1918,  1927,   980,
-   983,   989,   992,   994,  1001,  1004,  1002,  1014,  1022,  1024,
-  1029,  1030,  1033,  1037,  1038,  1042,  1043,  1044,  1035,-32768,
--32768,-32768,-32768,-32768,  1058,  1059,  1061,  1068,  1069,  1040,
-  1071,-32768,  1088,-32768,-32768,   -98,-32768,  1139,-32768,  1150,
--32768,-32768,  -114,  1936,  1161,  1180,  1208,  1349,  1349,  1226,
-  1228,  1235,  1237,  1238,  1240,  1241,   505,  1637,   262,   187,
-   -98,  1242,   -98,  1243,   -98,    15,  1244,  1945,  1954,  1963,
-  1972,  1981,  1990,  1999,  2008,  2017,  2026,  2035,  2044,  1349,
-  1349,-32768,  1245,   937,   937,  1168,   937,  1253,  1106,  1115,
-  1108,  1122,  1349,   531,  1322,  1261,  1349,   937,  1260,  1275,
-  1274,  1135,  1277,    43,  1282,  1287,  1349,  1290,  1294,  1293,
-  1300,  1297,    43,  1349,  1349,  1349,   937,  1301,  1306,    43,
-  1349,  1311,  1316,  1323,  1349,   310,  1324,-32768,-32768,  1349,
-  1349,-32768,-32768,-32768,    67,   106,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,  1173,-32768,  1349,-32768,  1200,  1176,-32768,
-  1204,-32768,  1205,-32768,   -10,-32768,  1349,  1349,  1349,  1349,
-  1349,  1349,  1349,  1349,  1349,  1349,  1349,  1349,  2053,  2062,
-    64,    73,-32768,   121,  1227,  1302,    14,-32768,-32768,-32768,
--32768,  2071,  1377,  1322,  1231,  2080,  1254,-32768,  1255,-32768,
-  1256,-32768,  1262,-32768,  1257,  1647,-32768,  1264,-32768,-32768,
-  1276,  1278,  1657,  2089,  1667,  1265,-32768,  1279,  1280,  2098,
-  1283,  1281,-32768,  2107,  1305,-32768,   668,  2116,-32768,-32768,
-   187,   277,-32768,  1349,  1349,  1349,  1407,  1292,   -25,-32768,
-  2125,  2134,  2143,  2152,  2161,  2170,  2179,  2188,  2197,  2206,
-  2215,  2224,  1349,  1349,  1331,   937,-32768,-32768,   937,  1349,
-  1422,  1376,  1424,  1349,-32768,   192,  1452,    64,    43,  1457,
-  1349,  1455,    43,  1458,  1460,  1459,  1465,  1472,  1349,  1473,
-   937,  1475,  1476,  1349,  1467,  1478,  1349,  1480,  1485,  1336,
-  1349,-32768,   550,   562,   578,-32768,   937,  1490,-32768,  1349,
-  1349,  1349,  1349,  1349,  1349,  1349,  1349,  1349,  1349,  1349,
-  1349,  1677,   596,  1343,-32768,  1355,   118,-32768,  1356,  2233,
--32768,  2242,  1349,-32768,  1358,  1365,  1366,  2251,-32768,  1348,
--32768,  1370,-32768,-32768,-32768,  1687,-32768,  1372,-32768,-32768,
-  1697,  1373,-32768,  1707,  1384,  1392,-32768,   656,  1505,  1519,
-    16,  1393,-32768,  2260,  2269,  2278,  2287,  2296,  2305,  2314,
-  2323,  2332,  1717,  1727,  1737,  1540,  1541,   937,   937,-32768,
-  1349,  1349,  1349,  1322,    43,    43,    43,    43,  1542,  1549,
-  1555,    43,  1561,  1562,  1564,  1566,  1568,-32768,-32768,-32768,
--32768,   -10,   937,  1349,  1349,  1349,  1349,  1349,  1349,  1349,
-  1349,  1349,-32768,-32768,-32768,-32768,-32768,  1423,  1428,   724,
-  2341,  2350,  1322,  1433,  1440,  1421,  1442,-32768,-32768,-32768,
-  1441,-32768,-32768,-32768,  1450,  1451,   -24,  1453,  2359,  2368,
-  2377,  2386,  2395,  2404,  2413,  2422,  2431,  1461,  1462,  1468,
-   937,  1516,  1600,  1349,  1349,   245,    43,    43,  1606,  1619,
-    43,  1608,  1618,  1620,   937,  1349,  1349,  1349,  1349,  1349,
-  1349,  1349,  1349,  1349,  1349,  1349,  1349,  1481,  1484,-32768,
-   321,   743,  1349,  1477,  1483,-32768,-32768,  1486,  1492,  1491,
--32768,  1493,  2440,  2449,  2458,  2467,  2476,  2485,  2494,  2503,
-  2512,   122,   668,   154,   668,   166,   668,  1548,  1349,  1349,
--32768,-32768,  1322,    43,   937,  1643,  1649,  1650,  1652,  1349,
-  1349,  1349,  1349,  1349,  1349,  1349,  1349,  1349,  1349,  1653,
-  1349,  1659,  1349,  1660,  1514,  2521,   782,  1322,  1523,  1524,
--32768,-32768,-32768,-32768,  2530,  2539,  2548,  2557,  2566,  2575,
-  1747,  1757,  1767,   668,-32768,   668,-32768,   668,-32768,  1349,
-  1349,-32768,   300,    43,   937,  1349,  1349,  1349,  1349,  1349,
-  1349,-32768,-32768,-32768,  2584,   823,  1528,  1526,  1533,  2593,
-  2602,  2611,  2620,  2629,  2638,  1525,  1532,  1534,  1349,  1683,
--32768,   937,    43,  1349,  1349,  1349,  1349,  1349,  1349,  1349,
-  1349,  1349,   844,-32768,  1543,  1545,  2647,  2656,  2665,  2674,
-  2683,  2692,   171,   668,   188,   668,   205,   668,  1690,   937,
-  1693,  1349,  1349,  1349,  1349,  1349,  1349,  1349,  1699,  1349,
-  1700,  1349,  1702,-32768,  1563,-32768,  2701,  2710,  2719,  1777,
-  1787,  1797,   668,-32768,   668,-32768,   668,-32768,   937,  1349,
-  1349,  1349,-32768,-32768,-32768,  1573,  2728,  2737,  2746,  1565,
-  1572,  1574,   937,  1349,  1349,  1349,  1349,  1349,  1349,  1583,
-  2755,  2764,  2773,   231,   668,   242,   668,   246,   668,    43,
-  1349,  1349,  1349,  1349,  1703,  1349,  1710,  1349,  1712,  1576,
-  1807,  1817,  1827,   668,-32768,   668,-32768,   668,-32768,  1730,
--32768,-32768,-32768,-32768,  1584,  1585,  1591,  1349,  1349,  1349,
-   247,   668,   258,   668,   263,   668,  1349,  1740,  1349,  1742,
-  1349,  1743,   668,-32768,   668,-32768,   668,-32768,  1755,  1756,
--32768
+   156,   176,   178,   189,   199,   206,   224,   225,   233,   251,
+   260,   264,   265,   267,   276,   281,   284,   285,   298,   300,
+  1350,  1350,  1350,  1323,-32768,-32768,  1322,-32768,-32768,-32768,
+-32768,-32768,   301,   301,   308,-32768,  1350,  1350,  1350,  1350,
+  1350,   302,  1350,  1350,   303,  1350,  1350,  1350,   937,  1350,
+   205,   309,   310,   937,   241,   292,   311,   316,   318,   320,
+   322,   -16,  1350,  1350,   324,   325,   -16,   333,   334,   336,
+-32768,   332,   937,-32768,-32768,   -59,   937,   937,  1350,   -62,
+  1350,-32768,   340,   341,  1350,  1350,  1350,  1350,  1350,  1350,
+  1350,  1350,  1350,  1350,  1350,  1350,  1350,  1350,  1350,  1350,
+  1350,  1350,  1350,  1350,   215,   215,   749,  1350,  1350,  1350,
+  1350,  1350,  1323,   342,   343,   347,   348,   358,   364,   365,
+   368,   369,   370,   372,   380,   385,   387,   411,   412,   419,
+   429,   430,   434,   435,   436,   437,   438,   439,   452,   483,
+   485,   486,   487,   424,   381,   463,   489,    40,   830,   330,
+   891,   901,  1350,   915,   367,  1350,   382,   951,   961,  1350,
+   668,   632,   993,  1350,  1350,  1350,   636,  1350,  1350,  1350,
+  1350,  1350,  1350,  1350,   492,  1073,  1159,   187,   187,   493,
+  1350,  1350,  1350,   289,-32768,     9,   576,   -16,-32768,   640,
+   641,  1006,   567,  1350,  1016,   -73,  1350,  1350,  1035,  1063,
+  1093,  1113,  1130,  1149,  1310,  1331,  1343,  1360,  1172,  1370,
+  1420,  1435,  1445,  1455,  1465,  1848,  1857,  1866,  1350,  1350,
+-32768,   197,   214,   215,   215,   215,   -70,   645,   646,   647,
+   655,   659,   661,   663,   664,   665,   669,   674,   675,   678,
+   679,   681,   682,   684,   686,   688,   693,   694,   696,   697,
+   536,   701,   702,   704,   705,   670,   708,-32768,    -6,   709,
+   706,   710,-32768,   712,   711,   718,   719,  1475,   721,   723,
+  1488,   727,   728,   729,    55,-32768,   -74,  1350,   738,   512,
+  1498,  1508,  1350,   550,   577,  1518,  1528,  1538,  1548,  1558,
+   -16,  1350,  1350,-32768,   579,   731,-32768,   592,  1350,  1875,
+  1884,  1893,-32768,-32768,-32768,  1350,-32768,   595,   556,   599,
+   598,   748,   605,  1568,   750,-32768,-32768,-32768,-32768,-32768,
+  1578,  1588,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,  1350,-32768,-32768,-32768,-32768,-32768,-32768,  1350,
+  1350,  1350,   -14,   -14,   619,   607,   608,   622,   625,   626,
+   627,   644,   652,   653,   680,   685,   691,   692,   703,   713,
+   716,   720,   722,   724,   726,   734,   736,   737,   739,   746,
+   751,   753,   756,   758,   759,   766,-32768,   639,-32768,   760,
+   -16,-32768,   937,   937,   786,   937,-32768,   791,-32768,   937,
+   937,   275,  1350,-32768,    48,   654,   792,   809,   810,    33,
+   826,   827,   829,   831,   839,   849,   863,   773,  1902,  1911,
+-32768,-32768,   596,   -16,   -16,   -16,    64,-32768,   732,   779,
+   783,   784,   787,   788,   793,   794,   820,   821,   841,   852,
+   865,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,  1350,  1350,   937,  1350,   880,   937,   747,
+   789,   828,   926,   935,  1598,  1608,  1618,  1628,   846,   997,
+  1350,  1350,   -16,   999,  1001,   859,  1017,  1018,   937,   937,
+  1020,   -16,  1021,  1022,   937,   937,  1029,  1030,  1037,  1039,
+  1046,   937,   305,   937,  1047,  1048,  1050,  1049,  1053,-32768,
+  1057,   301,  1058,     3,  1060,   937,  1061,   937,  1077,  1078,
+  1350,   668,    55,-32768,-32768,  1350,   937,   937,   937,-32768,
+   133,   937,   937,   937,   937,   937,   937,   937,  1350,  1350,
+  1350,   931,    60,    65,    66,-32768,   754,  1350,  1350,  1350,
+  1350,  1350,  1350,  1350,  1350,  1350,  1350,  1350,  1350,-32768,
+  1920,  1929,  1081,  1638,    71,  1007,  1085,  1085,  1085,   938,
+  1350,-32768,-32768,-32768,-32768,  1350,   941,  1938,  1947,   946,
+   948,   949,   957,   950,   958,   962,   965,   966,   967,   970,
+   980,   982,   989,   992,   995,   996,  1002,  1003,  1004,-32768,
+-32768,-32768,-32768,-32768,  1015,  1024,  1025,  1031,  1032,  1005,
+  1034,-32768,  1038,-32768,-32768,   -16,-32768,  1139,-32768,  1162,
+-32768,-32768,   -95,  1956,  1181,  1183,  1185,  1350,  1350,  1188,
+  1189,  1190,  1191,  1205,  1206,  1208,   656,  1648,   262,   187,
+   -16,  1209,   -16,  1215,   -16,    15,  1216,  1965,  1974,  1983,
+  1992,  2001,  2010,  2019,  2028,  2037,  2046,  2055,  2064,  1350,
+  1350,-32768,  1112,   937,   937,  1141,   937,  1226,  1080,  1085,
+  1086,  1087,  1350,   531,  1323,  1241,  1350,   937,  1239,  1244,
+  1242,  1103,  1245,   305,  1246,  1247,  1350,  1255,  1250,  1256,
+  1258,  1262,   305,  1350,  1350,  1350,   937,  1261,  1275,   305,
+  1350,  1276,  1278,  1283,  1350,   301,  1285,-32768,-32768,  1350,
+  1350,-32768,-32768,-32768,   106,   118,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,  1128,-32768,  1350,-32768,  1129,  1145,-32768,
+  1146,-32768,  1148,-32768,   -32,-32768,  1350,  1350,  1350,  1350,
+  1350,  1350,  1350,  1350,  1350,  1350,  1350,  1350,  2073,  2082,
+    71,    36,-32768,   121,  1147,  1227,    14,-32768,-32768,-32768,
+-32768,  2091,  1302,  1323,  1157,  2100,  1163,-32768,  1168,-32768,
+  1176,-32768,  1177,-32768,  1179,  1658,-32768,  1204,-32768,-32768,
+  1229,  1230,  1668,  2109,  1678,  1232,-32768,  1254,  1257,  2118,
+  1233,  1263,-32768,  2127,  1265,-32768,   668,  2136,-32768,-32768,
+   187,   278,-32768,  1350,  1350,  1350,  1351,  1175,   -25,-32768,
+  2145,  2154,  2163,  2172,  2181,  2190,  2199,  2208,  2217,  2226,
+  2235,  2244,  1350,  1350,  1325,   937,-32768,-32768,   937,  1350,
+  1352,  1377,  1403,  1350,-32768,  -115,  1408,    71,   305,  1412,
+  1350,  1423,   305,  1424,  1415,  1425,  1426,  1427,  1350,  1428,
+   937,  1429,  1430,  1350,  1444,  1452,  1350,  1454,  1456,  1307,
+  1350,-32768,   695,   707,   714,-32768,   937,  1458,-32768,  1350,
+  1350,  1350,  1350,  1350,  1350,  1350,  1350,  1350,  1350,  1350,
+  1350,  1688,   735,  1311,-32768,  1314,   125,-32768,  1319,  2253,
+-32768,  2262,  1350,-32768,  1320,  1327,  1328,  2271,-32768,  1329,
+-32768,  1330,-32768,-32768,-32768,  1698,-32768,  1333,-32768,-32768,
+  1708,  1338,-32768,  1718,  1334,  1340,-32768,   782,  1491,  1492,
+    16,  1356,-32768,  2280,  2289,  2298,  2307,  2316,  2325,  2334,
+  2343,  2352,  1728,  1738,  1748,  1496,  1503,   937,   937,-32768,
+  1350,  1350,  1350,  1323,   305,   305,   305,   305,  1505,  1506,
+  1512,   305,  1513,  1519,  1520,  1522,  1532,-32768,-32768,-32768,
+-32768,   -32,   937,  1350,  1350,  1350,  1350,  1350,  1350,  1350,
+  1350,  1350,-32768,-32768,-32768,-32768,-32768,  1372,  1390,   823,
+  2361,  2370,  1323,  1394,  1395,  1396,  1409,-32768,-32768,-32768,
+  1404,-32768,-32768,-32768,  1416,  1417,   -18,  1419,  2379,  2388,
+  2397,  2406,  2415,  2424,  2433,  2442,  2451,  1418,  1421,  1422,
+   937,  1468,  1580,  1350,  1350,   242,   305,   305,  1587,  1590,
+   305,  1569,  1579,  1591,   937,  1350,  1350,  1350,  1350,  1350,
+  1350,  1350,  1350,  1350,  1350,  1350,  1350,  1439,  1449,-32768,
+   295,   844,  1350,  1461,  1462,-32768,-32768,  1451,  1453,  1469,
+-32768,  1471,  2460,  2469,  2478,  2487,  2496,  2505,  2514,  2523,
+  2532,   122,   668,   153,   668,   162,   668,  1527,  1350,  1350,
+-32768,  1610,  1323,   305,   937,  1611,  1617,  1621,  1623,  1350,
+  1350,  1350,  1350,  1350,  1350,  1350,  1350,  1350,  1350,  1624,
+  1350,  1630,  1350,  1631,  1485,  2541,   851,-32768,  1323,  1494,
+  1495,-32768,-32768,-32768,-32768,  2550,  2559,  2568,  2577,  2586,
+  2595,  1758,  1768,  1778,   668,-32768,   668,-32768,   668,-32768,
+  1350,  1350,-32768,   421,   305,   937,  1350,  1350,  1350,  1350,
+  1350,  1350,-32768,-32768,-32768,  2604,   872,  1509,  1497,  1504,
+  2613,  2622,  2631,  2640,  2649,  2658,  1486,  1515,  1516,  1350,
+  1651,-32768,   937,   305,  1350,  1350,  1350,  1350,  1350,  1350,
+  1350,  1350,  1350,   884,-32768,  1507,  1514,  2667,  2676,  2685,
+  2694,  2703,  2712,   163,   668,   184,   668,   190,   668,  1654,
+   937,  1660,  1350,  1350,  1350,  1350,  1350,  1350,  1350,  1670,
+  1350,  1671,  1350,  1673,-32768,  1534,-32768,  2721,  2730,  2739,
+  1788,  1798,  1808,   668,-32768,   668,-32768,   668,-32768,   937,
+  1350,  1350,  1350,-32768,-32768,-32768,  1535,  2748,  2757,  2766,
+  1526,  1536,  1542,   937,  1350,  1350,  1350,  1350,  1350,  1350,
+  1537,  2775,  2784,  2793,   196,   668,   211,   668,   218,   668,
+   305,  1350,  1350,  1350,  1350,  1691,  1350,  1693,  1350,  1694,
+  1553,  1818,  1828,  1838,   668,-32768,   668,-32768,   668,-32768,
+  1701,-32768,-32768,-32768,-32768,  1555,  1556,  1562,  1350,  1350,
+  1350,   228,   668,   238,   668,   239,   668,  1350,  1711,  1350,
+  1713,  1350,  1714,   668,-32768,   668,-32768,   668,-32768,  1726,
+  1727,-32768
 };
 
 static const short yypgoto[] = {-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1270,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1248,
 -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,  1753,  1759,  -247,
-   181,  1760,-32768,-32768,-32768,   757,  -856,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,  -595,-32768,-32768,  -683,    -7,
--32768,  1312,    -3,  -103,-32768,  -795,  1063,   -82,-32768
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1723,  1724,  -247,
+   269,  1731,-32768,-32768,-32768,   744,  -856,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,  -595,-32768,-32768,  -686,    -7,
+-32768,  1277,    -3,  -103,-32768,  -795,  1042,   -82,-32768
 };
 
 
-#define	YYLAST		2925
+#define	YYLAST		2945
 
 
 static const short yytable[] = {    94,
    216,   368,   919,   258,   150,   875,    -7,    -7,   665,    -7,
-   112,   386,   387,   388,     7,   180,   181,   881,   263,   182,
-   784,  1011,   721,   722,   138,   115,    96,   139,   140,   289,
-   290,   180,   181,   857,   857,   182,   232,   136,   580,   858,
-   858,   237,   760,   666,   108,   333,  -220,   109,   857,  -220,
-   823,  -220,   133,   575,   858,   134,    97,  -220,  -220,   832,
-   256,   182,   596,   103,   260,   261,   839,   415,   124,   125,
-    98,   126,   849,   289,   290,   180,   181,   463,   581,   182,
-   464,   389,    99,   175,   176,   177,   183,   128,   264,   100,
-   129,   130,   945,   131,   259,   147,   375,   376,   148,   218,
+   112,   386,   387,   388,   375,   376,     7,   881,   263,   943,
+   784,  1011,   721,   722,   108,   115,   857,   109,   289,   290,
+   180,   181,   858,   857,   182,    96,   232,   136,   580,   858,
+   857,   237,    98,   666,    97,   333,   858,   823,   289,   290,
+   180,   181,    99,   575,   182,   138,   832,   100,   139,   140,
+   256,   760,   462,   839,   260,   261,   101,   415,   147,   596,
+   103,   148,   102,   289,   290,   180,   181,   463,   581,   182,
+   464,   389,   104,   175,   176,   177,   183,   128,   264,   105,
+   129,   130,   945,   131,   259,   124,   125,   106,   126,   218,
    219,   220,   221,   222,   113,   224,   225,   114,   227,   228,
-   229,   850,   233,    -7,    -7,    -7,    -7,    -7,    -7,    -7,
-    -7,   151,   116,   990,   809,   246,   247,   104,   245,   918,
-  1074,   101,   462,   250,   650,   651,   652,   653,   654,     1,
-     2,   262,     3,   265,   102,   446,   447,   269,   270,   271,
+   229,   849,   233,    -7,    -7,    -7,    -7,    -7,    -7,    -7,
+    -7,   151,   116,   850,   809,   246,   247,   110,   245,   918,
+   990,   180,   181,   250,   133,   182,  1074,   134,   107,     1,
+     2,   262,     3,   265,   119,   446,   447,   269,   270,   271,
    272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
    282,   283,   284,   285,   286,   287,   288,   882,   785,  1012,
    292,   293,   294,   295,   296,   297,   289,   290,   180,   181,
-   678,   679,   182,   289,   290,   180,   181,   105,   106,   182,
-   919,   289,   290,   180,   181,   691,   693,   182,   692,   694,
-   289,   290,   180,   181,   695,   946,   182,   696,   107,   950,
-   289,   290,   180,   181,   714,   338,   182,   715,   341,   110,
-    -1,     8,   345,     9,   876,   877,   350,   351,   352,   111,
+   678,   679,   182,   289,   290,   180,   181,   876,   877,   182,
+   919,   289,   290,   180,   181,   111,   117,   182,   289,   290,
+   180,   181,   946,   118,   182,   121,   950,   289,   290,   180,
+   181,   691,   120,   182,   692,   338,   693,   695,   341,   694,
+   696,   714,   345,   127,   715,   122,   350,   351,   352,   132,
    354,   355,   356,   357,   358,   359,   360,    39,    40,    41,
-    42,   121,    44,   370,   371,   372,   117,   118,   119,   289,
-   290,   180,   181,   120,   378,   182,   384,   122,   123,   391,
-   392,   289,   290,   180,   181,   127,   132,   182,   289,   290,
-   180,   181,   876,  1139,   182,   878,  1140,    68,    69,   145,
-   137,   413,   414,    70,    71,    72,    73,    74,    75,    76,
+    42,   123,    44,   370,   371,   372,   137,   141,   142,   289,
+   290,   180,   181,   143,   378,   182,   384,   144,   145,   391,
+   392,   289,   290,   180,   181,   146,   149,   182,   289,   290,
+   180,   181,   876,  1139,   182,   878,  1140,    68,    69,   152,
+   153,   413,   414,    70,    71,    72,    73,    74,    75,    76,
     77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
-    87,    88,    89,    90,  -219,  1141,   141,  -219,  1142,  -219,
-   142,  1034,  1035,  1036,  1037,  -219,  -219,  1143,  1041,   182,
-  1144,   254,  1238,   143,   257,  1239,   943,    10,    11,    12,
-    13,    14,    15,    16,    17,   289,   290,   180,   181,  1240,
-   465,   182,  1241,   144,   146,   470,   149,   289,   290,   180,
-   181,   152,   153,   182,   479,   480,  1242,   478,   335,  1243,
-   154,   483,   155,   289,   290,   180,   181,   156,   487,   182,
-   564,   565,   157,   567,   340,   217,   158,   569,   570,  1093,
-   234,   238,  1294,  1094,  1095,  1295,   159,  1098,   289,   290,
-   180,   181,   239,  1296,   182,   525,  1297,  1298,  1327,   160,
-  1299,  1328,   526,   527,   528,   289,   290,   180,   181,  1329,
-   161,   182,  1330,   776,  1331,   162,   777,  1332,    91,    92,
-   289,   290,   180,   181,   248,    93,   182,   255,   911,   163,
-   571,   912,   164,   613,   165,   166,   616,   167,   168,  1187,
-  1149,   169,   778,   289,   290,   180,   181,   563,   170,   182,
-   249,   171,   172,   173,   572,   573,   636,   637,   663,   174,
-   214,   223,   642,   643,   289,   290,   180,   181,   226,   649,
-   182,   656,  1120,   235,   236,  1121,   240,   331,   241,   242,
-   593,   594,   595,   668,   243,   670,   289,   290,   180,   181,
-  1188,   244,   182,   182,   675,   676,   677,   342,   251,   680,
-   681,   682,   683,   684,   685,   686,   611,   612,   252,   614,
-   289,   290,   180,   181,   253,   267,   182,   328,   268,  1216,
-   298,   467,   299,   628,   629,   289,   290,   180,   181,   630,
-   300,   182,   330,    68,    69,   301,   471,   302,   639,    70,
+    87,    88,    89,    90,  1141,   154,   155,  1142,  1034,  1035,
+  1036,  1037,   217,  1143,  1239,  1041,  1144,  1240,    24,    25,
+    26,    27,    28,    29,    30,    31,   156,    32,   157,    34,
+    35,  -220,    37,    38,  -220,  1241,  -220,   255,  1242,   158,
+   465,  1243,  -220,  -220,  1244,   470,   182,  1295,  -219,   159,
+  1296,  -219,    50,  -219,   479,   480,   160,   478,   234,  -219,
+  -219,   483,  1297,   182,   182,  1298,    51,    52,   487,  1299,
+   564,   565,  1300,   567,   161,   162,  1093,   569,   570,  1328,
+  1094,  1095,  1329,   163,  1098,   289,   290,   180,   181,  1330,
+  1332,   182,  1331,  1333,   238,   525,   650,   651,   652,   653,
+   654,   164,   526,   527,   528,   289,   290,   180,   181,   254,
+   165,   182,   257,   776,   166,   167,   777,   168,    91,    92,
+    55,   289,   290,   180,   181,    93,   169,   182,   328,   911,
+   571,   170,   912,   613,   171,   172,   616,  1150,   289,   290,
+   180,   181,   778,   373,   182,   239,  1120,   563,   173,  1121,
+   174,   214,   223,   226,   572,   573,   636,   637,   663,   235,
+   236,   240,   642,   643,    -1,     8,   241,     9,   242,   649,
+   243,   656,   244,   289,   290,   180,   181,   248,   249,   182,
+   593,   594,   595,   668,   335,   670,   251,   252,  1189,   253,
+   267,   268,   298,   299,   675,   676,   677,   300,   301,   680,
+   681,   682,   683,   684,   685,   686,   611,   612,   302,   614,
+   289,   290,   180,   181,   303,   304,   182,  1217,   305,   306,
+   307,   340,   308,   628,   629,   289,   290,   180,   181,   630,
+   309,   182,   330,    68,    69,   310,   342,   311,   639,    70,
     71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
     81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
-   303,   304,   305,   673,   289,   290,   180,   181,   674,   306,
-   182,   289,   290,   180,   181,   472,   307,   182,   332,   308,
-   291,   687,   688,   689,   309,   310,   311,   312,   313,   314,
+  1188,   312,   313,   673,   289,   290,   180,   181,   674,   314,
+   182,    10,    11,    12,    13,    14,    15,    16,    17,   315,
+   316,   687,   688,   689,   317,   318,   319,   320,   321,   322,
    698,   699,   700,   701,   702,   703,   704,   705,   706,   707,
-   708,   709,   315,   910,   316,   317,  1300,   318,   289,   290,
-   180,   181,   319,   724,   182,   348,   320,   321,   725,   592,
-   322,   323,   324,   325,    24,    25,    26,    27,    28,    29,
-    30,    31,   326,    32,   806,    34,    35,   327,    37,    38,
-   353,   813,   361,   369,   380,   817,   381,   383,   289,   290,
-   180,   181,   845,   416,   182,   417,   418,   419,    50,   774,
-   439,   420,   757,   421,   836,   422,   423,   424,   425,   426,
-   765,   766,    51,    52,   178,   179,   180,   181,   427,   428,
-   182,    93,   429,   430,   230,   431,   432,   779,   433,   781,
-   434,   783,   435,   289,   290,   180,   181,   436,   437,   182,
-   438,   440,   799,   800,   969,   289,   290,   180,   181,   441,
-   442,   182,   443,   444,   445,   812,   970,   814,   448,   816,
-   449,   289,   290,   180,   181,   450,    55,   182,   451,   826,
-   452,   457,   971,   453,   454,   456,   833,   834,   835,   289,
-   290,   180,   181,   840,   459,   182,   460,   844,   461,   373,
-   987,   466,   847,   848,   481,   482,   488,   514,   515,   516,
+   708,   709,   323,   910,  1301,    24,    25,    26,    27,    28,
+    29,    30,    31,   724,    32,   331,    34,    35,   725,    37,
+    38,   489,   490,   491,   492,   493,   494,   495,   496,   497,
+   498,   499,   500,   324,   806,   325,   326,   327,   348,    50,
+   332,   813,   353,   361,   369,   817,   380,   381,   383,   416,
+   417,   418,   845,    51,    52,   289,   290,   180,   181,   419,
+   439,   182,   757,   420,   836,   421,   467,   422,   423,   424,
+   765,   766,   444,   425,   178,   179,   180,   181,   426,   427,
+   182,    93,   428,   429,   230,   430,   431,   779,   432,   781,
+   433,   783,   434,   289,   290,   180,   181,   435,   436,   182,
+   437,   438,   799,   800,   471,   440,   441,    55,   442,   443,
+   501,   449,   445,   448,   450,   812,   452,   814,   451,   816,
+   289,   290,   180,   181,   453,   454,   182,   456,   457,   826,
+   377,   472,   459,   481,   460,   461,   833,   834,   835,   289,
+   290,   180,   181,   840,   466,   182,   482,   844,   488,   514,
+   592,   515,   847,   848,   516,   517,   519,   529,   530,   531,
     24,    25,    26,    27,    28,    29,    30,    31,   852,    32,
-   517,    34,    35,   519,    37,    38,   530,   529,   531,   861,
+   560,    34,    35,   532,    37,    38,   533,   534,   535,   861,
    862,   863,   864,   865,   866,   867,   868,   869,   870,   871,
-   872,   560,   532,   935,    50,   533,   936,   534,   535,   289,
-   290,   180,   181,   566,   568,   182,   886,   561,    51,    52,
-  1008,   289,   290,   180,   181,   577,   578,   182,   958,   489,
-   490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
-   500,   536,   579,   582,   972,   289,   290,   180,   181,   583,
-   537,   182,   538,   576,   334,   584,   913,   914,   915,   489,
+   872,   561,   566,   935,    50,   536,   936,   568,   577,   289,
+   290,   180,   181,   537,   538,   182,   886,   576,    51,    52,
+   774,   289,   290,   180,   181,   578,   579,   182,   958,   489,
    490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
-   500,   585,    55,   539,   540,   932,   933,   289,   290,   180,
-   181,   541,   937,   182,   940,   586,   942,   587,  1063,   588,
-   610,   542,   598,   948,   543,   377,   289,   290,   180,   181,
-   615,   956,   182,   620,   617,   544,   961,  1122,   545,   964,
-   546,   547,   548,   968,   621,  1028,  1029,   549,   501,   550,
-   551,   552,   974,   975,   976,   977,   978,   979,   980,   981,
-   982,   983,   984,   985,   553,   289,   290,   180,   181,   554,
-  1048,   182,   555,   618,   556,   994,  1172,   557,   697,    68,
-    69,   558,   559,   562,   589,    70,    71,    72,    73,    74,
+   500,   539,   582,   583,   972,   584,   540,   585,   289,   290,
+   180,   181,   541,   542,   182,   586,   913,   914,   915,   969,
+   289,   290,   180,   181,   543,   587,   182,   289,   290,   180,
+   181,   970,    55,   182,   544,   932,   933,   545,   971,   588,
+   610,   546,   937,   547,   940,   548,   942,   549,   289,   290,
+   180,   181,   598,   948,   182,   550,   615,   551,   552,   987,
+   553,   956,   289,   290,   180,   181,   961,   554,   182,   964,
+   617,   291,   555,   968,   556,  1028,  1029,   557,   697,   558,
+   559,   562,   974,   975,   976,   977,   978,   979,   980,   981,
+   982,   983,   984,   985,   589,   289,   290,   180,   181,   599,
+  1048,   182,   620,   600,   601,   994,  1008,   602,   603,    68,
+    69,   621,   618,   604,   605,    70,    71,    72,    73,    74,
     75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
     85,    86,    87,    88,    89,    90,   289,   290,   180,   181,
-   599,   600,   182,   289,   290,   180,   181,  1200,  1088,   182,
-   626,   601,   336,  1030,  1031,  1032,  1033,   289,   290,   180,
-   181,   602,  1102,   182,   289,   290,   180,   181,  1229,   603,
-   182,   619,   604,   337,   605,   627,  1049,  1050,  1051,  1052,
-  1053,  1054,  1055,  1056,  1057,    24,    25,    26,    27,    28,
-    29,    30,    31,   631,    32,  1066,    34,    35,   606,    37,
-    38,   289,   290,   180,   181,   607,   608,   182,   632,   609,
-   339,   633,  1150,   634,   289,   290,   180,   181,   635,    50,
-   182,   638,   640,   343,   641,   644,  1091,  1092,   645,   289,
-   290,   180,   181,    51,    52,   182,   646,   362,  1103,  1104,
+   606,   607,   182,   289,   290,   180,   181,  1063,  1088,   182,
+   626,   619,   334,  1030,  1031,  1032,  1033,   289,   290,   180,
+   181,   608,  1102,   182,   289,   290,   180,   181,  1122,   627,
+   182,   631,   609,   632,   633,  1173,  1049,  1050,  1051,  1052,
+  1053,  1054,  1055,  1056,  1057,   289,   290,   180,   181,   634,
+   635,   182,   638,   640,   641,  1066,  1201,   289,   290,   180,
+   181,   644,   645,   182,   289,   290,   180,   181,  1230,   646,
+   182,   647,  1151,   336,   289,   290,   180,   181,   648,   657,
+   182,   660,   658,   337,   659,   661,  1091,  1092,   289,   290,
+   180,   181,   662,   664,   182,   667,   669,   339,  1103,  1104,
   1105,  1106,  1107,  1108,  1109,  1110,  1111,  1113,  1115,  1117,
-    91,    92,   647,   648,   657,  1123,   690,    93,   658,   659,
-   230,   660,  1189,   289,   290,   180,   181,   661,   662,   182,
-   717,   664,   344,   667,   289,   290,   180,   181,   669,   671,
-   182,  1146,  1147,   349,   672,  1148,   712,    55,   718,  1215,
-   723,   726,  1155,  1156,  1157,  1158,  1159,  1160,  1161,  1162,
-  1163,  1164,   729,  1166,   730,  1168,   289,   290,   180,   181,
-  1173,   731,   182,   732,   758,   382,   733,  1245,   289,   290,
-   180,   181,   734,   736,   182,   759,   735,   385,   289,   290,
-   180,   181,  1185,  1186,   182,   737,   762,   393,  1190,  1191,
-  1192,  1193,  1194,  1195,   738,   739,  1266,   289,   290,   180,
-   181,   740,   741,   182,   742,   763,   394,   748,   743,   744,
-  1280,  1213,   754,   745,   746,   747,  1217,  1218,  1219,  1220,
-  1221,  1222,  1224,  1226,  1228,   289,   290,   180,   181,   749,
-   750,   182,   751,   764,   395,   289,   290,   180,   181,   752,
-   753,   182,   755,   363,  1247,  1248,  1249,  1250,  1251,  1252,
-  1253,   767,  1255,   768,  1257,   289,   290,   180,   181,   756,
-   769,   182,   770,   771,   396,   772,   773,   780,   782,   786,
-   805,   801,  1267,  1268,  1269,   289,   290,   180,   181,   807,
-   808,   182,   810,   815,   397,   818,  1281,  1282,  1283,  1285,
-  1287,  1289,   289,   290,   180,   181,   811,   819,   182,   820,
-   821,   398,   822,  1301,  1302,  1303,  1304,   824,  1306,   825,
-  1308,   289,   290,   180,   181,   827,   828,   182,   829,   831,
-   399,   289,   290,   180,   181,   830,   837,   182,   838,   403,
-  1322,  1324,  1326,   841,   289,   290,   180,   181,   842,  1333,
-   182,  1335,   410,  1337,    68,    69,   851,   854,   843,   846,
-    70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-    80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-    90,    68,    69,   184,   853,   855,   856,    70,    71,    72,
-    73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-    83,    84,    85,    86,    87,    88,    89,    90,    68,   939,
-   879,   880,   885,   887,    70,    71,    72,    73,    74,    75,
-    76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
-    86,    87,    88,    89,    90,   889,   890,   891,   893,   185,
-   186,   187,   916,   934,   892,   895,   901,   188,   189,   190,
-   191,   192,   193,   194,   195,   196,   197,   938,   896,   941,
-   897,   902,   903,   906,   905,   198,   199,   200,   201,   202,
-   203,   204,   205,   206,   207,   917,   208,   209,   210,   211,
-   212,   213,   289,   290,   180,   181,   908,   944,   182,   947,
-   949,   400,   952,   951,   953,   178,   179,   180,   181,   962,
-   954,   182,    93,   289,   290,   180,   181,   955,   957,   182,
-   959,   960,   401,   963,   965,   289,   290,   180,   181,   966,
-   967,   182,    91,    92,   402,   973,   988,    -3,    22,    93,
-   999,    23,   289,   290,   180,   181,   989,   991,   182,   995,
-  1009,   404,   289,   290,   180,   181,   996,   997,   182,    91,
-    92,   405,  1000,  1002,  1010,  1004,    93,    24,    25,    26,
-    27,    28,    29,    30,    31,  1006,    32,    33,    34,    35,
-    36,    37,    38,  1007,  1013,  1026,  1027,  1038,    39,    40,
-    41,    42,    43,    44,  1039,    45,    46,    47,    48,    49,
-  1040,    50,   289,   290,   180,   181,  1042,  1043,   182,  1044,
-  1045,   406,  1046,  1069,  1061,    51,    52,   289,   290,   180,
-   181,    53,  1062,   182,  1067,    54,   407,   289,   290,   180,
-   181,  1068,  1071,   182,  1070,  1089,   408,   289,   290,   180,
-   181,  1072,  1073,   182,  1075,  1090,   409,   289,   290,   180,
-   181,  1096,  1099,   182,  1085,  1086,   455,   289,   290,   180,
-   181,  1087,  1100,   182,  1097,  1101,   458,  1145,  1124,    55,
-   289,   290,   180,   181,  1125,  1118,   182,  1119,  1126,   468,
-   289,   290,   180,   181,  1127,  1128,   182,  1129,  1151,   469,
-   289,   290,   180,   181,  1152,  1153,   182,  1154,  1165,   473,
-   289,   290,   180,   181,  1167,  1169,   182,  1170,  1201,   474,
-   289,   290,   180,   181,  1174,  1175,   182,  1202,  1210,   475,
-   289,   290,   180,   181,  1203,  1211,   182,  1212,  1214,   476,
-   289,   290,   180,   181,  1230,  1244,   182,  1231,  1246,   477,
-   289,   290,   180,   181,  1254,  1256,   182,  1258,  1305,   518,
-   289,   290,   180,   181,  1259,  1307,   182,  1309,  1277,   523,
-   289,   290,   180,   181,  1273,  1278,   182,  1279,  1310,   524,
-   289,   290,   180,   181,  1290,  1314,   182,  1318,  1319,   622,
-   289,   290,   180,   181,  1320,  1334,   182,  1336,  1338,   623,
-   289,   290,   180,   181,  1340,  1341,   182,   597,    59,   624,
-   289,   290,   180,   181,    60,    61,   182,     0,  1047,   625,
-   289,   290,   180,   181,   574,     0,   182,   804,     0,   713,
-   289,   290,   180,   181,     0,     0,   182,     0,     0,   775,
-   289,   290,   180,   181,     0,     0,   182,     0,     0,   894,
-   289,   290,   180,   181,     0,     0,   182,     0,     0,   898,
-   289,   290,   180,   181,     0,     0,   182,     0,     0,   900,
-   289,   290,   180,   181,     0,     0,   182,     0,     0,   986,
-   289,   290,   180,   181,     0,     0,   182,     0,     0,  1001,
-   289,   290,   180,   181,     0,     0,   182,     0,     0,  1003,
-   289,   290,   180,   181,     0,     0,   182,     0,     0,  1005,
-   289,   290,   180,   181,     0,     0,   182,     0,     0,  1023,
-   289,   290,   180,   181,     0,     0,   182,     0,     0,  1024,
-   289,   290,   180,   181,     0,     0,   182,     0,     0,  1025,
-   289,   290,   180,   181,     0,     0,   182,     0,     0,  1182,
-   289,   290,   180,   181,     0,     0,   182,     0,     0,  1183,
-   289,   290,   180,   181,     0,     0,   182,     0,     0,  1184,
-   289,   290,   180,   181,     0,     0,   182,     0,     0,  1263,
-   289,   290,   180,   181,     0,     0,   182,     0,     0,  1264,
-   289,   290,   180,   181,     0,     0,   182,     0,     0,  1265,
-   289,   290,   180,   181,     0,     0,   182,     0,     0,  1311,
-   289,   290,   180,   181,     0,     0,   182,     0,     0,  1312,
-   289,   290,   180,   181,     0,     0,   182,     0,     0,  1313,
+    91,    92,   671,   672,   690,  1123,   712,    93,   718,   717,
+   230,   723,   726,  1190,   289,   290,   180,   181,   729,   730,
+   182,   731,   733,   343,   289,   290,   180,   181,   732,   734,
+   182,  1146,  1147,   344,   735,  1149,   736,   737,   801,   738,
+  1216,   739,  1156,  1157,  1158,  1159,  1160,  1161,  1162,  1163,
+  1164,  1165,   740,  1167,   741,  1169,   289,   290,   180,   181,
+   742,  1174,   182,   743,   758,   349,   744,   745,  1246,   289,
+   290,   180,   181,   746,   747,   182,   748,   754,   382,   289,
+   290,   180,   181,  1186,  1187,   182,   749,   759,   385,  1191,
+  1192,  1193,  1194,  1195,  1196,   750,   751,  1267,   289,   290,
+   180,   181,   752,   753,   182,   755,   762,   393,   763,   756,
+   764,  1281,  1214,   767,   768,   769,   770,  1218,  1219,  1220,
+  1221,  1222,  1223,  1225,  1227,  1229,   289,   290,   180,   181,
+   771,   772,   182,   773,   780,   394,   289,   290,   180,   181,
+   782,   786,   182,   805,   362,  1248,  1249,  1250,  1251,  1252,
+  1253,  1254,   807,  1256,   808,  1258,   289,   290,   180,   181,
+   810,   811,   182,   815,   818,   395,   819,   820,   821,   825,
+   822,   824,   828,  1268,  1269,  1270,   289,   290,   180,   181,
+   827,   829,   182,   830,   831,   396,   837,  1282,  1283,  1284,
+  1286,  1288,  1290,   289,   290,   180,   181,   838,   841,   182,
+   842,   851,   397,   853,  1302,  1303,  1304,  1305,   843,  1307,
+   846,  1309,   289,   290,   180,   181,   854,   855,   182,   856,
+   879,   398,   289,   290,   180,   181,   880,   885,   182,   887,
+   363,  1323,  1325,  1327,   889,   289,   290,   180,   181,   890,
+  1334,   182,  1336,   403,  1338,    68,    69,   891,   917,   892,
+   893,    70,    71,    72,    73,    74,    75,    76,    77,    78,
+    79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
+    89,    90,    68,    69,   184,   895,   916,   938,    70,    71,
+    72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
+    82,    83,    84,    85,    86,    87,    88,    89,    90,    68,
+   939,   896,   897,   901,   905,    70,    71,    72,    73,    74,
+    75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+    85,    86,    87,    88,    89,    90,   902,   934,   941,   903,
+   185,   186,   187,   944,   947,   906,   908,   952,   188,   189,
+   190,   191,   192,   193,   194,   195,   196,   197,   949,   951,
+   953,   954,   955,   957,   959,   960,   198,   199,   200,   201,
+   202,   203,   204,   205,   206,   207,   962,   208,   209,   210,
+   211,   212,   213,   289,   290,   180,   181,   963,   965,   182,
+   966,   967,   399,   973,   988,   989,   178,   179,   180,   181,
+   991,   995,   182,    93,   289,   290,   180,   181,   996,   997,
+   182,   999,  1000,   400,  1002,  1006,   289,   290,   180,   181,
+  1004,  1007,   182,    91,    92,   401,  1009,  1010,    -3,    22,
+    93,  1026,    23,   289,   290,   180,   181,  1013,  1027,   182,
+  1038,  1039,   402,   289,   290,   180,   181,  1040,  1042,   182,
+    91,    92,   404,  1061,  1043,  1044,  1045,    93,    24,    25,
+    26,    27,    28,    29,    30,    31,  1046,    32,    33,    34,
+    35,    36,    37,    38,  1062,  1067,  1068,  1089,  1069,    39,
+    40,    41,    42,    43,    44,  1071,    45,    46,    47,    48,
+    49,  1070,    50,   289,   290,   180,   181,  1072,  1073,   182,
+  1075,  1085,   405,  1099,  1086,  1087,    51,    52,   289,   290,
+   180,   181,    53,  1100,   182,  1090,    54,   406,   289,   290,
+   180,   181,  1096,  1118,   182,  1097,  1101,   407,   289,   290,
+   180,   181,  1119,  1126,   182,  1127,  1145,   408,   289,   290,
+   180,   181,  1124,  1125,   182,  1148,  1152,   409,   289,   290,
+   180,   181,  1153,  1128,   182,  1129,  1154,   455,  1155,  1166,
+    55,   289,   290,   180,   181,  1168,  1170,   182,  1171,  1211,
+   458,   289,   290,   180,   181,  1175,  1176,   182,  1203,  1202,
+   468,   289,   290,   180,   181,  1204,  1215,   182,  1231,  1245,
+   469,   289,   290,   180,   181,  1247,  1232,   182,  1212,  1213,
+   473,   289,   290,   180,   181,  1255,  1257,   182,  1259,  1278,
+   474,   289,   290,   180,   181,  1260,  1274,   182,  1291,  1279,
+   475,   289,   290,   180,   181,  1280,  1306,   182,  1308,  1310,
+   476,   289,   290,   180,   181,  1311,  1315,   182,  1319,  1320,
+   477,   289,   290,   180,   181,  1321,  1335,   182,  1337,  1339,
+   518,   289,   290,   180,   181,  1341,  1342,   182,    59,    60,
+   523,   289,   290,   180,   181,   597,    61,   182,     0,   574,
+   524,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+   622,   289,   290,   180,   181,  1047,   804,   182,     0,     0,
+   623,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+   624,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+   625,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+   713,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+   775,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+   894,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+   898,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+   900,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+   986,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+  1001,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+  1003,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+  1005,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+  1023,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+  1024,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+  1025,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+  1183,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+  1184,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+  1185,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+  1264,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+  1265,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+  1266,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+  1312,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+  1313,   289,   290,   180,   181,     0,     0,   182,     0,     0,
+  1314,   289,   290,   180,   181,     0,     0,   182,     0,   410,
    289,   290,   180,   181,     0,     0,   182,     0,   411,   289,
    290,   180,   181,     0,     0,   182,     0,   412,   289,   290,
    180,   181,     0,     0,   182,     0,   484,   289,   290,   180,
@@ -1187,233 +1188,235 @@ static const short yytable[] = {    94,
    181,     0,     0,   182,     0,  1136,   289,   290,   180,   181,
      0,     0,   182,     0,  1137,   289,   290,   180,   181,     0,
      0,   182,     0,  1138,   289,   290,   180,   181,     0,     0,
-   182,     0,  1171,   289,   290,   180,   181,     0,     0,   182,
-     0,  1176,   289,   290,   180,   181,     0,     0,   182,     0,
-  1177,   289,   290,   180,   181,     0,     0,   182,     0,  1178,
-   289,   290,   180,   181,     0,     0,   182,     0,  1179,   289,
-   290,   180,   181,     0,     0,   182,     0,  1180,   289,   290,
-   180,   181,     0,     0,   182,     0,  1181,   289,   290,   180,
-   181,     0,     0,   182,     0,  1199,   289,   290,   180,   181,
-     0,     0,   182,     0,  1204,   289,   290,   180,   181,     0,
-     0,   182,     0,  1205,   289,   290,   180,   181,     0,     0,
-   182,     0,  1206,   289,   290,   180,   181,     0,     0,   182,
-     0,  1207,   289,   290,   180,   181,     0,     0,   182,     0,
-  1208,   289,   290,   180,   181,     0,     0,   182,     0,  1209,
-   289,   290,   180,   181,     0,     0,   182,     0,  1232,   289,
-   290,   180,   181,     0,     0,   182,     0,  1233,   289,   290,
-   180,   181,     0,     0,   182,     0,  1234,   289,   290,   180,
-   181,     0,     0,   182,     0,  1235,   289,   290,   180,   181,
-     0,     0,   182,     0,  1236,   289,   290,   180,   181,     0,
-     0,   182,     0,  1237,   289,   290,   180,   181,     0,     0,
-   182,     0,  1260,   289,   290,   180,   181,     0,     0,   182,
-     0,  1261,   289,   290,   180,   181,     0,     0,   182,     0,
-  1262,   289,   290,   180,   181,     0,     0,   182,     0,  1274,
-   289,   290,   180,   181,     0,     0,   182,     0,  1275,   289,
-   290,   180,   181,     0,     0,   182,     0,  1276,   289,   290,
-   180,   181,     0,     0,   182,     0,  1291,   289,   290,   180,
-   181,     0,     0,   182,     0,  1292,   289,   290,   180,   181,
-     0,     0,   182,     0,  1293
+   182,     0,  1172,   289,   290,   180,   181,     0,     0,   182,
+     0,  1177,   289,   290,   180,   181,     0,     0,   182,     0,
+  1178,   289,   290,   180,   181,     0,     0,   182,     0,  1179,
+   289,   290,   180,   181,     0,     0,   182,     0,  1180,   289,
+   290,   180,   181,     0,     0,   182,     0,  1181,   289,   290,
+   180,   181,     0,     0,   182,     0,  1182,   289,   290,   180,
+   181,     0,     0,   182,     0,  1200,   289,   290,   180,   181,
+     0,     0,   182,     0,  1205,   289,   290,   180,   181,     0,
+     0,   182,     0,  1206,   289,   290,   180,   181,     0,     0,
+   182,     0,  1207,   289,   290,   180,   181,     0,     0,   182,
+     0,  1208,   289,   290,   180,   181,     0,     0,   182,     0,
+  1209,   289,   290,   180,   181,     0,     0,   182,     0,  1210,
+   289,   290,   180,   181,     0,     0,   182,     0,  1233,   289,
+   290,   180,   181,     0,     0,   182,     0,  1234,   289,   290,
+   180,   181,     0,     0,   182,     0,  1235,   289,   290,   180,
+   181,     0,     0,   182,     0,  1236,   289,   290,   180,   181,
+     0,     0,   182,     0,  1237,   289,   290,   180,   181,     0,
+     0,   182,     0,  1238,   289,   290,   180,   181,     0,     0,
+   182,     0,  1261,   289,   290,   180,   181,     0,     0,   182,
+     0,  1262,   289,   290,   180,   181,     0,     0,   182,     0,
+  1263,   289,   290,   180,   181,     0,     0,   182,     0,  1275,
+   289,   290,   180,   181,     0,     0,   182,     0,  1276,   289,
+   290,   180,   181,     0,     0,   182,     0,  1277,   289,   290,
+   180,   181,     0,     0,   182,     0,  1292,   289,   290,   180,
+   181,     0,     0,   182,     0,  1293,   289,   290,   180,   181,
+     0,     0,   182,     0,  1294
 };
 
 static const short yycheck[] = {     7,
    104,   249,   859,    63,    34,   801,     0,     1,     6,     3,
-    57,    85,    86,    87,   137,   146,   147,     4,    81,   150,
-     6,     6,   618,   619,    30,    57,     6,    33,    34,   144,
-   145,   146,   147,    59,    59,   150,   119,    41,     6,    65,
-    65,   124,   157,    41,   151,     6,   135,   154,    59,   138,
-   734,   140,   151,     6,    65,   154,     7,   146,   147,   743,
-   143,   150,     6,   151,   147,   148,   750,   138,    33,    34,
-     6,    36,     6,   144,   145,   146,   147,   152,    46,   150,
-   155,   155,     6,    91,    92,    93,    94,    30,   151,     6,
-    33,    34,   888,    36,   154,    30,     6,     7,    33,   107,
+    57,    85,    86,    87,     6,     7,   137,     4,    81,   135,
+     6,     6,   618,   619,   151,    57,    59,   154,   144,   145,
+   146,   147,    65,    59,   150,     6,   119,    41,     6,    65,
+    59,   124,     6,    41,     7,     6,    65,   734,   144,   145,
+   146,   147,     6,     6,   150,    30,   743,     6,    33,    34,
+   143,   157,     8,   750,   147,   148,     6,   138,    30,     6,
+   151,    33,     6,   144,   145,   146,   147,   152,    46,   150,
+   155,   155,   151,    91,    92,    93,    94,    30,   151,   151,
+    33,    34,   888,    36,   154,    33,    34,     6,    36,   107,
    108,   109,   110,   111,   151,   113,   114,   154,   116,   117,
    118,     6,   120,   107,   108,   109,   110,   111,   112,   113,
    114,   151,   154,     6,   720,   133,   134,   151,   132,   155,
-   155,     6,     8,   137,    92,    93,    94,    95,    96,   133,
-   134,   149,   136,   151,     6,   152,   153,   155,   156,   157,
+     6,   146,   147,   137,   151,   150,   155,   154,     7,   133,
+   134,   149,   136,   151,    38,   152,   153,   155,   156,   157,
    158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
    168,   169,   170,   171,   172,   173,   174,   154,   154,   154,
    178,   179,   180,   181,   182,   183,   144,   145,   146,   147,
-    48,    49,   150,   144,   145,   146,   147,   151,     6,   150,
-  1047,   144,   145,   146,   147,   152,   152,   150,   155,   155,
-   144,   145,   146,   147,   152,   889,   150,   155,     7,   893,
-   144,   145,   146,   147,   151,   223,   150,   154,   226,   151,
-     0,     1,   230,     3,   152,   153,   234,   235,   236,   151,
+    48,    49,   150,   144,   145,   146,   147,   152,   153,   150,
+  1047,   144,   145,   146,   147,   151,   151,   150,   144,   145,
+   146,   147,   889,   151,   150,    34,   893,   144,   145,   146,
+   147,   152,   151,   150,   155,   223,   152,   152,   226,   155,
+   155,   151,   230,    36,   154,    34,   234,   235,   236,   154,
    238,   239,   240,   241,   242,   243,   244,    51,    52,    53,
-    54,    34,    56,   251,   252,   253,   151,   151,    38,   144,
-   145,   146,   147,   151,   258,   150,   264,    34,    34,   267,
-   268,   144,   145,   146,   147,    36,   154,   150,   144,   145,
-   146,   147,   152,   152,   150,   155,   155,     3,     4,     6,
-   154,   289,   290,     9,    10,    11,    12,    13,    14,    15,
+    54,    34,    56,   251,   252,   253,   154,   154,     5,   144,
+   145,   146,   147,    34,   258,   150,   264,   154,     6,   267,
+   268,   144,   145,   146,   147,     5,   151,   150,   144,   145,
+   146,   147,   152,   152,   150,   155,   155,     3,     4,   154,
+    41,   289,   290,     9,    10,    11,    12,    13,    14,    15,
     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    28,    29,   135,   152,   154,   138,   155,   140,
-     5,   995,   996,   997,   998,   146,   147,   152,  1002,   150,
-   155,   141,   152,    34,   144,   155,   135,   107,   108,   109,
-   110,   111,   112,   113,   114,   144,   145,   146,   147,   152,
-   348,   150,   155,   154,     5,   353,   151,   144,   145,   146,
-   147,   154,    41,   150,   362,   363,   152,   361,   155,   155,
-    34,   369,   151,   144,   145,   146,   147,   151,   376,   150,
-   453,   454,   151,   456,   155,     5,   151,   460,   461,   135,
-   154,   154,   152,  1067,  1068,   155,   151,  1071,   144,   145,
-   146,   147,   154,   152,   150,   403,   155,   152,   152,   151,
-   155,   155,   410,   411,   412,   144,   145,   146,   147,   152,
-   151,   150,   155,   152,   152,   151,   155,   155,   144,   145,
-   144,   145,   146,   147,   154,   151,   150,     6,   152,   151,
-   156,   155,   151,   516,   151,   151,   519,   151,   151,   140,
-  1124,   151,   690,   144,   145,   146,   147,   451,   151,   150,
-   154,   151,   151,   151,   462,   463,   539,   540,   562,   151,
-   151,   151,   545,   546,   144,   145,   146,   147,   151,   552,
-   150,   554,   152,   151,   151,   155,   151,   153,   151,   151,
-   484,   485,   486,   566,   151,   568,   144,   145,   146,   147,
-  1174,   151,   150,   150,   577,   578,   579,   155,   154,   582,
-   583,   584,   585,   586,   587,   588,   514,   515,   154,   517,
-   144,   145,   146,   147,   154,   151,   150,     5,   151,  1203,
+    26,    27,    28,    29,   152,    34,   151,   155,   995,   996,
+   997,   998,     5,   152,   152,  1002,   155,   155,    30,    31,
+    32,    33,    34,    35,    36,    37,   151,    39,   151,    41,
+    42,   135,    44,    45,   138,   152,   140,     6,   155,   151,
+   348,   152,   146,   147,   155,   353,   150,   152,   135,   151,
+   155,   138,    64,   140,   362,   363,   151,   361,   154,   146,
+   147,   369,   152,   150,   150,   155,    78,    79,   376,   152,
+   453,   454,   155,   456,   151,   151,   135,   460,   461,   152,
+  1067,  1068,   155,   151,  1071,   144,   145,   146,   147,   152,
+   152,   150,   155,   155,   154,   403,    92,    93,    94,    95,
+    96,   151,   410,   411,   412,   144,   145,   146,   147,   141,
+   151,   150,   144,   152,   151,   151,   155,   151,   144,   145,
+   132,   144,   145,   146,   147,   151,   151,   150,     5,   152,
+   156,   151,   155,   516,   151,   151,   519,  1124,   144,   145,
+   146,   147,   690,   155,   150,   154,   152,   451,   151,   155,
+   151,   151,   151,   151,   462,   463,   539,   540,   562,   151,
+   151,   151,   545,   546,     0,     1,   151,     3,   151,   552,
+   151,   554,   151,   144,   145,   146,   147,   154,   154,   150,
+   484,   485,   486,   566,   155,   568,   154,   154,  1175,   154,
+   151,   151,   151,   151,   577,   578,   579,   151,   151,   582,
+   583,   584,   585,   586,   587,   588,   514,   515,   151,   517,
+   144,   145,   146,   147,   151,   151,   150,  1204,   151,   151,
    151,   155,   151,   531,   532,   144,   145,   146,   147,   533,
    151,   150,   152,     3,     4,   151,   155,   151,   542,     9,
     10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-   151,   151,   151,   571,   144,   145,   146,   147,   576,   151,
-   150,   144,   145,   146,   147,   155,   151,   150,   152,   151,
-   153,   589,   590,   591,   151,   151,   151,   151,   151,   151,
+   140,   151,   151,   571,   144,   145,   146,   147,   576,   151,
+   150,   107,   108,   109,   110,   111,   112,   113,   114,   151,
+   151,   589,   590,   591,   151,   151,   151,   151,   151,   151,
    598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
-   608,   609,   151,   851,   151,   151,  1290,   151,   144,   145,
-   146,   147,   151,   621,   150,     7,   151,   151,   626,   155,
-   151,   151,   151,   151,    30,    31,    32,    33,    34,    35,
-    36,    37,   151,    39,   717,    41,    42,   151,    44,    45,
-     7,   724,   152,   152,     7,   728,     7,    82,   144,   145,
-   146,   147,   756,     5,   150,     5,     5,     5,    64,   155,
-   125,     5,   666,     5,   747,     5,     5,     5,     5,     5,
-   678,   679,    78,    79,   144,   145,   146,   147,     5,     5,
+   608,   609,   151,   851,  1291,    30,    31,    32,    33,    34,
+    35,    36,    37,   621,    39,   153,    41,    42,   626,    44,
+    45,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+    75,    76,    77,   151,   717,   151,   151,   151,     7,    64,
+   152,   724,     7,   152,   152,   728,     7,     7,    82,     5,
+     5,     5,   756,    78,    79,   144,   145,   146,   147,     5,
+   125,   150,   666,     5,   747,     5,   155,     5,     5,     5,
+   678,   679,     3,     5,   144,   145,   146,   147,     5,     5,
    150,   151,     5,     5,   154,     5,     5,   691,     5,   693,
      5,   695,     5,   144,   145,   146,   147,     5,     5,   150,
-     5,     5,   710,   711,   155,   144,   145,   146,   147,     5,
-     5,   150,     5,     3,     5,   723,   155,   725,     5,   727,
-     6,   144,   145,   146,   147,     5,   132,   150,     7,   737,
-     6,     6,   155,     7,     7,     7,   744,   745,   746,   144,
-   145,   146,   147,   751,     6,   150,     7,   755,     7,   155,
-   155,     7,   760,   761,   155,   155,   154,   151,   154,     7,
+     5,     5,   710,   711,   155,     5,     5,   132,     5,     5,
+   155,     6,     5,     5,     5,   723,     6,   725,     7,   727,
+   144,   145,   146,   147,     7,     7,   150,     7,     6,   737,
+   155,   155,     6,   155,     7,     7,   744,   745,   746,   144,
+   145,   146,   147,   751,     7,   150,   155,   755,   154,   151,
+   155,   154,   760,   761,     7,   151,     7,   139,   152,   152,
     30,    31,    32,    33,    34,    35,    36,    37,   776,    39,
-   151,    41,    42,     7,    44,    45,   152,   139,   152,   787,
+     5,    41,    42,   152,    44,    45,   152,   152,   152,   787,
    788,   789,   790,   791,   792,   793,   794,   795,   796,   797,
-   798,     5,   152,   876,    64,   152,   879,   152,   152,   144,
-   145,   146,   147,     7,     7,   150,   814,   153,    78,    79,
+   798,   153,     7,   876,    64,   152,   879,     7,     7,   144,
+   145,   146,   147,   152,   152,   150,   814,   154,    78,    79,
    155,   144,   145,   146,   147,     7,     7,   150,   901,    66,
     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-    77,   152,     7,     7,   917,   144,   145,   146,   147,     7,
-   152,   150,   152,   154,   153,     7,   854,   855,   856,    66,
-    67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-    77,     7,   132,   152,   152,   873,   874,   144,   145,   146,
-   147,   152,   880,   150,   882,     7,   884,     7,   155,     7,
-     6,   152,   151,   891,   152,   155,   144,   145,   146,   147,
-     7,   899,   150,     7,   154,   152,   904,   155,   152,   907,
-   152,   152,   152,   911,     7,   988,   989,   152,   155,   152,
+    77,   152,     7,     7,   917,     7,   152,     7,   144,   145,
+   146,   147,   152,   152,   150,     7,   854,   855,   856,   155,
+   144,   145,   146,   147,   152,     7,   150,   144,   145,   146,
+   147,   155,   132,   150,   152,   873,   874,   152,   155,     7,
+     6,   152,   880,   152,   882,   152,   884,   152,   144,   145,
+   146,   147,   151,   891,   150,   152,     7,   152,   152,   155,
+   152,   899,   144,   145,   146,   147,   904,   152,   150,   907,
+   154,   153,   152,   911,   152,   988,   989,   152,   155,   152,
    152,   152,   920,   921,   922,   923,   924,   925,   926,   927,
-   928,   929,   930,   931,   152,   144,   145,   146,   147,   152,
-  1013,   150,   152,   154,   152,   943,   155,   152,   155,     3,
-     4,   152,   152,   152,   152,     9,    10,    11,    12,    13,
+   928,   929,   930,   931,   152,   144,   145,   146,   147,   151,
+  1013,   150,     7,   151,   151,   943,   155,   151,   151,     3,
+     4,     7,   154,   151,   151,     9,    10,    11,    12,    13,
     14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     24,    25,    26,    27,    28,    29,   144,   145,   146,   147,
    151,   151,   150,   144,   145,   146,   147,   155,  1061,   150,
-   135,   151,   153,   991,   992,   993,   994,   144,   145,   146,
-   147,   151,  1075,   150,   144,   145,   146,   147,   155,   151,
-   150,   154,   151,   153,   151,     3,  1014,  1015,  1016,  1017,
-  1018,  1019,  1020,  1021,  1022,    30,    31,    32,    33,    34,
-    35,    36,    37,     3,    39,  1033,    41,    42,   151,    44,
-    45,   144,   145,   146,   147,   151,   151,   150,     3,   151,
-   153,   146,  1125,     3,   144,   145,   146,   147,     3,    64,
-   150,     3,     3,   153,     3,     3,  1064,  1065,     3,   144,
-   145,   146,   147,    78,    79,   150,     3,   152,  1076,  1077,
+   135,   154,   153,   991,   992,   993,   994,   144,   145,   146,
+   147,   151,  1075,   150,   144,   145,   146,   147,   155,     3,
+   150,     3,   151,     3,   146,   155,  1014,  1015,  1016,  1017,
+  1018,  1019,  1020,  1021,  1022,   144,   145,   146,   147,     3,
+     3,   150,     3,     3,     3,  1033,   155,   144,   145,   146,
+   147,     3,     3,   150,   144,   145,   146,   147,   155,     3,
+   150,     3,  1125,   153,   144,   145,   146,   147,     3,     3,
+   150,     3,     5,   153,     5,     3,  1064,  1065,   144,   145,
+   146,   147,     6,     6,   150,     6,     6,   153,  1076,  1077,
   1078,  1079,  1080,  1081,  1082,  1083,  1084,  1085,  1086,  1087,
-   144,   145,     3,     3,     3,  1093,   154,   151,     5,     5,
-   154,     3,  1175,   144,   145,   146,   147,     3,     6,   150,
-    83,     6,   153,     6,   144,   145,   146,   147,     6,     6,
-   150,  1119,  1120,   153,     6,  1123,     6,   132,     4,  1202,
-   154,   152,  1130,  1131,  1132,  1133,  1134,  1135,  1136,  1137,
-  1138,  1139,   153,  1141,   152,  1143,   144,   145,   146,   147,
-  1148,   153,   150,   152,     6,   153,   153,  1230,   144,   145,
-   146,   147,   152,   152,   150,     6,   153,   153,   144,   145,
-   146,   147,  1170,  1171,   150,   152,     6,   153,  1176,  1177,
-  1178,  1179,  1180,  1181,   153,   152,  1259,   144,   145,   146,
-   147,   153,   153,   150,   152,     6,   153,   153,   152,   152,
-  1273,  1199,   153,   152,   152,   152,  1204,  1205,  1206,  1207,
-  1208,  1209,  1210,  1211,  1212,   144,   145,   146,   147,   152,
-   152,   150,   152,     6,   153,   144,   145,   146,   147,   152,
-   152,   150,   152,   152,  1232,  1233,  1234,  1235,  1236,  1237,
-  1238,     6,  1240,     6,  1242,   144,   145,   146,   147,   152,
-     6,   150,     6,     6,   153,     6,     6,     6,     6,     6,
-    83,     7,  1260,  1261,  1262,   144,   145,   146,   147,     7,
-   155,   150,   155,     3,   153,     6,  1274,  1275,  1276,  1277,
-  1278,  1279,   144,   145,   146,   147,   155,     3,   150,     6,
-   146,   153,     6,  1291,  1292,  1293,  1294,     6,  1296,     3,
-  1298,   144,   145,   146,   147,     6,     3,   150,     6,     3,
-   153,   144,   145,   146,   147,     6,     6,   150,     3,   152,
-  1318,  1319,  1320,     3,   144,   145,   146,   147,     3,  1327,
-   150,  1329,   152,  1331,     3,     4,   154,   152,     6,     6,
-     9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-    29,     3,     4,    33,   155,   152,   152,     9,    10,    11,
-    12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-    22,    23,    24,    25,    26,    27,    28,    29,     3,     4,
-   154,    80,     6,   153,     9,    10,    11,    12,    13,    14,
-    15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,    27,    28,    29,   152,   152,   152,   152,    89,
-    90,    91,     6,    83,   153,   152,   152,    97,    98,    99,
-   100,   101,   102,   103,   104,   105,   106,     6,   153,     6,
-   153,   153,   153,   153,   152,   115,   116,   117,   118,   119,
-   120,   121,   122,   123,   124,   154,   126,   127,   128,   129,
-   130,   131,   144,   145,   146,   147,   152,     6,   150,     3,
-     6,   153,     3,     6,     6,   144,   145,   146,   147,     3,
-     6,   150,   151,   144,   145,   146,   147,     6,     6,   150,
-     6,     6,   153,     6,     5,   144,   145,   146,   147,     5,
-   155,   150,   144,   145,   153,     6,   154,     0,     1,   151,
-   153,     4,   144,   145,   146,   147,   152,   152,   150,   152,
-     6,   153,   144,   145,   146,   147,   152,   152,   150,   144,
-   145,   153,   153,   152,     6,   153,   151,    30,    31,    32,
-    33,    34,    35,    36,    37,   152,    39,    40,    41,    42,
-    43,    44,    45,   152,   152,     6,     6,     6,    51,    52,
-    53,    54,    55,    56,     6,    58,    59,    60,    61,    62,
-     6,    64,   144,   145,   146,   147,     6,     6,   150,     6,
-     5,   153,     5,   153,   152,    78,    79,   144,   145,   146,
-   147,    84,   155,   150,   152,    88,   153,   144,   145,   146,
-   147,   152,   152,   150,   153,    80,   153,   144,   145,   146,
-   147,   152,   152,   150,   152,     6,   153,   144,   145,   146,
-   147,     6,     5,   150,   154,   154,   153,   144,   145,   146,
-   147,   154,     5,   150,     6,     6,   153,    80,   152,   132,
-   144,   145,   146,   147,   152,   155,   150,   154,   153,   153,
-   144,   145,   146,   147,   153,   155,   150,   155,     6,   153,
-   144,   145,   146,   147,     6,     6,   150,     6,     6,   153,
-   144,   145,   146,   147,     6,     6,   150,   154,   141,   153,
-   144,   145,   146,   147,   152,   152,   150,   152,   154,   153,
-   144,   145,   146,   147,   152,   154,   150,   154,     6,   153,
-   144,   145,   146,   147,   152,     6,   150,   153,     6,   153,
-   144,   145,   146,   147,     6,     6,   150,     6,     6,   153,
-   144,   145,   146,   147,   152,     6,   150,     6,   154,   153,
-   144,   145,   146,   147,   152,   154,   150,   154,   153,   153,
-   144,   145,   146,   147,   152,     6,   150,   154,   154,   153,
-   144,   145,   146,   147,   154,     6,   150,     6,     6,   153,
-   144,   145,   146,   147,     0,     0,   150,   488,     6,   153,
-   144,   145,   146,   147,     6,     6,   150,    -1,  1012,   153,
-   144,   145,   146,   147,   463,    -1,   150,   715,    -1,   153,
-   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,   153,
-   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,   153,
-   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,   153,
-   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,   153,
-   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,   153,
-   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,   153,
-   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,   153,
-   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,   153,
-   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,   153,
-   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,   153,
-   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,   153,
-   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,   153,
-   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,   153,
-   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,   153,
-   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,   153,
-   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,   153,
-   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,   153,
-   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,   153,
-   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,   153,
-   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,   153,
+   144,   145,     6,     6,   154,  1093,     6,   151,     4,    83,
+   154,   154,   152,  1176,   144,   145,   146,   147,   153,   152,
+   150,   153,   153,   153,   144,   145,   146,   147,   152,   152,
+   150,  1119,  1120,   153,   153,  1123,   152,   152,     7,   153,
+  1203,   152,  1130,  1131,  1132,  1133,  1134,  1135,  1136,  1137,
+  1138,  1139,   153,  1141,   153,  1143,   144,   145,   146,   147,
+   152,  1149,   150,   152,     6,   153,   152,   152,  1231,   144,
+   145,   146,   147,   152,   152,   150,   153,   153,   153,   144,
+   145,   146,   147,  1171,  1172,   150,   152,     6,   153,  1177,
+  1178,  1179,  1180,  1181,  1182,   152,   152,  1260,   144,   145,
+   146,   147,   152,   152,   150,   152,     6,   153,     6,   152,
+     6,  1274,  1200,     6,     6,     6,     6,  1205,  1206,  1207,
+  1208,  1209,  1210,  1211,  1212,  1213,   144,   145,   146,   147,
+     6,     6,   150,     6,     6,   153,   144,   145,   146,   147,
+     6,     6,   150,    83,   152,  1233,  1234,  1235,  1236,  1237,
+  1238,  1239,     7,  1241,   155,  1243,   144,   145,   146,   147,
+   155,   155,   150,     3,     6,   153,     3,     6,   146,     3,
+     6,     6,     3,  1261,  1262,  1263,   144,   145,   146,   147,
+     6,     6,   150,     6,     3,   153,     6,  1275,  1276,  1277,
+  1278,  1279,  1280,   144,   145,   146,   147,     3,     3,   150,
+     3,   154,   153,   155,  1292,  1293,  1294,  1295,     6,  1297,
+     6,  1299,   144,   145,   146,   147,   152,   152,   150,   152,
+   154,   153,   144,   145,   146,   147,    80,     6,   150,   153,
+   152,  1319,  1320,  1321,   152,   144,   145,   146,   147,   152,
+  1328,   150,  1330,   152,  1332,     3,     4,   152,   154,   153,
+   152,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+    28,    29,     3,     4,    33,   152,     6,     6,     9,    10,
+    11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
+    21,    22,    23,    24,    25,    26,    27,    28,    29,     3,
+     4,   153,   153,   152,   152,     9,    10,    11,    12,    13,
+    14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
+    24,    25,    26,    27,    28,    29,   153,    83,     6,   153,
+    89,    90,    91,     6,     3,   153,   152,     3,    97,    98,
+    99,   100,   101,   102,   103,   104,   105,   106,     6,     6,
+     6,     6,     6,     6,     6,     6,   115,   116,   117,   118,
+   119,   120,   121,   122,   123,   124,     3,   126,   127,   128,
+   129,   130,   131,   144,   145,   146,   147,     6,     5,   150,
+     5,   155,   153,     6,   154,   152,   144,   145,   146,   147,
+   152,   152,   150,   151,   144,   145,   146,   147,   152,   152,
+   150,   153,   153,   153,   152,   152,   144,   145,   146,   147,
+   153,   152,   150,   144,   145,   153,     6,     6,     0,     1,
+   151,     6,     4,   144,   145,   146,   147,   152,     6,   150,
+     6,     6,   153,   144,   145,   146,   147,     6,     6,   150,
+   144,   145,   153,   152,     6,     6,     5,   151,    30,    31,
+    32,    33,    34,    35,    36,    37,     5,    39,    40,    41,
+    42,    43,    44,    45,   155,   152,   152,    80,   153,    51,
+    52,    53,    54,    55,    56,   152,    58,    59,    60,    61,
+    62,   153,    64,   144,   145,   146,   147,   152,   152,   150,
+   152,   154,   153,     5,   154,   154,    78,    79,   144,   145,
+   146,   147,    84,     5,   150,     6,    88,   153,   144,   145,
+   146,   147,     6,   155,   150,     6,     6,   153,   144,   145,
+   146,   147,   154,   153,   150,   153,    80,   153,   144,   145,
+   146,   147,   152,   152,   150,     6,     6,   153,   144,   145,
+   146,   147,     6,   155,   150,   155,     6,   153,     6,     6,
+   132,   144,   145,   146,   147,     6,     6,   150,   154,   154,
+   153,   144,   145,   146,   147,   152,   152,   150,   152,   141,
+   153,   144,   145,   146,   147,   152,     6,   150,   152,     6,
+   153,   144,   145,   146,   147,     6,   153,   150,   154,   154,
+   153,   144,   145,   146,   147,     6,     6,   150,     6,   154,
+   153,   144,   145,   146,   147,   152,   152,   150,   152,   154,
+   153,   144,   145,   146,   147,   154,     6,   150,     6,     6,
+   153,   144,   145,   146,   147,   153,     6,   150,   154,   154,
+   153,   144,   145,   146,   147,   154,     6,   150,     6,     6,
+   153,   144,   145,   146,   147,     0,     0,   150,     6,     6,
+   153,   144,   145,   146,   147,   488,     6,   150,    -1,   463,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,  1012,   715,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,    -1,
+   153,   144,   145,   146,   147,    -1,    -1,   150,    -1,   152,
    144,   145,   146,   147,    -1,    -1,   150,    -1,   152,   144,
    145,   146,   147,    -1,    -1,   150,    -1,   152,   144,   145,
    146,   147,    -1,    -1,   150,    -1,   152,   144,   145,   146,
@@ -1511,7 +1514,8 @@ static const short yycheck[] = {     7,
     -1,    -1,   150,    -1,   152
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "/usr/local/share/bison.simple"
+#line 3 "/usr/lib/bison.simple"
+/* This file comes from bison-1.28.  */
 
 /* Skeleton output parser for bison,
    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
@@ -1528,46 +1532,66 @@ static const short yycheck[] = {     7,
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 /* As a special exception, when this file is copied by Bison into a
    Bison output file, you may use that output file without restriction.
    This special exception was added by the Free Software Foundation
    in version 1.24 of Bison.  */
 
-#ifndef alloca
+/* This is the parser code that is written into each bison parser
+  when the %semantic_parser declaration is not specified in the grammar.
+  It was written by Richard Stallman by simplifying the hairy parser
+  used when %semantic_parser is specified.  */
+
+#ifndef YYSTACK_USE_ALLOCA
+#ifdef alloca
+#define YYSTACK_USE_ALLOCA
+#else /* alloca not defined */
 #ifdef __GNUC__
+#define YYSTACK_USE_ALLOCA
 #define alloca __builtin_alloca
 #else /* not GNU C.  */
-#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
+#define YYSTACK_USE_ALLOCA
 #include <alloca.h>
 #else /* not sparc */
-#if defined (MSDOS) && !defined (__TURBOC__)
+/* We think this test detects Watcom and Microsoft C.  */
+/* This used to test MSDOS, but that is a bad idea
+   since that symbol is in the user namespace.  */
+#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
+#if 0 /* No need for malloc.h, which pollutes the namespace;
+	 instead, just don't use alloca.  */
 #include <malloc.h>
+#endif
 #else /* not MSDOS, or __TURBOC__ */
 #if defined(_AIX)
-#include <malloc.h>
+/* I don't know what this was needed for, but it pollutes the namespace.
+   So I turned it off.   rms, 2 May 1997.  */
+/* #include <malloc.h>  */
  #pragma alloca
-#else /* not MSDOS, __TURBOC__, or _AIX */
-#ifdef __hpux
-#ifdef __cplusplus
-extern "C" {
-void *alloca (unsigned int);
-};
-#else /* not __cplusplus */
-void *alloca ();
-#endif /* not __cplusplus */
+#define YYSTACK_USE_ALLOCA
+#else /* not MSDOS, or __TURBOC__, or _AIX */
+#if 0
+#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
+		 and on HPUX 10.  Eventually we can turn this on.  */
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
 #endif /* __hpux */
+#endif
 #endif /* not _AIX */
 #endif /* not MSDOS, or __TURBOC__ */
-#endif /* not sparc.  */
-#endif /* not GNU C.  */
-#endif /* alloca not defined.  */
+#endif /* not sparc */
+#endif /* not GNU C */
+#endif /* alloca not defined */
+#endif /* YYSTACK_USE_ALLOCA not defined */
 
-/* This is the parser code that is written into each bison parser
-  when the %semantic_parser declaration is not specified in the grammar.
-  It was written by Richard Stallman by simplifying the hairy parser
-  used when %semantic_parser is specified.  */
+#ifdef YYSTACK_USE_ALLOCA
+#define YYSTACK_ALLOC alloca
+#else
+#define YYSTACK_ALLOC malloc
+#endif
 
 /* Note: there must be only one dollar sign in this file.
    It is replaced by the list of actions, each action
@@ -1577,8 +1601,8 @@ void *alloca ();
 #define yyclearin	(yychar = YYEMPTY)
 #define YYEMPTY		-2
 #define YYEOF		0
-#define YYACCEPT	return(0)
-#define YYABORT 	return(1)
+#define YYACCEPT	goto yyacceptlab
+#define YYABORT 	goto yyabortlab
 #define YYERROR		goto yyerrlab1
 /* Like YYERROR except do call yyerror.
    This remains here temporarily to ease the
@@ -1659,12 +1683,12 @@ int yydebug;			/*  nonzero means print parse trace	*/
 #ifndef YYMAXDEPTH
 #define YYMAXDEPTH 10000
 #endif
-
-/* Prevent warning if -Wstrict-prototypes.  */
-#ifdef __GNUC__
-int yyparse (void);
-#endif
 
+/* Define __yy_memcpy.  Note that the size argument
+   should be passed with type unsigned int, because that is what the non-GCC
+   definitions require.  With GCC, __builtin_memcpy takes an arg
+   of type size_t, but it can handle unsigned int.  */
+
 #if __GNUC__ > 1		/* GNU C and GNU C++ define this.  */
 #define __yy_memcpy(TO,FROM,COUNT)	__builtin_memcpy(TO,FROM,COUNT)
 #else				/* not GNU C or C++ */
@@ -1676,7 +1700,7 @@ static void
 __yy_memcpy (to, from, count)
      char *to;
      char *from;
-     int count;
+     unsigned int count;
 {
   register char *f = from;
   register char *t = to;
@@ -1691,10 +1715,10 @@ __yy_memcpy (to, from, count)
 /* This is the most reliable way to avoid incompatibilities
    in available built-in functions on various systems.  */
 static void
-__yy_memcpy (char *to, char *from, int count)
+__yy_memcpy (char *to, char *from, unsigned int count)
 {
-  register char *f = from;
   register char *t = to;
+  register char *f = from;
   register int i = count;
 
   while (i-- > 0)
@@ -1704,7 +1728,7 @@ __yy_memcpy (char *to, char *from, int count)
 #endif
 #endif
 
-#line 196 "/usr/local/share/bison.simple"
+#line 217 "/usr/lib/bison.simple"
 
 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
    into yyparse.  The argument should have type void *.
@@ -1725,6 +1749,15 @@ __yy_memcpy (char *to, char *from, int count)
 #define YYPARSE_PARAM_DECL
 #endif /* not YYPARSE_PARAM */
 
+/* Prevent warning if -Wstrict-prototypes.  */
+#ifdef __GNUC__
+#ifdef YYPARSE_PARAM
+int yyparse (void *);
+#else
+int yyparse (void);
+#endif
+#endif
+
 int
 yyparse(YYPARSE_PARAM_ARG)
      YYPARSE_PARAM_DECL
@@ -1753,6 +1786,7 @@ yyparse(YYPARSE_PARAM_ARG)
 #endif
 
   int yystacksize = YYINITDEPTH;
+  int yyfree_stacks = 0;
 
 #ifdef YYPURE
   int yychar;
@@ -1837,18 +1871,32 @@ yynewstate:
       if (yystacksize >= YYMAXDEPTH)
 	{
 	  yyerror("parser stack overflow");
+	  if (yyfree_stacks)
+	    {
+	      free (yyss);
+	      free (yyvs);
+#ifdef YYLSP_NEEDED
+	      free (yyls);
+#endif
+	    }
 	  return 2;
 	}
       yystacksize *= 2;
       if (yystacksize > YYMAXDEPTH)
 	yystacksize = YYMAXDEPTH;
-      yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
-      __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
-      yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
-      __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
+#ifndef YYSTACK_USE_ALLOCA
+      yyfree_stacks = 1;
+#endif
+      yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
+      __yy_memcpy ((char *)yyss, (char *)yyss1,
+		   size * (unsigned int) sizeof (*yyssp));
+      yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
+      __yy_memcpy ((char *)yyvs, (char *)yyvs1,
+		   size * (unsigned int) sizeof (*yyvsp));
 #ifdef YYLSP_NEEDED
-      yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
-      __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
+      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
+      __yy_memcpy ((char *)yyls, (char *)yyls1,
+		   size * (unsigned int) sizeof (*yylsp));
 #endif
 #endif /* no yyoverflow */
 
@@ -3278,15 +3326,15 @@ case 189:
 case 191:
 #line 1315 "Gmsh.y"
 {
-      i = (int)yyvsp[-11].d ;
+      i = (int)yyvsp[-12].d ;
       if(i < 0 || i > 5)
 	vyyerror("Wrong Clip Plane Number %d", i);
       else{
 	CTX.clip[i] = 1;
-	CTX.clip_plane[i][0] = yyvsp[-7].d;
-	CTX.clip_plane[i][0] = yyvsp[-5].d;
-	CTX.clip_plane[i][0] = yyvsp[-3].d;
-	CTX.clip_plane[i][0] = yyvsp[-1].d;
+	CTX.clip_plane[i][0] = yyvsp[-8].d;
+	CTX.clip_plane[i][1] = yyvsp[-6].d;
+	CTX.clip_plane[i][2] = yyvsp[-4].d;
+	CTX.clip_plane[i][3] = yyvsp[-2].d;
       }
     ;
     break;}
@@ -3675,7 +3723,7 @@ case 265:
     break;}
 }
    /* the action file gets copied in in place of this dollarsign */
-#line 498 "/usr/local/share/bison.simple"
+#line 543 "/usr/lib/bison.simple"
 
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -3870,6 +3918,30 @@ yyerrhandle:
 
   yystate = yyn;
   goto yynewstate;
+
+ yyacceptlab:
+  /* YYACCEPT comes here.  */
+  if (yyfree_stacks)
+    {
+      free (yyss);
+      free (yyvs);
+#ifdef YYLSP_NEEDED
+      free (yyls);
+#endif
+    }
+  return 0;
+
+ yyabortlab:
+  /* YYABORT comes here.  */
+  if (yyfree_stacks)
+    {
+      free (yyss);
+      free (yyvs);
+#ifdef YYLSP_NEEDED
+      free (yyls);
+#endif
+    }
+  return 1;
 }
 #line 1672 "Gmsh.y"
 
diff --git a/Parser/Gmsh.tab.cpp.h b/Parser/Gmsh.tab.cpp.h
index 6e95f27ac2..9b5e5cc35b 100644
--- a/Parser/Gmsh.tab.cpp.h
+++ b/Parser/Gmsh.tab.cpp.h
@@ -6,146 +6,146 @@ typedef union {
   Shape    s;
   List_T  *l;
 } YYSTYPE;
-#define	tDOUBLE	258
-#define	tSTRING	259
-#define	tBIGSTR	260
-#define	tEND	261
-#define	tAFFECT	262
-#define	tDOTS	263
-#define	tPi	264
-#define	tExp	265
-#define	tLog	266
-#define	tLog10	267
-#define	tSqrt	268
-#define	tSin	269
-#define	tAsin	270
-#define	tCos	271
-#define	tAcos	272
-#define	tTan	273
-#define	tAtan	274
-#define	tAtan2	275
-#define	tSinh	276
-#define	tCosh	277
-#define	tTanh	278
-#define	tFabs	279
-#define	tFloor	280
-#define	tCeil	281
-#define	tFmod	282
-#define	tModulo	283
-#define	tHypot	284
-#define	tPoint	285
-#define	tCircle	286
-#define	tEllipsis	287
-#define	tLine	288
-#define	tSurface	289
-#define	tSpline	290
-#define	tVolume	291
-#define	tCharacteristic	292
-#define	tLength	293
-#define	tParametric	294
-#define	tElliptic	295
-#define	tPlane	296
-#define	tRuled	297
-#define	tTransfinite	298
-#define	tComplex	299
-#define	tPhysical	300
-#define	tUsing	301
-#define	tPower	302
-#define	tBump	303
-#define	tProgression	304
-#define	tAssociation	305
-#define	tRotate	306
-#define	tTranslate	307
-#define	tSymmetry	308
-#define	tDilate	309
-#define	tExtrude	310
-#define	tDuplicata	311
-#define	tLoop	312
-#define	tInclude	313
-#define	tRecombine	314
-#define	tDelete	315
-#define	tCoherence	316
-#define	tView	317
-#define	tOffset	318
-#define	tAttractor	319
-#define	tLayers	320
-#define	tScalarTetrahedron	321
-#define	tVectorTetrahedron	322
-#define	tTensorTetrahedron	323
-#define	tScalarTriangle	324
-#define	tVectorTriangle	325
-#define	tTensorTriangle	326
-#define	tScalarLine	327
-#define	tVectorLine	328
-#define	tTensorLine	329
-#define	tScalarPoint	330
-#define	tVectorPoint	331
-#define	tTensorPoint	332
-#define	tBSpline	333
-#define	tNurbs	334
-#define	tOrder	335
-#define	tWith	336
-#define	tBounds	337
-#define	tKnots	338
-#define	tColor	339
-#define	tGeneral	340
-#define	tGeometry	341
-#define	tMesh	342
-#define	tClip	343
-#define	tB_SPLINE_SURFACE_WITH_KNOTS	344
-#define	tB_SPLINE_CURVE_WITH_KNOTS	345
-#define	tCARTESIAN_POINT	346
-#define	tTRUE	347
-#define	tFALSE	348
-#define	tUNSPECIFIED	349
-#define	tU	350
-#define	tV	351
-#define	tEDGE_CURVE	352
-#define	tVERTEX_POINT	353
-#define	tORIENTED_EDGE	354
-#define	tPLANE	355
-#define	tFACE_OUTER_BOUND	356
-#define	tEDGE_LOOP	357
-#define	tADVANCED_FACE	358
-#define	tVECTOR	359
-#define	tDIRECTION	360
-#define	tAXIS2_PLACEMENT_3D	361
-#define	tISO	362
-#define	tENDISO	363
-#define	tENDSEC	364
-#define	tDATA	365
-#define	tHEADER	366
-#define	tFILE_DESCRIPTION	367
-#define	tFILE_SCHEMA	368
-#define	tFILE_NAME	369
-#define	tMANIFOLD_SOLID_BREP	370
-#define	tCLOSED_SHELL	371
-#define	tADVANCED_BREP_SHAPE_REPRESENTATION	372
-#define	tFACE_BOUND	373
-#define	tCYLINDRICAL_SURFACE	374
-#define	tCONICAL_SURFACE	375
-#define	tCIRCLE	376
-#define	tTRIMMED_CURVE	377
-#define	tGEOMETRIC_SET	378
-#define	tCOMPOSITE_CURVE_SEGMENT	379
-#define	tCONTINUOUS	380
-#define	tCOMPOSITE_CURVE	381
-#define	tTOROIDAL_SURFACE	382
-#define	tPRODUCT_DEFINITION	383
-#define	tPRODUCT_DEFINITION_SHAPE	384
-#define	tSHAPE_DEFINITION_REPRESENTATION	385
-#define	tELLIPSE	386
-#define	tTrimmed	387
-#define	tSolid	388
-#define	tEndSolid	389
-#define	tVertex	390
-#define	tFacet	391
-#define	tNormal	392
-#define	tOuter	393
-#define	tLoopSTL	394
-#define	tEndLoop	395
-#define	tEndFacet	396
-#define	UMINUS	397
+#define	tDOUBLE	257
+#define	tSTRING	258
+#define	tBIGSTR	259
+#define	tEND	260
+#define	tAFFECT	261
+#define	tDOTS	262
+#define	tPi	263
+#define	tExp	264
+#define	tLog	265
+#define	tLog10	266
+#define	tSqrt	267
+#define	tSin	268
+#define	tAsin	269
+#define	tCos	270
+#define	tAcos	271
+#define	tTan	272
+#define	tAtan	273
+#define	tAtan2	274
+#define	tSinh	275
+#define	tCosh	276
+#define	tTanh	277
+#define	tFabs	278
+#define	tFloor	279
+#define	tCeil	280
+#define	tFmod	281
+#define	tModulo	282
+#define	tHypot	283
+#define	tPoint	284
+#define	tCircle	285
+#define	tEllipsis	286
+#define	tLine	287
+#define	tSurface	288
+#define	tSpline	289
+#define	tVolume	290
+#define	tCharacteristic	291
+#define	tLength	292
+#define	tParametric	293
+#define	tElliptic	294
+#define	tPlane	295
+#define	tRuled	296
+#define	tTransfinite	297
+#define	tComplex	298
+#define	tPhysical	299
+#define	tUsing	300
+#define	tPower	301
+#define	tBump	302
+#define	tProgression	303
+#define	tAssociation	304
+#define	tRotate	305
+#define	tTranslate	306
+#define	tSymmetry	307
+#define	tDilate	308
+#define	tExtrude	309
+#define	tDuplicata	310
+#define	tLoop	311
+#define	tInclude	312
+#define	tRecombine	313
+#define	tDelete	314
+#define	tCoherence	315
+#define	tView	316
+#define	tOffset	317
+#define	tAttractor	318
+#define	tLayers	319
+#define	tScalarTetrahedron	320
+#define	tVectorTetrahedron	321
+#define	tTensorTetrahedron	322
+#define	tScalarTriangle	323
+#define	tVectorTriangle	324
+#define	tTensorTriangle	325
+#define	tScalarLine	326
+#define	tVectorLine	327
+#define	tTensorLine	328
+#define	tScalarPoint	329
+#define	tVectorPoint	330
+#define	tTensorPoint	331
+#define	tBSpline	332
+#define	tNurbs	333
+#define	tOrder	334
+#define	tWith	335
+#define	tBounds	336
+#define	tKnots	337
+#define	tColor	338
+#define	tGeneral	339
+#define	tGeometry	340
+#define	tMesh	341
+#define	tClip	342
+#define	tB_SPLINE_SURFACE_WITH_KNOTS	343
+#define	tB_SPLINE_CURVE_WITH_KNOTS	344
+#define	tCARTESIAN_POINT	345
+#define	tTRUE	346
+#define	tFALSE	347
+#define	tUNSPECIFIED	348
+#define	tU	349
+#define	tV	350
+#define	tEDGE_CURVE	351
+#define	tVERTEX_POINT	352
+#define	tORIENTED_EDGE	353
+#define	tPLANE	354
+#define	tFACE_OUTER_BOUND	355
+#define	tEDGE_LOOP	356
+#define	tADVANCED_FACE	357
+#define	tVECTOR	358
+#define	tDIRECTION	359
+#define	tAXIS2_PLACEMENT_3D	360
+#define	tISO	361
+#define	tENDISO	362
+#define	tENDSEC	363
+#define	tDATA	364
+#define	tHEADER	365
+#define	tFILE_DESCRIPTION	366
+#define	tFILE_SCHEMA	367
+#define	tFILE_NAME	368
+#define	tMANIFOLD_SOLID_BREP	369
+#define	tCLOSED_SHELL	370
+#define	tADVANCED_BREP_SHAPE_REPRESENTATION	371
+#define	tFACE_BOUND	372
+#define	tCYLINDRICAL_SURFACE	373
+#define	tCONICAL_SURFACE	374
+#define	tCIRCLE	375
+#define	tTRIMMED_CURVE	376
+#define	tGEOMETRIC_SET	377
+#define	tCOMPOSITE_CURVE_SEGMENT	378
+#define	tCONTINUOUS	379
+#define	tCOMPOSITE_CURVE	380
+#define	tTOROIDAL_SURFACE	381
+#define	tPRODUCT_DEFINITION	382
+#define	tPRODUCT_DEFINITION_SHAPE	383
+#define	tSHAPE_DEFINITION_REPRESENTATION	384
+#define	tELLIPSE	385
+#define	tTrimmed	386
+#define	tSolid	387
+#define	tEndSolid	388
+#define	tVertex	389
+#define	tFacet	390
+#define	tNormal	391
+#define	tOuter	392
+#define	tLoopSTL	393
+#define	tEndLoop	394
+#define	tEndFacet	395
+#define	UMINUS	396
 
 
 extern YYSTYPE yylval;
diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y
index 4713efa3ea..327ef3126a 100644
--- a/Parser/Gmsh.y
+++ b/Parser/Gmsh.y
@@ -1,4 +1,4 @@
-%{ /* $Id: Gmsh.y,v 1.10 2000-12-04 09:29:38 colignon Exp $ */
+%{ /* $Id: Gmsh.y,v 1.11 2000-12-04 09:51:51 geuzaine Exp $ */
 
 #include <stdarg.h>
 
@@ -1311,7 +1311,7 @@ Coherence :
 
 Options :
     tColor '{' ColorSections '}'
-  | tClip tPlane '(' FExpr ')' tAFFECT '{' FExpr ',' FExpr ',' FExpr ',' FExpr '}'
+  | tClip tPlane '(' FExpr ')' tAFFECT '{' FExpr ',' FExpr ',' FExpr ',' FExpr '}' tEND
     {
       i = (int)$4 ;
       if(i < 0 || i > 5)
@@ -1319,9 +1319,9 @@ Options :
       else{
 	CTX.clip[i] = 1;
 	CTX.clip_plane[i][0] = $8;
-	CTX.clip_plane[i][0] = $10;
-	CTX.clip_plane[i][0] = $12;
-	CTX.clip_plane[i][0] = $14;
+	CTX.clip_plane[i][1] = $10;
+	CTX.clip_plane[i][2] = $12;
+	CTX.clip_plane[i][3] = $14;
       }
     }
 ;
diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp
index 6362f8c7af..3daca2fde5 100644
--- a/Parser/Gmsh.yy.cpp
+++ b/Parser/Gmsh.yy.cpp
@@ -2,7 +2,7 @@
 /* A lexical scanner generated by flex */
 
 /* Scanner skeleton version:
- * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.12 2000-12-04 09:29:39 colignon Exp $
+ * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.13 2000-12-04 09:51:51 geuzaine Exp $
  */
 
 #define FLEX_SCANNER
@@ -1135,7 +1135,7 @@ YY_MALLOC_DECL
 YY_DECL
 	{
 	register yy_state_type yy_current_state;
-	register char *yy_cp, *yy_bp;
+	register char *yy_cp = NULL, *yy_bp = NULL;
 	register int yy_act;
 
 #line 60 "Gmsh.l"
-- 
GitLab