diff --git a/Box/Box.cpp b/Box/Box.cpp index fc0a34dd259efdb821aacf8f400230f6997de33c..67966cc03a8a194c803aced34f8da3ac555b1bd5 100644 --- a/Box/Box.cpp +++ b/Box/Box.cpp @@ -1,4 +1,4 @@ -/* $Id: Box.cpp,v 1.12 2000-12-08 10:56:30 geuzaine Exp $ */ +/* $Id: Box.cpp,v 1.13 2000-12-09 22:26:12 geuzaine Exp $ */ #include <signal.h> @@ -58,7 +58,12 @@ char gmsh_help[] = void ZeroHighlight(Mesh *){} void AddViewInUI(int, char *, int){} void draw_polygon_2d (double, double, double, int, double *, double *, double *){} -void set_r(int i, double val){} +void set_r(int, double){} +void Init(void){} +void Draw(void){} +void Replot(void){} +void Get_AnimTime(void){} +void CreateImage(char *, FILE*){} /* ------------------------------------------------------------------------ */ /* I n f o */ @@ -93,17 +98,39 @@ void Info (int level, char *arg0){ /* ------------------------------------------------------------------------ */ void ParseFile(char *f){ + char String[256]; + strncpy(yyname,f,NAME_STR_L); yyerrorstate=0; yylineno=1; + if(!(yyin = fopen(yyname,"r"))){ - Msg(INFOS, "File '%s' dos not exist", f); + Msg(INFO, "File '%s' Does not Exist", f); return; } - while(!feof(yyin)) yyparse(); + + fpos_t position; + fgetpos(yyin, &position); + fgets(String, sizeof(String), yyin) ; + fsetpos(yyin, &position); + + if(!strncmp(String, "$PTS", 4) || + !strncmp(String, "$NO", 3) || + !strncmp(String, "$ELM", 4)){ + if(THEM->status < 0) mai3d(THEM, 0); + Read_Mesh(THEM, yyin, FORMAT_MSH); + } + else if(!strncmp(String, "$PostFormat", 11) || + !strncmp(String, "$View", 5)){ + Read_View(yyin, yyname); + } + else{ + while(!feof(yyin)) yyparse(); + } fclose(yyin); } + void MergeProblem(char *name){ Msg(INFOS, "Merging %s",name); @@ -137,8 +164,8 @@ void OpenProblem(char *name){ ParseFile(TheFileName); + ApplyLcFactor(THEM); mai3d(THEM,0); - Maillage_Dimension_0(&M); ZeroHighlight(&M); CalculateMinMax(THEM->Points); diff --git a/Common/Context.cpp b/Common/Context.cpp index a361cd13f10670d960c6f83661560eea878b5b35..f177d5d2f3e4e7cf9343140884734199eb804210 100644 --- a/Common/Context.cpp +++ b/Common/Context.cpp @@ -1,4 +1,4 @@ -/* $Id: Context.cpp,v 1.19 2000-12-09 17:33:39 geuzaine Exp $ */ +/* $Id: Context.cpp,v 1.20 2000-12-09 22:26:12 geuzaine Exp $ */ #include "Gmsh.h" #include "Const.h" @@ -409,9 +409,8 @@ void Context_T::buildRotmatrix(float m[4][4]) r0 *= 180./(Pi); r2 *= 180./(Pi); } - // lazyyyyyy set_r(0, r0); - set_r(1, r1 * 180./(Pi)); + set_r(1, r1 * 180./(Pi)); // lazyyyyyy set_r(2, r2); } diff --git a/Common/Options.h b/Common/Options.h index 46fafe55ed494c4dbfdd8796a674835791fe8d86..4193b01ae191b871dd46654d8802b758449c317e 100644 --- a/Common/Options.h +++ b/Common/Options.h @@ -1,4 +1,4 @@ -/* $Id: Options.h,v 1.4 2000-12-09 17:33:39 geuzaine Exp $ */ +/* $Id: Options.h,v 1.5 2000-12-09 22:26:12 geuzaine Exp $ */ #ifndef _OPTIONS_H_ #define _OPTIONS_H_ @@ -30,7 +30,7 @@ StringXString PostProcessingOptions_String[] = { } ; StringXString PrintOptions_String[] = { - { "PrintFont" , &CTX.print.font , "Courier" }, + { "Font" , &CTX.print.font , "Courier" }, { NULL , NULL , NULL } } ; diff --git a/Geo/CAD.cpp b/Geo/CAD.cpp index 6301186e25fd6166fa70c3ba51f12c2b61e8c0e6..4432f3b7f13e0446fb64e098595b438001208a65 100644 --- a/Geo/CAD.cpp +++ b/Geo/CAD.cpp @@ -1,4 +1,4 @@ -/* $Id: CAD.cpp,v 1.8 2000-11-26 15:43:45 geuzaine Exp $ */ +/* $Id: CAD.cpp,v 1.9 2000-12-09 22:26:12 geuzaine Exp $ */ #include "Gmsh.h" #include "Geo.h" @@ -803,7 +803,7 @@ void printCurve(Curve *c){ Msg(INFOS,"Curve %d %d cp (%d->%d)",c->Num,N,c->beg->Num,c->end->Num); for(int i=0;i<N;i++){ List_Read(c->Control_Points,i,&v); - Msg(INFOS,"Vertex %d (%f %f %f %f)",v->Num,v->Pos.X,v->Pos.Y,v->Pos.Z,v->lc); + Msg(INFOS,"Vertex %d (%g,%g,%g,%g)",v->Num,v->Pos.X,v->Pos.Y,v->Pos.Z,v->lc); } } diff --git a/Geo/Geo.cpp b/Geo/Geo.cpp index db0d1c43f0432ef4e30903381aa907e5c913d230..8a0cb7fc24d00b4209f45c153ffed49b6f42ef52 100644 --- a/Geo/Geo.cpp +++ b/Geo/Geo.cpp @@ -1,4 +1,4 @@ -/* $Id: Geo.cpp,v 1.8 2000-12-09 15:21:17 geuzaine Exp $ */ +/* $Id: Geo.cpp,v 1.9 2000-12-09 22:26:12 geuzaine Exp $ */ #include "Gmsh.h" #include "Const.h" @@ -29,7 +29,11 @@ int Mode_Transfinite = 0; double evaluate_scalarfunction (char *var, double val, char *funct){ FILE *tempf; tempf = yyin; - yyin = fopen("gmsh.tmp","w"); + + if(!(yyin = fopen("gmsh.tmp","w"))){ + Msg(ERROR, "Unable to Open Temporary File"); + return 0.; + } /* On pose la variable = la fonction et on evalue la fonction */ @@ -56,8 +60,14 @@ double evaluate_scalarfunction (char *var, double val, char *funct){ void add_infile(char *text, char *fich){ FILE *file; - yyin = fopen("gmsh.tmp","w"); - file = fopen(fich,"a"); + if(!(yyin = fopen("gmsh.tmp","w"))){ + Msg(ERROR, "Unable to Open Temporary File"); + return; + } + if(!(file = fopen(fich,"a"))){ + Msg(ERROR, "Unable to Open File '%s'", fich); + return; + } fprintf(yyin,"%s\n",text); Msg(SELECT,"%s",text); fclose(yyin); diff --git a/Mesh/3D_BGMesh.cpp b/Mesh/3D_BGMesh.cpp index 9db55ffe3f1a9fb3d3ef02ffd970aa8b7ed2fbda..39966735d45635925a58011f9b13d9afa215c8af 100644 --- a/Mesh/3D_BGMesh.cpp +++ b/Mesh/3D_BGMesh.cpp @@ -1,4 +1,4 @@ -/* $Id: 3D_BGMesh.cpp,v 1.11 2000-11-27 17:34:00 geuzaine Exp $ */ +/* $Id: 3D_BGMesh.cpp,v 1.12 2000-12-09 22:26:12 geuzaine Exp $ */ #include "Gmsh.h" #include "Mesh.h" @@ -18,6 +18,12 @@ void ExportLcFieldOnVolume (Mesh * M){ Volume *vol; Simplex *simp; FILE *f = fopen ("OutFile.pos", "w"); + + if(!f){ + Msg(ERROR, "Unable to Open File"); + return; + } + fprintf (f, "View \"LC_FIELD\" Offset{0,0,0} {\n"); for (int i = 0; i < List_Nbr (l); i++){ List_Read (l, i, &vol); @@ -38,6 +44,12 @@ void ExportLcFieldOnSurfaces (Mesh * M){ Surface *surf; Simplex *simp; FILE *f = fopen ("OutFileS.pos", "w"); + + if(!f){ + Msg(ERROR, "Unable to Open File"); + return; + } + fprintf (f, "View \"LC_FIELD\" Offset{0,0,0} {\n"); for (int i = 0; i < List_Nbr (l); i++){ List_Read (l, i, &surf); @@ -329,6 +341,11 @@ int CreateBGM (Post_View * ErrView, int OptiMethod, double Degree, f = fopen (OutFile, "w"); + if(!f){ + Msg(ERROR, "Unable to Open File '%s'", OutFile); + return 0; + } + fprintf (f, "View \"Auto_BGMesh\" Offset{0,0,0} {\n"); j = 0; diff --git a/Parser/Gmsh.l b/Parser/Gmsh.l index ea8cf578c49f496ab55b5f83c52a681aefeddf7b..d5fff29448e0df0b36c4fab703e6d9faffe9deea 100644 --- a/Parser/Gmsh.l +++ b/Parser/Gmsh.l @@ -1,4 +1,4 @@ -%{ /* $Id: Gmsh.l,v 1.19 2000-12-09 17:33:39 geuzaine Exp $ */ +%{ /* $Id: Gmsh.l,v 1.20 2000-12-09 22:26:12 geuzaine Exp $ */ #include <stdio.h> #include <stdlib.h> @@ -86,7 +86,7 @@ stepid {dieze}({digit})* "<=" return tLESSOREQUAL ; ">=" return tGREATEROREQUAL ; -ACos return tAcos ; +Acos return tAcos ; ArcCos return tAcos ; Asin return tAsin; ArcSin return tAsin; @@ -109,6 +109,7 @@ Coherence return tCoherence; Complex return tComplex; Color return tColor; CatmullRom return tSpline; +Call return tCall; Delete return tDelete; Dilate return tDilate; @@ -120,14 +121,20 @@ Ellipsis return tEllipsis; Extrude return tExtrude; Elliptic return tElliptic; ELLIPSE return tELLIPSE; +EndFor return tEndFor; +EndIf return tEndIf; +Exit return tExit; Fabs return tFabs ; Floor return tFloor ; Fmod return tFmod ; +For return tFor; +Function return tFunction; Hypot return tHypot ; In return tIn; +If return tIf; Knots return tKnots; @@ -157,6 +164,7 @@ Recombine return tRecombine; Rotate return tRotate; Ruled return tRuled; Rand return tRand; +Return return tReturn; Sqrt return tSqrt ; Sin return tSin ; @@ -179,14 +187,6 @@ Volume return tVolume; With return tWith; -For return tFor; -EndFor return tEndFor; -Exit return tExit; -Merge return tMerge; -Function return tFunction; -Return return tReturn; -Call return tCall; - SS return tScalarTetrahedron; VS return tVectorTetrahedron; TS return tTensorTetrahedron; diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index bcb16b9e23d2ec8ebdd9536ae7e7c0da8cfb81a5..c7148c411bc95e1fb9a8d4d9fd030440a3f0703f 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -89,82 +89,84 @@ #define tFor 339 #define tIn 340 #define tEndFor 341 -#define tExit 342 -#define tMerge 343 -#define tReturn 344 -#define tCall 345 -#define tFunction 346 -#define tB_SPLINE_SURFACE_WITH_KNOTS 347 -#define tB_SPLINE_CURVE_WITH_KNOTS 348 -#define tCARTESIAN_POINT 349 -#define tTRUE 350 -#define tFALSE 351 -#define tUNSPECIFIED 352 -#define tU 353 -#define tV 354 -#define tEDGE_CURVE 355 -#define tVERTEX_POINT 356 -#define tORIENTED_EDGE 357 -#define tPLANE 358 -#define tFACE_OUTER_BOUND 359 -#define tEDGE_LOOP 360 -#define tADVANCED_FACE 361 -#define tVECTOR 362 -#define tDIRECTION 363 -#define tAXIS2_PLACEMENT_3D 364 -#define tISO 365 -#define tENDISO 366 -#define tENDSEC 367 -#define tDATA 368 -#define tHEADER 369 -#define tFILE_DESCRIPTION 370 -#define tFILE_SCHEMA 371 -#define tFILE_NAME 372 -#define tMANIFOLD_SOLID_BREP 373 -#define tCLOSED_SHELL 374 -#define tADVANCED_BREP_SHAPE_REPRESENTATION 375 -#define tFACE_BOUND 376 -#define tCYLINDRICAL_SURFACE 377 -#define tCONICAL_SURFACE 378 -#define tCIRCLE 379 -#define tTRIMMED_CURVE 380 -#define tGEOMETRIC_SET 381 -#define tCOMPOSITE_CURVE_SEGMENT 382 -#define tCONTINUOUS 383 -#define tCOMPOSITE_CURVE 384 -#define tTOROIDAL_SURFACE 385 -#define tPRODUCT_DEFINITION 386 -#define tPRODUCT_DEFINITION_SHAPE 387 -#define tSHAPE_DEFINITION_REPRESENTATION 388 -#define tELLIPSE 389 -#define tTrimmed 390 -#define tSolid 391 -#define tEndSolid 392 -#define tVertex 393 -#define tFacet 394 -#define tNormal 395 -#define tOuter 396 -#define tLoopSTL 397 -#define tEndLoop 398 -#define tEndFacet 399 -#define tAND 400 -#define tOR 401 -#define tNOTEQUAL 402 -#define tEQUAL 403 -#define tAPPROXEQUAL 404 -#define tAFFECTPLUS 405 -#define tAFFECTMINUS 406 -#define tAFFECTTIMES 407 -#define tAFFECTDIVIDE 408 -#define tLESSOREQUAL 409 -#define tGREATEROREQUAL 410 -#define tCROSSPRODUCT 411 -#define UNARYPREC 412 -#define tPLUSPLUS 413 -#define tMINUSMINUS 414 +#define tIf 342 +#define tEndIf 343 +#define tExit 344 +#define tMerge 345 +#define tReturn 346 +#define tCall 347 +#define tFunction 348 +#define tB_SPLINE_SURFACE_WITH_KNOTS 349 +#define tB_SPLINE_CURVE_WITH_KNOTS 350 +#define tCARTESIAN_POINT 351 +#define tTRUE 352 +#define tFALSE 353 +#define tUNSPECIFIED 354 +#define tU 355 +#define tV 356 +#define tEDGE_CURVE 357 +#define tVERTEX_POINT 358 +#define tORIENTED_EDGE 359 +#define tPLANE 360 +#define tFACE_OUTER_BOUND 361 +#define tEDGE_LOOP 362 +#define tADVANCED_FACE 363 +#define tVECTOR 364 +#define tDIRECTION 365 +#define tAXIS2_PLACEMENT_3D 366 +#define tISO 367 +#define tENDISO 368 +#define tENDSEC 369 +#define tDATA 370 +#define tHEADER 371 +#define tFILE_DESCRIPTION 372 +#define tFILE_SCHEMA 373 +#define tFILE_NAME 374 +#define tMANIFOLD_SOLID_BREP 375 +#define tCLOSED_SHELL 376 +#define tADVANCED_BREP_SHAPE_REPRESENTATION 377 +#define tFACE_BOUND 378 +#define tCYLINDRICAL_SURFACE 379 +#define tCONICAL_SURFACE 380 +#define tCIRCLE 381 +#define tTRIMMED_CURVE 382 +#define tGEOMETRIC_SET 383 +#define tCOMPOSITE_CURVE_SEGMENT 384 +#define tCONTINUOUS 385 +#define tCOMPOSITE_CURVE 386 +#define tTOROIDAL_SURFACE 387 +#define tPRODUCT_DEFINITION 388 +#define tPRODUCT_DEFINITION_SHAPE 389 +#define tSHAPE_DEFINITION_REPRESENTATION 390 +#define tELLIPSE 391 +#define tTrimmed 392 +#define tSolid 393 +#define tEndSolid 394 +#define tVertex 395 +#define tFacet 396 +#define tNormal 397 +#define tOuter 398 +#define tLoopSTL 399 +#define tEndLoop 400 +#define tEndFacet 401 +#define tAND 402 +#define tOR 403 +#define tNOTEQUAL 404 +#define tEQUAL 405 +#define tAPPROXEQUAL 406 +#define tAFFECTPLUS 407 +#define tAFFECTMINUS 408 +#define tAFFECTTIMES 409 +#define tAFFECTDIVIDE 410 +#define tLESSOREQUAL 411 +#define tGREATEROREQUAL 412 +#define tCROSSPRODUCT 413 +#define UNARYPREC 414 +#define tPLUSPLUS 415 +#define tMINUSMINUS 416 #line 1 "Gmsh.y" - /* $Id: Gmsh.tab.cpp,v 1.38 2000-12-09 17:33:39 geuzaine Exp $ */ + /* $Id: Gmsh.tab.cpp,v 1.39 2000-12-09 22:26:12 geuzaine Exp $ */ #include <stdarg.h> @@ -221,11 +223,12 @@ static StringXNumber *pNumCat; static StringXArray *pArrCat; static StringXColor *pColCat; -void yyerror (char *s); -void vyyerror (char *fmt, ...); +void yyerror (char *s); +void vyyerror (char *fmt, ...); +void skip_until (char *until); -#line 63 "Gmsh.y" +#line 64 "Gmsh.y" typedef union { char *c; int i; @@ -245,26 +248,26 @@ typedef union { -#define YYFINAL 1521 +#define YYFINAL 1529 #define YYFLAG -32768 -#define YYNTBASE 179 +#define YYNTBASE 181 -#define YYTRANSLATE(x) ((unsigned)(x) <= 414 ? yytranslate[x] : 257) +#define YYTRANSLATE(x) ((unsigned)(x) <= 416 ? yytranslate[x] : 259) 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, 167, 2, 2, 2, 164, 2, 2, 171, - 173, 162, 160, 172, 161, 176, 163, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 156, - 2, 157, 146, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 169, 2, 2, 2, 166, 2, 2, 173, + 175, 164, 162, 174, 163, 178, 165, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 158, + 2, 159, 148, 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, - 177, 2, 178, 168, 2, 2, 2, 2, 2, 2, + 179, 2, 180, 170, 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, 174, 2, 175, 2, 2, 2, 2, 2, + 2, 2, 176, 2, 177, 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, @@ -291,9 +294,9 @@ static const short yytranslate[] = { 0, 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, 142, 143, 144, 145, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 158, 159, - 165, 166, 169, 170 + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 160, 161, 167, 168, 171, 172 }; #if YYDEBUG != 0 @@ -304,297 +307,301 @@ static const short yyprhs[] = { 0, 248, 260, 274, 284, 294, 306, 316, 328, 338, 350, 364, 378, 390, 404, 422, 432, 444, 456, 470, 482, 492, 493, 496, 498, 500, 502, 504, 506, 508, 510, - 512, 514, 516, 518, 520, 523, 531, 538, 547, 548, - 551, 554, 557, 560, 563, 566, 569, 572, 575, 578, - 581, 584, 586, 590, 591, 605, 607, 611, 612, 626, - 628, 632, 633, 647, 649, 653, 654, 674, 676, 680, - 681, 701, 703, 707, 708, 728, 730, 734, 735, 761, - 763, 767, 768, 794, 796, 800, 801, 827, 829, 833, - 834, 866, 868, 872, 873, 905, 907, 911, 912, 944, - 949, 953, 957, 962, 967, 972, 977, 984, 996, 1003, - 1015, 1022, 1034, 1041, 1053, 1060, 1072, 1079, 1091, 1097, - 1109, 1115, 1127, 1134, 1146, 1153, 1165, 1172, 1184, 1193, - 1205, 1213, 1222, 1235, 1242, 1248, 1256, 1264, 1277, 1285, - 1295, 1313, 1321, 1330, 1339, 1347, 1359, 1365, 1374, 1384, - 1393, 1416, 1437, 1446, 1455, 1461, 1470, 1478, 1487, 1493, - 1505, 1511, 1521, 1523, 1525, 1527, 1528, 1531, 1536, 1541, - 1545, 1549, 1552, 1555, 1562, 1571, 1580, 1591, 1593, 1595, - 1599, 1602, 1611, 1624, 1633, 1646, 1655, 1668, 1680, 1696, - 1698, 1701, 1711, 1714, 1721, 1731, 1741, 1750, 1759, 1768, - 1775, 1780, 1783, 1785, 1787, 1789, 1791, 1793, 1795, 1799, - 1802, 1805, 1808, 1812, 1816, 1820, 1824, 1828, 1832, 1836, - 1840, 1844, 1848, 1852, 1856, 1860, 1864, 1870, 1875, 1880, - 1885, 1890, 1895, 1900, 1905, 1910, 1915, 1920, 1927, 1932, - 1937, 1942, 1947, 1952, 1957, 1964, 1971, 1978, 1983, 1985, - 1987, 1989, 1993, 2002, 2007, 2017, 2022, 2032, 2036, 2042, - 2044, 2047, 2050, 2054, 2058, 2070, 2080, 2088, 2096, 2100, - 2109, 2110, 2114, 2116, 2120, 2121, 2125, 2129, 2131, 2135, - 2136, 2138, 2142, 2144, 2146, 2150, 2154, 2164, 2172, 2178, - 2180, 2186, 2190, 2199, 2201, 2205, 2207 + 512, 514, 516, 518, 520, 523, 529, 537, 544, 553, + 554, 557, 560, 563, 566, 569, 572, 575, 578, 581, + 584, 587, 590, 592, 596, 597, 611, 613, 617, 618, + 632, 634, 638, 639, 653, 655, 659, 660, 680, 682, + 686, 687, 707, 709, 713, 714, 734, 736, 740, 741, + 767, 769, 773, 774, 800, 802, 806, 807, 833, 835, + 839, 840, 872, 874, 878, 879, 911, 913, 917, 918, + 950, 955, 959, 963, 968, 973, 978, 983, 990, 1002, + 1009, 1021, 1028, 1040, 1047, 1059, 1066, 1078, 1085, 1097, + 1103, 1115, 1121, 1133, 1140, 1152, 1159, 1171, 1178, 1190, + 1199, 1211, 1219, 1228, 1241, 1248, 1254, 1262, 1270, 1283, + 1291, 1301, 1319, 1327, 1336, 1345, 1353, 1365, 1371, 1380, + 1390, 1399, 1422, 1443, 1452, 1461, 1467, 1476, 1484, 1493, + 1499, 1511, 1517, 1527, 1529, 1531, 1533, 1534, 1537, 1542, + 1547, 1551, 1555, 1558, 1561, 1568, 1577, 1586, 1597, 1599, + 1601, 1605, 1608, 1613, 1615, 1624, 1637, 1646, 1659, 1668, + 1681, 1693, 1709, 1711, 1714, 1724, 1727, 1734, 1744, 1754, + 1763, 1772, 1781, 1788, 1793, 1796, 1798, 1800, 1802, 1804, + 1806, 1808, 1812, 1815, 1818, 1821, 1825, 1829, 1833, 1837, + 1841, 1845, 1849, 1853, 1857, 1861, 1865, 1869, 1873, 1877, + 1883, 1888, 1893, 1898, 1903, 1908, 1913, 1918, 1923, 1928, + 1933, 1940, 1945, 1950, 1955, 1960, 1965, 1970, 1977, 1984, + 1991, 1996, 1998, 2000, 2002, 2006, 2015, 2020, 2030, 2035, + 2045, 2049, 2055, 2057, 2060, 2063, 2067, 2071, 2083, 2093, + 2101, 2109, 2113, 2122, 2123, 2127, 2129, 2133, 2134, 2138, + 2142, 2144, 2148, 2149, 2151, 2155, 2157, 2159, 2163, 2167, + 2177, 2185, 2191, 2193, 2199, 2203, 2212, 2214, 2218, 2220, + 2225 }; -static const short yyrhs[] = { 181, - 0, 180, 0, 186, 0, 137, 0, 140, 141, 242, - 242, 242, 142, 143, 139, 242, 242, 242, 139, 242, - 242, 242, 139, 242, 242, 242, 144, 145, 0, 138, - 0, 0, 181, 182, 0, 183, 0, 185, 0, 184, - 0, 1, 6, 0, 111, 6, 0, 112, 6, 0, - 114, 6, 0, 113, 6, 0, 115, 6, 0, 116, - 171, 247, 172, 5, 173, 6, 0, 117, 171, 247, - 173, 6, 0, 118, 171, 5, 172, 5, 172, 247, - 172, 247, 172, 5, 172, 5, 172, 5, 173, 6, - 0, 3, 7, 95, 171, 5, 172, 245, 173, 6, - 0, 3, 7, 94, 171, 5, 172, 242, 172, 251, - 172, 241, 172, 241, 172, 241, 172, 251, 172, 251, - 172, 241, 173, 6, 0, 3, 7, 93, 171, 5, - 172, 242, 172, 242, 172, 249, 172, 241, 172, 241, - 172, 241, 172, 241, 172, 251, 172, 251, 172, 251, - 172, 251, 172, 241, 173, 6, 0, 3, 7, 101, - 171, 5, 172, 3, 172, 3, 172, 3, 172, 241, - 173, 6, 0, 3, 7, 105, 171, 5, 172, 3, - 172, 241, 173, 6, 0, 3, 7, 122, 171, 5, - 172, 3, 172, 241, 173, 6, 0, 3, 7, 103, - 171, 5, 172, 162, 172, 162, 172, 242, 172, 241, - 173, 6, 0, 3, 7, 106, 171, 5, 172, 251, - 173, 6, 0, 3, 7, 107, 171, 5, 172, 251, - 172, 3, 172, 241, 173, 6, 0, 3, 7, 102, - 171, 5, 172, 3, 173, 6, 0, 3, 7, 108, - 171, 5, 172, 3, 172, 242, 173, 6, 0, 3, - 7, 110, 171, 5, 172, 3, 172, 3, 172, 3, - 173, 6, 0, 3, 7, 109, 171, 5, 172, 245, - 173, 6, 0, 3, 7, 104, 171, 5, 172, 3, - 173, 6, 0, 3, 7, 37, 171, 5, 172, 3, - 172, 3, 173, 6, 0, 3, 7, 120, 171, 5, - 172, 251, 173, 6, 0, 3, 7, 121, 171, 5, - 172, 251, 172, 3, 173, 6, 0, 3, 7, 119, - 171, 5, 172, 3, 173, 6, 0, 3, 7, 123, - 171, 5, 172, 3, 172, 242, 173, 6, 0, 3, - 7, 124, 171, 5, 172, 3, 172, 242, 172, 242, - 173, 6, 0, 3, 7, 131, 171, 5, 172, 3, - 172, 242, 172, 242, 173, 6, 0, 3, 7, 125, - 171, 5, 172, 3, 172, 242, 173, 6, 0, 3, - 7, 135, 171, 5, 172, 3, 172, 242, 172, 242, - 173, 6, 0, 3, 7, 126, 171, 5, 172, 3, - 172, 251, 172, 251, 172, 241, 172, 241, 173, 6, - 0, 3, 7, 127, 171, 5, 172, 251, 173, 6, - 0, 3, 7, 128, 171, 129, 172, 241, 172, 3, - 173, 6, 0, 3, 7, 130, 171, 5, 172, 251, - 172, 241, 173, 6, 0, 3, 7, 132, 171, 5, - 172, 5, 172, 3, 172, 3, 173, 6, 0, 3, - 7, 133, 171, 5, 172, 5, 172, 3, 173, 6, - 0, 3, 7, 134, 171, 3, 172, 3, 173, 6, - 0, 0, 186, 187, 0, 189, 0, 188, 0, 227, - 0, 228, 0, 229, 0, 232, 0, 233, 0, 236, - 0, 239, 0, 240, 0, 235, 0, 234, 0, 1, - 6, 0, 31, 171, 5, 172, 242, 173, 6, 0, - 63, 5, 174, 190, 175, 6, 0, 63, 5, 4, - 245, 174, 190, 175, 6, 0, 0, 190, 192, 0, - 190, 195, 0, 190, 198, 0, 190, 201, 0, 190, - 204, 0, 190, 207, 0, 190, 210, 0, 190, 213, - 0, 190, 216, 0, 190, 219, 0, 190, 222, 0, - 190, 225, 0, 242, 0, 191, 172, 242, 0, 0, - 75, 171, 242, 172, 242, 172, 242, 173, 193, 174, - 191, 175, 6, 0, 242, 0, 194, 172, 242, 0, - 0, 76, 171, 242, 172, 242, 172, 242, 173, 196, - 174, 194, 175, 6, 0, 242, 0, 197, 172, 242, - 0, 0, 77, 171, 242, 172, 242, 172, 242, 173, - 199, 174, 197, 175, 6, 0, 242, 0, 200, 172, - 242, 0, 0, 72, 171, 242, 172, 242, 172, 242, - 172, 242, 172, 242, 172, 242, 173, 202, 174, 200, - 175, 6, 0, 242, 0, 203, 172, 242, 0, 0, - 73, 171, 242, 172, 242, 172, 242, 172, 242, 172, - 242, 172, 242, 173, 205, 174, 203, 175, 6, 0, - 242, 0, 206, 172, 242, 0, 0, 74, 171, 242, - 172, 242, 172, 242, 172, 242, 172, 242, 172, 242, - 173, 208, 174, 206, 175, 6, 0, 242, 0, 209, - 172, 242, 0, 0, 69, 171, 242, 172, 242, 172, - 242, 172, 242, 172, 242, 172, 242, 172, 242, 172, - 242, 172, 242, 173, 211, 174, 209, 175, 6, 0, - 242, 0, 212, 172, 242, 0, 0, 70, 171, 242, - 172, 242, 172, 242, 172, 242, 172, 242, 172, 242, - 172, 242, 172, 242, 172, 242, 173, 214, 174, 212, - 175, 6, 0, 242, 0, 215, 172, 242, 0, 0, - 71, 171, 242, 172, 242, 172, 242, 172, 242, 172, - 242, 172, 242, 172, 242, 172, 242, 172, 242, 173, - 217, 174, 215, 175, 6, 0, 242, 0, 218, 172, - 242, 0, 0, 66, 171, 242, 172, 242, 172, 242, - 172, 242, 172, 242, 172, 242, 172, 242, 172, 242, - 172, 242, 172, 242, 172, 242, 172, 242, 173, 220, - 174, 218, 175, 6, 0, 242, 0, 221, 172, 242, - 0, 0, 67, 171, 242, 172, 242, 172, 242, 172, - 242, 172, 242, 172, 242, 172, 242, 172, 242, 172, - 242, 172, 242, 172, 242, 172, 242, 173, 223, 174, - 221, 175, 6, 0, 242, 0, 224, 172, 242, 0, - 0, 68, 171, 242, 172, 242, 172, 242, 172, 242, - 172, 242, 172, 242, 172, 242, 172, 242, 172, 242, - 172, 242, 172, 242, 172, 242, 173, 226, 174, 224, - 175, 6, 0, 4, 7, 242, 6, 0, 4, 169, - 6, 0, 4, 170, 6, 0, 4, 152, 242, 6, - 0, 4, 153, 242, 6, 0, 4, 154, 242, 6, - 0, 4, 155, 242, 6, 0, 4, 176, 4, 7, - 5, 6, 0, 4, 176, 63, 177, 242, 178, 176, - 4, 7, 5, 6, 0, 4, 176, 4, 7, 242, - 6, 0, 4, 176, 63, 177, 242, 178, 176, 4, - 7, 242, 6, 0, 4, 176, 4, 152, 242, 6, - 0, 4, 176, 63, 177, 242, 178, 176, 4, 152, - 242, 6, 0, 4, 176, 4, 153, 242, 6, 0, - 4, 176, 63, 177, 242, 178, 176, 4, 153, 242, - 6, 0, 4, 176, 4, 154, 242, 6, 0, 4, - 176, 63, 177, 242, 178, 176, 4, 154, 242, 6, - 0, 4, 176, 4, 155, 242, 6, 0, 4, 176, - 63, 177, 242, 178, 176, 4, 155, 242, 6, 0, - 4, 176, 4, 169, 6, 0, 4, 176, 63, 177, - 242, 178, 176, 4, 169, 242, 6, 0, 4, 176, - 4, 170, 6, 0, 4, 176, 63, 177, 242, 178, - 176, 4, 170, 242, 6, 0, 4, 176, 4, 7, - 245, 6, 0, 4, 176, 63, 177, 242, 178, 176, - 4, 7, 245, 6, 0, 4, 176, 4, 152, 245, - 6, 0, 4, 176, 63, 177, 242, 178, 176, 4, - 152, 245, 6, 0, 4, 176, 4, 153, 245, 6, - 0, 4, 176, 63, 177, 242, 178, 176, 4, 153, - 245, 6, 0, 4, 176, 84, 176, 4, 7, 253, - 6, 0, 4, 176, 63, 177, 242, 178, 176, 84, - 7, 254, 6, 0, 34, 171, 242, 173, 7, 245, - 6, 0, 49, 34, 171, 242, 173, 7, 251, 6, - 0, 64, 34, 251, 7, 174, 242, 172, 242, 172, - 242, 175, 6, 0, 41, 42, 251, 7, 242, 6, - 0, 34, 174, 242, 175, 6, 0, 37, 171, 242, - 173, 7, 251, 6, 0, 39, 171, 242, 173, 7, - 251, 6, 0, 64, 37, 251, 7, 174, 242, 172, - 242, 172, 242, 175, 6, 0, 35, 171, 242, 173, - 7, 251, 6, 0, 35, 171, 242, 173, 7, 251, - 45, 245, 6, 0, 43, 171, 242, 173, 7, 174, - 242, 172, 242, 172, 5, 172, 5, 172, 5, 175, - 6, 0, 36, 171, 242, 173, 7, 251, 6, 0, - 49, 37, 171, 242, 173, 7, 251, 6, 0, 37, - 59, 171, 242, 173, 7, 251, 6, 0, 78, 171, - 242, 173, 7, 251, 6, 0, 79, 171, 242, 173, - 7, 251, 83, 251, 80, 242, 6, 0, 37, 174, - 242, 175, 6, 0, 45, 38, 171, 242, 173, 7, - 251, 6, 0, 136, 38, 171, 242, 173, 7, 242, - 251, 6, 0, 46, 38, 171, 242, 173, 7, 251, - 6, 0, 79, 38, 81, 82, 171, 242, 173, 7, - 249, 83, 174, 251, 172, 251, 175, 80, 174, 242, - 172, 242, 175, 6, 0, 79, 38, 171, 242, 173, - 7, 249, 83, 174, 251, 172, 251, 175, 80, 174, - 242, 172, 242, 175, 6, 0, 49, 38, 171, 242, - 173, 7, 251, 6, 0, 38, 59, 171, 242, 173, - 7, 251, 6, 0, 38, 174, 242, 175, 6, 0, - 48, 40, 171, 242, 173, 7, 251, 6, 0, 40, - 171, 242, 173, 7, 251, 6, 0, 49, 40, 171, - 242, 173, 7, 251, 6, 0, 54, 245, 174, 230, - 175, 0, 53, 174, 245, 172, 245, 172, 242, 175, - 174, 230, 175, 0, 55, 245, 174, 230, 175, 0, - 56, 174, 245, 172, 242, 175, 174, 230, 175, 0, - 232, 0, 231, 0, 229, 0, 0, 231, 228, 0, - 58, 174, 231, 175, 0, 61, 174, 231, 175, 0, - 4, 256, 6, 0, 4, 242, 6, 0, 88, 6, - 0, 33, 6, 0, 85, 174, 242, 8, 242, 175, - 0, 85, 174, 242, 8, 242, 8, 242, 175, 0, - 85, 4, 86, 174, 242, 8, 242, 175, 0, 85, - 4, 86, 174, 242, 8, 242, 8, 242, 175, 0, - 87, 0, 90, 0, 91, 4, 6, 0, 92, 4, - 0, 57, 34, 174, 242, 172, 245, 175, 6, 0, - 57, 34, 174, 242, 172, 245, 172, 245, 172, 242, - 175, 6, 0, 57, 37, 174, 242, 172, 245, 175, - 6, 0, 57, 37, 174, 242, 172, 245, 172, 245, - 172, 242, 175, 6, 0, 57, 38, 174, 242, 172, - 245, 175, 6, 0, 57, 38, 174, 242, 172, 245, - 172, 245, 172, 242, 175, 6, 0, 57, 38, 174, - 242, 172, 245, 175, 174, 237, 175, 6, 0, 57, - 38, 174, 242, 172, 245, 172, 245, 172, 242, 175, - 174, 237, 175, 6, 0, 238, 0, 237, 238, 0, - 65, 174, 251, 172, 251, 172, 251, 175, 6, 0, - 60, 6, 0, 47, 37, 251, 7, 242, 6, 0, - 47, 37, 251, 7, 242, 50, 52, 242, 6, 0, - 47, 37, 251, 7, 242, 50, 51, 242, 6, 0, - 47, 38, 174, 242, 175, 7, 251, 6, 0, 44, - 38, 174, 242, 175, 7, 251, 6, 0, 47, 40, - 174, 242, 175, 7, 251, 6, 0, 60, 38, 251, - 7, 242, 6, 0, 60, 38, 251, 6, 0, 62, - 6, 0, 96, 0, 97, 0, 98, 0, 99, 0, - 100, 0, 243, 0, 171, 242, 173, 0, 161, 242, - 0, 160, 242, 0, 167, 242, 0, 242, 161, 242, - 0, 242, 160, 242, 0, 242, 162, 242, 0, 242, - 163, 242, 0, 242, 164, 242, 0, 242, 168, 242, - 0, 242, 156, 242, 0, 242, 157, 242, 0, 242, - 158, 242, 0, 242, 159, 242, 0, 242, 150, 242, - 0, 242, 149, 242, 0, 242, 147, 242, 0, 242, - 148, 242, 0, 242, 146, 242, 8, 242, 0, 10, - 171, 242, 173, 0, 11, 171, 242, 173, 0, 12, - 171, 242, 173, 0, 13, 171, 242, 173, 0, 14, - 171, 242, 173, 0, 15, 171, 242, 173, 0, 16, - 171, 242, 173, 0, 17, 171, 242, 173, 0, 18, - 171, 242, 173, 0, 20, 171, 242, 173, 0, 21, - 171, 242, 172, 242, 173, 0, 22, 171, 242, 173, - 0, 23, 171, 242, 173, 0, 24, 171, 242, 173, - 0, 25, 171, 242, 173, 0, 26, 171, 242, 173, - 0, 27, 171, 242, 173, 0, 28, 171, 242, 172, - 242, 173, 0, 29, 171, 242, 172, 242, 173, 0, - 30, 171, 242, 172, 242, 173, 0, 19, 171, 242, - 173, 0, 3, 0, 9, 0, 4, 0, 4, 176, - 4, 0, 4, 176, 63, 177, 242, 178, 176, 4, - 0, 4, 176, 4, 169, 0, 4, 176, 63, 177, - 242, 178, 176, 4, 169, 0, 4, 176, 4, 170, - 0, 4, 176, 63, 177, 242, 178, 176, 4, 170, - 0, 242, 8, 242, 0, 242, 8, 242, 8, 242, - 0, 246, 0, 161, 245, 0, 160, 245, 0, 245, - 161, 245, 0, 245, 160, 245, 0, 174, 242, 172, - 242, 172, 242, 172, 242, 172, 242, 175, 0, 174, - 242, 172, 242, 172, 242, 172, 242, 175, 0, 174, - 242, 172, 242, 172, 242, 175, 0, 171, 242, 172, - 242, 172, 242, 173, 0, 4, 176, 4, 0, 4, - 176, 63, 177, 242, 178, 176, 4, 0, 0, 171, - 248, 173, 0, 5, 0, 248, 172, 5, 0, 0, - 174, 250, 175, 0, 171, 250, 173, 0, 251, 0, - 250, 172, 251, 0, 0, 242, 0, 174, 252, 175, - 0, 242, 0, 244, 0, 252, 172, 242, 0, 252, - 172, 244, 0, 174, 242, 172, 242, 172, 242, 172, - 242, 175, 0, 174, 242, 172, 242, 172, 242, 175, - 0, 174, 4, 172, 242, 175, 0, 4, 0, 4, - 176, 84, 176, 4, 0, 174, 255, 175, 0, 4, - 176, 63, 177, 242, 178, 176, 84, 0, 253, 0, - 255, 172, 253, 0, 5, 0, 32, 171, 5, 172, - 242, 173, 0 +static const short yyrhs[] = { 183, + 0, 182, 0, 188, 0, 139, 0, 142, 143, 244, + 244, 244, 144, 145, 141, 244, 244, 244, 141, 244, + 244, 244, 141, 244, 244, 244, 146, 147, 0, 140, + 0, 0, 183, 184, 0, 185, 0, 187, 0, 186, + 0, 1, 6, 0, 113, 6, 0, 114, 6, 0, + 116, 6, 0, 115, 6, 0, 117, 6, 0, 118, + 173, 249, 174, 5, 175, 6, 0, 119, 173, 249, + 175, 6, 0, 120, 173, 5, 174, 5, 174, 249, + 174, 249, 174, 5, 174, 5, 174, 5, 175, 6, + 0, 3, 7, 97, 173, 5, 174, 247, 175, 6, + 0, 3, 7, 96, 173, 5, 174, 244, 174, 253, + 174, 243, 174, 243, 174, 243, 174, 253, 174, 253, + 174, 243, 175, 6, 0, 3, 7, 95, 173, 5, + 174, 244, 174, 244, 174, 251, 174, 243, 174, 243, + 174, 243, 174, 243, 174, 253, 174, 253, 174, 253, + 174, 253, 174, 243, 175, 6, 0, 3, 7, 103, + 173, 5, 174, 3, 174, 3, 174, 3, 174, 243, + 175, 6, 0, 3, 7, 107, 173, 5, 174, 3, + 174, 243, 175, 6, 0, 3, 7, 124, 173, 5, + 174, 3, 174, 243, 175, 6, 0, 3, 7, 105, + 173, 5, 174, 164, 174, 164, 174, 244, 174, 243, + 175, 6, 0, 3, 7, 108, 173, 5, 174, 253, + 175, 6, 0, 3, 7, 109, 173, 5, 174, 253, + 174, 3, 174, 243, 175, 6, 0, 3, 7, 104, + 173, 5, 174, 3, 175, 6, 0, 3, 7, 110, + 173, 5, 174, 3, 174, 244, 175, 6, 0, 3, + 7, 112, 173, 5, 174, 3, 174, 3, 174, 3, + 175, 6, 0, 3, 7, 111, 173, 5, 174, 247, + 175, 6, 0, 3, 7, 106, 173, 5, 174, 3, + 175, 6, 0, 3, 7, 37, 173, 5, 174, 3, + 174, 3, 175, 6, 0, 3, 7, 122, 173, 5, + 174, 253, 175, 6, 0, 3, 7, 123, 173, 5, + 174, 253, 174, 3, 175, 6, 0, 3, 7, 121, + 173, 5, 174, 3, 175, 6, 0, 3, 7, 125, + 173, 5, 174, 3, 174, 244, 175, 6, 0, 3, + 7, 126, 173, 5, 174, 3, 174, 244, 174, 244, + 175, 6, 0, 3, 7, 133, 173, 5, 174, 3, + 174, 244, 174, 244, 175, 6, 0, 3, 7, 127, + 173, 5, 174, 3, 174, 244, 175, 6, 0, 3, + 7, 137, 173, 5, 174, 3, 174, 244, 174, 244, + 175, 6, 0, 3, 7, 128, 173, 5, 174, 3, + 174, 253, 174, 253, 174, 243, 174, 243, 175, 6, + 0, 3, 7, 129, 173, 5, 174, 253, 175, 6, + 0, 3, 7, 130, 173, 131, 174, 243, 174, 3, + 175, 6, 0, 3, 7, 132, 173, 5, 174, 253, + 174, 243, 175, 6, 0, 3, 7, 134, 173, 5, + 174, 5, 174, 3, 174, 3, 175, 6, 0, 3, + 7, 135, 173, 5, 174, 5, 174, 3, 175, 6, + 0, 3, 7, 136, 173, 3, 174, 3, 175, 6, + 0, 0, 188, 189, 0, 191, 0, 190, 0, 229, + 0, 230, 0, 231, 0, 234, 0, 235, 0, 238, + 0, 241, 0, 242, 0, 237, 0, 236, 0, 1, + 6, 0, 31, 173, 5, 175, 6, 0, 31, 173, + 5, 174, 244, 175, 6, 0, 63, 5, 176, 192, + 177, 6, 0, 63, 5, 4, 247, 176, 192, 177, + 6, 0, 0, 192, 194, 0, 192, 197, 0, 192, + 200, 0, 192, 203, 0, 192, 206, 0, 192, 209, + 0, 192, 212, 0, 192, 215, 0, 192, 218, 0, + 192, 221, 0, 192, 224, 0, 192, 227, 0, 244, + 0, 193, 174, 244, 0, 0, 75, 173, 244, 174, + 244, 174, 244, 175, 195, 176, 193, 177, 6, 0, + 244, 0, 196, 174, 244, 0, 0, 76, 173, 244, + 174, 244, 174, 244, 175, 198, 176, 196, 177, 6, + 0, 244, 0, 199, 174, 244, 0, 0, 77, 173, + 244, 174, 244, 174, 244, 175, 201, 176, 199, 177, + 6, 0, 244, 0, 202, 174, 244, 0, 0, 72, + 173, 244, 174, 244, 174, 244, 174, 244, 174, 244, + 174, 244, 175, 204, 176, 202, 177, 6, 0, 244, + 0, 205, 174, 244, 0, 0, 73, 173, 244, 174, + 244, 174, 244, 174, 244, 174, 244, 174, 244, 175, + 207, 176, 205, 177, 6, 0, 244, 0, 208, 174, + 244, 0, 0, 74, 173, 244, 174, 244, 174, 244, + 174, 244, 174, 244, 174, 244, 175, 210, 176, 208, + 177, 6, 0, 244, 0, 211, 174, 244, 0, 0, + 69, 173, 244, 174, 244, 174, 244, 174, 244, 174, + 244, 174, 244, 174, 244, 174, 244, 174, 244, 175, + 213, 176, 211, 177, 6, 0, 244, 0, 214, 174, + 244, 0, 0, 70, 173, 244, 174, 244, 174, 244, + 174, 244, 174, 244, 174, 244, 174, 244, 174, 244, + 174, 244, 175, 216, 176, 214, 177, 6, 0, 244, + 0, 217, 174, 244, 0, 0, 71, 173, 244, 174, + 244, 174, 244, 174, 244, 174, 244, 174, 244, 174, + 244, 174, 244, 174, 244, 175, 219, 176, 217, 177, + 6, 0, 244, 0, 220, 174, 244, 0, 0, 66, + 173, 244, 174, 244, 174, 244, 174, 244, 174, 244, + 174, 244, 174, 244, 174, 244, 174, 244, 174, 244, + 174, 244, 174, 244, 175, 222, 176, 220, 177, 6, + 0, 244, 0, 223, 174, 244, 0, 0, 67, 173, + 244, 174, 244, 174, 244, 174, 244, 174, 244, 174, + 244, 174, 244, 174, 244, 174, 244, 174, 244, 174, + 244, 174, 244, 175, 225, 176, 223, 177, 6, 0, + 244, 0, 226, 174, 244, 0, 0, 68, 173, 244, + 174, 244, 174, 244, 174, 244, 174, 244, 174, 244, + 174, 244, 174, 244, 174, 244, 174, 244, 174, 244, + 174, 244, 175, 228, 176, 226, 177, 6, 0, 4, + 7, 244, 6, 0, 4, 171, 6, 0, 4, 172, + 6, 0, 4, 154, 244, 6, 0, 4, 155, 244, + 6, 0, 4, 156, 244, 6, 0, 4, 157, 244, + 6, 0, 4, 178, 4, 7, 5, 6, 0, 4, + 178, 63, 179, 244, 180, 178, 4, 7, 5, 6, + 0, 4, 178, 4, 7, 244, 6, 0, 4, 178, + 63, 179, 244, 180, 178, 4, 7, 244, 6, 0, + 4, 178, 4, 154, 244, 6, 0, 4, 178, 63, + 179, 244, 180, 178, 4, 154, 244, 6, 0, 4, + 178, 4, 155, 244, 6, 0, 4, 178, 63, 179, + 244, 180, 178, 4, 155, 244, 6, 0, 4, 178, + 4, 156, 244, 6, 0, 4, 178, 63, 179, 244, + 180, 178, 4, 156, 244, 6, 0, 4, 178, 4, + 157, 244, 6, 0, 4, 178, 63, 179, 244, 180, + 178, 4, 157, 244, 6, 0, 4, 178, 4, 171, + 6, 0, 4, 178, 63, 179, 244, 180, 178, 4, + 171, 244, 6, 0, 4, 178, 4, 172, 6, 0, + 4, 178, 63, 179, 244, 180, 178, 4, 172, 244, + 6, 0, 4, 178, 4, 7, 247, 6, 0, 4, + 178, 63, 179, 244, 180, 178, 4, 7, 247, 6, + 0, 4, 178, 4, 154, 247, 6, 0, 4, 178, + 63, 179, 244, 180, 178, 4, 154, 247, 6, 0, + 4, 178, 4, 155, 247, 6, 0, 4, 178, 63, + 179, 244, 180, 178, 4, 155, 247, 6, 0, 4, + 178, 84, 178, 4, 7, 255, 6, 0, 4, 178, + 63, 179, 244, 180, 178, 84, 7, 256, 6, 0, + 34, 173, 244, 175, 7, 247, 6, 0, 49, 34, + 173, 244, 175, 7, 253, 6, 0, 64, 34, 253, + 7, 176, 244, 174, 244, 174, 244, 177, 6, 0, + 41, 42, 253, 7, 244, 6, 0, 34, 176, 244, + 177, 6, 0, 37, 173, 244, 175, 7, 253, 6, + 0, 39, 173, 244, 175, 7, 253, 6, 0, 64, + 37, 253, 7, 176, 244, 174, 244, 174, 244, 177, + 6, 0, 35, 173, 244, 175, 7, 253, 6, 0, + 35, 173, 244, 175, 7, 253, 45, 247, 6, 0, + 43, 173, 244, 175, 7, 176, 244, 174, 244, 174, + 5, 174, 5, 174, 5, 177, 6, 0, 36, 173, + 244, 175, 7, 253, 6, 0, 49, 37, 173, 244, + 175, 7, 253, 6, 0, 37, 59, 173, 244, 175, + 7, 253, 6, 0, 78, 173, 244, 175, 7, 253, + 6, 0, 79, 173, 244, 175, 7, 253, 83, 253, + 80, 244, 6, 0, 37, 176, 244, 177, 6, 0, + 45, 38, 173, 244, 175, 7, 253, 6, 0, 138, + 38, 173, 244, 175, 7, 244, 253, 6, 0, 46, + 38, 173, 244, 175, 7, 253, 6, 0, 79, 38, + 81, 82, 173, 244, 175, 7, 251, 83, 176, 253, + 174, 253, 177, 80, 176, 244, 174, 244, 177, 6, + 0, 79, 38, 173, 244, 175, 7, 251, 83, 176, + 253, 174, 253, 177, 80, 176, 244, 174, 244, 177, + 6, 0, 49, 38, 173, 244, 175, 7, 253, 6, + 0, 38, 59, 173, 244, 175, 7, 253, 6, 0, + 38, 176, 244, 177, 6, 0, 48, 40, 173, 244, + 175, 7, 253, 6, 0, 40, 173, 244, 175, 7, + 253, 6, 0, 49, 40, 173, 244, 175, 7, 253, + 6, 0, 54, 247, 176, 232, 177, 0, 53, 176, + 247, 174, 247, 174, 244, 177, 176, 232, 177, 0, + 55, 247, 176, 232, 177, 0, 56, 176, 247, 174, + 244, 177, 176, 232, 177, 0, 234, 0, 233, 0, + 231, 0, 0, 233, 230, 0, 58, 176, 233, 177, + 0, 61, 176, 233, 177, 0, 4, 258, 6, 0, + 4, 244, 6, 0, 90, 6, 0, 33, 6, 0, + 85, 173, 244, 8, 244, 175, 0, 85, 173, 244, + 8, 244, 8, 244, 175, 0, 85, 4, 86, 176, + 244, 8, 244, 177, 0, 85, 4, 86, 176, 244, + 8, 244, 8, 244, 177, 0, 87, 0, 92, 0, + 93, 4, 6, 0, 94, 4, 0, 88, 173, 244, + 175, 0, 89, 0, 57, 34, 176, 244, 174, 247, + 177, 6, 0, 57, 34, 176, 244, 174, 247, 174, + 247, 174, 244, 177, 6, 0, 57, 37, 176, 244, + 174, 247, 177, 6, 0, 57, 37, 176, 244, 174, + 247, 174, 247, 174, 244, 177, 6, 0, 57, 38, + 176, 244, 174, 247, 177, 6, 0, 57, 38, 176, + 244, 174, 247, 174, 247, 174, 244, 177, 6, 0, + 57, 38, 176, 244, 174, 247, 177, 176, 239, 177, + 6, 0, 57, 38, 176, 244, 174, 247, 174, 247, + 174, 244, 177, 176, 239, 177, 6, 0, 240, 0, + 239, 240, 0, 65, 176, 253, 174, 253, 174, 253, + 177, 6, 0, 60, 6, 0, 47, 37, 253, 7, + 244, 6, 0, 47, 37, 253, 7, 244, 50, 52, + 244, 6, 0, 47, 37, 253, 7, 244, 50, 51, + 244, 6, 0, 47, 38, 176, 244, 177, 7, 253, + 6, 0, 44, 38, 176, 244, 177, 7, 253, 6, + 0, 47, 40, 176, 244, 177, 7, 253, 6, 0, + 60, 38, 253, 7, 244, 6, 0, 60, 38, 253, + 6, 0, 62, 6, 0, 98, 0, 99, 0, 100, + 0, 101, 0, 102, 0, 245, 0, 173, 244, 175, + 0, 163, 244, 0, 162, 244, 0, 169, 244, 0, + 244, 163, 244, 0, 244, 162, 244, 0, 244, 164, + 244, 0, 244, 165, 244, 0, 244, 166, 244, 0, + 244, 170, 244, 0, 244, 158, 244, 0, 244, 159, + 244, 0, 244, 160, 244, 0, 244, 161, 244, 0, + 244, 152, 244, 0, 244, 151, 244, 0, 244, 149, + 244, 0, 244, 150, 244, 0, 244, 148, 244, 8, + 244, 0, 10, 173, 244, 175, 0, 11, 173, 244, + 175, 0, 12, 173, 244, 175, 0, 13, 173, 244, + 175, 0, 14, 173, 244, 175, 0, 15, 173, 244, + 175, 0, 16, 173, 244, 175, 0, 17, 173, 244, + 175, 0, 18, 173, 244, 175, 0, 20, 173, 244, + 175, 0, 21, 173, 244, 174, 244, 175, 0, 22, + 173, 244, 175, 0, 23, 173, 244, 175, 0, 24, + 173, 244, 175, 0, 25, 173, 244, 175, 0, 26, + 173, 244, 175, 0, 27, 173, 244, 175, 0, 28, + 173, 244, 174, 244, 175, 0, 29, 173, 244, 174, + 244, 175, 0, 30, 173, 244, 174, 244, 175, 0, + 19, 173, 244, 175, 0, 3, 0, 9, 0, 4, + 0, 4, 178, 4, 0, 4, 178, 63, 179, 244, + 180, 178, 4, 0, 4, 178, 4, 171, 0, 4, + 178, 63, 179, 244, 180, 178, 4, 171, 0, 4, + 178, 4, 172, 0, 4, 178, 63, 179, 244, 180, + 178, 4, 172, 0, 244, 8, 244, 0, 244, 8, + 244, 8, 244, 0, 248, 0, 163, 247, 0, 162, + 247, 0, 247, 163, 247, 0, 247, 162, 247, 0, + 176, 244, 174, 244, 174, 244, 174, 244, 174, 244, + 177, 0, 176, 244, 174, 244, 174, 244, 174, 244, + 177, 0, 176, 244, 174, 244, 174, 244, 177, 0, + 173, 244, 174, 244, 174, 244, 175, 0, 4, 178, + 4, 0, 4, 178, 63, 179, 244, 180, 178, 4, + 0, 0, 173, 250, 175, 0, 5, 0, 250, 174, + 5, 0, 0, 176, 252, 177, 0, 173, 252, 175, + 0, 253, 0, 252, 174, 253, 0, 0, 244, 0, + 176, 254, 177, 0, 244, 0, 246, 0, 254, 174, + 244, 0, 254, 174, 246, 0, 176, 244, 174, 244, + 174, 244, 174, 244, 177, 0, 176, 244, 174, 244, + 174, 244, 177, 0, 176, 4, 174, 244, 177, 0, + 4, 0, 4, 178, 84, 178, 4, 0, 176, 257, + 177, 0, 4, 178, 63, 179, 244, 180, 178, 84, + 0, 255, 0, 257, 174, 255, 0, 5, 0, 32, + 173, 5, 175, 0, 32, 173, 5, 174, 244, 175, + 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, - 144, 146, 147, 154, 162, 176, 188, 190, 193, 195, - 196, 197, 200, 206, 211, 212, 213, 216, 220, 223, - 229, 234, 240, 248, 253, 257, 263, 268, 272, 277, - 281, 284, 289, 293, 297, 301, 306, 310, 313, 317, - 321, 325, 329, 333, 337, 340, 344, 347, 351, 354, - 363, 367, 373, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 386, 387, 390, 401, 406, 412, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 431, 434, 438, 444, 450, 453, 457, 463, 469, - 472, 476, 482, 488, 491, 495, 503, 509, 512, 516, - 524, 530, 533, 537, 545, 551, 554, 558, 570, 576, - 579, 583, 595, 601, 604, 608, 620, 626, 629, 633, - 646, 652, 655, 659, 672, 678, 681, 685, 698, 710, - 720, 728, 736, 744, 752, 760, 771, 784, 802, 819, - 840, 857, 878, 895, 916, 933, 954, 971, 992, 1009, - 1030, 1047, 1070, 1095, 1124, 1149, 1178, 1203, 1234, 1247, - 1272, 1283, 1289, 1308, 1319, 1327, 1333, 1339, 1358, 1364, - 1380, 1387, 1393, 1399, 1405, 1411, 1430, 1442, 1448, 1467, - 1488, 1496, 1502, 1508, 1514, 1526, 1532, 1538, 1550, 1556, - 1561, 1566, 1573, 1575, 1576, 1579, 1584, 1595, 1613, 1628, - 1697, 1717, 1721, 1740, 1756, 1770, 1792, 1814, 1840, 1847, - 1854, 1871, 1877, 1883, 1887, 1891, 1895, 1899, 1904, 1911, - 1915, 1920, 1938, 1948, 1966, 1983, 2000, 2021, 2041, 2061, - 2078, 2102, 2115, 2117, 2118, 2119, 2120, 2123, 2125, 2126, - 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, - 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, - 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, - 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2167, 2169, - 2170, 2179, 2196, 2217, 2234, 2255, 2272, 2294, 2301, 2314, - 2319, 2323, 2327, 2331, 2336, 2341, 2345, 2349, 2353, 2379, - 2411, 2415, 2420, 2424, 2429, 2433, 2437, 2443, 2449, 2455, - 2459, 2465, 2472, 2478, 2487, 2491, 2501, 2506, 2510, 2515, - 2520, 2535, 2540, 2561, 2570, 2576, 2581 + 145, 147, 148, 155, 163, 177, 189, 191, 194, 196, + 197, 198, 201, 207, 212, 213, 214, 217, 221, 224, + 230, 235, 241, 249, 254, 258, 264, 269, 273, 278, + 282, 285, 290, 294, 298, 302, 307, 311, 314, 318, + 322, 326, 330, 334, 338, 341, 345, 348, 352, 355, + 364, 368, 374, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 387, 388, 391, 396, 406, 411, 417, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 436, 439, 443, 449, 455, 458, 462, 468, + 474, 477, 481, 487, 493, 496, 500, 508, 514, 517, + 521, 529, 535, 538, 542, 550, 556, 559, 563, 575, + 581, 584, 588, 600, 606, 609, 613, 625, 631, 634, + 638, 651, 657, 660, 664, 677, 683, 686, 690, 703, + 715, 725, 733, 741, 749, 757, 765, 776, 789, 807, + 824, 845, 862, 883, 900, 921, 938, 959, 976, 997, + 1014, 1035, 1052, 1075, 1100, 1129, 1154, 1183, 1208, 1239, + 1252, 1277, 1288, 1294, 1313, 1324, 1332, 1338, 1344, 1363, + 1369, 1385, 1392, 1398, 1404, 1410, 1416, 1435, 1447, 1453, + 1472, 1493, 1501, 1507, 1513, 1519, 1531, 1537, 1543, 1555, + 1561, 1566, 1571, 1578, 1580, 1581, 1584, 1589, 1600, 1618, + 1633, 1702, 1722, 1726, 1745, 1761, 1775, 1797, 1819, 1844, + 1849, 1854, 1861, 1865, 1875, 1881, 1887, 1891, 1895, 1899, + 1903, 1908, 1915, 1919, 1924, 1942, 1952, 1970, 1987, 2004, + 2025, 2045, 2065, 2082, 2106, 2119, 2121, 2122, 2123, 2124, + 2127, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, + 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, + 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, + 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, + 2168, 2171, 2173, 2174, 2183, 2200, 2221, 2238, 2259, 2276, + 2298, 2305, 2318, 2323, 2327, 2331, 2335, 2340, 2345, 2349, + 2353, 2357, 2383, 2415, 2419, 2424, 2428, 2433, 2437, 2441, + 2447, 2453, 2459, 2463, 2469, 2476, 2482, 2491, 2495, 2505, + 2510, 2514, 2519, 2524, 2539, 2544, 2565, 2574, 2580, 2585, + 2589 }; #endif @@ -613,7 +620,7 @@ static const char * const yytname[] = { "$","error","$undefined.","tDOUBLE", "tTensorTetrahedron","tScalarTriangle","tVectorTriangle","tTensorTriangle","tScalarLine", "tVectorLine","tTensorLine","tScalarPoint","tVectorPoint","tTensorPoint","tBSpline", "tNurbs","tOrder","tWith","tBounds","tKnots","tColor","tFor","tIn","tEndFor", -"tExit","tMerge","tReturn","tCall","tFunction","tB_SPLINE_SURFACE_WITH_KNOTS", +"tIf","tEndIf","tExit","tMerge","tReturn","tCall","tFunction","tB_SPLINE_SURFACE_WITH_KNOTS", "tB_SPLINE_CURVE_WITH_KNOTS","tCARTESIAN_POINT","tTRUE","tFALSE","tUNSPECIFIED", "tU","tV","tEDGE_CURVE","tVERTEX_POINT","tORIENTED_EDGE","tPLANE","tFACE_OUTER_BOUND", "tEDGE_LOOP","tADVANCED_FACE","tVECTOR","tDIRECTION","tAXIS2_PLACEMENT_3D","tISO", @@ -645,39 +652,40 @@ static const char * const yytname[] = { "$","error","$undefined.","tDOUBLE", #endif static const short yyr1[] = { 0, - 179, 179, 179, 180, 180, 180, 181, 181, 182, 182, - 182, 182, 183, 183, 183, 183, 183, 184, 184, 184, - 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, - 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, - 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, - 186, 186, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 188, 189, 189, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 191, 191, 193, 192, 194, 194, 196, 195, 197, - 197, 199, 198, 200, 200, 202, 201, 203, 203, 205, - 204, 206, 206, 208, 207, 209, 209, 211, 210, 212, - 212, 214, 213, 215, 215, 217, 216, 218, 218, 220, - 219, 221, 221, 223, 222, 224, 224, 226, 225, 227, - 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, - 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, - 228, 228, 228, 228, 228, 228, 228, 228, 229, 229, - 229, 229, 230, 230, 230, 231, 231, 232, 233, 234, - 234, 234, 234, 235, 235, 235, 235, 235, 235, 235, - 235, 236, 236, 236, 236, 236, 236, 236, 236, 237, - 237, 238, 238, 239, 239, 239, 239, 239, 239, 239, - 239, 240, 241, 241, 241, 241, 241, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 244, 244, 245, - 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, - 247, 247, 248, 248, 249, 249, 249, 250, 250, 251, - 251, 251, 252, 252, 252, 252, 253, 253, 253, 253, - 253, 254, 254, 255, 255, 256, 256 + 181, 181, 181, 182, 182, 182, 183, 183, 184, 184, + 184, 184, 185, 185, 185, 185, 185, 186, 186, 186, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 188, 188, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 190, 190, 191, 191, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 193, 193, 195, 194, 196, 196, 198, 197, + 199, 199, 201, 200, 202, 202, 204, 203, 205, 205, + 207, 206, 208, 208, 210, 209, 211, 211, 213, 212, + 214, 214, 216, 215, 217, 217, 219, 218, 220, 220, + 222, 221, 223, 223, 225, 224, 226, 226, 228, 227, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 231, + 231, 231, 231, 232, 232, 232, 233, 233, 234, 235, + 236, 236, 236, 236, 237, 237, 237, 237, 237, 237, + 237, 237, 237, 237, 238, 238, 238, 238, 238, 238, + 238, 238, 239, 239, 240, 240, 241, 241, 241, 241, + 241, 241, 241, 241, 242, 243, 243, 243, 243, 243, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 246, 246, 247, 247, 247, 247, 247, 248, 248, 248, + 248, 248, 248, 249, 249, 250, 250, 251, 251, 251, + 252, 252, 253, 253, 253, 254, 254, 254, 254, 255, + 255, 255, 255, 255, 256, 256, 257, 257, 258, 258, + 258 }; static const short yyr2[] = { 0, @@ -687,33 +695,34 @@ static const short yyr2[] = { 0, 11, 13, 9, 9, 11, 9, 11, 9, 11, 13, 13, 11, 13, 17, 9, 11, 11, 13, 11, 9, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 7, 6, 8, 0, 2, + 1, 1, 1, 1, 2, 5, 7, 6, 8, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 1, 3, 0, 13, 1, 3, 0, 13, 1, - 3, 0, 13, 1, 3, 0, 19, 1, 3, 0, - 19, 1, 3, 0, 19, 1, 3, 0, 25, 1, - 3, 0, 25, 1, 3, 0, 25, 1, 3, 0, - 31, 1, 3, 0, 31, 1, 3, 0, 31, 4, - 3, 3, 4, 4, 4, 4, 6, 11, 6, 11, - 6, 11, 6, 11, 6, 11, 6, 11, 5, 11, - 5, 11, 6, 11, 6, 11, 6, 11, 8, 11, - 7, 8, 12, 6, 5, 7, 7, 12, 7, 9, - 17, 7, 8, 8, 7, 11, 5, 8, 9, 8, - 22, 20, 8, 8, 5, 8, 7, 8, 5, 11, - 5, 9, 1, 1, 1, 0, 2, 4, 4, 3, - 3, 2, 2, 6, 8, 8, 10, 1, 1, 3, - 2, 8, 12, 8, 12, 8, 12, 11, 15, 1, - 2, 9, 2, 6, 9, 9, 8, 8, 8, 6, - 4, 2, 1, 1, 1, 1, 1, 1, 3, 2, - 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 5, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 6, 4, 4, - 4, 4, 4, 4, 6, 6, 6, 4, 1, 1, - 1, 3, 8, 4, 9, 4, 9, 3, 5, 1, - 2, 2, 3, 3, 11, 9, 7, 7, 3, 8, - 0, 3, 1, 3, 0, 3, 3, 1, 3, 0, - 1, 3, 1, 1, 3, 3, 9, 7, 5, 1, - 5, 3, 8, 1, 3, 1, 6 + 2, 2, 1, 3, 0, 13, 1, 3, 0, 13, + 1, 3, 0, 13, 1, 3, 0, 19, 1, 3, + 0, 19, 1, 3, 0, 19, 1, 3, 0, 25, + 1, 3, 0, 25, 1, 3, 0, 25, 1, 3, + 0, 31, 1, 3, 0, 31, 1, 3, 0, 31, + 4, 3, 3, 4, 4, 4, 4, 6, 11, 6, + 11, 6, 11, 6, 11, 6, 11, 6, 11, 5, + 11, 5, 11, 6, 11, 6, 11, 6, 11, 8, + 11, 7, 8, 12, 6, 5, 7, 7, 12, 7, + 9, 17, 7, 8, 8, 7, 11, 5, 8, 9, + 8, 22, 20, 8, 8, 5, 8, 7, 8, 5, + 11, 5, 9, 1, 1, 1, 0, 2, 4, 4, + 3, 3, 2, 2, 6, 8, 8, 10, 1, 1, + 3, 2, 4, 1, 8, 12, 8, 12, 8, 12, + 11, 15, 1, 2, 9, 2, 6, 9, 9, 8, + 8, 8, 6, 4, 2, 1, 1, 1, 1, 1, + 1, 3, 2, 2, 2, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 6, 4, 4, 4, 4, 4, 4, 6, 6, 6, + 4, 1, 1, 1, 3, 8, 4, 9, 4, 9, + 3, 5, 1, 2, 2, 3, 3, 11, 9, 7, + 7, 3, 8, 0, 3, 1, 3, 0, 3, 3, + 1, 3, 0, 1, 3, 1, 1, 3, 3, 9, + 7, 5, 1, 5, 3, 8, 1, 3, 1, 4, + 6 }; static const short yydefact[] = { 51, @@ -722,1924 +731,1928 @@ static const short yydefact[] = { 51, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 208, 0, 209, 0, 0, 0, - 52, 54, 53, 55, 56, 57, 58, 59, 64, 63, - 60, 61, 62, 279, 281, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 209, 0, 214, 0, 210, 0, + 0, 0, 52, 54, 53, 55, 56, 57, 58, 59, + 64, 63, 60, 61, 62, 282, 284, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 238, 12, 0, 13, 14, 16, 15, 17, - 301, 301, 0, 65, 326, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 203, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, - 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 290, - 0, 0, 0, 0, 0, 196, 310, 196, 232, 0, - 310, 310, 0, 0, 0, 0, 0, 202, 0, 211, + 0, 0, 0, 0, 241, 12, 0, 13, 14, 16, + 15, 17, 304, 304, 0, 65, 329, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 241, 240, 242, 0, 0, 0, 0, + 0, 293, 0, 0, 0, 0, 0, 197, 313, 197, + 235, 0, 313, 313, 0, 0, 0, 0, 0, 0, + 203, 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 244, 243, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 131, 132, 0, 0, 0, 201, 0, - 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 292, 291, 0, 0, 0, 0, 196, 196, 0, - 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, - 0, 0, 0, 0, 0, 0, 210, 0, 282, 0, + 0, 0, 0, 0, 0, 0, 132, 133, 0, 0, + 0, 202, 0, 0, 201, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 295, 294, 0, 0, 0, 0, + 197, 197, 0, 0, 0, 0, 0, 0, 0, 0, + 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 211, 0, 285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 239, 0, 255, 256, 254, 253, 249, 250, 251, - 252, 241, 240, 245, 246, 247, 248, 0, 0, 0, + 0, 0, 0, 0, 0, 242, 0, 258, 259, 257, + 256, 252, 253, 254, 255, 244, 243, 248, 249, 250, + 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 303, 0, - 0, 0, 0, 130, 0, 133, 134, 135, 136, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 244, 243, + 0, 0, 306, 0, 0, 0, 0, 131, 0, 134, + 135, 136, 137, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 247, 246, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 316, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 313, 314, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, - 0, 0, 0, 294, 293, 195, 0, 194, 193, 0, - 0, 0, 0, 0, 198, 197, 231, 0, 199, 0, + 0, 0, 0, 0, 302, 0, 0, 0, 297, 296, + 196, 0, 195, 194, 0, 0, 0, 0, 0, 199, + 198, 234, 0, 200, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 213, 0, 287, 289, 0, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 281, 270, + 0, 272, 273, 274, 275, 276, 277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 284, 286, 0, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 278, 267, 0, 269, 270, 271, 272, 273, - 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 302, 0, 19, - 0, 0, 281, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 149, 151, 0, 0, 0, - 0, 165, 310, 310, 0, 310, 177, 0, 185, 310, - 310, 0, 0, 312, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 305, 0, 19, 0, 0, 330, 284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 189, 191, 0, 0, 0, 0, 0, 69, 0, + 0, 0, 150, 152, 0, 0, 0, 66, 0, 166, + 313, 313, 0, 313, 178, 0, 186, 313, 313, 0, + 0, 315, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, + 192, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 0, 0, 310, 0, 0, 310, - 0, 0, 0, 0, 0, 0, 0, 0, 257, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, - 310, 0, 0, 0, 0, 310, 310, 0, 0, 0, - 0, 0, 310, 0, 310, 0, 0, 0, 0, 0, - 304, 0, 301, 0, 0, 137, 0, 139, 153, 141, - 155, 143, 157, 145, 147, 0, 0, 0, 0, 0, - 0, 310, 0, 310, 0, 0, 288, 315, 316, 164, - 0, 310, 310, 310, 224, 0, 310, 310, 310, 310, - 310, 310, 310, 0, 0, 0, 0, 0, 0, 0, - 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 67, 0, 0, 0, 0, - 305, 0, 0, 0, 204, 0, 0, 268, 275, 276, - 277, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 0, 0, 313, 0, 0, 313, 0, 0, + 0, 0, 0, 0, 0, 0, 260, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 313, 313, 0, + 0, 0, 0, 313, 313, 0, 0, 0, 0, 0, + 313, 0, 313, 0, 0, 0, 0, 0, 307, 0, + 304, 0, 0, 138, 0, 140, 154, 142, 156, 144, + 158, 146, 148, 0, 0, 0, 0, 0, 0, 313, + 0, 313, 0, 0, 291, 318, 319, 165, 0, 313, + 313, 313, 227, 0, 313, 313, 313, 313, 313, 313, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 233, 234, 235, 236, 237, - 0, 0, 0, 0, 0, 0, 0, 18, 0, 327, - 282, 0, 0, 320, 0, 0, 66, 161, 169, 0, - 172, 0, 166, 0, 167, 187, 0, 0, 0, 0, + 0, 0, 0, 68, 0, 0, 0, 0, 308, 0, + 0, 0, 205, 0, 0, 271, 278, 279, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 175, 0, 310, 310, - 0, 310, 0, 0, 310, 0, 0, 0, 0, 310, + 0, 0, 0, 236, 237, 238, 239, 240, 0, 0, + 0, 0, 0, 0, 0, 18, 0, 331, 285, 0, + 0, 323, 0, 0, 67, 162, 170, 0, 173, 0, + 167, 0, 168, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, - 0, 0, 0, 0, 0, 0, 0, 301, 0, 0, - 0, 0, 281, 0, 159, 0, 174, 184, 289, 0, - 228, 178, 180, 0, 0, 227, 229, 186, 162, 173, - 183, 188, 0, 0, 298, 0, 297, 0, 0, 212, - 0, 214, 0, 216, 0, 68, 0, 0, 0, 0, + 0, 0, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 305, 0, 308, 0, 0, 0, 0, 206, 205, 0, - 283, 0, 0, 0, 0, 21, 0, 30, 0, 34, - 0, 28, 0, 0, 33, 0, 38, 36, 0, 0, - 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, - 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 0, 226, 225, 196, - 300, 0, 192, 0, 0, 0, 0, 0, 0, 220, + 0, 0, 0, 0, 176, 0, 313, 313, 0, 313, + 0, 0, 313, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 310, 307, 306, 310, 0, - 0, 179, 285, 287, 0, 0, 305, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, + 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, + 0, 0, 0, 0, 0, 304, 0, 0, 0, 0, + 284, 0, 160, 0, 175, 185, 292, 0, 231, 179, + 181, 0, 0, 230, 232, 187, 163, 174, 184, 189, + 0, 0, 301, 0, 300, 0, 0, 215, 0, 217, + 0, 219, 0, 69, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 308, 0, + 311, 0, 0, 0, 0, 207, 206, 0, 286, 0, + 0, 0, 0, 21, 0, 30, 0, 34, 0, 28, + 0, 0, 33, 0, 38, 36, 0, 0, 0, 0, + 0, 0, 45, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 171, 0, 229, 228, 197, 303, 0, + 193, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, - 0, 0, 223, 310, 0, 221, 0, 0, 0, 0, + 0, 0, 0, 313, 310, 309, 313, 0, 0, 180, + 288, 290, 0, 0, 308, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 309, 0, 0, 207, 0, 35, 0, 0, 0, - 0, 25, 0, 31, 0, 37, 26, 39, 0, 42, - 0, 46, 47, 0, 0, 49, 0, 0, 0, 138, - 140, 154, 142, 156, 144, 158, 146, 148, 150, 152, - 0, 324, 0, 160, 321, 319, 0, 0, 190, 0, - 0, 0, 0, 0, 218, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, - 310, 176, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 283, 0, 0, 322, 0, - 0, 295, 213, 215, 217, 0, 310, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 84, 88, 92, 163, - 168, 0, 0, 0, 0, 0, 0, 0, 29, 32, - 40, 0, 41, 48, 43, 0, 0, 325, 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 310, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, + 0, 0, 0, 0, 0, 0, 299, 0, 0, 0, + 226, 313, 0, 224, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, + 0, 0, 208, 0, 35, 0, 0, 0, 0, 25, + 0, 31, 0, 37, 26, 39, 0, 42, 0, 46, + 47, 0, 0, 49, 0, 0, 0, 139, 141, 155, + 143, 157, 145, 159, 147, 149, 151, 153, 0, 327, + 0, 161, 324, 322, 0, 0, 191, 0, 0, 0, + 0, 0, 221, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 313, 313, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 24, 27, 0, 0, - 0, 317, 0, 219, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 82, 0, 86, 0, 90, - 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, + 0, 0, 0, 286, 0, 0, 325, 0, 0, 298, + 216, 218, 220, 0, 313, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 85, 89, 93, 164, 169, 0, + 0, 0, 0, 0, 0, 0, 29, 32, 40, 0, + 41, 48, 43, 0, 0, 328, 0, 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 20, 323, 171, 222, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 85, 87, 89, 91, 93, - 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, - 0, 96, 100, 104, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 27, 0, 0, 0, 320, + 0, 222, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 83, 0, 87, 0, 91, 0, 0, + 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5, 310, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 94, 0, 98, 0, 102, 0, 310, + 0, 0, 0, 0, 0, 0, 0, 0, 44, 20, + 326, 172, 225, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 84, 86, 88, 90, 92, 94, 0, 0, + 0, 0, 313, 0, 0, 0, 0, 0, 0, 97, + 101, 105, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 5, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 181, 0, 22, 0, 0, 0, 0, - 0, 0, 95, 97, 99, 101, 103, 105, 310, 0, - 0, 0, 108, 112, 116, 0, 0, 0, 0, 0, - 0, 0, 310, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 106, 0, 110, 0, 114, 0, + 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 95, 0, 99, 0, 103, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 107, 109, 111, 113, 115, 117, 0, - 120, 124, 128, 23, 0, 0, 0, 0, 0, 0, - 0, 118, 0, 122, 0, 126, 0, 0, 0, 0, - 0, 0, 119, 121, 123, 125, 127, 129, 0, 0, - 0 + 0, 182, 0, 22, 0, 0, 0, 0, 0, 0, + 96, 98, 100, 102, 104, 106, 313, 0, 0, 0, + 109, 113, 117, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 107, 0, 111, 0, 115, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 108, 110, 112, 114, 116, 118, 0, 121, 125, + 129, 23, 0, 0, 0, 0, 0, 0, 0, 119, + 0, 123, 0, 127, 0, 0, 0, 0, 0, 0, + 120, 122, 124, 126, 128, 130, 0, 0, 0 }; -static const short yydefgoto[] = { 1519, - 4, 5, 18, 19, 20, 21, 6, 61, 62, 63, - 471, 1295, 613, 1243, 1297, 614, 1244, 1299, 615, 1245, - 1403, 616, 1376, 1405, 617, 1377, 1407, 618, 1378, 1464, - 619, 1450, 1466, 620, 1451, 1468, 621, 1452, 1501, 622, - 1495, 1503, 623, 1496, 1505, 624, 1497, 64, 466, 456, - 457, 458, 459, 68, 69, 70, 71, 1009, 1010, 72, - 73, 781, 286, 103, 434, 302, 160, 255, 400, 851, - 942, 943, 435, 796, 1072, 1143, 126 +static const short yydefgoto[] = { 1527, + 4, 5, 18, 19, 20, 21, 6, 63, 64, 65, + 476, 1303, 621, 1251, 1305, 622, 1252, 1307, 623, 1253, + 1411, 624, 1384, 1413, 625, 1385, 1415, 626, 1386, 1472, + 627, 1458, 1474, 628, 1459, 1476, 629, 1460, 1509, 630, + 1503, 1511, 631, 1504, 1513, 632, 1505, 66, 471, 461, + 462, 463, 464, 70, 71, 72, 73, 1017, 1018, 74, + 75, 789, 289, 105, 439, 305, 162, 258, 404, 859, + 950, 951, 440, 804, 1080, 1151, 128 }; -static const short yypact[] = { 441, --32768,-32768, -118,-32768, 308, 2282, 1158, 102, 131, 134, - 139, 143, 148, 163, 29, 110, 114,-32768,-32768,-32768, --32768, 226, 737, 124, 307, -91, 156, 196, -38, -37, - 206, 225, 313, 228, 351, 389, 390, 127, 398, 41, - 269, 0, 0, 277, 281, 278, 419, 284, 453, 455, - 283, 302, -32, 1,-32768, 471,-32768, 479, 483, 456, +static const short yypact[] = { 412, +-32768,-32768, -78,-32768, 420, 2319, 1609, 69, 78, 100, + 112, 129, 135, 142, -2, 52, 79,-32768,-32768,-32768, +-32768, 163, 219, 109, 169, 77, 115, 124, -45, -37, + 141, 145, 228, 151, 235, 242, 264, 123, 114, 83, + 153, 96, 96, 186, 394, 194, 349, 250, 427, 432, + -4, 270, -31, 30,-32768, 276,-32768, 483,-32768, 489, + 496, 480,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, 366,-32768, 383, 384, + 386, 387, 389, 390, 391, 392, 393, 396, 397, 398, + 399, 402, 403, 404, 405, 406, 407, 408, 414, 1609, + 1609, 1609, 1609, 1581,-32768,-32768, 2341,-32768,-32768,-32768, +-32768,-32768, 415, 415, 545,-32768,-32768, 1609, 416, 1609, + 1609, 1609, 1609, 561, 585, 8, 640, 595, 597,-32768, + 1609, 1609, 1609, 1609, 430, 1609, 1609, 435, 1609, 1609, + 1609, 1518, 1609, 429, 436, 439, 1518, 431, 437, 441, + 443, 444, 445, 446, 96, 447, 96, 96, 1609, 1609, + -85,-32768, -75, 96, 448, 454, 455,-32768, 1518,-32768, +-32768, 1, 1518, 1518, 1609, -64, 1609, 535, 1609, 1609, +-32768, 616,-32768, 450, 9, 1609, 1609, 1609, 1609, 1609, + 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, + 1609, 1609, 1609, 1609, 1609, 1609, 458, 458, 458, 3001, + 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, + 1609, 1609, 1609, 1609, 1609, 1581, 459, 460, 461, 462, + 463, 465, 466, 467, 472, 474, 475, 476, 477, 484, + 485, 486, 497, 501, 502, 527, 528, 530, 531, 532, + 533, 534, 540, 541, 543, 546, 651, 547, 548, 550, + 703, 715, 744, 850, 910, 1061,-32768,-32768, 144, 529, + 544,-32768, 1609, 1609,-32768, 148, 3029, 2536, 3057, 3085, + 1609, 3113, 2559, 1609, 2582, 3141, 3169, 1609, 7757, 730, + 3197, 1609, 1609, 1609, 731, 1609, 1609, 1609, 1609, 1609, + 1609, 1609, -19, 11,-32768,-32768, 4849, 4876, 96, 96, + 452, 452, 94, 1609, 1609, 1609, 320, 324, 1330, 96, +-32768, 732, 733, 3225, 659, 1609, 3253, 566, 995, 3281, +-32768, 1609, 207, 564, 3309, 3337, 3365, 3393, 3421, 3449, + 3477, 3505, 3533, 3561, 3589, 4903, 3617, 3645, 3673, 3701, + 3729, 3757, 4930, 4957, 4984,-32768, 2093, 309, 309, 1179, + 1179, 282, 282, 282, 282, -90, -68, 458, 458, 458, + 458, 5011, 741, 743, 746, 747, 749, 750, 751, 752, + 753, 760, 761, 762, 764, 774, 775, 776, 779, 780, + 781, 788, 789, 790, 792, 618, 802, 804, 806, 807, + 812, 816,-32768, 221, 817, 818, 820,-32768, 229,-32768, +-32768,-32768,-32768, 323, 1552, 1552, 1609, 1609, 829, 830, + 1609, 819, 236, 236, 1609, 833, 835, 834, 836, 838, + 3785, 841, 843, 3813, 844, 852, 864, 2117,-32768, -114, + 1609, 865, 2605, 3841, 3869, 1609, 2628, 2651, 3897, 3925, + 3953, 3981, 4009, 96,-32768, 678, 1609, 1609,-32768,-32768, +-32768, 697, 1721,-32768, 698, 1609, 5034, 5061, 5088,-32768, +-32768,-32768, 1609,-32768, -73, -30, 700, 704, 874, 709, + 4037, 876, 1609, 1609,-32768, 4065,-32768,-32768, 1609,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 330,-32768, 334, 336, 337, 343, - 344, 345, 346, 357, 358, 359, 361, 362, 366, 371, - 372, 373, 374, 375, 376, 378, 379, 1158, 1158, 1158, - 1158, 1512,-32768,-32768, 2320,-32768,-32768,-32768,-32768,-32768, - 392, 392, 529,-32768,-32768, 1158, 393, 1158, 1158, 1158, - 1158, 554, 555, 14, 635, 561, 563,-32768, 1158, 1158, - 1158, 1158, 400, 1158, 1158, 401, 1158, 1158, 1158, 940, - 1158, 395, 402, 403, 940, 406, 409, 404, 405, 413, - 422, 423, 0, 420, 0, 0, 1158, 1158, -113,-32768, - -106, 0, 421, 433, 434,-32768, 940,-32768,-32768, 23, - 940, 940, 1158, -70, 1158, 491, 1158,-32768, 591,-32768, - 438, 8, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 443, 443, 443, 2141, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1512, 444, 445, 449, 466, 467, 468, 469, - 487, 510, 511, 512, 513, 514, 521, 524, 534, 535, - 541, 542, 543, 545, 558, 559, 562, 564, 567, 572, - 597, 599, 600, 607, 470, 440, 539, 685, 609, 904, - 995, 1067, 1451,-32768,-32768, 3, 557, 596,-32768, 1158, - 1158,-32768, 560, 3063, 2515, 3091, 3119, 1158, 3147, 2538, - 1158, 2561, 3175, 3203, 1158, 7735, 766, 3231, 1158, 1158, - 1158, 767, 1158, 1158, 1158, 1158, 1158, 1158, 1158, -19, - 9,-32768,-32768, 4827, 4854, 0, 0, 377, 377, -13, - 1158, 1158, 1158, 1322, 50, 2232, 0,-32768, 768, 769, - 3259, 696, 1158, 3287, 605, 1993,-32768, 1158, 54, 603, - 3315, 3343, 3371, 3399, 3427, 3455, 3483, 3511, 3539, 3567, - 3595, 4881, 3623, 3651, 3679, 3707, 3735, 3763, 4908, 4935, - 4962,-32768, 2019, 306, 306, 488, 488, 190, 190, 190, - 190, -108, -86, 443, 443, 443, 443, 4989, 781, 782, - 784, 796, 797, 799, 802, 803, 804, 807, 808, 809, - 810, 814, 817, 818, 820, 821, 822, 823, 824, 825, - 831, 708, 835, 846, 849, 850, 853, 852,-32768, 121, - 854, 857, 856,-32768, 686,-32768,-32768,-32768,-32768, 319, - 1109, 1109, 1158, 1158, 858, 859, 1158, 862, 285, 285, - 1158, 860, 866, 861, 867, 3791, 868, 871, 3819, 872, - 874, 876, 2043,-32768, 184, 1158, 877, 2584, 3847, 3875, - 1158, 2607, 2630, 3903, 3931, 3959, 3987, 4015, 0,-32768, - 683, 1158, 1158,-32768,-32768,-32768, 698, 2341,-32768, 704, - 1158, 5012, 5039, 5066,-32768,-32768,-32768, 1158,-32768, -74, - -31, 711, 712, 880, 717, 4043, 887, 1158, 1158, 4071, --32768,-32768, 1158,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 1158,-32768,-32768,-32768,-32768,-32768, --32768, 1158, 1158, 1158, 1158, 752, 724, 727, 728, 729, - 730, 731, 733, 739, 740, 742, 743, 744, 745, 746, - 747, 760, 761, 762, 763, 764, 765, 770, 774, 775, - 776, 800, 801, 813, 819, 830, 933,-32768, 798,-32768, - 832, 1158, 816, 935, 1109, 1109, 1158, 1474, 2, 1538, - 59, 1596, 61, 1619, 1642,-32768,-32768, 2310, 932, 4099, - 0,-32768, 940, 940, 967, 940,-32768, 979,-32768, 940, - 940, 1158, 1158,-32768, 1671, 815, 983, 986, 987, 363, - 989, 996, 998, 999, 1000, 1001, 1002, 107, 1158, 5093, - 5120,-32768,-32768, 2653, 0, 0, 0, 1697,-32768, 839, - 840, 841, 842, 843, 844, 847, 848, 863, 864, 865, - 869, 1014,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 1158, 1158, 940, 1158, 1017, 940, - 2066, 442, 1018, 2333, 4127, 4155, 4183, 4211, 7735, 882, - 1025, 1158, 1158, 0, 1026, 1027, 870, 1028, 1034, 940, - 940, 1035, 0, 1036, 1039, 940, 940, 1040, 1041, 1042, - 1044, 1045, 940, 20, 940, 1052, 1051, 1053, 1054, 1056, --32768, 1063, 392, 4239, 11,-32768, 3035,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 894, 24, 1068, 70, 18, - 1069, 940, 1070, 940, 1071, 1072, 2092, 2043,-32768,-32768, - 1158, 940, 940, 940,-32768, 274, 940, 940, 940, 940, - 940, 940, 940, 1158, 2356, 1158, 1158, 905, -102, -76, - 105,-32768, 556, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158,-32768, 5147, 5174, 1086, 4267, - 186, 1010, 1158, 1158,-32768, 1158, 918,-32768,-32768,-32768, --32768, 1158, 923, 5201, 5228, -109, 924, 925, 930, 931, - 934, 936, 938, 943, -71, 944, 973, 974, 945, 976, - 977, 978, 988, 992, 1016,-32768,-32768,-32768,-32768,-32768, - 993, 1029, 1030, 1031, 1032, 1033, 1037,-32768, 1038,-32768, - 54, 920, 13, 927, 1566, 1099,-32768,-32768,-32768, 0, --32768, 1102,-32768, 1184,-32768,-32768, 1158, 5255, 1194, 1199, - 1202, 1158, 1158, 1205, 1206, 1212, 1213, 1215, 1226, 1227, - 2676, 1058, 4295, 2425, 377, 0, 1230, 0, 1231, 0, - 43, 1232, 5282, 5309, 5336, 5363, 5390, 5417, 5444, 5471, - 5498, 5525, 5552, 5579, 1158, 1158,-32768, 1233, 940, 940, - 1156, 940, 540, 2699, 224, 1237, 1512, 1239, 1158, 940, - 1238, 1240, 1241, 1083, 1242, 20, 1243, 1247, 1158, 1245, - 1249, 1259, 1260, 1265, 20, 1158, 1158, 1158, 940, 1266, - 1268, 20, 1158, 1270, 1271, 1269, 1158, 392, 1158, 103, - 1272, 1162, -142, 5606,-32768, 99,-32768,-32768, 7735, 1158, --32768,-32768,-32768, 1729, 1764,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 1103, 1274,-32768, 1158,-32768, 1106, 138,-32768, - 140,-32768, 142,-32768, -34,-32768, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 5633, 5660, - 186, 193,-32768, 203, 1108, 1204, 1158,-32768,-32768, 1279, - 247, 1512, 1113, 5687, 1115,-32768, 1116,-32768, 1117,-32768, - 1118,-32768, 1120, 4323,-32768, 1121,-32768,-32768, 1124, 1125, - 4351, 5714, 4379, 1122,-32768, 1126, 1127, 5741, 1129, 1130, --32768, 5768, 1142, 2379, 650, 1109, 1109, 1158, 1158, 1158, - 1158, 25, 1114, 1158, 1158,-32768, 5795,-32768,-32768, 377, --32768, 2455,-32768, 1158, 1158, 1158, 1296, 1146, -46,-32768, - 5822, 5849, 5876, 5903, 5930, 5957, 5984, 6011, 6038, 6065, - 6092, 6119, 1158, 1158, 1244, 940,-32768,-32768, 940, 1158, - 2722,-32768,-32768,-32768, 2752, 1310, 186, 20, 1319, 1158, - 1317, 20, 1318, 1323, 1324, 1325, 1326, 1158, 1327, 940, - 1328, 1329, 1158, 1333, 1331, 1158, 1334, 1152, 1332, 1787, - 101, 1810, 109, 1834, 115, 1860, 1897, 1923, 1947, 1164, - 24, 1335, 1338, 2775, 6146, 1341, 1168, 1158,-32768, 2798, - 2821, 2844,-32768, 940, 1342,-32768, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 2867, 2890, - 1173,-32768, 1183, 1970,-32768, 1158,-32768, 1192, 1197, 1201, - 6173,-32768, 1193,-32768, 1203,-32768,-32768,-32768, 4407,-32768, - 1216,-32768,-32768, 4435, 1214,-32768, 4463, 1217, 1370,-32768, + 1609,-32768,-32768,-32768,-32768,-32768,-32768, 1609, 1609, 1609, + 1609, 740, 712, 713, 717, 723, 724, 725, 726, 737, + 738, 739, 745, 748, 766, 768, 770, 772, 773, 778, + 803, 805, 808, 809, 810, 811, 823, 845, 847, 848, + 849, 853, 884,-32768, 842,-32768, 854, 1609,-32768, 742, + 912, 1552, 1552, 1609, 1128, 2, 1547, 4, 1676, 58, + 1712, 1742,-32768,-32768, 2331, 914, 4093,-32768, 96,-32768, + 1518, 1518, 916, 1518,-32768, 917,-32768, 1518, 1518, 1609, + 1609,-32768, 1773, 828, 918, 919, 920, 503, 947, 971, + 973, 974, 986, 987, 1011, 209, 1609, 5115, 5142,-32768, +-32768, 2674, 96, 96, 96, 1797,-32768, 856, 857, 859, + 860, 861, 862, 863, 870, 871, 872, 875, 877, 1020, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 1312,-32768, 204,-32768,-32768,-32768, 1158, 1218,-32768, 2913, - 1385, 1386, 44, 1221,-32768, 6200, 6227, 6254, 6281, 6308, - 6335, 6362, 6389, 6416, 4491, 4519, 4547, 1388, 1389, 940, - 940,-32768, 1512, 20, 20, 20, 20, 1390, 1391, 1392, - 20, 1393, 1396, 1397, 1399, 247, 1235, 24,-32768, 2485, - 1409,-32768,-32768,-32768,-32768, -34, 940, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158,-32768,-32768,-32768,-32768, --32768, 1248, 1252, 1512, 1250, 1251, 1255, 1256,-32768,-32768, --32768, 1258,-32768,-32768,-32768, 1264, 1158,-32768, 1158,-32768, - 1267, -40, 1273, 6443, 6470, 6497, 6524, 6551, 6578, 6605, - 6632, 6659, 1257, 1263, 1280, 940, 1336, 2943, 20, 20, - 1411, 1418, 20, 1427, 2402, 2966, 1433, 1434, 940, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1278, 1281, 1158, 1284, 1287,-32768,-32768, 1288, 1289, - 1292,-32768, 1285,-32768, 1295, 6686, 6713, 6740, 6767, 6794, - 6821, 6848, 6875, 6902, 218, 7735, 222, 7735, 236, 7735, - 1361, 1158, 1512, 20, 940, 1436, 1437, 1360, 1440, 1457, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1466, 1158, 1467, 1158, 1468, 1301, 6929, 1512, 1304, 1305, --32768,-32768,-32768,-32768,-32768, 6956, 6983, 7010, 7037, 7064, - 7091, 4575, 4603, 4631, 7735,-32768, 7735,-32768, 7735,-32768, - 1158, 1158, 7712, 20, 940, 1158, 1158, 1158, 1158, 1158, - 1158,-32768,-32768,-32768, 7118, 2989, 1339, 1306, 1307, 7145, - 7172, 7199, 7226, 7253, 7280, 1309, 1313, 1314, 1158, 1475, --32768, 940, 20, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 3012,-32768, 1337, 1316, 7307, 7334, 7361, 7388, - 7415, 7442, 237, 7735, 243, 7735, 303, 7735, 1480, 940, - 1484, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1488, 1158, - 1489, 1158, 1490,-32768, 1345,-32768, 7469, 7496, 7523, 4659, - 4687, 4715, 7735,-32768, 7735,-32768, 7735,-32768, 940, 1158, - 1158, 1158,-32768,-32768,-32768, 1347, 7550, 7577, 7604, 1340, - 1369, 1371, 940, 1158, 1158, 1158, 1158, 1158, 1158, 1374, - 7631, 7658, 7685, 309, 7735, 310, 7735, 317, 7735, 20, - 1158, 1158, 1158, 1158, 1492, 1158, 1493, 1158, 1495, 1330, - 4743, 4771, 4799, 7735,-32768, 7735,-32768, 7735,-32768, 1501, --32768,-32768,-32768,-32768, 1376, 1377, 1378, 1158, 1158, 1158, - 327, 7735, 328, 7735, 329, 7735, 1158, 1502, 1158, 1504, - 1158, 1507, 7735,-32768, 7735,-32768, 7735,-32768, 1548, 1553, --32768 +-32768,-32768, 1609, 1609, 1518, 1609, 1030, 1518, 2143, 612, + 1031, 2354, 4121, 4149, 4177, 4205, 7757, 911, 1048, 1609, + 1609, 96, 1050, 1052, 892, 1060, 1062, 1518, 1518, 1063, + 96, 1074, 1075, 1518, 1518, 1078, 1079, 1080, 1081, 1082, + 1518, 355, 1518, 1083, 1059, 1099, 1084, 1102,-32768, 1104, + 415, 4233, 20,-32768, 2973,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 933, 24, 1106, 92, 21, 1107, 1518, + 1108, 1518, 1110, 1111, 2166, 2117,-32768,-32768, 1609, 1518, + 1518, 1518,-32768, 491, 1518, 1518, 1518, 1518, 1518, 1518, + 1518, 1609, 2377, 1609, 1609, 942, -101, -95, -93,-32768, + -18, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, + 1609, 1609, 1609,-32768, 5169, 5196, 1114, 4261, 191, 1038, + 1609, 1609,-32768, 1609, 945,-32768,-32768,-32768,-32768, 1609, + 950, 5223, 5250, -17, 951, 953, 955, 956, 961, 962, + 964, 966, 121, 968, 975, 976, 978, 988, 989, 990, + 992, 993, 994,-32768,-32768,-32768,-32768,-32768, 997, 998, + 999, 1001, 1002, 1006, 1003,-32768, 1008,-32768, 207, 957, + 15, 952, 1639, 1143,-32768,-32768,-32768, 96,-32768, 1184, +-32768, 1185,-32768,-32768, 1609, 5277, 1186, 1187, 1188, 1609, + 1609, 1189, 1190, 1191, 1192, 1202, 1208, 1210, 2697, 1039, + 4289, 2446, 452, 96, 1212, 96, 1226, 96, 0, 1227, + 5304, 5331, 5358, 5385, 5412, 5439, 5466, 5493, 5520, 5547, + 5574, 5601, 1609, 1609,-32768, 1228, 1518, 1518, 1151, 1518, + 434, 4317, 668, 1237, 1581, 1239, 1609, 1518, 1238, 1240, + 1249, 1092, 1251, 355, 1253, 1242, 1609, 1254, 1270, 1268, + 1275, 1279, 355, 1609, 1609, 1609, 1518, 1277, 1281, 355, + 1609, 1282, 1292, 1290, 1609, 415, 1609, 149, 1293, 1213, + -143, 5628,-32768, 98,-32768,-32768, 7757, 1609,-32768,-32768, +-32768, 1823, 1846,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 1123, 1297,-32768, 1609,-32768, 1125, 231,-32768, 262,-32768, + 267,-32768, 97,-32768, 1609, 1609, 1609, 1609, 1609, 1609, + 1609, 1609, 1609, 1609, 1609, 1609, 5655, 5682, 191, 289, +-32768, 203, 1129, 1229, 1609,-32768,-32768, 1300, 377, 1581, + 1132, 5709, 1134,-32768, 1136,-32768, 1137,-32768, 1147,-32768, + 1150, 4345,-32768, 1152,-32768,-32768, 1155, 1157, 4373, 5736, + 4401, 1153,-32768, 1158, 1159, 5763, 1161, 1171,-32768, 5790, + 1173, 2400, 946, 1552, 1552, 1609, 1609, 1609, 1609, 25, + 1170, 1609, 1609,-32768, 5817,-32768,-32768, 452,-32768, 2476, +-32768, 1609, 1609, 1609, 1344, 1175, -40,-32768, 5844, 5871, + 5898, 5925, 5952, 5979, 6006, 6033, 6060, 6087, 6114, 6141, + 1609, 1609, 1271, 1518,-32768,-32768, 1518, 1609, 2720,-32768, +-32768,-32768, 1088, 1350, 191, 355, 1360, 1609, 1366, 355, + 1368, 1374, 1375, 1376, 1377, 1609, 1378, 1518, 1389, 1390, + 1609, 1394, 1392, 1609, 1395, 1221, 1396, 1873, 101, 1903, + 113, 1934, 116, 1958, 1984, 2007, 2034, 1223, 24, 1397, + 1400, 2743, 6168, 1401, 1230, 1609,-32768, 2766, 2789, 2812, +-32768, 1518, 1399,-32768, 1609, 1609, 1609, 1609, 1609, 1609, + 1609, 1609, 1609, 1609, 1609, 1609, 2835, 2858, 1234,-32768, + 1246, 2064,-32768, 1609,-32768, 1248, 1250, 1252, 6195,-32768, + 1236,-32768, 1255,-32768,-32768,-32768, 4429,-32768, 1257,-32768, +-32768, 4457, 1258,-32768, 4485, 1260, 1408,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1362,-32768, + 245,-32768,-32768,-32768, 1609, 1261,-32768, 2881, 1421, 1422, + 26, 1262,-32768, 6222, 6249, 6276, 6303, 6330, 6357, 6384, + 6411, 6438, 4513, 4541, 4569, 1423, 1426, 1518, 1518,-32768, + 1581, 355, 355, 355, 355, 1431, 1432, 1433, 355, 1434, + 1438, 1439, 1441, 377, 1269, 24,-32768, 2506, 1442,-32768, +-32768,-32768,-32768, 97, 1518, 1609, 1609, 1609, 1609, 1609, + 1609, 1609, 1609, 1609,-32768,-32768,-32768,-32768,-32768, 1276, + 1272, 1581, 1278, 1280, 1286, 1287,-32768,-32768,-32768, 1289, +-32768,-32768,-32768, 1291, 1609,-32768, 1609,-32768, 1295, -39, + 1296, 6465, 6492, 6519, 6546, 6573, 6600, 6627, 6654, 6681, + 1288, 1302, 1304, 1518, 1371, 2269, 355, 355, 1447, 1460, + 355, 1462, 2423, 2904, 1466, 1470, 1518, 1609, 1609, 1609, + 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1305, + 1307, 1609, 1310, 1311,-32768,-32768, 1306, 1312, 1308,-32768, + 1313,-32768, 1314, 6708, 6735, 6762, 6789, 6816, 6843, 6870, + 6897, 6924, 261, 7757, 288, 7757, 304, 7757, 1409, 1609, + 1581, 355, 1518, 1482, 1486, 1410, 1487, 1489, 1609, 1609, + 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1490, 1609, + 1491, 1609, 1492, 1327, 6951, 1581, 1332, 1335,-32768,-32768, +-32768,-32768,-32768, 6978, 7005, 7032, 7059, 7086, 7113, 4597, + 4625, 4653, 7757,-32768, 7757,-32768, 7757,-32768, 1609, 1609, + 7734, 355, 1518, 1609, 1609, 1609, 1609, 1609, 1609,-32768, +-32768,-32768, 7140, 2927, 1357, 1337, 1339, 7167, 7194, 7221, + 7248, 7275, 7302, 1338, 1340, 1341, 1609, 1509,-32768, 1518, + 355, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, + 2950,-32768, 1345, 1343, 7329, 7356, 7383, 7410, 7437, 7464, + 306, 7757, 310, 7757, 314, 7757, 1514, 1518, 1517, 1609, + 1609, 1609, 1609, 1609, 1609, 1609, 1519, 1609, 1543, 1609, + 1544,-32768, 1380,-32768, 7491, 7518, 7545, 4681, 4709, 4737, + 7757,-32768, 7757,-32768, 7757,-32768, 1518, 1609, 1609, 1609, +-32768,-32768,-32768, 1383, 7572, 7599, 7626, 1348, 1382, 1407, + 1518, 1609, 1609, 1609, 1609, 1609, 1609, 1385, 7653, 7680, + 7707, 321, 7757, 337, 7757, 338, 7757, 355, 1609, 1609, + 1609, 1609, 1545, 1609, 1546, 1609, 1580, 1412, 4765, 4793, + 4821, 7757,-32768, 7757,-32768, 7757,-32768, 1582,-32768,-32768, +-32768,-32768, 1413, 1440, 1464, 1609, 1609, 1609, 339, 7757, + 343, 7757, 381, 7757, 1609, 1608, 1609, 1611, 1609, 1635, + 7757,-32768, 7757,-32768, 7757,-32768, 1615, 1644,-32768 }; static const short yypgoto[] = {-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 955,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 1064,-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, 1549, 1550, - -307, -62, 1554,-32768,-32768,-32768,-32768, 365, -1006,-32768, --32768, -813, -7,-32768, 1043, -10,-32768, -111,-32768, -934, - 721, 855,-32768, -1062,-32768,-32768,-32768 +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1664, 1666, + -309, -58, 1668,-32768,-32768,-32768,-32768, 471, -1013,-32768, +-32768, -872, -7,-32768, 1095, 107,-32768, -113,-32768, -940, + 787, 468,-32768, -1056,-32768,-32768,-32768 }; -#define YYLAST 7903 - - -static const short yytable[] = { 102, - 256, 460, 1086, 154, 176, 174, 1025, 679, 1142, 410, - 322, 329, 450, 1007, 791, 125, 890, 266, 1008, 1007, - 133, 136, 7, 799, 1008, 1007, 317, 794, 1070, 994, - 1008, 159, 161, 182, 600, 601, 602, 603, 604, 605, - 606, 607, 608, 609, 610, 611, 306, 307, 924, 1195, - 306, 307, 961, 306, 307, 467, 468, 306, 307, 222, - 308, 970, 800, 861, 681, -244, 683, 309, 977, 826, - 330, 451, 827, 792, 149, 798, 267, 150, 151, 129, - 152, 222, 130, 306, 307, 306, 307, -243, 306, 307, - 204, 205, 206, 207, 223, 828, 891, 268, 829, 599, - 323, 870, 1108, 314, 996, 316, 1132, 104, 258, 985, - 260, 261, 262, 263, 1134, 776, 777, 778, 779, 780, - 1136, 274, 275, 276, 277, 1228, 279, 280, 1085, 282, - 283, 284, 134, 288, 1258, 135, 137, 105, 175, 106, - 306, 307, 300, 612, 107, 303, 306, 307, 108, 304, - 305, 310, 449, 109, 411, 412, 413, 414, 461, 155, - 156, 306, 307, 145, 146, 321, 147, 324, 110, 326, - 157, 415, 416, 158, 177, 331, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 318, 795, 1071, 111, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 368, 925, 1196, 306, 307, - 306, 307, 481, 482, 1109, 1086, 74, 75, 1113, 306, - 307, 114, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 986, 987, 988, 989, 306, 307, - 306, 307, 419, 420, 306, 307, 306, 307, 306, 307, - 426, 990, 991, 429, 306, 307, 830, 433, 714, 831, - 112, 438, 439, 440, 113, 442, 443, 444, 445, 446, - 447, 448, 537, 538, 127, 454, 455, 306, 307, 306, - 307, 306, 307, 462, 463, 464, 470, -1, 8, 1004, - 9, 1005, 128, 1006, 163, 476, 171, 164, 165, 172, - 480, 74, 543, 544, 812, 813, 131, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 270, - 271, 219, 220, 221, 140, 573, 849, 222, 574, 850, - 1215, 1216, 1217, 1218, 1026, 1027, 132, 1222, 705, 208, - 209, 210, 211, 212, 1026, 1188, 138, 1028, 1189, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 142, 1320, - 100, 222, 1321, 1322, 101, 139, 1323, 285, 141, 549, - 551, 553, 548, 550, 552, 554, 555, 1324, 1418, 558, - 1325, 1419, 706, 560, 1420, 1033, 1034, 1421, 10, 11, - 12, 13, 14, 15, 16, 17, 143, 144, 575, 41, - 42, 43, 44, 580, 46, 1275, 1276, 148, 588, 1279, - -7, -7, 153, -7, 590, 591, 219, 220, 221, 744, - 162, 166, 222, 594, 211, 212, 167, 168, 169, 170, - 598, 213, 214, 215, 216, 270, 271, 219, 220, 221, - 631, 632, 173, 222, 1422, 634, 178, 1423, 545, 546, - 1474, 1476, 179, 1475, 1477, 100, 180, 635, 1478, 547, - 1329, 1479, 158, 181, 636, 637, 638, 639, 1507, 1509, - 1511, 1508, 1510, 1512, 183, 182, 184, 185, 208, 209, - 210, 211, 212, 186, 187, 188, 189, 918, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 190, 191, 192, - 222, 193, 194, 257, 674, 303, 195, 204, 205, 677, - 1368, 196, 197, 198, 199, 200, 201, 947, 202, 203, - 689, -7, -7, -7, -7, -7, -7, -7, -7, 264, - 265, 789, 254, 259, 697, 698, 272, 273, 289, 1396, - 278, 281, 290, 291, 295, 296, 325, 1, 2, 293, - 3, 715, 294, 297, 719, 720, 721, 208, 209, 210, - 211, 212, 298, 299, 311, 301, 327, 213, 214, 215, - 216, 270, 271, 219, 220, 221, 312, 313, 328, 222, - 222, 399, 402, 405, 369, 370, 745, 737, 738, 371, - 740, 600, 601, 602, 603, 604, 605, 606, 607, 608, - 609, 610, 611, 756, 754, 755, 372, 373, 374, 375, - 269, 401, 765, 213, 214, 215, 216, 270, 271, 219, - 220, 221, 74, 543, 1059, 222, 1480, 376, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 377, 378, 379, 380, 381, 208, 209, 210, 211, 212, - 404, 382, 1077, 808, 383, 213, 214, 215, 216, 270, - 271, 219, 220, 221, 384, 385, 821, 222, 823, 824, - 403, 386, 387, 388, 948, 389, 833, 834, 835, 836, - 837, 838, 839, 840, 841, 842, 843, 844, 390, 391, - 832, 421, 392, 417, 393, 853, 854, 394, 855, 74, - 75, 115, 395, 116, 857, 76, 77, 78, 79, 80, +#define YYLAST 7927 + + +static const short yytable[] = { 104, + 259, 969, 465, 1094, 320, 932, 176, 687, 1033, 689, + 978, 269, 333, 135, 455, 127, 325, 985, 898, 1015, + 1015, 138, 1150, 799, 1016, 1016, 807, 802, 1078, 173, + 1002, 1203, 174, 178, 185, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 581, + 309, 310, 582, 691, 7, 808, 309, 310, 309, 310, + 270, 334, 834, 456, 106, 835, 309, 310, 836, 225, + 838, 837, 800, 839, 107, -247, 309, 310, 309, 310, + 311, 271, 207, 208, 209, 210, 226, 806, 899, 156, + 312, 225, 607, 1004, 1116, 108, 1140, -246, 326, 317, + 261, 319, 263, 264, 265, 266, 151, 109, 1142, 152, + 153, 1144, 154, 277, 278, 279, 280, 136, 282, 283, + 137, 285, 286, 287, 110, 291, 1093, 1266, 139, 1236, + 111, 177, 309, 310, 309, 310, 620, 112, 161, 163, + 414, 307, 308, 150, 454, 993, 1015, 869, 840, 147, + 148, 1016, 149, 309, 310, 309, 310, 324, 116, 327, + 113, 329, 330, 1117, 130, 933, 321, 1121, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 803, + 1079, 1204, 179, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 309, + 310, 76, 77, 117, 114, 118, 1094, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 396, 117, 397, - 398, 418, 436, 441, 472, 473, 983, 475, 478, 483, - 208, 209, 210, 211, 212, 507, 508, 894, 509, 896, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 899, - 510, 511, 222, 512, 904, 905, 513, 514, 515, 545, - 546, 516, 517, 518, 519, 919, 100, 921, 520, 923, - 547, 521, 522, 158, 523, 524, 525, 526, 527, 528, - 208, 209, 210, 211, 212, 529, 530, 939, 940, 531, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 952, - 532, 954, 222, 533, 534, 535, 536, 542, 539, 589, - 541, 964, 540, 556, 557, 559, 561, 563, 971, 972, - 973, 562, 592, 564, 566, 978, 567, 569, 593, 982, - 570, 984, 571, 576, 625, 626, 627, 628, 118, 119, - 120, 121, 997, 630, 640, 641, 98, 99, 642, 643, - 644, 645, 646, 100, 647, 122, 123, 101, 1002, 406, - 648, 649, 124, 650, 651, 652, 653, 654, 655, 1011, - 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, - 1022, 656, 657, 658, 659, 660, 661, 671, 687, 1031, - 676, 662, 74, 75, 1035, 663, 664, 665, 76, 77, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 131, + 119, 115, 132, 309, 310, 309, 310, 157, 158, 309, + 310, 303, 309, 310, 306, 423, 424, 466, 159, 142, + 313, 160, 144, 431, 309, 310, 434, 309, 310, 145, + 438, 129, 309, 310, 443, 444, 445, 133, 447, 448, + 449, 450, 451, 452, 453, 878, 134, 415, 416, 417, + 418, 146, 994, 995, 996, 997, 467, 468, 469, 1223, + 1224, 1225, 1226, 140, 419, 420, 1230, 141, 481, 998, + 999, 425, 426, 143, 486, 76, 550, 551, 155, 472, + 473, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 26, 27, 28, 29, 30, 31, 32, + 33, 164, 34, 857, 36, 37, 858, 39, 40, 168, + 309, 310, 120, 121, 122, 123, 1034, 487, 488, 1036, + 100, 101, 722, 51, 1283, 1284, 169, 102, 1287, 124, + 125, 103, 309, 310, 543, 544, 126, 52, 53, 222, + 223, 224, 548, 549, 1012, 225, 555, 557, 559, 561, + 562, -7, -7, 565, -7, 459, 460, 567, 1196, -1, + 8, 1197, 9, 309, 310, 170, 475, 165, 309, 310, + 166, 167, 171, 583, 1328, 1013, 172, 1329, 588, 1337, + 1014, 955, 175, 273, 274, 222, 223, 224, 180, 598, + 599, 225, 784, 785, 786, 787, 788, 62, 602, 214, + 215, 1330, 1034, 1035, 1331, 606, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 639, 640, 1332, 225, 1426, + 1333, 642, 1427, 1428, 552, 553, 1429, 1430, 181, 1376, + 1431, 102, 182, 643, 1482, 554, 470, 1483, 160, 183, + 644, 645, 646, 647, 41, 42, 43, 44, 713, 46, + 1484, 1486, 1515, 1485, 1487, 1516, 1517, 184, 1404, 1518, + 556, 558, 560, 926, -7, -7, -7, -7, -7, -7, + -7, -7, 10, 11, 12, 13, 14, 15, 16, 17, + 682, 820, 821, 185, 207, 208, 685, 1041, 1042, 260, + 1, 2, 714, 3, 1519, 186, 187, 1520, 188, 189, + 596, 190, 191, 192, 193, 194, 267, 797, 195, 196, + 197, 198, 705, 706, 199, 200, 201, 202, 203, 204, + 205, 211, 212, 213, 214, 215, 206, 257, 262, 723, + 268, 216, 217, 218, 219, 273, 274, 222, 223, 224, + 275, 276, 281, 225, 292, 1488, 296, 284, 293, 290, + 956, 294, 297, 298, 295, 299, 300, 301, 302, 752, + 328, 331, 332, 314, 304, 745, 746, 225, 748, 315, + 316, 373, 374, 375, 376, 377, 318, 378, 379, 380, + 322, 323, 762, 763, 381, 272, 382, 383, 384, 385, + 211, 212, 213, 214, 215, 403, 386, 387, 388, 306, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 389, + 76, 77, 225, 390, 391, 697, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 1085, 392, + 393, 816, 394, 395, 396, 397, 398, 421, 408, 727, + 728, 729, 399, 400, 829, 401, 831, 832, 402, 409, + 405, 422, 406, 407, 841, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 441, 446, 477, 478, + 480, 483, 489, 861, 862, 513, 863, 514, 536, 410, + 515, 516, 865, 517, 518, 519, 520, 521, 764, 211, + 212, 213, 214, 215, 522, 523, 524, 773, 525, 216, + 217, 218, 219, 273, 274, 222, 223, 224, 526, 527, + 528, 225, 991, 529, 530, 531, 753, 211, 212, 213, + 214, 215, 532, 533, 534, 902, 535, 216, 217, 218, + 219, 273, 274, 222, 223, 224, 537, 907, 538, 225, + 539, 540, 912, 913, 541, 211, 212, 213, 214, 215, + 542, 545, 566, 546, 547, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 563, 564, 102, 225, 568, 570, + 103, 569, 571, 288, 572, 947, 948, 574, 575, 577, + 211, 212, 213, 214, 215, 411, 597, 960, 578, 962, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 972, + 579, 584, 225, 600, 601, 633, 979, 980, 981, 634, + 635, 636, 638, 986, 648, 649, 650, 990, 679, 992, + 651, 211, 212, 213, 214, 215, 652, 653, 654, 655, + 1005, 216, 217, 218, 219, 273, 274, 222, 223, 224, + 656, 657, 658, 225, 904, 412, 1010, 684, 659, 683, + 695, 660, 700, 702, 710, 711, 712, 1019, 1020, 1021, + 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 661, + 927, 662, 929, 663, 931, 664, 665, 1039, 76, 550, + 1067, 666, 1043, 715, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 667, 716, 668, 717, + 718, 669, 670, 671, 672, 1068, 1070, 1072, 1074, 1075, + 1076, 1077, 719, 720, 1082, 1083, 673, 211, 212, 213, + 214, 215, 484, 709, 1088, 1089, 1090, 216, 217, 218, + 219, 273, 274, 222, 223, 224, 680, 721, 674, 225, + 675, 676, 677, 1107, 1108, 744, 678, 681, 732, 733, + 1112, 734, 735, 736, 737, 738, 749, 754, 698, 699, + 1119, 701, 739, 740, 741, 703, 704, 742, 1127, 743, + 761, 760, 765, 1132, 766, 767, 1135, 211, 212, 213, + 214, 215, 768, 792, 769, 772, 413, 216, 217, 218, + 219, 273, 274, 222, 223, 224, 774, 775, 1158, 225, + 778, 779, 780, 781, 782, 791, 794, 1164, 1165, 1166, + 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1069, + 1071, 1073, 747, 793, 795, 750, 1181, 552, 553, 796, + 801, 805, 809, 811, 102, 813, 814, 833, 554, 855, + 860, 160, 864, 866, 870, 770, 771, 871, 872, 900, + 873, 776, 777, 686, 874, 897, 875, 876, 783, 877, + 790, 879, 211, 212, 213, 214, 215, 1198, 903, 880, + 881, 882, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 883, 884, 885, 225, 886, 887, 810, 888, 812, + 889, 890, 891, 1222, 892, 893, 895, 817, 818, 819, + 894, 896, 822, 823, 824, 825, 826, 827, 828, 905, + 906, 909, 910, 911, 914, 915, 916, 917, 1242, 1243, + 1244, 1245, 1246, 1247, 1248, 1249, 1250, 918, 211, 212, + 213, 214, 215, 919, 1256, 920, 922, 928, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 1263, 1114, 1264, + 225, 930, 934, 953, 949, 211, 212, 213, 214, 215, + 959, 961, 965, 964, 971, 216, 217, 218, 219, 273, + 274, 222, 223, 224, 966, 967, 968, 225, 970, 973, + 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1304, + 1306, 1308, 974, 975, 1311, 211, 212, 213, 214, 215, + 976, 977, 983, 984, 987, 216, 217, 218, 219, 273, + 274, 222, 223, 224, 988, 989, 1001, 225, 1008, 1000, + 1009, 1011, 1335, 1336, 1037, 1040, 1044, 1046, 1038, 1047, + 1048, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, + 1353, 1049, 1355, 1050, 1357, 1052, 1058, 954, 1361, 1053, + 958, 1054, 1059, 1060, 1062, 963, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 1063, 1065, 1081, 225, 1091, + 1092, 1373, 1374, 1109, 982, 1115, 1378, 1379, 1380, 1381, + 1382, 1383, 1118, 26, 27, 28, 29, 30, 31, 32, + 33, 1120, 34, 1122, 36, 37, 1123, 39, 40, 1401, + 1124, 1125, 1126, 1128, 1405, 1406, 1407, 1408, 1409, 1410, + 1412, 1414, 1416, 51, 1130, 1131, 1133, 1134, 1137, 1136, + 1149, 1138, 1152, 1153, 1163, 1156, 1157, 52, 53, 1178, + 1186, 1194, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1179, + 1443, 1182, 1445, 1183, 1195, 1184, 1201, 1202, 1218, 1187, + 1189, 1219, 1191, 1193, 1199, 1205, 1227, 1228, 1229, 1231, + 1455, 1456, 1457, 1232, 1233, 1234, 1239, 1235, 1255, 1254, + 1281, 1257, 1285, 1258, 1469, 1470, 1471, 1473, 1475, 1477, + 1259, 1260, 1261, 1277, 1262, 1286, 1288, 62, 1265, 1267, + 1291, 1489, 1490, 1491, 1492, 1292, 1494, 1278, 1496, 1279, + 1314, 1309, 1310, 1312, 1313, 1316, 1315, 1339, 1334, 1317, + 1318, 1340, 1342, 1341, 1343, 1354, 1356, 1358, 1510, 1512, + 1514, 1110, 1359, 1389, 1111, 1362, 474, 1521, 1363, 1523, + 1390, 1525, 1391, 1398, 1402, 1399, 1400, 1419, 1418, 1432, + 76, 77, 1434, 1465, 1442, 1129, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 1444, 1446, + 1493, 1495, 688, 1447, 76, 550, 1461, 1466, 1478, 1162, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 672, 666, 667, 692, 1061, 1063, 1065, 1060, 1062, 1064, - 1066, 1067, 1068, 1069, 668, 694, 1074, 1075, 701, 702, - 669, 675, 703, 704, 287, 707, 1080, 1081, 1082, 292, - 407, 670, 708, 673, 709, 710, 711, 712, 713, 724, - 725, 726, 727, 728, 729, 1099, 1100, 730, 731, 736, - 752, 315, 1104, 741, 746, 319, 320, 753, 757, 758, - 760, 759, 1111, 732, 733, 734, 761, 764, 766, 735, - 1119, 767, 770, 771, 772, 1124, 773, 774, 1127, 208, - 209, 210, 211, 212, 783, 784, 786, 785, 787, 213, - 214, 215, 216, 270, 271, 219, 220, 221, 788, 793, - 1150, 222, 408, 797, 801, 803, 805, 806, 825, 1156, - 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, - 1167, 847, 852, 856, 858, 862, 889, 863, 1173, 98, - 99, 864, 892, 865, 895, 866, 100, 897, 867, 868, - 101, 74, 543, 285, 869, 871, 874, 76, 77, 78, + 98, 99, 1467, 76, 77, 1497, 1498, 1502, 1506, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 1190, - 208, 209, 210, 211, 212, 872, 873, 875, 876, 877, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 878, - 74, 75, 222, 879, 881, 1214, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 880, 898, - 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 901, - 882, 883, 884, 885, 902, 886, 1248, 903, 887, 888, - 906, 907, 208, 209, 210, 211, 212, 908, 909, 1255, - 910, 1256, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 911, 912, 914, 222, 920, 922, 926, 945, 941, - 951, 953, 957, 956, 959, 993, 958, 960, 962, 963, - 965, 966, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, - 1294, 1296, 1298, 1300, 967, 968, 1303, 969, 545, 546, - 976, 975, 979, 980, 981, 100, 1000, 1001, 992, 547, - 1003, 1029, 158, 1030, 1032, 1036, 1038, 1039, 1040, 1073, - 1041, 1042, 1044, 1050, 1327, 1328, 1045, 1046, 1051, 1052, - 1054, 1083, 1055, 1336, 1337, 1338, 1339, 1340, 1341, 1342, - 1343, 1344, 1345, 1057, 1347, 1107, 1349, 98, 99, 1084, - 1353, 1110, 1112, 1114, 100, 1115, 1101, 1129, 101, 1116, - 1117, 1118, 1120, 1122, 1123, 1125, 1126, 1130, 1128, 1141, - 1144, 1145, 1149, 1365, 1366, 1148, 1170, 1155, 1370, 1371, - 1372, 1373, 1374, 1375, 1171, 26, 27, 28, 29, 30, - 31, 32, 33, 1174, 34, 1178, 36, 37, 1175, 39, - 40, 1393, 1176, 1186, 1187, 1179, 1397, 1398, 1399, 1400, - 1401, 1402, 1404, 1406, 1408, 51, 1183, 1181, 1185, 1191, - 1193, 1194, 1197, 1210, 1211, 1219, 1220, 1221, 1223, 52, - 53, 1224, 1225, 1226, 1427, 1428, 1429, 1430, 1431, 1432, - 1433, 1227, 1435, 1231, 1437, 1273, 1277, 690, 691, 1246, - 693, 1249, 1250, 1278, 695, 696, 1247, 1251, 1252, 1253, - 1269, 1280, 1447, 1448, 1449, 1254, 1270, 1283, 1257, 1284, - 1326, 1331, 1332, 1333, 1259, 1334, 1461, 1462, 1463, 1465, - 1467, 1469, 1301, 1271, 1302, 1304, 409, 60, 1305, 1309, - 1306, 1307, 1335, 1481, 1482, 1483, 1484, 1308, 1486, 1310, - 1488, 1346, 1348, 1350, 1351, 1354, 1355, 1382, 1383, 678, - 1394, 739, 1390, 1381, 742, 1424, 1391, 1392, 1411, 1426, - 1502, 1504, 1506, 1434, 1436, 1438, 465, 1485, 1487, 1513, - 1489, 1515, 1490, 1517, 762, 763, 1494, 1514, 1410, 1516, - 768, 769, 1518, 1457, 74, 75, 1439, 775, 1453, 782, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 1458, 680, 1459, 1470, 802, 1520, 804, 1498, - 1499, 1500, 1521, 723, 65, 66, 809, 810, 811, 67, - 1232, 814, 815, 816, 817, 818, 819, 820, 74, 893, - 944, 0, 0, 0, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 208, 209, 210, 211, - 212, 682, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 699, 0, 0, 222, 208, - 209, 210, 211, 212, 684, 0, 0, 0, 0, 213, - 214, 215, 216, 270, 271, 219, 220, 221, 0, 0, - 0, 222, 0, 0, 0, 0, 0, 685, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 208, 209, 210, - 211, 212, 0, 0, 0, 0, 0, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 700, 0, 100, 222, - 0, 0, 101, 208, 209, 210, 211, 212, 0, 0, - 0, 0, 0, 213, 214, 215, 216, 270, 271, 219, - 220, 221, 722, 0, 0, 222, 946, 0, 0, 950, - 0, 0, 0, 0, 955, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 98, 99, 0, 0, 0, - 0, 0, 100, 974, 998, 0, 101, 0, 0, 0, - 0, 208, 209, 210, 211, 212, 0, 0, 0, 0, - 0, 213, 214, 215, 216, 270, 271, 219, 220, 221, - 0, 0, 0, 222, 208, 209, 210, 211, 212, 999, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 208, 209, 210, - 211, 212, 1131, 0, 0, 0, 0, 213, 214, 215, - 216, 270, 271, 219, 220, 221, 0, 0, 0, 222, - 0, 0, 0, 0, 0, 1133, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 1135, - 0, 0, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 1137, 0, 0, 0, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 212, 0, - 1102, 0, 0, 1103, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 0, 0, 1138, 0, 1121, 0, 0, 0, 0, 208, - 209, 210, 211, 212, 0, 0, 0, 0, 0, 213, - 214, 215, 216, 270, 271, 219, 220, 221, 1139, 0, - 0, 222, 208, 209, 210, 211, 212, 0, 1154, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 1140, 0, 222, 208, 209, 210, 211, 212, - 0, 0, 0, 0, 0, 213, 214, 215, 216, 270, - 271, 219, 220, 221, 0, 1172, 0, 222, 0, 208, - 209, 210, 211, 212, 0, 0, 0, 0, 0, 213, - 214, 215, 216, 270, 271, 219, 220, 221, 0, 0, - 479, 222, 0, 0, 0, 208, 209, 210, 211, 212, - 0, 0, 0, 0, 0, 213, 214, 215, 216, 270, - 271, 219, 220, 221, 1212, 1213, 505, 222, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 212, 0, 0, 0, - 572, 1233, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 208, 209, - 210, 211, 212, 743, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 208, 209, 210, 211, 212, 0, 0, 807, - 1272, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 1285, 222, 208, 209, 210, 211, 212, - 0, 0, 0, 0, 0, 213, 214, 215, 216, 270, - 271, 219, 220, 221, 0, 0, 0, 222, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 1330, - 222, 0, 0, 0, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 1369, - 222, 208, 209, 210, 211, 212, 0, 0, 0, 0, - 0, 213, 214, 215, 216, 270, 271, 219, 220, 221, - 0, 0, 0, 222, 0, 0, 1395, 208, 209, 210, - 211, 212, 0, 0, 0, 0, 0, 213, 214, 215, - 216, 270, 271, 219, 220, 221, 0, 0, 0, 222, - 0, 0, 0, 0, 1425, 26, 27, 28, 29, 30, - 31, 32, 33, 0, 34, 0, 36, 37, 0, 39, - 40, -3, 22, 0, 0, 23, 208, 209, 210, 211, - 212, 0, 0, 1446, 0, 51, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 1460, 222, 52, - 53, 0, 24, 352, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 0, 34, 35, 36, 37, 38, 39, - 40, 0, 0, 0, 41, 42, 43, 44, 45, 46, - 0, 47, 48, 49, 50, 51, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 224, 0, 0, 52, - 53, 0, 0, 0, 0, 0, 54, 60, 55, 56, - 0, 57, 58, 59, 26, 27, 28, 29, 30, 31, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 76, 77, 1522, 1528, 1507, 1524, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 1508, + 1526, 76, 901, 1529, 952, 1220, 1221, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 67, + 731, 68, 1241, 69, 1240, 707, 0, 0, 0, 100, + 101, 690, 0, 0, 0, 0, 102, 0, 0, 0, + 103, 0, 0, 288, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 552, 553, 0, 225, 692, 0, 0, + 102, 1280, 0, 0, 554, 0, 0, 160, 211, 212, + 213, 214, 215, 0, 1293, 0, 0, 0, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 693, 0, 102, + 225, 0, 0, 103, 26, 27, 28, 29, 30, 31, 32, 33, 0, 34, 0, 36, 37, 0, 39, 40, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 51, 0, 469, 0, 0, 0, - 0, 0, 225, 226, 227, 0, 0, 60, 52, 53, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 0, 0, 0, 0, 0, 0, 0, 0, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 0, 248, - 249, 250, 251, 252, 253, 208, 209, 210, 211, 212, - 0, 0, 0, 0, 0, 213, 214, 215, 216, 270, - 271, 219, 220, 221, 0, 0, 60, 222, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 686, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 208, 209, 210, 211, 212, 0, 0, 0, 0, - 747, 213, 214, 215, 216, 270, 271, 219, 220, 221, - 0, 0, 0, 222, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 822, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 208, 209, 210, - 211, 212, 0, 0, 0, 0, 1058, 213, 214, 215, - 216, 270, 271, 219, 220, 221, 0, 0, 0, 222, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 1281, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 916, 0, 0, 917, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 1078, 0, 0, 1079, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 1229, 0, 0, 1230, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 208, 209, 210, 211, 212, 0, 423, - 0, 0, 0, 213, 214, 215, 216, 270, 271, 219, - 220, 221, 0, 0, 0, 222, 208, 209, 210, 211, - 212, 0, 428, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 208, - 209, 210, 211, 212, 0, 430, 0, 0, 0, 213, - 214, 215, 216, 270, 271, 219, 220, 221, 0, 0, - 0, 222, 208, 209, 210, 211, 212, 0, 577, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 208, 209, 210, 211, 212, - 0, 581, 0, 0, 0, 213, 214, 215, 216, 270, - 271, 219, 220, 221, 0, 0, 0, 222, 208, 209, - 210, 211, 212, 0, 582, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 208, 209, 210, 211, 212, 0, 718, 0, 0, - 0, 213, 214, 215, 216, 270, 271, 219, 220, 221, - 0, 0, 0, 222, 208, 209, 210, 211, 212, 0, - 913, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 208, 209, 210, - 211, 212, 0, 949, 0, 0, 0, 213, 214, 215, - 216, 270, 271, 219, 220, 221, 0, 0, 0, 222, - 1106, 0, 0, 0, 0, 0, 1105, 208, 209, 210, - 211, 212, 0, 0, 0, 0, 0, 213, 214, 215, - 216, 270, 271, 219, 220, 221, 0, 0, 0, 222, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 208, 209, 210, 211, 212, 0, 1146, - 0, 0, 0, 213, 214, 215, 216, 270, 271, 219, - 220, 221, 0, 0, 0, 222, 208, 209, 210, 211, - 212, 0, 1151, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 208, - 209, 210, 211, 212, 0, 1152, 0, 0, 0, 213, - 214, 215, 216, 270, 271, 219, 220, 221, 0, 0, - 0, 222, 208, 209, 210, 211, 212, 0, 1153, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 208, 209, 210, 211, 212, - 0, 1168, 0, 0, 0, 213, 214, 215, 216, 270, - 271, 219, 220, 221, 0, 0, 0, 222, 208, 209, - 210, 211, 212, 0, 1169, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 1274, 0, 0, 0, 0, 0, 1192, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 208, 209, 210, 211, 212, 0, 0, 0, 0, - 0, 213, 214, 215, 216, 270, 271, 219, 220, 221, - 0, 0, 0, 222, 208, 209, 210, 211, 212, 0, - 1282, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 208, 209, 210, - 211, 212, 0, 1380, 0, 0, 0, 213, 214, 215, - 216, 270, 271, 219, 220, 221, 0, 0, 0, 222, - 208, 209, 210, 211, 212, 0, 1409, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 452, 352, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 0, 422, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 0, 424, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 0, 425, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 0, 427, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 0, 431, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 0, 432, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 0, 437, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 0, 474, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 0, 477, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 0, 484, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 0, 485, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 0, 486, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 0, 487, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 0, 488, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 0, 489, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 0, 490, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 0, 491, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 0, 492, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 0, 493, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 0, 494, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 0, 496, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 0, 497, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 0, 498, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 0, 499, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 0, 500, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 0, 501, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 0, 565, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 0, 568, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 0, 578, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 0, 579, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 0, 583, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 0, 584, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 0, 585, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 0, 586, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 0, 587, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 0, 629, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 0, 633, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 0, 688, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 0, 748, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 0, 749, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 0, 750, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 0, 751, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 0, 790, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 0, 848, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 0, 915, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 0, 1043, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 0, 1047, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 0, 1049, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 0, 1180, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 0, 1182, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 0, 1184, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 0, 1207, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 0, 1208, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 0, 1209, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 0, 1362, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 0, 1363, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 0, 1364, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 0, 1443, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 0, 1444, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 0, 1445, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 0, 1491, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 0, 1492, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 0, 1493, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 452, 208, - 209, 210, 211, 212, 0, 0, 0, 0, 0, 213, - 214, 215, 216, 270, 271, 219, 220, 221, 0, 0, - 0, 222, 0, 0, 0, 453, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 495, 208, 209, 210, 211, 212, 0, 0, - 0, 0, 0, 213, 214, 215, 216, 270, 271, 219, - 220, 221, 0, 0, 0, 222, 0, 0, 0, 502, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 503, 208, 209, 210, - 211, 212, 0, 0, 0, 0, 0, 213, 214, 215, - 216, 270, 271, 219, 220, 221, 0, 0, 0, 222, - 506, 0, 0, 504, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 208, 209, 210, - 211, 212, 0, 0, 0, 0, 0, 213, 214, 215, - 216, 270, 271, 219, 220, 221, 0, 0, 0, 222, - 0, 0, 0, 595, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 596, 208, 209, 210, 211, 212, 0, 0, 0, 0, - 0, 213, 214, 215, 216, 270, 271, 219, 220, 221, - 0, 0, 0, 222, 0, 0, 0, 597, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 716, 208, 209, 210, 211, 212, - 0, 0, 0, 0, 0, 213, 214, 215, 216, 270, - 271, 219, 220, 221, 0, 0, 0, 222, 0, 0, - 0, 717, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 845, 208, - 209, 210, 211, 212, 0, 0, 0, 0, 0, 213, - 214, 215, 216, 270, 271, 219, 220, 221, 0, 0, - 0, 222, 0, 0, 0, 846, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 859, 208, 209, 210, 211, 212, 0, 0, - 0, 0, 0, 213, 214, 215, 216, 270, 271, 219, - 220, 221, 0, 0, 0, 222, 0, 0, 0, 860, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 900, 208, 209, 210, - 211, 212, 0, 0, 0, 0, 0, 213, 214, 215, - 216, 270, 271, 219, 220, 221, 0, 0, 0, 222, - 0, 0, 0, 927, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 928, 208, 209, 210, 211, 212, 0, 0, 0, 0, - 0, 213, 214, 215, 216, 270, 271, 219, 220, 221, - 0, 0, 0, 222, 0, 0, 0, 929, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 930, 208, 209, 210, 211, 212, - 0, 0, 0, 0, 0, 213, 214, 215, 216, 270, - 271, 219, 220, 221, 0, 0, 0, 222, 0, 0, - 0, 931, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 932, 208, - 209, 210, 211, 212, 0, 0, 0, 0, 0, 213, - 214, 215, 216, 270, 271, 219, 220, 221, 0, 0, - 0, 222, 0, 0, 0, 933, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 934, 208, 209, 210, 211, 212, 0, 0, - 0, 0, 0, 213, 214, 215, 216, 270, 271, 219, - 220, 221, 0, 0, 0, 222, 0, 0, 0, 935, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 936, 208, 209, 210, - 211, 212, 0, 0, 0, 0, 0, 213, 214, 215, - 216, 270, 271, 219, 220, 221, 0, 0, 0, 222, - 0, 0, 0, 937, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 938, 208, 209, 210, 211, 212, 0, 0, 0, 0, - 0, 213, 214, 215, 216, 270, 271, 219, 220, 221, - 0, 0, 0, 222, 0, 0, 0, 995, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 1023, 208, 209, 210, 211, 212, - 0, 0, 0, 0, 0, 213, 214, 215, 216, 270, - 271, 219, 220, 221, 0, 0, 0, 222, 0, 0, - 0, 1024, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 1037, 208, - 209, 210, 211, 212, 0, 0, 0, 0, 0, 213, - 214, 215, 216, 270, 271, 219, 220, 221, 0, 0, - 0, 222, 0, 0, 0, 1048, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 1053, 208, 209, 210, 211, 212, 0, 0, - 0, 0, 0, 213, 214, 215, 216, 270, 271, 219, - 220, 221, 0, 0, 0, 222, 0, 0, 0, 1056, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 1076, 208, 209, 210, - 211, 212, 0, 0, 0, 0, 0, 213, 214, 215, - 216, 270, 271, 219, 220, 221, 0, 0, 0, 222, - 0, 0, 0, 1087, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 1088, 208, 209, 210, 211, 212, 0, 0, 0, 0, - 0, 213, 214, 215, 216, 270, 271, 219, 220, 221, - 0, 0, 0, 222, 0, 0, 0, 1089, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 1090, 208, 209, 210, 211, 212, - 0, 0, 0, 0, 0, 213, 214, 215, 216, 270, - 271, 219, 220, 221, 0, 0, 0, 222, 0, 0, - 0, 1091, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 1092, 208, - 209, 210, 211, 212, 0, 0, 0, 0, 0, 213, - 214, 215, 216, 270, 271, 219, 220, 221, 0, 0, - 0, 222, 0, 0, 0, 1093, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 1094, 208, 209, 210, 211, 212, 0, 0, - 0, 0, 0, 213, 214, 215, 216, 270, 271, 219, - 220, 221, 0, 0, 0, 222, 0, 0, 0, 1095, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 1096, 208, 209, 210, - 211, 212, 0, 0, 0, 0, 0, 213, 214, 215, - 216, 270, 271, 219, 220, 221, 0, 0, 0, 222, - 0, 0, 0, 1097, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 1098, 208, 209, 210, 211, 212, 0, 0, 0, 0, - 0, 213, 214, 215, 216, 270, 271, 219, 220, 221, - 0, 0, 0, 222, 0, 0, 0, 1147, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 1177, 208, 209, 210, 211, 212, - 0, 0, 0, 0, 0, 213, 214, 215, 216, 270, - 271, 219, 220, 221, 0, 0, 0, 222, 0, 0, - 0, 1198, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 1199, 208, - 209, 210, 211, 212, 0, 0, 0, 0, 0, 213, - 214, 215, 216, 270, 271, 219, 220, 221, 0, 0, - 0, 222, 0, 0, 0, 1200, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 1201, 208, 209, 210, 211, 212, 0, 0, - 0, 0, 0, 213, 214, 215, 216, 270, 271, 219, - 220, 221, 0, 0, 0, 222, 0, 0, 0, 1202, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 1203, 208, 209, 210, - 211, 212, 0, 0, 0, 0, 0, 213, 214, 215, - 216, 270, 271, 219, 220, 221, 0, 0, 0, 222, - 0, 0, 0, 1204, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 1205, 208, 209, 210, 211, 212, 0, 0, 0, 0, - 0, 213, 214, 215, 216, 270, 271, 219, 220, 221, - 0, 0, 0, 222, 0, 0, 0, 1206, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 1260, 208, 209, 210, 211, 212, - 0, 0, 0, 0, 0, 213, 214, 215, 216, 270, - 271, 219, 220, 221, 0, 0, 0, 222, 0, 0, - 0, 1261, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 1262, 208, - 209, 210, 211, 212, 0, 0, 0, 0, 0, 213, - 214, 215, 216, 270, 271, 219, 220, 221, 0, 0, - 0, 222, 0, 0, 0, 1263, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 1264, 208, 209, 210, 211, 212, 0, 0, - 0, 0, 0, 213, 214, 215, 216, 270, 271, 219, - 220, 221, 0, 0, 0, 222, 0, 0, 0, 1265, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 1266, 208, 209, 210, - 211, 212, 0, 0, 0, 0, 0, 213, 214, 215, - 216, 270, 271, 219, 220, 221, 0, 0, 0, 222, - 0, 0, 0, 1267, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 1268, 208, 209, 210, 211, 212, 0, 0, 0, 0, - 0, 213, 214, 215, 216, 270, 271, 219, 220, 221, - 0, 0, 0, 222, 0, 0, 0, 1311, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 1312, 208, 209, 210, 211, 212, - 0, 0, 0, 0, 0, 213, 214, 215, 216, 270, - 271, 219, 220, 221, 0, 0, 0, 222, 0, 0, - 0, 1313, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 1314, 208, - 209, 210, 211, 212, 0, 0, 0, 0, 0, 213, - 214, 215, 216, 270, 271, 219, 220, 221, 0, 0, - 0, 222, 0, 0, 0, 1315, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 1316, 208, 209, 210, 211, 212, 0, 0, - 0, 0, 0, 213, 214, 215, 216, 270, 271, 219, - 220, 221, 0, 0, 0, 222, 0, 0, 0, 1317, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 1318, 208, 209, 210, - 211, 212, 0, 0, 0, 0, 0, 213, 214, 215, - 216, 270, 271, 219, 220, 221, 0, 0, 0, 222, - 0, 0, 0, 1319, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 1352, 208, 209, 210, 211, 212, 0, 0, 0, 0, - 0, 213, 214, 215, 216, 270, 271, 219, 220, 221, - 0, 0, 0, 222, 0, 0, 0, 1356, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 1357, 208, 209, 210, 211, 212, - 0, 0, 0, 0, 0, 213, 214, 215, 216, 270, - 271, 219, 220, 221, 0, 0, 0, 222, 0, 0, - 0, 1358, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 1359, 208, - 209, 210, 211, 212, 0, 0, 0, 0, 0, 213, - 214, 215, 216, 270, 271, 219, 220, 221, 0, 0, - 0, 222, 0, 0, 0, 1360, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 1361, 208, 209, 210, 211, 212, 0, 0, - 0, 0, 0, 213, 214, 215, 216, 270, 271, 219, - 220, 221, 0, 0, 0, 222, 0, 0, 0, 1379, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 1384, 208, 209, 210, - 211, 212, 0, 0, 0, 0, 0, 213, 214, 215, - 216, 270, 271, 219, 220, 221, 0, 0, 0, 222, - 0, 0, 0, 1385, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 1386, 208, 209, 210, 211, 212, 0, 0, 0, 0, - 0, 213, 214, 215, 216, 270, 271, 219, 220, 221, - 0, 0, 0, 222, 0, 0, 0, 1387, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 1388, 208, 209, 210, 211, 212, - 0, 0, 0, 0, 0, 213, 214, 215, 216, 270, - 271, 219, 220, 221, 0, 0, 0, 222, 0, 0, - 0, 1389, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 1412, 208, - 209, 210, 211, 212, 0, 0, 0, 0, 0, 213, - 214, 215, 216, 270, 271, 219, 220, 221, 0, 0, - 0, 222, 0, 0, 0, 1413, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 1414, 208, 209, 210, 211, 212, 0, 0, - 0, 0, 0, 213, 214, 215, 216, 270, 271, 219, - 220, 221, 0, 0, 0, 222, 0, 0, 0, 1415, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 0, 1416, 208, 209, 210, - 211, 212, 0, 0, 0, 0, 0, 213, 214, 215, - 216, 270, 271, 219, 220, 221, 0, 0, 0, 222, - 0, 0, 0, 1417, 208, 209, 210, 211, 212, 0, - 0, 0, 0, 0, 213, 214, 215, 216, 270, 271, - 219, 220, 221, 0, 0, 0, 222, 0, 0, 0, - 1440, 208, 209, 210, 211, 212, 0, 0, 0, 0, - 0, 213, 214, 215, 216, 270, 271, 219, 220, 221, - 0, 0, 0, 222, 0, 0, 0, 1441, 208, 209, - 210, 211, 212, 0, 0, 0, 0, 0, 213, 214, - 215, 216, 270, 271, 219, 220, 221, 0, 0, 0, - 222, 0, 0, 0, 1442, 208, 209, 210, 211, 212, - 0, 0, 0, 0, 0, 213, 214, 215, 216, 270, - 271, 219, 220, 221, 0, 0, 0, 222, 0, 0, - 0, 1454, 208, 209, 210, 211, 212, 0, 0, 0, - 0, 0, 213, 214, 215, 216, 270, 271, 219, 220, - 221, 0, 0, 0, 222, 0, 0, 0, 1455, 208, - 209, 210, 211, 212, 0, 0, 0, 0, 0, 213, - 214, 215, 216, 270, 271, 219, 220, 221, 0, 0, - 0, 222, 0, 0, 0, 1456, 208, 209, 210, 211, - 212, 0, 0, 0, 0, 0, 213, 214, 215, 216, - 270, 271, 219, 220, 221, 0, 0, 0, 222, 0, - 0, 0, 1471, 208, 209, 210, 211, 212, 0, 0, - 0, 0, 0, 213, 214, 215, 216, 270, 271, 219, - 220, 221, 0, 0, 0, 222, 0, 0, 0, 1472, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222, 0, 0, 1367, 1473, 208, 209, 210, - 211, 212, 0, 0, 0, 0, 0, 213, 214, 215, - 216, 270, 271, 219, 220, 221, 0, 0, 0, 222, - 208, 209, 210, 211, 212, 0, 0, 0, 0, 0, - 213, 214, 215, 216, 270, 271, 219, 220, 221, 0, - 0, 0, 222 + 100, 101, 0, 0, 0, 0, 0, 102, 708, 0, + 1338, 103, 0, 0, 51, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 53, + 100, 101, 730, 0, 0, 0, 0, 102, 0, 0, + 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 211, 212, 213, 214, 215, 1006, 0, + 1377, 0, 0, 216, 217, 218, 219, 273, 274, 222, + 223, 224, 0, 0, 0, 225, 0, 0, 0, 0, + 0, 1007, 0, 0, 0, 0, 0, 1403, 62, 211, + 212, 213, 214, 215, 0, 0, 0, 0, 0, 216, + 217, 218, 219, 273, 274, 222, 223, 224, 1139, 0, + 0, 225, 0, 0, 0, 1433, 0, 0, 0, 211, + 212, 213, 214, 215, 0, 0, 0, 0, 0, 216, + 217, 218, 219, 273, 274, 222, 223, 224, 1141, 0, + 0, 225, 0, 0, 1454, 0, 0, 0, 0, 0, + 211, 212, 213, 214, 215, 0, 0, 0, 1468, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 1143, + 0, 0, 225, 0, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 1145, 0, 0, 225, 0, 0, 0, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 1146, + 0, 0, 225, 211, 212, 213, 214, 215, 0, 0, + 0, 0, 0, 216, 217, 218, 219, 273, 274, 222, + 223, 224, 1147, 0, 0, 225, 0, 0, 0, 0, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 1148, + 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 1180, + 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, + 0, 211, 212, 213, 214, 215, 0, 0, 0, 0, + 0, 216, 217, 218, 219, 273, 274, 222, 223, 224, + 511, 0, 0, 225, 0, 211, 212, 213, 214, 215, + 0, 0, 0, 0, 0, 216, 217, 218, 219, 273, + 274, 222, 223, 224, 580, 0, 0, 225, 0, 0, + 0, 211, 212, 213, 214, 215, 0, 0, 0, 0, + 0, 216, 217, 218, 219, 273, 274, 222, 223, 224, + 751, 0, 0, 225, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 815, 0, 0, 225, 0, 0, 0, + 0, 211, 212, 213, 214, 215, 0, 0, 0, 0, + 0, 216, 217, 218, 219, 273, 274, 222, 223, 224, + 0, 0, 0, 225, 0, 0, 0, 0, 0, 0, + 0, 211, 212, 213, 214, 215, 0, 0, 0, 0, + 0, 216, 217, 218, 219, 273, 274, 222, 223, 224, + 0, 0, 0, 225, 0, 0, 0, 0, 0, 0, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 211, 212, 213, 214, 215, -3, 22, + 0, 0, 23, 216, 217, 218, 219, 273, 274, 222, + 223, 224, 0, 0, 0, 225, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, + 0, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 0, 34, 35, 36, 37, 38, 39, 40, 0, 0, + 0, 41, 42, 43, 44, 45, 46, 227, 47, 48, + 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 52, 53, 0, 0, + 0, 0, 0, 54, 0, 55, 56, 57, 58, 1282, + 59, 60, 61, 0, 0, 0, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 228, 229, 230, 225, 0, + 0, 0, 0, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 0, 0, 0, 62, 0, 0, 0, + 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 252, 253, 254, 255, 256, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 211, 212, 213, 214, 215, 0, 0, 0, 0, + 694, 216, 217, 218, 219, 273, 274, 222, 223, 224, + 0, 0, 0, 225, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 755, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 211, 212, 213, + 214, 215, 0, 0, 0, 0, 830, 216, 217, 218, + 219, 273, 274, 222, 223, 224, 0, 0, 0, 225, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 1066, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 211, 212, 213, 214, 215, 0, 0, + 0, 0, 1289, 216, 217, 218, 219, 273, 274, 222, + 223, 224, 0, 0, 0, 225, 0, 0, 0, 924, + 0, 0, 925, 211, 212, 213, 214, 215, 0, 0, + 0, 0, 0, 216, 217, 218, 219, 273, 274, 222, + 223, 224, 0, 0, 0, 225, 0, 0, 0, 1086, + 0, 0, 1087, 211, 212, 213, 214, 215, 0, 0, + 0, 0, 0, 216, 217, 218, 219, 273, 274, 222, + 223, 224, 0, 0, 0, 225, 0, 0, 0, 1237, + 0, 0, 1238, 211, 212, 213, 214, 215, 0, 0, + 0, 0, 0, 216, 217, 218, 219, 273, 274, 222, + 223, 224, 0, 0, 0, 225, 211, 212, 213, 214, + 215, 0, 428, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 211, + 212, 213, 214, 215, 0, 433, 0, 0, 0, 216, + 217, 218, 219, 273, 274, 222, 223, 224, 0, 0, + 0, 225, 211, 212, 213, 214, 215, 0, 435, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 211, 212, 213, 214, 215, + 0, 585, 0, 0, 0, 216, 217, 218, 219, 273, + 274, 222, 223, 224, 0, 0, 0, 225, 211, 212, + 213, 214, 215, 0, 589, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 211, 212, 213, 214, 215, 0, 590, 0, 0, + 0, 216, 217, 218, 219, 273, 274, 222, 223, 224, + 0, 0, 0, 225, 211, 212, 213, 214, 215, 0, + 726, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 211, 212, 213, + 214, 215, 0, 921, 0, 0, 0, 216, 217, 218, + 219, 273, 274, 222, 223, 224, 0, 0, 0, 225, + 211, 212, 213, 214, 215, 0, 1113, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 211, 212, 213, 214, 215, 0, 1154, + 0, 0, 0, 216, 217, 218, 219, 273, 274, 222, + 223, 224, 0, 0, 0, 225, 211, 212, 213, 214, + 215, 0, 1159, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 211, + 212, 213, 214, 215, 0, 1160, 0, 0, 0, 216, + 217, 218, 219, 273, 274, 222, 223, 224, 0, 0, + 0, 225, 211, 212, 213, 214, 215, 0, 1161, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 211, 212, 213, 214, 215, + 0, 1176, 0, 0, 0, 216, 217, 218, 219, 273, + 274, 222, 223, 224, 0, 0, 0, 225, 211, 212, + 213, 214, 215, 0, 1177, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 211, 212, 213, 214, 215, 0, 1200, 0, 0, + 0, 216, 217, 218, 219, 273, 274, 222, 223, 224, + 0, 0, 0, 225, 211, 212, 213, 214, 215, 0, + 1290, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 211, 212, 213, + 214, 215, 0, 1388, 0, 0, 0, 216, 217, 218, + 219, 273, 274, 222, 223, 224, 0, 0, 0, 225, + 211, 212, 213, 214, 215, 0, 1417, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 457, 356, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 0, 356, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 0, 427, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 0, 429, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 0, 430, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 0, 432, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 0, 436, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 0, 437, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 0, 442, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 0, 479, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 0, 482, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 0, 485, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 0, 490, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 0, 491, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 0, 492, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 0, 493, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 0, 494, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 0, 495, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 0, 496, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 0, 497, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 0, 498, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 0, 499, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 0, 500, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 0, 502, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 0, 503, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 0, 504, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 0, 505, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 0, 506, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 0, 507, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 0, 573, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 0, 576, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 0, 586, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 0, 587, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 0, 591, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 0, 592, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 0, 593, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 0, 594, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 0, 595, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 0, 637, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 0, 641, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 0, 696, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 0, 756, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 0, 757, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 0, 758, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 0, 759, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 0, 798, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 0, 856, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 0, 923, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 0, 957, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 0, 1051, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 0, 1055, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 0, 1057, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 0, 1188, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 0, 1190, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 0, 1192, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 0, 1215, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 0, 1216, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 0, 1217, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 0, 1370, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 0, 1371, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 0, 1372, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 0, 1451, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 0, 1452, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 0, 1453, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 0, 1499, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 0, 1500, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 0, 1501, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 457, 211, 212, 213, 214, 215, 0, 0, + 0, 0, 0, 216, 217, 218, 219, 273, 274, 222, + 223, 224, 0, 0, 0, 225, 0, 0, 0, 458, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 501, 211, 212, 213, + 214, 215, 0, 0, 0, 0, 0, 216, 217, 218, + 219, 273, 274, 222, 223, 224, 0, 0, 0, 225, + 0, 0, 0, 508, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 509, 211, 212, 213, 214, 215, 0, 0, 0, 0, + 0, 216, 217, 218, 219, 273, 274, 222, 223, 224, + 0, 0, 0, 225, 512, 0, 0, 510, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 211, 212, 213, 214, 215, 0, 0, 0, 0, + 0, 216, 217, 218, 219, 273, 274, 222, 223, 224, + 0, 0, 0, 225, 0, 0, 0, 603, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 604, 211, 212, 213, 214, 215, + 0, 0, 0, 0, 0, 216, 217, 218, 219, 273, + 274, 222, 223, 224, 0, 0, 0, 225, 0, 0, + 0, 605, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 724, 211, + 212, 213, 214, 215, 0, 0, 0, 0, 0, 216, + 217, 218, 219, 273, 274, 222, 223, 224, 0, 0, + 0, 225, 0, 0, 0, 725, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 853, 211, 212, 213, 214, 215, 0, 0, + 0, 0, 0, 216, 217, 218, 219, 273, 274, 222, + 223, 224, 0, 0, 0, 225, 0, 0, 0, 854, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 867, 211, 212, 213, + 214, 215, 0, 0, 0, 0, 0, 216, 217, 218, + 219, 273, 274, 222, 223, 224, 0, 0, 0, 225, + 0, 0, 0, 868, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 908, 211, 212, 213, 214, 215, 0, 0, 0, 0, + 0, 216, 217, 218, 219, 273, 274, 222, 223, 224, + 0, 0, 0, 225, 0, 0, 0, 935, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 936, 211, 212, 213, 214, 215, + 0, 0, 0, 0, 0, 216, 217, 218, 219, 273, + 274, 222, 223, 224, 0, 0, 0, 225, 0, 0, + 0, 937, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 938, 211, + 212, 213, 214, 215, 0, 0, 0, 0, 0, 216, + 217, 218, 219, 273, 274, 222, 223, 224, 0, 0, + 0, 225, 0, 0, 0, 939, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 940, 211, 212, 213, 214, 215, 0, 0, + 0, 0, 0, 216, 217, 218, 219, 273, 274, 222, + 223, 224, 0, 0, 0, 225, 0, 0, 0, 941, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 942, 211, 212, 213, + 214, 215, 0, 0, 0, 0, 0, 216, 217, 218, + 219, 273, 274, 222, 223, 224, 0, 0, 0, 225, + 0, 0, 0, 943, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 944, 211, 212, 213, 214, 215, 0, 0, 0, 0, + 0, 216, 217, 218, 219, 273, 274, 222, 223, 224, + 0, 0, 0, 225, 0, 0, 0, 945, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 946, 211, 212, 213, 214, 215, + 0, 0, 0, 0, 0, 216, 217, 218, 219, 273, + 274, 222, 223, 224, 0, 0, 0, 225, 0, 0, + 0, 1003, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 1031, 211, + 212, 213, 214, 215, 0, 0, 0, 0, 0, 216, + 217, 218, 219, 273, 274, 222, 223, 224, 0, 0, + 0, 225, 0, 0, 0, 1032, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 1045, 211, 212, 213, 214, 215, 0, 0, + 0, 0, 0, 216, 217, 218, 219, 273, 274, 222, + 223, 224, 0, 0, 0, 225, 0, 0, 0, 1056, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 1061, 211, 212, 213, + 214, 215, 0, 0, 0, 0, 0, 216, 217, 218, + 219, 273, 274, 222, 223, 224, 0, 0, 0, 225, + 0, 0, 0, 1064, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 1084, 211, 212, 213, 214, 215, 0, 0, 0, 0, + 0, 216, 217, 218, 219, 273, 274, 222, 223, 224, + 0, 0, 0, 225, 0, 0, 0, 1095, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 1096, 211, 212, 213, 214, 215, + 0, 0, 0, 0, 0, 216, 217, 218, 219, 273, + 274, 222, 223, 224, 0, 0, 0, 225, 0, 0, + 0, 1097, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 1098, 211, + 212, 213, 214, 215, 0, 0, 0, 0, 0, 216, + 217, 218, 219, 273, 274, 222, 223, 224, 0, 0, + 0, 225, 0, 0, 0, 1099, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 1100, 211, 212, 213, 214, 215, 0, 0, + 0, 0, 0, 216, 217, 218, 219, 273, 274, 222, + 223, 224, 0, 0, 0, 225, 0, 0, 0, 1101, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 1102, 211, 212, 213, + 214, 215, 0, 0, 0, 0, 0, 216, 217, 218, + 219, 273, 274, 222, 223, 224, 0, 0, 0, 225, + 0, 0, 0, 1103, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 1104, 211, 212, 213, 214, 215, 0, 0, 0, 0, + 0, 216, 217, 218, 219, 273, 274, 222, 223, 224, + 0, 0, 0, 225, 0, 0, 0, 1105, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 1106, 211, 212, 213, 214, 215, + 0, 0, 0, 0, 0, 216, 217, 218, 219, 273, + 274, 222, 223, 224, 0, 0, 0, 225, 0, 0, + 0, 1155, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 1185, 211, + 212, 213, 214, 215, 0, 0, 0, 0, 0, 216, + 217, 218, 219, 273, 274, 222, 223, 224, 0, 0, + 0, 225, 0, 0, 0, 1206, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 1207, 211, 212, 213, 214, 215, 0, 0, + 0, 0, 0, 216, 217, 218, 219, 273, 274, 222, + 223, 224, 0, 0, 0, 225, 0, 0, 0, 1208, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 1209, 211, 212, 213, + 214, 215, 0, 0, 0, 0, 0, 216, 217, 218, + 219, 273, 274, 222, 223, 224, 0, 0, 0, 225, + 0, 0, 0, 1210, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 1211, 211, 212, 213, 214, 215, 0, 0, 0, 0, + 0, 216, 217, 218, 219, 273, 274, 222, 223, 224, + 0, 0, 0, 225, 0, 0, 0, 1212, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 1213, 211, 212, 213, 214, 215, + 0, 0, 0, 0, 0, 216, 217, 218, 219, 273, + 274, 222, 223, 224, 0, 0, 0, 225, 0, 0, + 0, 1214, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 1268, 211, + 212, 213, 214, 215, 0, 0, 0, 0, 0, 216, + 217, 218, 219, 273, 274, 222, 223, 224, 0, 0, + 0, 225, 0, 0, 0, 1269, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 1270, 211, 212, 213, 214, 215, 0, 0, + 0, 0, 0, 216, 217, 218, 219, 273, 274, 222, + 223, 224, 0, 0, 0, 225, 0, 0, 0, 1271, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 1272, 211, 212, 213, + 214, 215, 0, 0, 0, 0, 0, 216, 217, 218, + 219, 273, 274, 222, 223, 224, 0, 0, 0, 225, + 0, 0, 0, 1273, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 1274, 211, 212, 213, 214, 215, 0, 0, 0, 0, + 0, 216, 217, 218, 219, 273, 274, 222, 223, 224, + 0, 0, 0, 225, 0, 0, 0, 1275, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 1276, 211, 212, 213, 214, 215, + 0, 0, 0, 0, 0, 216, 217, 218, 219, 273, + 274, 222, 223, 224, 0, 0, 0, 225, 0, 0, + 0, 1319, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 1320, 211, + 212, 213, 214, 215, 0, 0, 0, 0, 0, 216, + 217, 218, 219, 273, 274, 222, 223, 224, 0, 0, + 0, 225, 0, 0, 0, 1321, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 1322, 211, 212, 213, 214, 215, 0, 0, + 0, 0, 0, 216, 217, 218, 219, 273, 274, 222, + 223, 224, 0, 0, 0, 225, 0, 0, 0, 1323, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 1324, 211, 212, 213, + 214, 215, 0, 0, 0, 0, 0, 216, 217, 218, + 219, 273, 274, 222, 223, 224, 0, 0, 0, 225, + 0, 0, 0, 1325, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 1326, 211, 212, 213, 214, 215, 0, 0, 0, 0, + 0, 216, 217, 218, 219, 273, 274, 222, 223, 224, + 0, 0, 0, 225, 0, 0, 0, 1327, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 1360, 211, 212, 213, 214, 215, + 0, 0, 0, 0, 0, 216, 217, 218, 219, 273, + 274, 222, 223, 224, 0, 0, 0, 225, 0, 0, + 0, 1364, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 1365, 211, + 212, 213, 214, 215, 0, 0, 0, 0, 0, 216, + 217, 218, 219, 273, 274, 222, 223, 224, 0, 0, + 0, 225, 0, 0, 0, 1366, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 1367, 211, 212, 213, 214, 215, 0, 0, + 0, 0, 0, 216, 217, 218, 219, 273, 274, 222, + 223, 224, 0, 0, 0, 225, 0, 0, 0, 1368, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 1369, 211, 212, 213, + 214, 215, 0, 0, 0, 0, 0, 216, 217, 218, + 219, 273, 274, 222, 223, 224, 0, 0, 0, 225, + 0, 0, 0, 1387, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 1392, 211, 212, 213, 214, 215, 0, 0, 0, 0, + 0, 216, 217, 218, 219, 273, 274, 222, 223, 224, + 0, 0, 0, 225, 0, 0, 0, 1393, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 1394, 211, 212, 213, 214, 215, + 0, 0, 0, 0, 0, 216, 217, 218, 219, 273, + 274, 222, 223, 224, 0, 0, 0, 225, 0, 0, + 0, 1395, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 1396, 211, + 212, 213, 214, 215, 0, 0, 0, 0, 0, 216, + 217, 218, 219, 273, 274, 222, 223, 224, 0, 0, + 0, 225, 0, 0, 0, 1397, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 1420, 211, 212, 213, 214, 215, 0, 0, + 0, 0, 0, 216, 217, 218, 219, 273, 274, 222, + 223, 224, 0, 0, 0, 225, 0, 0, 0, 1421, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 1422, 211, 212, 213, + 214, 215, 0, 0, 0, 0, 0, 216, 217, 218, + 219, 273, 274, 222, 223, 224, 0, 0, 0, 225, + 0, 0, 0, 1423, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 0, + 1424, 211, 212, 213, 214, 215, 0, 0, 0, 0, + 0, 216, 217, 218, 219, 273, 274, 222, 223, 224, + 0, 0, 0, 225, 0, 0, 0, 1425, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 0, 216, 217, + 218, 219, 273, 274, 222, 223, 224, 0, 0, 0, + 225, 0, 0, 0, 1448, 211, 212, 213, 214, 215, + 0, 0, 0, 0, 0, 216, 217, 218, 219, 273, + 274, 222, 223, 224, 0, 0, 0, 225, 0, 0, + 0, 1449, 211, 212, 213, 214, 215, 0, 0, 0, + 0, 0, 216, 217, 218, 219, 273, 274, 222, 223, + 224, 0, 0, 0, 225, 0, 0, 0, 1450, 211, + 212, 213, 214, 215, 0, 0, 0, 0, 0, 216, + 217, 218, 219, 273, 274, 222, 223, 224, 0, 0, + 0, 225, 0, 0, 0, 1462, 211, 212, 213, 214, + 215, 0, 0, 0, 0, 0, 216, 217, 218, 219, + 273, 274, 222, 223, 224, 0, 0, 0, 225, 0, + 0, 0, 1463, 211, 212, 213, 214, 215, 0, 0, + 0, 0, 0, 216, 217, 218, 219, 273, 274, 222, + 223, 224, 0, 0, 0, 225, 0, 0, 0, 1464, + 211, 212, 213, 214, 215, 0, 0, 0, 0, 0, + 216, 217, 218, 219, 273, 274, 222, 223, 224, 0, + 0, 0, 225, 0, 0, 0, 1479, 211, 212, 213, + 214, 215, 0, 0, 0, 0, 0, 216, 217, 218, + 219, 273, 274, 222, 223, 224, 0, 0, 0, 225, + 0, 0, 0, 1480, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225, 0, 0, 1375, + 1481, 211, 212, 213, 214, 215, 0, 0, 0, 0, + 0, 216, 217, 218, 219, 273, 274, 222, 223, 224, + 0, 0, 0, 225, 211, 212, 213, 214, 215, 0, + 0, 0, 0, 0, 216, 217, 218, 219, 273, 274, + 222, 223, 224, 0, 0, 0, 225 }; static const short yycheck[] = { 7, - 112, 309, 1009, 4, 4, 38, 941, 6, 1071, 7, - 81, 4, 4, 60, 4, 23, 4, 4, 65, 60, - 59, 59, 141, 6, 65, 60, 4, 4, 4, 172, - 65, 42, 43, 176, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 160, 161, 6, 6, - 160, 161, 866, 160, 161, 6, 7, 160, 161, 168, - 174, 875, 45, 173, 6, 174, 6, 174, 882, 172, - 63, 63, 175, 63, 34, 6, 63, 37, 38, 171, - 40, 168, 174, 160, 161, 160, 161, 174, 160, 161, - 98, 99, 100, 101, 102, 172, 84, 84, 175, 174, - 171, 173, 1037, 166, 6, 168, 6, 6, 116, 7, - 118, 119, 120, 121, 6, 96, 97, 98, 99, 100, - 6, 129, 130, 131, 132, 1188, 134, 135, 175, 137, - 138, 139, 171, 141, 175, 174, 174, 7, 171, 6, - 160, 161, 153, 175, 6, 156, 160, 161, 6, 157, - 158, 162, 172, 6, 152, 153, 154, 155, 172, 160, - 161, 160, 161, 37, 38, 173, 40, 175, 6, 177, - 171, 169, 170, 174, 174, 183, 184, 185, 186, 187, + 114, 874, 312, 1017, 4, 6, 38, 6, 949, 6, + 883, 4, 4, 59, 4, 23, 81, 890, 4, 60, + 60, 59, 1079, 4, 65, 65, 6, 4, 4, 34, + 174, 6, 37, 4, 178, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 174, + 162, 163, 177, 6, 143, 45, 162, 163, 162, 163, + 63, 63, 174, 63, 6, 177, 162, 163, 174, 170, + 174, 177, 63, 177, 7, 176, 162, 163, 162, 163, + 176, 84, 100, 101, 102, 103, 104, 6, 84, 4, + 176, 170, 176, 6, 1045, 6, 6, 176, 173, 168, + 118, 170, 120, 121, 122, 123, 34, 6, 6, 37, + 38, 6, 40, 131, 132, 133, 134, 173, 136, 137, + 176, 139, 140, 141, 6, 143, 177, 177, 176, 1196, + 6, 173, 162, 163, 162, 163, 177, 6, 42, 43, + 7, 159, 160, 40, 174, 7, 60, 175, 177, 37, + 38, 65, 40, 162, 163, 162, 163, 175, 6, 177, + 173, 179, 180, 1046, 6, 176, 176, 1050, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 174, 174, 174, 171, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 174, 174, 160, 161, - 160, 161, 169, 170, 1038, 1232, 3, 4, 1042, 160, - 161, 6, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 152, 153, 154, 155, 160, 161, - 160, 161, 270, 271, 160, 161, 160, 161, 160, 161, - 278, 169, 170, 281, 160, 161, 172, 285, 172, 175, - 171, 289, 290, 291, 171, 293, 294, 295, 296, 297, - 298, 299, 172, 173, 171, 306, 307, 160, 161, 160, - 161, 160, 161, 311, 312, 313, 317, 0, 1, 172, - 3, 172, 6, 172, 34, 323, 34, 37, 38, 37, - 328, 3, 4, 5, 51, 52, 171, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 160, - 161, 162, 163, 164, 42, 172, 171, 168, 175, 174, - 1174, 1175, 1176, 1177, 172, 173, 171, 1181, 6, 146, - 147, 148, 149, 150, 172, 172, 171, 175, 175, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 38, 172, - 167, 168, 175, 172, 171, 171, 175, 174, 171, 410, - 411, 412, 410, 411, 412, 413, 414, 172, 172, 417, - 175, 175, 50, 421, 172, 169, 170, 175, 111, 112, - 113, 114, 115, 116, 117, 118, 38, 38, 436, 53, - 54, 55, 56, 441, 58, 1249, 1250, 40, 449, 1253, - 0, 1, 174, 3, 452, 453, 162, 163, 164, 8, - 174, 174, 168, 461, 149, 150, 38, 174, 6, 5, - 468, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 478, 479, 171, 168, 172, 483, 6, 175, 160, 161, - 172, 172, 4, 175, 175, 167, 4, 495, 172, 171, - 1304, 175, 174, 38, 502, 503, 504, 505, 172, 172, - 172, 175, 175, 175, 171, 176, 171, 171, 146, 147, - 148, 149, 150, 171, 171, 171, 171, 825, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 171, 171, 171, - 168, 171, 171, 5, 542, 546, 171, 545, 546, 547, - 1354, 171, 171, 171, 171, 171, 171, 8, 171, 171, - 561, 111, 112, 113, 114, 115, 116, 117, 118, 6, - 6, 673, 171, 171, 572, 573, 6, 5, 174, 1383, - 171, 171, 171, 171, 171, 171, 86, 137, 138, 174, - 140, 589, 174, 171, 595, 596, 597, 146, 147, 148, - 149, 150, 171, 171, 174, 176, 6, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 174, 174, 171, 168, - 168, 5, 173, 5, 171, 171, 175, 625, 626, 171, - 628, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 644, 642, 643, 171, 171, 171, 171, - 6, 172, 653, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 3, 4, 5, 168, 1470, 171, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 171, 171, 171, 171, 171, 146, 147, 148, 149, 150, - 6, 171, 1000, 701, 171, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 171, 171, 714, 168, 716, 717, - 172, 171, 171, 171, 175, 171, 724, 725, 726, 727, - 728, 729, 730, 731, 732, 733, 734, 735, 171, 171, - 175, 172, 171, 177, 171, 743, 744, 171, 746, 3, - 4, 5, 171, 7, 752, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 171, 32, 171, - 171, 176, 7, 7, 7, 7, 888, 82, 174, 177, - 146, 147, 148, 149, 150, 5, 5, 795, 5, 800, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 807, - 5, 5, 168, 5, 812, 813, 5, 5, 5, 160, - 161, 5, 5, 5, 5, 826, 167, 828, 5, 830, - 171, 5, 5, 174, 5, 5, 5, 5, 5, 5, - 146, 147, 148, 149, 150, 5, 129, 845, 846, 5, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 857, - 5, 859, 168, 5, 5, 3, 5, 172, 5, 177, - 5, 869, 6, 6, 6, 4, 7, 7, 876, 877, - 878, 6, 175, 7, 7, 883, 6, 6, 175, 887, - 7, 889, 7, 7, 174, 174, 7, 171, 152, 153, - 154, 155, 900, 7, 143, 172, 160, 161, 172, 172, - 172, 172, 172, 167, 172, 169, 170, 171, 916, 6, - 172, 172, 176, 172, 172, 172, 172, 172, 172, 927, - 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, - 938, 172, 172, 172, 172, 172, 172, 5, 7, 947, - 6, 172, 3, 4, 952, 172, 172, 172, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 173, 172, 172, 7, 985, 986, 987, 985, 986, 987, - 988, 989, 990, 991, 172, 7, 994, 995, 174, 7, - 172, 176, 7, 7, 140, 7, 1004, 1005, 1006, 145, - 6, 172, 7, 172, 7, 7, 7, 7, 7, 171, - 171, 171, 171, 171, 171, 1023, 1024, 171, 171, 6, - 139, 167, 1030, 7, 7, 171, 172, 3, 3, 3, - 3, 162, 1040, 171, 171, 171, 3, 3, 3, 171, - 1048, 3, 3, 3, 3, 1053, 3, 3, 1056, 146, - 147, 148, 149, 150, 3, 5, 3, 5, 3, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 6, 176, - 1078, 168, 6, 6, 6, 6, 6, 6, 174, 1087, - 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, - 1098, 6, 83, 176, 172, 172, 177, 173, 1106, 160, - 161, 172, 176, 173, 6, 172, 167, 6, 173, 172, - 171, 3, 4, 174, 172, 172, 172, 9, 10, 11, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 176, + 176, 176, 173, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 162, + 163, 3, 4, 5, 173, 7, 1240, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 1147, - 146, 147, 148, 149, 150, 173, 173, 172, 172, 172, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 172, - 3, 4, 168, 172, 172, 1173, 9, 10, 11, 12, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 173, + 32, 173, 176, 162, 163, 162, 163, 162, 163, 162, + 163, 155, 162, 163, 158, 273, 274, 174, 173, 42, + 164, 176, 38, 281, 162, 163, 284, 162, 163, 38, + 288, 173, 162, 163, 292, 293, 294, 173, 296, 297, + 298, 299, 300, 301, 302, 175, 173, 154, 155, 156, + 157, 38, 154, 155, 156, 157, 314, 315, 316, 1182, + 1183, 1184, 1185, 173, 171, 172, 1189, 173, 326, 171, + 172, 174, 175, 173, 332, 3, 4, 5, 176, 6, + 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 34, 35, 36, 37, 38, 39, 40, + 41, 176, 43, 173, 45, 46, 176, 48, 49, 176, + 162, 163, 154, 155, 156, 157, 174, 171, 172, 177, + 162, 163, 174, 64, 1257, 1258, 38, 169, 1261, 171, + 172, 173, 162, 163, 174, 175, 178, 78, 79, 164, + 165, 166, 174, 175, 174, 170, 414, 415, 416, 417, + 418, 0, 1, 421, 3, 309, 310, 425, 174, 0, + 1, 177, 3, 162, 163, 176, 320, 34, 162, 163, + 37, 38, 6, 441, 174, 174, 5, 177, 446, 1312, + 174, 8, 173, 162, 163, 164, 165, 166, 173, 457, + 458, 170, 98, 99, 100, 101, 102, 138, 466, 151, + 152, 174, 174, 175, 177, 473, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 483, 484, 174, 170, 174, + 177, 489, 177, 174, 162, 163, 177, 174, 6, 1362, + 177, 169, 4, 501, 174, 173, 177, 177, 176, 4, + 508, 509, 510, 511, 53, 54, 55, 56, 6, 58, + 174, 174, 174, 177, 177, 177, 174, 38, 1391, 177, + 414, 415, 416, 833, 113, 114, 115, 116, 117, 118, + 119, 120, 113, 114, 115, 116, 117, 118, 119, 120, + 548, 51, 52, 178, 552, 553, 554, 171, 172, 5, + 139, 140, 50, 142, 174, 173, 173, 177, 173, 173, + 454, 173, 173, 173, 173, 173, 6, 681, 173, 173, + 173, 173, 580, 581, 173, 173, 173, 173, 173, 173, + 173, 148, 149, 150, 151, 152, 173, 173, 173, 597, + 6, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 6, 5, 173, 170, 176, 1478, 176, 173, 173, 142, + 177, 173, 176, 173, 147, 173, 173, 173, 173, 8, + 86, 6, 173, 176, 178, 633, 634, 170, 636, 176, + 176, 173, 173, 173, 173, 173, 169, 173, 173, 173, + 173, 174, 650, 651, 173, 6, 173, 173, 173, 173, + 148, 149, 150, 151, 152, 5, 173, 173, 173, 553, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 173, + 3, 4, 170, 173, 173, 569, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 1008, 173, + 173, 709, 173, 173, 173, 173, 173, 179, 6, 603, + 604, 605, 173, 173, 722, 173, 724, 725, 173, 5, + 174, 178, 175, 174, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 7, 7, 7, 7, + 82, 176, 179, 751, 752, 5, 754, 5, 131, 6, + 5, 5, 760, 5, 5, 5, 5, 5, 652, 148, + 149, 150, 151, 152, 5, 5, 5, 661, 5, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 5, 5, + 5, 170, 896, 5, 5, 5, 175, 148, 149, 150, + 151, 152, 5, 5, 5, 803, 5, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 5, 815, 5, 170, + 5, 5, 820, 821, 3, 148, 149, 150, 151, 152, + 5, 5, 4, 6, 5, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 6, 6, 169, 170, 6, 6, + 173, 7, 7, 176, 7, 853, 854, 7, 6, 6, + 148, 149, 150, 151, 152, 6, 179, 865, 7, 867, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 877, + 7, 7, 170, 177, 177, 176, 884, 885, 886, 176, + 7, 173, 7, 891, 145, 174, 174, 895, 5, 897, + 174, 148, 149, 150, 151, 152, 174, 174, 174, 174, + 908, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 174, 174, 174, 170, 808, 6, 924, 6, 174, 178, + 7, 174, 7, 7, 7, 7, 7, 935, 936, 937, + 938, 939, 940, 941, 942, 943, 944, 945, 946, 174, + 834, 174, 836, 174, 838, 174, 174, 955, 3, 4, + 5, 174, 960, 7, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 174, 7, 174, 7, + 7, 174, 174, 174, 174, 993, 994, 995, 996, 997, + 998, 999, 7, 7, 1002, 1003, 174, 148, 149, 150, + 151, 152, 8, 176, 1012, 1013, 1014, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 175, 7, 174, 170, + 174, 174, 174, 1031, 1032, 6, 174, 174, 173, 173, + 1038, 173, 173, 173, 173, 173, 7, 7, 571, 572, + 1048, 574, 173, 173, 173, 578, 579, 173, 1056, 173, + 3, 141, 3, 1061, 3, 164, 1064, 148, 149, 150, + 151, 152, 3, 5, 3, 3, 6, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 3, 3, 1086, 170, + 3, 3, 3, 3, 3, 3, 3, 1095, 1096, 1097, + 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 993, + 994, 995, 635, 5, 3, 638, 1114, 162, 163, 6, + 178, 6, 6, 6, 169, 6, 6, 176, 173, 6, + 83, 176, 178, 174, 174, 658, 659, 175, 174, 178, + 175, 664, 665, 6, 174, 179, 175, 174, 671, 174, + 673, 174, 148, 149, 150, 151, 152, 1155, 6, 175, + 175, 174, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 174, 174, 174, 170, 174, 174, 700, 175, 702, + 174, 174, 174, 1181, 174, 174, 174, 710, 711, 712, + 175, 174, 715, 716, 717, 718, 719, 720, 721, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 1206, 1207, + 1208, 1209, 1210, 1211, 1212, 1213, 1214, 6, 148, 149, + 150, 151, 152, 6, 1222, 6, 178, 6, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 1235, 141, 1237, + 170, 6, 6, 83, 7, 148, 149, 150, 151, 152, + 4, 3, 3, 6, 3, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 6, 164, 6, 170, 6, 6, + 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, + 1278, 1279, 3, 6, 1282, 148, 149, 150, 151, 152, + 6, 3, 6, 3, 3, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 3, 6, 84, 170, 176, 7, + 4, 177, 1310, 1311, 176, 6, 175, 174, 80, 174, + 174, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, + 1328, 175, 1330, 174, 1332, 174, 174, 860, 1336, 175, + 863, 175, 175, 175, 174, 868, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 175, 174, 178, 170, 6, + 176, 1359, 1360, 83, 887, 6, 1364, 1365, 1366, 1367, + 1368, 1369, 3, 34, 35, 36, 37, 38, 39, 40, + 41, 6, 43, 6, 45, 46, 3, 48, 49, 1387, + 6, 6, 6, 6, 1392, 1393, 1394, 1395, 1396, 1397, + 1398, 1399, 1400, 64, 6, 6, 3, 6, 178, 5, + 178, 6, 6, 4, 6, 5, 177, 78, 79, 176, + 175, 4, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 174, + 1428, 174, 1430, 174, 63, 174, 6, 6, 6, 175, + 174, 6, 175, 174, 174, 174, 6, 6, 6, 6, + 1448, 1449, 1450, 6, 6, 5, 5, 179, 177, 174, + 80, 174, 6, 174, 1462, 1463, 1464, 1465, 1466, 1467, + 175, 175, 174, 176, 174, 6, 5, 138, 174, 174, + 5, 1479, 1480, 1481, 1482, 6, 1484, 176, 1486, 176, + 175, 177, 176, 174, 174, 178, 175, 6, 80, 177, + 177, 6, 6, 84, 6, 6, 6, 6, 1506, 1507, + 1508, 1034, 176, 147, 1037, 174, 177, 1515, 174, 1517, + 174, 1519, 174, 176, 6, 176, 176, 175, 174, 6, + 3, 4, 6, 176, 6, 1058, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 173, 6, - 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 6, - 172, 172, 172, 172, 6, 173, 1214, 6, 172, 172, - 6, 6, 146, 147, 148, 149, 150, 6, 6, 1227, - 6, 1229, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 6, 6, 176, 168, 6, 6, 6, 83, 7, - 4, 3, 3, 6, 162, 84, 6, 6, 6, 3, - 6, 3, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, - 1268, 1269, 1270, 1271, 6, 6, 1274, 3, 160, 161, - 3, 6, 3, 3, 6, 167, 174, 4, 7, 171, - 175, 174, 174, 80, 6, 173, 172, 172, 172, 176, - 173, 172, 172, 172, 1302, 1303, 173, 173, 173, 173, - 172, 6, 173, 1311, 1312, 1313, 1314, 1315, 1316, 1317, - 1318, 1319, 1320, 172, 1322, 6, 1324, 160, 161, 174, - 1328, 3, 6, 6, 167, 3, 83, 176, 171, 6, - 6, 6, 6, 6, 6, 3, 6, 6, 5, 176, - 6, 4, 175, 1351, 1352, 5, 174, 6, 1356, 1357, - 1358, 1359, 1360, 1361, 172, 34, 35, 36, 37, 38, - 39, 40, 41, 172, 43, 173, 45, 46, 172, 48, - 49, 1379, 172, 4, 63, 173, 1384, 1385, 1386, 1387, - 1388, 1389, 1390, 1391, 1392, 64, 173, 172, 172, 172, - 6, 6, 172, 6, 6, 6, 6, 6, 6, 78, - 79, 6, 6, 5, 1412, 1413, 1414, 1415, 1416, 1417, - 1418, 177, 1420, 5, 1422, 80, 6, 563, 564, 172, - 566, 172, 172, 6, 570, 571, 175, 173, 173, 172, - 174, 5, 1440, 1441, 1442, 172, 174, 5, 172, 6, - 80, 6, 6, 84, 172, 6, 1454, 1455, 1456, 1457, - 1458, 1459, 175, 174, 174, 172, 6, 136, 172, 175, - 173, 173, 6, 1471, 1472, 1473, 1474, 176, 1476, 175, - 1478, 6, 6, 6, 174, 172, 172, 172, 172, 6, - 6, 627, 174, 145, 630, 6, 174, 174, 173, 6, - 1498, 1499, 1500, 6, 6, 6, 175, 6, 6, 1507, - 6, 1509, 173, 1511, 650, 651, 6, 6, 172, 6, - 656, 657, 6, 174, 3, 4, 172, 663, 172, 665, + 23, 24, 25, 26, 27, 28, 29, 30, 6, 6, + 6, 6, 6, 174, 3, 4, 174, 176, 174, 1092, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 174, 6, 174, 172, 692, 0, 694, 174, - 174, 174, 0, 599, 6, 6, 702, 703, 704, 6, - 1196, 707, 708, 709, 710, 711, 712, 713, 3, 4, - 850, -1, -1, -1, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 146, 147, 148, 149, - 150, 6, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 573, -1, -1, 168, 146, - 147, 148, 149, 150, 6, -1, -1, -1, -1, 156, - 157, 158, 159, 160, 161, 162, 163, 164, -1, -1, - -1, 168, -1, -1, -1, -1, -1, 6, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 146, 147, 148, - 149, 150, -1, -1, -1, -1, -1, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 6, -1, 167, 168, - -1, -1, 171, 146, 147, 148, 149, 150, -1, -1, - -1, -1, -1, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 6, -1, -1, 168, 852, -1, -1, 855, - -1, -1, -1, -1, 860, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 160, 161, -1, -1, -1, - -1, -1, 167, 879, 6, -1, 171, -1, -1, -1, - -1, 146, 147, 148, 149, 150, -1, -1, -1, -1, - -1, 156, 157, 158, 159, 160, 161, 162, 163, 164, - -1, -1, -1, 168, 146, 147, 148, 149, 150, 6, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, 146, 147, 148, - 149, 150, 6, -1, -1, -1, -1, 156, 157, 158, - 159, 160, 161, 162, 163, 164, -1, -1, -1, 168, - -1, -1, -1, -1, -1, 6, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, 6, - -1, -1, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, 6, -1, -1, -1, -1, - -1, -1, -1, -1, 146, 147, 148, 149, 150, -1, - 1026, -1, -1, 1029, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - -1, -1, 6, -1, 1050, -1, -1, -1, -1, 146, - 147, 148, 149, 150, -1, -1, -1, -1, -1, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 6, -1, - -1, 168, 146, 147, 148, 149, 150, -1, 1084, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, 6, -1, 168, 146, 147, 148, 149, 150, - -1, -1, -1, -1, -1, 156, 157, 158, 159, 160, - 161, 162, 163, 164, -1, 6, -1, 168, -1, 146, - 147, 148, 149, 150, -1, -1, -1, -1, -1, 156, - 157, 158, 159, 160, 161, 162, 163, 164, -1, -1, - 8, 168, -1, -1, -1, 146, 147, 148, 149, 150, - -1, -1, -1, -1, -1, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 1170, 1171, 8, 168, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 146, 147, 148, 149, 150, -1, -1, -1, - 8, 1197, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, 146, 147, - 148, 149, 150, 8, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, 146, 147, 148, 149, 150, -1, -1, 8, - 1246, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, 1259, 168, 146, 147, 148, 149, 150, - -1, -1, -1, -1, -1, 156, 157, 158, 159, 160, - 161, 162, 163, 164, -1, -1, -1, 168, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, 1305, - 168, -1, -1, -1, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, 1355, - 168, 146, 147, 148, 149, 150, -1, -1, -1, -1, - -1, 156, 157, 158, 159, 160, 161, 162, 163, 164, - -1, -1, -1, 168, -1, -1, 1382, 146, 147, 148, - 149, 150, -1, -1, -1, -1, -1, 156, 157, 158, - 159, 160, 161, 162, 163, 164, -1, -1, -1, 168, - -1, -1, -1, -1, 1410, 34, 35, 36, 37, 38, - 39, 40, 41, -1, 43, -1, 45, 46, -1, 48, - 49, 0, 1, -1, -1, 4, 146, 147, 148, 149, - 150, -1, -1, 1439, -1, 64, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, 1453, 168, 78, - 79, -1, 31, 173, 33, 34, 35, 36, 37, 38, - 39, 40, 41, -1, 43, 44, 45, 46, 47, 48, - 49, -1, -1, -1, 53, 54, 55, 56, 57, 58, - -1, 60, 61, 62, 63, 64, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 37, -1, -1, 78, - 79, -1, -1, -1, -1, -1, 85, 136, 87, 88, - -1, 90, 91, 92, 34, 35, 36, 37, 38, 39, + 29, 30, 176, 3, 4, 6, 175, 6, 176, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 3, 4, 6, 0, 176, 6, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 176, + 6, 3, 4, 0, 858, 1178, 1179, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 6, + 607, 6, 1205, 6, 1204, 581, -1, -1, -1, 162, + 163, 6, -1, -1, -1, -1, 169, -1, -1, -1, + 173, -1, -1, 176, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 162, 163, -1, 170, 6, -1, -1, + 169, 1254, -1, -1, 173, -1, -1, 176, 148, 149, + 150, 151, 152, -1, 1267, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 6, -1, 169, + 170, -1, -1, 173, 34, 35, 36, 37, 38, 39, 40, 41, -1, 43, -1, 45, 46, -1, 48, 49, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 64, -1, 175, -1, -1, -1, - -1, -1, 93, 94, 95, -1, -1, 136, 78, 79, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - -1, -1, -1, -1, -1, -1, -1, -1, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, 130, - 131, 132, 133, 134, 135, 146, 147, 148, 149, 150, - -1, -1, -1, -1, -1, 156, 157, 158, 159, 160, - 161, 162, 163, 164, -1, -1, 136, 168, 146, 147, - 148, 149, 150, -1, -1, -1, -1, 178, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, 146, 147, 148, 149, 150, -1, -1, -1, -1, - 178, 156, 157, 158, 159, 160, 161, 162, 163, 164, - -1, -1, -1, 168, 146, 147, 148, 149, 150, -1, - -1, -1, -1, 178, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, 146, 147, 148, - 149, 150, -1, -1, -1, -1, 178, 156, 157, 158, - 159, 160, 161, 162, 163, 164, -1, -1, -1, 168, - 146, 147, 148, 149, 150, -1, -1, -1, -1, 178, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, 172, -1, -1, 175, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, 172, -1, -1, 175, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, 172, -1, -1, 175, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, 146, 147, 148, 149, 150, -1, 175, - -1, -1, -1, 156, 157, 158, 159, 160, 161, 162, - 163, 164, -1, -1, -1, 168, 146, 147, 148, 149, - 150, -1, 175, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, 146, - 147, 148, 149, 150, -1, 175, -1, -1, -1, 156, - 157, 158, 159, 160, 161, 162, 163, 164, -1, -1, - -1, 168, 146, 147, 148, 149, 150, -1, 175, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, 146, 147, 148, 149, 150, - -1, 175, -1, -1, -1, 156, 157, 158, 159, 160, - 161, 162, 163, 164, -1, -1, -1, 168, 146, 147, - 148, 149, 150, -1, 175, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, 146, 147, 148, 149, 150, -1, 175, -1, -1, - -1, 156, 157, 158, 159, 160, 161, 162, 163, 164, - -1, -1, -1, 168, 146, 147, 148, 149, 150, -1, - 175, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, 146, 147, 148, - 149, 150, -1, 175, -1, -1, -1, 156, 157, 158, - 159, 160, 161, 162, 163, 164, -1, -1, -1, 168, - 139, -1, -1, -1, -1, -1, 175, 146, 147, 148, - 149, 150, -1, -1, -1, -1, -1, 156, 157, 158, - 159, 160, 161, 162, 163, 164, -1, -1, -1, 168, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, 146, 147, 148, 149, 150, -1, 175, - -1, -1, -1, 156, 157, 158, 159, 160, 161, 162, - 163, 164, -1, -1, -1, 168, 146, 147, 148, 149, - 150, -1, 175, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, 146, - 147, 148, 149, 150, -1, 175, -1, -1, -1, 156, - 157, 158, 159, 160, 161, 162, 163, 164, -1, -1, - -1, 168, 146, 147, 148, 149, 150, -1, 175, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, 146, 147, 148, 149, 150, - -1, 175, -1, -1, -1, 156, 157, 158, 159, 160, - 161, 162, 163, 164, -1, -1, -1, 168, 146, 147, - 148, 149, 150, -1, 175, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, 139, -1, -1, -1, -1, -1, 175, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, 146, 147, 148, 149, 150, -1, -1, -1, -1, - -1, 156, 157, 158, 159, 160, 161, 162, 163, 164, - -1, -1, -1, 168, 146, 147, 148, 149, 150, -1, - 175, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, 146, 147, 148, - 149, 150, -1, 175, -1, -1, -1, 156, 157, 158, - 159, 160, 161, 162, 163, 164, -1, -1, -1, 168, - 146, 147, 148, 149, 150, -1, 175, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, 172, 173, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, -1, 173, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, -1, 173, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - -1, 173, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, -1, 173, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, -1, 173, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, -1, 173, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, -1, 173, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - -1, 173, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, -1, 173, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, -1, 173, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, -1, 173, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, -1, 173, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - -1, 173, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, -1, 173, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, -1, 173, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, -1, 173, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, -1, 173, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - -1, 173, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, -1, 173, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, -1, 173, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, -1, 173, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, -1, 173, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - -1, 173, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, -1, 173, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, -1, 173, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, -1, 173, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, -1, 173, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - -1, 173, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, -1, 173, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, -1, 173, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, -1, 173, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, -1, 173, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - -1, 173, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, -1, 173, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, -1, 173, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, -1, 173, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, -1, 173, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - -1, 173, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, -1, 173, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, -1, 173, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, -1, 173, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, -1, 173, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - -1, 173, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, -1, 173, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, -1, 173, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, -1, 173, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, -1, 173, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - -1, 173, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, -1, 173, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, -1, 173, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, -1, 173, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, -1, 173, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - -1, 173, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, -1, 173, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, -1, 173, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, -1, 173, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, -1, 173, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - -1, 173, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, -1, 173, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, -1, 173, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, -1, 173, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, -1, 173, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - -1, 173, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, 172, 146, - 147, 148, 149, 150, -1, -1, -1, -1, -1, 156, - 157, 158, 159, 160, 161, 162, 163, 164, -1, -1, - -1, 168, -1, -1, -1, 172, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, 172, 146, 147, 148, 149, 150, -1, -1, - -1, -1, -1, 156, 157, 158, 159, 160, 161, 162, - 163, 164, -1, -1, -1, 168, -1, -1, -1, 172, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, 172, 146, 147, 148, - 149, 150, -1, -1, -1, -1, -1, 156, 157, 158, - 159, 160, 161, 162, 163, 164, -1, -1, -1, 168, - 142, -1, -1, 172, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, 146, 147, 148, - 149, 150, -1, -1, -1, -1, -1, 156, 157, 158, - 159, 160, 161, 162, 163, 164, -1, -1, -1, 168, - -1, -1, -1, 172, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - 172, 146, 147, 148, 149, 150, -1, -1, -1, -1, - -1, 156, 157, 158, 159, 160, 161, 162, 163, 164, - -1, -1, -1, 168, -1, -1, -1, 172, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, 172, 146, 147, 148, 149, 150, - -1, -1, -1, -1, -1, 156, 157, 158, 159, 160, - 161, 162, 163, 164, -1, -1, -1, 168, -1, -1, - -1, 172, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, 172, 146, - 147, 148, 149, 150, -1, -1, -1, -1, -1, 156, - 157, 158, 159, 160, 161, 162, 163, 164, -1, -1, - -1, 168, -1, -1, -1, 172, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, 172, 146, 147, 148, 149, 150, -1, -1, - -1, -1, -1, 156, 157, 158, 159, 160, 161, 162, - 163, 164, -1, -1, -1, 168, -1, -1, -1, 172, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, 172, 146, 147, 148, - 149, 150, -1, -1, -1, -1, -1, 156, 157, 158, - 159, 160, 161, 162, 163, 164, -1, -1, -1, 168, - -1, -1, -1, 172, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - 172, 146, 147, 148, 149, 150, -1, -1, -1, -1, - -1, 156, 157, 158, 159, 160, 161, 162, 163, 164, - -1, -1, -1, 168, -1, -1, -1, 172, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, 172, 146, 147, 148, 149, 150, - -1, -1, -1, -1, -1, 156, 157, 158, 159, 160, - 161, 162, 163, 164, -1, -1, -1, 168, -1, -1, - -1, 172, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, 172, 146, - 147, 148, 149, 150, -1, -1, -1, -1, -1, 156, - 157, 158, 159, 160, 161, 162, 163, 164, -1, -1, - -1, 168, -1, -1, -1, 172, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, 172, 146, 147, 148, 149, 150, -1, -1, - -1, -1, -1, 156, 157, 158, 159, 160, 161, 162, - 163, 164, -1, -1, -1, 168, -1, -1, -1, 172, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, 172, 146, 147, 148, - 149, 150, -1, -1, -1, -1, -1, 156, 157, 158, - 159, 160, 161, 162, 163, 164, -1, -1, -1, 168, - -1, -1, -1, 172, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - 172, 146, 147, 148, 149, 150, -1, -1, -1, -1, - -1, 156, 157, 158, 159, 160, 161, 162, 163, 164, - -1, -1, -1, 168, -1, -1, -1, 172, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, 172, 146, 147, 148, 149, 150, - -1, -1, -1, -1, -1, 156, 157, 158, 159, 160, - 161, 162, 163, 164, -1, -1, -1, 168, -1, -1, - -1, 172, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, 172, 146, - 147, 148, 149, 150, -1, -1, -1, -1, -1, 156, - 157, 158, 159, 160, 161, 162, 163, 164, -1, -1, - -1, 168, -1, -1, -1, 172, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, 172, 146, 147, 148, 149, 150, -1, -1, - -1, -1, -1, 156, 157, 158, 159, 160, 161, 162, - 163, 164, -1, -1, -1, 168, -1, -1, -1, 172, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, 172, 146, 147, 148, - 149, 150, -1, -1, -1, -1, -1, 156, 157, 158, - 159, 160, 161, 162, 163, 164, -1, -1, -1, 168, - -1, -1, -1, 172, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - 172, 146, 147, 148, 149, 150, -1, -1, -1, -1, - -1, 156, 157, 158, 159, 160, 161, 162, 163, 164, - -1, -1, -1, 168, -1, -1, -1, 172, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, 172, 146, 147, 148, 149, 150, - -1, -1, -1, -1, -1, 156, 157, 158, 159, 160, - 161, 162, 163, 164, -1, -1, -1, 168, -1, -1, - -1, 172, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, 172, 146, - 147, 148, 149, 150, -1, -1, -1, -1, -1, 156, - 157, 158, 159, 160, 161, 162, 163, 164, -1, -1, - -1, 168, -1, -1, -1, 172, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, 172, 146, 147, 148, 149, 150, -1, -1, - -1, -1, -1, 156, 157, 158, 159, 160, 161, 162, - 163, 164, -1, -1, -1, 168, -1, -1, -1, 172, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, 172, 146, 147, 148, - 149, 150, -1, -1, -1, -1, -1, 156, 157, 158, - 159, 160, 161, 162, 163, 164, -1, -1, -1, 168, - -1, -1, -1, 172, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - 172, 146, 147, 148, 149, 150, -1, -1, -1, -1, - -1, 156, 157, 158, 159, 160, 161, 162, 163, 164, - -1, -1, -1, 168, -1, -1, -1, 172, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, 172, 146, 147, 148, 149, 150, - -1, -1, -1, -1, -1, 156, 157, 158, 159, 160, - 161, 162, 163, 164, -1, -1, -1, 168, -1, -1, - -1, 172, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, 172, 146, - 147, 148, 149, 150, -1, -1, -1, -1, -1, 156, - 157, 158, 159, 160, 161, 162, 163, 164, -1, -1, - -1, 168, -1, -1, -1, 172, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, 172, 146, 147, 148, 149, 150, -1, -1, - -1, -1, -1, 156, 157, 158, 159, 160, 161, 162, - 163, 164, -1, -1, -1, 168, -1, -1, -1, 172, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, 172, 146, 147, 148, - 149, 150, -1, -1, -1, -1, -1, 156, 157, 158, - 159, 160, 161, 162, 163, 164, -1, -1, -1, 168, - -1, -1, -1, 172, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - 172, 146, 147, 148, 149, 150, -1, -1, -1, -1, - -1, 156, 157, 158, 159, 160, 161, 162, 163, 164, - -1, -1, -1, 168, -1, -1, -1, 172, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, 172, 146, 147, 148, 149, 150, - -1, -1, -1, -1, -1, 156, 157, 158, 159, 160, - 161, 162, 163, 164, -1, -1, -1, 168, -1, -1, - -1, 172, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, 172, 146, - 147, 148, 149, 150, -1, -1, -1, -1, -1, 156, - 157, 158, 159, 160, 161, 162, 163, 164, -1, -1, - -1, 168, -1, -1, -1, 172, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, 172, 146, 147, 148, 149, 150, -1, -1, - -1, -1, -1, 156, 157, 158, 159, 160, 161, 162, - 163, 164, -1, -1, -1, 168, -1, -1, -1, 172, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, 172, 146, 147, 148, - 149, 150, -1, -1, -1, -1, -1, 156, 157, 158, - 159, 160, 161, 162, 163, 164, -1, -1, -1, 168, - -1, -1, -1, 172, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - 172, 146, 147, 148, 149, 150, -1, -1, -1, -1, - -1, 156, 157, 158, 159, 160, 161, 162, 163, 164, - -1, -1, -1, 168, -1, -1, -1, 172, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, 172, 146, 147, 148, 149, 150, - -1, -1, -1, -1, -1, 156, 157, 158, 159, 160, - 161, 162, 163, 164, -1, -1, -1, 168, -1, -1, - -1, 172, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, 172, 146, - 147, 148, 149, 150, -1, -1, -1, -1, -1, 156, - 157, 158, 159, 160, 161, 162, 163, 164, -1, -1, - -1, 168, -1, -1, -1, 172, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, 172, 146, 147, 148, 149, 150, -1, -1, - -1, -1, -1, 156, 157, 158, 159, 160, 161, 162, - 163, 164, -1, -1, -1, 168, -1, -1, -1, 172, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, 172, 146, 147, 148, - 149, 150, -1, -1, -1, -1, -1, 156, 157, 158, - 159, 160, 161, 162, 163, 164, -1, -1, -1, 168, - -1, -1, -1, 172, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - 172, 146, 147, 148, 149, 150, -1, -1, -1, -1, - -1, 156, 157, 158, 159, 160, 161, 162, 163, 164, - -1, -1, -1, 168, -1, -1, -1, 172, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, 172, 146, 147, 148, 149, 150, - -1, -1, -1, -1, -1, 156, 157, 158, 159, 160, - 161, 162, 163, 164, -1, -1, -1, 168, -1, -1, - -1, 172, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, 172, 146, - 147, 148, 149, 150, -1, -1, -1, -1, -1, 156, - 157, 158, 159, 160, 161, 162, 163, 164, -1, -1, - -1, 168, -1, -1, -1, 172, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, 172, 146, 147, 148, 149, 150, -1, -1, - -1, -1, -1, 156, 157, 158, 159, 160, 161, 162, - 163, 164, -1, -1, -1, 168, -1, -1, -1, 172, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, 172, 146, 147, 148, - 149, 150, -1, -1, -1, -1, -1, 156, 157, 158, - 159, 160, 161, 162, 163, 164, -1, -1, -1, 168, - -1, -1, -1, 172, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - 172, 146, 147, 148, 149, 150, -1, -1, -1, -1, - -1, 156, 157, 158, 159, 160, 161, 162, 163, 164, - -1, -1, -1, 168, -1, -1, -1, 172, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, 172, 146, 147, 148, 149, 150, - -1, -1, -1, -1, -1, 156, 157, 158, 159, 160, - 161, 162, 163, 164, -1, -1, -1, 168, -1, -1, - -1, 172, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, 172, 146, - 147, 148, 149, 150, -1, -1, -1, -1, -1, 156, - 157, 158, 159, 160, 161, 162, 163, 164, -1, -1, - -1, 168, -1, -1, -1, 172, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, 172, 146, 147, 148, 149, 150, -1, -1, - -1, -1, -1, 156, 157, 158, 159, 160, 161, 162, - 163, 164, -1, -1, -1, 168, -1, -1, -1, 172, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, -1, 172, 146, 147, 148, - 149, 150, -1, -1, -1, -1, -1, 156, 157, 158, - 159, 160, 161, 162, 163, 164, -1, -1, -1, 168, - -1, -1, -1, 172, 146, 147, 148, 149, 150, -1, - -1, -1, -1, -1, 156, 157, 158, 159, 160, 161, - 162, 163, 164, -1, -1, -1, 168, -1, -1, -1, - 172, 146, 147, 148, 149, 150, -1, -1, -1, -1, - -1, 156, 157, 158, 159, 160, 161, 162, 163, 164, - -1, -1, -1, 168, -1, -1, -1, 172, 146, 147, - 148, 149, 150, -1, -1, -1, -1, -1, 156, 157, - 158, 159, 160, 161, 162, 163, 164, -1, -1, -1, - 168, -1, -1, -1, 172, 146, 147, 148, 149, 150, - -1, -1, -1, -1, -1, 156, 157, 158, 159, 160, - 161, 162, 163, 164, -1, -1, -1, 168, -1, -1, - -1, 172, 146, 147, 148, 149, 150, -1, -1, -1, - -1, -1, 156, 157, 158, 159, 160, 161, 162, 163, - 164, -1, -1, -1, 168, -1, -1, -1, 172, 146, - 147, 148, 149, 150, -1, -1, -1, -1, -1, 156, - 157, 158, 159, 160, 161, 162, 163, 164, -1, -1, - -1, 168, -1, -1, -1, 172, 146, 147, 148, 149, - 150, -1, -1, -1, -1, -1, 156, 157, 158, 159, - 160, 161, 162, 163, 164, -1, -1, -1, 168, -1, - -1, -1, 172, 146, 147, 148, 149, 150, -1, -1, - -1, -1, -1, 156, 157, 158, 159, 160, 161, 162, - 163, 164, -1, -1, -1, 168, -1, -1, -1, 172, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168, -1, -1, 144, 172, 146, 147, 148, - 149, 150, -1, -1, -1, -1, -1, 156, 157, 158, - 159, 160, 161, 162, 163, 164, -1, -1, -1, 168, - 146, 147, 148, 149, 150, -1, -1, -1, -1, -1, - 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, - -1, -1, 168 + 162, 163, -1, -1, -1, -1, -1, 169, 6, -1, + 1313, 173, -1, -1, 64, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 78, 79, + 162, 163, 6, -1, -1, -1, -1, 169, -1, -1, + -1, 173, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 148, 149, 150, 151, 152, 6, -1, + 1363, -1, -1, 158, 159, 160, 161, 162, 163, 164, + 165, 166, -1, -1, -1, 170, -1, -1, -1, -1, + -1, 6, -1, -1, -1, -1, -1, 1390, 138, 148, + 149, 150, 151, 152, -1, -1, -1, -1, -1, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 6, -1, + -1, 170, -1, -1, -1, 1418, -1, -1, -1, 148, + 149, 150, 151, 152, -1, -1, -1, -1, -1, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 6, -1, + -1, 170, -1, -1, 1447, -1, -1, -1, -1, -1, + 148, 149, 150, 151, 152, -1, -1, -1, 1461, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 6, + -1, -1, 170, -1, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 6, -1, -1, 170, -1, -1, -1, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 6, + -1, -1, 170, 148, 149, 150, 151, 152, -1, -1, + -1, -1, -1, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 6, -1, -1, 170, -1, -1, -1, -1, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 6, + -1, -1, 170, -1, -1, -1, -1, -1, -1, -1, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 6, + -1, -1, 170, -1, -1, -1, -1, -1, -1, -1, + -1, 148, 149, 150, 151, 152, -1, -1, -1, -1, + -1, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 8, -1, -1, 170, -1, 148, 149, 150, 151, 152, + -1, -1, -1, -1, -1, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 8, -1, -1, 170, -1, -1, + -1, 148, 149, 150, 151, 152, -1, -1, -1, -1, + -1, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 8, -1, -1, 170, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 8, -1, -1, 170, -1, -1, -1, + -1, 148, 149, 150, 151, 152, -1, -1, -1, -1, + -1, 158, 159, 160, 161, 162, 163, 164, 165, 166, + -1, -1, -1, 170, -1, -1, -1, -1, -1, -1, + -1, 148, 149, 150, 151, 152, -1, -1, -1, -1, + -1, 158, 159, 160, 161, 162, 163, 164, 165, 166, + -1, -1, -1, 170, -1, -1, -1, -1, -1, -1, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, 148, 149, 150, 151, 152, 0, 1, + -1, -1, 4, 158, 159, 160, 161, 162, 163, 164, + 165, 166, -1, -1, -1, 170, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 31, + -1, 33, 34, 35, 36, 37, 38, 39, 40, 41, + -1, 43, 44, 45, 46, 47, 48, 49, -1, -1, + -1, 53, 54, 55, 56, 57, 58, 37, 60, 61, + 62, 63, 64, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 78, 79, -1, -1, + -1, -1, -1, 85, -1, 87, 88, 89, 90, 141, + 92, 93, 94, -1, -1, -1, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 95, 96, 97, 170, -1, + -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, -1, -1, -1, 138, -1, -1, -1, + -1, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, -1, 132, 133, 134, 135, 136, 137, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, 148, 149, 150, 151, 152, -1, -1, -1, -1, + 180, 158, 159, 160, 161, 162, 163, 164, 165, 166, + -1, -1, -1, 170, 148, 149, 150, 151, 152, -1, + -1, -1, -1, 180, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, 148, 149, 150, + 151, 152, -1, -1, -1, -1, 180, 158, 159, 160, + 161, 162, 163, 164, 165, 166, -1, -1, -1, 170, + 148, 149, 150, 151, 152, -1, -1, -1, -1, 180, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, 148, 149, 150, 151, 152, -1, -1, + -1, -1, 180, 158, 159, 160, 161, 162, 163, 164, + 165, 166, -1, -1, -1, 170, -1, -1, -1, 174, + -1, -1, 177, 148, 149, 150, 151, 152, -1, -1, + -1, -1, -1, 158, 159, 160, 161, 162, 163, 164, + 165, 166, -1, -1, -1, 170, -1, -1, -1, 174, + -1, -1, 177, 148, 149, 150, 151, 152, -1, -1, + -1, -1, -1, 158, 159, 160, 161, 162, 163, 164, + 165, 166, -1, -1, -1, 170, -1, -1, -1, 174, + -1, -1, 177, 148, 149, 150, 151, 152, -1, -1, + -1, -1, -1, 158, 159, 160, 161, 162, 163, 164, + 165, 166, -1, -1, -1, 170, 148, 149, 150, 151, + 152, -1, 177, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, 148, + 149, 150, 151, 152, -1, 177, -1, -1, -1, 158, + 159, 160, 161, 162, 163, 164, 165, 166, -1, -1, + -1, 170, 148, 149, 150, 151, 152, -1, 177, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, 148, 149, 150, 151, 152, + -1, 177, -1, -1, -1, 158, 159, 160, 161, 162, + 163, 164, 165, 166, -1, -1, -1, 170, 148, 149, + 150, 151, 152, -1, 177, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, 148, 149, 150, 151, 152, -1, 177, -1, -1, + -1, 158, 159, 160, 161, 162, 163, 164, 165, 166, + -1, -1, -1, 170, 148, 149, 150, 151, 152, -1, + 177, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, 148, 149, 150, + 151, 152, -1, 177, -1, -1, -1, 158, 159, 160, + 161, 162, 163, 164, 165, 166, -1, -1, -1, 170, + 148, 149, 150, 151, 152, -1, 177, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, 148, 149, 150, 151, 152, -1, 177, + -1, -1, -1, 158, 159, 160, 161, 162, 163, 164, + 165, 166, -1, -1, -1, 170, 148, 149, 150, 151, + 152, -1, 177, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, 148, + 149, 150, 151, 152, -1, 177, -1, -1, -1, 158, + 159, 160, 161, 162, 163, 164, 165, 166, -1, -1, + -1, 170, 148, 149, 150, 151, 152, -1, 177, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, 148, 149, 150, 151, 152, + -1, 177, -1, -1, -1, 158, 159, 160, 161, 162, + 163, 164, 165, 166, -1, -1, -1, 170, 148, 149, + 150, 151, 152, -1, 177, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, 148, 149, 150, 151, 152, -1, 177, -1, -1, + -1, 158, 159, 160, 161, 162, 163, 164, 165, 166, + -1, -1, -1, 170, 148, 149, 150, 151, 152, -1, + 177, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, 148, 149, 150, + 151, 152, -1, 177, -1, -1, -1, 158, 159, 160, + 161, 162, 163, 164, 165, 166, -1, -1, -1, 170, + 148, 149, 150, 151, 152, -1, 177, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, 174, 175, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, -1, 175, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, -1, 175, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + -1, 175, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, -1, 175, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, -1, 175, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, -1, 175, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, -1, 175, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + -1, 175, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, -1, 175, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, -1, 175, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, -1, 175, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, -1, 175, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + -1, 175, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, -1, 175, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, -1, 175, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, -1, 175, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, -1, 175, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + -1, 175, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, -1, 175, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, -1, 175, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, -1, 175, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, -1, 175, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + -1, 175, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, -1, 175, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, -1, 175, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, -1, 175, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, -1, 175, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + -1, 175, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, -1, 175, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, -1, 175, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, -1, 175, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, -1, 175, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + -1, 175, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, -1, 175, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, -1, 175, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, -1, 175, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, -1, 175, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + -1, 175, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, -1, 175, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, -1, 175, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, -1, 175, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, -1, 175, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + -1, 175, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, -1, 175, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, -1, 175, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, -1, 175, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, -1, 175, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + -1, 175, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, -1, 175, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, -1, 175, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, -1, 175, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, -1, 175, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + -1, 175, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, -1, 175, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, -1, 175, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, -1, 175, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, -1, 175, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + -1, 175, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, -1, 175, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, -1, 175, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, -1, 175, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, -1, 175, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + -1, 175, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, -1, 175, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, -1, 175, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, -1, 175, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, 174, 148, 149, 150, 151, 152, -1, -1, + -1, -1, -1, 158, 159, 160, 161, 162, 163, 164, + 165, 166, -1, -1, -1, 170, -1, -1, -1, 174, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, 174, 148, 149, 150, + 151, 152, -1, -1, -1, -1, -1, 158, 159, 160, + 161, 162, 163, 164, 165, 166, -1, -1, -1, 170, + -1, -1, -1, 174, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + 174, 148, 149, 150, 151, 152, -1, -1, -1, -1, + -1, 158, 159, 160, 161, 162, 163, 164, 165, 166, + -1, -1, -1, 170, 144, -1, -1, 174, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, 148, 149, 150, 151, 152, -1, -1, -1, -1, + -1, 158, 159, 160, 161, 162, 163, 164, 165, 166, + -1, -1, -1, 170, -1, -1, -1, 174, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, 174, 148, 149, 150, 151, 152, + -1, -1, -1, -1, -1, 158, 159, 160, 161, 162, + 163, 164, 165, 166, -1, -1, -1, 170, -1, -1, + -1, 174, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, 174, 148, + 149, 150, 151, 152, -1, -1, -1, -1, -1, 158, + 159, 160, 161, 162, 163, 164, 165, 166, -1, -1, + -1, 170, -1, -1, -1, 174, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, 174, 148, 149, 150, 151, 152, -1, -1, + -1, -1, -1, 158, 159, 160, 161, 162, 163, 164, + 165, 166, -1, -1, -1, 170, -1, -1, -1, 174, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, 174, 148, 149, 150, + 151, 152, -1, -1, -1, -1, -1, 158, 159, 160, + 161, 162, 163, 164, 165, 166, -1, -1, -1, 170, + -1, -1, -1, 174, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + 174, 148, 149, 150, 151, 152, -1, -1, -1, -1, + -1, 158, 159, 160, 161, 162, 163, 164, 165, 166, + -1, -1, -1, 170, -1, -1, -1, 174, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, 174, 148, 149, 150, 151, 152, + -1, -1, -1, -1, -1, 158, 159, 160, 161, 162, + 163, 164, 165, 166, -1, -1, -1, 170, -1, -1, + -1, 174, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, 174, 148, + 149, 150, 151, 152, -1, -1, -1, -1, -1, 158, + 159, 160, 161, 162, 163, 164, 165, 166, -1, -1, + -1, 170, -1, -1, -1, 174, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, 174, 148, 149, 150, 151, 152, -1, -1, + -1, -1, -1, 158, 159, 160, 161, 162, 163, 164, + 165, 166, -1, -1, -1, 170, -1, -1, -1, 174, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, 174, 148, 149, 150, + 151, 152, -1, -1, -1, -1, -1, 158, 159, 160, + 161, 162, 163, 164, 165, 166, -1, -1, -1, 170, + -1, -1, -1, 174, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + 174, 148, 149, 150, 151, 152, -1, -1, -1, -1, + -1, 158, 159, 160, 161, 162, 163, 164, 165, 166, + -1, -1, -1, 170, -1, -1, -1, 174, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, 174, 148, 149, 150, 151, 152, + -1, -1, -1, -1, -1, 158, 159, 160, 161, 162, + 163, 164, 165, 166, -1, -1, -1, 170, -1, -1, + -1, 174, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, 174, 148, + 149, 150, 151, 152, -1, -1, -1, -1, -1, 158, + 159, 160, 161, 162, 163, 164, 165, 166, -1, -1, + -1, 170, -1, -1, -1, 174, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, 174, 148, 149, 150, 151, 152, -1, -1, + -1, -1, -1, 158, 159, 160, 161, 162, 163, 164, + 165, 166, -1, -1, -1, 170, -1, -1, -1, 174, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, 174, 148, 149, 150, + 151, 152, -1, -1, -1, -1, -1, 158, 159, 160, + 161, 162, 163, 164, 165, 166, -1, -1, -1, 170, + -1, -1, -1, 174, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + 174, 148, 149, 150, 151, 152, -1, -1, -1, -1, + -1, 158, 159, 160, 161, 162, 163, 164, 165, 166, + -1, -1, -1, 170, -1, -1, -1, 174, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, 174, 148, 149, 150, 151, 152, + -1, -1, -1, -1, -1, 158, 159, 160, 161, 162, + 163, 164, 165, 166, -1, -1, -1, 170, -1, -1, + -1, 174, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, 174, 148, + 149, 150, 151, 152, -1, -1, -1, -1, -1, 158, + 159, 160, 161, 162, 163, 164, 165, 166, -1, -1, + -1, 170, -1, -1, -1, 174, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, 174, 148, 149, 150, 151, 152, -1, -1, + -1, -1, -1, 158, 159, 160, 161, 162, 163, 164, + 165, 166, -1, -1, -1, 170, -1, -1, -1, 174, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, 174, 148, 149, 150, + 151, 152, -1, -1, -1, -1, -1, 158, 159, 160, + 161, 162, 163, 164, 165, 166, -1, -1, -1, 170, + -1, -1, -1, 174, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + 174, 148, 149, 150, 151, 152, -1, -1, -1, -1, + -1, 158, 159, 160, 161, 162, 163, 164, 165, 166, + -1, -1, -1, 170, -1, -1, -1, 174, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, 174, 148, 149, 150, 151, 152, + -1, -1, -1, -1, -1, 158, 159, 160, 161, 162, + 163, 164, 165, 166, -1, -1, -1, 170, -1, -1, + -1, 174, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, 174, 148, + 149, 150, 151, 152, -1, -1, -1, -1, -1, 158, + 159, 160, 161, 162, 163, 164, 165, 166, -1, -1, + -1, 170, -1, -1, -1, 174, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, 174, 148, 149, 150, 151, 152, -1, -1, + -1, -1, -1, 158, 159, 160, 161, 162, 163, 164, + 165, 166, -1, -1, -1, 170, -1, -1, -1, 174, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, 174, 148, 149, 150, + 151, 152, -1, -1, -1, -1, -1, 158, 159, 160, + 161, 162, 163, 164, 165, 166, -1, -1, -1, 170, + -1, -1, -1, 174, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + 174, 148, 149, 150, 151, 152, -1, -1, -1, -1, + -1, 158, 159, 160, 161, 162, 163, 164, 165, 166, + -1, -1, -1, 170, -1, -1, -1, 174, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, 174, 148, 149, 150, 151, 152, + -1, -1, -1, -1, -1, 158, 159, 160, 161, 162, + 163, 164, 165, 166, -1, -1, -1, 170, -1, -1, + -1, 174, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, 174, 148, + 149, 150, 151, 152, -1, -1, -1, -1, -1, 158, + 159, 160, 161, 162, 163, 164, 165, 166, -1, -1, + -1, 170, -1, -1, -1, 174, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, 174, 148, 149, 150, 151, 152, -1, -1, + -1, -1, -1, 158, 159, 160, 161, 162, 163, 164, + 165, 166, -1, -1, -1, 170, -1, -1, -1, 174, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, 174, 148, 149, 150, + 151, 152, -1, -1, -1, -1, -1, 158, 159, 160, + 161, 162, 163, 164, 165, 166, -1, -1, -1, 170, + -1, -1, -1, 174, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + 174, 148, 149, 150, 151, 152, -1, -1, -1, -1, + -1, 158, 159, 160, 161, 162, 163, 164, 165, 166, + -1, -1, -1, 170, -1, -1, -1, 174, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, 174, 148, 149, 150, 151, 152, + -1, -1, -1, -1, -1, 158, 159, 160, 161, 162, + 163, 164, 165, 166, -1, -1, -1, 170, -1, -1, + -1, 174, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, 174, 148, + 149, 150, 151, 152, -1, -1, -1, -1, -1, 158, + 159, 160, 161, 162, 163, 164, 165, 166, -1, -1, + -1, 170, -1, -1, -1, 174, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, 174, 148, 149, 150, 151, 152, -1, -1, + -1, -1, -1, 158, 159, 160, 161, 162, 163, 164, + 165, 166, -1, -1, -1, 170, -1, -1, -1, 174, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, 174, 148, 149, 150, + 151, 152, -1, -1, -1, -1, -1, 158, 159, 160, + 161, 162, 163, 164, 165, 166, -1, -1, -1, 170, + -1, -1, -1, 174, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + 174, 148, 149, 150, 151, 152, -1, -1, -1, -1, + -1, 158, 159, 160, 161, 162, 163, 164, 165, 166, + -1, -1, -1, 170, -1, -1, -1, 174, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, 174, 148, 149, 150, 151, 152, + -1, -1, -1, -1, -1, 158, 159, 160, 161, 162, + 163, 164, 165, 166, -1, -1, -1, 170, -1, -1, + -1, 174, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, 174, 148, + 149, 150, 151, 152, -1, -1, -1, -1, -1, 158, + 159, 160, 161, 162, 163, 164, 165, 166, -1, -1, + -1, 170, -1, -1, -1, 174, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, 174, 148, 149, 150, 151, 152, -1, -1, + -1, -1, -1, 158, 159, 160, 161, 162, 163, 164, + 165, 166, -1, -1, -1, 170, -1, -1, -1, 174, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, 174, 148, 149, 150, + 151, 152, -1, -1, -1, -1, -1, 158, 159, 160, + 161, 162, 163, 164, 165, 166, -1, -1, -1, 170, + -1, -1, -1, 174, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + 174, 148, 149, 150, 151, 152, -1, -1, -1, -1, + -1, 158, 159, 160, 161, 162, 163, 164, 165, 166, + -1, -1, -1, 170, -1, -1, -1, 174, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, 174, 148, 149, 150, 151, 152, + -1, -1, -1, -1, -1, 158, 159, 160, 161, 162, + 163, 164, 165, 166, -1, -1, -1, 170, -1, -1, + -1, 174, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, 174, 148, + 149, 150, 151, 152, -1, -1, -1, -1, -1, 158, + 159, 160, 161, 162, 163, 164, 165, 166, -1, -1, + -1, 170, -1, -1, -1, 174, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, 174, 148, 149, 150, 151, 152, -1, -1, + -1, -1, -1, 158, 159, 160, 161, 162, 163, 164, + 165, 166, -1, -1, -1, 170, -1, -1, -1, 174, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, 174, 148, 149, 150, + 151, 152, -1, -1, -1, -1, -1, 158, 159, 160, + 161, 162, 163, 164, 165, 166, -1, -1, -1, 170, + -1, -1, -1, 174, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, -1, + 174, 148, 149, 150, 151, 152, -1, -1, -1, -1, + -1, 158, 159, 160, 161, 162, 163, 164, 165, 166, + -1, -1, -1, 170, -1, -1, -1, 174, 148, 149, + 150, 151, 152, -1, -1, -1, -1, -1, 158, 159, + 160, 161, 162, 163, 164, 165, 166, -1, -1, -1, + 170, -1, -1, -1, 174, 148, 149, 150, 151, 152, + -1, -1, -1, -1, -1, 158, 159, 160, 161, 162, + 163, 164, 165, 166, -1, -1, -1, 170, -1, -1, + -1, 174, 148, 149, 150, 151, 152, -1, -1, -1, + -1, -1, 158, 159, 160, 161, 162, 163, 164, 165, + 166, -1, -1, -1, 170, -1, -1, -1, 174, 148, + 149, 150, 151, 152, -1, -1, -1, -1, -1, 158, + 159, 160, 161, 162, 163, 164, 165, 166, -1, -1, + -1, 170, -1, -1, -1, 174, 148, 149, 150, 151, + 152, -1, -1, -1, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, -1, -1, -1, 170, -1, + -1, -1, 174, 148, 149, 150, 151, 152, -1, -1, + -1, -1, -1, 158, 159, 160, 161, 162, 163, 164, + 165, 166, -1, -1, -1, 170, -1, -1, -1, 174, + 148, 149, 150, 151, 152, -1, -1, -1, -1, -1, + 158, 159, 160, 161, 162, 163, 164, 165, 166, -1, + -1, -1, 170, -1, -1, -1, 174, 148, 149, 150, + 151, 152, -1, -1, -1, -1, -1, 158, 159, 160, + 161, 162, 163, 164, 165, 166, -1, -1, -1, 170, + -1, -1, -1, 174, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170, -1, -1, 146, + 174, 148, 149, 150, 151, 152, -1, -1, -1, -1, + -1, 158, 159, 160, 161, 162, 163, 164, 165, 166, + -1, -1, -1, 170, 148, 149, 150, 151, 152, -1, + -1, -1, -1, -1, 158, 159, 160, 161, 162, 163, + 164, 165, 166, -1, -1, -1, 170 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/lib/bison.simple" @@ -3185,7 +3198,7 @@ yyreduce: switch (yyn) { case 4: -#line 156 "Gmsh.y" +#line 157 "Gmsh.y" { Msg(PARSER_INFO,"STL File Format"); STL_Surf = Create_Surface(1,MSH_SURF_STL,1); @@ -3194,7 +3207,7 @@ case 4: ; break;} case 5: -#line 170 "Gmsh.y" +#line 171 "Gmsh.y" { STL_Surf->STL->Add_Facet( yyvsp[-12].d, yyvsp[-11].d, yyvsp[-10].d, yyvsp[-8].d, yyvsp[-7].d, yyvsp[-6].d, @@ -3203,7 +3216,7 @@ case 5: ; break;} case 6: -#line 177 "Gmsh.y" +#line 178 "Gmsh.y" { Msg(PARSER_INFO,"STL File Format Read"); Tree_Add(THEM->Surfaces, &STL_Surf); @@ -3211,83 +3224,83 @@ case 6: ; break;} case 9: -#line 194 "Gmsh.y" +#line 195 "Gmsh.y" { return 1; ; break;} case 10: -#line 195 "Gmsh.y" +#line 196 "Gmsh.y" { return 1; ; break;} case 11: -#line 196 "Gmsh.y" +#line 197 "Gmsh.y" { return 1; ; break;} case 12: -#line 197 "Gmsh.y" +#line 198 "Gmsh.y" { yyerrok ; return 1; ; break;} case 13: -#line 202 "Gmsh.y" +#line 203 "Gmsh.y" { Msg(PARSER_INFO,"Step Iso-10303-21 File Format"); Create_Step_Solid_BRep(); ; break;} case 14: -#line 207 "Gmsh.y" +#line 208 "Gmsh.y" { Msg(PARSER_INFO,"Step Iso-10303-21 File Format Read"); Resolve_BREP (); ; break;} case 18: -#line 218 "Gmsh.y" +#line 219 "Gmsh.y" { ; break;} case 19: -#line 221 "Gmsh.y" +#line 222 "Gmsh.y" { ; break;} case 20: -#line 225 "Gmsh.y" +#line 226 "Gmsh.y" { ; break;} case 21: -#line 231 "Gmsh.y" +#line 232 "Gmsh.y" { Add_Cartesian_Point((int)yyvsp[-8].d,yyvsp[-4].c,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2]); ; break;} case 22: -#line 237 "Gmsh.y" +#line 238 "Gmsh.y" { Add_BSpline_Curve_With_Knots ((int)yyvsp[-22].d, yyvsp[-18].c, (int) yyvsp[-16].d, yyvsp[-14].l, yyvsp[-6].l, yyvsp[-4].l, 0., 1.); ; break;} case 23: -#line 244 "Gmsh.y" +#line 245 "Gmsh.y" { Add_BSpline_Surface_With_Knots ((int)yyvsp[-30].d, yyvsp[-26].c, (int) yyvsp[-24].d, (int) yyvsp[-22].d, yyvsp[-20].l, yyvsp[-10].l, yyvsp[-8].l, yyvsp[-6].l, yyvsp[-4].l, 0., 1., 0., 1. ); ; break;} case 24: -#line 250 "Gmsh.y" +#line 251 "Gmsh.y" { Add_Edge_Curve ((int)yyvsp[-14].d, yyvsp[-10].c , (int)yyvsp[-8].d , (int)yyvsp[-6].d, (int)yyvsp[-4].d); ; break;} case 25: -#line 254 "Gmsh.y" +#line 255 "Gmsh.y" { Add_Face_Outer_Bound((int)yyvsp[-10].d,yyvsp[-6].c,(int)yyvsp[-4].d,yyvsp[-2].i,1); ; break;} case 26: -#line 258 "Gmsh.y" +#line 259 "Gmsh.y" { /* La je dois voir la norme ! Face_Bound : trou externe a la surface ! */ Msg(PARSER_INFO,"Found a Face Bound"); @@ -3295,366 +3308,372 @@ case 26: ; break;} case 27: -#line 265 "Gmsh.y" +#line 266 "Gmsh.y" { Add_Oriented_Edge((int)yyvsp[-14].d,yyvsp[-10].c,(int)yyvsp[-4].d,yyvsp[-2].i); ; break;} case 28: -#line 269 "Gmsh.y" +#line 270 "Gmsh.y" { Add_Edge_Loop((int)yyvsp[-8].d,yyvsp[-4].c,yyvsp[-2].l); ; break;} case 29: -#line 274 "Gmsh.y" +#line 275 "Gmsh.y" { Add_Advanced_Face((int)yyvsp[-12].d,yyvsp[-8].c,yyvsp[-6].l,(int)yyvsp[-4].d,yyvsp[-2].i); ; break;} case 30: -#line 278 "Gmsh.y" +#line 279 "Gmsh.y" { Add_Vertex_Point((int)yyvsp[-8].d,yyvsp[-4].c,(int)yyvsp[-2].d); ; break;} case 31: -#line 282 "Gmsh.y" +#line 283 "Gmsh.y" { ; break;} case 32: -#line 286 "Gmsh.y" +#line 287 "Gmsh.y" { Add_Axis2_Placement3D ( (int)yyvsp[-12].d, (int)yyvsp[-4].d, (int)yyvsp[-2].d, (int)yyvsp[-6].d); ; break;} case 33: -#line 290 "Gmsh.y" +#line 291 "Gmsh.y" { Add_Direction((int)yyvsp[-8].d , yyvsp[-4].c, yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2]); ; break;} case 34: -#line 294 "Gmsh.y" +#line 295 "Gmsh.y" { Add_Plane((int)yyvsp[-8].d,yyvsp[-4].c,(int)yyvsp[-2].d); ; break;} case 35: -#line 298 "Gmsh.y" +#line 299 "Gmsh.y" { Add_Line ((int)yyvsp[-10].d, yyvsp[-6].c , (int) yyvsp[-4].d, (int)yyvsp[-2].d); ; break;} case 36: -#line 302 "Gmsh.y" +#line 303 "Gmsh.y" { Msg(PARSER_INFO,"Found a Closed shell"); Add_Closed_Shell((int)yyvsp[-8].d, yyvsp[-4].c , yyvsp[-2].l); ; break;} case 37: -#line 308 "Gmsh.y" +#line 309 "Gmsh.y" { ; break;} case 38: -#line 311 "Gmsh.y" +#line 312 "Gmsh.y" { ; break;} case 39: -#line 314 "Gmsh.y" +#line 315 "Gmsh.y" { Add_Cylinder ((int)yyvsp[-10].d, yyvsp[-6].c , (int)yyvsp[-4].d, yyvsp[-2].d); ; break;} case 40: -#line 318 "Gmsh.y" +#line 319 "Gmsh.y" { Add_Cone ((int)yyvsp[-12].d, yyvsp[-8].c , (int)yyvsp[-6].d, yyvsp[-4].d,yyvsp[-2].d); ; break;} case 41: -#line 322 "Gmsh.y" +#line 323 "Gmsh.y" { Add_Torus ((int)yyvsp[-12].d, yyvsp[-8].c , (int)yyvsp[-6].d, yyvsp[-4].d,yyvsp[-2].d); ; break;} case 42: -#line 326 "Gmsh.y" +#line 327 "Gmsh.y" { Add_Circle((int) yyvsp[-10].d, yyvsp[-6].c, (int) yyvsp[-4].d, yyvsp[-2].d); ; break;} case 43: -#line 330 "Gmsh.y" +#line 331 "Gmsh.y" { Add_Ellipsis((int) yyvsp[-12].d, yyvsp[-8].c, (int) yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d); ; break;} case 44: -#line 335 "Gmsh.y" +#line 336 "Gmsh.y" { ; break;} case 45: -#line 338 "Gmsh.y" +#line 339 "Gmsh.y" { ; break;} case 46: -#line 342 "Gmsh.y" +#line 343 "Gmsh.y" { ; break;} case 47: -#line 345 "Gmsh.y" +#line 346 "Gmsh.y" { ; break;} case 48: -#line 349 "Gmsh.y" +#line 350 "Gmsh.y" { ; break;} case 49: -#line 352 "Gmsh.y" +#line 353 "Gmsh.y" { ; break;} case 50: -#line 355 "Gmsh.y" +#line 356 "Gmsh.y" { ; break;} case 51: -#line 365 "Gmsh.y" +#line 366 "Gmsh.y" { ; break;} case 52: -#line 368 "Gmsh.y" +#line 369 "Gmsh.y" { Msg(PARSER_INFO,"Gmsh File Format Read"); ; break;} case 53: -#line 374 "Gmsh.y" +#line 375 "Gmsh.y" { return 1; ; break;} case 54: -#line 375 "Gmsh.y" +#line 376 "Gmsh.y" { return 1; ; break;} case 55: -#line 376 "Gmsh.y" +#line 377 "Gmsh.y" { return 1; ; break;} case 56: -#line 377 "Gmsh.y" +#line 378 "Gmsh.y" { return 1; ; break;} case 57: -#line 378 "Gmsh.y" +#line 379 "Gmsh.y" { return 1; ; break;} case 58: -#line 379 "Gmsh.y" +#line 380 "Gmsh.y" { return 1; ; break;} case 59: -#line 380 "Gmsh.y" +#line 381 "Gmsh.y" { return 1; ; break;} case 60: -#line 381 "Gmsh.y" +#line 382 "Gmsh.y" { return 1; ; break;} case 61: -#line 382 "Gmsh.y" +#line 383 "Gmsh.y" { return 1; ; break;} case 62: -#line 383 "Gmsh.y" +#line 384 "Gmsh.y" { return 1; ; break;} case 63: -#line 384 "Gmsh.y" +#line 385 "Gmsh.y" {return 1;; break;} case 64: -#line 386 "Gmsh.y" +#line 387 "Gmsh.y" { return 1; ; break;} case 65: -#line 387 "Gmsh.y" +#line 388 "Gmsh.y" { yyerrok; return 1;; break;} case 66: -#line 392 "Gmsh.y" +#line 393 "Gmsh.y" { - Msg(PARSER_INFO, yyvsp[-4].c, yyvsp[-2].d); + Msg(PARSER_INFO, yyvsp[-2].c); ; break;} case 67: -#line 403 "Gmsh.y" +#line 397 "Gmsh.y" +{ + Msg(PARSER_INFO, yyvsp[-4].c, yyvsp[-2].d); + ; + break;} +case 68: +#line 408 "Gmsh.y" { EndView(1, Force_ViewNumber,yyname,yyvsp[-4].c,0.,0.,0.); ; break;} -case 68: -#line 407 "Gmsh.y" +case 69: +#line 412 "Gmsh.y" { EndView(1, Force_ViewNumber,yyname,yyvsp[-6].c,yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2]); ; break;} -case 69: -#line 414 "Gmsh.y" +case 70: +#line 419 "Gmsh.y" { BeginView(1); ; break;} -case 82: -#line 433 "Gmsh.y" -{ List_Add(ActualView->SP, &yyvsp[0].d) ; ; - break;} case 83: -#line 435 "Gmsh.y" +#line 438 "Gmsh.y" { List_Add(ActualView->SP, &yyvsp[0].d) ; ; break;} case 84: #line 440 "Gmsh.y" +{ List_Add(ActualView->SP, &yyvsp[0].d) ; ; + break;} +case 85: +#line 445 "Gmsh.y" { List_Add(ActualView->SP, &yyvsp[-5].d); List_Add(ActualView->SP, &yyvsp[-3].d); List_Add(ActualView->SP, &yyvsp[-1].d); ; break;} -case 85: -#line 445 "Gmsh.y" +case 86: +#line 450 "Gmsh.y" { ActualView->NbSP++ ; ; break;} -case 86: -#line 452 "Gmsh.y" -{ List_Add(ActualView->VP, &yyvsp[0].d) ; ; - break;} case 87: -#line 454 "Gmsh.y" +#line 457 "Gmsh.y" { List_Add(ActualView->VP, &yyvsp[0].d) ; ; break;} case 88: #line 459 "Gmsh.y" +{ List_Add(ActualView->VP, &yyvsp[0].d) ; ; + break;} +case 89: +#line 464 "Gmsh.y" { List_Add(ActualView->VP, &yyvsp[-5].d); List_Add(ActualView->VP, &yyvsp[-3].d); List_Add(ActualView->VP, &yyvsp[-1].d); ; break;} -case 89: -#line 464 "Gmsh.y" +case 90: +#line 469 "Gmsh.y" { ActualView->NbVP++ ; ; break;} -case 90: -#line 471 "Gmsh.y" -{ List_Add(ActualView->TP, &yyvsp[0].d) ; ; - break;} case 91: -#line 473 "Gmsh.y" +#line 476 "Gmsh.y" { List_Add(ActualView->TP, &yyvsp[0].d) ; ; break;} case 92: #line 478 "Gmsh.y" +{ List_Add(ActualView->TP, &yyvsp[0].d) ; ; + break;} +case 93: +#line 483 "Gmsh.y" { List_Add(ActualView->TP, &yyvsp[-5].d); List_Add(ActualView->TP, &yyvsp[-3].d); List_Add(ActualView->TP, &yyvsp[-1].d); ; break;} -case 93: -#line 483 "Gmsh.y" +case 94: +#line 488 "Gmsh.y" { ActualView->NbTP++ ; ; break;} -case 94: -#line 490 "Gmsh.y" -{ List_Add(ActualView->SL, &yyvsp[0].d) ; ; - break;} case 95: -#line 492 "Gmsh.y" +#line 495 "Gmsh.y" { List_Add(ActualView->SL, &yyvsp[0].d) ; ; break;} case 96: -#line 498 "Gmsh.y" +#line 497 "Gmsh.y" +{ List_Add(ActualView->SL, &yyvsp[0].d) ; ; + break;} +case 97: +#line 503 "Gmsh.y" { List_Add(ActualView->SL, &yyvsp[-11].d); List_Add(ActualView->SL, &yyvsp[-5].d); List_Add(ActualView->SL, &yyvsp[-9].d); List_Add(ActualView->SL, &yyvsp[-3].d); List_Add(ActualView->SL, &yyvsp[-7].d); List_Add(ActualView->SL, &yyvsp[-1].d); ; break;} -case 97: -#line 504 "Gmsh.y" +case 98: +#line 509 "Gmsh.y" { ActualView->NbSL++ ; ; break;} -case 98: -#line 511 "Gmsh.y" -{ List_Add(ActualView->VL, &yyvsp[0].d) ; ; - break;} case 99: -#line 513 "Gmsh.y" +#line 516 "Gmsh.y" { List_Add(ActualView->VL, &yyvsp[0].d) ; ; break;} case 100: -#line 519 "Gmsh.y" +#line 518 "Gmsh.y" +{ List_Add(ActualView->VL, &yyvsp[0].d) ; ; + break;} +case 101: +#line 524 "Gmsh.y" { List_Add(ActualView->SL, &yyvsp[-11].d); List_Add(ActualView->SL, &yyvsp[-5].d); List_Add(ActualView->SL, &yyvsp[-9].d); List_Add(ActualView->SL, &yyvsp[-3].d); List_Add(ActualView->SL, &yyvsp[-7].d); List_Add(ActualView->SL, &yyvsp[-1].d); ; break;} -case 101: -#line 525 "Gmsh.y" +case 102: +#line 530 "Gmsh.y" { ActualView->NbVL++ ; ; break;} -case 102: -#line 532 "Gmsh.y" -{ List_Add(ActualView->TL, &yyvsp[0].d) ; ; - break;} case 103: -#line 534 "Gmsh.y" +#line 537 "Gmsh.y" { List_Add(ActualView->TL, &yyvsp[0].d) ; ; break;} case 104: -#line 540 "Gmsh.y" +#line 539 "Gmsh.y" +{ List_Add(ActualView->TL, &yyvsp[0].d) ; ; + break;} +case 105: +#line 545 "Gmsh.y" { List_Add(ActualView->SL, &yyvsp[-11].d); List_Add(ActualView->SL, &yyvsp[-5].d); List_Add(ActualView->SL, &yyvsp[-9].d); List_Add(ActualView->SL, &yyvsp[-3].d); List_Add(ActualView->SL, &yyvsp[-7].d); List_Add(ActualView->SL, &yyvsp[-1].d); ; break;} -case 105: -#line 546 "Gmsh.y" +case 106: +#line 551 "Gmsh.y" { ActualView->NbTL++ ; ; break;} -case 106: -#line 553 "Gmsh.y" -{ List_Add(ActualView->ST, &yyvsp[0].d) ; ; - break;} case 107: -#line 555 "Gmsh.y" +#line 558 "Gmsh.y" { List_Add(ActualView->ST, &yyvsp[0].d) ; ; break;} case 108: -#line 562 "Gmsh.y" +#line 560 "Gmsh.y" +{ List_Add(ActualView->ST, &yyvsp[0].d) ; ; + break;} +case 109: +#line 567 "Gmsh.y" { List_Add(ActualView->ST, &yyvsp[-17].d); List_Add(ActualView->ST, &yyvsp[-11].d); List_Add(ActualView->ST, &yyvsp[-5].d); @@ -3664,22 +3683,22 @@ case 108: List_Add(ActualView->ST, &yyvsp[-1].d); ; break;} -case 109: -#line 571 "Gmsh.y" +case 110: +#line 576 "Gmsh.y" { ActualView->NbST++ ; ; break;} -case 110: -#line 578 "Gmsh.y" -{ List_Add(ActualView->VT, &yyvsp[0].d) ; ; - break;} case 111: -#line 580 "Gmsh.y" +#line 583 "Gmsh.y" { List_Add(ActualView->VT, &yyvsp[0].d) ; ; break;} case 112: -#line 587 "Gmsh.y" +#line 585 "Gmsh.y" +{ List_Add(ActualView->VT, &yyvsp[0].d) ; ; + break;} +case 113: +#line 592 "Gmsh.y" { List_Add(ActualView->VT, &yyvsp[-17].d); List_Add(ActualView->VT, &yyvsp[-11].d); List_Add(ActualView->VT, &yyvsp[-5].d); @@ -3689,22 +3708,22 @@ case 112: List_Add(ActualView->VT, &yyvsp[-1].d); ; break;} -case 113: -#line 596 "Gmsh.y" +case 114: +#line 601 "Gmsh.y" { ActualView->NbVT++ ; ; break;} -case 114: -#line 603 "Gmsh.y" -{ List_Add(ActualView->TT, &yyvsp[0].d) ; ; - break;} case 115: -#line 605 "Gmsh.y" +#line 608 "Gmsh.y" { List_Add(ActualView->TT, &yyvsp[0].d) ; ; break;} case 116: -#line 612 "Gmsh.y" +#line 610 "Gmsh.y" +{ List_Add(ActualView->TT, &yyvsp[0].d) ; ; + break;} +case 117: +#line 617 "Gmsh.y" { List_Add(ActualView->TT, &yyvsp[-17].d); List_Add(ActualView->TT, &yyvsp[-11].d); List_Add(ActualView->TT, &yyvsp[-5].d); @@ -3714,22 +3733,22 @@ case 116: List_Add(ActualView->TT, &yyvsp[-1].d); ; break;} -case 117: -#line 621 "Gmsh.y" +case 118: +#line 626 "Gmsh.y" { ActualView->NbTT++ ; ; break;} -case 118: -#line 628 "Gmsh.y" -{ List_Add(ActualView->SS, &yyvsp[0].d) ; ; - break;} case 119: -#line 630 "Gmsh.y" +#line 633 "Gmsh.y" { List_Add(ActualView->SS, &yyvsp[0].d) ; ; break;} case 120: -#line 638 "Gmsh.y" +#line 635 "Gmsh.y" +{ List_Add(ActualView->SS, &yyvsp[0].d) ; ; + break;} +case 121: +#line 643 "Gmsh.y" { List_Add(ActualView->SS, &yyvsp[-23].d); List_Add(ActualView->SS, &yyvsp[-17].d); List_Add(ActualView->SS, &yyvsp[-11].d); List_Add(ActualView->SS, &yyvsp[-5].d); @@ -3739,22 +3758,22 @@ case 120: List_Add(ActualView->SS, &yyvsp[-7].d); List_Add(ActualView->SS, &yyvsp[-1].d); ; break;} -case 121: -#line 647 "Gmsh.y" +case 122: +#line 652 "Gmsh.y" { ActualView->NbSS++ ; ; break;} -case 122: -#line 654 "Gmsh.y" -{ List_Add(ActualView->VS, &yyvsp[0].d) ; ; - break;} case 123: -#line 656 "Gmsh.y" +#line 659 "Gmsh.y" { List_Add(ActualView->VS, &yyvsp[0].d) ; ; break;} case 124: -#line 664 "Gmsh.y" +#line 661 "Gmsh.y" +{ List_Add(ActualView->VS, &yyvsp[0].d) ; ; + break;} +case 125: +#line 669 "Gmsh.y" { List_Add(ActualView->VS, &yyvsp[-23].d); List_Add(ActualView->VS, &yyvsp[-17].d); List_Add(ActualView->VS, &yyvsp[-11].d); List_Add(ActualView->VS, &yyvsp[-5].d); @@ -3764,22 +3783,22 @@ case 124: List_Add(ActualView->VS, &yyvsp[-7].d); List_Add(ActualView->VS, &yyvsp[-1].d); ; break;} -case 125: -#line 673 "Gmsh.y" +case 126: +#line 678 "Gmsh.y" { ActualView->NbVS++ ; ; break;} -case 126: -#line 680 "Gmsh.y" -{ List_Add(ActualView->TS, &yyvsp[0].d) ; ; - break;} case 127: -#line 682 "Gmsh.y" +#line 685 "Gmsh.y" { List_Add(ActualView->TS, &yyvsp[0].d) ; ; break;} case 128: -#line 690 "Gmsh.y" +#line 687 "Gmsh.y" +{ List_Add(ActualView->TS, &yyvsp[0].d) ; ; + break;} +case 129: +#line 695 "Gmsh.y" { List_Add(ActualView->TS, &yyvsp[-23].d); List_Add(ActualView->TS, &yyvsp[-17].d); List_Add(ActualView->TS, &yyvsp[-11].d); List_Add(ActualView->TS, &yyvsp[-5].d); @@ -3789,22 +3808,22 @@ case 128: List_Add(ActualView->TS, &yyvsp[-7].d); List_Add(ActualView->TS, &yyvsp[-1].d); ; break;} -case 129: -#line 699 "Gmsh.y" +case 130: +#line 704 "Gmsh.y" { ActualView->NbTS++ ; ; break;} -case 130: -#line 715 "Gmsh.y" +case 131: +#line 720 "Gmsh.y" { TheSymbol.Name = yyvsp[-3].c; TheSymbol.val = yyvsp[-1].d; List_Replace(Symbol_L,&TheSymbol,CompareSymbols); ; break;} -case 131: -#line 721 "Gmsh.y" +case 132: +#line 726 "Gmsh.y" { TheSymbol.Name = yyvsp[-2].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) @@ -3813,8 +3832,8 @@ case 131: pSymbol->val += 1. ; ; break;} -case 132: -#line 729 "Gmsh.y" +case 133: +#line 734 "Gmsh.y" { TheSymbol.Name = yyvsp[-2].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) @@ -3823,8 +3842,8 @@ case 132: pSymbol->val -= 1. ; ; break;} -case 133: -#line 737 "Gmsh.y" +case 134: +#line 742 "Gmsh.y" { TheSymbol.Name = yyvsp[-3].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) @@ -3833,8 +3852,8 @@ case 133: pSymbol->val += yyvsp[-1].d ; ; break;} -case 134: -#line 745 "Gmsh.y" +case 135: +#line 750 "Gmsh.y" { TheSymbol.Name = yyvsp[-3].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) @@ -3843,8 +3862,8 @@ case 134: pSymbol->val -= yyvsp[-1].d ; ; break;} -case 135: -#line 753 "Gmsh.y" +case 136: +#line 758 "Gmsh.y" { TheSymbol.Name = yyvsp[-3].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) @@ -3853,8 +3872,8 @@ case 135: pSymbol->val *= yyvsp[-1].d ; ; break;} -case 136: -#line 761 "Gmsh.y" +case 137: +#line 766 "Gmsh.y" { TheSymbol.Name = yyvsp[-3].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) @@ -3863,8 +3882,8 @@ case 136: pSymbol->val /= yyvsp[-1].d ; ; break;} -case 137: -#line 772 "Gmsh.y" +case 138: +#line 777 "Gmsh.y" { if(!(pStrCat = Get_StringOptionCategory(yyvsp[-5].c))) vyyerror("Unknown String Option Class '%s'", yyvsp[-5].c); @@ -3877,8 +3896,8 @@ case 137: } ; break;} -case 138: -#line 785 "Gmsh.y" +case 139: +#line 790 "Gmsh.y" { if(strcmp(yyvsp[-10].c, "PostProcessing")) vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); @@ -3894,8 +3913,8 @@ case 138: } ; break;} -case 139: -#line 803 "Gmsh.y" +case 140: +#line 808 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))) vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c); @@ -3913,8 +3932,8 @@ case 139: } ; break;} -case 140: -#line 820 "Gmsh.y" +case 141: +#line 825 "Gmsh.y" { if(strcmp(yyvsp[-10].c, "PostProcessing")) vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); @@ -3935,8 +3954,8 @@ case 140: } ; break;} -case 141: -#line 841 "Gmsh.y" +case 142: +#line 846 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))) vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c); @@ -3954,8 +3973,8 @@ case 141: } ; break;} -case 142: -#line 858 "Gmsh.y" +case 143: +#line 863 "Gmsh.y" { if(strcmp(yyvsp[-10].c, "PostProcessing")) vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); @@ -3976,8 +3995,8 @@ case 142: } ; break;} -case 143: -#line 879 "Gmsh.y" +case 144: +#line 884 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))) vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c); @@ -3995,8 +4014,8 @@ case 143: } ; break;} -case 144: -#line 896 "Gmsh.y" +case 145: +#line 901 "Gmsh.y" { if(strcmp(yyvsp[-10].c, "PostProcessing")) vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); @@ -4017,8 +4036,8 @@ case 144: } ; break;} -case 145: -#line 917 "Gmsh.y" +case 146: +#line 922 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))) vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c); @@ -4036,8 +4055,8 @@ case 145: } ; break;} -case 146: -#line 934 "Gmsh.y" +case 147: +#line 939 "Gmsh.y" { if(strcmp(yyvsp[-10].c, "PostProcessing")) vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); @@ -4058,8 +4077,8 @@ case 146: } ; break;} -case 147: -#line 955 "Gmsh.y" +case 148: +#line 960 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))) vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c); @@ -4077,8 +4096,8 @@ case 147: } ; break;} -case 148: -#line 972 "Gmsh.y" +case 149: +#line 977 "Gmsh.y" { if(strcmp(yyvsp[-10].c, "PostProcessing")) vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); @@ -4099,8 +4118,8 @@ case 148: } ; break;} -case 149: -#line 993 "Gmsh.y" +case 150: +#line 998 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-4].c))) vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-4].c); @@ -4118,8 +4137,8 @@ case 149: } ; break;} -case 150: -#line 1010 "Gmsh.y" +case 151: +#line 1015 "Gmsh.y" { if(strcmp(yyvsp[-10].c, "PostProcessing")) vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); @@ -4140,8 +4159,8 @@ case 150: } ; break;} -case 151: -#line 1031 "Gmsh.y" +case 152: +#line 1036 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-4].c))) vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-4].c); @@ -4159,8 +4178,8 @@ case 151: } ; break;} -case 152: -#line 1048 "Gmsh.y" +case 153: +#line 1053 "Gmsh.y" { if(strcmp(yyvsp[-10].c, "PostProcessing")) vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); @@ -4181,8 +4200,8 @@ case 152: } ; break;} -case 153: -#line 1071 "Gmsh.y" +case 154: +#line 1076 "Gmsh.y" { if(!(pArrCat = Get_ArrayOptionCategory(yyvsp[-5].c))) vyyerror("Unknown Array Option Class '%s'", yyvsp[-5].c); @@ -4208,8 +4227,8 @@ case 153: } ; break;} -case 154: -#line 1096 "Gmsh.y" +case 155: +#line 1101 "Gmsh.y" { if(strcmp(yyvsp[-10].c, "PostProcessing")) vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); @@ -4238,8 +4257,8 @@ case 154: } ; break;} -case 155: -#line 1125 "Gmsh.y" +case 156: +#line 1130 "Gmsh.y" { if(!(pArrCat = Get_ArrayOptionCategory(yyvsp[-5].c))) vyyerror("Unknown Array Option Class '%s'", yyvsp[-5].c); @@ -4265,8 +4284,8 @@ case 155: } ; break;} -case 156: -#line 1150 "Gmsh.y" +case 157: +#line 1155 "Gmsh.y" { if(strcmp(yyvsp[-10].c, "PostProcessing")) vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); @@ -4295,8 +4314,8 @@ case 156: } ; break;} -case 157: -#line 1179 "Gmsh.y" +case 158: +#line 1184 "Gmsh.y" { if(!(pArrCat = Get_ArrayOptionCategory(yyvsp[-5].c))) vyyerror("Unknown Array Option Class '%s'", yyvsp[-5].c); @@ -4322,8 +4341,8 @@ case 157: } ; break;} -case 158: -#line 1204 "Gmsh.y" +case 159: +#line 1209 "Gmsh.y" { if(strcmp(yyvsp[-10].c, "PostProcessing")) vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); @@ -4352,8 +4371,8 @@ case 158: } ; break;} -case 159: -#line 1235 "Gmsh.y" +case 160: +#line 1240 "Gmsh.y" { if(!(pColCat = Get_ColorOptionCategory(yyvsp[-7].c))) vyyerror("Unknown Color Option Class '%s'", yyvsp[-7].c); @@ -4366,8 +4385,8 @@ case 159: } ; break;} -case 160: -#line 1248 "Gmsh.y" +case 161: +#line 1253 "Gmsh.y" { if(strcmp(yyvsp[-10].c, "PostProcessing")) vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); @@ -4386,24 +4405,24 @@ case 160: } ; break;} -case 161: -#line 1277 "Gmsh.y" +case 162: +#line 1282 "Gmsh.y" { Cdbpts101((int)yyvsp[-4].d,yyvsp[-1].v[0],yyvsp[-1].v[1],yyvsp[-1].v[2],yyvsp[-1].v[3],yyvsp[-1].v[4]); yyval.s.Type = MSH_POINT; yyval.s.Num = (int)yyvsp[-4].d; ; break;} -case 162: -#line 1284 "Gmsh.y" +case 163: +#line 1289 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_POINT,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); yyval.s.Type = MSH_PHYSICAL_POINT; yyval.s.Num = (int)yyvsp[-4].d; ; break;} -case 163: -#line 1290 "Gmsh.y" +case 164: +#line 1295 "Gmsh.y" { Vertex *v; Attractor *a; @@ -4423,8 +4442,8 @@ case 163: } ; break;} -case 164: -#line 1309 "Gmsh.y" +case 165: +#line 1314 "Gmsh.y" { for(i=0;i<List_Nbr(yyvsp[-3].l);i++){ List_Read(yyvsp[-3].l,i,&d); @@ -4436,31 +4455,31 @@ case 164: } ; break;} -case 165: -#line 1320 "Gmsh.y" +case 166: +#line 1325 "Gmsh.y" { yyval.s.Type = MSH_POINT; yyval.s.Num = (int)yyvsp[-2].d; ; break;} -case 166: -#line 1328 "Gmsh.y" +case 167: +#line 1333 "Gmsh.y" { Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_LINE,1,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL); yyval.s.Type = MSH_SEGM_LINE; yyval.s.Num = (int)yyvsp[-4].d; ; break;} -case 167: -#line 1334 "Gmsh.y" +case 168: +#line 1339 "Gmsh.y" { Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_SPLN,3,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL); yyval.s.Type = MSH_SEGM_SPLN; yyval.s.Num = (int)yyvsp[-4].d; ; break;} -case 168: -#line 1340 "Gmsh.y" +case 169: +#line 1345 "Gmsh.y" { Curve *c; Attractor *a; @@ -4480,16 +4499,16 @@ case 168: } ; break;} -case 169: -#line 1359 "Gmsh.y" +case 170: +#line 1364 "Gmsh.y" { Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_CIRC,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL); yyval.s.Type = MSH_SEGM_CIRC ; yyval.s.Num = (int)yyvsp[-4].d; ; break;} -case 170: -#line 1365 "Gmsh.y" +case 171: +#line 1370 "Gmsh.y" { List_T *temp; int i,j; @@ -4506,48 +4525,48 @@ case 170: yyval.s.Num = (int)yyvsp[-6].d; ; break;} -case 171: -#line 1382 "Gmsh.y" +case 172: +#line 1387 "Gmsh.y" { Cdbseg101((int)yyvsp[-14].d,MSH_SEGM_PARAMETRIC,2,NULL,NULL,-1,-1,yyvsp[-10].d,yyvsp[-8].d,yyvsp[-6].c,yyvsp[-4].c,yyvsp[-2].c); yyval.s.Type = MSH_SEGM_PARAMETRIC ; yyval.s.Num = (int)yyvsp[-14].d; ; break;} -case 172: -#line 1388 "Gmsh.y" +case 173: +#line 1393 "Gmsh.y" { Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_ELLI,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL); yyval.s.Type = MSH_SEGM_ELLI ; yyval.s.Num = (int)yyvsp[-4].d; ; break;} -case 173: -#line 1394 "Gmsh.y" +case 174: +#line 1399 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_LINE,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); yyval.s.Type = MSH_PHYSICAL_LINE; yyval.s.Num = (int)yyvsp[-4].d; ; break;} -case 174: -#line 1400 "Gmsh.y" +case 175: +#line 1405 "Gmsh.y" { yyval.s.Type = MSH_SEGM_LOOP; Cdbz101((int)yyvsp[-4].d,yyval.s.Type,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); yyval.s.Num = (int)yyvsp[-4].d; ; break;} -case 175: -#line 1406 "Gmsh.y" +case 176: +#line 1411 "Gmsh.y" { Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_BSPLN,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL); yyval.s.Type = MSH_SEGM_BSPLN; yyval.s.Num = (int)yyvsp[-4].d; ; break;} -case 176: -#line 1412 "Gmsh.y" +case 177: +#line 1417 "Gmsh.y" { List_T *Temp; int i; @@ -4567,8 +4586,8 @@ case 176: List_Delete(Temp); ; break;} -case 177: -#line 1431 "Gmsh.y" +case 178: +#line 1436 "Gmsh.y" { yyval.s.Num = (int)yyvsp[-2].d; Curve *c = FindCurve(yyval.s.Num,THEM); @@ -4578,16 +4597,16 @@ case 177: yyval.s.Type = c->Typ; ; break;} -case 178: -#line 1443 "Gmsh.y" +case 179: +#line 1448 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d,MSH_SURF_PLAN,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); yyval.s.Type = MSH_SURF_PLAN; yyval.s.Num = (int)yyvsp[-4].d; ; break;} -case 179: -#line 1449 "Gmsh.y" +case 180: +#line 1454 "Gmsh.y" { Surface *s,*support; support = FindSurface((int)yyvsp[-2].d,THEM); @@ -4607,8 +4626,8 @@ case 179: } ; break;} -case 180: -#line 1468 "Gmsh.y" +case 181: +#line 1473 "Gmsh.y" { List_Read(yyvsp[-1].l,0,&d); i = (int)d; @@ -4630,38 +4649,38 @@ case 180: } ; break;} -case 181: -#line 1491 "Gmsh.y" +case 182: +#line 1496 "Gmsh.y" { CreateNurbsSurface ( (int) yyvsp[-16].d , (int)yyvsp[-4].d , (int)yyvsp[-2].d , yyvsp[-13].l, yyvsp[-10].l, yyvsp[-8].l); yyval.s.Type = MSH_SURF_NURBS; yyval.s.Num = (int)yyvsp[-16].d; ; break;} -case 182: -#line 1499 "Gmsh.y" +case 183: +#line 1504 "Gmsh.y" { CreateNurbsSurfaceSupport ((int)yyvsp[-16].d, (int) yyvsp[-4].d , (int) yyvsp[-2].d , yyvsp[-13].l, yyvsp[-10].l, yyvsp[-8].l); ; break;} -case 183: -#line 1503 "Gmsh.y" +case 184: +#line 1508 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_SURFACE,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); yyval.s.Type = MSH_PHYSICAL_SURFACE; yyval.s.Num = (int)yyvsp[-4].d; ; break;} -case 184: -#line 1509 "Gmsh.y" +case 185: +#line 1514 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d,MSH_SURF_LOOP,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); yyval.s.Type = MSH_SURF_LOOP; yyval.s.Num = (int)yyvsp[-4].d; ; break;} -case 185: -#line 1515 "Gmsh.y" +case 186: +#line 1520 "Gmsh.y" { yyval.s.Num = (int)yyvsp[-2].d; Surface *s = FindSurface(yyval.s.Num,THEM); @@ -4671,85 +4690,85 @@ case 185: yyval.s.Type = s->Typ; ; break;} -case 186: -#line 1527 "Gmsh.y" +case 187: +#line 1532 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d,MSH_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); yyval.s.Type = MSH_VOLUME; yyval.s.Num = (int)yyvsp[-4].d; ; break;} -case 187: -#line 1533 "Gmsh.y" +case 188: +#line 1538 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d,MSH_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); yyval.s.Type = MSH_VOLUME; yyval.s.Num = (int)yyvsp[-4].d; ; break;} -case 188: -#line 1539 "Gmsh.y" +case 189: +#line 1544 "Gmsh.y" { Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); yyval.s.Type = MSH_PHYSICAL_VOLUME; yyval.s.Num = (int)yyvsp[-4].d; ; break;} -case 189: -#line 1552 "Gmsh.y" -{ - TranslateShapes (yyvsp[-3].v[0],yyvsp[-3].v[1],yyvsp[-3].v[2],yyvsp[-1].l,1); - yyval.l = yyvsp[-1].l; - ; - break;} case 190: #line 1557 "Gmsh.y" { - RotateShapes(yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].d,yyvsp[-1].l); + TranslateShapes (yyvsp[-3].v[0],yyvsp[-3].v[1],yyvsp[-3].v[2],yyvsp[-1].l,1); yyval.l = yyvsp[-1].l; ; break;} case 191: #line 1562 "Gmsh.y" { - SymmetryShapes(yyvsp[-3].v[0],yyvsp[-3].v[1],yyvsp[-3].v[2],yyvsp[-3].v[3],yyvsp[-1].l,1); + RotateShapes(yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].d,yyvsp[-1].l); yyval.l = yyvsp[-1].l; ; break;} case 192: #line 1567 "Gmsh.y" { - DilatShapes(yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].d,yyvsp[-1].l,1); + SymmetryShapes(yyvsp[-3].v[0],yyvsp[-3].v[1],yyvsp[-3].v[2],yyvsp[-3].v[3],yyvsp[-1].l,1); yyval.l = yyvsp[-1].l; ; break;} case 193: -#line 1574 "Gmsh.y" -{ yyval.l = yyvsp[0].l; ; +#line 1572 "Gmsh.y" +{ + DilatShapes(yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].d,yyvsp[-1].l,1); + yyval.l = yyvsp[-1].l; + ; break;} case 194: -#line 1575 "Gmsh.y" +#line 1579 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} case 195: -#line 1576 "Gmsh.y" +#line 1580 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} case 196: #line 1581 "Gmsh.y" +{ yyval.l = yyvsp[0].l; ; + break;} +case 197: +#line 1586 "Gmsh.y" { yyval.l = List_Create(3,3,sizeof(Shape)); ; break;} -case 197: -#line 1585 "Gmsh.y" +case 198: +#line 1590 "Gmsh.y" { List_Add(yyval.l,&yyvsp[0].s); yyval.l = yyvsp[-1].l; ; break;} -case 198: -#line 1597 "Gmsh.y" +case 199: +#line 1602 "Gmsh.y" { yyval.l = List_Create(3,3,sizeof(Shape)); for(i=0;i<List_Nbr(yyvsp[-1].l);i++){ @@ -4760,8 +4779,8 @@ case 198: } ; break;} -case 199: -#line 1615 "Gmsh.y" +case 200: +#line 1620 "Gmsh.y" { for(i=0;i<List_Nbr(yyvsp[-1].l);i++){ List_Read (yyvsp[-1].l,i,&TheShape); @@ -4769,8 +4788,8 @@ case 199: } ; break;} -case 200: -#line 1630 "Gmsh.y" +case 201: +#line 1635 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Include")){ @@ -4839,8 +4858,8 @@ case 200: vyyerror("Unknown Command '%s'", yyvsp[-2].c); ; break;} -case 201: -#line 1698 "Gmsh.y" +case 202: +#line 1703 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Sleep")){ @@ -4861,14 +4880,14 @@ case 201: vyyerror("Unknown Command '%s'", yyvsp[-2].c); ; break;} -case 202: -#line 1718 "Gmsh.y" +case 203: +#line 1723 "Gmsh.y" { exit(0); ; break;} -case 203: -#line 1722 "Gmsh.y" +case 204: +#line 1727 "Gmsh.y" { if(!CTX.interactive){ // we're in interactive mode if(Tree_Nbr(THEM->Points) != Last_NumberOfPoints){ @@ -4882,209 +4901,212 @@ case 203: } ; break;} -case 204: -#line 1743 "Gmsh.y" -{ - FILE* ff; - if(RecursionLevel) - ff = yyinTab[RecursionLevel-1]; - else - ff = yyin; - // here, we seek remember the position in yyin - LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d ; - LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d ; - LoopControlVariablesTab[ImbricatedLoop][2] = 1.0 ; - LoopControlVariablesNameTab[ImbricatedLoop] = "" ; - fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); - ; - break;} case 205: -#line 1757 "Gmsh.y" -{ - FILE* ff; - if(RecursionLevel) - ff = yyinTab[RecursionLevel-1]; - else - ff = yyin; - // here, we seek remember the position in yyin - LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d ; - LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d ; - LoopControlVariablesTab[ImbricatedLoop][2] = yyvsp[-1].d ; - LoopControlVariablesNameTab[ImbricatedLoop] = "" ; - fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); - ; +#line 1748 "Gmsh.y" +{ + FILE* ff; + if(RecursionLevel) + ff = yyinTab[RecursionLevel-1]; + else + ff = yyin; + // here, we seek remember the position in yyin + LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d ; + LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d ; + LoopControlVariablesTab[ImbricatedLoop][2] = 1.0 ; + LoopControlVariablesNameTab[ImbricatedLoop] = "" ; + fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); + ; break;} case 206: -#line 1771 "Gmsh.y" -{ - FILE* ff; - if(RecursionLevel) - ff = yyinTab[RecursionLevel-1]; - else - ff = yyin; - // here, we seek remember the position in yyin - LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d ; - LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d ; - LoopControlVariablesTab[ImbricatedLoop][2] = 1.0 ; - LoopControlVariablesNameTab[ImbricatedLoop] = yyvsp[-6].c ; - - TheSymbol.Name = yyvsp[-6].c; - TheSymbol.val = yyvsp[-3].d; - if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) - List_Add(Symbol_L,&TheSymbol); - else - pSymbol->val = yyvsp[-3].d; - - fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); - ; +#line 1762 "Gmsh.y" +{ + FILE* ff; + if(RecursionLevel) + ff = yyinTab[RecursionLevel-1]; + else + ff = yyin; + // here, we seek remember the position in yyin + LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d ; + LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d ; + LoopControlVariablesTab[ImbricatedLoop][2] = yyvsp[-1].d ; + LoopControlVariablesNameTab[ImbricatedLoop] = "" ; + fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); + ; break;} case 207: -#line 1793 "Gmsh.y" -{ - FILE* ff; - if(RecursionLevel) - ff = yyinTab[RecursionLevel-1]; - else - ff = yyin; - // here, we seek remember the position in yyin - LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d ; - LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d ; - LoopControlVariablesTab[ImbricatedLoop][2] = yyvsp[-1].d ; - LoopControlVariablesNameTab[ImbricatedLoop] = yyvsp[-8].c ; - - TheSymbol.Name = yyvsp[-8].c; - TheSymbol.val = yyvsp[-5].d; - if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) - List_Add(Symbol_L,&TheSymbol); - else - pSymbol->val = yyvsp[-5].d; - - fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); - ; +#line 1776 "Gmsh.y" +{ + FILE* ff; + if(RecursionLevel) + ff = yyinTab[RecursionLevel-1]; + else + ff = yyin; + // here, we seek remember the position in yyin + LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d ; + LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d ; + LoopControlVariablesTab[ImbricatedLoop][2] = 1.0 ; + LoopControlVariablesNameTab[ImbricatedLoop] = yyvsp[-6].c ; + + TheSymbol.Name = yyvsp[-6].c; + TheSymbol.val = yyvsp[-3].d; + if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) + List_Add(Symbol_L,&TheSymbol); + else + pSymbol->val = yyvsp[-3].d; + + fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); + ; break;} case 208: -#line 1815 "Gmsh.y" +#line 1798 "Gmsh.y" +{ + FILE* ff; + if(RecursionLevel) + ff = yyinTab[RecursionLevel-1]; + else + ff = yyin; + // here, we seek remember the position in yyin + LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d ; + LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d ; + LoopControlVariablesTab[ImbricatedLoop][2] = yyvsp[-1].d ; + LoopControlVariablesNameTab[ImbricatedLoop] = yyvsp[-8].c ; + + TheSymbol.Name = yyvsp[-8].c; + TheSymbol.val = yyvsp[-5].d; + if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) + List_Add(Symbol_L,&TheSymbol); + else + pSymbol->val = yyvsp[-5].d; + + fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); + ; + break;} +case 209: +#line 1820 "Gmsh.y" { - if(LoopControlVariablesTab[ImbricatedLoop-1][1] > - LoopControlVariablesTab[ImbricatedLoop-1][0]){ + if(LoopControlVariablesTab[ImbricatedLoop-1][1] > + LoopControlVariablesTab[ImbricatedLoop-1][0]){ FILE* ff; if(RecursionLevel) ff = yyinTab[RecursionLevel-1]; else ff = yyin; - - LoopControlVariablesTab[ImbricatedLoop-1][0] += + + LoopControlVariablesTab[ImbricatedLoop-1][0] += LoopControlVariablesTab[ImbricatedLoop-1][2]; - + if(strlen(LoopControlVariablesNameTab[ImbricatedLoop-1])){ TheSymbol.Name = LoopControlVariablesNameTab[ImbricatedLoop-1]; pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols); pSymbol->val += LoopControlVariablesTab[ImbricatedLoop-1][2]; } - - fsetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop-1]); + + fsetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop-1]); } - else - { + else{ ImbricatedLoop--; } - ; + ; break;} -case 209: -#line 1841 "Gmsh.y" +case 210: +#line 1845 "Gmsh.y" { - if(!FunctionManager::Instance()->leaveFunction(&yyin,yylineno)) - { + if(!FunctionManager::Instance()->leaveFunction(&yyin,yylineno)) vyyerror("Error while exiting function"); - } - ; + ; break;} -case 210: -#line 1848 "Gmsh.y" +case 211: +#line 1850 "Gmsh.y" { - if(!FunctionManager::Instance()->enterFunction(yyvsp[-1].c,&yyin,yylineno)) - { + if(!FunctionManager::Instance()->enterFunction(yyvsp[-1].c,&yyin,yylineno)) vyyerror("Unknown Function %s",yyvsp[-1].c); - } - ; + ; break;} -case 211: +case 212: #line 1855 "Gmsh.y" { - // skip everything until return is found - if(!FunctionManager::Instance()->createFunction(yyvsp[0].c,yyin,yylineno)) - { + // skip everything until return is found + if(!FunctionManager::Instance()->createFunction(yyvsp[0].c,yyin,yylineno)) vyyerror("Redefinition of function %s",yyvsp[0].c); - } - void skip_until(char *until); - skip_until("Return"); - ; + skip_until("Return"); + ; break;} -case 212: -#line 1873 "Gmsh.y" +case 213: +#line 1862 "Gmsh.y" +{ + if(!yyvsp[-1].d) skip_until("EndIf"); + ; + break;} +case 214: +#line 1866 "Gmsh.y" +{ + ; + break;} +case 215: +#line 1877 "Gmsh.y" { Curve *pc, *prc; Extrude_ProtudePoint(1,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],0.,0.,0.,0.,&pc,&prc,NULL); ; break;} -case 213: -#line 1878 "Gmsh.y" +case 216: +#line 1882 "Gmsh.y" { Curve *pc, *prc; Extrude_ProtudePoint(0,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d, &pc,&prc,NULL); ; break;} -case 214: -#line 1884 "Gmsh.y" +case 217: +#line 1888 "Gmsh.y" { Extrude_ProtudeCurve(1,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],0.,0.,0.,0.,NULL); ; break;} -case 215: -#line 1888 "Gmsh.y" +case 218: +#line 1892 "Gmsh.y" { Extrude_ProtudeCurve(0,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,NULL); ; break;} -case 216: -#line 1892 "Gmsh.y" +case 219: +#line 1896 "Gmsh.y" { Extrude_ProtudeSurface(1,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],0.,0.,0.,0.,0,NULL); ; break;} -case 217: -#line 1896 "Gmsh.y" +case 220: +#line 1900 "Gmsh.y" { Extrude_ProtudeSurface(0,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,0,NULL); ; break;} -case 218: -#line 1900 "Gmsh.y" +case 221: +#line 1904 "Gmsh.y" { int vol = NEWREG(); Extrude_ProtudeSurface(1,(int)yyvsp[-7].d,yyvsp[-5].v[0],yyvsp[-5].v[1],yyvsp[-5].v[2],0.,0.,0.,0.,vol,&extr); ; break;} -case 219: -#line 1905 "Gmsh.y" +case 222: +#line 1909 "Gmsh.y" { int vol = NEWREG(); Extrude_ProtudeSurface(0,(int)yyvsp[-11].d,yyvsp[-9].v[0],yyvsp[-9].v[1],yyvsp[-9].v[2],yyvsp[-7].v[0],yyvsp[-7].v[1],yyvsp[-7].v[2],yyvsp[-5].d,vol,&extr); ; break;} -case 220: -#line 1913 "Gmsh.y" +case 223: +#line 1917 "Gmsh.y" { ; break;} -case 221: -#line 1916 "Gmsh.y" +case 224: +#line 1920 "Gmsh.y" { ; break;} -case 222: -#line 1922 "Gmsh.y" +case 225: +#line 1926 "Gmsh.y" { double d; int j; @@ -5102,14 +5124,14 @@ case 222: } ; break;} -case 223: -#line 1939 "Gmsh.y" +case 226: +#line 1943 "Gmsh.y" { extr.mesh.Recombine = true; ; break;} -case 224: -#line 1950 "Gmsh.y" +case 227: +#line 1954 "Gmsh.y" { Curve *c; for(i=0;i<List_Nbr(yyvsp[-3].l);i++){ @@ -5127,8 +5149,8 @@ case 224: } ; break;} -case 225: -#line 1967 "Gmsh.y" +case 228: +#line 1971 "Gmsh.y" { Curve *c; for(i=0;i<List_Nbr(yyvsp[-6].l);i++){ @@ -5146,8 +5168,8 @@ case 225: } ; break;} -case 226: -#line 1984 "Gmsh.y" +case 229: +#line 1988 "Gmsh.y" { Curve *c; for(i=0;i<List_Nbr(yyvsp[-6].l);i++){ @@ -5165,8 +5187,8 @@ case 226: } ; break;} -case 227: -#line 2001 "Gmsh.y" +case 230: +#line 2005 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-4].d,THEM); if(!s) @@ -5188,8 +5210,8 @@ case 227: } ; break;} -case 228: -#line 2022 "Gmsh.y" +case 231: +#line 2026 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-4].d,THEM); if(!s) @@ -5210,8 +5232,8 @@ case 228: } ; break;} -case 229: -#line 2042 "Gmsh.y" +case 232: +#line 2046 "Gmsh.y" { Volume *v = FindVolume((int)yyvsp[-4].d,THEM); if(!v) @@ -5232,8 +5254,8 @@ case 229: } ; break;} -case 230: -#line 2062 "Gmsh.y" +case 233: +#line 2066 "Gmsh.y" { Surface *s; for(i=0;i<List_Nbr(yyvsp[-3].l);i++){ @@ -5251,8 +5273,8 @@ case 230: } ; break;} -case 231: -#line 2079 "Gmsh.y" +case 234: +#line 2083 "Gmsh.y" { Surface *s; for(i=0;i<List_Nbr(yyvsp[-1].l);i++){ @@ -5270,206 +5292,206 @@ case 231: } ; break;} -case 232: -#line 2104 "Gmsh.y" +case 235: +#line 2108 "Gmsh.y" { Coherence_PS(); ; break;} -case 233: -#line 2116 "Gmsh.y" +case 236: +#line 2120 "Gmsh.y" {yyval.i = 1;; break;} -case 234: -#line 2117 "Gmsh.y" +case 237: +#line 2121 "Gmsh.y" {yyval.i = 0;; break;} -case 235: -#line 2118 "Gmsh.y" +case 238: +#line 2122 "Gmsh.y" {yyval.i = -1;; break;} -case 236: -#line 2119 "Gmsh.y" +case 239: +#line 2123 "Gmsh.y" {yyval.i = -1;; break;} -case 237: -#line 2120 "Gmsh.y" +case 240: +#line 2124 "Gmsh.y" {yyval.i = -1;; break;} -case 238: -#line 2124 "Gmsh.y" +case 241: +#line 2128 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} -case 239: -#line 2125 "Gmsh.y" +case 242: +#line 2129 "Gmsh.y" { yyval.d = yyvsp[-1].d ; ; break;} -case 240: -#line 2126 "Gmsh.y" +case 243: +#line 2130 "Gmsh.y" { yyval.d = -yyvsp[0].d ; ; break;} -case 241: -#line 2127 "Gmsh.y" +case 244: +#line 2131 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} -case 242: -#line 2128 "Gmsh.y" +case 245: +#line 2132 "Gmsh.y" { yyval.d = !yyvsp[0].d ; ; break;} -case 243: -#line 2129 "Gmsh.y" +case 246: +#line 2133 "Gmsh.y" { yyval.d = yyvsp[-2].d - yyvsp[0].d ; ; break;} -case 244: -#line 2130 "Gmsh.y" +case 247: +#line 2134 "Gmsh.y" { yyval.d = yyvsp[-2].d + yyvsp[0].d ; ; break;} -case 245: -#line 2131 "Gmsh.y" +case 248: +#line 2135 "Gmsh.y" { yyval.d = yyvsp[-2].d * yyvsp[0].d ; ; break;} -case 246: -#line 2132 "Gmsh.y" +case 249: +#line 2136 "Gmsh.y" { yyval.d = yyvsp[-2].d / yyvsp[0].d ; ; break;} -case 247: -#line 2133 "Gmsh.y" +case 250: +#line 2137 "Gmsh.y" { yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d ; ; break;} -case 248: -#line 2134 "Gmsh.y" +case 251: +#line 2138 "Gmsh.y" { yyval.d = pow(yyvsp[-2].d,yyvsp[0].d) ; ; break;} -case 249: -#line 2135 "Gmsh.y" +case 252: +#line 2139 "Gmsh.y" { yyval.d = yyvsp[-2].d < yyvsp[0].d ; ; break;} -case 250: -#line 2136 "Gmsh.y" +case 253: +#line 2140 "Gmsh.y" { yyval.d = yyvsp[-2].d > yyvsp[0].d ; ; break;} -case 251: -#line 2137 "Gmsh.y" +case 254: +#line 2141 "Gmsh.y" { yyval.d = yyvsp[-2].d <= yyvsp[0].d ; ; break;} -case 252: -#line 2138 "Gmsh.y" +case 255: +#line 2142 "Gmsh.y" { yyval.d = yyvsp[-2].d >= yyvsp[0].d ; ; break;} -case 253: -#line 2139 "Gmsh.y" +case 256: +#line 2143 "Gmsh.y" { yyval.d = yyvsp[-2].d == yyvsp[0].d ; ; break;} -case 254: -#line 2140 "Gmsh.y" +case 257: +#line 2144 "Gmsh.y" { yyval.d = yyvsp[-2].d != yyvsp[0].d ; ; break;} -case 255: -#line 2141 "Gmsh.y" +case 258: +#line 2145 "Gmsh.y" { yyval.d = yyvsp[-2].d && yyvsp[0].d ; ; break;} -case 256: -#line 2142 "Gmsh.y" +case 259: +#line 2146 "Gmsh.y" { yyval.d = yyvsp[-2].d || yyvsp[0].d ; ; break;} -case 257: -#line 2143 "Gmsh.y" +case 260: +#line 2147 "Gmsh.y" { yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d ; ; break;} -case 258: -#line 2144 "Gmsh.y" +case 261: +#line 2148 "Gmsh.y" { yyval.d = exp(yyvsp[-1].d); ; break;} -case 259: -#line 2145 "Gmsh.y" +case 262: +#line 2149 "Gmsh.y" { yyval.d = log(yyvsp[-1].d); ; break;} -case 260: -#line 2146 "Gmsh.y" +case 263: +#line 2150 "Gmsh.y" { yyval.d = log10(yyvsp[-1].d); ; break;} -case 261: -#line 2147 "Gmsh.y" +case 264: +#line 2151 "Gmsh.y" { yyval.d = sqrt(yyvsp[-1].d); ; break;} -case 262: -#line 2148 "Gmsh.y" +case 265: +#line 2152 "Gmsh.y" { yyval.d = sin(yyvsp[-1].d); ; break;} -case 263: -#line 2149 "Gmsh.y" +case 266: +#line 2153 "Gmsh.y" { yyval.d = asin(yyvsp[-1].d); ; break;} -case 264: -#line 2150 "Gmsh.y" +case 267: +#line 2154 "Gmsh.y" { yyval.d = cos(yyvsp[-1].d); ; break;} -case 265: -#line 2151 "Gmsh.y" +case 268: +#line 2155 "Gmsh.y" { yyval.d = acos(yyvsp[-1].d); ; break;} -case 266: -#line 2152 "Gmsh.y" +case 269: +#line 2156 "Gmsh.y" { yyval.d = tan(yyvsp[-1].d); ; break;} -case 267: -#line 2153 "Gmsh.y" +case 270: +#line 2157 "Gmsh.y" { yyval.d = atan(yyvsp[-1].d); ; break;} -case 268: -#line 2154 "Gmsh.y" +case 271: +#line 2158 "Gmsh.y" { yyval.d = atan2(yyvsp[-3].d,yyvsp[-1].d); ; break;} -case 269: -#line 2155 "Gmsh.y" +case 272: +#line 2159 "Gmsh.y" { yyval.d = sinh(yyvsp[-1].d); ; break;} -case 270: -#line 2156 "Gmsh.y" +case 273: +#line 2160 "Gmsh.y" { yyval.d = cosh(yyvsp[-1].d); ; break;} -case 271: -#line 2157 "Gmsh.y" +case 274: +#line 2161 "Gmsh.y" { yyval.d = tanh(yyvsp[-1].d); ; break;} -case 272: -#line 2158 "Gmsh.y" +case 275: +#line 2162 "Gmsh.y" { yyval.d = fabs(yyvsp[-1].d); ; break;} -case 273: -#line 2159 "Gmsh.y" +case 276: +#line 2163 "Gmsh.y" { yyval.d = floor(yyvsp[-1].d); ; break;} -case 274: -#line 2160 "Gmsh.y" +case 277: +#line 2164 "Gmsh.y" { yyval.d = ceil(yyvsp[-1].d); ; break;} -case 275: -#line 2161 "Gmsh.y" +case 278: +#line 2165 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d); ; break;} -case 276: -#line 2162 "Gmsh.y" +case 279: +#line 2166 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d); ; break;} -case 277: -#line 2163 "Gmsh.y" +case 280: +#line 2167 "Gmsh.y" { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} -case 278: -#line 2164 "Gmsh.y" +case 281: +#line 2168 "Gmsh.y" { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ; break;} -case 279: -#line 2168 "Gmsh.y" +case 282: +#line 2172 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} -case 280: -#line 2169 "Gmsh.y" +case 283: +#line 2173 "Gmsh.y" { yyval.d = 3.141592653589793; ; break;} -case 281: -#line 2171 "Gmsh.y" +case 284: +#line 2175 "Gmsh.y" { TheSymbol.Name = yyvsp[0].c ; if (!List_Query(Symbol_L, &TheSymbol, CompareSymbols)) { @@ -5479,8 +5501,8 @@ case 281: Free(yyvsp[0].c); ; break;} -case 282: -#line 2180 "Gmsh.y" +case 285: +#line 2184 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-2].c))) vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-2].c); @@ -5498,8 +5520,8 @@ case 282: } ; break;} -case 283: -#line 2197 "Gmsh.y" +case 286: +#line 2201 "Gmsh.y" { if(strcmp(yyvsp[-7].c, "PostProcessing")) vyyerror("Unknown View Option Class '%s'", yyvsp[-7].c); @@ -5520,8 +5542,8 @@ case 283: } ; break;} -case 284: -#line 2218 "Gmsh.y" +case 287: +#line 2222 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-3].c))) vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-3].c); @@ -5539,8 +5561,8 @@ case 284: } ; break;} -case 285: -#line 2235 "Gmsh.y" +case 288: +#line 2239 "Gmsh.y" { if(strcmp(yyvsp[-8].c, "PostProcessing")) vyyerror("Unknown View Option Class '%s'", yyvsp[-8].c); @@ -5561,8 +5583,8 @@ case 285: } ; break;} -case 286: -#line 2256 "Gmsh.y" +case 289: +#line 2260 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-3].c))) vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-3].c); @@ -5580,8 +5602,8 @@ case 286: } ; break;} -case 287: -#line 2273 "Gmsh.y" +case 290: +#line 2277 "Gmsh.y" { if(strcmp(yyvsp[-8].c, "PostProcessing")) vyyerror("Unknown View Option Class '%s'", yyvsp[-8].c); @@ -5602,16 +5624,16 @@ case 287: } ; break;} -case 288: -#line 2296 "Gmsh.y" +case 291: +#line 2300 "Gmsh.y" { ListOfDouble2_L = List_Create(2,1,sizeof(double)) ; for(d=yyvsp[-2].d ; (yyvsp[-2].d<yyvsp[0].d)?(d<=yyvsp[0].d):(d>=yyvsp[0].d) ; (yyvsp[-2].d<yyvsp[0].d)?(d+=1.):(d-=1.)) List_Add(ListOfDouble2_L, &d) ; ; break;} -case 289: -#line 2302 "Gmsh.y" +case 292: +#line 2306 "Gmsh.y" { ListOfDouble2_L = List_Create(2,1,sizeof(double)) ; if(!yyvsp[0].d || (yyvsp[-4].d<yyvsp[-2].d && yyvsp[0].d<0) || (yyvsp[-4].d>yyvsp[-2].d && yyvsp[0].d>0)){ @@ -5623,62 +5645,62 @@ case 289: List_Add(ListOfDouble2_L, &d) ; ; break;} -case 290: -#line 2316 "Gmsh.y" +case 293: +#line 2320 "Gmsh.y" { for(i=0 ; i<6 ; i++) yyval.v[i] = yyvsp[0].v[i]; ; break;} -case 291: -#line 2320 "Gmsh.y" +case 294: +#line 2324 "Gmsh.y" { for(i=0 ; i<6 ; i++) yyval.v[i] = -yyvsp[0].v[i] ; ; break;} -case 292: -#line 2324 "Gmsh.y" +case 295: +#line 2328 "Gmsh.y" { for(i=0 ; i<6 ; i++) yyval.v[i] = yyvsp[0].v[i]; ; break;} -case 293: -#line 2328 "Gmsh.y" +case 296: +#line 2332 "Gmsh.y" { for(i=0 ; i<6 ; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i] ; ; break;} -case 294: -#line 2332 "Gmsh.y" +case 297: +#line 2336 "Gmsh.y" { for(i=0 ; i<6 ; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i] ; ; break;} -case 295: -#line 2338 "Gmsh.y" +case 298: +#line 2342 "Gmsh.y" { yyval.v[0]=yyvsp[-9].d; yyval.v[1]=yyvsp[-7].d; yyval.v[2]=yyvsp[-5].d; yyval.v[3]=yyvsp[-3].d; yyval.v[4]=yyvsp[-1].d; ; break;} -case 296: -#line 2342 "Gmsh.y" +case 299: +#line 2346 "Gmsh.y" { yyval.v[0]=yyvsp[-7].d; yyval.v[1]=yyvsp[-5].d; yyval.v[2]=yyvsp[-3].d; yyval.v[3]=yyvsp[-1].d; yyval.v[4]=1.0; ; break;} -case 297: -#line 2346 "Gmsh.y" +case 300: +#line 2350 "Gmsh.y" { yyval.v[0]=yyvsp[-5].d; yyval.v[1]=yyvsp[-3].d; yyval.v[2]=yyvsp[-1].d; yyval.v[3]=0.0; yyval.v[4]=1.0; ; break;} -case 298: -#line 2350 "Gmsh.y" +case 301: +#line 2354 "Gmsh.y" { yyval.v[0]=yyvsp[-5].d; yyval.v[1]=yyvsp[-3].d; yyval.v[2]=yyvsp[-1].d; yyval.v[3]=0.0; yyval.v[4]=1.0; ; break;} -case 299: -#line 2354 "Gmsh.y" +case 302: +#line 2358 "Gmsh.y" { if(!(pArrCat = Get_ArrayOptionCategory(yyvsp[-2].c))) vyyerror("Unknown Array Option Class '%s'", yyvsp[-2].c); @@ -5705,8 +5727,8 @@ case 299: } ; break;} -case 300: -#line 2380 "Gmsh.y" +case 303: +#line 2384 "Gmsh.y" { if(strcmp(yyvsp[-7].c, "PostProcessing")) vyyerror("Unknown View Option Class '%s'", yyvsp[-7].c); @@ -5737,84 +5759,84 @@ case 300: } ; break;} -case 301: -#line 2413 "Gmsh.y" +case 304: +#line 2417 "Gmsh.y" { ; break;} -case 302: -#line 2416 "Gmsh.y" +case 305: +#line 2420 "Gmsh.y" { ; break;} -case 303: -#line 2422 "Gmsh.y" +case 306: +#line 2426 "Gmsh.y" { ; break;} -case 304: -#line 2425 "Gmsh.y" +case 307: +#line 2429 "Gmsh.y" { ; break;} -case 305: -#line 2431 "Gmsh.y" +case 308: +#line 2435 "Gmsh.y" { ; break;} -case 306: -#line 2434 "Gmsh.y" +case 309: +#line 2438 "Gmsh.y" { yyval.l=ListOfListOfDouble_L; ; break;} -case 307: -#line 2438 "Gmsh.y" +case 310: +#line 2442 "Gmsh.y" { yyval.l=ListOfListOfDouble_L; ; break;} -case 308: -#line 2445 "Gmsh.y" +case 311: +#line 2449 "Gmsh.y" { ListOfListOfDouble_L = List_Create(2,1,sizeof(List_T*)) ; List_Add(ListOfListOfDouble_L, &(yyvsp[0].l)) ; ; break;} -case 309: -#line 2450 "Gmsh.y" +case 312: +#line 2454 "Gmsh.y" { List_Add(ListOfListOfDouble_L, &(yyvsp[0].l)) ; ; break;} -case 310: -#line 2457 "Gmsh.y" +case 313: +#line 2461 "Gmsh.y" { ; break;} -case 311: -#line 2460 "Gmsh.y" +case 314: +#line 2464 "Gmsh.y" { ListOfDouble_L = List_Create(2,1,sizeof(double)) ; List_Add(ListOfDouble_L, &(yyvsp[0].d)) ; yyval.l=ListOfDouble_L; ; break;} -case 312: -#line 2466 "Gmsh.y" +case 315: +#line 2470 "Gmsh.y" { yyval.l=ListOfDouble_L; ; break;} -case 313: -#line 2474 "Gmsh.y" +case 316: +#line 2478 "Gmsh.y" { ListOfDouble_L = List_Create(2,1,sizeof(double)) ; List_Add(ListOfDouble_L, &(yyvsp[0].d)) ; ; break;} -case 314: -#line 2479 "Gmsh.y" +case 317: +#line 2483 "Gmsh.y" { ListOfDouble_L = List_Create(2,1,sizeof(double)) ; for(i=0 ; i<List_Nbr(ListOfDouble2_L) ; i++){ @@ -5824,14 +5846,14 @@ case 314: List_Delete(ListOfDouble2_L); ; break;} -case 315: -#line 2488 "Gmsh.y" +case 318: +#line 2492 "Gmsh.y" { List_Add(ListOfDouble_L, &(yyvsp[0].d)) ; ; break;} -case 316: -#line 2492 "Gmsh.y" +case 319: +#line 2496 "Gmsh.y" { for(i=0 ; i<List_Nbr(ListOfDouble2_L) ; i++){ List_Read(ListOfDouble2_L, i, &d) ; @@ -5840,34 +5862,34 @@ case 316: List_Delete(ListOfDouble2_L); ; break;} -case 317: -#line 2503 "Gmsh.y" +case 320: +#line 2507 "Gmsh.y" { yyval.u = PACK_COLOR((int)yyvsp[-7].d, (int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d); ; break;} -case 318: -#line 2507 "Gmsh.y" +case 321: +#line 2511 "Gmsh.y" { yyval.u = PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255); ; break;} -case 319: -#line 2511 "Gmsh.y" +case 322: +#line 2515 "Gmsh.y" { yyval.u = Get_ColorForString(ColorString, (int)yyvsp[-1].d, yyvsp[-3].c, &flag); if(flag) vyyerror("Unknown Color '%s'", yyvsp[-3].c); ; break;} -case 320: -#line 2516 "Gmsh.y" +case 323: +#line 2520 "Gmsh.y" { yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag); if(flag) vyyerror("Unknown Color '%s'", yyvsp[0].c); ; break;} -case 321: -#line 2521 "Gmsh.y" +case 324: +#line 2525 "Gmsh.y" { if(!(pColCat = Get_ColorOptionCategory(yyvsp[-4].c))) vyyerror("Unknown Color Option Class '%s'", yyvsp[-4].c); @@ -5880,14 +5902,14 @@ case 321: } ; break;} -case 322: -#line 2537 "Gmsh.y" +case 325: +#line 2541 "Gmsh.y" { yyval.l = ListOfColor_L; ; break;} -case 323: -#line 2541 "Gmsh.y" +case 326: +#line 2545 "Gmsh.y" { if(!ListOfColor_L) ListOfColor_L = List_Create(256,10,sizeof(unsigned int)) ; @@ -5907,8 +5929,8 @@ case 323: yyval.l = ListOfColor_L; ; break;} -case 324: -#line 2563 "Gmsh.y" +case 327: +#line 2567 "Gmsh.y" { if(!ListOfColor_L) ListOfColor_L = List_Create(256,10,sizeof(unsigned int)) ; @@ -5917,20 +5939,26 @@ case 324: List_Add(ListOfColor_L, &(yyvsp[0].u)) ; ; break;} -case 325: -#line 2571 "Gmsh.y" +case 328: +#line 2575 "Gmsh.y" { List_Add(ListOfColor_L, &(yyvsp[0].u)) ; ; break;} -case 326: -#line 2578 "Gmsh.y" +case 329: +#line 2582 "Gmsh.y" { yyval.c = yyvsp[0].c; ; break;} -case 327: -#line 2582 "Gmsh.y" +case 330: +#line 2586 "Gmsh.y" +{ + yyval.c = yyvsp[-1].c; + ; + break;} +case 331: +#line 2590 "Gmsh.y" { sprintf(tmpstring, yyvsp[-3].c, yyvsp[-1].d); yyval.c = (char*)Malloc(strlen(tmpstring)); @@ -6159,7 +6187,7 @@ yyerrhandle: } return 1; } -#line 2589 "Gmsh.y" +#line 2597 "Gmsh.y" void InitSymbols(void){ diff --git a/Parser/Gmsh.tab.cpp.h b/Parser/Gmsh.tab.cpp.h index 0d59b9691851a7bbe6ee6aeaa9a119d798a51841..4af43ae30d3184476027b7ec8495c0d718d5f19e 100644 --- a/Parser/Gmsh.tab.cpp.h +++ b/Parser/Gmsh.tab.cpp.h @@ -92,79 +92,81 @@ typedef union { #define tFor 339 #define tIn 340 #define tEndFor 341 -#define tExit 342 -#define tMerge 343 -#define tReturn 344 -#define tCall 345 -#define tFunction 346 -#define tB_SPLINE_SURFACE_WITH_KNOTS 347 -#define tB_SPLINE_CURVE_WITH_KNOTS 348 -#define tCARTESIAN_POINT 349 -#define tTRUE 350 -#define tFALSE 351 -#define tUNSPECIFIED 352 -#define tU 353 -#define tV 354 -#define tEDGE_CURVE 355 -#define tVERTEX_POINT 356 -#define tORIENTED_EDGE 357 -#define tPLANE 358 -#define tFACE_OUTER_BOUND 359 -#define tEDGE_LOOP 360 -#define tADVANCED_FACE 361 -#define tVECTOR 362 -#define tDIRECTION 363 -#define tAXIS2_PLACEMENT_3D 364 -#define tISO 365 -#define tENDISO 366 -#define tENDSEC 367 -#define tDATA 368 -#define tHEADER 369 -#define tFILE_DESCRIPTION 370 -#define tFILE_SCHEMA 371 -#define tFILE_NAME 372 -#define tMANIFOLD_SOLID_BREP 373 -#define tCLOSED_SHELL 374 -#define tADVANCED_BREP_SHAPE_REPRESENTATION 375 -#define tFACE_BOUND 376 -#define tCYLINDRICAL_SURFACE 377 -#define tCONICAL_SURFACE 378 -#define tCIRCLE 379 -#define tTRIMMED_CURVE 380 -#define tGEOMETRIC_SET 381 -#define tCOMPOSITE_CURVE_SEGMENT 382 -#define tCONTINUOUS 383 -#define tCOMPOSITE_CURVE 384 -#define tTOROIDAL_SURFACE 385 -#define tPRODUCT_DEFINITION 386 -#define tPRODUCT_DEFINITION_SHAPE 387 -#define tSHAPE_DEFINITION_REPRESENTATION 388 -#define tELLIPSE 389 -#define tTrimmed 390 -#define tSolid 391 -#define tEndSolid 392 -#define tVertex 393 -#define tFacet 394 -#define tNormal 395 -#define tOuter 396 -#define tLoopSTL 397 -#define tEndLoop 398 -#define tEndFacet 399 -#define tAND 400 -#define tOR 401 -#define tNOTEQUAL 402 -#define tEQUAL 403 -#define tAPPROXEQUAL 404 -#define tAFFECTPLUS 405 -#define tAFFECTMINUS 406 -#define tAFFECTTIMES 407 -#define tAFFECTDIVIDE 408 -#define tLESSOREQUAL 409 -#define tGREATEROREQUAL 410 -#define tCROSSPRODUCT 411 -#define UNARYPREC 412 -#define tPLUSPLUS 413 -#define tMINUSMINUS 414 +#define tIf 342 +#define tEndIf 343 +#define tExit 344 +#define tMerge 345 +#define tReturn 346 +#define tCall 347 +#define tFunction 348 +#define tB_SPLINE_SURFACE_WITH_KNOTS 349 +#define tB_SPLINE_CURVE_WITH_KNOTS 350 +#define tCARTESIAN_POINT 351 +#define tTRUE 352 +#define tFALSE 353 +#define tUNSPECIFIED 354 +#define tU 355 +#define tV 356 +#define tEDGE_CURVE 357 +#define tVERTEX_POINT 358 +#define tORIENTED_EDGE 359 +#define tPLANE 360 +#define tFACE_OUTER_BOUND 361 +#define tEDGE_LOOP 362 +#define tADVANCED_FACE 363 +#define tVECTOR 364 +#define tDIRECTION 365 +#define tAXIS2_PLACEMENT_3D 366 +#define tISO 367 +#define tENDISO 368 +#define tENDSEC 369 +#define tDATA 370 +#define tHEADER 371 +#define tFILE_DESCRIPTION 372 +#define tFILE_SCHEMA 373 +#define tFILE_NAME 374 +#define tMANIFOLD_SOLID_BREP 375 +#define tCLOSED_SHELL 376 +#define tADVANCED_BREP_SHAPE_REPRESENTATION 377 +#define tFACE_BOUND 378 +#define tCYLINDRICAL_SURFACE 379 +#define tCONICAL_SURFACE 380 +#define tCIRCLE 381 +#define tTRIMMED_CURVE 382 +#define tGEOMETRIC_SET 383 +#define tCOMPOSITE_CURVE_SEGMENT 384 +#define tCONTINUOUS 385 +#define tCOMPOSITE_CURVE 386 +#define tTOROIDAL_SURFACE 387 +#define tPRODUCT_DEFINITION 388 +#define tPRODUCT_DEFINITION_SHAPE 389 +#define tSHAPE_DEFINITION_REPRESENTATION 390 +#define tELLIPSE 391 +#define tTrimmed 392 +#define tSolid 393 +#define tEndSolid 394 +#define tVertex 395 +#define tFacet 396 +#define tNormal 397 +#define tOuter 398 +#define tLoopSTL 399 +#define tEndLoop 400 +#define tEndFacet 401 +#define tAND 402 +#define tOR 403 +#define tNOTEQUAL 404 +#define tEQUAL 405 +#define tAPPROXEQUAL 406 +#define tAFFECTPLUS 407 +#define tAFFECTMINUS 408 +#define tAFFECTTIMES 409 +#define tAFFECTDIVIDE 410 +#define tLESSOREQUAL 411 +#define tGREATEROREQUAL 412 +#define tCROSSPRODUCT 413 +#define UNARYPREC 414 +#define tPLUSPLUS 415 +#define tMINUSMINUS 416 extern YYSTYPE yylval; diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index 16df484b36259eb422e7a90da3a3e9db078fc34e..c3a8e67463c57c75752cf613939e3bdba9c1d738 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -1,4 +1,4 @@ -%{ /* $Id: Gmsh.y,v 1.34 2000-12-09 17:33:39 geuzaine Exp $ */ +%{ /* $Id: Gmsh.y,v 1.35 2000-12-09 22:26:12 geuzaine Exp $ */ #include <stdarg.h> @@ -55,8 +55,9 @@ static StringXNumber *pNumCat; static StringXArray *pArrCat; static StringXColor *pColCat; -void yyerror (char *s); -void vyyerror (char *fmt, ...); +void yyerror (char *s); +void vyyerror (char *fmt, ...); +void skip_until (char *until); %} @@ -89,7 +90,7 @@ void vyyerror (char *fmt, ...); %token tScalarLine tVectorLine tTensorLine %token tScalarPoint tVectorPoint tTensorPoint %token tBSpline tNurbs tOrder tWith tBounds tKnots -%token tColor tFor tIn tEndFor tExit tMerge +%token tColor tFor tIn tEndFor tIf tEndIf tExit tMerge %token tReturn tCall tFunction %token tB_SPLINE_SURFACE_WITH_KNOTS @@ -388,7 +389,11 @@ GeomFormat : ; Printf : - tPrintf '(' tBIGSTR ',' FExpr ')' tEND + tPrintf '(' tBIGSTR ')' tEND + { + Msg(PARSER_INFO, $3); + } + | tPrintf '(' tBIGSTR ',' FExpr ')' tEND { Msg(PARSER_INFO, $3, $5); } @@ -1676,6 +1681,9 @@ Command : CreateImage($2,fp); fclose(fp); } + else{ + vyyerror("Unable to Open File '%s'", $2); + } } } @@ -1739,128 +1747,127 @@ Command : Loop : - tFor '{' FExpr tDOTS FExpr '}' - { - FILE* ff; - if(RecursionLevel) - ff = yyinTab[RecursionLevel-1]; - else - ff = yyin; - // here, we seek remember the position in yyin - LoopControlVariablesTab[ImbricatedLoop][0] = $3 ; - LoopControlVariablesTab[ImbricatedLoop][1] = $5 ; - LoopControlVariablesTab[ImbricatedLoop][2] = 1.0 ; - LoopControlVariablesNameTab[ImbricatedLoop] = "" ; - fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); - } - | tFor '{' FExpr tDOTS FExpr tDOTS FExpr '}' - { - FILE* ff; - if(RecursionLevel) - ff = yyinTab[RecursionLevel-1]; - else - ff = yyin; - // here, we seek remember the position in yyin - LoopControlVariablesTab[ImbricatedLoop][0] = $3 ; - LoopControlVariablesTab[ImbricatedLoop][1] = $5 ; - LoopControlVariablesTab[ImbricatedLoop][2] = $7 ; - LoopControlVariablesNameTab[ImbricatedLoop] = "" ; - fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); - } + tFor '(' FExpr tDOTS FExpr ')' + { + FILE* ff; + if(RecursionLevel) + ff = yyinTab[RecursionLevel-1]; + else + ff = yyin; + // here, we seek remember the position in yyin + LoopControlVariablesTab[ImbricatedLoop][0] = $3 ; + LoopControlVariablesTab[ImbricatedLoop][1] = $5 ; + LoopControlVariablesTab[ImbricatedLoop][2] = 1.0 ; + LoopControlVariablesNameTab[ImbricatedLoop] = "" ; + fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); + } + | tFor '(' FExpr tDOTS FExpr tDOTS FExpr ')' + { + FILE* ff; + if(RecursionLevel) + ff = yyinTab[RecursionLevel-1]; + else + ff = yyin; + // here, we seek remember the position in yyin + LoopControlVariablesTab[ImbricatedLoop][0] = $3 ; + LoopControlVariablesTab[ImbricatedLoop][1] = $5 ; + LoopControlVariablesTab[ImbricatedLoop][2] = $7 ; + LoopControlVariablesNameTab[ImbricatedLoop] = "" ; + fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); + } | tFor tSTRING tIn '{' FExpr tDOTS FExpr '}' - { - FILE* ff; - if(RecursionLevel) - ff = yyinTab[RecursionLevel-1]; - else - ff = yyin; - // here, we seek remember the position in yyin - LoopControlVariablesTab[ImbricatedLoop][0] = $5 ; - LoopControlVariablesTab[ImbricatedLoop][1] = $7 ; - LoopControlVariablesTab[ImbricatedLoop][2] = 1.0 ; - LoopControlVariablesNameTab[ImbricatedLoop] = $2 ; - - TheSymbol.Name = $2; - TheSymbol.val = $5; - if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) - List_Add(Symbol_L,&TheSymbol); - else - pSymbol->val = $5; - - fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); - } + { + FILE* ff; + if(RecursionLevel) + ff = yyinTab[RecursionLevel-1]; + else + ff = yyin; + // here, we seek remember the position in yyin + LoopControlVariablesTab[ImbricatedLoop][0] = $5 ; + LoopControlVariablesTab[ImbricatedLoop][1] = $7 ; + LoopControlVariablesTab[ImbricatedLoop][2] = 1.0 ; + LoopControlVariablesNameTab[ImbricatedLoop] = $2 ; + + TheSymbol.Name = $2; + TheSymbol.val = $5; + if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) + List_Add(Symbol_L,&TheSymbol); + else + pSymbol->val = $5; + + fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); + } | tFor tSTRING tIn '{' FExpr tDOTS FExpr tDOTS FExpr '}' - { - FILE* ff; - if(RecursionLevel) - ff = yyinTab[RecursionLevel-1]; - else - ff = yyin; - // here, we seek remember the position in yyin - LoopControlVariablesTab[ImbricatedLoop][0] = $5 ; - LoopControlVariablesTab[ImbricatedLoop][1] = $7 ; - LoopControlVariablesTab[ImbricatedLoop][2] = $9 ; - LoopControlVariablesNameTab[ImbricatedLoop] = $2 ; - - TheSymbol.Name = $2; - TheSymbol.val = $5; - if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) - List_Add(Symbol_L,&TheSymbol); - else - pSymbol->val = $5; - - fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); - } + { + FILE* ff; + if(RecursionLevel) + ff = yyinTab[RecursionLevel-1]; + else + ff = yyin; + // here, we seek remember the position in yyin + LoopControlVariablesTab[ImbricatedLoop][0] = $5 ; + LoopControlVariablesTab[ImbricatedLoop][1] = $7 ; + LoopControlVariablesTab[ImbricatedLoop][2] = $9 ; + LoopControlVariablesNameTab[ImbricatedLoop] = $2 ; + + TheSymbol.Name = $2; + TheSymbol.val = $5; + if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) + List_Add(Symbol_L,&TheSymbol); + else + pSymbol->val = $5; + + fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); + } | tEndFor - { - if(LoopControlVariablesTab[ImbricatedLoop-1][1] > - LoopControlVariablesTab[ImbricatedLoop-1][0]){ + { + if(LoopControlVariablesTab[ImbricatedLoop-1][1] > + LoopControlVariablesTab[ImbricatedLoop-1][0]){ FILE* ff; if(RecursionLevel) ff = yyinTab[RecursionLevel-1]; else ff = yyin; - - LoopControlVariablesTab[ImbricatedLoop-1][0] += + + LoopControlVariablesTab[ImbricatedLoop-1][0] += LoopControlVariablesTab[ImbricatedLoop-1][2]; - + if(strlen(LoopControlVariablesNameTab[ImbricatedLoop-1])){ TheSymbol.Name = LoopControlVariablesNameTab[ImbricatedLoop-1]; pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols); pSymbol->val += LoopControlVariablesTab[ImbricatedLoop-1][2]; } - - fsetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop-1]); + + fsetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop-1]); } - else - { + else{ ImbricatedLoop--; } - } + } | tReturn - { - if(!FunctionManager::Instance()->leaveFunction(&yyin,yylineno)) - { + { + if(!FunctionManager::Instance()->leaveFunction(&yyin,yylineno)) vyyerror("Error while exiting function"); - } - } + } | tCall tSTRING tEND - { - if(!FunctionManager::Instance()->enterFunction($2,&yyin,yylineno)) - { + { + if(!FunctionManager::Instance()->enterFunction($2,&yyin,yylineno)) vyyerror("Unknown Function %s",$2); - } - } + } | tFunction tSTRING - { - // skip everything until return is found - if(!FunctionManager::Instance()->createFunction($2,yyin,yylineno)) - { + { + // skip everything until return is found + if(!FunctionManager::Instance()->createFunction($2,yyin,yylineno)) vyyerror("Redefinition of function %s",$2); - } - void skip_until(char *until); - skip_until("Return"); - } + skip_until("Return"); + } + | tIf '(' FExpr ')' + { + if(!$3) skip_until("EndIf"); + } + | tEndIf + { + } ; @@ -2578,6 +2585,10 @@ StringExpr : { $$ = $1; } + | tSprintf '(' tBIGSTR ')' + { + $$ = $3; + } | tSprintf '(' tBIGSTR ',' FExpr ')' { sprintf(tmpstring, $3, $5); diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index aedc1248dfb18eb1b9c81a1350600c2c6a29d53d..0a87b4ded016c425bde88f6a291d6f5874277e8f 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.38 2000-12-09 17:33:40 geuzaine Exp $ + * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.39 2000-12-09 22:26:13 geuzaine Exp $ */ #define FLEX_SCANNER @@ -283,116 +283,116 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 177 -#define YY_END_OF_BUFFER 178 -static yyconst short int yy_accept[970] = +#define YY_NUM_RULES 178 +#define YY_END_OF_BUFFER 179 +static yyconst short int yy_accept[969] = { 0, - 0, 0, 178, 176, 1, 1, 176, 5, 170, 176, - 6, 176, 176, 176, 176, 176, 171, 14, 2, 176, - 9, 176, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 176, 176, 0, 0, 22, 170, 18, 12, 19, - 10, 20, 11, 0, 173, 0, 0, 0, 0, 3, - 4, 13, 16, 172, 171, 0, 24, 21, 25, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 60, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 72, 175, 175, 175, 175, 175, 175, 175, - 175, 112, 115, 106, 109, 175, 175, 175, 175, 175, - 114, 175, 117, 175, 108, 111, 175, 175, 175, 175, - 113, 116, 107, 110, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 17, 23, 0, 0, 15, - 0, 123, 124, 125, 126, 172, 0, 0, 174, 175, - - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 40, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 51, - 175, 175, 175, 175, 175, 175, 99, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 65, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 84, 175, 175, 175, 175, 175, 175, 175, 93, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - - 175, 175, 175, 175, 175, 0, 0, 0, 173, 0, - 0, 172, 175, 26, 175, 175, 175, 175, 175, 175, - 28, 30, 175, 175, 175, 175, 35, 175, 175, 175, - 175, 175, 175, 105, 175, 38, 175, 175, 175, 175, - 175, 39, 140, 175, 175, 175, 50, 175, 175, 175, - 0, 175, 175, 175, 101, 175, 175, 175, 56, 175, - 58, 175, 175, 175, 175, 0, 175, 134, 175, 175, - 63, 175, 64, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 82, 175, - 175, 175, 175, 175, 85, 175, 175, 83, 175, 175, - - 175, 175, 92, 175, 175, 175, 175, 175, 96, 175, - 98, 175, 175, 175, 175, 165, 8, 175, 175, 175, - 175, 175, 0, 0, 0, 172, 175, 175, 175, 175, - 175, 175, 175, 32, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 45, 175, - 175, 175, 175, 175, 175, 175, 0, 175, 175, 175, - 175, 175, 175, 57, 175, 175, 175, 59, 0, 61, - 175, 175, 66, 175, 102, 175, 69, 175, 70, 138, - 175, 175, 175, 73, 74, 75, 175, 175, 175, 175, - 175, 81, 175, 175, 175, 175, 175, 175, 175, 175, - - 175, 95, 175, 175, 175, 175, 175, 175, 162, 175, - 175, 164, 169, 175, 0, 0, 175, 175, 175, 175, - 27, 29, 31, 175, 175, 175, 37, 175, 153, 175, - 175, 175, 175, 175, 175, 42, 175, 175, 175, 47, - 48, 175, 175, 175, 175, 0, 146, 175, 175, 100, - 175, 175, 175, 175, 175, 175, 175, 175, 139, 0, - 67, 62, 175, 68, 175, 175, 175, 175, 78, 175, - 175, 104, 80, 175, 86, 175, 175, 175, 175, 175, - 175, 175, 175, 135, 175, 97, 175, 175, 175, 7, - 163, 161, 0, 0, 175, 175, 175, 175, 33, 175, - - 36, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 44, 175, 175, 175, 175, 55, 0, 175, 175, 53, - 175, 175, 175, 175, 175, 175, 175, 0, 175, 175, - 175, 175, 175, 175, 175, 175, 89, 87, 175, 175, - 175, 175, 175, 94, 175, 175, 166, 175, 0, 0, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 0, 52, - 54, 175, 175, 175, 175, 175, 103, 175, 0, 175, - 175, 175, 175, 71, 175, 175, 175, 88, 175, 175, - 175, 175, 175, 167, 168, 0, 0, 175, 175, 175, - - 175, 34, 175, 175, 175, 175, 175, 175, 175, 175, - 43, 136, 49, 175, 129, 0, 175, 175, 175, 142, - 175, 175, 0, 175, 175, 175, 175, 175, 79, 175, - 175, 175, 175, 91, 175, 0, 0, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 46, - 175, 128, 0, 132, 175, 175, 175, 175, 0, 175, - 175, 175, 77, 175, 175, 175, 175, 175, 175, 0, - 0, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 0, 175, 175, 141, 175, 0, - 175, 175, 175, 76, 175, 175, 175, 90, 175, 122, - - 0, 122, 175, 175, 175, 175, 175, 175, 175, 147, - 175, 175, 175, 175, 0, 175, 175, 175, 144, 175, - 175, 175, 175, 175, 175, 130, 121, 175, 133, 121, - 175, 175, 175, 175, 175, 175, 175, 175, 0, 175, - 175, 155, 175, 127, 175, 175, 175, 154, 175, 175, - 175, 175, 175, 175, 175, 175, 41, 0, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 118, 157, - 151, 175, 0, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 145, 131, 143, 175, 175, - 175, 152, 175, 175, 175, 175, 175, 175, 175, 175, - - 175, 175, 137, 175, 175, 175, 175, 175, 158, 175, - 175, 175, 175, 175, 150, 149, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 156, - 175, 175, 175, 175, 175, 159, 175, 175, 120, 175, - 175, 175, 175, 175, 175, 119, 175, 175, 175, 175, - 175, 175, 175, 175, 160, 175, 175, 148, 0 + 0, 0, 179, 177, 1, 1, 177, 5, 171, 177, + 6, 177, 177, 177, 177, 177, 172, 14, 2, 177, + 9, 177, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 177, 177, 0, 0, 22, 171, 18, 12, 19, + 10, 20, 11, 0, 174, 0, 0, 0, 0, 3, + 4, 13, 16, 173, 172, 0, 24, 21, 25, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 67, 66, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 79, 176, 176, 176, 176, 176, 176, 176, + 176, 113, 116, 107, 110, 176, 176, 176, 176, 176, + 115, 176, 118, 176, 109, 112, 176, 176, 176, 176, + 114, 117, 108, 111, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 17, 23, 0, 0, 15, + 0, 124, 125, 126, 127, 173, 0, 0, 175, 176, + + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 40, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 52, + 176, 176, 176, 176, 176, 176, 63, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 72, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 92, + 176, 176, 176, 176, 176, 176, 176, 101, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + + 176, 176, 176, 176, 0, 0, 0, 174, 0, 0, + 173, 176, 176, 176, 176, 26, 176, 176, 176, 28, + 30, 176, 176, 176, 176, 35, 176, 176, 176, 176, + 176, 176, 47, 176, 38, 176, 176, 176, 176, 176, + 39, 141, 176, 176, 176, 51, 176, 176, 176, 0, + 176, 176, 176, 176, 59, 176, 176, 176, 60, 176, + 62, 176, 176, 176, 176, 0, 176, 135, 176, 176, + 70, 176, 71, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 89, 176, 176, + 176, 176, 176, 93, 176, 176, 91, 176, 176, 176, + + 176, 100, 176, 176, 176, 176, 176, 104, 176, 106, + 176, 176, 176, 176, 166, 8, 176, 176, 176, 176, + 176, 0, 0, 0, 173, 176, 176, 176, 176, 176, + 176, 176, 32, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 45, 176, 176, + 176, 176, 176, 176, 176, 0, 176, 176, 176, 58, + 176, 176, 176, 61, 176, 176, 176, 65, 0, 68, + 176, 176, 73, 176, 176, 76, 176, 77, 139, 176, + 176, 176, 80, 81, 82, 176, 176, 176, 176, 176, + 88, 176, 176, 176, 176, 176, 176, 176, 176, 176, + + 103, 176, 176, 176, 176, 176, 176, 163, 176, 176, + 165, 170, 176, 0, 0, 176, 176, 176, 176, 27, + 29, 31, 176, 176, 176, 37, 176, 154, 176, 176, + 176, 176, 176, 176, 42, 176, 176, 176, 48, 49, + 176, 176, 176, 176, 0, 147, 176, 176, 57, 176, + 176, 176, 176, 176, 176, 176, 176, 140, 0, 74, + 69, 176, 75, 176, 176, 176, 176, 85, 176, 176, + 90, 87, 176, 94, 176, 176, 176, 176, 176, 176, + 176, 176, 136, 176, 105, 176, 176, 176, 7, 164, + 162, 0, 0, 176, 176, 176, 176, 33, 176, 36, + + 176, 176, 176, 176, 176, 176, 176, 176, 176, 44, + 176, 176, 176, 176, 56, 0, 176, 176, 54, 176, + 176, 176, 176, 176, 176, 176, 0, 176, 176, 176, + 176, 176, 176, 176, 176, 97, 95, 176, 176, 176, + 176, 176, 102, 176, 176, 167, 176, 0, 0, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 0, 53, 55, + 176, 176, 176, 176, 176, 64, 176, 0, 176, 176, + 176, 176, 78, 176, 176, 176, 96, 176, 176, 176, + 176, 176, 168, 169, 0, 0, 176, 176, 176, 176, + + 34, 176, 176, 176, 176, 176, 176, 176, 176, 43, + 137, 50, 176, 130, 0, 176, 176, 176, 143, 176, + 176, 0, 176, 176, 176, 176, 176, 86, 176, 176, + 176, 176, 99, 176, 0, 0, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 46, 176, + 129, 0, 133, 176, 176, 176, 176, 0, 176, 176, + 176, 84, 176, 176, 176, 176, 176, 176, 0, 0, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 0, 176, 176, 142, 176, 0, 176, + 176, 176, 83, 176, 176, 176, 98, 176, 123, 0, + + 123, 176, 176, 176, 176, 176, 176, 176, 148, 176, + 176, 176, 176, 0, 176, 176, 176, 145, 176, 176, + 176, 176, 176, 176, 131, 122, 176, 134, 122, 176, + 176, 176, 176, 176, 176, 176, 176, 0, 176, 176, + 156, 176, 128, 176, 176, 176, 155, 176, 176, 176, + 176, 176, 176, 176, 176, 41, 0, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 119, 158, 152, + 176, 0, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 146, 132, 144, 176, 176, 176, + 153, 176, 176, 176, 176, 176, 176, 176, 176, 176, + + 176, 138, 176, 176, 176, 176, 176, 159, 176, 176, + 176, 176, 176, 151, 150, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 157, 176, + 176, 176, 176, 176, 160, 176, 176, 121, 176, 176, + 176, 176, 176, 176, 120, 176, 176, 176, 176, 176, + 176, 176, 176, 161, 176, 176, 149, 0 } ; static yyconst int yy_ec[256] = @@ -439,229 +439,229 @@ static yyconst int yy_meta[75] = 3, 3, 1, 1 } ; -static yyconst short int yy_base[975] = +static yyconst short int yy_base[974] = { 0, - 0, 0, 1231, 49, 50, 1232, 55, 52, 68, 73, + 0, 0, 1230, 49, 50, 1231, 55, 52, 68, 73, 53, 65, 78, 79, 111, 93, 130, 71, 77, 87, 109, 117, 123, 131, 176, 138, 178, 186, 133, 181, - 199, 81, 125, 209, 231, 152, 151, 230, 232, 275, - 285, 218, 314, 139, 236, 240, 270, 305, 276, 272, - 311, 278, 221, 1192, 1192, 1232, 346, 1232, 1232, 1232, - 1232, 1232, 1232, 1216, 363, 1215, 1214, 126, 1213, 1232, - 1232, 1232, 1232, 368, 383, 392, 1232, 1232, 1232, 0, - 72, 1180, 1186, 1190, 1169, 1162, 201, 1181, 1155, 1176, - 1148, 1155, 1174, 1173, 1174, 81, 1176, 108, 1152, 1159, - - 1143, 309, 1165, 1166, 1146, 1145, 1153, 1139, 1171, 1165, - 1172, 1139, 1144, 164, 1170, 1160, 1143, 1131, 1130, 1126, - 1129, 1151, 1164, 1124, 1148, 0, 1123, 1147, 1111, 1121, - 1120, 123, 1143, 1114, 1125, 1112, 1144, 1122, 1150, 1135, - 1107, 1099, 0, 1120, 113, 170, 1108, 224, 1101, 1108, - 1142, 0, 0, 0, 0, 1104, 213, 1099, 1098, 1102, - 0, 1121, 0, 1128, 0, 0, 1098, 219, 1100, 161, - 0, 0, 0, 0, 1103, 1097, 1088, 1101, 1101, 1090, - 1081, 1085, 1082, 1089, 1082, 1232, 1232, 1109, 1104, 1232, - 409, 1232, 1232, 1232, 1232, 414, 429, 398, 434, 1107, - - 1077, 1118, 1100, 1099, 304, 1078, 1077, 1072, 1077, 1096, - 1073, 1070, 1090, 1105, 1089, 1090, 1096, 1095, 1067, 1065, - 1065, 1058, 1070, 1067, 1058, 1056, 1061, 1093, 1088, 1061, - 1064, 1043, 1053, 1083, 1078, 288, 1051, 1079, 1040, 0, + 201, 81, 125, 209, 139, 152, 151, 225, 231, 274, + 284, 229, 313, 221, 235, 251, 271, 304, 243, 278, + 277, 263, 286, 1191, 1191, 1231, 345, 1231, 1231, 1231, + 1231, 1231, 1231, 1215, 362, 1214, 1213, 185, 1212, 1231, + 1231, 1231, 1231, 367, 382, 391, 1231, 1231, 1231, 0, + 1185, 1178, 1184, 1188, 1157, 1166, 1159, 67, 1153, 1174, + 1146, 1153, 1172, 1171, 1172, 96, 1174, 51, 1150, 1157, + + 1141, 308, 1163, 1164, 1144, 1143, 1151, 1137, 1169, 1163, + 1170, 1137, 1142, 306, 1168, 1158, 1141, 1129, 1128, 1124, + 1127, 1149, 1162, 1122, 1146, 0, 0, 1121, 1145, 1109, + 1119, 1118, 123, 1141, 1124, 1111, 1143, 1121, 1149, 1134, + 1106, 1098, 0, 1119, 113, 170, 1107, 173, 1100, 1107, + 1141, 0, 0, 0, 0, 1103, 211, 1098, 1097, 1101, + 0, 1120, 0, 1127, 0, 0, 1097, 200, 1099, 191, + 0, 0, 0, 0, 1102, 1096, 1087, 1100, 1100, 1089, + 1080, 1084, 1081, 1088, 1081, 1231, 1231, 1108, 1103, 1231, + 408, 1231, 1231, 1231, 1231, 413, 428, 397, 433, 1106, + + 1118, 1100, 1099, 1073, 302, 1077, 1076, 1071, 1076, 1095, + 1072, 1069, 1089, 1104, 1088, 1089, 1095, 1094, 1066, 1064, + 1064, 1057, 1069, 1066, 1057, 1055, 1060, 1092, 1087, 1060, + 1063, 1042, 1052, 1082, 1077, 232, 1050, 259, 1040, 0, 1041, 1077, 1076, 1037, 1040, 1048, 0, 1048, 1063, 1071, 1035, 1085, 1028, 1066, 1039, 1036, 1037, 1075, 1026, 1056, - 1031, 1018, 1034, 1056, 1029, 1045, 1054, 1030, 1013, 1017, - 1016, 1022, 1014, 1018, 1020, 1010, 1003, 1020, 1015, 1029, - 1010, 1008, 1007, 997, 1008, 1002, 1023, 1024, 1002, 997, - 997, 995, 1013, 1012, 983, 984, 994, 398, 996, 986, - - 240, 988, 993, 988, 978, 1002, 1004, 444, 455, 464, - 469, 474, 1000, 0, 1004, 1001, 1023, 976, 979, 986, - 0, 1019, 984, 975, 997, 978, 0, 1002, 994, 1000, - 989, 1000, 988, 0, 956, 0, 973, 963, 956, 955, - 960, 0, 0, 992, 950, 949, 0, 957, 965, 974, - 980, 983, 947, 947, 0, 940, 958, 957, 0, 940, + 1019, 1035, 1057, 1030, 1046, 1055, 1031, 1014, 1018, 1017, + 1023, 1015, 1019, 1021, 1011, 1004, 1021, 1016, 1030, 1011, + 1009, 1008, 998, 1009, 1003, 1024, 1025, 1003, 998, 998, + 996, 1014, 1013, 984, 985, 995, 397, 997, 987, 288, + + 989, 994, 989, 979, 1003, 1005, 443, 454, 463, 468, + 473, 1001, 1005, 1002, 1024, 0, 977, 980, 987, 0, + 1020, 985, 976, 998, 979, 0, 1003, 995, 1001, 990, + 1001, 989, 0, 957, 0, 974, 964, 957, 956, 961, + 0, 0, 993, 951, 950, 0, 958, 966, 975, 981, + 984, 948, 948, 954, 0, 940, 958, 957, 0, 940, 0, 937, 975, 974, 934, 985, 933, 0, 933, 930, - 0, 982, 0, 966, 940, 934, 926, 954, 925, 961, - 945, 927, 928, 931, 917, 918, 915, 916, 0, 920, - 914, 911, 924, 948, 0, 914, 913, 0, 923, 918, - - 939, 934, 0, 903, 908, 911, 928, 937, 0, 904, - 0, 913, 900, 899, 893, 0, 0, 905, 908, 892, - 903, 901, 922, 925, 479, 484, 920, 925, 922, 900, - 882, 886, 885, 0, 893, 883, 911, 876, 900, 912, - 912, 897, 913, 909, 876, 882, 879, 878, 0, 877, - 888, 875, 874, 875, 428, 885, 884, 898, 66, 858, - 869, 284, 476, 0, 863, 878, 879, 0, 904, 0, - 851, 859, 0, 877, 0, 852, 0, 871, 0, 0, - 886, 857, 858, 0, 0, 0, 854, 854, 856, 845, - 851, 0, 855, 849, 835, 849, 833, 872, 870, 253, - - 843, 0, 856, 849, 840, 841, 830, 832, 0, 834, - 830, 0, 0, 817, 850, 860, 848, 856, 857, 843, - 0, 0, 865, 813, 825, 841, 0, 845, 0, 827, - 843, 839, 833, 813, 804, 0, 809, 798, 836, 0, - 0, 817, 823, 827, 836, 825, 0, 804, 803, 0, - 806, 821, 815, 829, 832, 829, 792, 813, 0, 835, - 0, 0, 816, 0, 822, 807, 781, 797, 0, 780, - 787, 0, 0, 817, 0, 788, 788, 776, 816, 812, - 780, 787, 783, 0, 786, 0, 780, 770, 774, 0, - 0, 0, 788, 798, 786, 801, 795, 791, 0, 763, - - 0, 796, 799, 781, 779, 771, 787, 778, 763, 764, - 0, 777, 747, 773, 774, 0, 800, 744, 757, 0, - 765, 765, 765, 769, 773, 742, 770, 787, 773, 772, - 749, 732, 737, 729, 733, 765, 0, 0, 720, 756, - 741, 728, 721, 0, 748, 719, 0, 732, 746, 754, - 744, 732, 751, 755, 713, 728, 739, 744, 746, 732, - 746, 709, 705, 715, 731, 717, 722, 726, 749, 0, - 0, 726, 734, 735, 732, 731, 0, 732, 740, 707, - 706, 727, 695, 0, 694, 697, 721, 0, 700, 722, - 689, 692, 707, 0, 0, 701, 711, 699, 345, 709, - - 714, 0, 332, 690, 710, 688, 692, 708, 669, 668, - 0, 0, 0, 61, 0, 98, 171, 177, 210, 0, - 245, 258, 325, 300, 324, 343, 335, 326, 0, 357, - 349, 349, 326, 0, 362, 363, 377, 377, 381, 409, - 406, 407, 393, 395, 402, 420, 430, 425, 431, 0, - 401, 0, 459, 0, 428, 472, 481, 465, 491, 470, - 482, 481, 0, 450, 475, 471, 475, 462, 481, 0, - 492, 519, 494, 507, 507, 499, 496, 497, 505, 509, - 502, 517, 498, 481, 535, 525, 512, 0, 524, 538, - 519, 525, 524, 0, 525, 518, 515, 0, 518, 1232, - - 0, 0, 522, 534, 593, 535, 520, 536, 534, 0, - 528, 545, 529, 513, 555, 535, 532, 533, 1232, 544, - 549, 541, 537, 551, 553, 0, 1232, 533, 0, 0, - 546, 556, 561, 549, 543, 562, 546, 538, 580, 553, - 575, 0, 581, 0, 577, 578, 587, 0, 576, 576, - 570, 594, 579, 594, 595, 584, 0, 609, 589, 589, - 579, 587, 592, 605, 601, 584, 589, 607, 0, 587, - 0, 608, 623, 612, 603, 617, 611, 607, 617, 622, - 630, 616, 600, 609, 627, 1232, 0, 0, 612, 615, - 605, 0, 616, 629, 615, 613, 631, 634, 633, 625, - - 623, 636, 0, 634, 636, 639, 642, 632, 623, 645, - 625, 626, 634, 641, 0, 0, 637, 640, 640, 647, - 651, 655, 653, 645, 658, 650, 639, 652, 666, 663, - 653, 655, 660, 653, 657, 656, 658, 657, 663, 0, - 673, 674, 675, 663, 667, 0, 669, 666, 0, 666, - 667, 682, 670, 688, 676, 0, 672, 673, 684, 693, - 680, 677, 683, 689, 0, 684, 686, 0, 1232, 721, - 724, 727, 730, 733 + 0, 982, 0, 966, 935, 927, 955, 926, 962, 946, + 928, 929, 932, 918, 919, 916, 917, 0, 921, 915, + 912, 925, 949, 0, 915, 914, 0, 924, 919, 940, + + 935, 0, 904, 909, 912, 929, 938, 0, 905, 0, + 914, 901, 900, 894, 0, 0, 906, 909, 893, 904, + 902, 923, 926, 478, 483, 921, 926, 923, 901, 883, + 887, 886, 0, 894, 884, 912, 877, 901, 913, 913, + 898, 914, 910, 877, 883, 880, 879, 0, 878, 889, + 876, 875, 876, 272, 886, 885, 899, 320, 859, 0, + 870, 332, 475, 0, 864, 879, 880, 0, 905, 0, + 852, 860, 0, 878, 853, 0, 872, 0, 0, 887, + 858, 859, 0, 0, 0, 855, 855, 857, 846, 852, + 0, 856, 850, 836, 850, 834, 873, 871, 333, 844, + + 0, 857, 850, 841, 842, 831, 833, 0, 835, 831, + 0, 0, 818, 851, 861, 849, 857, 858, 844, 0, + 0, 866, 814, 826, 842, 0, 846, 0, 828, 844, + 840, 834, 814, 805, 0, 810, 799, 837, 0, 0, + 818, 824, 828, 837, 826, 0, 805, 804, 0, 807, + 822, 816, 830, 833, 830, 793, 814, 0, 836, 0, + 0, 817, 0, 823, 808, 782, 798, 0, 781, 788, + 0, 0, 818, 0, 789, 789, 777, 817, 813, 781, + 788, 784, 0, 787, 0, 781, 771, 775, 0, 0, + 0, 789, 799, 787, 802, 796, 792, 0, 764, 0, + + 797, 800, 782, 780, 772, 788, 779, 764, 765, 0, + 778, 748, 774, 775, 0, 801, 745, 758, 0, 766, + 766, 766, 770, 774, 743, 771, 788, 774, 773, 750, + 733, 738, 730, 734, 766, 0, 0, 721, 757, 742, + 729, 722, 0, 749, 720, 0, 733, 747, 755, 745, + 733, 752, 756, 714, 729, 740, 745, 747, 733, 747, + 710, 706, 716, 732, 718, 723, 727, 750, 0, 0, + 727, 735, 736, 733, 732, 0, 733, 741, 708, 707, + 728, 696, 0, 695, 698, 722, 0, 701, 723, 690, + 693, 708, 0, 0, 702, 712, 700, 364, 710, 715, + + 0, 309, 691, 711, 689, 694, 712, 674, 673, 0, + 0, 0, 700, 0, 711, 62, 72, 98, 0, 131, + 138, 187, 225, 252, 264, 250, 256, 0, 313, 331, + 348, 336, 0, 372, 376, 392, 391, 393, 410, 407, + 409, 397, 410, 415, 420, 436, 424, 430, 0, 400, + 0, 458, 0, 427, 471, 480, 464, 490, 469, 481, + 480, 0, 449, 474, 470, 474, 461, 480, 0, 491, + 518, 493, 506, 506, 498, 495, 496, 504, 508, 501, + 516, 497, 480, 534, 524, 511, 0, 523, 537, 518, + 524, 523, 0, 524, 517, 514, 0, 517, 1231, 0, + + 0, 521, 533, 592, 534, 519, 535, 533, 0, 527, + 544, 528, 512, 554, 534, 531, 532, 1231, 543, 548, + 540, 536, 550, 552, 0, 1231, 532, 0, 0, 545, + 555, 560, 548, 542, 561, 545, 537, 579, 552, 574, + 0, 580, 0, 576, 577, 586, 0, 575, 575, 569, + 593, 578, 593, 594, 583, 0, 608, 588, 588, 578, + 586, 591, 604, 600, 583, 588, 606, 0, 586, 0, + 607, 622, 611, 602, 616, 610, 606, 616, 621, 629, + 615, 599, 608, 626, 1231, 0, 0, 611, 614, 604, + 0, 615, 628, 614, 612, 630, 633, 632, 624, 622, + + 635, 0, 633, 635, 638, 641, 631, 622, 644, 624, + 625, 633, 640, 0, 0, 636, 639, 639, 646, 650, + 654, 652, 644, 657, 649, 638, 651, 665, 662, 652, + 654, 659, 652, 656, 655, 657, 656, 662, 0, 672, + 673, 674, 662, 666, 0, 668, 665, 0, 665, 666, + 681, 669, 687, 675, 0, 671, 672, 683, 692, 679, + 676, 682, 688, 0, 683, 685, 0, 1231, 720, 723, + 726, 729, 732 } ; -static yyconst short int yy_def[975] = +static yyconst short int yy_def[974] = { 0, - 969, 1, 969, 969, 969, 969, 969, 969, 969, 969, + 968, 1, 968, 968, 968, 968, 968, 968, 968, 968, + 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, + 968, 968, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - 969, 969, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - 969, 969, 969, 969, 969, 969, 969, 969, 969, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 969, 969, 969, 969, 969, - 969, 969, 969, 969, 969, 969, 969, 969, 969, 970, - - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - - 970, 970, 970, 970, 970, 969, 969, 969, 969, 969, - 969, 969, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 969, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 969, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 969, 969, 969, 969, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 969, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 969, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 969, 969, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 969, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 969, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 969, 969, 970, 970, 970, 970, 970, 970, - - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 969, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 969, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 969, 969, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 969, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 969, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 969, 969, 970, 970, 970, - - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 969, 970, 970, 970, 970, - 970, 970, 969, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 969, 969, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 969, 970, 970, 970, 970, 970, 969, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 971, - 969, 972, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 969, 970, 970, 970, 970, 969, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 969, - - 973, 970, 970, 970, 974, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 969, 970, 970, 970, 969, 970, - 970, 970, 970, 970, 970, 970, 969, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 969, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 969, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 969, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 969, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 970, 970, 970, 0, 969, - 969, 969, 969, 969 + 969, 968, 968, 968, 968, 968, 968, 968, 968, 968, + 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, + 968, 968, 968, 968, 968, 968, 968, 968, 968, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 968, 968, 968, 968, 968, + 968, 968, 968, 968, 968, 968, 968, 968, 968, 969, + + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + + 969, 969, 969, 969, 968, 968, 968, 968, 968, 968, + 968, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 968, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 968, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 968, 968, 968, 968, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 968, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 968, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 968, 968, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 968, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 968, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 968, 968, 969, 969, 969, 969, 969, 969, 969, + + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 968, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 968, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 968, 968, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 968, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 968, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 968, 968, 969, 969, 969, 969, + + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 968, 969, 969, 969, 969, 969, + 969, 968, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 968, 968, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 968, 969, 969, 969, 969, 969, 968, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 970, 968, + 971, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 968, 969, 969, 969, 969, 968, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 968, 972, + + 969, 969, 969, 973, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 968, 969, 969, 969, 968, 969, 969, + 969, 969, 969, 969, 969, 968, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 968, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 968, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 968, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 968, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 969, 0, 968, 968, + 968, 968, 968 } ; -static yyconst short int yy_nxt[1307] = +static yyconst short int yy_nxt[1306] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 17, 17, 17, 17, 18, 19, @@ -671,80 +671,80 @@ static yyconst short int yy_nxt[1307] = 32, 32, 32, 45, 46, 32, 32, 32, 47, 32, 48, 49, 32, 32, 32, 50, 32, 32, 51, 32, 32, 32, 52, 53, 54, 54, 56, 54, 54, 58, - 54, 57, 57, 57, 57, 57, 59, 60, 752, 62, + 54, 57, 57, 57, 57, 57, 59, 60, 753, 62, 54, 55, 55, 54, 55, 55, 54, 55, 54, 61, - 63, 70, 54, 54, 54, 71, 88, 55, 77, 200, - 55, 753, 54, 55, 72, 55, 216, 217, 54, 55, + 63, 70, 54, 54, 54, 71, 81, 55, 77, 219, + 55, 754, 54, 55, 72, 55, 207, 220, 54, 55, 55, 55, 64, 83, 65, 65, 65, 65, 65, 55, - 78, 548, 549, 201, 54, 55, 54, 194, 79, 66, + 78, 216, 217, 208, 54, 55, 54, 755, 79, 66, 73, 74, 54, 75, 75, 75, 75, 75, 81, 82, - 88, 55, 67, 68, 69, 54, 88, 76, 88, 55, - 122, 103, 189, 88, 88, 83, 219, 83, 84, 104, - 271, 89, 55, 83, 220, 83, 88, 88, 258, 90, - 83, 83, 272, 76, 259, 127, 293, 85, 86, 87, - 137, 105, 91, 83, 83, 106, 177, 754, 92, 93, - - 294, 88, 107, 88, 109, 108, 88, 94, 123, 115, - 95, 88, 110, 96, 111, 138, 755, 116, 83, 136, - 83, 239, 97, 83, 88, 98, 240, 273, 83, 99, - 241, 274, 100, 101, 88, 117, 112, 102, 113, 125, - 128, 83, 187, 88, 118, 119, 54, 120, 114, 756, - 207, 83, 124, 121, 133, 88, 88, 88, 129, 126, - 83, 88, 130, 55, 139, 88, 131, 208, 290, 140, - 132, 282, 83, 83, 83, 276, 291, 283, 83, 141, - 757, 147, 83, 169, 134, 148, 142, 143, 144, 179, - 277, 145, 135, 149, 146, 88, 178, 88, 351, 150, - - 88, 88, 417, 54, 418, 151, 758, 581, 552, 152, - 88, 582, 83, 153, 83, 154, 155, 83, 83, 161, - 55, 553, 162, 163, 164, 165, 166, 83, 352, 318, - 88, 180, 156, 184, 167, 759, 88, 157, 158, 88, - 760, 170, 159, 183, 319, 320, 160, 83, 171, 168, - 186, 761, 172, 83, 173, 174, 83, 743, 181, 57, - 57, 57, 57, 57, 185, 224, 182, 225, 226, 739, - 762, 175, 744, 740, 227, 176, 65, 65, 65, 65, - 65, 196, 196, 196, 196, 196, 763, 764, 765, 766, - 191, 767, 768, 769, 74, 197, 75, 75, 75, 75, - - 75, 198, 198, 770, 771, 199, 199, 199, 199, 199, - 76, 199, 199, 199, 199, 199, 191, 772, 308, 308, - 773, 197, 309, 309, 309, 309, 309, 196, 196, 196, - 196, 196, 774, 775, 776, 777, 76, 778, 311, 311, - 779, 310, 312, 312, 312, 312, 312, 199, 199, 199, - 199, 199, 412, 543, 780, 781, 413, 309, 309, 309, - 309, 309, 544, 414, 782, 783, 784, 310, 309, 309, - 309, 309, 309, 425, 425, 785, 786, 426, 426, 426, - 426, 426, 312, 312, 312, 312, 312, 312, 312, 312, - 312, 312, 426, 426, 426, 426, 426, 426, 426, 426, - - 426, 426, 554, 787, 788, 789, 790, 791, 792, 793, - 794, 795, 555, 796, 797, 798, 556, 799, 801, 800, - 800, 803, 800, 800, 800, 800, 800, 800, 800, 800, - 800, 800, 804, 805, 806, 807, 808, 800, 800, 800, - 800, 800, 809, 810, 811, 812, 813, 814, 815, 816, - 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, - 828, 829, 831, 832, 833, 834, 800, 835, 836, 837, + 81, 55, 67, 68, 69, 54, 81, 76, 81, 55, + 122, 103, 134, 81, 81, 83, 756, 83, 84, 104, + 270, 89, 55, 83, 85, 83, 81, 81, 258, 90, + 83, 83, 271, 76, 259, 128, 757, 86, 87, 88, + 137, 105, 91, 83, 83, 106, 194, 758, 92, 93, + + 135, 81, 107, 81, 109, 108, 81, 94, 123, 115, + 95, 81, 110, 96, 111, 138, 292, 116, 83, 136, + 83, 189, 97, 83, 275, 98, 81, 272, 83, 99, + 293, 273, 100, 101, 81, 117, 112, 102, 113, 276, + 129, 125, 350, 83, 118, 119, 81, 120, 114, 289, + 81, 83, 124, 121, 81, 126, 81, 290, 130, 139, + 81, 127, 131, 83, 140, 759, 132, 83, 81, 281, + 133, 83, 351, 83, 141, 282, 81, 83, 177, 760, + 147, 142, 143, 144, 148, 83, 145, 353, 54, 146, + 354, 761, 149, 83, 169, 178, 81, 542, 150, 81, + + 179, 762, 81, 81, 151, 55, 543, 187, 152, 81, + 183, 54, 153, 83, 154, 155, 83, 763, 161, 83, + 83, 162, 163, 164, 165, 166, 83, 317, 55, 81, + 185, 156, 180, 167, 742, 186, 157, 158, 81, 184, + 170, 159, 318, 319, 764, 160, 83, 171, 168, 743, + 416, 172, 417, 173, 174, 83, 551, 181, 57, 57, + 57, 57, 57, 239, 224, 182, 225, 226, 240, 552, + 175, 765, 241, 227, 176, 65, 65, 65, 65, 65, + 196, 196, 196, 196, 196, 547, 548, 580, 738, 191, + 766, 581, 739, 74, 197, 75, 75, 75, 75, 75, + + 198, 198, 767, 768, 199, 199, 199, 199, 199, 76, + 199, 199, 199, 199, 199, 191, 769, 307, 307, 770, + 197, 308, 308, 308, 308, 308, 196, 196, 196, 196, + 196, 771, 772, 773, 774, 76, 775, 310, 310, 776, + 309, 311, 311, 311, 311, 311, 199, 199, 199, 199, + 199, 411, 777, 778, 779, 412, 308, 308, 308, 308, + 308, 780, 413, 781, 782, 783, 309, 308, 308, 308, + 308, 308, 424, 424, 784, 785, 425, 425, 425, 425, + 425, 311, 311, 311, 311, 311, 311, 311, 311, 311, + 311, 425, 425, 425, 425, 425, 425, 425, 425, 425, + + 425, 553, 786, 787, 788, 789, 790, 791, 792, 793, + 794, 554, 795, 796, 797, 555, 798, 800, 799, 799, + 802, 799, 799, 799, 799, 799, 799, 799, 799, 799, + 799, 803, 804, 805, 806, 807, 799, 799, 799, 799, + 799, 808, 809, 810, 811, 812, 813, 814, 815, 816, + 817, 818, 819, 820, 821, 822, 823, 824, 825, 827, + 828, 830, 831, 832, 833, 799, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, - 858, 800, 800, 827, 827, 859, 827, 827, 827, 827, + 799, 799, 826, 826, 858, 826, 826, 826, 826, 826, - 827, 827, 827, 827, 827, 827, 860, 861, 862, 863, - 864, 827, 827, 827, 827, 827, 865, 866, 867, 868, + 826, 826, 826, 826, 826, 859, 860, 861, 862, 863, + 826, 826, 826, 826, 826, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, - 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, - 827, 889, 890, 891, 892, 893, 894, 895, 896, 897, + 879, 880, 881, 882, 883, 884, 885, 886, 887, 826, + 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, - 908, 909, 910, 911, 912, 827, 827, 913, 914, 915, + 908, 909, 910, 911, 826, 826, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, - 966, 967, 968, 80, 800, 751, 800, 802, 750, 802, - 827, 749, 827, 830, 748, 830, 747, 746, 745, 742, - 741, 738, 737, 736, 735, 734, 733, 732, 731, 730, + 966, 967, 80, 799, 752, 799, 801, 751, 801, 826, + 750, 826, 829, 749, 829, 748, 747, 746, 745, 744, + 741, 740, 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, 700, @@ -760,11 +760,11 @@ static yyconst short int yy_nxt[1307] = 619, 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, 608, 607, 606, 605, 604, 603, 602, 601, 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, 590, - 589, 588, 587, 586, 585, 584, 583, 580, 579, 578, + 589, 588, 587, 586, 585, 584, 583, 582, 579, 578, 577, 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, 558, - 557, 551, 550, 547, 546, 545, 542, 541, 540, 539, + 557, 556, 550, 549, 546, 545, 544, 541, 540, 539, 538, 537, 536, 535, 534, 533, 532, 531, 530, 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, 511, 510, 509, @@ -777,39 +777,39 @@ static yyconst short int yy_nxt[1307] = 458, 457, 456, 455, 454, 453, 452, 451, 450, 449, 448, 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, 432, 431, 430, 429, - 428, 427, 424, 423, 422, 421, 420, 419, 416, 415, - 411, 410, 409, 408, 407, 406, 405, 404, 403, 402, + 428, 427, 426, 423, 422, 421, 420, 419, 418, 415, + 414, 410, 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, 396, 395, 394, 393, 392, 391, 390, 389, 388, 387, 386, 385, 384, 383, 382, 381, 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, 362, - 361, 360, 359, 358, 357, 356, 355, 354, 353, 350, - 349, 348, 347, 346, 345, 344, 343, 342, 341, 340, - 339, 338, 337, 336, 335, 334, 333, 332, 331, 330, - 329, 328, 327, 326, 325, 324, 323, 322, 321, 317, - 316, 315, 314, 313, 307, 306, 305, 304, 303, 302, - 301, 300, 299, 298, 297, 296, 295, 292, 289, 288, - 287, 286, 285, 284, 281, 280, 279, 278, 275, 270, - 269, 268, 267, 266, 265, 264, 263, 262, 261, 260, - 257, 256, 255, 254, 253, 252, 251, 250, 249, 248, - 247, 246, 245, 244, 243, 242, 238, 237, 236, 235, - - 234, 233, 232, 231, 230, 229, 228, 223, 222, 221, - 218, 215, 214, 213, 212, 211, 210, 209, 200, 206, - 205, 204, 203, 202, 195, 193, 192, 190, 189, 188, - 969, 3, 969, 969, 969, 969, 969, 969, 969, 969, - 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - - 969, 969, 969, 969, 969, 969 + 361, 360, 359, 358, 357, 356, 355, 352, 349, 348, + 347, 346, 345, 344, 343, 342, 341, 340, 339, 338, + 337, 336, 335, 334, 333, 332, 331, 330, 329, 328, + 327, 326, 325, 324, 323, 322, 321, 320, 316, 315, + 314, 313, 312, 306, 305, 304, 303, 302, 301, 300, + 299, 298, 297, 296, 295, 294, 291, 288, 287, 286, + 285, 284, 283, 280, 279, 278, 277, 274, 269, 268, + 267, 266, 265, 264, 263, 262, 261, 260, 257, 256, + 255, 254, 253, 252, 251, 250, 249, 248, 247, 246, + 245, 244, 243, 242, 238, 237, 236, 235, 234, 233, + + 232, 231, 230, 229, 228, 223, 222, 221, 218, 215, + 214, 213, 212, 211, 210, 209, 206, 205, 204, 203, + 202, 201, 200, 195, 193, 192, 190, 189, 188, 968, + 3, 968, 968, 968, 968, 968, 968, 968, 968, 968, + 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, + 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, + 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, + 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, + 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, + 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, + + 968, 968, 968, 968, 968 } ; -static yyconst short int yy_chk[1307] = +static yyconst short int yy_chk[1306] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -819,142 +819,142 @@ static yyconst short int yy_chk[1307] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 5, 7, 8, 11, 10, - 7, 9, 9, 9, 9, 9, 12, 13, 714, 14, + 7, 9, 9, 9, 9, 9, 12, 13, 716, 14, 12, 4, 5, 9, 8, 11, 18, 7, 10, 13, - 14, 16, 19, 13, 14, 16, 32, 12, 20, 81, - 9, 716, 20, 18, 16, 10, 96, 96, 16, 19, + 14, 16, 19, 13, 14, 16, 32, 12, 20, 98, + 9, 717, 20, 18, 16, 10, 88, 98, 16, 19, 13, 14, 15, 32, 15, 15, 15, 15, 15, 20, - 21, 459, 459, 81, 21, 16, 15, 68, 22, 15, + 21, 96, 96, 88, 21, 16, 15, 718, 22, 15, 16, 17, 22, 17, 17, 17, 17, 17, 23, 23, 33, 21, 15, 15, 15, 17, 24, 17, 29, 22, - 29, 26, 68, 26, 44, 23, 98, 33, 23, 26, - 145, 24, 17, 24, 98, 29, 37, 36, 132, 24, - 26, 44, 145, 17, 132, 33, 170, 23, 23, 23, - 37, 26, 24, 37, 36, 26, 44, 717, 24, 25, - - 170, 25, 26, 27, 27, 26, 30, 25, 30, 28, - 25, 28, 27, 25, 27, 37, 718, 28, 25, 36, - 27, 114, 25, 30, 31, 25, 114, 146, 28, 25, - 114, 146, 25, 25, 34, 28, 27, 25, 27, 31, - 34, 31, 53, 42, 28, 28, 53, 28, 27, 719, - 87, 34, 30, 28, 35, 38, 35, 39, 34, 31, - 42, 45, 34, 53, 38, 46, 34, 87, 168, 38, - 34, 157, 38, 35, 39, 148, 168, 157, 45, 38, - 721, 39, 46, 42, 35, 39, 38, 38, 38, 46, - 148, 38, 35, 39, 38, 47, 45, 50, 236, 39, - - 40, 49, 301, 52, 301, 40, 722, 500, 462, 40, - 41, 500, 47, 40, 50, 40, 40, 40, 49, 41, - 52, 462, 41, 41, 41, 41, 41, 41, 236, 205, - 48, 47, 40, 50, 41, 723, 51, 40, 40, 43, - 724, 43, 40, 49, 205, 205, 40, 48, 43, 41, - 52, 725, 43, 51, 43, 43, 43, 703, 48, 57, - 57, 57, 57, 57, 51, 102, 48, 102, 102, 699, - 726, 43, 703, 699, 102, 43, 65, 65, 65, 65, - 65, 74, 74, 74, 74, 74, 727, 728, 730, 731, - 65, 732, 733, 735, 75, 74, 75, 75, 75, 75, - - 75, 76, 76, 736, 737, 76, 76, 76, 76, 76, - 75, 198, 198, 198, 198, 198, 65, 738, 191, 191, - 739, 74, 191, 191, 191, 191, 191, 196, 196, 196, - 196, 196, 740, 741, 742, 743, 75, 744, 197, 197, - 745, 196, 197, 197, 197, 197, 197, 199, 199, 199, - 199, 199, 298, 455, 746, 747, 298, 308, 308, 308, - 308, 308, 455, 298, 748, 749, 751, 196, 309, 309, - 309, 309, 309, 310, 310, 753, 755, 310, 310, 310, - 310, 310, 311, 311, 311, 311, 311, 312, 312, 312, - 312, 312, 425, 425, 425, 425, 425, 426, 426, 426, - - 426, 426, 463, 756, 757, 758, 759, 760, 761, 762, - 764, 765, 463, 766, 767, 768, 463, 769, 771, 772, - 772, 773, 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 774, 775, 776, 777, 778, 772, 772, 772, - 772, 772, 779, 780, 781, 782, 783, 784, 785, 786, - 787, 789, 790, 791, 792, 793, 795, 796, 797, 799, - 803, 804, 806, 807, 808, 809, 772, 811, 812, 813, - 814, 815, 816, 817, 818, 820, 821, 822, 823, 824, - 825, 828, 831, 832, 833, 834, 835, 836, 837, 838, - 839, 772, 772, 805, 805, 840, 805, 805, 805, 805, - - 805, 805, 805, 805, 805, 805, 841, 843, 845, 846, - 847, 805, 805, 805, 805, 805, 849, 850, 851, 852, - 853, 854, 855, 856, 858, 859, 860, 861, 862, 863, - 864, 865, 866, 867, 868, 870, 872, 873, 874, 875, - 805, 876, 877, 878, 879, 880, 881, 882, 883, 884, - 885, 889, 890, 891, 893, 894, 895, 896, 897, 898, - 899, 900, 901, 902, 904, 805, 805, 905, 906, 907, - 908, 909, 910, 911, 912, 913, 914, 917, 918, 919, + 29, 26, 35, 26, 35, 23, 720, 33, 23, 26, + 145, 24, 17, 24, 23, 29, 37, 36, 133, 24, + 26, 35, 145, 17, 133, 33, 721, 23, 23, 23, + 37, 26, 24, 37, 36, 26, 68, 722, 24, 25, + + 35, 25, 26, 27, 27, 26, 30, 25, 30, 28, + 25, 28, 27, 25, 27, 37, 170, 28, 25, 36, + 27, 68, 25, 30, 148, 25, 31, 146, 28, 25, + 170, 146, 25, 25, 34, 28, 27, 25, 27, 148, + 34, 31, 236, 31, 28, 28, 44, 28, 27, 168, + 38, 34, 30, 28, 42, 31, 39, 168, 34, 38, + 45, 31, 34, 44, 38, 723, 34, 38, 49, 157, + 34, 42, 236, 39, 38, 157, 46, 45, 44, 724, + 39, 38, 38, 38, 39, 49, 38, 238, 52, 38, + 238, 725, 39, 46, 42, 45, 47, 454, 39, 40, + + 46, 726, 51, 50, 40, 52, 454, 53, 40, 41, + 49, 53, 40, 47, 40, 40, 40, 727, 41, 51, + 50, 41, 41, 41, 41, 41, 41, 205, 53, 48, + 51, 40, 47, 41, 702, 52, 40, 40, 43, 50, + 43, 40, 205, 205, 729, 40, 48, 43, 41, 702, + 300, 43, 300, 43, 43, 43, 462, 48, 57, 57, + 57, 57, 57, 114, 102, 48, 102, 102, 114, 462, + 43, 730, 114, 102, 43, 65, 65, 65, 65, 65, + 74, 74, 74, 74, 74, 458, 458, 499, 698, 65, + 731, 499, 698, 75, 74, 75, 75, 75, 75, 75, + + 76, 76, 732, 734, 76, 76, 76, 76, 76, 75, + 198, 198, 198, 198, 198, 65, 735, 191, 191, 736, + 74, 191, 191, 191, 191, 191, 196, 196, 196, 196, + 196, 737, 738, 739, 740, 75, 741, 197, 197, 742, + 196, 197, 197, 197, 197, 197, 199, 199, 199, 199, + 199, 297, 743, 744, 745, 297, 307, 307, 307, 307, + 307, 746, 297, 747, 748, 750, 196, 308, 308, 308, + 308, 308, 309, 309, 752, 754, 309, 309, 309, 309, + 309, 310, 310, 310, 310, 310, 311, 311, 311, 311, + 311, 424, 424, 424, 424, 424, 425, 425, 425, 425, + + 425, 463, 755, 756, 757, 758, 759, 760, 761, 763, + 764, 463, 765, 766, 767, 463, 768, 770, 771, 771, + 772, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 773, 774, 775, 776, 777, 771, 771, 771, 771, + 771, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 788, 789, 790, 791, 792, 794, 795, 796, 798, 802, + 803, 805, 806, 807, 808, 771, 810, 811, 812, 813, + 814, 815, 816, 817, 819, 820, 821, 822, 823, 824, + 827, 830, 831, 832, 833, 834, 835, 836, 837, 838, + 771, 771, 804, 804, 839, 804, 804, 804, 804, 804, + + 804, 804, 804, 804, 804, 840, 842, 844, 845, 846, + 804, 804, 804, 804, 804, 848, 849, 850, 851, 852, + 853, 854, 855, 857, 858, 859, 860, 861, 862, 863, + 864, 865, 866, 867, 869, 871, 872, 873, 874, 804, + 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, + 888, 889, 890, 892, 893, 894, 895, 896, 897, 898, + 899, 900, 901, 903, 804, 804, 904, 905, 906, 907, + 908, 909, 910, 911, 912, 913, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, - 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, - - 941, 942, 943, 944, 945, 947, 948, 950, 951, 952, - 953, 954, 955, 957, 958, 959, 960, 961, 962, 963, - 964, 966, 967, 970, 971, 710, 971, 972, 709, 972, - 973, 708, 973, 974, 707, 974, 706, 705, 704, 701, - 700, 698, 697, 696, 693, 692, 691, 690, 689, 687, - 686, 685, 683, 682, 681, 680, 679, 678, 676, 675, - 674, 673, 672, 669, 668, 667, 666, 665, 664, 663, + 930, 931, 932, 933, 934, 935, 936, 937, 938, 940, + + 941, 942, 943, 944, 946, 947, 949, 950, 951, 952, + 953, 954, 956, 957, 958, 959, 960, 961, 962, 963, + 965, 966, 969, 970, 715, 970, 971, 713, 971, 972, + 709, 972, 973, 708, 973, 707, 706, 705, 704, 703, + 700, 699, 697, 696, 695, 692, 691, 690, 689, 688, + 686, 685, 684, 682, 681, 680, 679, 678, 677, 675, + 674, 673, 672, 671, 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, - 652, 651, 650, 649, 648, 646, 645, 643, 642, 641, - 640, 639, 636, 635, 634, 633, 632, 631, 630, 629, - - 628, 627, 626, 625, 624, 623, 622, 621, 619, 618, - 617, 615, 614, 613, 612, 610, 609, 608, 607, 606, - 605, 604, 603, 602, 600, 598, 597, 596, 595, 594, - 593, 589, 588, 587, 585, 583, 582, 581, 580, 579, - 578, 577, 576, 574, 571, 570, 568, 567, 566, 565, - 563, 560, 558, 557, 556, 555, 554, 553, 552, 551, - 549, 548, 546, 545, 544, 543, 542, 539, 538, 537, - 535, 534, 533, 532, 531, 530, 528, 526, 525, 524, - 523, 520, 519, 518, 517, 516, 515, 514, 511, 510, - 508, 507, 506, 505, 504, 503, 501, 499, 498, 497, - - 496, 495, 494, 493, 491, 490, 489, 488, 487, 483, - 482, 481, 478, 476, 474, 472, 471, 469, 467, 466, - 465, 461, 460, 458, 457, 456, 454, 453, 452, 451, - 450, 448, 447, 446, 445, 444, 443, 442, 441, 440, - 439, 438, 437, 436, 435, 433, 432, 431, 430, 429, - 428, 427, 424, 423, 422, 421, 420, 419, 418, 415, - 414, 413, 412, 410, 408, 407, 406, 405, 404, 402, - 401, 400, 399, 397, 396, 394, 393, 392, 391, 390, - 388, 387, 386, 385, 384, 383, 382, 381, 380, 379, + 652, 651, 650, 649, 648, 647, 645, 644, 642, 641, + 640, 639, 638, 635, 634, 633, 632, 631, 630, 629, + + 628, 627, 626, 625, 624, 623, 622, 621, 620, 618, + 617, 616, 614, 613, 612, 611, 609, 608, 607, 606, + 605, 604, 603, 602, 601, 599, 597, 596, 595, 594, + 593, 592, 588, 587, 586, 584, 582, 581, 580, 579, + 578, 577, 576, 575, 573, 570, 569, 567, 566, 565, + 564, 562, 559, 557, 556, 555, 554, 553, 552, 551, + 550, 548, 547, 545, 544, 543, 542, 541, 538, 537, + 536, 534, 533, 532, 531, 530, 529, 527, 525, 524, + 523, 522, 519, 518, 517, 516, 515, 514, 513, 510, + 509, 507, 506, 505, 504, 503, 502, 500, 498, 497, + + 496, 495, 494, 493, 492, 490, 489, 488, 487, 486, + 482, 481, 480, 477, 475, 474, 472, 471, 469, 467, + 466, 465, 461, 459, 457, 456, 455, 453, 452, 451, + 450, 449, 447, 446, 445, 444, 443, 442, 441, 440, + 439, 438, 437, 436, 435, 434, 432, 431, 430, 429, + 428, 427, 426, 423, 422, 421, 420, 419, 418, 417, + 414, 413, 412, 411, 409, 407, 406, 405, 404, 403, + 401, 400, 399, 398, 396, 395, 393, 392, 391, 390, + 389, 387, 386, 385, 384, 383, 382, 381, 380, 379, 378, 377, 376, 375, 374, 372, 370, 369, 367, 366, 365, 364, 363, 362, 360, 358, 357, 356, 354, 353, - 352, 351, 350, 349, 348, 346, 345, 344, 341, 340, - 339, 338, 337, 335, 333, 332, 331, 330, 329, 328, - 326, 325, 324, 323, 322, 320, 319, 318, 317, 316, - 315, 313, 307, 306, 305, 304, 303, 302, 300, 299, - 297, 296, 295, 294, 293, 292, 291, 290, 289, 288, + 352, 351, 350, 349, 348, 347, 345, 344, 343, 340, + 339, 338, 337, 336, 334, 332, 331, 330, 329, 328, + 327, 325, 324, 323, 322, 321, 319, 318, 317, 315, + 314, 313, 312, 306, 305, 304, 303, 302, 301, 299, + 298, 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, 253, 252, 251, 250, 249, 248, - 246, 245, 244, 243, 242, 241, 239, 238, 237, 235, - 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, - 224, 223, 222, 221, 220, 219, 218, 217, 216, 215, - 214, 213, 212, 211, 210, 209, 208, 207, 206, 204, - 203, 202, 201, 200, 189, 188, 185, 184, 183, 182, - 181, 180, 179, 178, 177, 176, 175, 169, 167, 164, - 162, 160, 159, 158, 156, 151, 150, 149, 147, 144, - 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, - 131, 130, 129, 128, 127, 125, 124, 123, 122, 121, - 120, 119, 118, 117, 116, 115, 113, 112, 111, 110, - - 109, 108, 107, 106, 105, 104, 103, 101, 100, 99, - 97, 95, 94, 93, 92, 91, 90, 89, 88, 86, - 85, 84, 83, 82, 69, 67, 66, 64, 55, 54, - 3, 969, 969, 969, 969, 969, 969, 969, 969, 969, - 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - - 969, 969, 969, 969, 969, 969 + 246, 245, 244, 243, 242, 241, 239, 237, 235, 234, + 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, + 223, 222, 221, 220, 219, 218, 217, 216, 215, 214, + 213, 212, 211, 210, 209, 208, 207, 206, 204, 203, + 202, 201, 200, 189, 188, 185, 184, 183, 182, 181, + 180, 179, 178, 177, 176, 175, 169, 167, 164, 162, + 160, 159, 158, 156, 151, 150, 149, 147, 144, 142, + 141, 140, 139, 138, 137, 136, 135, 134, 132, 131, + 130, 129, 128, 125, 124, 123, 122, 121, 120, 119, + 118, 117, 116, 115, 113, 112, 111, 110, 109, 108, + + 107, 106, 105, 104, 103, 101, 100, 99, 97, 95, + 94, 93, 92, 91, 90, 89, 87, 86, 85, 84, + 83, 82, 81, 69, 67, 66, 64, 55, 54, 3, + 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, + 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, + 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, + 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, + 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, + 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, + 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, + + 968, 968, 968, 968, 968 } ; static yy_state_type yy_last_accepting_state; @@ -1217,13 +1217,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 970 ) + if ( yy_current_state >= 969 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 1232 ); + while ( yy_base[yy_current_state] != 1231 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1481,651 +1481,656 @@ return tSpline; YY_BREAK case 47: YY_RULE_SETUP -#line 113 "Gmsh.l" -return tDelete; +#line 112 "Gmsh.l" +return tCall; YY_BREAK case 48: YY_RULE_SETUP #line 114 "Gmsh.l" -return tDilate; +return tDelete; YY_BREAK case 49: YY_RULE_SETUP #line 115 "Gmsh.l" -return tDuplicata; +return tDilate; YY_BREAK case 50: YY_RULE_SETUP #line 116 "Gmsh.l" -return tDraw; +return tDuplicata; YY_BREAK case 51: YY_RULE_SETUP -#line 118 "Gmsh.l" -return tExp ; +#line 117 "Gmsh.l" +return tDraw; YY_BREAK case 52: YY_RULE_SETUP #line 119 "Gmsh.l" -return tEllipsis; +return tExp ; YY_BREAK case 53: YY_RULE_SETUP #line 120 "Gmsh.l" -return tExtrude; +return tEllipsis; YY_BREAK case 54: YY_RULE_SETUP #line 121 "Gmsh.l" -return tElliptic; +return tExtrude; YY_BREAK case 55: YY_RULE_SETUP #line 122 "Gmsh.l" -return tELLIPSE; +return tElliptic; YY_BREAK case 56: YY_RULE_SETUP -#line 124 "Gmsh.l" -return tFabs ; +#line 123 "Gmsh.l" +return tELLIPSE; YY_BREAK case 57: YY_RULE_SETUP -#line 125 "Gmsh.l" -return tFloor ; +#line 124 "Gmsh.l" +return tEndFor; YY_BREAK case 58: YY_RULE_SETUP -#line 126 "Gmsh.l" -return tFmod ; +#line 125 "Gmsh.l" +return tEndIf; YY_BREAK case 59: YY_RULE_SETUP -#line 128 "Gmsh.l" -return tHypot ; +#line 126 "Gmsh.l" +return tExit; YY_BREAK case 60: YY_RULE_SETUP -#line 130 "Gmsh.l" -return tIn; +#line 128 "Gmsh.l" +return tFabs ; YY_BREAK case 61: YY_RULE_SETUP -#line 132 "Gmsh.l" -return tKnots; +#line 129 "Gmsh.l" +return tFloor ; YY_BREAK case 62: YY_RULE_SETUP -#line 134 "Gmsh.l" -return tLength; +#line 130 "Gmsh.l" +return tFmod ; YY_BREAK case 63: YY_RULE_SETUP -#line 135 "Gmsh.l" -return tLine; +#line 131 "Gmsh.l" +return tFor; YY_BREAK case 64: YY_RULE_SETUP -#line 136 "Gmsh.l" -return tLoop; +#line 132 "Gmsh.l" +return tFunction; YY_BREAK case 65: YY_RULE_SETUP -#line 137 "Gmsh.l" -return tLog ; +#line 134 "Gmsh.l" +return tHypot ; YY_BREAK case 66: YY_RULE_SETUP -#line 138 "Gmsh.l" -return tLog10 ; +#line 136 "Gmsh.l" +return tIn; YY_BREAK case 67: YY_RULE_SETUP -#line 139 "Gmsh.l" -return tLayers; +#line 137 "Gmsh.l" +return tIf; YY_BREAK case 68: YY_RULE_SETUP -#line 141 "Gmsh.l" -return tModulo ; +#line 139 "Gmsh.l" +return tKnots; YY_BREAK case 69: YY_RULE_SETUP -#line 143 "Gmsh.l" -return tNurbs; +#line 141 "Gmsh.l" +return tLength; YY_BREAK case 70: YY_RULE_SETUP -#line 145 "Gmsh.l" -return tOrder; +#line 142 "Gmsh.l" +return tLine; YY_BREAK case 71: YY_RULE_SETUP -#line 147 "Gmsh.l" -return tPhysical; +#line 143 "Gmsh.l" +return tLoop; YY_BREAK case 72: YY_RULE_SETUP -#line 148 "Gmsh.l" -return tPi; +#line 144 "Gmsh.l" +return tLog ; YY_BREAK case 73: YY_RULE_SETUP -#line 149 "Gmsh.l" -return tPlane; +#line 145 "Gmsh.l" +return tLog10 ; YY_BREAK case 74: YY_RULE_SETUP -#line 150 "Gmsh.l" -return tPoint; +#line 146 "Gmsh.l" +return tLayers; YY_BREAK case 75: YY_RULE_SETUP -#line 151 "Gmsh.l" -return tProgression; +#line 148 "Gmsh.l" +return tModulo ; YY_BREAK case 76: YY_RULE_SETUP -#line 152 "Gmsh.l" -return tProgression; +#line 150 "Gmsh.l" +return tNurbs; YY_BREAK case 77: YY_RULE_SETUP -#line 153 "Gmsh.l" -return tParametric; +#line 152 "Gmsh.l" +return tOrder; YY_BREAK case 78: YY_RULE_SETUP #line 154 "Gmsh.l" -return tPrintf ; +return tPhysical; YY_BREAK case 79: YY_RULE_SETUP -#line 156 "Gmsh.l" -return tRecombine; +#line 155 "Gmsh.l" +return tPi; YY_BREAK case 80: YY_RULE_SETUP -#line 157 "Gmsh.l" -return tRotate; +#line 156 "Gmsh.l" +return tPlane; YY_BREAK case 81: YY_RULE_SETUP -#line 158 "Gmsh.l" -return tRuled; +#line 157 "Gmsh.l" +return tPoint; YY_BREAK case 82: YY_RULE_SETUP -#line 159 "Gmsh.l" -return tRand; +#line 158 "Gmsh.l" +return tProgression; YY_BREAK case 83: YY_RULE_SETUP -#line 161 "Gmsh.l" -return tSqrt ; +#line 159 "Gmsh.l" +return tProgression; YY_BREAK case 84: YY_RULE_SETUP -#line 162 "Gmsh.l" -return tSin ; +#line 160 "Gmsh.l" +return tParametric; YY_BREAK case 85: YY_RULE_SETUP -#line 163 "Gmsh.l" -return tSinh ; +#line 161 "Gmsh.l" +return tPrintf ; YY_BREAK case 86: YY_RULE_SETUP -#line 164 "Gmsh.l" -return tSpline; +#line 163 "Gmsh.l" +return tRecombine; YY_BREAK case 87: YY_RULE_SETUP -#line 165 "Gmsh.l" -return tSurface; +#line 164 "Gmsh.l" +return tRotate; YY_BREAK case 88: YY_RULE_SETUP -#line 166 "Gmsh.l" -return tSymmetry; +#line 165 "Gmsh.l" +return tRuled; YY_BREAK case 89: YY_RULE_SETUP -#line 167 "Gmsh.l" -return tSprintf ; +#line 166 "Gmsh.l" +return tRand; YY_BREAK case 90: YY_RULE_SETUP -#line 169 "Gmsh.l" -return tTransfinite; +#line 167 "Gmsh.l" +return tReturn; YY_BREAK case 91: YY_RULE_SETUP -#line 170 "Gmsh.l" -return tTranslate; +#line 169 "Gmsh.l" +return tSqrt ; YY_BREAK case 92: YY_RULE_SETUP -#line 171 "Gmsh.l" -return tTanh ; +#line 170 "Gmsh.l" +return tSin ; YY_BREAK case 93: YY_RULE_SETUP -#line 172 "Gmsh.l" -return tTan; +#line 171 "Gmsh.l" +return tSinh ; YY_BREAK case 94: YY_RULE_SETUP -#line 173 "Gmsh.l" -return tTrimmed; +#line 172 "Gmsh.l" +return tSpline; YY_BREAK case 95: YY_RULE_SETUP -#line 175 "Gmsh.l" -return tUsing; +#line 173 "Gmsh.l" +return tSurface; YY_BREAK case 96: YY_RULE_SETUP -#line 177 "Gmsh.l" -return tView; +#line 174 "Gmsh.l" +return tSymmetry; YY_BREAK case 97: YY_RULE_SETUP -#line 178 "Gmsh.l" -return tVolume; +#line 175 "Gmsh.l" +return tSprintf ; YY_BREAK case 98: YY_RULE_SETUP -#line 180 "Gmsh.l" -return tWith; +#line 177 "Gmsh.l" +return tTransfinite; YY_BREAK case 99: YY_RULE_SETUP -#line 182 "Gmsh.l" -return tFor; +#line 178 "Gmsh.l" +return tTranslate; YY_BREAK case 100: YY_RULE_SETUP -#line 183 "Gmsh.l" -return tEndFor; +#line 179 "Gmsh.l" +return tTanh ; YY_BREAK case 101: YY_RULE_SETUP -#line 184 "Gmsh.l" -return tExit; +#line 180 "Gmsh.l" +return tTan; YY_BREAK case 102: YY_RULE_SETUP -#line 185 "Gmsh.l" -return tMerge; +#line 181 "Gmsh.l" +return tTrimmed; YY_BREAK case 103: YY_RULE_SETUP -#line 186 "Gmsh.l" -return tFunction; +#line 183 "Gmsh.l" +return tUsing; YY_BREAK case 104: YY_RULE_SETUP -#line 187 "Gmsh.l" -return tReturn; +#line 185 "Gmsh.l" +return tView; YY_BREAK case 105: YY_RULE_SETUP -#line 188 "Gmsh.l" -return tCall; +#line 186 "Gmsh.l" +return tVolume; YY_BREAK case 106: YY_RULE_SETUP +#line 188 "Gmsh.l" +return tWith; + YY_BREAK +case 107: +YY_RULE_SETUP #line 190 "Gmsh.l" return tScalarTetrahedron; YY_BREAK -case 107: +case 108: YY_RULE_SETUP #line 191 "Gmsh.l" return tVectorTetrahedron; YY_BREAK -case 108: +case 109: YY_RULE_SETUP #line 192 "Gmsh.l" return tTensorTetrahedron; YY_BREAK -case 109: +case 110: YY_RULE_SETUP #line 193 "Gmsh.l" return tScalarTriangle; YY_BREAK -case 110: +case 111: YY_RULE_SETUP #line 194 "Gmsh.l" return tVectorTriangle; YY_BREAK -case 111: +case 112: YY_RULE_SETUP #line 195 "Gmsh.l" return tTensorTriangle; YY_BREAK -case 112: +case 113: YY_RULE_SETUP #line 196 "Gmsh.l" return tScalarLine; YY_BREAK -case 113: +case 114: YY_RULE_SETUP #line 197 "Gmsh.l" return tVectorLine; YY_BREAK -case 114: +case 115: YY_RULE_SETUP #line 198 "Gmsh.l" return tTensorLine; YY_BREAK -case 115: +case 116: YY_RULE_SETUP #line 199 "Gmsh.l" return tScalarPoint; YY_BREAK -case 116: +case 117: YY_RULE_SETUP #line 200 "Gmsh.l" return tVectorPoint; YY_BREAK -case 117: +case 118: YY_RULE_SETUP #line 201 "Gmsh.l" return tTensorPoint; YY_BREAK -case 118: +case 119: YY_RULE_SETUP #line 204 "Gmsh.l" return tCARTESIAN_POINT; YY_BREAK -case 119: +case 120: YY_RULE_SETUP #line 205 "Gmsh.l" return tB_SPLINE_SURFACE_WITH_KNOTS; YY_BREAK -case 120: +case 121: YY_RULE_SETUP #line 206 "Gmsh.l" return tB_SPLINE_CURVE_WITH_KNOTS; YY_BREAK -case 121: +case 122: YY_RULE_SETUP #line 207 "Gmsh.l" return tUNSPECIFIED; YY_BREAK -case 122: +case 123: YY_RULE_SETUP #line 208 "Gmsh.l" return tCONTINUOUS; YY_BREAK -case 123: +case 124: YY_RULE_SETUP #line 209 "Gmsh.l" return tFALSE; YY_BREAK -case 124: +case 125: YY_RULE_SETUP #line 210 "Gmsh.l" return tTRUE; YY_BREAK -case 125: +case 126: YY_RULE_SETUP #line 211 "Gmsh.l" return tU; YY_BREAK -case 126: +case 127: YY_RULE_SETUP #line 212 "Gmsh.l" return tV; YY_BREAK -case 127: +case 128: YY_RULE_SETUP #line 213 "Gmsh.l" return tORIENTED_EDGE; YY_BREAK -case 128: +case 129: YY_RULE_SETUP #line 214 "Gmsh.l" return tEDGE_CURVE; YY_BREAK -case 129: +case 130: YY_RULE_SETUP #line 215 "Gmsh.l" return tEDGE_LOOP; YY_BREAK -case 130: +case 131: YY_RULE_SETUP #line 216 "Gmsh.l" return tVERTEX_POINT; YY_BREAK -case 131: +case 132: YY_RULE_SETUP #line 217 "Gmsh.l" return tFACE_OUTER_BOUND; YY_BREAK -case 132: +case 133: YY_RULE_SETUP #line 218 "Gmsh.l" return tFACE_BOUND; YY_BREAK -case 133: +case 134: YY_RULE_SETUP #line 219 "Gmsh.l" return tADVANCED_FACE; YY_BREAK -case 134: +case 135: YY_RULE_SETUP #line 220 "Gmsh.l" return tLine; YY_BREAK -case 135: +case 136: YY_RULE_SETUP #line 221 "Gmsh.l" return tVECTOR; YY_BREAK -case 136: +case 137: YY_RULE_SETUP #line 222 "Gmsh.l" return tDIRECTION; YY_BREAK -case 137: +case 138: YY_RULE_SETUP #line 223 "Gmsh.l" return tAXIS2_PLACEMENT_3D; YY_BREAK -case 138: +case 139: YY_RULE_SETUP #line 224 "Gmsh.l" return tPLANE; YY_BREAK -case 139: +case 140: YY_RULE_SETUP #line 225 "Gmsh.l" return tHEADER; YY_BREAK -case 140: +case 141: YY_RULE_SETUP #line 226 "Gmsh.l" return tDATA; YY_BREAK -case 141: +case 142: YY_RULE_SETUP #line 227 "Gmsh.l" return tFILE_SCHEMA; YY_BREAK -case 142: +case 143: YY_RULE_SETUP #line 228 "Gmsh.l" return tFILE_NAME; YY_BREAK -case 143: +case 144: YY_RULE_SETUP #line 229 "Gmsh.l" return tFILE_DESCRIPTION; YY_BREAK -case 144: +case 145: YY_RULE_SETUP #line 230 "Gmsh.l" return tISO; YY_BREAK -case 145: +case 146: YY_RULE_SETUP #line 231 "Gmsh.l" return tENDISO; YY_BREAK -case 146: +case 147: YY_RULE_SETUP #line 232 "Gmsh.l" return tENDSEC; YY_BREAK -case 147: +case 148: YY_RULE_SETUP #line 233 "Gmsh.l" return tCLOSED_SHELL; YY_BREAK -case 148: +case 149: YY_RULE_SETUP #line 234 "Gmsh.l" return tADVANCED_BREP_SHAPE_REPRESENTATION; YY_BREAK -case 149: +case 150: YY_RULE_SETUP #line 235 "Gmsh.l" return tMANIFOLD_SOLID_BREP; YY_BREAK -case 150: +case 151: YY_RULE_SETUP #line 236 "Gmsh.l" return tCYLINDRICAL_SURFACE; YY_BREAK -case 151: +case 152: YY_RULE_SETUP #line 237 "Gmsh.l" return tCONICAL_SURFACE; YY_BREAK -case 152: +case 153: YY_RULE_SETUP #line 238 "Gmsh.l" return tTOROIDAL_SURFACE; YY_BREAK -case 153: +case 154: YY_RULE_SETUP #line 239 "Gmsh.l" return tCIRCLE; YY_BREAK -case 154: +case 155: YY_RULE_SETUP #line 240 "Gmsh.l" return tTRIMMED_CURVE; YY_BREAK -case 155: +case 156: YY_RULE_SETUP #line 241 "Gmsh.l" return tGEOMETRIC_SET; YY_BREAK -case 156: +case 157: YY_RULE_SETUP #line 242 "Gmsh.l" return tCOMPOSITE_CURVE_SEGMENT; YY_BREAK -case 157: +case 158: YY_RULE_SETUP #line 243 "Gmsh.l" return tCOMPOSITE_CURVE; YY_BREAK -case 158: +case 159: YY_RULE_SETUP #line 244 "Gmsh.l" return tPRODUCT_DEFINITION; YY_BREAK -case 159: +case 160: YY_RULE_SETUP #line 245 "Gmsh.l" return tPRODUCT_DEFINITION_SHAPE; YY_BREAK -case 160: +case 161: YY_RULE_SETUP #line 246 "Gmsh.l" return tSHAPE_DEFINITION_REPRESENTATION; YY_BREAK -case 161: +case 162: YY_RULE_SETUP #line 248 "Gmsh.l" return tVertex; YY_BREAK -case 162: +case 163: YY_RULE_SETUP #line 249 "Gmsh.l" return tFacet; YY_BREAK -case 163: +case 164: YY_RULE_SETUP #line 250 "Gmsh.l" return tNormal; YY_BREAK -case 164: +case 165: YY_RULE_SETUP #line 251 "Gmsh.l" return tOuter; YY_BREAK -case 165: +case 166: YY_RULE_SETUP #line 252 "Gmsh.l" return tLoopSTL; YY_BREAK -case 166: +case 167: YY_RULE_SETUP #line 253 "Gmsh.l" return tEndLoop; YY_BREAK -case 167: +case 168: YY_RULE_SETUP #line 254 "Gmsh.l" return tEndFacet; YY_BREAK -case 168: +case 169: YY_RULE_SETUP #line 255 "Gmsh.l" {skipline();return tEndSolid;} YY_BREAK -case 169: +case 170: YY_RULE_SETUP #line 256 "Gmsh.l" {skipline();return tSolid;} YY_BREAK -case 170: +case 171: YY_RULE_SETUP #line 258 "Gmsh.l" {yylval.d = (double)atoi((char*)(yytext+1)); return tDOUBLE;} YY_BREAK -case 171: -#line 261 "Gmsh.l" case 172: -#line 262 "Gmsh.l" +#line 261 "Gmsh.l" case 173: -#line 263 "Gmsh.l" +#line 262 "Gmsh.l" case 174: +#line 263 "Gmsh.l" +case 175: YY_RULE_SETUP #line 263 "Gmsh.l" {yylval.d = atof((char *)yytext); return tDOUBLE;} YY_BREAK -case 175: +case 176: YY_RULE_SETUP #line 265 "Gmsh.l" {yylval.c = strsave((char*)yytext); return tSTRING;} YY_BREAK -case 176: +case 177: YY_RULE_SETUP #line 267 "Gmsh.l" return yytext[0]; YY_BREAK -case 177: +case 178: YY_RULE_SETUP #line 269 "Gmsh.l" ECHO; YY_BREAK -#line 2129 "Gmsh.yy.cpp" +#line 2134 "Gmsh.yy.cpp" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2417,7 +2422,7 @@ static yy_state_type yy_get_previous_state() while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 970 ) + if ( yy_current_state >= 969 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2452,11 +2457,11 @@ yy_state_type yy_current_state; while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 970 ) + if ( yy_current_state >= 969 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 969); + yy_is_jam = (yy_current_state == 968); return yy_is_jam ? 0 : yy_current_state; } diff --git a/Unix/Main.cpp b/Unix/Main.cpp index ac977d52a4cec1ddc757a8bf7568b66d8a356130..80fbdc79786ef6aa609a8318b5266d6290d805e2 100644 --- a/Unix/Main.cpp +++ b/Unix/Main.cpp @@ -1,4 +1,4 @@ -/* $Id: Main.cpp,v 1.27 2000-12-09 17:33:40 geuzaine Exp $ */ +/* $Id: Main.cpp,v 1.28 2000-12-09 22:26:13 geuzaine Exp $ */ #include <signal.h> @@ -104,8 +104,6 @@ void ParseFile(char *f){ fgets(String, sizeof(String), yyin) ; fsetpos(yyin, &position); - //printf("String :: %s",String); - if(!strncmp(String, "$PTS", 4) || !strncmp(String, "$NO", 3) || !strncmp(String, "$ELM", 4)){ diff --git a/doc/FORMATS b/doc/FORMATS index 5230c0dcd444ecc3a939de3a250de0d076893de9..4a28a9a3c531c82f28d9d408f9eafdbeebaa75ff 100644 --- a/doc/FORMATS +++ b/doc/FORMATS @@ -1,26 +1,36 @@ +$Id: FORMATS,v 1.4 2000-12-09 22:26:13 geuzaine Exp $ + +This document describes the mesh and post-processing file formats for +Gmsh, version 0.995. + +(This document deals only with the import/export interfaces for +Gmsh. The language driving Gmsh's behaviour for defining geometries, +options, scripts, etc. is explained step by step in the tutorials.) + Gmsh Mesh File Format ===================== - The 'msh' file format is the native output file format for - Gmsh. The file is divided in two sections (enclosed in $KEY and - $ENDKEY pairs): $NOD/$ENDNOD defines the nodes and $ELM/$ENDELM - defines the elements. +The 'msh' file format is the native output file format for Gmsh. The +file is divided in two sections (enclosed in $KEY and $ENDKEY pairs): +$NOD/$ENDNOD defines the nodes and $ELM/$ENDELM defines the elements. $NOD number-of-nodes - node-number x-coord y-coord z-coord + node-number coord1 coord2 coord3 ... $ENDNOD + $ELM number-of-elements - elm-number elm-type elm-region unused number-of-nodes node-numbers + elm-number elm-type elm-region unused nb-nodes node-numbers ... $ENDELM - All the syntactic variables stand for integers except x-coord, - y-coord and z-coord which stand for floating point values. The - elm-type value defines the geometrical type for the element: +All the syntactic variables stand for integers except coord1, coord2 +and coord3 which stand for floating point values, and node-numbers +which stand for a list of nb-nodes integers. The elm-type value +defines the geometrical type for the element: 1 Line (2 nodes, 1 edge). 2 Triangle (3 nodes, 3 edges). @@ -31,143 +41,157 @@ Gmsh Mesh File Format 7 Pyramid (5 nodes, 8 edges, 5 facets). 15 Point (1 node). - The elm-region value is the number of the physical entity to which - the element belongs. +The elm-region value is the number of the physical entity to which the +element belongs. Gmsh Ascii Post-Processing File Format ====================================== - A post-processing file is divided in several sections: one - format section (enclosed between $PostFormat/$EndPostFormat) and - (possibly multiple) post-processing views (enclosed between - $View/$EndView pairs). +A post-processing file is divided in several sections: one format +section (enclosed between $PostFormat/$EndPostFormat) and (possibly +multiple) post-processing views (enclosed between $View/$EndView +pairs). $PostFormat - version-number 0 + version-number file-type $EndPostFormat + $View - name nb-time-steps - nb-SP nb-VP nb-TP - nb-SL nb-VL nb-TL - nb-ST nb-VT nb-TT - nb-SS nb-VS nb-TS + view-name nb-time-steps + nb-scalar-points nb-vector-points nb-tensor-points + nb-scalar-lines nb-vector-lines nb-tensor-lines + nb-scalar-triangles nb-vector-triangles nb-tensor-triangles + nb-scalar-tetrahedra nb-vector-tetrahedra nb-tensor-tetrahedra time-step-values - SP-value SP-value SP-value ... - VP-value VP-value VP-value ... - TP-value TP-value TP-value ... - SL-value SL-value SL-value ... - VL-value VL-value VL-value ... - TL-value TL-value TL-value ... - ST-value ST-value ST-value ... - VT-value VT-value VT-value ... - TT-value TT-value TT-value ... - SS-value SS-value SS-value ... - VS-value VS-value VS-value ... - TS-value TS-value TS-value ... + scalar-point-value ... + vector-point-value ... + tensor-point-value ... + scalar-line-value ... + vector-line-value ... + tensor-line-value ... + scalar-triangle-value ... + vector-triangle-value ... + tensor-triangle-value ... + scalar-tetrahedron-value ... + vector-tetrahedron-value ... + tensor-tetrahedron-value ... $endView - $View - ... - $EndView - $View + +version-number is a floating point number giving the version of +Gmsh to which the file is destined (e.g. 0.995). + +file-type is an integer equal to 0 in for the ascii file format. + +view-name is a string containing the name of the view (max. 256 characters) + +nb-time-step is an integer giving the number of time steps in the view + +nb-scalar-points, nb-vector-points, etc. are integers giving the +number of scalar points, vector points, etc. in the view. + +time-step-values is a list of nb-time-steps double precision numbers +giving the value of the time (or any other variable) for which an +evolution was saved. + +scalar-point-value, vector-point-value, etc. are lists of double +precision numbers giving the node coordinates and the values +associated to the nodes of the nb-scalar-points, nb-vector-points, +etc. for each time-step-value. For example, vector-triangle-value is +defined as + + coord1-node1 coord1-node2 coord1-node3 + coord2-node1 coord2-node2 coord2-node3 + coord3-node1 coord3-node2 coord3-node3 + comp1-node1-time1 comp2-node1-time1 comp3-node1-time1 + comp1-node2-time1 comp2-node2-time1 comp3-node2-time1 + comp1-node3-time1 comp2-node3-time1 comp3-node3-time1 + comp1-node1-time2 comp2-node1-time2 comp3-node1-time2 + comp1-node2-time2 comp2-node2-time2 comp3-node2-time2 + comp1-node3-time2 comp2-node3-time2 comp3-node3-time2 ... - $EndView - - where - - 'version-number' is a double precision number giving the version - of Gmsh to which the file is destined (e.g. 0.995) - - 'name' is the name of the view - - 'nb-time-step' is an integer giving the number of time steps in the view - - 'nb-SP', 'nb-VP', 'nb-TP', 'nb-SL', 'nb-VL', 'nb-TL', 'nb-ST', 'nb-VT', - 'nb-TT', 'nb-SS', 'nb-VS' and 'nb-TS' are integers giving the number of - scalar points, vector points, tensor points, scalar lines, vector lines, - tensor lines, scalar triangles, vector triangles, tensor triangles, - scalar tetrahedra, vector tetrahedra and tensor tetrahedra. - - 'SP-value' consists of a list of double precision numbers: the three - first represent the coordinates of the point, and the - 'nb-time-step' following represent the field values. Gmsh Binary Post-Processing File Format ======================================= - The binary post-processing file format is the same as the ascii file format, - except that: - - the format field is the following - $PostFormat - version-number 1 - $EndPostFormat - - all double precision vectors ('time-step-values', 'SP-values', 'VP-values', etc.) - are written in binary format - - AND there is an additional integer written before the 'time-step-values', and - which contains the value '1'. This integer serves as a test for little/big endian - detection. - - Here is an example, of C code to write a view in binary format (nb-SP, nb-VP, ... - have their classical meaning; SP-values, VP-values, ... are arrays of double - precision numbers containing respectively nb-SP, nb-VP, ... 'SP-value'. - 'Time-values' is an array of 'nb-time-step' double precision numbers): - - int one=1; - - fprintf(file, "$View /* test */\n"); - fprintf(file, "test %d %d %d %d %d %d %d %d %d %d %d %d %d\n", - nb-time-step, - nb-SP, nb-VP, nb-TP, nb-SL, nb-VL, nb-TL, - nb-ST, nb-VT, nb-TT, nb-SS, nb-VS, nb-TS); - fwrite(&one, sizeof(int), 1, file); - fwrite(Time-values, sizeof(double), nb-SP, file); - fwrite(SP-values, sizeof(double), nb-SP, file); - fwrite(VP-values, sizeof(double), nb-VP, file); - fwrite(TP-values, sizeof(double), nb-TP, file); - fwrite(SL-values, sizeof(double), nb-SL, file); - fwrite(VL-values, sizeof(double), nb-VL, file); - fwrite(TL-values, sizeof(double), nb-TL, file); - fwrite(ST-values, sizeof(double), nb-ST, file); - fwrite(VT-values, sizeof(double), nb-VT, file); - fwrite(TT-values, sizeof(double), nb-TT, file); - fwrite(SS-values, sizeof(double), nb-SS, file); - fwrite(VS-values, sizeof(double), nb-VS, file); - fwrite(TS-values, sizeof(double), nb-TS, file); - fprintf(file, "$EndView\n"); +The binary post-processing file format is the same as the ascii file format, +except that: + +1) file-type equals 1. + +2) all lists of double precision numbers are written in binary format + +3) there is an additional integer, of value 1, written before + time-step-values. This integer serves to detect if the computer on + which the binary file was written and the computer on which the + file is read are of the same type (little or big endian). + +Here is an pseudo C code to write the beginning of a post-processing +file in binary format: + +int one = 1; + +fprintf(file, "$PostFormat\n"); +fprintf(file, "%g %d\n", 0.995, 1); +fprintf(file, "$EndPostFormat\n"); + +fprintf(file, "$View\n"); +fprintf(file, "%s %d %d %d %d %d %d %d %d %d %d %d %d %d\n", + view-name, nb-time-steps, + nb-scalar-points, nb-vector-points, nb-tensor-points, + nb-scalar-lines, nb-vector-lines, nb-tensor-lines, + nb-scalar-triangles, nb-vector-triangles, nb-tensor-triangles, + nb-scalar-tetrahedra, nb-vector-tetrahedra, nb-tensor-tetrahedra); +fwrite(&one, sizeof(int), 1, file); +fwrite(time-step-values, sizeof(double), nb-time-steps, file); +fwrite(all-scalar-point-values, sizeof(double), all-scalar-points, file); +... +fprintf(file, "$EndView\n"); + +In this pseudo-code, all-scalar-point-values is the array of double +precision numbers containing all the scalar-point-value lists, put one +at the end of each other in order to form a long array of double. The +principle is the same for all other kinds of values. Gmsh Parsed Post-Processing Format ================================== - For testing purposes (or with very small data sets), there is an additional, - post-processing format which is parsed by the same grammar analyser as the - geometry. You can thus for example embed small post-processing views into your - geometrical descriptions. +For testing purposes (or with very small data sets, e.g. in the +tutorials), there is an additional post-processing format which is +parsed by the same grammar analyser as the geometry. You can thus for +example embed small post-processing views into your geometrical +descriptions. The format of the parsed post-processing files is the +following: View "name" { - type_of_element (list_of_coordinates) {list_of_values} ; + type-of-element (list-of-coordinates) {list-of-values} ; ... - } + }; 12 base objects can be displayed: - type_of_element list_of_coordinates list_of_values + type-of-element list-of-coordinates list-of-values -------------------------------------------------------------------------------- - scalar point SP 3 1 * nb time steps - vector point VP 3 3 * nb time steps - tensor point TP 3 9 * nb time steps - scalar line SL 6 2 * nb time steps - vector line VL 6 6 * nb time steps - tensor line TL 6 18 * nb time steps - scalar triangle ST 9 3 * nb time steps - vector triangle VT 9 9 * nb time steps - tensor triangle TT 9 27 * nb time steps - scalar tetrahedron SS 12 4 * nb time steps - vector tetrahedron VS 12 12 * nb time steps - tensor tetrahedron TS 12 36 * nb time steps - - - The coordinates are given "by node", that is (x,y,z) for a point, (x1,y1,z1,x2,y2,z2) - for a line, (x1,y1,z1,x2,y2,z2,x3,y3,z3) for a triangle, ... - - The values are given by timestep, by node and by component. That is, for a vector line, - {valxnode1time1,valynode1time1,valznode1time1, valxnode2time1,valynode2time1,valznode2time1, - valxnode1time2,valynode1time2,valznode1time2, valxnode2time2,valynode2time2,valznode2time2, ...} - + scalar point SP 3 1 * nb-time-steps + vector point VP 3 3 * nb-time-steps + tensor point TP 3 9 * nb-time-steps + scalar line SL 6 2 * nb-time-steps + vector line VL 6 6 * nb-time-steps + tensor line TL 6 18 * nb-time-steps + scalar triangle ST 9 3 * nb-time-steps + vector triangle VT 9 9 * nb-time-steps + tensor triangle TT 9 27 * nb-time-steps + scalar tetrahedron SS 12 4 * nb-time-steps + vector tetrahedron VS 12 12 * nb-time-steps + tensor tetrahedron TS 12 36 * nb-time-steps + +Contrary to the ascii post-processing file format, the coordinates are +given by node, i.e. (coord1, coord2, coord3) for a point, +(coord1-node1, coord2-node1, coord3-node1, coord1-node2, coord2-node2, +coord3-node2) for a line, (coord1-node1, coord2-node1, coord3-node1, +coord1-node2, coord2-node2, coord3-node2, coord1-node3, coord2-node3, +coord3-node3) for a triangle, etc. The values are given in the same +order as for the ascii post-processing file format. diff --git a/doc/gmsh.1 b/doc/gmsh.1 index 69c2fb897cafee8be564d94df6c650f3cdb36685..52196b1e3b524059a142454ea12bcee53ce078c3 100644 --- a/doc/gmsh.1 +++ b/doc/gmsh.1 @@ -74,7 +74,7 @@ boundary restoration to force all the edges/faces of the curves/surfaces to be present in the initial mesh; .TP 4 .B 4. -suppression of all the undesired triangles/tetrahedra (in +suppression of all the unwanted triangles/tetrahedra (in particular those containing the nodes of the initial box); .TP 4 .B 5. @@ -127,7 +127,7 @@ apply a global scaling factor to the generated mesh (default value is 1.0). .TP 4 .B \-clscale float -apply a global scaling factor to all the characteristic lenghts in the +apply a global scaling factor to all the characteristic lengths in the mesh (default value is 1.0). .TP 4 .B \-bgm file diff --git a/doc/gmsh.texi b/doc/gmsh.texi index a51045c43b1e302629c37886289d6d4ae0e373c3..7af29aebc7e6a63fdf96f5687107871ce55b07a1 100644 --- a/doc/gmsh.texi +++ b/doc/gmsh.texi @@ -1,50 +1,64 @@ \input texinfo.tex @c -*-texinfo-*- +@c $Id: gmsh.texi,v 1.2 2000-12-09 22:26:13 geuzaine Exp $ @c ========================================================================= @c -@c This is the GMSH documentation texinfo source file +@c This is the Gmsh documentation texinfo source file @c @c Indexing : @cindex == concepts @c @tindex == syntax -@c @mvindex == metasyntactic variables @c @c Before release, run C-u C-c C-u C-a in GNU Emacs @c This updates all node pointers and menus +@c +@c info : makeinfo getdp.texi +@c dvi : texi2dvi getdp.texi +@c ps : dvips getdp.dvi -o +@c pdf : texi2pdf getdp.texi +@c html : texi2html -init_file getdp.t2h getdp.texi +@c nroff : texi2roff getdp.texi @c @c ========================================================================= @c %**start of header -@setfilename gmsh.info -@set EDITION 0.1 -@set VERSION 0.98 -@set UPDATED 4 March 2000 -@set UPDATE-MONTH March 2000 +@setfilename gmsh.info +@set EDITION 1. +@set VERSION 0.995 +@set DAY 09 +@set MONTH December 2000 @set COPYRIGHT @copyright{} 1997-2000 Christophe Geuzaine, Jean-Francois Remacle -@set WEB @uref{http://www.geuz.org/gmsh/} -@settitle GMSH @value{VERSION} +@set WEB-GMSH @uref{http://www.geuz.org/gmsh/} +@settitle Gmsh @value{VERSION} @footnotestyle separate @setchapternewpage odd @paragraphindent 0 @finalout -@defcodeindex mv @c %**end of header +@c ========================================================================= +@c Info directives +@c ========================================================================= + @ifinfo -@dircategory Mesh Generation +@dircategory Math @direntry -* Gmsh: (gmsh). a mesh generator with pre- and post-processing facilities +* Gmsh: (gmsh). a 3D mesh generator with pre- and post-processing facilities @end direntry @noindent -This is Edition @value{EDITION}, last updated @value{UPDATED}, of the +This is Edition @value{EDITION}, last updated @value{DAY} @value{MONTH}, of the @cite{Gmsh Manual}, for Gmsh, Version @value{VERSION}. @noindent Copyright @value{COPYRIGHT} @end ifinfo +@c ========================================================================= +@c TeX directives +@c ========================================================================= + @iftex @global@let@bullet=- @global@let@sl=@it @global@setfont@indit@itshape{9}{1000} -@global@let@linkcolor=@Blue -@parskip=5pt +@c @global@let@linkcolor=@Orange +@c @parskip=5pt @end iftex @c ========================================================================= @@ -52,23 +66,27 @@ Copyright @value{COPYRIGHT} @c ========================================================================= @shorttitlepage Gmsh + @titlepage -@title Gmsh -@subtitle The documentation for Gmsh, Version @value{VERSION} -@subtitle A automatic mesh generator with pre- and post-processing facilities + +@title Gmsh Manual + +@subtitle The documentation for Gmsh, Version @value{VERSION} @subtitle -@subtitle Edition @value{EDITION}, @value{UPDATE-MONTH} +@subtitle Edition @value{EDITION}, @value{MONTH} @author Christophe Geuzaine @author Jean-Francois Remacle + @page @vskip 0pt plus 1filll Copyright @value{COPYRIGHT} @sp 1 -This document was prepared with Texinfo (@uref{http://texinfo.org}). The source -of this document as well as formatted versions (info, postscript, pdf, html) -are available at @value{WEB}. +This manual was prepared with Texinfo (@uref{http://texinfo.org}). The source +of the document as well as several formatted versions (info, postscript, pdf, +html) are available at @value{WEB-GMSH}. + @end titlepage @c ========================================================================= @@ -79,43 +97,47 @@ are available at @value{WEB}. @contents @c ========================================================================= -@c Top node +@c Top node (for all output, except TeX) @c ========================================================================= @ifnottex -@node Top, Copying, (dir), (dir) +@node Top, Copying Conditions, (dir), (dir) @top Gmsh -Gmsh is an automatic three-dimensional mesh generator, with pre- and -post-processing facilities. +@chapheading The documentation for Gmsh, version @value{VERSION} -This is Edition @value{EDITION} of the @cite{Gmsh Manual}, last updated -@value{UPDATED} for Gmsh Version @value{VERSION}. -@end ifnottex +Christophe Geuzaine and Jean-Francois Remacle +Gmsh is an automatic three-dimensional mesh generator, primarily Delaunay, +with pre- and post-processing facilities. This is Edition @value{EDITION} of +the @cite{Gmsh Manual}, last updated @value{DAY} @value{MONTH} for Gmsh +Version @value{VERSION}. +@end ifnottex @c ========================================================================= @c Master menu @c ========================================================================= @menu -* Copying:: Copyright and copying conditions +* Copying Conditions:: How is Gmsh distributable? * Introduction:: Basic presentation -* Geometry:: -* Mesh:: -* Post-Processing:: +* Geometry:: How to define a geometry in Gmsh +* Mesh:: An explanation of the mesh generator +* Post-Processing:: An overview of the post-processing functions +* Tutorial:: Seven complete examples +* Running Gmsh:: How to run Gmsh on your operating system * File formats:: Input and output file formats -* Concept index:: -* Syntax index:: -* Variable index:: +* Versions and credits:: Versions history and contributors +* Tips and tricks:: Some tips to make your life easier with Gmsh +* Concept index:: Main concepts +* Syntax index:: Reserved keywords @end menu - @c ========================================================================= @c Copying Conditions @c ========================================================================= -@node Copying, Introduction, Top, Top +@node Copying Conditions, Introduction, Top, Top @unnumbered Copying Conditions @cindex Copyright @@ -125,65 +147,163 @@ This is Edition @value{EDITION} of the @cite{Gmsh Manual}, last updated @cindex Platforms Executable versions of Gmsh can be downloaded for most of the classical UNIX -platforms (SUN, DEC, IBM, HP, SGI and Linux) and for Windows 95/98/NT from the -web site @value{WEB} (no source distribution is available for the moment). The -executable versions of Gmsh are free; the only thing asked if you use Gmsh is -to mention it in your work. +platforms (SUN, DEC, IBM, HP, SGI and Linux) from the web site +@value{WEB-GMSH} (no source distribution is available for the moment). The +executable versions of Gmsh are free; the only thing asked if you use Gmsh +is to mention it in your work. Published references, as well as the latest +news about Gmsh developments and download information, are always available +on the web site. + @c ========================================================================= @c Introduction @c ========================================================================= -@node Introduction, Geometry, Copying, Top +@node Introduction, General overview, Copying Conditions, Top @unnumbered Introduction @cindex Introduction -Gmsh . Eventually, the most difficult thing about Gmsh is to find a way to -pronouce 'Gmsh'... +Gmsh is an automatic three-dimensional mesh generator, primarily Delaunay, +with pre- and post-processing facilities. Its primal goal is to provide a +simple meshing tool for academic test cases with parametric input and up to +date visualization capabilities. One of the strengths of Gmsh is its +ability to respect a characteristic length field for the generation of +adapted meshes on lines, surfaces and volumes. Gmsh requires OpenGL +libraries to be installed in on your system. -@c ========================================================================= -@c Geometry -@c ========================================================================= -@node Geometry, Mesh, Introduction, Top -@unnumbered Geometry +@c ------------------------------------------------------------------------- +@c How to Read this Manual? +@c ------------------------------------------------------------------------- -@cindex Geometry +@node How to Read this Manual?, , Industry, Introduction +@heading How to Read this Manual? -@c ========================================================================= -@c Mesh -@c ========================================================================= +@cindex Reading, guidelines + +After reading @ref{General overview}, and @ref{Expressions}, which depict +the general concepts and the way to construct simple expressions in GetDP, +you can safely (in a first reading) skip @ref{Objects} and @ref{Types for +objects} and directly go to @ref{Short examples}. This chapter gives simple +examples of the problem definition syntax used to define the discrete +problems. For each example, you should then go back to @ref{Objects}, and +@ref{Types for objects}, and have a detailed view of the syntax of the +objects appearing in it. Note that indexes for many concepts and for all the +syntax elements are available at the end of this manual. -@node Mesh, Post-Processing, Geometry, Top -@unnumbered Mesh +Once the examples presented in @ref{Short examples}, are understood, you +may start to use GetDP on your computer (@pxref{Running GetDP}), for +example by solving the complete examples presented in @ref{Complete +examples}. Ready-to-use input files for these examples can be downloaded +from the web site. -@cindex Mesh @c ========================================================================= -@c Post-Processing +@c Versions and Credits @c ========================================================================= -@node Post-Processing, File formats, Mesh, Top -@unnumbered Post-Processing +@node Versions and credits, Tips and tricks, File formats, Top +@chapter Versions and Credits + +@menu +* Version history:: +* Bugs:: +* Contributors:: +@end menu + +@c ------------------------------------------------------------------------- +@c Versions +@c ------------------------------------------------------------------------- -@cindex Post-Processing +@node Version history, Bugs, Versions and credits, Versions and credits +@section Version History +@cindex Versions +@cindex History, versions +@cindex Changelog -@c ========================================================================= -@c File Formats -@c ========================================================================= +@c ------------------------------------------------------------------------- +@c Bugs +@c ------------------------------------------------------------------------- + +@node Bugs, Contributors, Version history, Versions and credits +@section Bugs + +@cindex Known bugs +@cindex Bugs, known +@cindex Bugs, reporting +@cindex Reporting bugs +@cindex Authors, e-mail +@cindex E-mail, authors + +If you think you have found a bug in Gmsh, you can report it by electronic +mail to @email{Christophe.Geuzaine@@ulg.ac.be} or +@email{Remacle@@scorec.rpi.edu}. Please send as precise a description of +the problem as you can, including sample input files that produce the +bug. Don't forget to mention both the versions of Gmsh and of your operation +system (@pxref{Running Gmsh} to see how to get this information). + +Here is a list of known bugs: + + +@c ------------------------------------------------------------------------- +@c Contributors +@c ------------------------------------------------------------------------- + +@node Contributors, , Bugs, Versions and credits +@section Contributors -@node File formats, Concept index, Post-Processing, Top -@appendix File Formats +@cindex Acknowledgments +@cindex Contributors, list +@cindex Credits +@itemize @bullet +@item +M. Ume: code for lists and trees (listman.c, treeman.c). +@item +Unknown: avl tree code +@item +@dots{} +@end itemize +And many thanks to all the users whose feedback permitted many +improvements and bug correction... + + +@c ========================================================================= +@c Tips ans Tricks +@c ========================================================================= + +@node Tips and tricks, Gmsh examples, Versions and credits, Top +@appendix Tips and Tricks + +@cindex Tips +@cindex Tricks +@cindex Efficiency, tips + +@itemize @bullet +@item +Install the 'info' version of this user's guide! On your (Unix) system, this +can be done by 1) copying all getdp.info* files to the place where your info +files live (usually /usr/info), and 2) issuing the command 'install-info +/usr/info/getdp.info /usr/info/dir'. You will then be able to access the +documentation with the command 'info getdp'. Note that particular sections +("nodes") can be accessed directly. For example, 'info getdp functionspace' +will take you directly to the definition of the FunctionSpace object. +@item +Use emacs to edit your files, and load the C++ mode! This permits automatic +syntax highlighting and easy indentation. Automatic loading of the C++ mode +for @file{.pro} files can be done by adding the following command in your +@code{.emacs} file: @code{(setq auto-mode-alist (append '(("\\.pro$" +. c++-mode)) auto-mode-alist))}. +@end itemize @c ========================================================================= @c Concept Index @c ========================================================================= -@node Concept index, Syntax index, File formats, Top +@node Concept index, Syntax index, Gmsh examples, Top @unnumbered Concept Index @cindex Index, concepts @@ -204,17 +324,4 @@ pronouce 'Gmsh'... @printindex tp -@c ========================================================================= -@c Variable Index -@c ========================================================================= - -@node Variable index, , Syntax index, Top -@unnumbered Variable Index - -@cindex Index, metasyntactic variables -@cindex Variables, index -@cindex Metasyntactic variables, index - -@printindex mv - @bye diff --git a/utils/tut2html b/utils/tut2html index 26ddfb76c1ea85c251dc6dba52210abf894131ef..b67e85a9df4414a05e62f3ccbb26a5ffc012a884 100644 --- a/utils/tut2html +++ b/utils/tut2html @@ -1,12 +1,20 @@ -#!/usr/local/bin/bash +#!/bin/sh -if [ $# = 0 ] ; then - echo "Usage: tut2html file[s]" - exit 1 -fi +#if [ $# = 0 ] ; then +# echo "Usage: tut2html files" +# exit 1 +#fi -for t in ${*/.geo/}; do - echo -n "[$t.html]" - enscript -Ecpp --color -Whtml -p$t.html $t.geo -done +#enscript -Ecpp --color -Whtml --toc -pt.html $* +enscript -Ecpp --color -Whtml --toc -pt.html README *.geo +cat t.html | \ +sed "s/<FONT COLOR=\"#BC8F8F\"><B>//g" | \ +sed "s/<B><FONT COLOR=\"#5F9EA0\">//g" | \ +sed "s/<B><FONT COLOR=\"#A020F0\">//g" | \ +sed "s/<B><FONT COLOR=\"#0000FF\">//g" | \ +sed "s/<\/FONT><\/B>//g" > tutorial.html + +rm -f t.html + +echo output moved to tutorial.html