diff --git a/Common/Context.h b/Common/Context.h index da389c2f504194be195f04c21eb9cedc57574471..f6bc49684cbc116e41cb1e46ca3cea281b6e2434 100644 --- a/Common/Context.h +++ b/Common/Context.h @@ -74,7 +74,7 @@ struct contextGeometryOptions { int autoCoherence, highlightOrphans, clip, useTransform; double tolerance, toleranceBoolean, snap[3], transform[3][3], offset[3]; int occFixDegenerated, occFixSmallEdges, occFixSmallFaces; - int occSewFaces, occConnectFaces, occParallel; + int occSewFaces, occParallel; double occScaling; int copyMeshingMethod, copyDisplayAttributes, exactExtrusion; int matchGeomAndMesh; diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h index 8a416b2b20c875a9b1add060a3ace7af27955dac..313ebfeaa57b7ed3ec4469374d7e3b2d0f915b3e 100644 --- a/Common/DefaultOptions.h +++ b/Common/DefaultOptions.h @@ -867,8 +867,6 @@ StringXNumber GeometryOptions_Number[] = { "Fix small faces in STEP, IGES and BRep models" }, { F|O, "OCCSewFaces" , opt_geometry_occ_sew_faces , 0. , "Sew faces in STEP, IGES and BRep models" }, - { F|O, "OCCConnectFaces" , opt_geometry_occ_connect_faces , 0. , - "Cut and connect faces in STEP, IGES and BRep models (0=no, 1=internal, 2=Salome)" }, { F|O, "OCCParallel" , opt_geometry_occ_parallel , 0. , "Use multi-threaded OCC boolean operators" }, { F|O, "OCCScaling" , opt_geometry_occ_scaling , 1. , diff --git a/Common/Options.cpp b/Common/Options.cpp index 183ba74564a050c38ef4ebe6066ce851ab464a1e..c5c7e83ba7ff79560e9813c10571500b27d3f199 100644 --- a/Common/Options.cpp +++ b/Common/Options.cpp @@ -4720,19 +4720,6 @@ double opt_geometry_occ_sew_faces(OPT_ARGS_NUM) return CTX::instance()->geom.occSewFaces; } -double opt_geometry_occ_connect_faces(OPT_ARGS_NUM) -{ - if(action & GMSH_SET) - CTX::instance()->geom.occConnectFaces = (int)val; -#if defined(HAVE_FLTK) - if(FlGui::available() && (action & GMSH_GUI)) { - FlGui::instance()->options->geo.butt[15]->value - (CTX::instance()->geom.occConnectFaces); - } -#endif - return CTX::instance()->geom.occConnectFaces; -} - double opt_geometry_occ_parallel(OPT_ARGS_NUM) { if(action & GMSH_SET) diff --git a/Common/Options.h b/Common/Options.h index e193ba597da7b637d226501c3398e252bfa16e89..dd99916e8550a129c1e92562068c567c847e0e82 100644 --- a/Common/Options.h +++ b/Common/Options.h @@ -384,7 +384,6 @@ double opt_geometry_occ_fix_degenerated(OPT_ARGS_NUM); double opt_geometry_occ_fix_small_edges(OPT_ARGS_NUM); double opt_geometry_occ_fix_small_faces(OPT_ARGS_NUM); double opt_geometry_occ_sew_faces(OPT_ARGS_NUM); -double opt_geometry_occ_connect_faces(OPT_ARGS_NUM); double opt_geometry_occ_parallel(OPT_ARGS_NUM); double opt_geometry_occ_scaling(OPT_ARGS_NUM); double opt_geometry_old_circle(OPT_ARGS_NUM); diff --git a/Fltk/optionWindow.cpp b/Fltk/optionWindow.cpp index 93374b115c027a234fba679710be5c622c2cfa0f..5f30aa793af0bef8549ecc26b5243e33bacfb214 100644 --- a/Fltk/optionWindow.cpp +++ b/Fltk/optionWindow.cpp @@ -426,7 +426,6 @@ static void geometry_options_ok_cb(Fl_Widget *w, void *data) opt_geometry_occ_fix_small_edges(0, GMSH_SET, o->geo.butt[11]->value()); opt_geometry_occ_fix_small_faces(0, GMSH_SET, o->geo.butt[12]->value()); opt_geometry_occ_sew_faces(0, GMSH_SET, o->geo.butt[13]->value()); - opt_geometry_occ_connect_faces(0, GMSH_SET, o->geo.butt[15]->value()); opt_geometry_occ_scaling(0, GMSH_SET, o->geo.value[20]->value()); opt_geometry_light_two_side(0, GMSH_SET, o->geo.butt[14]->value()); @@ -1952,13 +1951,8 @@ optionWindow::optionWindow(int deltaFontSize) geo.butt[13]->type(FL_TOGGLE_BUTTON); geo.butt[13]->callback(geometry_options_ok_cb); - geo.butt[15] = new Fl_Check_Button - (L + 2 * WB, 2 * WB + 8 * BH, BW, BH, "Cut and merge faces"); - geo.butt[15]->type(FL_TOGGLE_BUTTON); - geo.butt[15]->callback(geometry_options_ok_cb); - geo.value[20] = new Fl_Value_Input - (L + 2 * WB, 2 * WB + 9 * BH, IW, BH, "Global model scaling"); + (L + 2 * WB, 2 * WB + 8 * BH, IW, BH, "Global model scaling"); geo.value[20]->align(FL_ALIGN_RIGHT); geo.value[20]->callback(geometry_options_ok_cb); @@ -1968,7 +1962,6 @@ optionWindow::optionWindow(int deltaFontSize) geo.butt[11]->deactivate(); geo.butt[12]->deactivate(); geo.butt[13]->deactivate(); - geo.butt[15]->deactivate(); geo.value[20]->deactivate(); #endif o->end(); diff --git a/Geo/GModelIO_OCC.cpp b/Geo/GModelIO_OCC.cpp index c1ac797d87e1a2ee61514f77fcad1ad40721e0af..1ce5cded7d3f591e2dcd85e19ff4f18079a3e3bb 100644 --- a/Geo/GModelIO_OCC.cpp +++ b/Geo/GModelIO_OCC.cpp @@ -22,6 +22,7 @@ #include <TopTools_DataMapIteratorOfDataMapOfIntegerShape.hxx> #include <BRepBuilderAPI_MakeEdge.hxx> #include <BRepBuilderAPI_MakeWire.hxx> +#include <BRepBuilderAPI_MakeFace.hxx> #include <BRepBuilderAPI_Copy.hxx> #include <BRepOffsetAPI_ThruSections.hxx> #include <gce_MakeCirc.hxx> @@ -72,6 +73,19 @@ void OCC_Internals::bind(TopoDS_Solid solid, int tag) _tagSolid.Bind(tag, solid); } +void OCC_Internals::bind(TopoDS_Shape shape, int dim, int tag) +{ + switch(dim){ + case 0: bind(TopoDS::Vertex(shape), tag); break; + case 1: bind(TopoDS::Edge(shape), tag); break; + case 2: bind(TopoDS::Face(shape), tag); break; + case 3: bind(TopoDS::Solid(shape), tag); break; + case -1: bind(TopoDS::Wire(shape), tag); break; + case -2: bind(TopoDS::Shell(shape), tag); break; + default: break; + } +} + void OCC_Internals::unbind(TopoDS_Vertex vertex, int tag) { _vertexTag.UnBind(vertex); @@ -108,29 +122,55 @@ void OCC_Internals::unbind(TopoDS_Solid solid, int tag) _tagSolid.UnBind(tag); } -void OCC_Internals::bindHighest(TopoDS_Shape shape, std::vector<int> tags[4]) +void OCC_Internals::unbind(TopoDS_Shape shape, int dim, int tag) +{ + switch(dim){ + case 0: unbind(TopoDS::Vertex(shape), tag); break; + case 1: unbind(TopoDS::Edge(shape), tag); break; + case 2: unbind(TopoDS::Face(shape), tag); break; + case 3: unbind(TopoDS::Solid(shape), tag); break; + case -1: unbind(TopoDS::Wire(shape), tag); break; + case -2: unbind(TopoDS::Shell(shape), tag); break; + default: break; + } +} + +void OCC_Internals::bindHighest(TopoDS_Shape shape, std::vector<int> tags[4], int tag) { TopExp_Explorer exp0; + bool first = true; for(exp0.Init(shape, TopAbs_SOLID); exp0.More(); exp0.Next()){ - int t = getMaxTag(3) + 1; + int t = tag; + if(t <= 0){ t = getMaxTag(3) + 1; } + else if(first){ first = false; } + else{ Msg::Error("Cannot bind multiple regions to single tag %d", t); return; } bind(TopoDS::Solid(exp0.Current()), t); tags[3].push_back(t); } if(tags[3].size()) return; for(exp0.Init(shape, TopAbs_FACE); exp0.More(); exp0.Next()){ - int t = getMaxTag(2) + 1; + int t = tag; + if(t <= 0){ t = getMaxTag(2) + 1; } + else if(first){ first = false; } + else{ Msg::Error("Cannot bind multiple faces to single tag %d", t); return; } bind(TopoDS::Face(exp0.Current()), t); tags[2].push_back(t); } if(tags[2].size()) return; for(exp0.Init(shape, TopAbs_EDGE); exp0.More(); exp0.Next()){ - int t = getMaxTag(1) + 1; + int t = tag; + if(t <= 0){ t = getMaxTag(1) + 1; } + else if(first){ first = false; } + else{ Msg::Error("Cannot bind multiple edges to single tag %d", t); return; } bind(TopoDS::Edge(exp0.Current()), t); tags[1].push_back(t); } if(tags[1].size()) return; for(exp0.Init(shape, TopAbs_VERTEX); exp0.More(); exp0.Next()){ - int t = getMaxTag(0) + 1; + int t = tag; + if(t <= 0){ t = getMaxTag(0) + 1; } + else if(first){ first = false; } + else{ Msg::Error("Cannot bind multiple vertices to single tag %d", t); return; } bind(TopoDS::Edge(exp0.Current()), t); tags[0].push_back(t); } @@ -143,6 +183,8 @@ bool OCC_Internals::isBound(int dim, int tag) case 1 : return _tagEdge.IsBound(tag); case 2 : return _tagFace.IsBound(tag); case 3 : return _tagSolid.IsBound(tag); + case -1 : return _tagWire.IsBound(tag); + case -2 : return _tagShell.IsBound(tag); default: return false; } } @@ -154,6 +196,8 @@ TopoDS_Shape OCC_Internals::find(int dim, int tag) case 1: return _tagEdge.Find(tag); case 2: return _tagFace.Find(tag); case 3: return _tagSolid.Find(tag); + case -1: return _tagWire.Find(tag); + case -2: return _tagShell.Find(tag); default: return TopoDS_Shape(); } } @@ -166,14 +210,16 @@ void OCC_Internals::setTagConstraints(int maxTags[4]) int OCC_Internals::getMaxTag(int dim) const { - if(dim < 0 || dim > 3) return 0; + if(dim < -2 || dim > 3) return 0; TopTools_DataMapIteratorOfDataMapOfIntegerShape exp; int ret = _maxTagConstraints[dim]; switch(dim){ case 0: exp.Initialize(_tagVertex); break; case 1: exp.Initialize(_tagEdge); break; case 2: exp.Initialize(_tagFace); break; - default: exp.Initialize(_tagSolid); break; + case 3: exp.Initialize(_tagSolid); break; + case -1: exp.Initialize(_tagWire); break; + case -2: exp.Initialize(_tagShell); break; } for(; exp.More(); exp.Next()) ret = std::max(ret, exp.Key()); @@ -188,8 +234,7 @@ void OCC_Internals::addVertex(int tag, double x, double y, double z) } TopoDS_Vertex result; try{ - gp_Pnt aPnt; - aPnt = gp_Pnt(x, y, z); + gp_Pnt aPnt(x, y, z); BRepBuilderAPI_MakeVertex v(aPnt); v.Build(); if(!v.IsDone()){ @@ -291,6 +336,27 @@ void OCC_Internals::addCircleArc(int tag, int startTag, int centerTag, int endTa bind(result, tag); } +void OCC_Internals::addBezier(int tag, int startTag, int endTag, + std::vector<std::vector<double> > points) +{ + Msg::Error("OCC TODO Bezier"); +} + +void OCC_Internals::addBSpline(int tag, int startTag, int endTag, + std::vector<std::vector<double> > points) +{ + Msg::Error("OCC TODO BSpline"); +} + +void OCC_Internals::addNURBS(int tag, int startTag, int endTag, + std::vector<std::vector<double> > points, + std::vector<double> knots, + std::vector<double> weights, + std::vector<int> mult) +{ + Msg::Error("OCC TODO NURBS"); +} + void OCC_Internals::addLineLoop(int tag, std::vector<int> edgeTags) { if(_tagWire.IsBound(tag)){ @@ -300,16 +366,43 @@ void OCC_Internals::addLineLoop(int tag, std::vector<int> edgeTags) TopoDS_Wire result; try{ - BRepBuilderAPI_MakeWire wire_maker; + BRepBuilderAPI_MakeWire w; for (unsigned i = 0; i < edgeTags.size(); i++) { if(!_tagEdge.IsBound(edgeTags[i])){ Msg::Error("Unknown OpenCASCADE edge with tag %d", edgeTags[i]); return; } TopoDS_Edge edge = TopoDS::Edge(_tagEdge.Find(edgeTags[i])); - wire_maker.Add(edge); + w.Add(edge); } - result = wire_maker.Wire(); + result = w.Wire(); + } + catch(Standard_Failure &err){ + Msg::Error("OpenCASCADE exception %s", err.GetMessageString()); + return; + } + bind(result, tag); +} + +void OCC_Internals::addRectangle(int tag, double x1, double y1, double x2, double y2) +{ + if(_tagFace.IsBound(tag)){ + Msg::Error("OpenCASCADE face with tag %d already exists", tag); + return; + } + + TopoDS_Face result; + try{ + TopoDS_Vertex v1 = BRepBuilderAPI_MakeVertex(gp_Pnt(x1, y1, 0.)); + TopoDS_Vertex v2 = BRepBuilderAPI_MakeVertex(gp_Pnt(x2, y1, 0.)); + TopoDS_Vertex v3 = BRepBuilderAPI_MakeVertex(gp_Pnt(x2, y1, 0.)); + TopoDS_Vertex v4 = BRepBuilderAPI_MakeVertex(gp_Pnt(x1, y2, 0.)); + TopoDS_Edge e1 = BRepBuilderAPI_MakeEdge(v1, v2); + TopoDS_Edge e2 = BRepBuilderAPI_MakeEdge(v2, v3); + TopoDS_Edge e3 = BRepBuilderAPI_MakeEdge(v3, v4); + TopoDS_Edge e4 = BRepBuilderAPI_MakeEdge(v4, v1); + TopoDS_Wire wire = BRepBuilderAPI_MakeWire(e1, e2, e3, e4); + result = BRepBuilderAPI_MakeFace(wire); } catch(Standard_Failure &err){ Msg::Error("OpenCASCADE exception %s", err.GetMessageString()); @@ -318,14 +411,167 @@ void OCC_Internals::addLineLoop(int tag, std::vector<int> edgeTags) bind(result, tag); } +void OCC_Internals::addDisk(int tag, double xc, double yc, double rx, double ry) +{ + if(_tagFace.IsBound(tag)){ + Msg::Error("OpenCASCADE face with tag %d already exists", tag); + return; + } + + TopoDS_Face result; + try{ + gp_Dir N_dir(0., 0., 1.); + gp_Dir x_dir(1., 0., 0.); + gp_Pnt center(xc, yc, 0.); + gp_Ax2 axis(center, N_dir, x_dir); + gp_Elips ellipse = gp_Elips(axis, rx, ry); + TopoDS_Edge edge = BRepBuilderAPI_MakeEdge(ellipse); + TopoDS_Wire wire = BRepBuilderAPI_MakeWire(edge); + result = BRepBuilderAPI_MakeFace(wire); + } + catch(Standard_Failure &err){ + Msg::Error("OpenCASCADE exception %s", err.GetMessageString()); + return; + } + bind(result, tag); +} + +void OCC_Internals::addPlanarFace(int tag, std::vector<int> wireTags) +{ + if(_tagFace.IsBound(tag)){ + Msg::Error("OpenCASCADE face with tag %d already exists", tag); + return; + } + + std::vector<TopoDS_Wire> wires; + for (unsigned i = 0; i < wireTags.size(); i++) { + if(!_tagWire.IsBound(wireTags[i])){ + Msg::Error("Unknown OpenCASCADE line loop with tag %d", wireTags[i]); + return; + } + TopoDS_Wire wire = TopoDS::Wire(_tagWire.Find(wireTags[i])); + wires.push_back(wire); + } + + TopoDS_Face result; + if(wires.size() == 0){ + Msg::Error("Planar face requires at least one line loop"); + return; + } + else if(wires.size() == 1){ + result = BRepBuilderAPI_MakeFace(wires[0]); + } + else{ + // compute mean plane + TopTools_IndexedMapOfShape vmap; + for(unsigned int i = 0; i < wires.size(); i++){ + TopExp_Explorer exp0; + for(exp0.Init(wires[i], TopAbs_VERTEX); exp0.More(); exp0.Next()){ + TopoDS_Vertex vertex = TopoDS::Vertex(exp0.Current()); + if(vmap.FindIndex(vertex) < 1) + vmap.Add(vertex); + } + } + std::vector<SPoint3> points; + for(int i = 1; i <= vmap.Extent(); i++){ + gp_Pnt pnt = BRep_Tool::Pnt(TopoDS::Vertex(vmap(i))); + points.push_back(SPoint3(pnt.X(), pnt.Y(), pnt.Z())); + } + // FIXME: should check that points are not colinear; if so, add more + mean_plane meanPlane; + computeMeanPlaneSimple(points, meanPlane); + try{ + gp_Pln aPlane(meanPlane.a, meanPlane.b, meanPlane.c, -meanPlane.d); + BRepBuilderAPI_MakeFace f(aPlane); + for(unsigned int i = 0; i < wires.size(); i++) + f.Add(wires[i]); + f.Build(); + if(!f.IsDone()){ + Msg::Error("Could not create planar face"); + return; + } + result = f.Face(); + } + catch(Standard_Failure &err){ + Msg::Error("OpenCASCADE exception %s", err.GetMessageString()); + return; + } + } + bind(result, tag); +} + +void OCC_Internals::addRuledFace(int tag, std::vector<int> wireTags) +{ + Msg::Error("OCC TODO Ruled face"); +} + void OCC_Internals::addSurfaceLoop(int tag, std::vector<int> faceTags) { - Msg::Error("OCC TODO create shell"); + if(_tagShell.IsBound(tag)){ + Msg::Error("OpenCASCADE surface loop with tag %d already exists", tag); + return; + } + + TopoDS_Shape result; + try{ + BRepBuilderAPI_Sewing s; + for (unsigned i = 0; i < faceTags.size(); i++) { + if(!_tagFace.IsBound(faceTags[i])){ + Msg::Error("Unknown OpenCASCADE face with tag %d", faceTags[i]); + return; + } + TopoDS_Face face = TopoDS::Face(_tagFace.Find(faceTags[i])); + s.Add(face); + } + s.Perform(); + result = s.SewedShape(); + } + catch(Standard_Failure &err){ + Msg::Error("OpenCASCADE exception %s", err.GetMessageString()); + return; + } + + bool first = true; + TopExp_Explorer exp0; + for(exp0.Init(result, TopAbs_SHELL); exp0.More(); exp0.Next()){ + TopoDS_Shell shell = TopoDS::Shell(exp0.Current()); + int t = tag; + if(first){ + first = false; + } + else{ + t = getMaxTag(-2) + 1; + Msg::Warning("Creating additional surface loop %d", t); + } + bind(shell, t); + } } void OCC_Internals::addVolume(int tag, std::vector<int> shellTags) { - Msg::Error("OCC TODO create volume"); + if(_tagSolid.IsBound(tag)){ + Msg::Error("OpenCASCADE region with tag %d already exists", tag); + return; + } + + TopoDS_Solid result; + try{ + BRepBuilderAPI_MakeSolid s; + for (unsigned i = 0; i < shellTags.size(); i++) { + if(!_tagShell.IsBound(shellTags[i])){ + Msg::Error("Unknown OpenCASCADE surface loop with tag %d", shellTags[i]); + return; + } + TopoDS_Shell shell = TopoDS::Shell(_tagShell.Find(shellTags[i])); + s.Add(shell); + } + result = s.Solid(); + } + catch(Standard_Failure &err){ + Msg::Error("OpenCASCADE exception %s", err.GetMessageString()); + return; + } + bind(result, tag); } void OCC_Internals::addSphere(int tag, double xc, double yc, double zc, double radius) @@ -457,66 +703,60 @@ void OCC_Internals::applyBooleanOperator(int tag, BooleanOperator op, double tolerance = CTX::instance()->geom.toleranceBoolean; bool parallel = CTX::instance()->geom.occParallel; - if(tag > 0 && _tagSolid.IsBound(tag)){ - Msg::Error("OpenCASCADE region with tag %d already exists", tag); - return; - } - - if(objectTags[0].size() || objectTags[1].size() || objectTags[2].size() || - toolTags[0].size() || toolTags[1].size() || toolTags[2].size()){ - Msg::Error("OpenCASCADE boolean operations only available on solids for now"); - return; - } - - std::vector<TopoDS_Solid> objects, tools; - for(unsigned int i = 0; i < objectTags[3].size(); i++){ - if(!_tagSolid.IsBound(objectTags[3][i])){ - Msg::Error("Unknown OpenCASCADE region with tag %d", objectTags[3][i]); - return; - } - else{ - TopoDS_Solid object = TopoDS::Solid(_tagSolid.Find(objectTags[3][i])); - objects.push_back(object); - if(removeObject) unbind(object, objectTags[3][i]); + if(tag > 0){ + for(int dim = 0; dim < 4; dim++){ + if(objectTags[dim].size() && isBound(dim, tag)){ + Msg::Error("OpenCASCADE entity with tag %d already exists", tag); + return; + } } } - for(unsigned int i = 0; i < toolTags[3].size(); i++){ - if(!_tagSolid.IsBound(toolTags[3][i])){ - Msg::Error("Unknown OpenCASCADE region with tag %d", toolTags[3][i]); - return; + + std::vector<TopoDS_Shape> objects[4], tools[4]; + for(unsigned int dim = 0; dim < 4; dim++){ + for(unsigned int i = 0; i < objectTags[dim].size(); i++){ + if(!isBound(dim, objectTags[dim][i])){ + Msg::Error("Unknown OpenCASCADE entity of dimension %d with tag %d", + dim, objectTags[dim][i]); + return; + } + else{ + TopoDS_Shape object = find(dim, objectTags[dim][i]); + objects[dim].push_back(object); + if(removeObject) unbind(object, dim, objectTags[dim][i]); + } } - else{ - TopoDS_Solid tool = TopoDS::Solid(_tagSolid.Find(toolTags[3][i])); - tools.push_back(TopoDS::Solid(tool)); - if(removeTool) unbind(tool, toolTags[3][i]); + for(unsigned int i = 0; i < toolTags[dim].size(); i++){ + if(!isBound(dim, toolTags[dim][i])){ + Msg::Error("Unknown OpenCASCADE entity of dimension %d with tag %d", + dim, toolTags[dim][i]); + return; + } + else{ + TopoDS_Shape tool = find(dim, toolTags[dim][i]); + tools[dim].push_back(tool); + if(removeTool) unbind(tool, dim, toolTags[dim][i]); + } } } - if(objects.size() < 1 || tools.size() < 1){ - Msg::Error("No object or tool in boolean operation"); - return; - } - - if(objects.size() > 1 && op != OCC_Internals::Union && op != OCC_Internals::Fragments){ - Msg::Error("Only a single object is support for this boolean operation"); - return; - } - TopoDS_Shape result; #if OCC_VERSION_HEX >= 0x060900 TopTools_ListOfShape objectShapes, toolShapes; - for(unsigned int i = 0; i < objects.size(); i++){ - if(tolerance > 0.) - objectShapes.Append(BRepBuilderAPI_Copy(objects[i]).Shape()); - else - objectShapes.Append(objects[i]); - } - for(unsigned int i = 0; i < tools.size(); i++){ - if(tolerance > 0.) - toolShapes.Append(BRepBuilderAPI_Copy(tools[i]).Shape()); - else - toolShapes.Append(tools[i]); + for(int dim = 0; dim < 4; dim++){ + for(unsigned int i = 0; i < objects[dim].size(); i++){ + if(tolerance > 0.) + objectShapes.Append(BRepBuilderAPI_Copy(objects[dim][i]).Shape()); + else + objectShapes.Append(objects[dim][i]); + } + for(unsigned int i = 0; i < tools[dim].size(); i++){ + if(tolerance > 0.) + toolShapes.Append(BRepBuilderAPI_Copy(tools[dim][i]).Shape()); + else + toolShapes.Append(tools[dim][i]); + } } #endif @@ -525,27 +765,30 @@ void OCC_Internals::applyBooleanOperator(int tag, BooleanOperator op, case OCC_Internals::Union : { #if OCC_VERSION_HEX < 0x060900 - result = objects[0]; - for(int i = 1; i < objects.size(); i++){ - BRepAlgoAPI_Fuse fuse(result, objects[i]); - fuse.Build(); - if(!fuse.IsDone()) { - Msg::Error("Fuse operation cannot be performed"); - return; - } - else{ - result = fuse.Shape(); - } - } - for(int i = 0; i < tools.size(); i++){ - BRepAlgoAPI_Fuse fuse(result, tools[i]); - fuse.Build(); - if(!fuse.IsDone()) { - Msg::Error("Fuse operation cannot be performed"); - return; + for(int dim = 0; dim < 4; dim++){ + if(object[dim].empty() || tools[dim].empty()) continue; + result = objects[dim][0]; + for(int i = 1; i < objects.size(); i++){ + BRepAlgoAPI_Fuse fuse(result, objects[i]); + fuse.Build(); + if(!fuse.IsDone()) { + Msg::Error("Fuse operation cannot be performed"); + return; + } + else{ + result = fuse.Shape(); + } } - else{ - result = fuse.Shape(); + for(int i = 0; i < tools.size(); i++){ + BRepAlgoAPI_Fuse fuse(result, tools[i]); + fuse.Build(); + if(!fuse.IsDone()) { + Msg::Error("Fuse operation cannot be performed"); + return; + } + else{ + result = fuse.Shape(); + } } } #else @@ -567,17 +810,20 @@ void OCC_Internals::applyBooleanOperator(int tag, BooleanOperator op, case OCC_Internals::Intersection : { #if OCC_VERSION_HEX < 0x060900 - if(objects.size() != 1 || tools.size() != 1){ - Msg::Error("Multi-intersection requires OCC >= 6.9"); - return; - } - else{ - BRepAlgoAPI_Common common(objects[0], tools[0]); - common.Build(); - if(!common.IsDone()) { - Msg::Error("Intersection operation cannot be performed"); + for(int dim = 0; dim < 4; dim++){ + if(object[dim].empty() || tools[dim].empty()) continue; + if(objects[dim].size() != 1 || tools[dim].size() != 1){ + Msg::Error("Multi-intersection requires OCC >= 6.9"); + return; + } + else{ + BRepAlgoAPI_Common common(objects[dim][0], tools[dim][0]); + common.Build(); + if(!common.IsDone()) { + Msg::Error("Intersection operation cannot be performed"); + } + result = common.Shape(); } - result = common.Shape(); } #else BRepAlgoAPI_Common common; @@ -600,17 +846,20 @@ void OCC_Internals::applyBooleanOperator(int tag, BooleanOperator op, default: { #if OCC_VERSION_HEX < 0x060900 - if(objects.size() != 1 || tools.size() != 1){ - Msg::Error("Multi-difference requires OpenCASCADE >= 6.9"); - return; - } - else{ - BRepAlgoAPI_Cut cut(objects[0], tools[0]); - cut.Build(); - if(!cut.IsDone()) { - Msg::Error("Cut operation cannot be performed"); + for(int dim = 0; dim < 4; dim++){ + if(object[dim].empty() || tools[dim].empty()) continue; + if(objects[dim].size() != 1 || tools[dim].size() != 1){ + Msg::Error("Multi-difference requires OCC >= 6.9"); + return; + } + else{ + BRepAlgoAPI_Cut cut(objects[0], tools[0]); + cut.Build(); + if(!cut.IsDone()) { + Msg::Error("Cut operation cannot be performed"); + } + result = cut.Shape(); } - result = cut.Shape(); } #else BRepAlgoAPI_Cut cut; @@ -657,22 +906,7 @@ void OCC_Internals::applyBooleanOperator(int tag, BooleanOperator op, return; } - TopExp_Explorer exp0; - bool first = true; - for(exp0.Init(result, TopAbs_SOLID); exp0.More(); exp0.Next()){ - if(tag <= 0){ - int t = getMaxTag(3) + 1; - bind(TopoDS::Solid(exp0.Current()), t); - outTags[3].push_back(t); - } - else if(first){ - bind(TopoDS::Solid(exp0.Current()), tag); - outTags[3].push_back(tag); - first = false; - } - else - Msg::Error("Cannot bind multiple regions to single tag %d", tag); - } + bindHighest(result, outTags, tag); } void OCC_Internals::getBoundary(std::vector<int> inTags[4], @@ -720,7 +954,8 @@ void OCC_Internals::_transform(std::vector<int> inTags[4], for(unsigned int i = 0; i < inTags[dim].size(); i++){ int tag = inTags[dim][i]; if(!isBound(dim, tag)){ - Msg::Error("Unknown OpenCASCADE entity with tag %d", tag); + Msg::Error("Unknown OpenCASCADE entity of dimension %d with tag %d", + dim, tag); return; } tfo.Perform(find(dim, tag), Standard_False); @@ -765,7 +1000,8 @@ void OCC_Internals::copy(std::vector<int> inTags[4], std::vector<int> outTags[4] for(unsigned int i = 0; i < inTags[dim].size(); i++){ int tag = inTags[dim][i]; if(!isBound(dim, tag)){ - Msg::Error("Unknown OpenCASCADE entity with tag %d", tag); + Msg::Error("Unknown OpenCASCADE entity of dimension %d with tag %d", + dim, tag); return; } TopoDS_Shape result = BRepBuilderAPI_Copy(find(dim, tag)).Shape(); @@ -782,22 +1018,38 @@ void OCC_Internals::copy(std::vector<int> inTags[4], std::vector<int> outTags[4] } void OCC_Internals::importShapes(const std::string &fileName, - std::vector<int> outTags[4]) + std::vector<int> outTags[4], + const std::string &format) { std::vector<std::string> split = SplitFileName(fileName); TopoDS_Shape result; try{ - if(split[2] == ".brep" || split[2] == ".BREP"){ + if(format == "brep" || + split[2] == ".brep" || split[2] == ".BREP"){ BRep_Builder aBuilder; BRepTools::Read(result, fileName.c_str(), aBuilder); } - else if(split[2] == ".step" || split[2] == ".stp" || + else if(format == "step" || + split[2] == ".step" || split[2] == ".stp" || split[2] == ".STEP" || split[2] == ".STP"){ STEPControl_Reader reader; if(reader.ReadFile(fileName.c_str()) != IFSelect_RetDone){ Msg::Error("Could not read file '%s'", fileName.c_str()); return; } + reader.NbRootsForTransfer(); + reader.TransferRoots(); + result = reader.OneShape(); + } + else if(format == "iges" || + split[2] == ".iges" || split[2] == ".igs" || + split[2] == ".IGES" || split[2] == ".IGS"){ + IGESControl_Reader reader; + if(reader.ReadFile(fileName.c_str()) != IFSelect_RetDone){ + Msg::Error("Could not read file '%s'", fileName.c_str()); + return; + } + reader.NbRootsForTransfer(); reader.TransferRoots(); result = reader.OneShape(); } @@ -805,13 +1057,19 @@ void OCC_Internals::importShapes(const std::string &fileName, Msg::Error("Unknown file type '%s'", fileName.c_str()); return; } - // FIXME: apply healing routine on result? } catch(Standard_Failure &err){ Msg::Error("OpenCASCADE exception %s", err.GetMessageString()); return; } + BRepTools::Clean(result); + _healShape(result, CTX::instance()->geom.tolerance, + CTX::instance()->geom.occFixDegenerated, + CTX::instance()->geom.occFixSmallEdges, + CTX::instance()->geom.occFixSmallFaces, + CTX::instance()->geom.occSewFaces, + false, CTX::instance()->geom.occScaling); bindHighest(result, outTags); } @@ -820,7 +1078,8 @@ void OCC_Internals::importShapes(const TopoDS_Shape *shape, std::vector<int> out bindHighest(*shape, outTags); } -void OCC_Internals::exportShapes(const std::string &fileName) +void OCC_Internals::exportShapes(const std::string &fileName, + const std::string &format) { // iterate over all shapes with tags, and import them into the (sub)shape _maps TopTools_DataMapIteratorOfDataMapOfIntegerShape exp0(_tagVertex); @@ -846,10 +1105,12 @@ void OCC_Internals::exportShapes(const std::string &fileName) std::vector<std::string> split = SplitFileName(fileName); try { - if(split[2] == ".brep" || split[2] == ".BREP"){ + if(format == "brep" || + split[2] == ".brep" || split[2] == ".BREP"){ BRepTools::Write(c, fileName.c_str()); } - else if(split[2] == ".step" || split[2] == ".stp" || + else if(format == "step" || + split[2] == ".step" || split[2] == ".stp" || split[2] == ".STEP" || split[2] == ".STP"){ STEPControl_Writer writer; if(writer.Transfer(c, STEPControl_ManifoldSolidBrep) == IFSelect_RetDone){ @@ -863,7 +1124,7 @@ void OCC_Internals::exportShapes(const std::string &fileName) } } catch(Standard_Failure &err){ - Msg::Error("OCC exception %s", err.GetMessageString()); + Msg::Error("OpenCASCADE exception %s", err.GetMessageString()); } } @@ -1470,7 +1731,7 @@ GRegion *OCC_Internals::getOCCRegionByNativePtr(GModel *model, TopoDS_Solid toFi -// FIXME ***************** old ************************ +// FIXME ***************** BEGIN WILL BE REMOVED ************************ void addSimpleShapes(TopoDS_Shape theShape, TopTools_ListOfShape &theList) { @@ -1560,60 +1821,6 @@ void OCC_Internals::buildShapeFromLists(TopoDS_Shape shape) _shape = C; } -void OCC_Internals::loadBREP(const char *fn) -{ - BRep_Builder aBuilder; - BRepTools::Read(_shape, (char*)fn, aBuilder); - BRepTools::Clean(_shape); - _healShape(_shape, CTX::instance()->geom.tolerance, - CTX::instance()->geom.occFixDegenerated, - CTX::instance()->geom.occFixSmallEdges, - CTX::instance()->geom.occFixSmallFaces, - CTX::instance()->geom.occSewFaces, - false, - CTX::instance()->geom.occScaling); - BRepTools::Clean(_shape); - buildLists(); -} - -void OCC_Internals::loadSTEP(const char *fn) -{ - STEPControl_Reader reader; - reader.ReadFile((char*)fn); - reader.NbRootsForTransfer(); - reader.TransferRoots(); - _shape = reader.OneShape(); - BRepTools::Clean(_shape); - _healShape(_shape, CTX::instance()->geom.tolerance, - CTX::instance()->geom.occFixDegenerated, - CTX::instance()->geom.occFixSmallEdges, - CTX::instance()->geom.occFixSmallFaces, - CTX::instance()->geom.occSewFaces, - false, - CTX::instance()->geom.occScaling); - BRepTools::Clean(_shape); - buildLists(); -} - -void OCC_Internals::loadIGES(const char *fn) -{ - IGESControl_Reader reader; - reader.ReadFile((char*)fn); - reader.NbRootsForTransfer(); - reader.TransferRoots(); - _shape = reader.OneShape(); - BRepTools::Clean(_shape); - _healShape(_shape, CTX::instance()->geom.tolerance, - CTX::instance()->geom.occFixDegenerated, - CTX::instance()->geom.occFixSmallEdges, - CTX::instance()->geom.occFixSmallFaces, - CTX::instance()->geom.occSewFaces, - false, - CTX::instance()->geom.occScaling); - BRepTools::Clean(_shape); - buildLists(); -} - GVertex *OCC_Internals::addVertexToModel(GModel *model, TopoDS_Vertex vertex) { GVertex *gv = getOCCVertexByNativePtr(model, vertex); @@ -1941,6 +2148,9 @@ void OCC_Internals::fillet(std::vector<TopoDS_Edge> &edgesToFillet, } } +// FIXME ***************** END OF WILL BE REMOVED ************************ + + void GModel::_createOCCInternals() { if(_occ_internals) delete _occ_internals; @@ -1955,33 +2165,39 @@ void GModel::_deleteOCCInternals() int GModel::importOCCInternals() { + if(!_occ_internals) return 0; _occ_internals->synchronize(this); return 1; } int GModel::readOCCBREP(const std::string &fn) { - _occ_internals = new OCC_Internals; - _occ_internals->loadBREP(fn.c_str()); - _occ_internals->buildGModel(this); + if(!_occ_internals) + _occ_internals = new OCC_Internals; + std::vector<int> tags[4]; + _occ_internals->importShapes(fn, tags, "brep"); + _occ_internals->synchronize(this); snapVertices(); return 1; } int GModel::readOCCSTEP(const std::string &fn) { - _occ_internals = new OCC_Internals; - _occ_internals->loadSTEP(fn.c_str()); - _occ_internals->buildGModel(this); - //snapVertices(); + if(!_occ_internals) + _occ_internals = new OCC_Internals; + std::vector<int> tags[4]; + _occ_internals->importShapes(fn, tags, "step"); + _occ_internals->synchronize(this); return 1; } int GModel::readOCCIGES(const std::string &fn) { - _occ_internals = new OCC_Internals; - _occ_internals->loadIGES(fn.c_str()); - _occ_internals->buildGModel(this); + if(!_occ_internals) + _occ_internals = new OCC_Internals; + std::vector<int> tags[4]; + _occ_internals->importShapes(fn, tags, "iges"); + _occ_internals->synchronize(this); return 1; } @@ -1991,7 +2207,7 @@ int GModel::writeOCCBREP(const std::string &fn) Msg::Error("No OpenCASCADE model found"); return 0; } - _occ_internals->exportShapes(fn); + _occ_internals->exportShapes(fn, "brep"); return 1; } @@ -2001,7 +2217,7 @@ int GModel::writeOCCSTEP(const std::string &fn) Msg::Error("No OpenCASCADE model found"); return 0; } - _occ_internals->exportShapes(fn); + _occ_internals->exportShapes(fn, "step"); return 1; } diff --git a/Geo/GModelIO_OCC.h b/Geo/GModelIO_OCC.h index fecb6d3f953ee84d57913cce62a6084eab82bab5..ca16d1f6b064b3336aee8c013aaa9440524ba79b 100644 --- a/Geo/GModelIO_OCC.h +++ b/Geo/GModelIO_OCC.h @@ -66,9 +66,6 @@ class OCC_Internals { void fillet(std::vector<TopoDS_Edge> &shapes, double radius); void buildShapeFromGModel(GModel*); void buildGModel(GModel *gm); - void loadBREP(const char *); - void loadSTEP(const char *); - void loadIGES(const char *); void loadShape(const TopoDS_Shape *s) { std::vector<int> tags[4]; importShapes(s, tags); @@ -89,20 +86,24 @@ class OCC_Internals { void bind(TopoDS_Face face, int tag); void bind(TopoDS_Shell shell, int tag); void bind(TopoDS_Solid solid, int tag); + void bind(TopoDS_Shape shape, int dim, int tag); void unbind(TopoDS_Vertex vertex, int tag); void unbind(TopoDS_Edge edge, int tag); void unbind(TopoDS_Wire wire, int tag); void unbind(TopoDS_Face face, int tag); void unbind(TopoDS_Shell shell, int tag); void unbind(TopoDS_Solid solid, int tag); + void unbind(TopoDS_Shape shape, int dim, int tag); - // bind highest-dimensional entities in shape to tags - void bindHighest(TopoDS_Shape shape, std::vector<int> tags[4]); + // bind highest-dimensional entities in shape (if tag > 0 and a single entity + // if found, use it; otherwise assign new tags); assigned tags are returned in + // tags + void bindHighest(TopoDS_Shape shape, std::vector<int> tags[4], int tag=-1); - // is the entity of a given dimension/tag bound + // is the entity of a given dimension and tag bound? bool isBound(int dim, int tag); - // get the entity of a given dimension/tag + // get the entity of a given dimension and tag TopoDS_Shape find(int dim, int tag); // set constraints on tags @@ -111,11 +112,24 @@ class OCC_Internals { // get maximum tag number for each dimension int getMaxTag(int dim) const; - // add shapes only using internal OCC data + // add shapes void addVertex(int tag, double x, double y, double z); void addLine(int tag, int startTag, int endTag); void addCircleArc(int tag, int startTag, int centerTag, int endTag); + void addBezier(int tag, int startTag, int endTag, + std::vector<std::vector<double> > points); + void addBSpline(int tag, int startTag, int endTag, + std::vector<std::vector<double> > points); + void addNURBS(int tag, int startTag, int endTag, + std::vector<std::vector<double> > points, + std::vector<double> knots, + std::vector<double> weights, + std::vector<int> mult); void addLineLoop(int tag, std::vector<int> edgeTags); + void addRectangle(int tag, double x1, double y1, double x2, double y2); + void addDisk(int tag, double xc, double yc, double rx, double ry); + void addPlanarFace(int tag, std::vector<int> wireTags); + void addRuledFace(int tag, std::vector<int> wireTags); void addSurfaceLoop(int tag, std::vector<int> faceTags); void addVolume(int tag, std::vector<int> shellTags); void addSphere(int tag, double xc, double yc, double zc, double radius); @@ -133,8 +147,8 @@ class OCC_Internals { bool removeShape=true, bool removeTool=true); - // get boundary of shapes of dimension dim (this will create tag for the - // boundary parts) + // get boundary of shapes of dimension dim (this will bind the boundary parts + // to new tags, returned in outTags) void getBoundary(std::vector<int> inTags[4], std::vector<int> outTags[4], bool combined=false); @@ -145,13 +159,14 @@ class OCC_Internals { void copy(std::vector<int> inTags[4], std::vector<int> outTags[4]); // import shapes from file - void importShapes(const std::string &fileName, std::vector<int> outTags[4]); + void importShapes(const std::string &fileName, std::vector<int> outTags[4], + const std::string &format=""); // import shapes from TopoDS_Shape void importShapes(const TopoDS_Shape *shape, std::vector<int> outTags[4]); - // export all tagged shapes to file - void exportShapes(const std::string &fileName); + // export all bound shapes to file + void exportShapes(const std::string &fileName, const std::string &format=""); // synchronize internal CAD data with the given GModel void synchronize(GModel *model); @@ -174,7 +189,20 @@ public: void addVertex(int tag, double x, double y, double z){} void addLine(int tag, int startTag, int endTag){} void addCircleArc(int tag, int startTag, int centerTag, int endTag){} + void addBezier(int tag, int startTag, int endTag, + std::vector<std::vector<double> > points){} + void addBSpline(int tag, int startTag, int endTag, + std::vector<std::vector<double> > points){} + void addNURBS(int tag, int startTag, int endTag, + std::vector<std::vector<double> > points, + std::vector<double> knots, + std::vector<double> weights, + std::vector<int> mult){} void addLineLoop(int tag, std::vector<int> edgeTags){} + void addRectangle(int tag, double x1, double y1, double x2, double y2){} + void addDisk(int tag, double xc, double yc, double rx, double ry){} + void addPlanarFace(int tag, std::vector<int> wireTags){} + void addRuledFace(int tag, std::vector<int> wireTags){} void addSurfaceLoop(int tag, std::vector<int> faceTags){} void addVolume(int tag, std::vector<int> shellTags){} void addSphere(int tag, double xc, double yc, double zc, double radius){}; @@ -195,8 +223,9 @@ public: void rotate(std::vector<int> inTags[4], double x, double y, double z, double dx, double dy, double dz, double angle){} void copy(std::vector<int> inTags[4], std::vector<int> outTags[4]){} - void importShapes(const std::string &fileName, std::vector<int> outTags[4]){} - void exportShapes(const std::string &fileName){} + void importShapes(const std::string &fileName, std::vector<int> outTags[4], + const std::string &format=""){} + void exportShapes(const std::string &fileName, const std::string &format=""){} void synchronize(GModel *model){} }; diff --git a/Parser/Gmsh.l b/Parser/Gmsh.l index c3dea9e021cf9d03bb8b322f7374462298e426a7..790c6bb7db1ed559ba3763c4b9494f98d0f283e2 100644 --- a/Parser/Gmsh.l +++ b/Parser/Gmsh.l @@ -160,6 +160,7 @@ Delete return tDelete; Degenerated return tDegenerated; Dilate return tDilate; DirName return tDirName; +Disk return tDisk; Draw return tDraw; SetChanged return tSetChanged; @@ -253,6 +254,7 @@ Quad[tT]ri[nN]o[nN]ew[vV]erts return tQuadTriNoNewVerts; Quad[tT]ri[dD]bl return tQuadTriDbl; Quad[tT]ri[sS]ngl return tQuadTriSngl; +Rectangle return tRectangle; Recombine return tRecombine; Recomb[lL]aterals return tRecombLaterals; Recursive return tRecursive; diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index bfca8cf05c7b750f8747b87f56365b4b8729dfc9..a310f7957a081bc101e9df9ff7b5d330c804cf2e 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -170,116 +170,118 @@ tEllipsoid = 351, tQuadric = 352, tShapeFromFile = 353, - tCharacteristic = 354, - tLength = 355, - tParametric = 356, - tElliptic = 357, - tRefineMesh = 358, - tAdaptMesh = 359, - tRelocateMesh = 360, - tSetFactory = 361, - tThruSections = 362, - tPlane = 363, - tRuled = 364, - tTransfinite = 365, - tComplex = 366, - tPhysical = 367, - tCompound = 368, - tPeriodic = 369, - tUsing = 370, - tPlugin = 371, - tDegenerated = 372, - tRecursive = 373, - tRotate = 374, - tTranslate = 375, - tSymmetry = 376, - tDilate = 377, - tExtrude = 378, - tLevelset = 379, - tAffine = 380, - tBooleanUnion = 381, - tBooleanIntersection = 382, - tBooleanDifference = 383, - tBooleanSection = 384, - tBooleanFragments = 385, - tRecombine = 386, - tSmoother = 387, - tSplit = 388, - tDelete = 389, - tCoherence = 390, - tIntersect = 391, - tMeshAlgorithm = 392, - tReverse = 393, - tLayers = 394, - tScaleLast = 395, - tHole = 396, - tAlias = 397, - tAliasWithOptions = 398, - tCopyOptions = 399, - tQuadTriAddVerts = 400, - tQuadTriNoNewVerts = 401, - tQuadTriSngl = 402, - tQuadTriDbl = 403, - tRecombLaterals = 404, - tTransfQuadTri = 405, - tText2D = 406, - tText3D = 407, - tInterpolationScheme = 408, - tTime = 409, - tCombine = 410, - tBSpline = 411, - tBezier = 412, - tNurbs = 413, - tNurbsOrder = 414, - tNurbsKnots = 415, - tColor = 416, - tColorTable = 417, - tFor = 418, - tIn = 419, - tEndFor = 420, - tIf = 421, - tElseIf = 422, - tElse = 423, - tEndIf = 424, - tExit = 425, - tAbort = 426, - tField = 427, - tReturn = 428, - tCall = 429, - tSlide = 430, - tMacro = 431, - tShow = 432, - tHide = 433, - tGetValue = 434, - tGetStringValue = 435, - tGetEnv = 436, - tGetString = 437, - tGetNumber = 438, - tHomology = 439, - tCohomology = 440, - tBetti = 441, - tExists = 442, - tFileExists = 443, - tGMSH_MAJOR_VERSION = 444, - tGMSH_MINOR_VERSION = 445, - tGMSH_PATCH_VERSION = 446, - tGmshExecutableName = 447, - tSetPartition = 448, - tNameToString = 449, - tStringToName = 450, - tAFFECTDIVIDE = 451, - tAFFECTTIMES = 452, - tAFFECTMINUS = 453, - tAFFECTPLUS = 454, - tOR = 455, - tAND = 456, - tNOTEQUAL = 457, - tEQUAL = 458, - tGREATEROREQUAL = 459, - tLESSOREQUAL = 460, - UNARYPREC = 461, - tMINUSMINUS = 462, - tPLUSPLUS = 463 + tRectangle = 354, + tDisk = 355, + tCharacteristic = 356, + tLength = 357, + tParametric = 358, + tElliptic = 359, + tRefineMesh = 360, + tAdaptMesh = 361, + tRelocateMesh = 362, + tSetFactory = 363, + tThruSections = 364, + tPlane = 365, + tRuled = 366, + tTransfinite = 367, + tComplex = 368, + tPhysical = 369, + tCompound = 370, + tPeriodic = 371, + tUsing = 372, + tPlugin = 373, + tDegenerated = 374, + tRecursive = 375, + tRotate = 376, + tTranslate = 377, + tSymmetry = 378, + tDilate = 379, + tExtrude = 380, + tLevelset = 381, + tAffine = 382, + tBooleanUnion = 383, + tBooleanIntersection = 384, + tBooleanDifference = 385, + tBooleanSection = 386, + tBooleanFragments = 387, + tRecombine = 388, + tSmoother = 389, + tSplit = 390, + tDelete = 391, + tCoherence = 392, + tIntersect = 393, + tMeshAlgorithm = 394, + tReverse = 395, + tLayers = 396, + tScaleLast = 397, + tHole = 398, + tAlias = 399, + tAliasWithOptions = 400, + tCopyOptions = 401, + tQuadTriAddVerts = 402, + tQuadTriNoNewVerts = 403, + tQuadTriSngl = 404, + tQuadTriDbl = 405, + tRecombLaterals = 406, + tTransfQuadTri = 407, + tText2D = 408, + tText3D = 409, + tInterpolationScheme = 410, + tTime = 411, + tCombine = 412, + tBSpline = 413, + tBezier = 414, + tNurbs = 415, + tNurbsOrder = 416, + tNurbsKnots = 417, + tColor = 418, + tColorTable = 419, + tFor = 420, + tIn = 421, + tEndFor = 422, + tIf = 423, + tElseIf = 424, + tElse = 425, + tEndIf = 426, + tExit = 427, + tAbort = 428, + tField = 429, + tReturn = 430, + tCall = 431, + tSlide = 432, + tMacro = 433, + tShow = 434, + tHide = 435, + tGetValue = 436, + tGetStringValue = 437, + tGetEnv = 438, + tGetString = 439, + tGetNumber = 440, + tHomology = 441, + tCohomology = 442, + tBetti = 443, + tExists = 444, + tFileExists = 445, + tGMSH_MAJOR_VERSION = 446, + tGMSH_MINOR_VERSION = 447, + tGMSH_PATCH_VERSION = 448, + tGmshExecutableName = 449, + tSetPartition = 450, + tNameToString = 451, + tStringToName = 452, + tAFFECTDIVIDE = 453, + tAFFECTTIMES = 454, + tAFFECTMINUS = 455, + tAFFECTPLUS = 456, + tOR = 457, + tAND = 458, + tNOTEQUAL = 459, + tEQUAL = 460, + tGREATEROREQUAL = 461, + tLESSOREQUAL = 462, + UNARYPREC = 463, + tMINUSMINUS = 464, + tPLUSPLUS = 465 }; #endif /* Tokens. */ @@ -379,116 +381,118 @@ #define tEllipsoid 351 #define tQuadric 352 #define tShapeFromFile 353 -#define tCharacteristic 354 -#define tLength 355 -#define tParametric 356 -#define tElliptic 357 -#define tRefineMesh 358 -#define tAdaptMesh 359 -#define tRelocateMesh 360 -#define tSetFactory 361 -#define tThruSections 362 -#define tPlane 363 -#define tRuled 364 -#define tTransfinite 365 -#define tComplex 366 -#define tPhysical 367 -#define tCompound 368 -#define tPeriodic 369 -#define tUsing 370 -#define tPlugin 371 -#define tDegenerated 372 -#define tRecursive 373 -#define tRotate 374 -#define tTranslate 375 -#define tSymmetry 376 -#define tDilate 377 -#define tExtrude 378 -#define tLevelset 379 -#define tAffine 380 -#define tBooleanUnion 381 -#define tBooleanIntersection 382 -#define tBooleanDifference 383 -#define tBooleanSection 384 -#define tBooleanFragments 385 -#define tRecombine 386 -#define tSmoother 387 -#define tSplit 388 -#define tDelete 389 -#define tCoherence 390 -#define tIntersect 391 -#define tMeshAlgorithm 392 -#define tReverse 393 -#define tLayers 394 -#define tScaleLast 395 -#define tHole 396 -#define tAlias 397 -#define tAliasWithOptions 398 -#define tCopyOptions 399 -#define tQuadTriAddVerts 400 -#define tQuadTriNoNewVerts 401 -#define tQuadTriSngl 402 -#define tQuadTriDbl 403 -#define tRecombLaterals 404 -#define tTransfQuadTri 405 -#define tText2D 406 -#define tText3D 407 -#define tInterpolationScheme 408 -#define tTime 409 -#define tCombine 410 -#define tBSpline 411 -#define tBezier 412 -#define tNurbs 413 -#define tNurbsOrder 414 -#define tNurbsKnots 415 -#define tColor 416 -#define tColorTable 417 -#define tFor 418 -#define tIn 419 -#define tEndFor 420 -#define tIf 421 -#define tElseIf 422 -#define tElse 423 -#define tEndIf 424 -#define tExit 425 -#define tAbort 426 -#define tField 427 -#define tReturn 428 -#define tCall 429 -#define tSlide 430 -#define tMacro 431 -#define tShow 432 -#define tHide 433 -#define tGetValue 434 -#define tGetStringValue 435 -#define tGetEnv 436 -#define tGetString 437 -#define tGetNumber 438 -#define tHomology 439 -#define tCohomology 440 -#define tBetti 441 -#define tExists 442 -#define tFileExists 443 -#define tGMSH_MAJOR_VERSION 444 -#define tGMSH_MINOR_VERSION 445 -#define tGMSH_PATCH_VERSION 446 -#define tGmshExecutableName 447 -#define tSetPartition 448 -#define tNameToString 449 -#define tStringToName 450 -#define tAFFECTDIVIDE 451 -#define tAFFECTTIMES 452 -#define tAFFECTMINUS 453 -#define tAFFECTPLUS 454 -#define tOR 455 -#define tAND 456 -#define tNOTEQUAL 457 -#define tEQUAL 458 -#define tGREATEROREQUAL 459 -#define tLESSOREQUAL 460 -#define UNARYPREC 461 -#define tMINUSMINUS 462 -#define tPLUSPLUS 463 +#define tRectangle 354 +#define tDisk 355 +#define tCharacteristic 356 +#define tLength 357 +#define tParametric 358 +#define tElliptic 359 +#define tRefineMesh 360 +#define tAdaptMesh 361 +#define tRelocateMesh 362 +#define tSetFactory 363 +#define tThruSections 364 +#define tPlane 365 +#define tRuled 366 +#define tTransfinite 367 +#define tComplex 368 +#define tPhysical 369 +#define tCompound 370 +#define tPeriodic 371 +#define tUsing 372 +#define tPlugin 373 +#define tDegenerated 374 +#define tRecursive 375 +#define tRotate 376 +#define tTranslate 377 +#define tSymmetry 378 +#define tDilate 379 +#define tExtrude 380 +#define tLevelset 381 +#define tAffine 382 +#define tBooleanUnion 383 +#define tBooleanIntersection 384 +#define tBooleanDifference 385 +#define tBooleanSection 386 +#define tBooleanFragments 387 +#define tRecombine 388 +#define tSmoother 389 +#define tSplit 390 +#define tDelete 391 +#define tCoherence 392 +#define tIntersect 393 +#define tMeshAlgorithm 394 +#define tReverse 395 +#define tLayers 396 +#define tScaleLast 397 +#define tHole 398 +#define tAlias 399 +#define tAliasWithOptions 400 +#define tCopyOptions 401 +#define tQuadTriAddVerts 402 +#define tQuadTriNoNewVerts 403 +#define tQuadTriSngl 404 +#define tQuadTriDbl 405 +#define tRecombLaterals 406 +#define tTransfQuadTri 407 +#define tText2D 408 +#define tText3D 409 +#define tInterpolationScheme 410 +#define tTime 411 +#define tCombine 412 +#define tBSpline 413 +#define tBezier 414 +#define tNurbs 415 +#define tNurbsOrder 416 +#define tNurbsKnots 417 +#define tColor 418 +#define tColorTable 419 +#define tFor 420 +#define tIn 421 +#define tEndFor 422 +#define tIf 423 +#define tElseIf 424 +#define tElse 425 +#define tEndIf 426 +#define tExit 427 +#define tAbort 428 +#define tField 429 +#define tReturn 430 +#define tCall 431 +#define tSlide 432 +#define tMacro 433 +#define tShow 434 +#define tHide 435 +#define tGetValue 436 +#define tGetStringValue 437 +#define tGetEnv 438 +#define tGetString 439 +#define tGetNumber 440 +#define tHomology 441 +#define tCohomology 442 +#define tBetti 443 +#define tExists 444 +#define tFileExists 445 +#define tGMSH_MAJOR_VERSION 446 +#define tGMSH_MINOR_VERSION 447 +#define tGMSH_PATCH_VERSION 448 +#define tGmshExecutableName 449 +#define tSetPartition 450 +#define tNameToString 451 +#define tStringToName 452 +#define tAFFECTDIVIDE 453 +#define tAFFECTTIMES 454 +#define tAFFECTMINUS 455 +#define tAFFECTPLUS 456 +#define tOR 457 +#define tAND 458 +#define tNOTEQUAL 459 +#define tEQUAL 460 +#define tGREATEROREQUAL 461 +#define tLESSOREQUAL 462 +#define UNARYPREC 463 +#define tMINUSMINUS 464 +#define tPLUSPLUS 465 @@ -642,7 +646,7 @@ typedef union YYSTYPE List_T *l; } /* Line 193 of yacc.c. */ -#line 646 "Gmsh.tab.cpp" +#line 650 "Gmsh.tab.cpp" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -655,7 +659,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 659 "Gmsh.tab.cpp" +#line 663 "Gmsh.tab.cpp" #ifdef short # undef short @@ -870,20 +874,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 13561 +#define YYLAST 13379 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 229 +#define YYNTOKENS 231 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 105 /* YYNRULES -- Number of rules. */ -#define YYNRULES 585 +#define YYNRULES 587 /* YYNRULES -- Number of states. */ -#define YYNSTATES 2152 +#define YYNSTATES 2166 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 463 +#define YYMAXUTOK 465 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -894,16 +898,16 @@ static const yytype_uint8 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, 214, 2, 224, 2, 213, 2, 2, - 219, 220, 211, 209, 225, 210, 223, 212, 2, 2, + 2, 2, 2, 216, 2, 226, 2, 215, 2, 2, + 221, 222, 213, 211, 227, 212, 225, 214, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 205, 2, 206, 200, 2, 2, 2, 2, 2, 2, + 207, 2, 208, 202, 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, 221, 2, 222, 218, 2, 2, 2, 2, 2, + 2, 223, 2, 224, 220, 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, 226, 2, 227, 228, 2, 2, 2, + 2, 2, 2, 228, 2, 229, 230, 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, @@ -936,8 +940,8 @@ static const yytype_uint8 yytranslate[] = 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 201, 202, 203, 204, 207, - 208, 215, 216, 217 + 195, 196, 197, 198, 199, 200, 201, 203, 204, 205, + 206, 209, 210, 217, 218, 219 }; #if YYDEBUG @@ -964,457 +968,459 @@ static const yytype_uint16 yyprhs[] = 842, 844, 846, 850, 852, 854, 858, 859, 865, 866, 869, 875, 883, 892, 899, 907, 912, 920, 929, 938, 946, 954, 966, 975, 980, 989, 998, 1007, 1017, 1021, - 1026, 1037, 1045, 1053, 1061, 1069, 1078, 1083, 1092, 1105, - 1114, 1123, 1131, 1139, 1144, 1153, 1162, 1168, 1180, 1186, - 1196, 1206, 1211, 1221, 1231, 1233, 1235, 1236, 1239, 1246, - 1253, 1260, 1267, 1276, 1287, 1302, 1319, 1332, 1347, 1362, - 1377, 1392, 1401, 1410, 1417, 1422, 1429, 1436, 1440, 1445, - 1451, 1458, 1464, 1468, 1472, 1477, 1483, 1488, 1494, 1498, - 1504, 1512, 1520, 1524, 1532, 1536, 1539, 1542, 1545, 1548, - 1551, 1567, 1570, 1573, 1576, 1579, 1582, 1599, 1611, 1618, - 1627, 1636, 1647, 1649, 1652, 1655, 1657, 1661, 1665, 1670, - 1675, 1677, 1679, 1685, 1697, 1711, 1712, 1720, 1721, 1735, - 1736, 1752, 1753, 1760, 1769, 1778, 1787, 1800, 1813, 1826, - 1841, 1856, 1871, 1872, 1885, 1886, 1899, 1900, 1913, 1914, - 1931, 1932, 1949, 1950, 1967, 1968, 1987, 1988, 2007, 2008, - 2027, 2029, 2032, 2038, 2046, 2056, 2059, 2062, 2066, 2069, - 2073, 2076, 2080, 2083, 2087, 2090, 2094, 2104, 2111, 2113, - 2115, 2117, 2119, 2121, 2122, 2125, 2129, 2139, 2144, 2159, - 2160, 2164, 2165, 2167, 2168, 2171, 2172, 2175, 2176, 2179, - 2187, 2194, 2203, 2209, 2213, 2222, 2228, 2233, 2240, 2252, - 2264, 2283, 2302, 2315, 2328, 2341, 2352, 2363, 2374, 2385, - 2396, 2401, 2406, 2411, 2416, 2421, 2424, 2428, 2435, 2437, - 2439, 2441, 2444, 2450, 2458, 2469, 2471, 2475, 2478, 2481, - 2484, 2488, 2492, 2496, 2500, 2504, 2508, 2512, 2516, 2520, - 2524, 2528, 2532, 2536, 2540, 2546, 2551, 2556, 2561, 2566, - 2571, 2576, 2581, 2586, 2591, 2596, 2603, 2608, 2613, 2618, - 2623, 2628, 2633, 2638, 2645, 2652, 2659, 2664, 2666, 2668, - 2670, 2672, 2674, 2676, 2678, 2680, 2682, 2684, 2686, 2687, - 2694, 2699, 2706, 2708, 2713, 2718, 2723, 2728, 2733, 2738, - 2743, 2746, 2752, 2758, 2764, 2770, 2774, 2781, 2786, 2794, - 2801, 2808, 2815, 2820, 2827, 2832, 2834, 2837, 2840, 2844, - 2848, 2860, 2870, 2878, 2886, 2888, 2892, 2894, 2896, 2899, - 2903, 2908, 2914, 2916, 2918, 2921, 2925, 2929, 2935, 2940, - 2943, 2946, 2949, 2952, 2956, 2960, 2964, 2968, 2974, 2980, - 2986, 2992, 3009, 3026, 3043, 3060, 3062, 3064, 3066, 3070, - 3074, 3079, 3084, 3089, 3096, 3103, 3110, 3117, 3126, 3135, - 3140, 3155, 3157, 3159, 3163, 3167, 3177, 3185, 3187, 3193, - 3197, 3204, 3206, 3210, 3212, 3214, 3219, 3224, 3229, 3234, - 3238, 3245, 3247, 3252, 3254, 3256, 3258, 3263, 3270, 3275, - 3282, 3287, 3292, 3297, 3306, 3311, 3316, 3321, 3326, 3335, - 3344, 3351, 3356, 3363, 3368, 3370, 3375, 3380, 3381, 3388, - 3390, 3394, 3400, 3406, 3408, 3410 + 1026, 1037, 1045, 1053, 1061, 1069, 1077, 1085, 1094, 1099, + 1108, 1121, 1130, 1139, 1147, 1155, 1160, 1169, 1178, 1184, + 1196, 1202, 1212, 1222, 1227, 1237, 1247, 1249, 1251, 1252, + 1255, 1262, 1269, 1276, 1283, 1292, 1303, 1318, 1335, 1348, + 1363, 1378, 1393, 1408, 1417, 1426, 1433, 1438, 1445, 1452, + 1456, 1461, 1467, 1474, 1480, 1484, 1488, 1493, 1499, 1504, + 1510, 1514, 1520, 1528, 1536, 1540, 1548, 1552, 1555, 1558, + 1561, 1564, 1567, 1583, 1586, 1589, 1592, 1595, 1598, 1615, + 1627, 1634, 1643, 1652, 1663, 1665, 1668, 1671, 1673, 1677, + 1681, 1686, 1691, 1693, 1695, 1701, 1713, 1727, 1728, 1736, + 1737, 1751, 1752, 1768, 1769, 1776, 1785, 1794, 1803, 1816, + 1829, 1842, 1857, 1872, 1887, 1888, 1901, 1902, 1915, 1916, + 1929, 1930, 1947, 1948, 1965, 1966, 1983, 1984, 2003, 2004, + 2023, 2024, 2043, 2045, 2048, 2054, 2062, 2072, 2075, 2078, + 2082, 2085, 2089, 2092, 2096, 2099, 2103, 2106, 2110, 2120, + 2127, 2129, 2131, 2133, 2135, 2137, 2138, 2141, 2145, 2155, + 2160, 2175, 2176, 2180, 2181, 2183, 2184, 2187, 2188, 2191, + 2192, 2195, 2203, 2210, 2219, 2225, 2229, 2238, 2244, 2249, + 2256, 2268, 2280, 2299, 2318, 2331, 2344, 2357, 2368, 2379, + 2390, 2401, 2412, 2417, 2422, 2427, 2432, 2437, 2440, 2444, + 2451, 2453, 2455, 2457, 2460, 2466, 2474, 2485, 2487, 2491, + 2494, 2497, 2500, 2504, 2508, 2512, 2516, 2520, 2524, 2528, + 2532, 2536, 2540, 2544, 2548, 2552, 2556, 2562, 2567, 2572, + 2577, 2582, 2587, 2592, 2597, 2602, 2607, 2612, 2619, 2624, + 2629, 2634, 2639, 2644, 2649, 2654, 2661, 2668, 2675, 2680, + 2682, 2684, 2686, 2688, 2690, 2692, 2694, 2696, 2698, 2700, + 2702, 2703, 2710, 2715, 2722, 2724, 2729, 2734, 2739, 2744, + 2749, 2754, 2759, 2762, 2768, 2774, 2780, 2786, 2790, 2797, + 2802, 2810, 2817, 2824, 2831, 2836, 2843, 2848, 2850, 2853, + 2856, 2860, 2864, 2876, 2886, 2894, 2902, 2904, 2908, 2910, + 2912, 2915, 2919, 2924, 2930, 2932, 2934, 2937, 2941, 2945, + 2951, 2956, 2959, 2962, 2965, 2968, 2972, 2976, 2980, 2984, + 2990, 2996, 3002, 3008, 3025, 3042, 3059, 3076, 3078, 3080, + 3082, 3086, 3090, 3095, 3100, 3105, 3112, 3119, 3126, 3133, + 3142, 3151, 3156, 3171, 3173, 3175, 3179, 3183, 3193, 3201, + 3203, 3209, 3213, 3220, 3222, 3226, 3228, 3230, 3235, 3240, + 3245, 3250, 3254, 3261, 3263, 3268, 3270, 3272, 3274, 3279, + 3286, 3291, 3298, 3303, 3308, 3313, 3322, 3327, 3332, 3337, + 3342, 3351, 3360, 3367, 3372, 3379, 3384, 3386, 3391, 3396, + 3397, 3404, 3406, 3410, 3416, 3422, 3424, 3426 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 230, 0, -1, 231, -1, 1, 6, -1, -1, 231, - 232, -1, 235, -1, 234, -1, 255, -1, 274, -1, - 275, -1, 279, -1, 280, -1, 281, -1, 282, -1, - 286, -1, 304, -1, 305, -1, 311, -1, 312, -1, - 285, -1, 284, -1, 283, -1, 278, -1, 314, -1, - 206, -1, 206, 206, -1, 42, 219, 328, 220, 6, - -1, 43, 219, 328, 220, 6, -1, 42, 219, 328, - 220, 233, 328, 6, -1, 42, 219, 328, 225, 324, - 220, 6, -1, 43, 219, 328, 225, 324, 220, 6, - -1, 42, 219, 328, 225, 324, 220, 233, 328, 6, - -1, 4, 328, 226, 236, 227, 6, -1, 142, 4, - 221, 315, 222, 6, -1, 143, 4, 221, 315, 222, - 6, -1, 144, 4, 221, 315, 225, 315, 222, 6, - -1, -1, 236, 239, -1, 236, 243, -1, 236, 246, - -1, 236, 248, -1, 236, 249, -1, 315, -1, 237, - 225, 315, -1, 315, -1, 238, 225, 315, -1, -1, - -1, 4, 240, 219, 237, 220, 241, 226, 238, 227, - 6, -1, 328, -1, 242, 225, 328, -1, -1, 151, - 219, 315, 225, 315, 225, 315, 220, 244, 226, 242, - 227, 6, -1, 328, -1, 245, 225, 328, -1, -1, - 152, 219, 315, 225, 315, 225, 315, 225, 315, 220, - 247, 226, 245, 227, 6, -1, 153, 226, 320, 227, - 226, 320, 227, 6, -1, 153, 226, 320, 227, 226, - 320, 227, 226, 320, 227, 226, 320, 227, 6, -1, - -1, 154, 250, 226, 238, 227, 6, -1, 7, -1, - 199, -1, 198, -1, 197, -1, 196, -1, 217, -1, - 216, -1, 219, -1, 221, -1, 220, -1, 222, -1, - 78, 221, 257, 222, 6, -1, 79, 221, 262, 222, - 6, -1, 82, 253, 329, 225, 315, 254, 6, -1, - 83, 253, 333, 225, 329, 254, 6, -1, 333, 251, - 321, 6, -1, 333, 252, 6, -1, 4, 221, 222, - 251, 321, 6, -1, 332, 221, 222, 251, 321, 6, - -1, 4, 221, 315, 222, 251, 315, 6, -1, 332, - 221, 315, 222, 251, 315, 6, -1, 4, 221, 315, - 222, 252, 6, -1, 332, 221, 315, 222, 252, 6, - -1, 4, 253, 226, 324, 227, 254, 251, 321, 6, - -1, 332, 253, 226, 324, 227, 254, 251, 321, 6, - -1, 4, 219, 220, 251, 321, 6, -1, 332, 219, - 220, 251, 321, 6, -1, 4, 219, 315, 220, 251, - 315, 6, -1, 332, 219, 315, 220, 251, 315, 6, - -1, 4, 219, 315, 220, 252, 6, -1, 332, 219, - 315, 220, 252, 6, -1, 333, 7, 329, 6, -1, - 4, 221, 222, 7, 44, 253, 254, 6, -1, 332, - 221, 222, 7, 44, 253, 254, 6, -1, 4, 221, - 222, 7, 44, 253, 331, 254, 6, -1, 332, 221, - 222, 7, 44, 253, 331, 254, 6, -1, 4, 221, - 222, 199, 44, 253, 331, 254, 6, -1, 332, 221, - 222, 199, 44, 253, 331, 254, 6, -1, 4, 219, - 220, 7, 44, 253, 254, 6, -1, 332, 219, 220, - 7, 44, 253, 254, 6, -1, 4, 219, 220, 7, - 44, 253, 331, 254, 6, -1, 332, 219, 220, 7, - 44, 253, 331, 254, 6, -1, 4, 219, 220, 199, - 44, 253, 331, 254, 6, -1, 332, 219, 220, 199, - 44, 253, 331, 254, 6, -1, 4, 223, 4, 7, - 329, 6, -1, 4, 221, 315, 222, 223, 4, 7, - 329, 6, -1, 4, 223, 4, 251, 315, 6, -1, - 4, 221, 315, 222, 223, 4, 251, 315, 6, -1, - 4, 223, 4, 252, 6, -1, 4, 221, 315, 222, - 223, 4, 252, 6, -1, 4, 223, 161, 223, 4, - 7, 325, 6, -1, 4, 221, 315, 222, 223, 161, - 223, 4, 7, 325, 6, -1, 4, 223, 162, 7, - 326, 6, -1, 4, 221, 315, 222, 223, 162, 7, - 326, 6, -1, 4, 172, 7, 315, 6, -1, 172, - 221, 315, 222, 7, 4, 6, -1, 172, 221, 315, - 222, 223, 4, 7, 315, 6, -1, 172, 221, 315, - 222, 223, 4, 7, 329, 6, -1, 172, 221, 315, - 222, 223, 4, 7, 226, 324, 227, 6, -1, 172, - 221, 315, 222, 223, 4, 6, -1, 116, 219, 4, - 220, 223, 4, 7, 315, 6, -1, 116, 219, 4, - 220, 223, 4, 7, 329, 6, -1, -1, 225, -1, - -1, 257, 256, 333, -1, 257, 256, 333, 7, 315, - -1, -1, 257, 256, 333, 7, 226, 321, 258, 264, - 227, -1, -1, 257, 256, 333, 221, 222, 7, 226, - 321, 259, 264, 227, -1, -1, 257, 256, 333, 219, - 220, 7, 226, 321, 260, 264, 227, -1, 257, 256, - 333, 7, 329, -1, -1, 257, 256, 333, 7, 226, - 329, 261, 266, 227, -1, -1, 262, 256, 328, -1, - 315, 7, 329, -1, 263, 225, 315, 7, 329, -1, - 323, 7, 333, 219, 220, -1, -1, 264, 265, -1, - 225, 4, 321, -1, 225, 4, 226, 263, 227, -1, - 225, 4, 329, -1, -1, 266, 267, -1, 225, 4, - 315, -1, 225, 4, 329, -1, 225, 176, 329, -1, - 225, 4, 226, 331, 227, -1, 315, -1, 329, -1, - 329, 225, 315, -1, 315, -1, 329, -1, 329, 225, - 315, -1, 315, -1, 329, -1, 329, 225, 315, -1, - 315, -1, 329, -1, 329, 225, 315, -1, -1, 164, - 88, 226, 315, 227, -1, -1, 108, 318, -1, 106, - 219, 328, 220, 6, -1, 84, 219, 315, 220, 7, - 318, 6, -1, 112, 84, 219, 268, 220, 251, 321, - 6, -1, 99, 100, 321, 7, 315, 6, -1, 87, - 219, 315, 220, 7, 321, 6, -1, 117, 87, 321, - 6, -1, 91, 219, 315, 220, 7, 321, 6, -1, - 85, 219, 315, 220, 7, 321, 273, 6, -1, 86, - 219, 315, 220, 7, 321, 273, 6, -1, 156, 219, - 315, 220, 7, 321, 6, -1, 157, 219, 315, 220, - 7, 321, 6, -1, 158, 219, 315, 220, 7, 321, - 160, 321, 159, 315, 6, -1, 87, 4, 219, 315, - 220, 7, 321, 6, -1, 113, 87, 321, 6, -1, - 113, 87, 219, 315, 220, 7, 321, 6, -1, 112, - 87, 219, 269, 220, 251, 321, 6, -1, 108, 90, - 219, 315, 220, 7, 321, 6, -1, 109, 90, 219, - 315, 220, 7, 321, 272, 6, -1, 12, 13, 6, - -1, 13, 90, 315, 6, -1, 101, 90, 219, 315, - 220, 7, 5, 5, 5, 6, -1, 88, 219, 315, - 220, 7, 321, 6, -1, 89, 219, 315, 220, 7, - 321, 6, -1, 93, 219, 315, 220, 7, 321, 6, - -1, 94, 219, 315, 220, 7, 321, 6, -1, 90, - 4, 219, 315, 220, 7, 321, 6, -1, 113, 90, - 321, 6, -1, 113, 90, 219, 315, 220, 7, 321, - 6, -1, 113, 90, 219, 315, 220, 7, 321, 4, - 226, 320, 227, 6, -1, 112, 90, 219, 270, 220, - 251, 321, 6, -1, 111, 92, 219, 315, 220, 7, - 321, 6, -1, 92, 219, 315, 220, 7, 321, 6, - -1, 107, 219, 315, 220, 7, 321, 6, -1, 113, - 92, 321, 6, -1, 113, 92, 219, 315, 220, 7, - 321, 6, -1, 112, 92, 219, 271, 220, 251, 321, - 6, -1, 120, 318, 226, 276, 227, -1, 119, 226, - 318, 225, 318, 225, 315, 227, 226, 276, 227, -1, - 121, 318, 226, 276, 227, -1, 122, 226, 318, 225, - 315, 227, 226, 276, 227, -1, 122, 226, 318, 225, - 318, 227, 226, 276, 227, -1, 4, 226, 276, 227, - -1, 136, 87, 226, 324, 227, 90, 226, 315, 227, - -1, 133, 87, 219, 315, 220, 226, 324, 227, 6, - -1, 277, -1, 275, -1, -1, 277, 274, -1, 277, - 84, 226, 324, 227, 6, -1, 277, 87, 226, 324, - 227, 6, -1, 277, 90, 226, 324, 227, 6, -1, - 277, 92, 226, 324, 227, 6, -1, 124, 108, 219, - 315, 220, 7, 321, 6, -1, 124, 84, 219, 315, - 220, 7, 226, 320, 227, 6, -1, 124, 108, 219, - 315, 220, 7, 226, 318, 225, 318, 225, 324, 227, - 6, -1, 124, 108, 219, 315, 220, 7, 226, 318, - 225, 318, 225, 318, 225, 324, 227, 6, -1, 124, - 88, 219, 315, 220, 7, 226, 318, 225, 324, 227, - 6, -1, 124, 94, 219, 315, 220, 7, 226, 318, - 225, 318, 225, 324, 227, 6, -1, 124, 95, 219, - 315, 220, 7, 226, 318, 225, 318, 225, 324, 227, - 6, -1, 124, 96, 219, 315, 220, 7, 226, 318, - 225, 318, 225, 324, 227, 6, -1, 124, 97, 219, - 315, 220, 7, 226, 318, 225, 318, 225, 324, 227, - 6, -1, 124, 4, 219, 315, 220, 7, 321, 6, - -1, 124, 4, 219, 315, 220, 7, 5, 6, -1, - 124, 4, 226, 315, 227, 6, -1, 134, 226, 277, - 227, -1, 134, 172, 221, 315, 222, 6, -1, 134, - 4, 221, 315, 222, 6, -1, 134, 333, 6, -1, - 134, 4, 4, 6, -1, 161, 325, 226, 277, 227, - -1, 118, 161, 325, 226, 277, 227, -1, 193, 315, - 226, 277, 227, -1, 177, 5, 6, -1, 178, 5, - 6, -1, 177, 226, 277, 227, -1, 118, 177, 226, - 277, 227, -1, 178, 226, 277, 227, -1, 118, 178, - 226, 277, 227, -1, 4, 329, 6, -1, 71, 219, - 331, 220, 6, -1, 4, 4, 221, 315, 222, 328, - 6, -1, 4, 4, 4, 221, 315, 222, 6, -1, - 4, 315, 6, -1, 116, 219, 4, 220, 223, 4, - 6, -1, 155, 4, 6, -1, 170, 6, -1, 171, - 6, -1, 68, 6, -1, 69, 6, -1, 62, 6, - -1, 62, 226, 315, 225, 315, 225, 315, 225, 315, - 225, 315, 225, 315, 227, 6, -1, 63, 6, -1, - 64, 6, -1, 75, 6, -1, 76, 6, -1, 103, - 6, -1, 104, 226, 324, 227, 226, 324, 227, 226, - 320, 227, 226, 315, 225, 315, 227, 6, -1, 175, - 219, 226, 324, 227, 225, 329, 225, 329, 220, 6, - -1, 163, 219, 315, 8, 315, 220, -1, 163, 219, - 315, 8, 315, 8, 315, 220, -1, 163, 4, 164, - 226, 315, 8, 315, 227, -1, 163, 4, 164, 226, - 315, 8, 315, 8, 315, 227, -1, 165, -1, 176, - 4, -1, 176, 329, -1, 173, -1, 174, 333, 6, - -1, 174, 329, 6, -1, 166, 219, 315, 220, -1, - 167, 219, 315, 220, -1, 168, -1, 169, -1, 123, - 318, 226, 277, 227, -1, 123, 226, 318, 225, 318, - 225, 315, 227, 226, 277, 227, -1, 123, 226, 318, - 225, 318, 225, 318, 225, 315, 227, 226, 277, 227, - -1, -1, 123, 318, 226, 277, 287, 300, 227, -1, - -1, 123, 226, 318, 225, 318, 225, 315, 227, 226, - 277, 288, 300, 227, -1, -1, 123, 226, 318, 225, - 318, 225, 318, 225, 315, 227, 226, 277, 289, 300, - 227, -1, -1, 123, 226, 277, 290, 300, 227, -1, - 123, 84, 226, 315, 225, 318, 227, 6, -1, 123, - 87, 226, 315, 225, 318, 227, 6, -1, 123, 90, - 226, 315, 225, 318, 227, 6, -1, 123, 84, 226, - 315, 225, 318, 225, 318, 225, 315, 227, 6, -1, - 123, 87, 226, 315, 225, 318, 225, 318, 225, 315, - 227, 6, -1, 123, 90, 226, 315, 225, 318, 225, - 318, 225, 315, 227, 6, -1, 123, 84, 226, 315, - 225, 318, 225, 318, 225, 318, 225, 315, 227, 6, - -1, 123, 87, 226, 315, 225, 318, 225, 318, 225, - 318, 225, 315, 227, 6, -1, 123, 90, 226, 315, - 225, 318, 225, 318, 225, 318, 225, 315, 227, 6, - -1, -1, 123, 84, 226, 315, 225, 318, 227, 291, - 226, 300, 227, 6, -1, -1, 123, 87, 226, 315, - 225, 318, 227, 292, 226, 300, 227, 6, -1, -1, - 123, 90, 226, 315, 225, 318, 227, 293, 226, 300, - 227, 6, -1, -1, 123, 84, 226, 315, 225, 318, - 225, 318, 225, 315, 227, 294, 226, 300, 227, 6, - -1, -1, 123, 87, 226, 315, 225, 318, 225, 318, - 225, 315, 227, 295, 226, 300, 227, 6, -1, -1, - 123, 90, 226, 315, 225, 318, 225, 318, 225, 315, - 227, 296, 226, 300, 227, 6, -1, -1, 123, 84, - 226, 315, 225, 318, 225, 318, 225, 318, 225, 315, - 227, 297, 226, 300, 227, 6, -1, -1, 123, 87, - 226, 315, 225, 318, 225, 318, 225, 318, 225, 315, - 227, 298, 226, 300, 227, 6, -1, -1, 123, 90, - 226, 315, 225, 318, 225, 318, 225, 318, 225, 315, - 227, 299, 226, 300, 227, 6, -1, 301, -1, 300, - 301, -1, 139, 226, 315, 227, 6, -1, 139, 226, - 321, 225, 321, 227, 6, -1, 139, 226, 321, 225, - 321, 225, 321, 227, 6, -1, 140, 6, -1, 131, - 6, -1, 131, 315, 6, -1, 147, 6, -1, 147, - 149, 6, -1, 148, 6, -1, 148, 149, 6, -1, - 145, 6, -1, 145, 149, 6, -1, 146, 6, -1, - 146, 149, 6, -1, 141, 219, 315, 220, 7, 321, - 115, 315, 6, -1, 115, 4, 221, 315, 222, 6, - -1, 126, -1, 127, -1, 128, -1, 129, -1, 130, - -1, -1, 134, 6, -1, 134, 315, 6, -1, 302, - 226, 277, 303, 227, 226, 277, 303, 227, -1, 98, - 219, 328, 220, -1, 302, 219, 315, 220, 7, 226, - 277, 303, 227, 226, 277, 303, 227, 6, -1, -1, - 115, 4, 315, -1, -1, 4, -1, -1, 7, 321, - -1, -1, 7, 315, -1, -1, 125, 321, -1, 110, - 87, 322, 7, 315, 306, 6, -1, 110, 90, 322, - 308, 307, 6, -1, 102, 90, 226, 315, 227, 7, - 321, 6, -1, 110, 92, 322, 308, 6, -1, 150, - 322, 6, -1, 137, 90, 226, 324, 227, 7, 315, - 6, -1, 131, 90, 322, 309, 6, -1, 131, 92, - 322, 6, -1, 132, 90, 321, 7, 315, 6, -1, - 114, 87, 226, 324, 227, 7, 226, 324, 227, 310, - 6, -1, 114, 90, 226, 324, 227, 7, 226, 324, - 227, 310, 6, -1, 114, 87, 226, 324, 227, 7, - 226, 324, 227, 119, 226, 318, 225, 318, 225, 315, - 227, 6, -1, 114, 90, 226, 324, 227, 7, 226, - 324, 227, 119, 226, 318, 225, 318, 225, 315, 227, - 6, -1, 114, 87, 226, 324, 227, 7, 226, 324, - 227, 120, 318, 6, -1, 114, 90, 226, 324, 227, - 7, 226, 324, 227, 120, 318, 6, -1, 114, 90, - 315, 226, 324, 227, 7, 315, 226, 324, 227, 6, - -1, 84, 226, 324, 227, 164, 90, 226, 315, 227, - 6, -1, 87, 226, 324, 227, 164, 90, 226, 315, - 227, 6, -1, 84, 226, 324, 227, 164, 92, 226, - 315, 227, 6, -1, 87, 226, 324, 227, 164, 92, - 226, 315, 227, 6, -1, 90, 226, 324, 227, 164, - 92, 226, 315, 227, 6, -1, 138, 90, 322, 6, - -1, 138, 87, 322, 6, -1, 105, 84, 322, 6, - -1, 105, 87, 322, 6, -1, 105, 90, 322, 6, - -1, 135, 6, -1, 135, 4, 6, -1, 135, 84, - 226, 324, 227, 6, -1, 184, -1, 185, -1, 186, - -1, 313, 6, -1, 313, 226, 321, 227, 6, -1, - 313, 226, 321, 225, 321, 227, 6, -1, 313, 219, - 321, 220, 226, 321, 225, 321, 227, 6, -1, 316, - -1, 219, 315, 220, -1, 210, 315, -1, 209, 315, - -1, 214, 315, -1, 315, 210, 315, -1, 315, 209, - 315, -1, 315, 211, 315, -1, 315, 212, 315, -1, - 315, 213, 315, -1, 315, 218, 315, -1, 315, 205, - 315, -1, 315, 206, 315, -1, 315, 208, 315, -1, - 315, 207, 315, -1, 315, 204, 315, -1, 315, 203, - 315, -1, 315, 202, 315, -1, 315, 201, 315, -1, - 315, 200, 315, 8, 315, -1, 15, 253, 315, 254, - -1, 16, 253, 315, 254, -1, 17, 253, 315, 254, - -1, 18, 253, 315, 254, -1, 19, 253, 315, 254, - -1, 20, 253, 315, 254, -1, 21, 253, 315, 254, - -1, 22, 253, 315, 254, -1, 23, 253, 315, 254, - -1, 25, 253, 315, 254, -1, 26, 253, 315, 225, - 315, 254, -1, 27, 253, 315, 254, -1, 28, 253, - 315, 254, -1, 29, 253, 315, 254, -1, 30, 253, - 315, 254, -1, 31, 253, 315, 254, -1, 32, 253, - 315, 254, -1, 33, 253, 315, 254, -1, 34, 253, - 315, 225, 315, 254, -1, 35, 253, 315, 225, 315, - 254, -1, 36, 253, 315, 225, 315, 254, -1, 24, - 253, 315, 254, -1, 3, -1, 9, -1, 14, -1, - 10, -1, 11, -1, 189, -1, 190, -1, 191, -1, - 72, -1, 73, -1, 74, -1, -1, 80, 253, 315, - 317, 264, 254, -1, 183, 253, 328, 254, -1, 183, - 253, 328, 225, 315, 254, -1, 333, -1, 4, 221, - 315, 222, -1, 4, 219, 315, 220, -1, 332, 221, - 315, 222, -1, 332, 219, 315, 220, -1, 187, 219, - 333, 220, -1, 188, 219, 329, 220, -1, 224, 333, - 253, 254, -1, 333, 252, -1, 4, 221, 315, 222, - 252, -1, 4, 219, 315, 220, 252, -1, 332, 221, - 315, 222, 252, -1, 332, 219, 315, 220, 252, -1, - 4, 223, 4, -1, 4, 221, 315, 222, 223, 4, - -1, 4, 223, 4, 252, -1, 4, 221, 315, 222, - 223, 4, 252, -1, 179, 219, 328, 225, 315, 220, - -1, 54, 219, 321, 225, 321, 220, -1, 55, 253, - 328, 225, 328, 254, -1, 53, 253, 328, 254, -1, - 56, 253, 328, 225, 328, 254, -1, 61, 219, 331, - 220, -1, 319, -1, 210, 318, -1, 209, 318, -1, - 318, 210, 318, -1, 318, 209, 318, -1, 226, 315, - 225, 315, 225, 315, 225, 315, 225, 315, 227, -1, - 226, 315, 225, 315, 225, 315, 225, 315, 227, -1, - 226, 315, 225, 315, 225, 315, 227, -1, 219, 315, - 225, 315, 225, 315, 220, -1, 321, -1, 320, 225, - 321, -1, 315, -1, 323, -1, 226, 227, -1, 226, - 324, 227, -1, 210, 226, 324, 227, -1, 315, 211, - 226, 324, 227, -1, 321, -1, 5, -1, 210, 323, - -1, 315, 211, 323, -1, 315, 8, 315, -1, 315, - 8, 315, 8, 315, -1, 84, 226, 315, 227, -1, - 84, 5, -1, 87, 5, -1, 90, 5, -1, 92, - 5, -1, 112, 84, 5, -1, 112, 87, 5, -1, - 112, 90, 5, -1, 112, 92, 5, -1, 112, 84, - 226, 324, 227, -1, 112, 87, 226, 324, 227, -1, - 112, 90, 226, 324, 227, -1, 112, 92, 226, 324, - 227, -1, 84, 164, 62, 226, 315, 225, 315, 225, - 315, 225, 315, 225, 315, 225, 315, 227, -1, 87, - 164, 62, 226, 315, 225, 315, 225, 315, 225, 315, - 225, 315, 225, 315, 227, -1, 90, 164, 62, 226, - 315, 225, 315, 225, 315, 225, 315, 225, 315, 225, - 315, 227, -1, 92, 164, 62, 226, 315, 225, 315, - 225, 315, 225, 315, 225, 315, 225, 315, 227, -1, - 275, -1, 286, -1, 304, -1, 4, 253, 254, -1, - 332, 253, 254, -1, 37, 221, 333, 222, -1, 37, - 221, 323, 222, -1, 37, 219, 323, 220, -1, 37, - 221, 226, 324, 227, 222, -1, 37, 219, 226, 324, - 227, 220, -1, 4, 253, 226, 324, 227, 254, -1, - 332, 253, 226, 324, 227, 254, -1, 38, 253, 315, - 225, 315, 225, 315, 254, -1, 39, 253, 315, 225, - 315, 225, 315, 254, -1, 40, 253, 328, 254, -1, - 41, 253, 315, 225, 315, 225, 315, 225, 315, 225, - 315, 225, 315, 254, -1, 315, -1, 323, -1, 324, - 225, 315, -1, 324, 225, 323, -1, 226, 315, 225, - 315, 225, 315, 225, 315, 227, -1, 226, 315, 225, - 315, 225, 315, 227, -1, 333, -1, 4, 223, 161, - 223, 4, -1, 226, 327, 227, -1, 4, 221, 315, - 222, 223, 162, -1, 325, -1, 327, 225, 325, -1, - 329, -1, 333, -1, 4, 221, 315, 222, -1, 332, - 221, 315, 222, -1, 4, 219, 315, 220, -1, 332, - 219, 315, 220, -1, 4, 223, 4, -1, 4, 221, - 315, 222, 223, 4, -1, 5, -1, 194, 221, 333, - 222, -1, 65, -1, 192, -1, 70, -1, 181, 219, - 328, 220, -1, 180, 219, 328, 225, 328, 220, -1, - 182, 253, 328, 254, -1, 182, 253, 328, 225, 328, - 254, -1, 46, 253, 331, 254, -1, 47, 219, 328, - 220, -1, 48, 219, 328, 220, -1, 49, 219, 328, - 225, 328, 225, 328, 220, -1, 44, 253, 331, 254, - -1, 58, 253, 328, 254, -1, 59, 253, 328, 254, - -1, 60, 253, 328, 254, -1, 57, 253, 315, 225, - 328, 225, 328, 254, -1, 52, 253, 328, 225, 315, - 225, 315, 254, -1, 52, 253, 328, 225, 315, 254, - -1, 45, 253, 328, 254, -1, 45, 253, 328, 225, - 324, 254, -1, 66, 253, 328, 254, -1, 67, -1, - 51, 253, 328, 254, -1, 50, 253, 328, 254, -1, - -1, 81, 253, 329, 330, 266, 254, -1, 328, -1, - 331, 225, 328, -1, 4, 228, 226, 315, 227, -1, - 332, 228, 226, 315, 227, -1, 4, -1, 332, -1, - 195, 221, 328, 222, -1 + 232, 0, -1, 233, -1, 1, 6, -1, -1, 233, + 234, -1, 237, -1, 236, -1, 257, -1, 276, -1, + 277, -1, 281, -1, 282, -1, 283, -1, 284, -1, + 288, -1, 306, -1, 307, -1, 313, -1, 314, -1, + 287, -1, 286, -1, 285, -1, 280, -1, 316, -1, + 208, -1, 208, 208, -1, 42, 221, 330, 222, 6, + -1, 43, 221, 330, 222, 6, -1, 42, 221, 330, + 222, 235, 330, 6, -1, 42, 221, 330, 227, 326, + 222, 6, -1, 43, 221, 330, 227, 326, 222, 6, + -1, 42, 221, 330, 227, 326, 222, 235, 330, 6, + -1, 4, 330, 228, 238, 229, 6, -1, 144, 4, + 223, 317, 224, 6, -1, 145, 4, 223, 317, 224, + 6, -1, 146, 4, 223, 317, 227, 317, 224, 6, + -1, -1, 238, 241, -1, 238, 245, -1, 238, 248, + -1, 238, 250, -1, 238, 251, -1, 317, -1, 239, + 227, 317, -1, 317, -1, 240, 227, 317, -1, -1, + -1, 4, 242, 221, 239, 222, 243, 228, 240, 229, + 6, -1, 330, -1, 244, 227, 330, -1, -1, 153, + 221, 317, 227, 317, 227, 317, 222, 246, 228, 244, + 229, 6, -1, 330, -1, 247, 227, 330, -1, -1, + 154, 221, 317, 227, 317, 227, 317, 227, 317, 222, + 249, 228, 247, 229, 6, -1, 155, 228, 322, 229, + 228, 322, 229, 6, -1, 155, 228, 322, 229, 228, + 322, 229, 228, 322, 229, 228, 322, 229, 6, -1, + -1, 156, 252, 228, 240, 229, 6, -1, 7, -1, + 201, -1, 200, -1, 199, -1, 198, -1, 219, -1, + 218, -1, 221, -1, 223, -1, 222, -1, 224, -1, + 78, 223, 259, 224, 6, -1, 79, 223, 264, 224, + 6, -1, 82, 255, 331, 227, 317, 256, 6, -1, + 83, 255, 335, 227, 331, 256, 6, -1, 335, 253, + 323, 6, -1, 335, 254, 6, -1, 4, 223, 224, + 253, 323, 6, -1, 334, 223, 224, 253, 323, 6, + -1, 4, 223, 317, 224, 253, 317, 6, -1, 334, + 223, 317, 224, 253, 317, 6, -1, 4, 223, 317, + 224, 254, 6, -1, 334, 223, 317, 224, 254, 6, + -1, 4, 255, 228, 326, 229, 256, 253, 323, 6, + -1, 334, 255, 228, 326, 229, 256, 253, 323, 6, + -1, 4, 221, 222, 253, 323, 6, -1, 334, 221, + 222, 253, 323, 6, -1, 4, 221, 317, 222, 253, + 317, 6, -1, 334, 221, 317, 222, 253, 317, 6, + -1, 4, 221, 317, 222, 254, 6, -1, 334, 221, + 317, 222, 254, 6, -1, 335, 7, 331, 6, -1, + 4, 223, 224, 7, 44, 255, 256, 6, -1, 334, + 223, 224, 7, 44, 255, 256, 6, -1, 4, 223, + 224, 7, 44, 255, 333, 256, 6, -1, 334, 223, + 224, 7, 44, 255, 333, 256, 6, -1, 4, 223, + 224, 201, 44, 255, 333, 256, 6, -1, 334, 223, + 224, 201, 44, 255, 333, 256, 6, -1, 4, 221, + 222, 7, 44, 255, 256, 6, -1, 334, 221, 222, + 7, 44, 255, 256, 6, -1, 4, 221, 222, 7, + 44, 255, 333, 256, 6, -1, 334, 221, 222, 7, + 44, 255, 333, 256, 6, -1, 4, 221, 222, 201, + 44, 255, 333, 256, 6, -1, 334, 221, 222, 201, + 44, 255, 333, 256, 6, -1, 4, 225, 4, 7, + 331, 6, -1, 4, 223, 317, 224, 225, 4, 7, + 331, 6, -1, 4, 225, 4, 253, 317, 6, -1, + 4, 223, 317, 224, 225, 4, 253, 317, 6, -1, + 4, 225, 4, 254, 6, -1, 4, 223, 317, 224, + 225, 4, 254, 6, -1, 4, 225, 163, 225, 4, + 7, 327, 6, -1, 4, 223, 317, 224, 225, 163, + 225, 4, 7, 327, 6, -1, 4, 225, 164, 7, + 328, 6, -1, 4, 223, 317, 224, 225, 164, 7, + 328, 6, -1, 4, 174, 7, 317, 6, -1, 174, + 223, 317, 224, 7, 4, 6, -1, 174, 223, 317, + 224, 225, 4, 7, 317, 6, -1, 174, 223, 317, + 224, 225, 4, 7, 331, 6, -1, 174, 223, 317, + 224, 225, 4, 7, 228, 326, 229, 6, -1, 174, + 223, 317, 224, 225, 4, 6, -1, 118, 221, 4, + 222, 225, 4, 7, 317, 6, -1, 118, 221, 4, + 222, 225, 4, 7, 331, 6, -1, -1, 227, -1, + -1, 259, 258, 335, -1, 259, 258, 335, 7, 317, + -1, -1, 259, 258, 335, 7, 228, 323, 260, 266, + 229, -1, -1, 259, 258, 335, 223, 224, 7, 228, + 323, 261, 266, 229, -1, -1, 259, 258, 335, 221, + 222, 7, 228, 323, 262, 266, 229, -1, 259, 258, + 335, 7, 331, -1, -1, 259, 258, 335, 7, 228, + 331, 263, 268, 229, -1, -1, 264, 258, 330, -1, + 317, 7, 331, -1, 265, 227, 317, 7, 331, -1, + 325, 7, 335, 221, 222, -1, -1, 266, 267, -1, + 227, 4, 323, -1, 227, 4, 228, 265, 229, -1, + 227, 4, 331, -1, -1, 268, 269, -1, 227, 4, + 317, -1, 227, 4, 331, -1, 227, 178, 331, -1, + 227, 4, 228, 333, 229, -1, 317, -1, 331, -1, + 331, 227, 317, -1, 317, -1, 331, -1, 331, 227, + 317, -1, 317, -1, 331, -1, 331, 227, 317, -1, + 317, -1, 331, -1, 331, 227, 317, -1, -1, 166, + 88, 228, 317, 229, -1, -1, 110, 320, -1, 108, + 221, 330, 222, 6, -1, 84, 221, 317, 222, 7, + 320, 6, -1, 114, 84, 221, 270, 222, 253, 323, + 6, -1, 101, 102, 323, 7, 317, 6, -1, 87, + 221, 317, 222, 7, 323, 6, -1, 119, 87, 323, + 6, -1, 91, 221, 317, 222, 7, 323, 6, -1, + 85, 221, 317, 222, 7, 323, 275, 6, -1, 86, + 221, 317, 222, 7, 323, 275, 6, -1, 158, 221, + 317, 222, 7, 323, 6, -1, 159, 221, 317, 222, + 7, 323, 6, -1, 160, 221, 317, 222, 7, 323, + 162, 323, 161, 317, 6, -1, 87, 4, 221, 317, + 222, 7, 323, 6, -1, 115, 87, 323, 6, -1, + 115, 87, 221, 317, 222, 7, 323, 6, -1, 114, + 87, 221, 271, 222, 253, 323, 6, -1, 110, 90, + 221, 317, 222, 7, 323, 6, -1, 111, 90, 221, + 317, 222, 7, 323, 274, 6, -1, 12, 13, 6, + -1, 13, 90, 317, 6, -1, 103, 90, 221, 317, + 222, 7, 5, 5, 5, 6, -1, 88, 221, 317, + 222, 7, 323, 6, -1, 89, 221, 317, 222, 7, + 323, 6, -1, 93, 221, 317, 222, 7, 323, 6, + -1, 99, 221, 317, 222, 7, 323, 6, -1, 100, + 221, 317, 222, 7, 323, 6, -1, 94, 221, 317, + 222, 7, 323, 6, -1, 90, 4, 221, 317, 222, + 7, 323, 6, -1, 115, 90, 323, 6, -1, 115, + 90, 221, 317, 222, 7, 323, 6, -1, 115, 90, + 221, 317, 222, 7, 323, 4, 228, 322, 229, 6, + -1, 114, 90, 221, 272, 222, 253, 323, 6, -1, + 113, 92, 221, 317, 222, 7, 323, 6, -1, 92, + 221, 317, 222, 7, 323, 6, -1, 109, 221, 317, + 222, 7, 323, 6, -1, 115, 92, 323, 6, -1, + 115, 92, 221, 317, 222, 7, 323, 6, -1, 114, + 92, 221, 273, 222, 253, 323, 6, -1, 122, 320, + 228, 278, 229, -1, 121, 228, 320, 227, 320, 227, + 317, 229, 228, 278, 229, -1, 123, 320, 228, 278, + 229, -1, 124, 228, 320, 227, 317, 229, 228, 278, + 229, -1, 124, 228, 320, 227, 320, 229, 228, 278, + 229, -1, 4, 228, 278, 229, -1, 138, 87, 228, + 326, 229, 90, 228, 317, 229, -1, 135, 87, 221, + 317, 222, 228, 326, 229, 6, -1, 279, -1, 277, + -1, -1, 279, 276, -1, 279, 84, 228, 326, 229, + 6, -1, 279, 87, 228, 326, 229, 6, -1, 279, + 90, 228, 326, 229, 6, -1, 279, 92, 228, 326, + 229, 6, -1, 126, 110, 221, 317, 222, 7, 323, + 6, -1, 126, 84, 221, 317, 222, 7, 228, 322, + 229, 6, -1, 126, 110, 221, 317, 222, 7, 228, + 320, 227, 320, 227, 326, 229, 6, -1, 126, 110, + 221, 317, 222, 7, 228, 320, 227, 320, 227, 320, + 227, 326, 229, 6, -1, 126, 88, 221, 317, 222, + 7, 228, 320, 227, 326, 229, 6, -1, 126, 94, + 221, 317, 222, 7, 228, 320, 227, 320, 227, 326, + 229, 6, -1, 126, 95, 221, 317, 222, 7, 228, + 320, 227, 320, 227, 326, 229, 6, -1, 126, 96, + 221, 317, 222, 7, 228, 320, 227, 320, 227, 326, + 229, 6, -1, 126, 97, 221, 317, 222, 7, 228, + 320, 227, 320, 227, 326, 229, 6, -1, 126, 4, + 221, 317, 222, 7, 323, 6, -1, 126, 4, 221, + 317, 222, 7, 5, 6, -1, 126, 4, 228, 317, + 229, 6, -1, 136, 228, 279, 229, -1, 136, 174, + 223, 317, 224, 6, -1, 136, 4, 223, 317, 224, + 6, -1, 136, 335, 6, -1, 136, 4, 4, 6, + -1, 163, 327, 228, 279, 229, -1, 120, 163, 327, + 228, 279, 229, -1, 195, 317, 228, 279, 229, -1, + 179, 5, 6, -1, 180, 5, 6, -1, 179, 228, + 279, 229, -1, 120, 179, 228, 279, 229, -1, 180, + 228, 279, 229, -1, 120, 180, 228, 279, 229, -1, + 4, 331, 6, -1, 71, 221, 333, 222, 6, -1, + 4, 4, 223, 317, 224, 330, 6, -1, 4, 4, + 4, 223, 317, 224, 6, -1, 4, 317, 6, -1, + 118, 221, 4, 222, 225, 4, 6, -1, 157, 4, + 6, -1, 172, 6, -1, 173, 6, -1, 68, 6, + -1, 69, 6, -1, 62, 6, -1, 62, 228, 317, + 227, 317, 227, 317, 227, 317, 227, 317, 227, 317, + 229, 6, -1, 63, 6, -1, 64, 6, -1, 75, + 6, -1, 76, 6, -1, 105, 6, -1, 106, 228, + 326, 229, 228, 326, 229, 228, 322, 229, 228, 317, + 227, 317, 229, 6, -1, 177, 221, 228, 326, 229, + 227, 331, 227, 331, 222, 6, -1, 165, 221, 317, + 8, 317, 222, -1, 165, 221, 317, 8, 317, 8, + 317, 222, -1, 165, 4, 166, 228, 317, 8, 317, + 229, -1, 165, 4, 166, 228, 317, 8, 317, 8, + 317, 229, -1, 167, -1, 178, 4, -1, 178, 331, + -1, 175, -1, 176, 335, 6, -1, 176, 331, 6, + -1, 168, 221, 317, 222, -1, 169, 221, 317, 222, + -1, 170, -1, 171, -1, 125, 320, 228, 279, 229, + -1, 125, 228, 320, 227, 320, 227, 317, 229, 228, + 279, 229, -1, 125, 228, 320, 227, 320, 227, 320, + 227, 317, 229, 228, 279, 229, -1, -1, 125, 320, + 228, 279, 289, 302, 229, -1, -1, 125, 228, 320, + 227, 320, 227, 317, 229, 228, 279, 290, 302, 229, + -1, -1, 125, 228, 320, 227, 320, 227, 320, 227, + 317, 229, 228, 279, 291, 302, 229, -1, -1, 125, + 228, 279, 292, 302, 229, -1, 125, 84, 228, 317, + 227, 320, 229, 6, -1, 125, 87, 228, 317, 227, + 320, 229, 6, -1, 125, 90, 228, 317, 227, 320, + 229, 6, -1, 125, 84, 228, 317, 227, 320, 227, + 320, 227, 317, 229, 6, -1, 125, 87, 228, 317, + 227, 320, 227, 320, 227, 317, 229, 6, -1, 125, + 90, 228, 317, 227, 320, 227, 320, 227, 317, 229, + 6, -1, 125, 84, 228, 317, 227, 320, 227, 320, + 227, 320, 227, 317, 229, 6, -1, 125, 87, 228, + 317, 227, 320, 227, 320, 227, 320, 227, 317, 229, + 6, -1, 125, 90, 228, 317, 227, 320, 227, 320, + 227, 320, 227, 317, 229, 6, -1, -1, 125, 84, + 228, 317, 227, 320, 229, 293, 228, 302, 229, 6, + -1, -1, 125, 87, 228, 317, 227, 320, 229, 294, + 228, 302, 229, 6, -1, -1, 125, 90, 228, 317, + 227, 320, 229, 295, 228, 302, 229, 6, -1, -1, + 125, 84, 228, 317, 227, 320, 227, 320, 227, 317, + 229, 296, 228, 302, 229, 6, -1, -1, 125, 87, + 228, 317, 227, 320, 227, 320, 227, 317, 229, 297, + 228, 302, 229, 6, -1, -1, 125, 90, 228, 317, + 227, 320, 227, 320, 227, 317, 229, 298, 228, 302, + 229, 6, -1, -1, 125, 84, 228, 317, 227, 320, + 227, 320, 227, 320, 227, 317, 229, 299, 228, 302, + 229, 6, -1, -1, 125, 87, 228, 317, 227, 320, + 227, 320, 227, 320, 227, 317, 229, 300, 228, 302, + 229, 6, -1, -1, 125, 90, 228, 317, 227, 320, + 227, 320, 227, 320, 227, 317, 229, 301, 228, 302, + 229, 6, -1, 303, -1, 302, 303, -1, 141, 228, + 317, 229, 6, -1, 141, 228, 323, 227, 323, 229, + 6, -1, 141, 228, 323, 227, 323, 227, 323, 229, + 6, -1, 142, 6, -1, 133, 6, -1, 133, 317, + 6, -1, 149, 6, -1, 149, 151, 6, -1, 150, + 6, -1, 150, 151, 6, -1, 147, 6, -1, 147, + 151, 6, -1, 148, 6, -1, 148, 151, 6, -1, + 143, 221, 317, 222, 7, 323, 117, 317, 6, -1, + 117, 4, 223, 317, 224, 6, -1, 128, -1, 129, + -1, 130, -1, 131, -1, 132, -1, -1, 136, 6, + -1, 136, 317, 6, -1, 304, 228, 279, 305, 229, + 228, 279, 305, 229, -1, 98, 221, 330, 222, -1, + 304, 221, 317, 222, 7, 228, 279, 305, 229, 228, + 279, 305, 229, 6, -1, -1, 117, 4, 317, -1, + -1, 4, -1, -1, 7, 323, -1, -1, 7, 317, + -1, -1, 127, 323, -1, 112, 87, 324, 7, 317, + 308, 6, -1, 112, 90, 324, 310, 309, 6, -1, + 104, 90, 228, 317, 229, 7, 323, 6, -1, 112, + 92, 324, 310, 6, -1, 152, 324, 6, -1, 139, + 90, 228, 326, 229, 7, 317, 6, -1, 133, 90, + 324, 311, 6, -1, 133, 92, 324, 6, -1, 134, + 90, 323, 7, 317, 6, -1, 116, 87, 228, 326, + 229, 7, 228, 326, 229, 312, 6, -1, 116, 90, + 228, 326, 229, 7, 228, 326, 229, 312, 6, -1, + 116, 87, 228, 326, 229, 7, 228, 326, 229, 121, + 228, 320, 227, 320, 227, 317, 229, 6, -1, 116, + 90, 228, 326, 229, 7, 228, 326, 229, 121, 228, + 320, 227, 320, 227, 317, 229, 6, -1, 116, 87, + 228, 326, 229, 7, 228, 326, 229, 122, 320, 6, + -1, 116, 90, 228, 326, 229, 7, 228, 326, 229, + 122, 320, 6, -1, 116, 90, 317, 228, 326, 229, + 7, 317, 228, 326, 229, 6, -1, 84, 228, 326, + 229, 166, 90, 228, 317, 229, 6, -1, 87, 228, + 326, 229, 166, 90, 228, 317, 229, 6, -1, 84, + 228, 326, 229, 166, 92, 228, 317, 229, 6, -1, + 87, 228, 326, 229, 166, 92, 228, 317, 229, 6, + -1, 90, 228, 326, 229, 166, 92, 228, 317, 229, + 6, -1, 140, 90, 324, 6, -1, 140, 87, 324, + 6, -1, 107, 84, 324, 6, -1, 107, 87, 324, + 6, -1, 107, 90, 324, 6, -1, 137, 6, -1, + 137, 4, 6, -1, 137, 84, 228, 326, 229, 6, + -1, 186, -1, 187, -1, 188, -1, 315, 6, -1, + 315, 228, 323, 229, 6, -1, 315, 228, 323, 227, + 323, 229, 6, -1, 315, 221, 323, 222, 228, 323, + 227, 323, 229, 6, -1, 318, -1, 221, 317, 222, + -1, 212, 317, -1, 211, 317, -1, 216, 317, -1, + 317, 212, 317, -1, 317, 211, 317, -1, 317, 213, + 317, -1, 317, 214, 317, -1, 317, 215, 317, -1, + 317, 220, 317, -1, 317, 207, 317, -1, 317, 208, + 317, -1, 317, 210, 317, -1, 317, 209, 317, -1, + 317, 206, 317, -1, 317, 205, 317, -1, 317, 204, + 317, -1, 317, 203, 317, -1, 317, 202, 317, 8, + 317, -1, 15, 255, 317, 256, -1, 16, 255, 317, + 256, -1, 17, 255, 317, 256, -1, 18, 255, 317, + 256, -1, 19, 255, 317, 256, -1, 20, 255, 317, + 256, -1, 21, 255, 317, 256, -1, 22, 255, 317, + 256, -1, 23, 255, 317, 256, -1, 25, 255, 317, + 256, -1, 26, 255, 317, 227, 317, 256, -1, 27, + 255, 317, 256, -1, 28, 255, 317, 256, -1, 29, + 255, 317, 256, -1, 30, 255, 317, 256, -1, 31, + 255, 317, 256, -1, 32, 255, 317, 256, -1, 33, + 255, 317, 256, -1, 34, 255, 317, 227, 317, 256, + -1, 35, 255, 317, 227, 317, 256, -1, 36, 255, + 317, 227, 317, 256, -1, 24, 255, 317, 256, -1, + 3, -1, 9, -1, 14, -1, 10, -1, 11, -1, + 191, -1, 192, -1, 193, -1, 72, -1, 73, -1, + 74, -1, -1, 80, 255, 317, 319, 266, 256, -1, + 185, 255, 330, 256, -1, 185, 255, 330, 227, 317, + 256, -1, 335, -1, 4, 223, 317, 224, -1, 4, + 221, 317, 222, -1, 334, 223, 317, 224, -1, 334, + 221, 317, 222, -1, 189, 221, 335, 222, -1, 190, + 221, 331, 222, -1, 226, 335, 255, 256, -1, 335, + 254, -1, 4, 223, 317, 224, 254, -1, 4, 221, + 317, 222, 254, -1, 334, 223, 317, 224, 254, -1, + 334, 221, 317, 222, 254, -1, 4, 225, 4, -1, + 4, 223, 317, 224, 225, 4, -1, 4, 225, 4, + 254, -1, 4, 223, 317, 224, 225, 4, 254, -1, + 181, 221, 330, 227, 317, 222, -1, 54, 221, 323, + 227, 323, 222, -1, 55, 255, 330, 227, 330, 256, + -1, 53, 255, 330, 256, -1, 56, 255, 330, 227, + 330, 256, -1, 61, 221, 333, 222, -1, 321, -1, + 212, 320, -1, 211, 320, -1, 320, 212, 320, -1, + 320, 211, 320, -1, 228, 317, 227, 317, 227, 317, + 227, 317, 227, 317, 229, -1, 228, 317, 227, 317, + 227, 317, 227, 317, 229, -1, 228, 317, 227, 317, + 227, 317, 229, -1, 221, 317, 227, 317, 227, 317, + 222, -1, 323, -1, 322, 227, 323, -1, 317, -1, + 325, -1, 228, 229, -1, 228, 326, 229, -1, 212, + 228, 326, 229, -1, 317, 213, 228, 326, 229, -1, + 323, -1, 5, -1, 212, 325, -1, 317, 213, 325, + -1, 317, 8, 317, -1, 317, 8, 317, 8, 317, + -1, 84, 228, 317, 229, -1, 84, 5, -1, 87, + 5, -1, 90, 5, -1, 92, 5, -1, 114, 84, + 5, -1, 114, 87, 5, -1, 114, 90, 5, -1, + 114, 92, 5, -1, 114, 84, 228, 326, 229, -1, + 114, 87, 228, 326, 229, -1, 114, 90, 228, 326, + 229, -1, 114, 92, 228, 326, 229, -1, 84, 166, + 62, 228, 317, 227, 317, 227, 317, 227, 317, 227, + 317, 227, 317, 229, -1, 87, 166, 62, 228, 317, + 227, 317, 227, 317, 227, 317, 227, 317, 227, 317, + 229, -1, 90, 166, 62, 228, 317, 227, 317, 227, + 317, 227, 317, 227, 317, 227, 317, 229, -1, 92, + 166, 62, 228, 317, 227, 317, 227, 317, 227, 317, + 227, 317, 227, 317, 229, -1, 277, -1, 288, -1, + 306, -1, 4, 255, 256, -1, 334, 255, 256, -1, + 37, 223, 335, 224, -1, 37, 223, 325, 224, -1, + 37, 221, 325, 222, -1, 37, 223, 228, 326, 229, + 224, -1, 37, 221, 228, 326, 229, 222, -1, 4, + 255, 228, 326, 229, 256, -1, 334, 255, 228, 326, + 229, 256, -1, 38, 255, 317, 227, 317, 227, 317, + 256, -1, 39, 255, 317, 227, 317, 227, 317, 256, + -1, 40, 255, 330, 256, -1, 41, 255, 317, 227, + 317, 227, 317, 227, 317, 227, 317, 227, 317, 256, + -1, 317, -1, 325, -1, 326, 227, 317, -1, 326, + 227, 325, -1, 228, 317, 227, 317, 227, 317, 227, + 317, 229, -1, 228, 317, 227, 317, 227, 317, 229, + -1, 335, -1, 4, 225, 163, 225, 4, -1, 228, + 329, 229, -1, 4, 223, 317, 224, 225, 164, -1, + 327, -1, 329, 227, 327, -1, 331, -1, 335, -1, + 4, 223, 317, 224, -1, 334, 223, 317, 224, -1, + 4, 221, 317, 222, -1, 334, 221, 317, 222, -1, + 4, 225, 4, -1, 4, 223, 317, 224, 225, 4, + -1, 5, -1, 196, 223, 335, 224, -1, 65, -1, + 194, -1, 70, -1, 183, 221, 330, 222, -1, 182, + 221, 330, 227, 330, 222, -1, 184, 255, 330, 256, + -1, 184, 255, 330, 227, 330, 256, -1, 46, 255, + 333, 256, -1, 47, 221, 330, 222, -1, 48, 221, + 330, 222, -1, 49, 221, 330, 227, 330, 227, 330, + 222, -1, 44, 255, 333, 256, -1, 58, 255, 330, + 256, -1, 59, 255, 330, 256, -1, 60, 255, 330, + 256, -1, 57, 255, 317, 227, 330, 227, 330, 256, + -1, 52, 255, 330, 227, 317, 227, 317, 256, -1, + 52, 255, 330, 227, 317, 256, -1, 45, 255, 330, + 256, -1, 45, 255, 330, 227, 326, 256, -1, 66, + 255, 330, 256, -1, 67, -1, 51, 255, 330, 256, + -1, 50, 255, 330, 256, -1, -1, 81, 255, 331, + 332, 268, 256, -1, 330, -1, 333, 227, 330, -1, + 4, 230, 228, 317, 229, -1, 334, 230, 228, 317, + 229, -1, 4, -1, 334, -1, 197, 223, 330, 224, + -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 209, 209, 210, 215, 217, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 243, 247, 254, 259, 264, - 278, 291, 304, 332, 346, 359, 372, 391, 396, 397, - 398, 399, 400, 404, 406, 411, 413, 419, 523, 418, - 541, 548, 559, 558, 576, 583, 594, 593, 610, 627, - 650, 649, 663, 664, 665, 666, 667, 671, 672, 678, - 678, 679, 679, 685, 686, 687, 692, 698, 760, 777, - 806, 835, 840, 845, 850, 855, 862, 872, 901, 930, - 935, 940, 945, 953, 962, 968, 974, 987, 1000, 1015, - 1032, 1038, 1044, 1057, 1070, 1085, 1102, 1108, 1117, 1135, - 1153, 1162, 1174, 1179, 1187, 1207, 1230, 1241, 1249, 1271, - 1294, 1332, 1353, 1365, 1379, 1379, 1381, 1383, 1392, 1402, - 1401, 1422, 1421, 1440, 1439, 1457, 1467, 1466, 1480, 1482, - 1490, 1496, 1501, 1527, 1528, 1532, 1543, 1558, 1568, 1569, - 1574, 1582, 1591, 1599, 1617, 1621, 1627, 1635, 1639, 1645, - 1653, 1657, 1663, 1671, 1675, 1681, 1690, 1693, 1706, 1709, - 1717, 1727, 1755, 1798, 1821, 1850, 1871, 1889, 1929, 1959, - 1977, 1995, 2022, 2051, 2056, 2074, 2120, 2138, 2177, 2183, - 2189, 2196, 2237, 2263, 2287, 2312, 2329, 2333, 2352, 2386, - 2433, 2451, 2468, 2486, 2490, 2506, 2554, 2571, 2589, 2599, - 2609, 2619, 2682, 2693, 2709, 2710, 2715, 2718, 2722, 2751, - 2780, 2809, 2843, 2865, 2891, 2913, 2936, 2957, 3013, 3037, - 3062, 3088, 3201, 3220, 3263, 3277, 3283, 3298, 3326, 3343, - 3352, 3366, 3380, 3386, 3392, 3401, 3410, 3419, 3433, 3495, - 3513, 3530, 3545, 3574, 3586, 3610, 3614, 3619, 3627, 3632, - 3638, 3643, 3649, 3657, 3661, 3665, 3670, 3730, 3746, 3763, - 3780, 3802, 3824, 3859, 3867, 3875, 3881, 3888, 3895, 3915, - 3941, 3953, 3965, 3973, 3981, 3990, 3989, 4004, 4003, 4018, - 4017, 4032, 4031, 4045, 4052, 4059, 4066, 4073, 4080, 4087, - 4094, 4101, 4109, 4108, 4122, 4121, 4135, 4134, 4148, 4147, - 4161, 4160, 4174, 4173, 4187, 4186, 4200, 4199, 4213, 4212, - 4229, 4232, 4238, 4250, 4270, 4294, 4298, 4302, 4306, 4310, - 4314, 4320, 4326, 4330, 4334, 4338, 4342, 4361, 4374, 4375, - 4376, 4377, 4378, 4382, 4383, 4384, 4387, 4412, 4438, 4460, - 4463, 4479, 4482, 4499, 4502, 4508, 4511, 4518, 4521, 4528, - 4584, 4654, 4659, 4726, 4762, 4770, 4813, 4852, 4872, 4904, - 4931, 4957, 4983, 5009, 5035, 5057, 5085, 5113, 5141, 5169, - 5197, 5236, 5275, 5296, 5317, 5344, 5348, 5358, 5393, 5394, - 5395, 5399, 5405, 5417, 5435, 5463, 5464, 5465, 5466, 5467, - 5468, 5469, 5470, 5471, 5478, 5479, 5480, 5481, 5482, 5483, - 5484, 5485, 5486, 5487, 5488, 5489, 5490, 5491, 5492, 5493, - 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, - 5504, 5505, 5506, 5507, 5508, 5509, 5510, 5519, 5520, 5521, - 5522, 5523, 5524, 5525, 5526, 5527, 5528, 5529, 5534, 5533, - 5541, 5546, 5551, 5568, 5586, 5604, 5622, 5640, 5645, 5651, - 5666, 5685, 5705, 5725, 5745, 5768, 5773, 5778, 5788, 5798, - 5803, 5814, 5823, 5828, 5833, 5860, 5864, 5868, 5872, 5876, - 5883, 5887, 5891, 5895, 5902, 5907, 5914, 5919, 5923, 5928, - 5932, 5940, 5951, 5955, 5967, 5975, 5983, 5990, 6000, 6029, - 6033, 6037, 6041, 6045, 6049, 6053, 6057, 6061, 6090, 6119, - 6148, 6177, 6190, 6203, 6216, 6229, 6239, 6249, 6259, 6271, - 6284, 6296, 6300, 6304, 6308, 6312, 6330, 6348, 6356, 6364, - 6393, 6406, 6411, 6415, 6419, 6431, 6435, 6447, 6464, 6474, - 6478, 6493, 6498, 6505, 6509, 6522, 6536, 6550, 6564, 6578, - 6586, 6597, 6601, 6605, 6613, 6619, 6625, 6633, 6641, 6648, - 6656, 6671, 6685, 6699, 6711, 6727, 6736, 6745, 6755, 6766, - 6774, 6782, 6786, 6805, 6812, 6818, 6825, 6833, 6832, 6845, - 6850, 6856, 6865, 6878, 6881, 6885 + 0, 210, 210, 211, 216, 218, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 244, 248, 255, 260, 265, + 279, 292, 305, 333, 347, 360, 373, 392, 397, 398, + 399, 400, 401, 405, 407, 412, 414, 420, 524, 419, + 542, 549, 560, 559, 577, 584, 595, 594, 611, 628, + 651, 650, 664, 665, 666, 667, 668, 672, 673, 679, + 679, 680, 680, 686, 687, 688, 693, 699, 761, 778, + 807, 836, 841, 846, 851, 856, 863, 873, 902, 931, + 936, 941, 946, 954, 963, 969, 975, 988, 1001, 1016, + 1033, 1039, 1045, 1058, 1071, 1086, 1103, 1109, 1118, 1136, + 1154, 1163, 1175, 1180, 1188, 1208, 1231, 1242, 1250, 1272, + 1295, 1333, 1354, 1366, 1380, 1380, 1382, 1384, 1393, 1403, + 1402, 1423, 1422, 1441, 1440, 1458, 1468, 1467, 1481, 1483, + 1491, 1497, 1502, 1528, 1529, 1533, 1544, 1559, 1569, 1570, + 1575, 1583, 1592, 1600, 1618, 1622, 1628, 1636, 1640, 1646, + 1654, 1658, 1664, 1672, 1676, 1682, 1691, 1694, 1707, 1710, + 1718, 1728, 1756, 1799, 1822, 1851, 1872, 1890, 1930, 1960, + 1978, 1996, 2023, 2052, 2057, 2075, 2121, 2149, 2198, 2204, + 2210, 2217, 2258, 2284, 2308, 2330, 2352, 2377, 2404, 2408, + 2427, 2461, 2508, 2526, 2553, 2571, 2575, 2591, 2639, 2656, + 2674, 2684, 2694, 2704, 2767, 2778, 2794, 2795, 2800, 2803, + 2807, 2836, 2865, 2894, 2928, 2950, 2976, 2998, 3021, 3042, + 3098, 3122, 3147, 3173, 3286, 3305, 3348, 3362, 3368, 3383, + 3411, 3428, 3437, 3451, 3465, 3471, 3477, 3486, 3495, 3504, + 3518, 3580, 3598, 3615, 3630, 3659, 3671, 3695, 3699, 3704, + 3712, 3717, 3723, 3728, 3734, 3742, 3746, 3750, 3755, 3815, + 3831, 3848, 3865, 3887, 3909, 3944, 3952, 3960, 3966, 3973, + 3980, 4000, 4026, 4038, 4050, 4058, 4066, 4075, 4074, 4089, + 4088, 4103, 4102, 4117, 4116, 4130, 4137, 4144, 4151, 4158, + 4165, 4172, 4179, 4186, 4194, 4193, 4207, 4206, 4220, 4219, + 4233, 4232, 4246, 4245, 4259, 4258, 4272, 4271, 4285, 4284, + 4298, 4297, 4314, 4317, 4323, 4335, 4355, 4379, 4383, 4387, + 4391, 4395, 4399, 4405, 4411, 4415, 4419, 4423, 4427, 4446, + 4459, 4460, 4461, 4462, 4463, 4467, 4468, 4469, 4472, 4506, + 4532, 4556, 4559, 4575, 4578, 4595, 4598, 4604, 4607, 4614, + 4617, 4624, 4680, 4750, 4755, 4822, 4858, 4866, 4909, 4948, + 4968, 5000, 5027, 5053, 5079, 5105, 5131, 5153, 5181, 5209, + 5237, 5265, 5293, 5332, 5371, 5392, 5413, 5440, 5444, 5454, + 5489, 5490, 5491, 5495, 5501, 5513, 5531, 5559, 5560, 5561, + 5562, 5563, 5564, 5565, 5566, 5567, 5574, 5575, 5576, 5577, + 5578, 5579, 5580, 5581, 5582, 5583, 5584, 5585, 5586, 5587, + 5588, 5589, 5590, 5591, 5592, 5593, 5594, 5595, 5596, 5597, + 5598, 5599, 5600, 5601, 5602, 5603, 5604, 5605, 5606, 5615, + 5616, 5617, 5618, 5619, 5620, 5621, 5622, 5623, 5624, 5625, + 5630, 5629, 5637, 5642, 5647, 5664, 5682, 5700, 5718, 5736, + 5741, 5747, 5762, 5781, 5801, 5821, 5841, 5864, 5869, 5874, + 5884, 5894, 5899, 5910, 5919, 5924, 5929, 5956, 5960, 5964, + 5968, 5972, 5979, 5983, 5987, 5991, 5998, 6003, 6010, 6015, + 6019, 6024, 6028, 6036, 6047, 6051, 6063, 6071, 6079, 6086, + 6096, 6125, 6129, 6133, 6137, 6141, 6145, 6149, 6153, 6157, + 6186, 6215, 6244, 6273, 6286, 6299, 6312, 6325, 6335, 6345, + 6355, 6367, 6380, 6392, 6396, 6400, 6404, 6408, 6426, 6444, + 6452, 6460, 6489, 6502, 6507, 6511, 6515, 6527, 6531, 6543, + 6560, 6570, 6574, 6589, 6594, 6601, 6605, 6618, 6632, 6646, + 6660, 6674, 6682, 6693, 6697, 6701, 6709, 6715, 6721, 6729, + 6737, 6744, 6752, 6767, 6781, 6795, 6807, 6823, 6832, 6841, + 6851, 6862, 6870, 6878, 6882, 6901, 6908, 6914, 6921, 6929, + 6928, 6941, 6946, 6952, 6961, 6974, 6977, 6981 }; #endif @@ -1440,44 +1446,44 @@ static const char *const yytname[] = "tUndefineConstant", "tDefineNumber", "tDefineString", "tSetNumber", "tSetString", "tPoint", "tCircle", "tEllipse", "tLine", "tSphere", "tPolarSphere", "tSurface", "tSpline", "tVolume", "tBlock", "tCylinder", - "tCone", "tEllipsoid", "tQuadric", "tShapeFromFile", "tCharacteristic", - "tLength", "tParametric", "tElliptic", "tRefineMesh", "tAdaptMesh", - "tRelocateMesh", "tSetFactory", "tThruSections", "tPlane", "tRuled", - "tTransfinite", "tComplex", "tPhysical", "tCompound", "tPeriodic", - "tUsing", "tPlugin", "tDegenerated", "tRecursive", "tRotate", - "tTranslate", "tSymmetry", "tDilate", "tExtrude", "tLevelset", "tAffine", - "tBooleanUnion", "tBooleanIntersection", "tBooleanDifference", - "tBooleanSection", "tBooleanFragments", "tRecombine", "tSmoother", - "tSplit", "tDelete", "tCoherence", "tIntersect", "tMeshAlgorithm", - "tReverse", "tLayers", "tScaleLast", "tHole", "tAlias", - "tAliasWithOptions", "tCopyOptions", "tQuadTriAddVerts", - "tQuadTriNoNewVerts", "tQuadTriSngl", "tQuadTriDbl", "tRecombLaterals", - "tTransfQuadTri", "tText2D", "tText3D", "tInterpolationScheme", "tTime", - "tCombine", "tBSpline", "tBezier", "tNurbs", "tNurbsOrder", - "tNurbsKnots", "tColor", "tColorTable", "tFor", "tIn", "tEndFor", "tIf", - "tElseIf", "tElse", "tEndIf", "tExit", "tAbort", "tField", "tReturn", - "tCall", "tSlide", "tMacro", "tShow", "tHide", "tGetValue", - "tGetStringValue", "tGetEnv", "tGetString", "tGetNumber", "tHomology", - "tCohomology", "tBetti", "tExists", "tFileExists", "tGMSH_MAJOR_VERSION", - "tGMSH_MINOR_VERSION", "tGMSH_PATCH_VERSION", "tGmshExecutableName", - "tSetPartition", "tNameToString", "tStringToName", "tAFFECTDIVIDE", - "tAFFECTTIMES", "tAFFECTMINUS", "tAFFECTPLUS", "'?'", "tOR", "tAND", - "tNOTEQUAL", "tEQUAL", "'<'", "'>'", "tGREATEROREQUAL", "tLESSOREQUAL", - "'+'", "'-'", "'*'", "'/'", "'%'", "'!'", "UNARYPREC", "tMINUSMINUS", - "tPLUSPLUS", "'^'", "'('", "')'", "'['", "']'", "'.'", "'#'", "','", - "'{'", "'}'", "'~'", "$accept", "All", "GeoFormatItems", "GeoFormatItem", - "SendToFile", "Printf", "View", "Views", "ElementCoords", - "ElementValues", "Element", "@1", "@2", "Text2DValues", "Text2D", "@3", - "Text3DValues", "Text3D", "@4", "InterpolationMatrix", "Time", "@5", - "NumericAffectation", "NumericIncrement", "LP", "RP", "Affectation", - "Comma", "DefineConstants", "@6", "@7", "@8", "@9", "UndefineConstants", - "Enumeration", "FloatParameterOptions", "FloatParameterOption", - "CharParameterOptions", "CharParameterOption", "PhysicalId0", - "PhysicalId1", "PhysicalId2", "PhysicalId3", "InSphereCenter", - "CircleOptions", "Shape", "Transform", "MultipleShape", "ListOfShapes", - "LevelSet", "Delete", "Colorify", "SetPartition", "Visibility", - "Command", "Slide", "Loop", "Extrude", "@10", "@11", "@12", "@13", "@14", - "@15", "@16", "@17", "@18", "@19", "@20", "@21", "@22", + "tCone", "tEllipsoid", "tQuadric", "tShapeFromFile", "tRectangle", + "tDisk", "tCharacteristic", "tLength", "tParametric", "tElliptic", + "tRefineMesh", "tAdaptMesh", "tRelocateMesh", "tSetFactory", + "tThruSections", "tPlane", "tRuled", "tTransfinite", "tComplex", + "tPhysical", "tCompound", "tPeriodic", "tUsing", "tPlugin", + "tDegenerated", "tRecursive", "tRotate", "tTranslate", "tSymmetry", + "tDilate", "tExtrude", "tLevelset", "tAffine", "tBooleanUnion", + "tBooleanIntersection", "tBooleanDifference", "tBooleanSection", + "tBooleanFragments", "tRecombine", "tSmoother", "tSplit", "tDelete", + "tCoherence", "tIntersect", "tMeshAlgorithm", "tReverse", "tLayers", + "tScaleLast", "tHole", "tAlias", "tAliasWithOptions", "tCopyOptions", + "tQuadTriAddVerts", "tQuadTriNoNewVerts", "tQuadTriSngl", "tQuadTriDbl", + "tRecombLaterals", "tTransfQuadTri", "tText2D", "tText3D", + "tInterpolationScheme", "tTime", "tCombine", "tBSpline", "tBezier", + "tNurbs", "tNurbsOrder", "tNurbsKnots", "tColor", "tColorTable", "tFor", + "tIn", "tEndFor", "tIf", "tElseIf", "tElse", "tEndIf", "tExit", "tAbort", + "tField", "tReturn", "tCall", "tSlide", "tMacro", "tShow", "tHide", + "tGetValue", "tGetStringValue", "tGetEnv", "tGetString", "tGetNumber", + "tHomology", "tCohomology", "tBetti", "tExists", "tFileExists", + "tGMSH_MAJOR_VERSION", "tGMSH_MINOR_VERSION", "tGMSH_PATCH_VERSION", + "tGmshExecutableName", "tSetPartition", "tNameToString", "tStringToName", + "tAFFECTDIVIDE", "tAFFECTTIMES", "tAFFECTMINUS", "tAFFECTPLUS", "'?'", + "tOR", "tAND", "tNOTEQUAL", "tEQUAL", "'<'", "'>'", "tGREATEROREQUAL", + "tLESSOREQUAL", "'+'", "'-'", "'*'", "'/'", "'%'", "'!'", "UNARYPREC", + "tMINUSMINUS", "tPLUSPLUS", "'^'", "'('", "')'", "'['", "']'", "'.'", + "'#'", "','", "'{'", "'}'", "'~'", "$accept", "All", "GeoFormatItems", + "GeoFormatItem", "SendToFile", "Printf", "View", "Views", + "ElementCoords", "ElementValues", "Element", "@1", "@2", "Text2DValues", + "Text2D", "@3", "Text3DValues", "Text3D", "@4", "InterpolationMatrix", + "Time", "@5", "NumericAffectation", "NumericIncrement", "LP", "RP", + "Affectation", "Comma", "DefineConstants", "@6", "@7", "@8", "@9", + "UndefineConstants", "Enumeration", "FloatParameterOptions", + "FloatParameterOption", "CharParameterOptions", "CharParameterOption", + "PhysicalId0", "PhysicalId1", "PhysicalId2", "PhysicalId3", + "InSphereCenter", "CircleOptions", "Shape", "Transform", "MultipleShape", + "ListOfShapes", "LevelSet", "Delete", "Colorify", "SetPartition", + "Visibility", "Command", "Slide", "Loop", "Extrude", "@10", "@11", "@12", + "@13", "@14", "@15", "@16", "@17", "@18", "@19", "@20", "@21", "@22", "ExtrudeParameters", "ExtrudeParameter", "BooleanOperator", "BooleanOption", "Boolean", "BooleanShape", "TransfiniteType", "TransfiniteArrangement", "TransfiniteCorners", "RecombineAngle", @@ -1515,74 +1521,75 @@ static const yytype_uint16 yytoknum[] = 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 63, 455, 456, 457, 458, 60, 62, 459, 460, 43, - 45, 42, 47, 37, 33, 461, 462, 463, 94, 40, - 41, 91, 93, 46, 35, 44, 123, 125, 126 + 455, 456, 63, 457, 458, 459, 460, 60, 62, 461, + 462, 43, 45, 42, 47, 37, 33, 463, 464, 465, + 94, 40, 41, 91, 93, 46, 35, 44, 123, 125, + 126 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 229, 230, 230, 231, 231, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 233, 233, 234, 234, 234, - 234, 234, 234, 235, 235, 235, 235, 236, 236, 236, - 236, 236, 236, 237, 237, 238, 238, 240, 241, 239, - 242, 242, 244, 243, 245, 245, 247, 246, 248, 248, - 250, 249, 251, 251, 251, 251, 251, 252, 252, 253, - 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 256, 256, 257, 257, 257, 258, - 257, 259, 257, 260, 257, 257, 261, 257, 262, 262, - 263, 263, 263, 264, 264, 265, 265, 265, 266, 266, - 267, 267, 267, 267, 268, 268, 268, 269, 269, 269, - 270, 270, 270, 271, 271, 271, 272, 272, 273, 273, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 275, 275, 275, 275, - 275, 275, 275, 275, 276, 276, 277, 277, 277, 277, - 277, 277, 278, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 279, 279, 279, 279, 279, 280, - 280, 281, 282, 282, 282, 282, 282, 282, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 284, 285, 285, + 0, 231, 232, 232, 233, 233, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 235, 235, 236, 236, 236, + 236, 236, 236, 237, 237, 237, 237, 238, 238, 238, + 238, 238, 238, 239, 239, 240, 240, 242, 243, 241, + 244, 244, 246, 245, 247, 247, 249, 248, 250, 250, + 252, 251, 253, 253, 253, 253, 253, 254, 254, 255, + 255, 256, 256, 257, 257, 257, 257, 257, 257, 257, + 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, + 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, + 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, + 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, + 257, 257, 257, 257, 258, 258, 259, 259, 259, 260, + 259, 261, 259, 262, 259, 259, 263, 259, 264, 264, + 265, 265, 265, 266, 266, 267, 267, 267, 268, 268, + 269, 269, 269, 269, 270, 270, 270, 271, 271, 271, + 272, 272, 272, 273, 273, 273, 274, 274, 275, 275, + 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, + 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, + 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, + 276, 276, 276, 276, 276, 276, 276, 276, 277, 277, + 277, 277, 277, 277, 277, 277, 278, 278, 279, 279, + 279, 279, 279, 279, 280, 280, 280, 280, 280, 280, + 280, 280, 280, 280, 280, 280, 281, 281, 281, 281, + 281, 282, 282, 283, 284, 284, 284, 284, 284, 284, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, - 285, 285, 286, 286, 286, 287, 286, 288, 286, 289, - 286, 290, 286, 286, 286, 286, 286, 286, 286, 286, - 286, 286, 291, 286, 292, 286, 293, 286, 294, 286, - 295, 286, 296, 286, 297, 286, 298, 286, 299, 286, - 300, 300, 301, 301, 301, 301, 301, 301, 301, 301, - 301, 301, 301, 301, 301, 301, 301, 301, 302, 302, - 302, 302, 302, 303, 303, 303, 304, 304, 305, 306, - 306, 307, 307, 308, 308, 309, 309, 310, 310, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 311, 311, 312, 312, 312, 313, 313, - 313, 314, 314, 314, 314, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 317, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 318, 318, 318, 318, 318, - 319, 319, 319, 319, 320, 320, 321, 321, 321, 321, - 321, 321, 322, 322, 323, 323, 323, 323, 323, 323, - 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, - 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, - 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, - 323, 324, 324, 324, 324, 325, 325, 325, 325, 326, - 326, 327, 327, 328, 328, 328, 328, 328, 328, 328, - 328, 329, 329, 329, 329, 329, 329, 329, 329, 329, - 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, - 329, 329, 329, 329, 329, 329, 329, 330, 329, 331, - 331, 332, 332, 333, 333, 333 + 285, 285, 285, 285, 285, 285, 285, 285, 285, 286, + 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 288, 288, 288, 289, 288, 290, + 288, 291, 288, 292, 288, 288, 288, 288, 288, 288, + 288, 288, 288, 288, 293, 288, 294, 288, 295, 288, + 296, 288, 297, 288, 298, 288, 299, 288, 300, 288, + 301, 288, 302, 302, 303, 303, 303, 303, 303, 303, + 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, + 304, 304, 304, 304, 304, 305, 305, 305, 306, 306, + 307, 308, 308, 309, 309, 310, 310, 311, 311, 312, + 312, 313, 313, 313, 313, 313, 313, 313, 313, 313, + 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, + 313, 313, 313, 313, 313, 313, 313, 314, 314, 314, + 315, 315, 315, 316, 316, 316, 316, 317, 317, 317, + 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, + 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, + 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, + 317, 317, 317, 317, 317, 317, 317, 317, 317, 318, + 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, + 319, 318, 318, 318, 318, 318, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 318, 318, 320, 320, 320, + 320, 320, 321, 321, 321, 321, 322, 322, 323, 323, + 323, 323, 323, 323, 324, 324, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, + 325, 325, 325, 326, 326, 326, 326, 327, 327, 327, + 327, 328, 328, 329, 329, 330, 330, 330, 330, 330, + 330, 330, 330, 331, 331, 331, 331, 331, 331, 331, + 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, + 331, 331, 331, 331, 331, 331, 331, 331, 331, 332, + 331, 333, 333, 334, 334, 335, 335, 335 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1607,46 +1614,46 @@ static const yytype_uint8 yyr2[] = 1, 1, 3, 1, 1, 3, 0, 5, 0, 2, 5, 7, 8, 6, 7, 4, 7, 8, 8, 7, 7, 11, 8, 4, 8, 8, 8, 9, 3, 4, - 10, 7, 7, 7, 7, 8, 4, 8, 12, 8, - 8, 7, 7, 4, 8, 8, 5, 11, 5, 9, - 9, 4, 9, 9, 1, 1, 0, 2, 6, 6, - 6, 6, 8, 10, 14, 16, 12, 14, 14, 14, - 14, 8, 8, 6, 4, 6, 6, 3, 4, 5, - 6, 5, 3, 3, 4, 5, 4, 5, 3, 5, - 7, 7, 3, 7, 3, 2, 2, 2, 2, 2, - 15, 2, 2, 2, 2, 2, 16, 11, 6, 8, - 8, 10, 1, 2, 2, 1, 3, 3, 4, 4, - 1, 1, 5, 11, 13, 0, 7, 0, 13, 0, - 15, 0, 6, 8, 8, 8, 12, 12, 12, 14, - 14, 14, 0, 12, 0, 12, 0, 12, 0, 16, - 0, 16, 0, 16, 0, 18, 0, 18, 0, 18, - 1, 2, 5, 7, 9, 2, 2, 3, 2, 3, - 2, 3, 2, 3, 2, 3, 9, 6, 1, 1, - 1, 1, 1, 0, 2, 3, 9, 4, 14, 0, - 3, 0, 1, 0, 2, 0, 2, 0, 2, 7, - 6, 8, 5, 3, 8, 5, 4, 6, 11, 11, - 18, 18, 12, 12, 12, 10, 10, 10, 10, 10, - 4, 4, 4, 4, 4, 2, 3, 6, 1, 1, - 1, 2, 5, 7, 10, 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, 4, 6, 6, 6, 4, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 6, - 4, 6, 1, 4, 4, 4, 4, 4, 4, 4, - 2, 5, 5, 5, 5, 3, 6, 4, 7, 6, - 6, 6, 4, 6, 4, 1, 2, 2, 3, 3, - 11, 9, 7, 7, 1, 3, 1, 1, 2, 3, - 4, 5, 1, 1, 2, 3, 3, 5, 4, 2, - 2, 2, 2, 3, 3, 3, 3, 5, 5, 5, - 5, 16, 16, 16, 16, 1, 1, 1, 3, 3, - 4, 4, 4, 6, 6, 6, 6, 8, 8, 4, - 14, 1, 1, 3, 3, 9, 7, 1, 5, 3, - 6, 1, 3, 1, 1, 4, 4, 4, 4, 3, - 6, 1, 4, 1, 1, 1, 4, 6, 4, 6, - 4, 4, 4, 8, 4, 4, 4, 4, 8, 8, - 6, 4, 6, 4, 1, 4, 4, 0, 6, 1, - 3, 5, 5, 1, 1, 4 + 10, 7, 7, 7, 7, 7, 7, 8, 4, 8, + 12, 8, 8, 7, 7, 4, 8, 8, 5, 11, + 5, 9, 9, 4, 9, 9, 1, 1, 0, 2, + 6, 6, 6, 6, 8, 10, 14, 16, 12, 14, + 14, 14, 14, 8, 8, 6, 4, 6, 6, 3, + 4, 5, 6, 5, 3, 3, 4, 5, 4, 5, + 3, 5, 7, 7, 3, 7, 3, 2, 2, 2, + 2, 2, 15, 2, 2, 2, 2, 2, 16, 11, + 6, 8, 8, 10, 1, 2, 2, 1, 3, 3, + 4, 4, 1, 1, 5, 11, 13, 0, 7, 0, + 13, 0, 15, 0, 6, 8, 8, 8, 12, 12, + 12, 14, 14, 14, 0, 12, 0, 12, 0, 12, + 0, 16, 0, 16, 0, 16, 0, 18, 0, 18, + 0, 18, 1, 2, 5, 7, 9, 2, 2, 3, + 2, 3, 2, 3, 2, 3, 2, 3, 9, 6, + 1, 1, 1, 1, 1, 0, 2, 3, 9, 4, + 14, 0, 3, 0, 1, 0, 2, 0, 2, 0, + 2, 7, 6, 8, 5, 3, 8, 5, 4, 6, + 11, 11, 18, 18, 12, 12, 12, 10, 10, 10, + 10, 10, 4, 4, 4, 4, 4, 2, 3, 6, + 1, 1, 1, 2, 5, 7, 10, 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, 4, 6, 6, 6, 4, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 6, 4, 6, 1, 4, 4, 4, 4, 4, + 4, 4, 2, 5, 5, 5, 5, 3, 6, 4, + 7, 6, 6, 6, 4, 6, 4, 1, 2, 2, + 3, 3, 11, 9, 7, 7, 1, 3, 1, 1, + 2, 3, 4, 5, 1, 1, 2, 3, 3, 5, + 4, 2, 2, 2, 2, 3, 3, 3, 3, 5, + 5, 5, 5, 16, 16, 16, 16, 1, 1, 1, + 3, 3, 4, 4, 4, 6, 6, 6, 6, 8, + 8, 4, 14, 1, 1, 3, 3, 9, 7, 1, + 5, 3, 6, 1, 3, 1, 1, 4, 4, 4, + 4, 3, 6, 1, 4, 1, 1, 1, 4, 6, + 4, 6, 4, 4, 4, 8, 4, 4, 4, 4, + 8, 8, 6, 4, 6, 4, 1, 4, 4, 0, + 6, 1, 3, 5, 5, 1, 1, 4 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -1654,2522 +1661,2498 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 0, 0, 2, 3, 1, 583, 0, 0, 0, + 0, 0, 0, 2, 3, 1, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, - 339, 340, 341, 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 272, 0, 0, 280, 281, 0, 0, 0, - 275, 0, 0, 0, 0, 0, 388, 389, 390, 0, - 0, 5, 7, 6, 8, 9, 10, 23, 11, 12, - 13, 14, 22, 21, 20, 15, 0, 16, 17, 18, - 19, 0, 24, 584, 0, 437, 583, 551, 438, 440, - 441, 439, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 340, 341, 342, 343, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 0, 282, 283, 0, + 0, 0, 277, 0, 0, 0, 0, 0, 390, 391, + 392, 0, 0, 5, 7, 6, 8, 9, 10, 23, + 11, 12, 13, 14, 22, 21, 20, 15, 0, 16, + 17, 18, 19, 0, 24, 586, 0, 439, 585, 553, + 440, 442, 443, 441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 553, 0, 574, 555, 445, 446, 447, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, - 443, 444, 554, 0, 0, 0, 0, 69, 70, 0, - 0, 216, 0, 0, 0, 395, 0, 543, 584, 452, - 0, 0, 0, 0, 259, 0, 261, 262, 257, 258, - 0, 263, 264, 126, 138, 69, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 265, 0, + 0, 0, 0, 0, 555, 0, 576, 557, 447, 448, + 449, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 444, 445, 446, 556, 0, 0, 0, 0, 69, + 70, 0, 0, 218, 0, 0, 0, 397, 0, 545, + 586, 454, 0, 0, 0, 0, 261, 0, 263, 264, + 259, 260, 0, 265, 266, 126, 138, 69, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 475, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 583, 0, 216, 584, 0, 0, 385, 0, 0, - 0, 0, 0, 0, 0, 0, 583, 493, 0, 0, + 0, 0, 0, 0, 0, 477, 0, 0, 0, 0, + 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 585, 0, 218, 586, 0, + 0, 387, 0, 0, 0, 0, 0, 0, 0, 0, + 585, 495, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 517, 518, 0, 519, 488, + 494, 0, 489, 586, 454, 0, 0, 0, 0, 585, + 0, 0, 539, 0, 0, 0, 0, 257, 258, 0, + 585, 0, 0, 0, 275, 276, 0, 218, 0, 218, + 585, 0, 586, 0, 0, 218, 393, 0, 0, 69, + 70, 0, 0, 62, 66, 65, 64, 63, 68, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 515, 516, 0, 517, 486, 492, 0, 487, 584, - 452, 0, 0, 0, 0, 583, 0, 0, 537, 0, - 0, 0, 0, 255, 256, 0, 583, 0, 0, 0, - 273, 274, 0, 216, 0, 216, 583, 0, 584, 0, - 0, 216, 391, 0, 0, 69, 70, 0, 0, 62, - 66, 65, 64, 63, 68, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 400, 399, + 401, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 217, 0, 216, 0, 0, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 398, 397, 399, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 215, 0, 214, 0, - 0, 252, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 37, 248, 0, - 0, 460, 188, 0, 583, 0, 543, 584, 544, 0, - 0, 579, 0, 124, 124, 0, 0, 0, 0, 531, - 532, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 37, 250, 0, 0, 462, 188, 0, 585, 0, + 545, 586, 546, 0, 0, 581, 0, 124, 124, 0, + 0, 0, 0, 533, 534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 353, 353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 216, 216, 0, - 477, 476, 0, 0, 0, 0, 216, 216, 0, 0, - 0, 0, 0, 0, 0, 291, 0, 216, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 355, 0, 0, - 0, 0, 0, 0, 0, 237, 386, 0, 0, 0, - 0, 0, 0, 0, 0, 69, 70, 0, 0, 0, - 0, 0, 0, 0, 0, 499, 0, 0, 500, 0, - 501, 0, 502, 0, 0, 0, 0, 0, 0, 397, - 494, 0, 488, 0, 0, 0, 363, 69, 70, 0, - 254, 0, 0, 0, 0, 0, 216, 0, 0, 0, - 0, 0, 277, 276, 0, 242, 0, 243, 0, 0, - 0, 216, 0, 0, 0, 0, 343, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, - 0, 465, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 355, 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 218, 218, 0, 479, 478, 0, 0, + 0, 0, 218, 218, 0, 0, 0, 0, 0, 0, + 0, 293, 0, 218, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 357, 0, 0, 0, 0, 0, 0, + 0, 239, 388, 0, 0, 0, 0, 0, 0, 0, + 0, 69, 70, 0, 0, 0, 0, 0, 0, 0, + 0, 501, 0, 0, 502, 0, 503, 0, 504, 0, + 0, 0, 0, 0, 0, 399, 496, 0, 490, 0, + 0, 0, 365, 69, 70, 0, 256, 0, 0, 0, + 0, 0, 218, 0, 0, 0, 0, 0, 279, 278, + 0, 244, 0, 245, 0, 0, 0, 218, 0, 0, + 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 78, 0, 0, 0, 467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 448, 577, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 63, 0, 396, 62, 63, - 0, 0, 62, 0, 0, 0, 0, 0, 211, 0, - 0, 0, 0, 217, 0, 0, 0, 413, 412, 411, - 410, 406, 407, 409, 408, 401, 400, 402, 403, 404, - 405, 0, 0, 0, 189, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 450, + 579, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 62, 63, 0, 398, 62, 63, 0, 0, 62, 0, + 0, 0, 0, 0, 213, 0, 0, 0, 0, 219, + 0, 0, 0, 415, 414, 413, 412, 408, 409, 411, + 410, 403, 402, 404, 405, 406, 407, 0, 0, 0, + 189, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 347, 0, 0, 0, 0, 382, 383, 384, 0, - 0, 0, 0, 0, 0, 351, 0, 0, 0, 154, - 155, 0, 157, 158, 0, 160, 161, 0, 163, 164, - 0, 183, 0, 196, 0, 203, 0, 0, 0, 0, - 175, 216, 0, 0, 0, 0, 0, 479, 478, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 285, 0, + 0, 0, 0, 0, 0, 0, 0, 349, 0, 0, + 0, 0, 0, 0, 384, 385, 386, 0, 0, 0, + 0, 0, 0, 353, 0, 0, 0, 154, 155, 0, + 157, 158, 0, 160, 161, 0, 163, 164, 0, 183, + 0, 198, 0, 205, 0, 0, 0, 0, 175, 218, + 0, 0, 0, 0, 0, 481, 480, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 287, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 368, 0, + 0, 240, 0, 0, 236, 0, 0, 0, 383, 382, + 0, 0, 0, 0, 0, 467, 71, 72, 0, 520, + 0, 0, 0, 0, 0, 454, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 505, 0, 506, 0, 507, + 0, 508, 0, 0, 398, 491, 498, 0, 404, 497, + 0, 0, 0, 521, 0, 0, 0, 0, 0, 0, + 0, 0, 280, 281, 0, 0, 246, 248, 0, 587, + 0, 0, 0, 0, 0, 0, 62, 63, 0, 0, + 62, 63, 0, 0, 0, 0, 93, 77, 0, 456, + 455, 469, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 438, 426, 0, 428, 429, 430, 431, 432, 433, + 434, 0, 0, 0, 566, 0, 573, 562, 563, 564, + 0, 578, 577, 0, 474, 0, 0, 0, 0, 567, + 568, 569, 476, 575, 143, 148, 116, 0, 0, 558, + 0, 560, 0, 452, 459, 460, 554, 0, 0, 0, + 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 110, 0, 0, 0, 0, 461, 0, 0, 0, + 0, 583, 0, 0, 47, 0, 0, 0, 60, 0, + 38, 39, 40, 41, 42, 458, 457, 0, 0, 551, + 27, 25, 0, 0, 0, 0, 28, 0, 0, 251, + 582, 73, 127, 74, 139, 0, 0, 0, 535, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 366, 0, 0, 238, 0, 0, 234, 0, 0, 0, - 381, 380, 0, 0, 0, 0, 0, 465, 71, 72, - 0, 518, 0, 0, 0, 0, 0, 452, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 503, 0, 504, - 0, 505, 0, 506, 0, 0, 396, 489, 496, 0, - 402, 495, 0, 0, 0, 519, 0, 0, 0, 0, - 0, 0, 0, 0, 278, 279, 0, 0, 244, 246, - 0, 585, 0, 0, 0, 0, 0, 0, 62, 63, - 0, 0, 62, 63, 0, 0, 0, 0, 93, 77, - 0, 454, 453, 467, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 436, 424, 0, 426, 427, 428, 429, - 430, 431, 432, 0, 0, 0, 564, 0, 571, 560, - 561, 562, 0, 576, 575, 0, 472, 0, 0, 0, - 0, 565, 566, 567, 474, 573, 143, 148, 116, 0, - 0, 556, 0, 558, 0, 450, 457, 458, 552, 0, - 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 110, 0, 0, 0, 0, 459, 0, - 0, 0, 0, 581, 0, 0, 47, 0, 0, 0, - 60, 0, 38, 39, 40, 41, 42, 456, 455, 0, - 0, 549, 27, 25, 0, 0, 0, 0, 28, 0, - 0, 249, 580, 73, 127, 74, 139, 0, 0, 0, - 533, 534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 170, 0, 0, 0, 349, 354, 352, 0, 362, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 396, 396, - 396, 0, 0, 0, 0, 0, 245, 247, 0, 0, - 0, 206, 208, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 320, 0, - 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 356, 365, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 454, 453, 0, 0, 522, 0, 521, - 520, 0, 0, 529, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 0, 490, 0, 0, 456, 455, 0, - 0, 0, 0, 0, 0, 239, 0, 0, 0, 0, - 0, 241, 0, 344, 0, 0, 0, 0, 392, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 582, - 0, 0, 462, 0, 461, 0, 0, 0, 0, 0, + 170, 0, 0, 0, 351, 356, 354, 0, 364, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 398, 398, + 398, 0, 0, 0, 0, 0, 247, 249, 0, 0, + 0, 208, 210, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 322, 0, + 284, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 358, 367, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 456, 455, 0, 0, 524, 0, 523, + 522, 0, 0, 531, 0, 0, 500, 0, 0, 0, + 0, 0, 0, 0, 492, 0, 0, 458, 457, 0, + 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, + 0, 243, 0, 346, 0, 0, 0, 0, 394, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 584, + 0, 0, 464, 0, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, 91, 0, 0, 79, 0, 0, 0, 0, 83, 106, 108, 0, 0, - 541, 0, 114, 0, 0, 0, 0, 0, 414, 0, - 0, 0, 0, 0, 33, 464, 463, 547, 545, 26, - 0, 0, 548, 546, 0, 0, 0, 0, 0, 0, + 543, 0, 114, 0, 0, 0, 0, 0, 416, 0, + 0, 0, 0, 0, 33, 466, 465, 549, 547, 26, + 0, 0, 550, 548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 168, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 173, 0, - 0, 0, 0, 0, 0, 0, 0, 360, 0, 0, - 156, 0, 159, 0, 162, 0, 165, 0, 0, 0, - 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 326, 0, 0, 325, 0, 332, - 0, 334, 0, 328, 0, 330, 0, 292, 321, 0, - 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, - 367, 0, 236, 235, 387, 0, 0, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 507, 508, 509, 510, 497, 491, 0, 0, 0, - 0, 538, 0, 0, 0, 268, 0, 0, 0, 216, - 345, 216, 0, 0, 0, 0, 88, 0, 92, 0, - 0, 80, 0, 84, 0, 251, 466, 250, 425, 433, - 434, 435, 572, 0, 0, 570, 470, 471, 473, 0, - 0, 449, 144, 0, 578, 149, 469, 557, 559, 451, - 0, 0, 0, 89, 0, 0, 0, 62, 0, 0, - 0, 0, 81, 0, 0, 0, 539, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 484, 0, 0, 29, - 30, 0, 31, 0, 0, 128, 135, 0, 0, 75, - 76, 171, 0, 0, 0, 0, 0, 0, 174, 0, - 0, 191, 192, 0, 0, 176, 201, 193, 194, 0, - 0, 0, 202, 0, 166, 0, 359, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, - 0, 0, 0, 216, 216, 0, 302, 0, 304, 0, - 306, 0, 327, 486, 0, 0, 333, 335, 329, 331, - 0, 0, 286, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 466, 525, 524, - 523, 0, 0, 0, 0, 0, 0, 0, 526, 179, - 180, 0, 0, 0, 0, 117, 121, 0, 0, 343, - 343, 0, 393, 0, 0, 0, 90, 0, 0, 0, - 82, 0, 468, 0, 0, 0, 0, 0, 0, 100, - 0, 0, 94, 0, 0, 0, 0, 111, 0, 0, - 112, 0, 542, 218, 219, 220, 221, 0, 0, 43, - 0, 0, 0, 0, 0, 45, 550, 0, 0, 129, - 136, 0, 0, 0, 0, 169, 177, 178, 182, 0, - 0, 195, 0, 0, 361, 0, 186, 0, 0, 350, - 200, 172, 185, 199, 205, 184, 0, 197, 204, 0, - 0, 0, 0, 0, 0, 483, 0, 482, 0, 0, - 0, 293, 0, 0, 294, 0, 0, 295, 0, 0, - 0, 0, 0, 0, 0, 232, 231, 0, 0, 0, - 0, 0, 0, 0, 0, 222, 0, 0, 364, 36, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, - 0, 270, 269, 0, 0, 0, 0, 0, 0, 0, - 101, 0, 0, 95, 0, 0, 0, 563, 569, 568, - 0, 145, 147, 0, 150, 151, 152, 102, 104, 96, - 98, 107, 109, 0, 115, 0, 85, 48, 0, 0, - 0, 485, 0, 0, 0, 32, 0, 143, 148, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, - 0, 357, 357, 0, 122, 123, 216, 0, 209, 210, - 0, 0, 0, 0, 0, 0, 0, 322, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 213, - 212, 527, 528, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 118, 119, 0, 0, 346, 0, 103, 105, - 97, 99, 86, 0, 531, 532, 0, 0, 540, 0, - 44, 0, 0, 0, 46, 61, 0, 0, 0, 133, - 131, 375, 377, 376, 378, 379, 190, 0, 0, 0, + 173, 0, 0, 0, 0, 0, 0, 0, 0, 362, + 0, 0, 156, 0, 159, 0, 162, 0, 165, 0, + 0, 0, 0, 0, 0, 0, 242, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 328, 0, 0, 327, + 0, 334, 0, 336, 0, 330, 0, 332, 0, 294, + 323, 0, 0, 0, 235, 0, 0, 0, 0, 0, + 0, 0, 369, 0, 238, 237, 389, 0, 0, 34, + 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 509, 510, 511, 512, 499, 493, 0, + 0, 0, 0, 540, 0, 0, 0, 270, 0, 0, + 0, 218, 347, 218, 0, 0, 0, 0, 88, 0, + 92, 0, 0, 80, 0, 84, 0, 253, 468, 252, + 427, 435, 436, 437, 574, 0, 0, 572, 472, 473, + 475, 0, 0, 451, 144, 0, 580, 149, 471, 559, + 561, 453, 0, 0, 0, 89, 0, 0, 0, 62, + 0, 0, 0, 0, 81, 0, 0, 0, 541, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 486, 0, + 0, 29, 30, 0, 31, 0, 0, 128, 135, 0, + 0, 75, 76, 171, 0, 0, 0, 0, 0, 0, + 174, 0, 0, 191, 192, 0, 0, 176, 203, 193, + 196, 194, 195, 0, 0, 0, 204, 0, 166, 0, + 361, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 255, 0, 0, 0, 0, 218, 218, 0, + 304, 0, 306, 0, 308, 0, 329, 488, 0, 0, + 335, 337, 331, 333, 0, 0, 288, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 468, 527, 526, 525, 0, 0, 0, 0, 0, + 0, 0, 528, 179, 180, 0, 0, 0, 0, 117, + 121, 0, 0, 345, 345, 0, 395, 0, 0, 0, + 90, 0, 0, 0, 82, 0, 470, 0, 0, 0, + 0, 0, 0, 100, 0, 0, 94, 0, 0, 0, + 0, 111, 0, 0, 112, 0, 544, 220, 221, 222, + 223, 0, 0, 43, 0, 0, 0, 0, 0, 45, + 552, 0, 0, 129, 136, 0, 0, 0, 0, 169, + 177, 178, 182, 0, 0, 197, 0, 0, 363, 0, + 186, 0, 0, 352, 202, 172, 185, 201, 207, 184, + 0, 199, 206, 0, 0, 0, 0, 0, 0, 485, + 0, 484, 0, 0, 0, 295, 0, 0, 296, 0, + 0, 297, 0, 0, 0, 0, 0, 0, 0, 234, + 233, 0, 0, 0, 0, 0, 0, 0, 0, 224, + 0, 0, 366, 36, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 538, 0, 272, 271, 0, 0, 0, + 0, 0, 0, 0, 101, 0, 0, 95, 0, 0, + 0, 565, 571, 570, 0, 145, 147, 0, 150, 151, + 152, 102, 104, 96, 98, 107, 109, 0, 115, 0, + 85, 48, 0, 0, 0, 487, 0, 0, 0, 32, + 0, 143, 148, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 187, 0, 359, 359, 0, 122, 123, + 218, 0, 211, 212, 0, 0, 0, 0, 0, 0, + 0, 324, 0, 0, 218, 0, 0, 0, 0, 0, + 0, 0, 0, 215, 214, 529, 530, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 118, 119, 0, 0, + 348, 0, 103, 105, 97, 99, 86, 0, 533, 534, + 0, 0, 542, 0, 44, 0, 0, 0, 46, 61, + 0, 0, 0, 133, 131, 377, 379, 378, 380, 381, + 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 483, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 339, 0, 0, 0, 289, 0, + 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 537, 273, 0, 0, 218, 396, 0, + 146, 0, 0, 153, 113, 0, 0, 0, 0, 0, + 130, 137, 143, 143, 0, 0, 0, 0, 0, 360, + 370, 0, 0, 371, 0, 209, 0, 310, 0, 0, + 312, 0, 0, 314, 0, 0, 0, 325, 0, 285, + 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 181, 120, 269, 345, 0, 140, 0, + 0, 52, 0, 58, 0, 0, 0, 0, 0, 167, + 200, 0, 374, 0, 375, 376, 482, 298, 0, 0, + 305, 299, 0, 0, 307, 300, 0, 0, 309, 0, + 0, 0, 291, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 481, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 337, 0, 0, 0, 287, 0, 223, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 535, - 271, 0, 0, 216, 394, 0, 146, 0, 0, 153, - 113, 0, 0, 0, 0, 0, 130, 137, 143, 143, - 0, 0, 0, 0, 0, 358, 368, 0, 0, 369, - 0, 207, 0, 308, 0, 0, 310, 0, 0, 312, - 0, 0, 0, 323, 0, 283, 0, 216, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, - 120, 267, 343, 0, 140, 0, 0, 52, 0, 58, - 0, 0, 0, 0, 0, 167, 198, 0, 372, 0, - 373, 374, 480, 296, 0, 0, 303, 297, 0, 0, - 305, 298, 0, 0, 307, 0, 0, 0, 289, 226, + 0, 0, 0, 134, 132, 0, 0, 0, 0, 316, + 0, 318, 0, 320, 326, 338, 290, 286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, - 132, 0, 0, 0, 0, 314, 0, 316, 0, 318, - 324, 336, 288, 284, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 141, 142, 49, - 0, 56, 0, 0, 0, 0, 0, 0, 299, 0, - 0, 300, 0, 0, 301, 0, 0, 227, 228, 229, - 230, 0, 224, 0, 0, 0, 0, 0, 348, 0, - 50, 0, 0, 260, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 290, 0, 530, 0, 0, 0, 0, - 0, 0, 0, 0, 266, 0, 0, 309, 0, 311, - 0, 313, 0, 225, 0, 0, 0, 0, 51, 53, - 0, 54, 0, 0, 0, 0, 0, 0, 511, 512, - 513, 514, 0, 0, 59, 370, 371, 315, 317, 319, - 55, 57 + 0, 141, 142, 49, 0, 56, 0, 0, 0, 0, + 0, 0, 301, 0, 0, 302, 0, 0, 303, 0, + 0, 229, 230, 231, 232, 0, 226, 0, 0, 0, + 0, 0, 350, 0, 50, 0, 0, 262, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 292, 0, 532, + 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, + 0, 311, 0, 313, 0, 315, 0, 227, 0, 0, + 0, 0, 51, 53, 0, 54, 0, 0, 0, 0, + 0, 0, 513, 514, 515, 516, 0, 0, 59, 372, + 373, 317, 319, 321, 55, 57 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 2, 3, 101, 1064, 102, 103, 761, 1638, 1644, - 1052, 1279, 1849, 2089, 1053, 2025, 2130, 1054, 2091, 1055, - 1056, 1283, 386, 481, 203, 891, 104, 779, 493, 1777, - 1929, 1928, 1778, 494, 1843, 1247, 1452, 1248, 1455, 818, - 821, 824, 827, 1668, 1505, 743, 331, 457, 458, 107, - 108, 109, 110, 111, 112, 113, 114, 332, 1151, 1956, - 2044, 856, 1692, 1695, 1698, 1994, 1998, 2002, 2069, 2072, - 2075, 1147, 1148, 333, 944, 334, 118, 1326, 1107, 815, - 869, 1873, 119, 120, 121, 122, 335, 205, 1006, 551, - 281, 1485, 336, 337, 338, 623, 347, 1037, 1271, 491, - 486, 1007, 492, 368, 340 + -1, 2, 3, 103, 1072, 104, 105, 767, 1652, 1658, + 1060, 1289, 1863, 2103, 1061, 2039, 2144, 1062, 2105, 1063, + 1064, 1293, 390, 485, 205, 899, 106, 785, 497, 1791, + 1943, 1942, 1792, 498, 1857, 1257, 1464, 1258, 1467, 826, + 829, 832, 835, 1682, 1517, 749, 335, 461, 462, 109, + 110, 111, 112, 113, 114, 115, 116, 336, 1161, 1970, + 2058, 864, 1706, 1709, 1712, 2008, 2012, 2016, 2083, 2086, + 2089, 1157, 1158, 337, 952, 338, 120, 1338, 1117, 823, + 877, 1887, 121, 122, 123, 124, 339, 207, 1014, 557, + 285, 1497, 340, 341, 342, 629, 351, 1045, 1281, 495, + 490, 1015, 496, 372, 344 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -1742 +#define YYPACT_NINF -1772 static const yytype_int16 yypact[] = { - 10410, 8, 22, 10557, -1742, -1742, 4286, 69, -42, -161, - -133, 49, 146, 157, 190, 223, -8, 237, 297, -1, - 67, -145, -145, -194, 20, 73, 19, 98, 110, 31, - 141, 167, 188, 191, 211, 278, 361, 364, 455, 267, - 366, 315, 337, 488, 497, 806, 467, 742, 852, -43, - 398, 533, -99, 399, -95, -95, 403, 236, 38, -1742, - -1742, -1742, -1742, -1742, 316, 553, 616, 26, 63, 624, - 651, 52, 745, 756, 763, 5570, 771, 527, 565, 570, - 27, 14, -1742, 571, 589, -1742, -1742, 803, 858, 623, - -1742, 4382, 646, 5048, 40, 41, -1742, -1742, -1742, 10256, - 662, -1742, -1742, -1742, -1742, -1742, -1742, -1742, -1742, -1742, - -1742, -1742, -1742, -1742, -1742, -1742, -106, -1742, -1742, -1742, - -1742, 55, -1742, 144, 270, -1742, 7, -1742, -1742, -1742, - -1742, -1742, -145, -145, -145, -145, -145, -145, -145, -145, - -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, - -145, -145, -145, -145, -145, -145, -145, 650, 683, 684, - -145, -145, -145, -145, 696, -145, -145, -145, -145, -145, - -145, 714, -1742, -145, -1742, -1742, -1742, -1742, -1742, -145, - -145, 870, 722, 727, 738, -145, -145, 746, 749, -1742, - -1742, -1742, -1742, 772, 10256, 10256, 10256, 9404, 9471, 149, - 24, 632, 761, 780, 612, -1742, 784, 971, 416, 274, - 992, 10256, 4930, 4930, -1742, 10256, -1742, -1742, -1742, -1742, - 4930, -1742, -1742, -1742, -1742, -1742, -1742, 5447, 24, 10256, - 9192, 10256, 10256, 792, 10256, 9192, 10256, 10256, 795, 9192, - 10256, 10256, 10256, 10256, 4930, 6515, 796, 793, -1742, 9192, - 5570, 5570, 5570, 4930, 10256, 811, 812, 5570, 5570, 5570, - 825, 840, 841, 848, 860, 6733, 6951, 7169, 809, 8695, - 1046, 6515, 27, 828, 861, -95, -95, -95, 10256, 10256, - -156, -1742, -65, -95, 862, 867, 919, 8762, -31, -89, - 907, 927, 959, 962, 975, 981, 982, 5570, 5570, 6515, - 988, 23, 950, -1742, 983, 1184, 1206, -1742, 1027, 1028, - 1051, 5570, 5570, 1084, 1093, 1095, 691, -1742, -103, -145, - -145, -145, -145, 35, 16, 21, 28, 874, 7387, 10256, - 4742, -1742, -1742, 1078, -1742, 3431, -1742, 1242, -1742, 419, - 158, 1266, 10256, 10256, 10256, -189, 10256, 1092, -1742, 1155, - 10256, 10256, 10256, -1742, -1742, 10256, 1094, 1317, 1318, 1101, - -1742, -1742, 1323, -1742, 1325, -1742, 699, 8722, 676, 4930, - 10256, -1742, -1742, 6515, 6515, 9688, 9755, 1107, 1111, 5447, - -1742, -1742, -1742, -1742, -1742, -1742, 6515, 1332, 1118, 10256, - 10256, 1350, 10256, 10256, 10256, 10256, 10256, 10256, 10256, 10256, - 10256, 10256, 10256, 10256, 10256, 10256, 10256, 10256, 10256, 10256, - 10256, 10256, 10256, 10256, 4930, 4930, 4930, 4930, 4930, 4930, - 4930, 4930, 4930, 4930, 6515, 4930, 4930, 10256, 4930, 4930, - 4930, 4930, 4930, 10256, 5447, 10256, 4930, 4930, 4930, 4930, - 4930, 24, 5447, 24, 1137, 1137, 1137, 101, 12293, 197, - 11902, 282, 1133, 1351, -145, 1134, -1742, 1135, 5625, 10256, - 9192, -1742, 10256, 10256, 10256, 10256, 10256, 10256, 10256, 10256, - 10256, 10256, 10256, 10256, 10256, 10256, 10256, -1742, -1742, 10256, - 10256, -1742, -1742, 648, 717, -126, -1742, 704, -1742, 87, - 10095, -1742, 117, -118, -71, 1136, 1138, 12314, 9192, 3657, - -1742, 214, 12335, 12356, 10256, 12377, 246, 12398, 12419, 10256, - 247, 12440, 12461, 12482, 12503, 1152, 1366, 10256, 10256, 308, - 1368, 1371, 1373, 1160, 12524, 10256, 10256, 1388, 1389, 1389, - 10256, 8980, 8980, 8980, 8980, 10256, 1391, 10256, 1392, 10256, - 1394, 9192, 9192, 9811, 1198, 1395, 1193, -1742, -1742, -98, - -1742, -1742, 10137, 10163, -95, -95, 632, 632, 121, 10256, - 10256, 10256, 8762, 8762, 10256, 5625, 129, -1742, 10256, 10256, - 10256, 10256, 10256, 10256, 10256, 10256, 10256, 1413, 1417, 1418, - 10256, 1423, 10256, 10256, 1258, -1742, -1742, 9192, 9192, 9192, - 1424, 1425, 10256, 10256, 10256, 10256, 10256, 1420, 102, 7605, - 7823, 10256, 10256, 4930, 10256, -1742, 1370, 10256, -1742, 1372, - -1742, 1377, -1742, 1379, 44, 45, 46, 47, 9192, 1137, - -1742, 12545, -1742, 338, 10256, 8041, -1742, 10256, 10256, 498, - -1742, 12566, 12587, 12608, 1272, 10190, -1742, 1209, 3773, 12629, - 12650, 11925, -1742, -1742, 9192, -1742, 1913, -1742, 2171, 10256, - 10256, -1742, 10256, 10256, 1220, 12671, 5816, 1227, 425, 201, - 12692, 205, 11948, 10256, 9192, 1443, 1444, -1742, 10256, 12713, - 11971, 314, 11879, 11879, 11879, 11879, 11879, 11879, 11879, 11879, - 11879, 11879, 11879, 10553, 11879, 11879, 11879, 11879, 11879, 11879, - 11879, 10579, 10605, 10631, 272, 506, 272, 1246, 1247, 1243, - 446, 446, 1244, 446, 1248, 1250, 1251, 10657, 446, 446, - 446, 162, 446, 13343, -1742, 900, 1254, 1255, 1261, 750, - 760, 1262, 1267, 1249, 1442, 1445, 6515, 286, 1446, 1448, - 6515, 136, 5447, 10256, 1487, 1495, 33, 446, -1742, -33, - 39, 34, -19, -1742, 4815, 461, 3799, 592, 1199, 816, - 816, 627, 627, 627, 627, -63, -63, 1137, 1137, 1137, - 1137, 13, 12734, 11994, -1742, 10256, 10256, 1496, 9, 9192, - 10256, 10256, 1497, 9192, 10256, 1513, 4930, 1514, -1742, 24, - 1515, 4930, 10256, 5447, 1494, 9192, 9192, 1338, 1517, 1519, - 12755, 1520, 1358, 1521, 1524, 12776, 1361, 1529, 1530, 1531, - 1532, -1742, 10256, 12797, 4855, 1319, -1742, -1742, -1742, 1537, - 1539, 12818, 12839, 10256, 6515, 1543, 1542, 12860, 1330, 13343, - 1326, 1334, 13343, 1331, 1335, 13343, 1333, 1337, 13343, 1340, - 12881, -1742, 12902, -1742, 12923, -1742, 606, 744, 9192, 1336, - -1742, -1742, 2563, 2932, -95, 10256, 10256, -1742, -1742, 1339, - 1342, 8762, 10683, 10709, 10735, 9997, 517, -95, 3023, 12944, - 5091, 12965, 12986, 13007, 13028, 13049, 13070, 13091, 10256, 1557, - -1742, 10256, 13112, -1742, 12017, 12040, -1742, 751, 765, 777, - -1742, -1742, 12063, 12086, 10761, 13133, 12109, 158, -1742, -1742, - 9192, -1742, 9192, 3657, 1347, 9192, 1348, 377, 10787, 10813, - 446, 10839, 1346, 5670, 1353, 1354, 1356, -1742, 9192, -1742, - 9192, -1742, 9192, -1742, 9192, 818, -1742, -1742, 3823, 9192, - 1137, -1742, 13154, 12132, 9192, -1742, 1566, 1567, 1569, 1360, - 10256, 3084, 10256, 10256, -1742, -1742, 61, 837, -1742, -1742, - 3187, -1742, 1570, 9972, 1357, 1359, 6515, 1580, 1546, 1547, - 6515, 286, 1548, 1549, 6515, 286, 5734, 838, -1742, -1742, - 12155, 372, 124, -1742, -1742, -1742, -1742, -1742, -1742, -1742, - -1742, -1742, -1742, -1742, -1742, 10256, -1742, -1742, -1742, -1742, - -1742, -1742, -1742, 10256, 10256, 10256, -1742, 9192, -1742, -1742, - -1742, -1742, 4930, -1742, -1742, 10256, -1742, 6515, 4930, 4930, - 4930, -1742, -1742, -1742, -1742, -1742, -1742, -1742, -1742, 10256, - 4930, -1742, 4930, -1742, 10256, -1742, -1742, -1742, -1742, -145, - -145, 1581, -1742, 10256, 1588, -145, -145, 1589, 153, 10256, - 1590, 1593, 947, -1742, 1594, 1381, 27, 1597, -1742, 9192, - 9192, 9192, 9192, -1742, 446, 10256, -1742, 1385, 1387, 1374, - -1742, 1604, -1742, -1742, -1742, -1742, -1742, 654, 656, 13175, - 12178, -1742, -1742, 1405, 4930, 245, 13196, 12201, -1742, 299, - 10865, -1742, -1742, -1742, 59, -1742, -1742, 11879, 446, -95, - 3657, -1742, 834, 6515, 6515, 1605, 6515, 976, 6515, 6515, - 1607, 1523, 6515, 6515, 6515, 6515, 1014, 1609, 1611, 9192, - -1742, 6515, 1612, 1613, 2591, -1742, -1742, 1616, -1742, 1618, - 384, 10256, 384, 10256, 384, 10256, 384, 10256, 1625, 1627, - 1633, 1636, 1638, 846, 1620, 3309, -1742, -1742, 139, 10891, - 10917, -1742, -1742, 5943, -117, -95, -95, -95, 1640, 10044, - 1421, 1642, 1427, 53, 54, 57, 74, -50, -1742, 148, - -1742, 517, 1644, 1647, 1648, 1649, 1654, 1661, 1662, 1663, - 1670, 13343, -1742, 1089, 1434, 1672, 1673, 1674, 1600, 1684, - 1686, 1687, 10256, 158, 658, 847, 850, -1742, 851, -1742, - -1742, 10256, 10256, -1742, 10256, 10256, -1742, 10256, 10256, 10256, - 857, 872, 889, 890, -1742, 10256, 894, 158, 158, 895, - 6515, 6515, 6515, 1695, 10943, -1742, 3947, 469, 1704, 1705, - 1488, -1742, 1486, -1742, 1181, 1489, 6515, 1493, -1742, -145, - -145, 1708, 10256, 1710, -145, -145, 1715, 10256, 1717, -1742, - 446, 1718, -1742, 1723, -1742, 1722, 11879, 11879, 11879, 11879, - 766, 1504, 9925, 1511, 446, 446, 1508, 783, 831, 13217, - 1516, 446, 11879, 1637, 4930, -1742, 1252, -1742, 1637, 4930, - -1742, 329, 1512, 1727, 1305, -1742, -1742, -1742, 27, 10256, - -1742, 898, -1742, 902, 908, 909, 912, 384, 13343, 1522, - 10256, 10256, 6515, 1526, -1742, -1742, -1742, -1742, 1536, -1742, - 1731, 18, -1742, -1742, 1734, 10256, 5788, 1533, 1527, 1736, - 1737, 4, 1528, 1535, 1658, 1658, 6515, 1738, 1544, 1545, - 1749, 1766, 6515, 1552, 1767, 1768, 1769, 1773, -1742, 1775, - 6515, 913, 1776, 6515, 6515, 1777, 1779, -1742, 6515, 6515, - 13343, 6515, 13343, 6515, 13343, 6515, 13343, 6515, 6515, 6515, - 1560, 1562, 1782, 560, -1742, 10256, 10256, 10256, 1571, 1576, - -125, -104, -69, 1574, -1742, 1872, 6515, -1742, 10256, -1742, - 1790, -1742, 1797, -1742, 1798, -1742, 1799, -1742, -1742, 8762, - 640, 6006, -1742, 1582, 1583, 1585, 1586, 1595, 1596, 8259, - -1742, 9192, -1742, -1742, -1742, 1598, 10256, -1742, -1742, 12224, - 1803, 446, 1563, 1592, 10969, 10995, 11021, 11047, 11073, 11099, - 11125, -1742, -1742, -1742, -1742, 13343, -1742, 446, 1809, 1810, - 1660, -1742, 10256, 10256, 10256, -1742, 1817, 584, 5447, -1742, - -1742, -1742, 1601, 1819, 1637, 4930, -1742, 1892, -1742, 1637, - 4930, -1742, 1911, -1742, 384, -1742, 674, -1742, -1742, -1742, - -1742, -1742, -1742, 4930, 10256, -1742, -1742, -1742, -1742, 4930, - 1823, -1742, -1742, 25, -1742, -1742, -1742, -1742, -1742, -1742, - 1824, 272, 272, -1742, 1827, 272, 272, 5447, 10256, 1828, - 1831, 33, -1742, 1830, 12247, 27, -1742, 1832, 1833, 1834, - 1835, 6515, 10256, 11151, 11177, 916, -1742, 10256, 1838, -1742, - -1742, 4930, -1742, 11203, 5134, 13343, -1742, 1821, 1839, -1742, - -1742, -1742, 10256, 10256, -95, 1841, 1843, 1844, -1742, 10256, - 10256, -1742, -1742, 1845, 10256, -1742, -1742, -1742, -1742, 1847, - 1848, 1629, -1742, 1850, 1689, 10256, -1742, 1852, 1856, 1858, - 1860, 1862, 1864, 1157, 1867, 9192, 9192, 10256, -1742, 8980, - 6181, 13238, 2248, 632, 632, -95, 1868, -95, 1869, -95, - 1873, 10256, -1742, 305, 1656, 13259, -1742, -1742, -1742, -1742, - 6254, 152, -1742, 1876, 1877, 6515, -95, -95, -95, -95, - -95, 4517, 1883, 937, 10256, 1941, 1888, 158, -1742, -1742, - -1742, 10256, 10256, 10256, 10256, 10256, 10256, 10256, -1742, -1742, - -1742, 6515, 3543, 401, 13280, -1742, -1742, 6224, 1675, 5816, - 5816, 6515, -1742, 1893, 272, 272, -1742, 1900, 272, 272, - -1742, 6515, -1742, 1688, 11879, 446, 5352, 6297, 5447, -1742, - 1904, 1905, -1742, 1906, 1907, 1908, 2022, -1742, 1909, 1912, - -1742, 1614, -1742, -1742, -1742, -1742, -1742, 1918, 396, 13343, - 10256, 10256, 6515, 1702, 941, 13343, -1742, 1923, 10256, -1742, - -1742, 1706, 1707, 6452, 6670, 554, -1742, -1742, -1742, 6888, - 7106, -1742, 7324, 1925, -1742, 6515, -1742, 1846, 1929, 13343, - -1742, -1742, -1742, -1742, -1742, -1742, 1712, -1742, -1742, 942, - 945, 9883, 2397, 1930, 1713, -1742, 10256, -1742, 1714, 1716, - 159, -1742, 1719, 222, -1742, 1720, 233, -1742, 1724, 12270, - 1936, 6515, 1924, 1725, 10256, -1742, -1742, 949, 239, 250, - 312, 367, 414, 8477, 417, -1742, 1938, 7542, -1742, -1742, - 11879, 11879, 11229, 11255, 11281, 11307, 11333, 1789, 10256, -1742, - 10256, -1742, -1742, 9192, 2619, 1943, 5447, 1728, 1739, 1744, - -1742, 1946, 1948, -1742, 1958, 1959, 1968, -1742, -1742, -1742, - 4742, -1742, -1742, 4930, 13343, -1742, -1742, -1742, -1742, -1742, - -1742, -1742, -1742, 27, -1742, 1813, -1742, -1742, 10256, 11359, - 11385, -1742, 6515, 10256, 1972, -1742, 11411, -1742, -1742, 6515, - 6515, 1973, 1975, 1976, 1978, 1979, 1980, 952, 1761, -1742, - 6515, 810, 835, 9192, -1742, -1742, 632, 4693, -1742, -1742, - 8762, 517, 8762, 517, 8762, 517, 1982, -1742, 955, 6515, - -1742, 7760, 1983, 9192, -95, -95, -95, -95, -95, -1742, - -1742, -1742, -1742, 10256, 10256, 10256, 10256, 10256, 10256, 7978, - 8196, 964, -1742, -1742, 1770, 1765, -1742, 1990, -1742, -1742, - -1742, -1742, -1742, 968, 2204, 2001, 978, 2003, -1742, 1784, - 13343, 10256, 10256, 979, 13343, -1742, 10256, 1003, 1004, -1742, - -1742, -1742, -1742, -1742, -1742, -1742, -1742, 1785, 10256, 1008, - 1787, -95, 6515, 2009, 1791, -95, 2010, 1009, 1796, 10256, - -1742, 8414, 421, 901, 8534, 424, 1490, 8601, 475, 1518, - -1742, 6515, 2012, 1916, 3510, 1801, -1742, 1012, 500, 512, - 520, 523, 547, 11437, 11463, 11489, 11515, 11541, 2720, -1742, - -1742, 2027, 2028, -1742, -1742, 10256, -1742, 5447, 24, -1742, - -1742, 10256, 13301, 11567, 50, 11593, -1742, -1742, -1742, -1742, - 10256, 8643, 2029, -95, 77, -1742, -1742, -95, 81, -1742, - 2030, -1742, 8862, 2031, 10256, 2034, 2035, 10256, 2037, 2038, - 10256, 2039, 1820, -1742, 10256, -1742, 517, -1742, 2042, 9192, - 9192, 9192, 9192, 8477, 10256, 10256, 10256, 10256, 10256, -1742, - -1742, -1742, 5816, 3008, -1742, 1836, 1018, -1742, 10256, -1742, - 6515, 10256, 1019, 1022, 11619, -1742, -1742, 549, -1742, 552, - -1742, -1742, -1742, -1742, 1825, 8890, -1742, -1742, 1837, 8918, - -1742, -1742, 1861, 9129, -1742, 2044, 2850, 1617, 3617, -1742, - 1032, 1035, 1036, 1039, 582, 1042, 11645, 11671, 11697, 11723, - 11749, 1826, 5447, 1840, 2048, 1865, 13322, 1053, 9243, -1742, - -1742, 10256, -95, -95, 517, 2050, 517, 2052, 517, 2053, - -1742, -1742, -1742, -1742, 517, 2055, 2056, 2058, 2059, 9192, - 2061, 10256, 10256, 10256, 10256, 10256, 2080, -1742, -1742, -1742, - 4930, -1742, 1880, 2082, 9310, 618, 653, 1653, -1742, 1882, - 1745, -1742, 1899, 1756, -1742, 1901, 1822, -1742, -1742, -1742, - -1742, 1057, -1742, 11879, 11775, 11801, 11827, 11853, -1742, 1060, - -1742, 1902, 6515, -1742, 2120, 10256, 10256, 2124, 517, 2125, - 517, 2126, 517, -1742, 2127, -1742, 10256, 10256, 10256, 10256, - 4930, 2128, 4930, 1083, -1742, 9352, 9429, -1742, 2040, -1742, - 2160, -1742, 2497, -1742, 9527, 9594, 9636, 9713, -1742, -1742, - 1088, -1742, 2129, 2130, 2150, 2151, 2152, 2154, -1742, -1742, - -1742, -1742, 4930, 2161, -1742, -1742, -1742, -1742, -1742, -1742, - -1742, -1742 + 10377, 40, 91, 10526, -1772, -1772, 4797, 86, 34, -194, + -88, 50, 139, 161, 172, 203, -4, 242, 275, -72, + -2, -89, -89, -135, 82, 90, 21, 135, 148, 28, + 181, 228, 252, 255, 271, 281, 285, 185, 366, 432, + 509, 303, 102, 314, 321, 458, 464, 586, 477, 648, + 801, 233, 352, 494, -85, 390, -139, -139, 408, 243, + 66, -1772, -1772, -1772, -1772, -1772, 232, 543, 555, 13, + 65, 573, 590, 295, 686, 700, 715, 5710, 732, 491, + 521, 560, 5, 24, -1772, 641, 646, -1772, -1772, 769, + 840, 528, -1772, 3405, 651, 5585, 35, 37, -1772, -1772, + -1772, 10221, 655, -1772, -1772, -1772, -1772, -1772, -1772, -1772, + -1772, -1772, -1772, -1772, -1772, -1772, -1772, -1772, 126, -1772, + -1772, -1772, -1772, 56, -1772, -57, 96, -1772, 14, -1772, + -1772, -1772, -1772, -1772, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, + -89, -89, -89, -89, -89, -89, -89, -89, -89, 660, + 668, 669, -89, -89, -89, -89, 678, -89, -89, -89, + -89, -89, -89, 684, -1772, -89, -1772, -1772, -1772, -1772, + -1772, -89, -89, 895, 691, 702, 705, -89, -89, 706, + 709, -1772, -1772, -1772, -1772, 713, 10221, 10221, 10221, 9363, + 9430, 27, 31, 324, 712, 729, 625, -1772, 733, 943, + -46, -75, 959, 10221, 6764, 6764, -1772, 10221, -1772, -1772, + -1772, -1772, 6764, -1772, -1772, -1772, -1772, -1772, -1772, 4692, + 31, 10221, 9149, 10221, 10221, 748, 10221, 9149, 10221, 10221, + 752, 9149, 10221, 10221, 10221, 10221, 6764, 10221, 10221, 6663, + 770, 749, -1772, 9149, 5710, 5710, 5710, 6764, 10221, 778, + 791, 5710, 5710, 5710, 798, 832, 841, 869, 874, 6883, + 7103, 7323, 762, 2655, 949, 6663, 5, 772, 799, -139, + -139, -139, 10221, 10221, -93, -1772, -70, -139, 814, 815, + 839, 8863, -15, 144, 875, 927, 940, 968, 973, 980, + 993, 5710, 5710, 6663, 997, 17, 845, -1772, 991, 1144, + 1171, -1772, 977, 1013, 1021, 5710, 5710, 1033, 1040, 1044, + 525, -1772, 70, -89, -89, -89, -89, 8, 38, 39, + 48, 728, 7543, 10221, 5039, -1772, -1772, 1036, -1772, 1095, + -1772, 1265, -1772, -5, -155, 1266, 10221, 10221, 10221, -189, + 10221, 1060, -1772, 1111, 10221, 10221, 10221, -1772, -1772, 10221, + 1056, 1284, 1286, 1066, -1772, -1772, 1289, -1772, 1290, -1772, + 441, 3412, 504, 6764, 10221, -1772, -1772, 6663, 6663, 9649, + 9716, 1084, 1086, 4692, -1772, -1772, -1772, -1772, -1772, -1772, + 6663, 1310, 1097, 10221, 10221, 1314, 10221, 10221, 10221, 10221, + 10221, 10221, 10221, 10221, 10221, 10221, 10221, 10221, 10221, 10221, + 10221, 10221, 10221, 10221, 10221, 10221, 10221, 10221, 6764, 6764, + 6764, 6764, 6764, 6764, 6764, 6764, 6764, 6764, 6663, 6764, + 6764, 10221, 6764, 6764, 6764, 6764, 6764, 10221, 4692, 10221, + 6764, 6764, 6764, 6764, 6764, 31, 4692, 31, 1103, 1103, + 1103, 140, 12086, 152, 5838, 118, 1099, 1318, -89, 1098, + -1772, 1101, 6205, 10221, 9149, -1772, 10221, 10221, 10221, 10221, + 10221, 10221, 10221, 10221, 10221, 10221, 10221, 10221, 10221, 10221, + 10221, -1772, -1772, 10221, 10221, -1772, -1772, 1268, 584, -173, + -1772, 650, -1772, -24, 9675, -1772, 290, 187, 236, 1100, + 1104, 12107, 9149, 3542, -1772, 253, 12128, 12149, 10221, 12170, + 501, 12191, 12212, 10221, 577, 12233, 12254, 12275, 12296, 1106, + 12317, 12338, 1327, 10221, 10221, 594, 1329, 1333, 1335, 1121, + 12359, 10221, 10221, 1342, 1343, 1343, 10221, 8935, 8935, 8935, + 8935, 10221, 1347, 10221, 1348, 10221, 1349, 9149, 9149, 9388, + 1134, 1351, 1130, -1772, -1772, -114, -1772, -1772, 9772, 9844, + -139, -139, 324, 324, 146, 10221, 10221, 10221, 8863, 8863, + 10221, 6205, 177, -1772, 10221, 10221, 10221, 10221, 10221, 10221, + 10221, 10221, 10221, 1356, 1358, 1366, 10221, 1368, 10221, 10221, + 1309, -1772, -1772, 9149, 9149, 9149, 1369, 1370, 10221, 10221, + 10221, 10221, 10221, 1373, 246, 7763, 7983, 10221, 10221, 6764, + 10221, -1772, 1316, 10221, -1772, 1317, -1772, 1321, -1772, 1324, + 42, 43, 46, 47, 9149, 1103, -1772, 12380, -1772, 595, + 10221, 8203, -1772, 10221, 10221, 301, -1772, 12401, 12422, 12443, + 1224, 9886, -1772, 1161, 3628, 12464, 12485, 11718, -1772, -1772, + 9149, -1772, 2005, -1772, 2971, 10221, 10221, -1772, 10221, 10221, + 1167, 12506, 4825, 1170, 681, 194, 12527, 200, 11741, 10221, + 9149, 1398, 1399, -1772, 10221, 12548, 11764, -63, 3982, 3982, + 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982, 9960, + 3982, 3982, 3982, 3982, 3982, 3982, 3982, 10058, 10100, 10126, + 159, 639, 159, 1193, 1199, 1198, 530, 530, 1202, 530, + 1203, 1204, 1205, 10152, 530, 530, 530, 400, 530, 4687, + -1772, 1305, 1213, 1218, 1225, 679, 687, 1227, 1228, 1222, + 1382, 1407, 6663, 145, 1409, 1410, 6663, 107, 4692, 10221, + 1449, 1452, 29, 530, -1772, 182, 41, 33, 215, -1772, + 2934, 693, 3687, 2533, 2323, 872, 872, 672, 672, 672, + 672, 385, 385, 1103, 1103, 1103, 1103, 26, 12569, 11787, + -1772, 10221, 10221, 1453, 16, 9149, 10221, 10221, 1456, 9149, + 10221, 1457, 6764, 1458, -1772, 31, 1459, 6764, 10221, 4692, + 1478, 9149, 9149, 1293, 1479, 1480, 12590, 1484, 1300, 1485, + 1486, 12611, 1323, 1489, 1492, 1494, 1495, -1772, 1497, 1514, + 10221, 12632, 3177, 1267, -1772, -1772, -1772, 1516, 1517, 12653, + 12674, 10221, 6663, 1522, 1521, 12695, 1306, 4687, 1302, 1308, + 4687, 1304, 1311, 4687, 1307, 1313, 4687, 1312, 12716, -1772, + 12737, -1772, 12758, -1772, 721, 725, 9149, 1315, -1772, -1772, + 3205, 3329, -139, 10221, 10221, -1772, -1772, 1303, 1319, 8863, + 10522, 10548, 10574, 9553, 923, -139, 3558, 12779, 5607, 12800, + 12821, 12842, 12863, 12884, 12905, 12926, 10221, 1544, -1772, 10221, + 12947, -1772, 11810, 11833, -1772, 737, 741, 745, -1772, -1772, + 11856, 11879, 10600, 12968, 11902, -155, -1772, -1772, 9149, -1772, + 9149, 3542, 1330, 9149, 1345, -108, 10626, 10652, 530, 10678, + 1325, 5810, 1352, 1355, 1357, -1772, 9149, -1772, 9149, -1772, + 9149, -1772, 9149, 756, -1772, -1772, 3865, 9149, 1103, -1772, + 12989, 11925, 9149, -1772, 1563, 1564, 1568, 1354, 10221, 3600, + 10221, 10221, -1772, -1772, 58, 757, -1772, -1772, 3903, -1772, + 1577, 9935, 1359, 1362, 6663, 1580, 1547, 1548, 6663, 145, + 1549, 1550, 6663, 145, 6047, 779, -1772, -1772, 11948, 406, + 1188, -1772, -1772, -1772, -1772, -1772, -1772, -1772, -1772, -1772, + -1772, -1772, -1772, 10221, -1772, -1772, -1772, -1772, -1772, -1772, + -1772, 10221, 10221, 10221, -1772, 9149, -1772, -1772, -1772, -1772, + 6764, -1772, -1772, 10221, -1772, 6663, 6764, 6764, 6764, -1772, + -1772, -1772, -1772, -1772, -1772, -1772, -1772, 10221, 6764, -1772, + 6764, -1772, 10221, -1772, -1772, -1772, -1772, -89, -89, 1581, + -1772, 10221, 1591, -89, -89, 1592, 30, 10221, 1595, 1598, + 1353, -1772, 1599, 1384, 5, 1602, -1772, 9149, 9149, 9149, + 9149, -1772, 530, 10221, -1772, 1389, 1390, 1377, -1772, 1607, + -1772, -1772, -1772, -1772, -1772, 411, 552, 13010, 11971, -1772, + -1772, 1406, 6764, 460, 13031, 11994, -1772, 461, 10704, -1772, + -1772, -1772, 9, -1772, -1772, 3982, 530, -139, 3542, -1772, + 921, 6663, 6663, 1609, 6663, 926, 6663, 6663, 1610, 1526, + 6663, 6663, 6663, 6663, 6663, 6663, 1488, 1612, 1614, 9149, + -1772, 6663, 1619, 1626, 1744, -1772, -1772, 1628, -1772, 1631, + 208, 10221, 208, 10221, 208, 10221, 208, 10221, 1633, 1635, + 1637, 1638, 1639, 805, 1632, 4258, -1772, -1772, 201, 10730, + 10756, -1772, -1772, 6327, -124, -139, -139, -139, 1643, 10007, + 1420, 1644, 1428, 18, 32, 44, 55, -41, -1772, 223, + -1772, 923, 1645, 1648, 1649, 1650, 1651, 1652, 1659, 1660, + 1661, 4687, -1772, 1543, 1423, 1663, 1664, 1665, 1565, 1666, + 1668, 1671, 10221, -155, 143, 806, 809, -1772, 810, -1772, + -1772, 10221, 10221, -1772, 10221, 10221, -1772, 10221, 10221, 10221, + 821, 822, 825, 830, -1772, 10221, 834, -155, -155, 847, + 6663, 6663, 6663, 1674, 10782, -1772, 3941, 910, 1675, 1676, + 1445, -1772, 1454, -1772, 1603, 1455, 6663, 1460, -1772, -89, + -89, 1678, 10221, 1679, -89, -89, 1681, 10221, 1682, -1772, + 530, 1698, -1772, 1677, -1772, 1707, 3982, 3982, 3982, 3982, + 711, 1491, 9595, 1498, 530, 530, 1496, 719, 720, 13052, + 1499, 530, 3982, 1963, 6764, -1772, 1629, -1772, 1963, 6764, + -1772, 178, 1501, 1709, 1711, -1772, -1772, -1772, 5, 10221, + -1772, 878, -1772, 882, 899, 900, 904, 208, 4687, 1506, + 10221, 10221, 6663, 1502, -1772, -1772, -1772, -1772, 1507, -1772, + 1716, 23, -1772, -1772, 1725, 10221, 5930, 1511, 1512, 1729, + 1731, 74, 1510, 1513, 1630, 1630, 6663, 1733, 1515, 1531, + 1736, 1756, 6663, 1537, 1760, 1761, 1762, 1763, 1764, 1765, + -1772, 1767, 6663, 908, 1769, 6663, 6663, 1773, 1772, -1772, + 6663, 6663, 4687, 6663, 4687, 6663, 4687, 6663, 4687, 6663, + 6663, 6663, 1545, 1551, 1774, 328, -1772, 10221, 10221, 10221, + 1552, 1554, -152, -144, -81, 1561, -1772, 1928, 6663, -1772, + 10221, -1772, 1779, -1772, 1780, -1772, 1781, -1772, 1782, -1772, + -1772, 8863, -21, 6150, -1772, 1566, 1567, 1569, 1570, 1571, + 1572, 8423, -1772, 9149, -1772, -1772, -1772, 1574, 10221, -1772, + -1772, 12017, 1785, 530, 1597, 1579, 10808, 10834, 10860, 10886, + 10912, 10938, 10964, -1772, -1772, -1772, -1772, 4687, -1772, 530, + 1786, 1787, 1667, -1772, 10221, 10221, 10221, -1772, 1815, 804, + 4692, -1772, -1772, -1772, 1600, 1816, 1963, 6764, -1772, 2036, + -1772, 1963, 6764, -1772, 2069, -1772, 208, -1772, 559, -1772, + -1772, -1772, -1772, -1772, -1772, 6764, 10221, -1772, -1772, -1772, + -1772, 6764, 1822, -1772, -1772, 22, -1772, -1772, -1772, -1772, + -1772, -1772, 1839, 159, 159, -1772, 1840, 159, 159, 4692, + 10221, 1841, 1824, 29, -1772, 1845, 12040, 5, -1772, 1846, + 1848, 1849, 1850, 6663, 10221, 10990, 11016, 909, -1772, 10221, + 1853, -1772, -1772, 6764, -1772, 11042, 5270, 4687, -1772, 1851, + 1852, -1772, -1772, -1772, 10221, 10221, -139, 1854, 1856, 1857, + -1772, 10221, 10221, -1772, -1772, 1858, 10221, -1772, -1772, -1772, + -1772, -1772, -1772, 1860, 1861, 1641, -1772, 1865, 1708, 10221, + -1772, 1867, 1869, 1870, 1872, 1873, 1874, 1139, 1875, 9149, + 9149, 10221, -1772, 8935, 6400, 13073, 4439, 324, 324, -139, + 1878, -139, 1879, -139, 1880, 10221, -1772, 554, 1662, 13094, + -1772, -1772, -1772, -1772, 6780, 254, -1772, 1881, 1882, 6663, + -139, -139, -139, -139, -139, 4502, 1884, 917, 10221, 2094, + 1885, -155, -1772, -1772, -1772, 10221, 10221, 10221, 10221, 10221, + 10221, 10221, -1772, -1772, -1772, 6663, 4986, 588, 13115, -1772, + -1772, 6370, 1670, 4825, 4825, 6663, -1772, 1886, 159, 159, + -1772, 1887, 159, 159, -1772, 6663, -1772, 1673, 3982, 530, + 5490, 6443, 4692, -1772, 1893, 1894, -1772, 1895, 1897, 1898, + 2262, -1772, 1899, 1901, -1772, 1680, -1772, -1772, -1772, -1772, + -1772, 1921, 632, 4687, 10221, 10221, 6663, 1700, 920, 4687, + -1772, 1924, 10221, -1772, -1772, 1704, 1705, 6820, 7000, 574, + -1772, -1772, -1772, 7040, 7220, -1772, 7260, 1930, -1772, 6663, + -1772, 1855, 1931, 4687, -1772, -1772, -1772, -1772, -1772, -1772, + 1710, -1772, -1772, 924, 929, 9486, 2413, 1933, 1712, -1772, + 10221, -1772, 1713, 1715, 282, -1772, 1732, 289, -1772, 1734, + 293, -1772, 1735, 12063, 1935, 6663, 1929, 1738, 10221, -1772, + -1772, 930, 299, 316, 360, 368, 374, 8643, 377, -1772, + 1955, 7440, -1772, -1772, 3982, 3982, 11068, 11094, 11120, 11146, + 11172, 1814, 10221, -1772, 10221, -1772, -1772, 9149, 2599, 1970, + 4692, 1748, 1749, 1750, -1772, 1974, 1975, -1772, 1976, 1977, + 1978, -1772, -1772, -1772, 5039, -1772, -1772, 6764, 4687, -1772, + -1772, -1772, -1772, -1772, -1772, -1772, -1772, 5, -1772, 1823, + -1772, -1772, 10221, 11198, 11224, -1772, 6663, 10221, 1980, -1772, + 11250, -1772, -1772, 6663, 6663, 1982, 1983, 1984, 1986, 1987, + 1988, 933, 1768, -1772, 6663, 330, 425, 9149, -1772, -1772, + 324, 5207, -1772, -1772, 8863, 923, 8863, 923, 8863, 923, + 1989, -1772, 939, 6663, -1772, 7480, 1995, 9149, -139, -139, + -139, -139, -139, -1772, -1772, -1772, -1772, 10221, 10221, 10221, + 10221, 10221, 10221, 7660, 7700, 946, -1772, -1772, 1783, 1775, + -1772, 1996, -1772, -1772, -1772, -1772, -1772, 947, 2983, 1997, + 951, 2010, -1772, 1791, 4687, 10221, 10221, 956, 4687, -1772, + 10221, 957, 961, -1772, -1772, -1772, -1772, -1772, -1772, -1772, + -1772, 1796, 10221, 970, 1797, -139, 6663, 2020, 1804, -139, + 2028, 971, 1806, 10221, -1772, 7880, 382, 336, 7920, 396, + 391, 8100, 399, 502, -1772, 6663, 2030, 1920, 5765, 1810, + -1772, 975, 405, 426, 443, 445, 447, 11276, 11302, 11328, + 11354, 11380, 2730, -1772, -1772, 2033, 2035, -1772, -1772, 10221, + -1772, 4692, 31, -1772, -1772, 10221, 13136, 11406, 52, 11432, + -1772, -1772, -1772, -1772, 10221, 8140, 2037, -139, 78, -1772, + -1772, -139, 98, -1772, 2039, -1772, 8320, 2040, 10221, 2041, + 2042, 10221, 2043, 2045, 10221, 2046, 1825, -1772, 10221, -1772, + 923, -1772, 2047, 9149, 9149, 9149, 9149, 8643, 10221, 10221, + 10221, 10221, 10221, -1772, -1772, -1772, 4825, 3039, -1772, 1834, + 983, -1772, 10221, -1772, 6663, 10221, 984, 988, 11458, -1772, + -1772, 457, -1772, 474, -1772, -1772, -1772, -1772, 1828, 8360, + -1772, -1772, 1830, 8540, -1772, -1772, 1833, 8580, -1772, 2056, + 2906, 708, 5980, -1772, 995, 1001, 1002, 1015, 499, 1023, + 11484, 11510, 11536, 11562, 11588, 1835, 4692, 1843, 2057, 1838, + 13157, 1030, 8700, -1772, -1772, 10221, -139, -139, 923, 2061, + 923, 2062, 923, 2063, -1772, -1772, -1772, -1772, 923, 2064, + 2066, 2067, 2068, 9149, 2070, 10221, 10221, 10221, 10221, 10221, + 2071, -1772, -1772, -1772, 6764, -1772, 1859, 2072, 8816, 510, + 512, 727, -1772, 1889, 846, -1772, 1900, 881, -1772, 1916, + 1022, -1772, -1772, -1772, -1772, 1041, -1772, 3982, 11614, 11640, + 11666, 11692, -1772, 1049, -1772, 1922, 6663, -1772, 2073, 10221, + 10221, 2075, 923, 2076, 923, 2077, 923, -1772, 2078, -1772, + 10221, 10221, 10221, 10221, 6764, 2079, 6764, 1055, -1772, 8892, + 9046, -1772, 1219, -1772, 1294, -1772, 1482, -1772, 9086, 9200, + 9267, 9309, -1772, -1772, 1058, -1772, 2080, 2082, 2095, 2096, + 2101, 2103, -1772, -1772, -1772, -1772, 6764, 2104, -1772, -1772, + -1772, -1772, -1772, -1772, -1772, -1772 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -1742, -1742, -1742, -1742, 875, -1742, -1742, -1742, -1742, 248, - -1742, -1742, -1742, -1742, -1742, -1742, -1742, -1742, -1742, -1742, - -1742, -1742, -376, 12, 4061, 3426, -1742, 1676, -1742, -1742, - -1742, -1742, -1742, -1742, -1742, -1741, -1742, 390, -1742, -1742, - -1742, -1742, -1742, -1742, 868, 2169, 17, -544, -246, -1742, - -1742, -1742, -1742, -1742, -1742, -1742, -1742, 2172, -1742, -1742, - -1742, -1742, -1742, -1742, -1742, -1742, -1742, -1742, -1742, -1742, - -1742, -1150, -1139, 2173, -1593, 2174, -1742, -1742, -1742, 1645, - -1742, 397, -1742, -1742, -1742, -1742, 1967, -1742, -1742, 105, - -1742, -1556, 2477, 1186, 953, 2459, -267, 719, -1742, 132, - 10, -1742, -412, -3, 276 + -1772, -1772, -1772, -1772, 811, -1772, -1772, -1772, -1772, 190, + -1772, -1772, -1772, -1772, -1772, -1772, -1772, -1772, -1772, -1772, + -1772, -1772, -445, 12, 4153, 3529, -1772, 1624, -1772, -1772, + -1772, -1772, -1772, -1772, -1772, -1771, -1772, 337, -1772, -1772, + -1772, -1772, -1772, -1772, 836, 2146, 20, -548, -252, -1772, + -1772, -1772, -1772, -1772, -1772, -1772, -1772, 2149, -1772, -1772, + -1772, -1772, -1772, -1772, -1772, -1772, -1772, -1772, -1772, -1772, + -1772, -1154, -1156, 2151, -1602, 2152, -1772, -1772, -1772, 1621, + -1772, 355, -1772, -1772, -1772, -1772, 1979, -1772, -1772, 80, + -1772, -1522, 2774, 235, 2633, 950, -271, 675, -1772, 134, + 75, -1772, -416, -3, 273 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -551 +#define YYTABLE_NINF -553 static const yytype_int16 yytable[] = { - 123, 1370, 694, 208, 696, 546, 1737, 1738, 1368, 1707, - 1501, 388, 849, 850, 4, 1062, 207, 1046, 349, 711, - 106, 608, 5, 233, 1490, 229, 610, 581, 356, 1617, - 301, 345, 230, 612, 634, 238, 1857, 1035, 238, 202, - 605, 565, 289, 233, 268, 362, 364, 269, 211, 907, - 909, 911, 913, 554, 555, 214, 1979, 584, 212, 1359, - 1361, 372, 272, 1363, 304, 1138, 1296, 306, 1208, 307, - 556, 726, 339, 730, 225, 733, 226, 304, 273, 274, - 1365, 1139, 210, 1988, 554, 555, 213, 1990, 304, 1140, - 1141, 1142, 554, 555, 768, 1143, 1144, 1145, 1146, 769, - 1545, 357, 1546, 361, 777, 554, 555, 778, 724, 1787, - 1349, 554, 555, 370, 276, 277, 599, 646, 600, 648, - 371, 1547, 290, 1548, 278, 656, 291, 844, 484, 127, - 568, 279, 292, 293, 294, 295, 387, 569, 206, 311, - 554, 555, 312, 1022, 554, 555, 296, 308, 473, 474, - 475, 780, 216, 451, 778, 476, 1549, 1261, 1550, 280, - 282, 557, 288, 217, 1047, 1048, 1049, 1050, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 1367, 554, 555, - 609, 167, 168, 169, 170, 611, 229, 1982, 1983, 172, - 173, 174, 613, 1039, 175, 567, 218, 304, 302, 606, - 241, 1618, 1360, 1362, 728, 180, 1364, 1042, 948, 487, - 487, 220, 952, 554, 555, 1063, 1853, 487, 456, 100, - 223, 100, 100, 1366, 1063, 304, 389, 339, 390, 219, - 391, 1368, 339, 350, 1869, 202, 339, 495, 234, 231, - 1051, 487, 339, 221, 582, 235, 339, 339, 339, 339, - 487, 202, 303, 346, 339, 339, 339, 239, 234, 1036, - 1041, 607, 339, 339, 339, 1040, 363, 365, 339, 304, - 908, 910, 912, 914, 373, 215, 1980, 379, 1297, 124, - 1298, 374, 209, 950, 1209, 954, 554, 555, 224, 732, - 554, 555, 232, 1022, 339, 339, 339, 380, 381, 382, - 725, 842, 843, 222, 183, 184, 185, 772, 339, 339, - 452, 453, 773, 624, 1262, 1263, 192, 236, 193, 100, - 284, 858, 888, 285, 889, 339, 286, 339, 890, 237, - 554, 555, 380, 381, 382, 383, 1467, 775, 554, 555, - 384, 385, 776, 305, 485, 489, 851, 1233, 554, 555, - -545, 1023, 384, 385, 857, 1029, 348, 554, 555, 1028, - 240, 554, 555, 375, 1345, 376, 487, 358, 554, 555, - 339, 339, 377, 1369, 384, 385, 515, 1704, 245, 2021, - 549, 550, 1004, 339, 1800, 523, 241, 776, 558, 665, - 931, 1022, 566, 380, 381, 382, 729, 380, 381, 382, - 949, 380, 381, 382, 953, 940, 297, 242, 298, 1730, - 243, 487, 487, 487, 487, 487, 487, 487, 487, 487, - 487, 339, 487, 487, 2027, 487, 487, 487, 487, 487, - 244, 554, 555, 487, 487, 487, 487, 487, 304, 786, - 304, 787, 554, 555, 714, 276, 277, 1802, 554, 555, - 250, 246, 722, 251, 247, 278, 252, 339, 1804, 554, - 555, 248, 287, 734, 1813, 1291, 380, 381, 382, 383, - 786, 786, 786, 792, 796, 1814, 454, 1414, 380, 381, - 382, 383, 380, 381, 382, 383, 384, 385, 488, 488, - 384, 385, 888, 249, 889, 339, 488, 776, 384, 385, - -544, 654, 384, 385, 496, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 625, 474, 475, 1294, - 488, 554, 555, 476, 786, 380, 381, 382, 383, 488, - 384, 385, 1700, 786, 253, 805, 2113, 1815, 339, 339, - -549, 820, 823, 826, 829, 384, 385, 695, 348, 697, - 698, 699, 700, 701, 702, 703, 254, 705, 706, 260, - 708, 709, 710, 786, 712, 917, 1538, 1539, 716, 717, - 718, 719, 720, 456, 456, 1222, 554, 555, 255, 1227, - 380, 381, 382, 383, 339, 339, 339, 256, 384, 385, - 1596, 1597, 1816, 384, 385, 1125, 339, 339, -547, 1180, - 487, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 339, 1767, 270, 461, 476, - 271, 1768, 339, 554, 555, 275, 554, 555, 1731, 283, - 554, 555, 1138, 554, 555, 479, 455, 480, 627, 1817, - 628, 339, 1818, 299, 377, 488, 1944, 377, 1139, 1947, - 946, 1883, 947, 1886, 764, 1889, 1140, 1141, 1142, 847, - 848, 339, 1143, 1144, 1145, 1146, 888, 550, 889, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 963, 554, 555, 786, 476, 1044, 1415, - 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, - 1950, 488, 488, 300, 488, 488, 488, 488, 488, 554, - 555, 309, 488, 488, 488, 488, 488, 721, 888, 723, - 889, 554, 555, 339, 924, 1959, 888, 339, 889, 554, - 555, 987, 554, 555, 1329, 900, 1331, 1960, 1333, 1024, - 1335, 310, 1031, 1030, 1368, 1961, 342, 1368, 1962, 313, - 1368, 53, 54, 55, 56, 1138, 554, 555, 554, 555, - 314, 554, 555, 554, 555, 66, 339, 315, 69, 1270, - 339, 1139, 1963, 487, 2032, 341, 304, 2033, 487, 1140, - 1141, 1142, 339, 339, 343, 1143, 1144, 1145, 1146, 344, - 351, 554, 555, 1078, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 2007, 2049, 352, 353, - 476, 339, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 261, 554, 555, 262, - 476, 786, 263, 1121, 264, 339, 471, 472, 473, 474, - 475, 1461, 1462, 2095, 355, 476, 1465, 1466, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 554, 555, 354, 359, 476, 1562, 1368, 417, - 384, 385, 384, 385, 384, 385, 897, 435, 2096, 488, - -548, 1390, -546, 369, 2067, 1468, 2070, 339, 2073, 339, - 384, 385, 339, 257, 2076, 652, 258, 653, 259, 963, - -550, 1481, 418, 419, 377, 339, 1008, 339, 1072, 339, - 595, 339, 596, 1076, 597, 424, 339, 201, 649, 202, - 650, 339, 597, 770, 1302, 771, 1303, 202, 1368, 1870, - 1871, 1368, 377, 431, 1368, 1872, 765, 1368, 766, 265, - 767, 436, 266, 339, 267, 202, 437, 339, 2118, 1128, - 2120, 339, 2122, 1267, 1874, 1875, 1134, 438, 614, 487, - 1872, 615, 1149, 1223, 616, 441, 617, 1228, 442, 786, - 888, 1122, 889, 1232, 1234, 1012, 786, 478, 1167, 1368, - 888, 1368, 889, 1368, 339, 1014, 888, 459, 889, 487, - 786, 786, 1168, 443, 339, 487, 487, 487, 482, 1688, - 1689, 1473, 786, 888, 1169, 889, 460, 487, 1450, 487, - 477, 504, 1604, 1605, 509, 517, 1138, 1608, 1609, 518, - 1318, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 525, 526, 1139, 304, 476, 541, 339, 339, 339, 339, - 1140, 1141, 1142, 786, 530, 1194, 1143, 1144, 1145, 1146, - 544, 888, 488, 889, 547, 1074, 1453, 488, 1611, 531, - 532, 487, 786, 786, 1210, 1230, 1308, 533, 1309, 1285, - 1286, 786, 786, 1342, 1391, 786, 786, 1392, 1393, 534, - 339, 339, 786, 339, 1401, 339, 339, 548, 559, 339, - 339, 339, 339, 560, 1235, 1380, 339, 786, 339, 1402, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 786, 786, 1403, 1404, 476, 786, - 786, 1406, 1407, 1475, 1241, 1476, 570, 786, 1945, 1477, - 1244, 1245, 1246, 786, 786, 1478, 1479, 786, 786, 1480, - 1521, 1642, 1250, 1643, 1251, 561, 571, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 1676, 786, 1677, 1716, 476, 1773, 786, 1774, 1791, - 786, 583, 1792, 1599, 1642, 1600, 1812, 1642, 572, 1867, - 1891, 573, 1892, 500, 1301, 1232, 1234, 1420, 500, 786, - 585, 1911, 500, 1915, 574, 1916, 1290, 339, 339, 339, - 575, 576, 500, 776, 1642, 1919, 1924, 580, 1632, 1285, - 1286, 377, 586, 339, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 1450, 1453, - 1926, 1927, 476, 1642, 786, 1932, 1940, 786, 488, 1958, - 1350, 1351, 1352, 1773, 1450, 2024, 2029, 1450, 626, 2030, - 487, 487, 1878, 587, 588, 487, 487, 786, 1463, 2045, - 786, 786, 2046, 2047, 786, 304, 2048, 786, 488, 2050, - 7, 8, 630, 1469, 488, 488, 488, 589, 1642, 339, - 2062, 620, 786, 500, 2104, 2110, 488, 2111, 488, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 339, 371, 592, 1496, 476, 1642, 339, - 2132, 1472, 348, 2142, 593, 2143, 594, 339, 636, 637, - 339, 339, 202, 642, 643, 339, 339, 644, 339, 645, - 339, 647, 339, 663, 339, 339, 339, 664, 667, 668, - 488, 1846, 739, 24, 25, 740, 27, 28, 741, 30, - 742, 32, 33, 339, 671, 476, 735, 35, 736, 36, - 201, 782, 738, 783, 41, 42, 43, 44, 339, 46, - 47, 48, 801, 802, 806, 51, 339, 807, 339, 808, - 809, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 813, 814, 831, 833, 476, - 835, 840, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 500, 77, 78, 79, 476, 839, 841, - 868, 487, 487, 870, 887, 871, 487, 487, 1598, 873, - 880, 881, 902, 929, 904, 932, 520, 521, 522, 905, - 487, 906, 941, 527, 528, 529, 487, 945, 1612, 958, - 959, 620, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 990, 991, 992, 995, - 476, 1018, 304, 997, 1561, 998, 999, 1625, 339, 1009, - 1010, 1011, 1016, 577, 578, 876, 1019, 1017, 487, 1020, - 1025, 339, 1026, 1033, 500, 500, 1847, 590, 591, 1034, - 1061, 1079, 1082, 1068, 1650, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 1071, - 1073, 1075, 1087, 476, 1083, 1091, 1084, 1086, 1088, 488, - 488, 1089, 339, 339, 488, 488, 1092, 1093, 1094, 1095, - 500, 500, 500, 1100, 348, 1099, 1101, 1106, 1108, 1683, - 1110, 1111, 894, 896, 1112, 1114, 1113, 1116, 1115, 1124, - 456, 456, 339, 1162, 1894, 1117, 1131, 1177, 339, 1132, - 1179, 500, 1185, 1200, 1201, 1613, 1202, 1212, 921, 1187, - 1188, 1615, 1189, 1203, 1215, 1216, 1218, 1255, 339, 1612, - 1219, 1220, 1224, 1225, 1257, 1260, 1265, 500, 339, 1266, - 1282, 1268, 1269, 1272, 1280, 1138, 1281, 1735, 339, 1655, - 1284, 1289, 1306, 339, 1312, 1313, 1319, 500, 1320, 1323, - 1324, 1139, 1327, 1647, 1343, 1328, 1752, 1755, 1756, 1140, - 1141, 1142, 1337, 1138, 1338, 1143, 1144, 1145, 1146, 339, - 1339, 484, 127, 1340, 1353, 1341, 1358, 1356, 1357, 1139, - 1690, 1371, 1693, 1372, 1696, 1373, 1374, 1140, 1141, 1142, - 1381, 1375, 339, 1143, 1144, 1145, 1146, 1972, 1376, 1377, - 1378, 1708, 1709, 1710, 1711, 1712, 1714, 1379, 1382, 1383, - 1384, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 1385, 1386, 1387, 1388, 167, 168, 169, 170, 339, 1411, - 488, 488, 172, 173, 174, 488, 488, 175, 1416, 1417, - 339, 2008, 1419, 1418, 1426, 1421, 1428, 1948, 180, 488, - 1423, 1431, 500, 1433, 1435, 488, 500, 1436, 1437, 1443, - 339, 1446, 1138, 1449, 1471, 1470, 1457, 1489, 921, 1081, - 1492, 1482, 1499, 1500, 1508, 1951, 1834, 339, 1139, 1498, - 487, 348, 1487, 1497, 1502, 1511, 1140, 1141, 1142, 1488, - 304, 1503, 1143, 1144, 1145, 1146, 1504, 488, 1138, 339, - 1509, 1510, 1512, 1515, 1516, 1517, 339, 339, 1514, 1518, - 1519, 1525, 1522, 1579, 1139, 1526, 1535, 339, 1536, 1537, - 339, 500, 1140, 1141, 1142, 1551, 1556, 1543, 1143, 1144, - 1145, 1146, 1544, 1557, 1558, 1559, 339, 1577, 1565, 1566, - 339, 1567, 1568, 456, 1580, 1589, 1590, 183, 184, 185, - 1591, 1569, 1570, 1595, 1574, 1602, 1601, 1616, 1651, 192, - 1619, 193, 100, 1622, 1627, 1628, 1630, 1765, 1633, 1634, - 1635, 1636, 1646, 500, 2042, 500, 1652, 1656, 500, 1657, - 1658, 1661, 1663, 1667, 1664, 1665, 1666, 888, 1670, 889, - 1138, 500, 1671, 500, 1672, 500, 1673, 500, 1674, 339, - 1675, 1138, 500, 1678, 1691, 1694, 1139, 500, 1552, 1697, - 2097, 1701, 1705, 1706, 1140, 1141, 1142, 1139, 339, 1715, - 1143, 1144, 1145, 1146, 1719, 1140, 1141, 1142, 1606, 1740, - 1736, 1143, 1144, 1145, 1146, 1882, 1743, 1885, 1747, 1888, - 1757, 1758, 1759, 1760, 1761, 304, 1763, 1610, 1764, 1898, - 1899, 1900, 1901, 1902, 1766, 7, 8, 1974, 1772, 1775, - 1786, 1809, 1779, 1780, 1788, 1789, 1795, 1138, 1790, 1796, - 500, 1798, 1807, 1799, 1819, 1801, 1803, 1718, 1828, 1833, - 1805, 1810, 1838, 1139, 1839, 1835, 339, 339, 339, 339, - 339, 1140, 1141, 1142, 1840, 1841, 1836, 1143, 1144, 1145, - 1146, 1837, 2099, 204, 1842, 1848, 1934, 339, 1855, 1861, - 1938, 1862, 1863, 2101, 1864, 1865, 1866, 1868, 1890, 1896, - 1912, 1913, 500, 500, 500, 500, 1914, 739, 24, 25, - 740, 27, 28, 741, 30, 742, 32, 33, 1918, 1920, - 1921, 1930, 35, 1933, 36, 1936, 1939, 1937, 1953, 41, - 42, 43, 44, 1941, 46, 47, 48, 1957, 1762, 488, - 51, 1954, 2057, 1970, 1971, 1986, 1991, 1993, 1987, 348, - 1996, 1997, 1989, 2000, 2001, 2004, 339, 2005, 2009, 2103, - 2040, 2034, 500, 2056, 2059, 2023, 2068, 487, 2071, 2074, - 2058, 2077, 2078, 2036, 2079, 2080, 367, 2082, 2014, 77, - 78, 79, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 2088, 2038, 2093, 339, - 476, 2060, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 2092, 487, 2098, 487, - 476, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 2100, 2114, 2102, 2112, 476, - 2117, 2119, 2121, 2123, 2129, 2144, 2145, 2065, 2066, 487, - 938, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 1138, 2146, 2147, 2148, 476, - 2149, 444, 445, 446, 448, 450, 1491, 2151, 1858, 1976, - 781, 1139, 105, 1506, 816, 115, 116, 117, 483, 1140, - 1141, 1142, 490, 7, 8, 1143, 1144, 1145, 1146, 1876, - 1629, 0, 2090, 0, 1975, 0, 497, 499, 502, 503, - 0, 505, 499, 507, 508, 0, 499, 511, 512, 513, - 514, 1917, 624, 0, 0, 0, 499, 0, 0, 0, - 0, 524, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 543, 0, 0, 0, - 476, 0, 2128, 0, 2131, 552, 553, 0, 0, 0, - 0, 0, 0, 0, 553, 739, 24, 25, 740, 27, - 28, 741, 30, 742, 32, 33, 0, 2135, 0, 0, - 35, 0, 36, 0, 2150, 1138, 0, 41, 42, 43, - 44, 0, 46, 47, 48, 0, 0, 0, 51, 0, - 0, 1139, 0, 0, 0, 619, 621, 499, 0, 1140, - 1141, 1142, 0, 0, 0, 1143, 1144, 1145, 1146, 631, - 632, 633, 0, 635, 0, 0, 0, 638, 639, 640, - 0, 0, 641, 0, 0, 0, 0, 77, 78, 79, - 0, 0, 0, 0, 500, 0, 488, 655, 0, 0, - 0, 0, 660, 662, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 669, 670, 0, 672, - 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, + 125, 1380, 700, 210, 702, 552, 732, 1382, 736, 349, + 739, 1751, 1752, 611, 857, 858, 1306, 305, 392, 717, + 1871, 587, 1070, 108, 1371, 235, 1631, 214, 353, 1502, + 1054, 455, 240, 1043, 1271, 360, 640, 240, 1373, 571, + 366, 204, 368, 614, 616, 235, 4, 915, 917, 774, + 1375, 919, 921, 618, 775, 590, 216, 1721, 1993, 560, + 561, 1377, 376, 388, 389, 1218, 308, 560, 561, 310, + 293, 311, 280, 281, 343, 1559, 1148, 1560, 276, 308, + 1513, 209, 282, 1561, 2002, 1562, 231, 560, 561, 283, + 308, 5, 1149, 232, 277, 278, 1148, 560, 561, 212, + 1150, 1151, 1152, 383, 2004, 1361, 1153, 1154, 1155, 1156, + 388, 389, 1149, 852, 1030, 652, 1190, 654, 560, 561, + 1150, 1151, 1152, 662, 213, 738, 1153, 1154, 1155, 1156, + 560, 561, 227, 215, 228, 562, 284, 286, 391, 292, + 208, 560, 561, 388, 389, 218, 1563, 730, 1564, 312, + 294, 225, 1030, -546, 295, 388, 389, 1801, 563, 734, + 296, 297, 298, 299, 379, -551, 380, 219, 361, 1372, + 365, 1996, 1997, 381, 612, 483, 300, 484, 220, 1055, + 1056, 1057, 1058, 1374, 381, 1479, 254, 306, 1379, 255, + 456, 457, 256, 1272, 1273, 1376, 560, 561, 778, 308, + 1632, 956, 102, 779, 615, 617, 1378, 960, 1576, 221, + 102, 491, 491, 573, 619, 1030, 633, 222, 634, 491, + 958, 226, 962, 460, 1071, 381, 1380, 308, 102, 343, + 1307, 1071, 1308, 350, 343, 393, 613, 394, 343, 395, + 588, 307, 236, 491, 204, 354, 343, 204, 223, 237, + 343, 343, 343, 343, 491, 1059, 241, 1044, 343, 343, + 343, 1049, 236, 367, 1867, 369, 343, 343, 343, 1048, + 916, 918, 343, 308, 920, 922, 126, 377, 217, 211, + 1994, 224, 1883, 1219, 378, 560, 561, 249, 1031, 560, + 561, 605, 1037, 606, 384, 385, 386, 387, 343, 343, + 343, 850, 851, 233, 499, 384, 385, 386, 387, 560, + 561, 234, 343, 343, 388, 389, 384, 385, 386, 387, + 272, 866, 301, 273, 302, 388, 389, 288, 459, 343, + 289, 343, 1036, 290, 1552, 1553, 388, 389, 384, 385, + 386, 731, 309, 384, 385, 386, 387, 374, 489, 493, + 384, 385, 386, 735, 375, 352, 238, 560, 561, 555, + 556, 388, 389, 388, 389, 574, 362, 564, 1402, 239, + 491, 572, 575, 859, 343, 343, 384, 385, 386, 387, + 519, 896, 315, 897, 2035, 316, 782, 343, 560, 561, + 939, 529, 384, 385, 386, 957, 388, 389, 384, 385, + 386, 961, 242, 231, 865, 948, 384, 385, 386, 387, + 1047, 783, 560, 561, 784, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 343, 491, 491, 1357, 491, + 491, 491, 491, 491, 560, 561, 243, 491, 491, 491, + 491, 491, 308, 1050, 308, 55, 56, 57, 58, 243, + 1381, 1884, 1885, 1148, 280, 281, 250, 1886, 671, 68, + 786, 343, 71, 784, 282, 560, 561, 740, 896, 1149, + 897, 291, 2041, 244, 898, 458, 245, 1150, 1151, 1152, + 792, 1718, 793, 1153, 1154, 1155, 1156, 492, 492, 526, + 527, 528, 246, 560, 561, 492, 533, 534, 535, 343, + 560, 561, 247, 500, 560, 561, 248, 660, 1148, 1814, + 560, 561, 781, 720, 1232, 252, 1816, 782, 1237, 492, + 1818, 728, 251, 896, 1149, 897, 1827, 560, 561, 932, + 492, 253, 1150, 1151, 1152, 257, 583, 584, 1153, 1154, + 1155, 1156, 258, 1828, 343, 343, 1888, 1889, 259, 352, + 596, 597, 1886, 701, 260, 703, 704, 705, 706, 707, + 708, 709, 630, 711, 712, 1959, 714, 715, 716, 264, + 718, 560, 561, 274, 722, 723, 724, 725, 726, 560, + 561, 275, 460, 460, 2127, 560, 561, 1829, 560, 561, + 343, 343, 343, 560, 561, 1830, 1744, 1135, 477, 478, + 479, 1831, 343, 343, 1832, 480, 491, 560, 561, 1958, + 560, 561, 828, 831, 834, 837, 560, 561, 279, 1148, + 1962, 343, 1012, 1961, 388, 389, 1964, 782, 343, 388, + 389, 465, 1973, 303, -549, 1149, 287, 560, 561, -550, + 855, 856, 304, 1150, 1151, 1152, 492, 343, 556, 1153, + 1154, 1155, 1156, 1974, 560, 561, 560, 561, 560, 561, + 313, 1897, 655, 1900, 656, 1903, 603, 343, 560, 561, + 1975, 204, 1976, 261, 1977, 1341, 262, 1343, 263, 1345, + 314, 1347, 1301, 1304, 2046, 560, 561, 792, 792, 971, + 317, 492, 492, 492, 492, 492, 492, 492, 492, 492, + 492, 2047, 492, 492, 318, 492, 492, 492, 492, 492, + 560, 561, 346, 492, 492, 492, 492, 492, 727, 319, + 729, 560, 561, 560, 561, 658, 2063, 659, 792, 343, + 798, 1965, 265, 343, 381, 266, 345, 2109, 267, 2110, + 268, 1380, 347, 908, 1380, 1032, 601, 1380, 602, 1038, + 603, 359, 896, 203, 897, 204, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 631, 478, 479, + 388, 389, 343, 1280, 480, 357, 343, 388, 389, 491, + -548, 348, 308, 1714, 491, 560, 561, -552, 343, 343, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 792, 771, 802, 772, 480, 773, + 1610, 1611, 620, 1039, 204, 621, 2021, 1745, 622, 343, + 623, 792, 792, 813, 925, 1148, 1480, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 1149, 1493, 343, 1148, 480, 358, 1473, 1474, 1150, + 1151, 1152, 1477, 1478, 1781, 1153, 1154, 1155, 1156, 1782, + 1149, 896, 355, 897, 1086, 1380, 995, 356, 1150, 1151, + 1152, 776, 363, 777, 1153, 1154, 1155, 1156, 373, 905, + 381, 421, 492, 475, 476, 477, 478, 479, 269, 422, + 423, 270, 480, 271, 2081, 343, 2084, 343, 2087, 428, + 343, 896, 439, 897, 2090, 435, 1020, 971, 954, 896, + 955, 897, 440, 343, 1022, 343, 1080, 343, 1426, 343, + 792, 1084, 1052, 441, 343, 1380, 442, 445, 1380, 343, + 446, 1380, 1138, 896, 1380, 897, 447, 2056, 792, 1144, + 463, 896, 896, 897, 897, 1159, 1462, 1465, 792, 482, + 1131, 343, 792, 550, 1132, 343, 2111, 464, 2132, 343, + 2134, 481, 2136, 1148, 792, 486, 1177, 491, 792, 508, + 1178, 1233, 792, 513, 1179, 1238, 1380, 524, 1380, 1149, + 1380, 1242, 1244, 792, 792, 1204, 1220, 1150, 1151, 1152, + 547, 523, 343, 1153, 1154, 1155, 1156, 491, 1148, 531, + 553, 1625, 343, 491, 491, 491, 792, 1485, 1240, 1702, + 1703, 1312, 532, 1313, 1149, 491, 1318, 491, 1319, 536, + 1618, 1619, 1150, 1151, 1152, 1622, 1623, 554, 1153, 1154, + 1155, 1156, 792, 792, 1354, 1403, 792, 792, 1404, 1405, + 1148, 308, 565, 566, 343, 343, 343, 343, 792, 792, + 1413, 1414, 792, 537, 1415, 492, 1149, 792, 1082, 1416, + 492, 792, 538, 1418, 1150, 1151, 1152, 567, 589, 491, + 1153, 1154, 1155, 1156, 792, 2113, 1419, 1295, 1296, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 343, 343, + 539, 343, 480, 343, 343, 540, 576, 343, 343, 343, + 343, 343, 343, 630, 1245, 1487, 343, 1488, 343, 792, + 2115, 1489, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 792, 792, 1490, 1491, + 480, 792, 1427, 1492, 1251, 792, 1656, 1535, 1657, 1148, + 1254, 1255, 1256, 1690, 792, 1691, 1730, 1787, 577, 1788, + 591, 792, 1260, 1805, 1261, 1149, 792, 1656, 1806, 1826, + 1656, 578, 1881, 1150, 1151, 1152, 1905, 1311, 1906, 1153, + 1154, 1155, 1156, 792, 1929, 1925, 1930, 592, 782, 1613, + 1933, 1614, 505, 1656, 1462, 1938, 1940, 510, 1465, 579, + 1941, 514, 488, 129, 580, 1242, 1244, 1656, 792, 1946, + 1954, 581, 792, 525, 1972, 593, 1300, 343, 343, 343, + 1787, 1462, 2038, 2043, 582, 1462, 1646, 2044, 586, 1295, + 1296, 381, 792, 343, 2059, 1362, 1363, 1364, 792, 792, + 2060, 2061, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 594, 792, 492, 2062, 169, 170, 171, 172, 595, + 792, 2117, 2064, 174, 175, 176, 598, 1656, 177, 2076, + 491, 491, 1892, 599, 375, 491, 491, 600, 792, 182, + 2118, 632, 636, 492, 770, 308, 2124, 643, 2125, 492, + 492, 492, 1656, 1481, 2146, 2156, 204, 2157, 642, 343, + 648, 492, 649, 492, 650, 651, 653, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 631, 478, + 479, 1016, 669, 343, 670, 480, 673, 352, 677, 343, + 674, 7, 8, 480, 741, 742, 203, 788, 807, 343, + 744, 789, 343, 343, 810, 814, 1148, 343, 343, 815, + 343, 816, 343, 817, 343, 492, 343, 343, 343, 821, + 822, 1860, 1149, 839, 841, 843, 847, 848, 849, 1277, + 1150, 1151, 1152, 876, 878, 343, 1153, 1154, 1155, 1156, + 185, 186, 187, 879, 881, 888, 889, 895, 910, 912, + 343, 1508, 194, 913, 195, 102, 914, 937, 343, 940, + 343, 949, 953, 745, 24, 25, 746, 27, 28, 747, + 30, 748, 32, 33, 966, 967, 388, 389, 35, 36, + 37, 1148, 38, 1243, 751, 998, -547, 43, 44, 45, + 46, 999, 48, 49, 50, 1000, 1027, 1149, 53, 1003, + 1005, 1006, 1007, 491, 491, 1150, 1151, 1152, 491, 491, + 1017, 1153, 1154, 1155, 1156, 1018, 1026, 1019, 2149, 1024, + 1025, 1028, 491, 1033, 1034, 1041, 1042, 1069, 491, 1090, + 1626, 1575, 1076, 1079, 1081, 1083, 1095, 79, 80, 81, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 308, 1087, 1091, 1092, 480, 1099, + 343, 1094, 1096, 1097, 1330, 1109, 1100, 844, 845, 1101, + 491, 1102, 1103, 343, 1104, 1612, 1861, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 1105, 1110, 2150, 1111, 480, 1116, 1118, 1120, 1121, + 1122, 1123, 1141, 1124, 1125, 1126, 492, 492, 884, 1127, + 1134, 492, 492, 885, 886, 887, 343, 343, 1142, 1392, + 1172, 352, 1187, 1195, 1639, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 1189, + 1210, 1211, 1908, 480, 923, 1212, 343, 460, 460, 1213, + 1197, 1664, 343, 1198, 1222, 1199, 1228, 1265, 1225, 1627, + 1226, 1229, 1230, 1234, 1235, 1629, 1669, 1267, 1270, 1148, + 945, 1275, 343, 1626, 1276, 1292, 1278, 1279, 1282, 1432, + 1290, 1291, 343, 1294, 1299, 1149, 1316, 1322, 1323, 1331, + 965, 1332, 343, 1150, 1151, 1152, 1335, 343, 1697, 1153, + 1154, 1155, 1156, 1336, 1339, 1475, 1355, 1661, 1340, 1704, + 1349, 1707, 1350, 1710, 1351, 1352, 1353, 1365, 1368, 1370, + 1369, 1393, 1383, 343, 1384, 1397, 1385, 1386, 1387, 1388, + 1722, 1723, 1724, 1725, 1726, 1728, 1389, 1390, 1391, 1394, + 1395, 1396, 1430, 1398, 1399, 1986, 343, 1400, 1423, 1428, + 1429, 1448, 1431, 1433, 1438, 1440, 1749, 1443, 1445, 1435, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 1447, 1766, 1769, 1770, 480, 492, + 492, 2151, 343, 1449, 492, 492, 1483, 1484, 1455, 2022, + 1458, 1469, 1501, 1461, 343, 1073, 1482, 1494, 492, 1077, + 1499, 1504, 1500, 1509, 492, 1511, 1510, 1512, 1514, 1520, + 1516, 1515, 1523, 1521, 343, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 1522, + 352, 343, 1524, 480, 491, 1526, 1527, 1528, 1529, 1530, + 1531, 1532, 1533, 1549, 308, 1536, 492, 1539, 1540, 1550, + 1557, 1551, 1558, 343, 1565, 1570, 1571, 1572, 1573, 1591, + 343, 343, 1603, 1604, 1579, 1580, 1133, 1581, 1582, 1583, + 1584, 343, 1588, 1594, 343, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 1593, + 343, 1609, 1616, 480, 343, 1848, 1630, 1615, 1642, 1605, + 460, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 1633, 1636, 1641, 1185, 480, + 1186, 1644, 1647, 1188, 1648, 1649, 1650, 1660, 1665, 1666, + 1670, 1337, 1671, 1672, 1675, 1677, 1200, 1678, 1201, 1679, + 1202, 1680, 1203, 1684, 1681, 1685, 1686, 1206, 1687, 1688, + 1689, 1692, 1209, 343, 1705, 1708, 1711, 1719, 1720, 1715, + 1729, 1733, 1754, 1757, 1896, 1761, 1899, 1750, 1902, 1771, + 1772, 1773, 343, 1774, 1775, 1779, 1777, 1778, 1912, 1913, + 1914, 1915, 1916, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 1780, 1786, 308, + 1789, 480, 1793, 1794, 1566, 1800, 1823, 1803, 1804, 1809, + 1810, 1821, 1812, 1802, 1813, 1250, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 1815, 1833, 1817, 1819, 480, 1948, 1824, 488, 129, 1952, + 343, 343, 343, 343, 343, 1842, 1847, 1849, 1850, 1851, + 1852, 1853, 1854, 1855, 1856, 206, 1869, 1862, 1875, 1876, + 1877, 343, 1878, 1879, 1880, 1904, 1882, 1283, 1284, 1285, + 1286, 1910, 1928, 1927, 1932, 1926, 1988, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 1934, 7, 8, 1935, + 169, 170, 171, 172, 1944, 1947, 1950, 2001, 174, 175, + 176, 2003, 1951, 177, 1953, 1955, 1967, 1968, 1971, 1984, + 492, 1985, 1620, 2000, 182, 2005, 2007, 2010, 2011, 2014, + 352, 2015, 2018, 2023, 2019, 2037, 2048, 2028, 2050, 1333, + 343, 2052, 2054, 2073, 2070, 2072, 2074, 2082, 2085, 2088, + 2091, 491, 2092, 2093, 2094, 1624, 2096, 2102, 2107, 2128, + 371, 2131, 2133, 2135, 2137, 2143, 2158, 2106, 2159, 745, + 24, 25, 746, 27, 28, 747, 30, 748, 32, 33, + 1732, 2160, 2161, 343, 35, 36, 37, 2162, 38, 2163, + 2165, 2071, 1503, 43, 44, 45, 46, 2112, 48, 49, + 50, 491, 787, 491, 53, 1990, 2079, 2080, 2114, 1872, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 2116, 185, 186, 187, 480, 107, + 2126, 1518, 117, 491, 118, 119, 824, 194, 1643, 195, + 102, 1890, 0, 79, 80, 81, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 448, 449, 450, 452, 454, + 0, 0, 0, 0, 0, 896, 0, 897, 0, 0, + 0, 0, 487, 0, 0, 0, 494, 0, 0, 0, + 0, 0, 0, 0, 0, 1989, 0, 0, 2104, 0, + 501, 503, 506, 507, 0, 509, 503, 511, 512, 0, + 503, 515, 516, 517, 518, 0, 520, 521, 0, 0, + 0, 0, 503, 0, 946, 0, 0, 530, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 549, 0, 0, 0, 480, 0, 2142, 0, + 2145, 558, 559, 0, 0, 0, 0, 0, 1776, 0, + 559, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 0, 0, 0, 0, 480, + 2164, 0, 0, 0, 0, 0, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 0, 625, 627, 503, 480, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 637, 638, 639, 0, 641, + 0, 0, 0, 644, 645, 646, 0, 0, 647, 0, + 0, 0, 0, 1587, 0, 0, 0, 492, 0, 0, + 0, 0, 0, 661, 0, 0, 0, 0, 666, 668, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 675, 676, 0, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, - 693, 0, 0, 0, 0, 0, 488, 2136, 488, 0, - 0, 0, 0, 0, 707, 0, 0, 0, 939, 0, - 713, 0, 715, 1794, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 785, 474, 475, 488, 0, - 0, 0, 476, 0, 0, 0, 744, 499, 0, 746, - 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, - 757, 758, 759, 760, 0, 0, 762, 763, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 0, 0, 0, 619, 476, 0, 0, 0, - 0, 790, 0, 1686, 0, 1687, 795, 0, 0, 0, - 0, 0, 0, 0, 803, 804, 0, 0, 500, 500, - 0, 0, 811, 812, 0, 0, 0, 817, 819, 822, - 825, 828, 830, 0, 832, 0, 834, 0, 499, 499, + 693, 694, 695, 696, 697, 698, 699, 492, 0, 492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 500, 0, 852, 853, 854, 444, - 445, 855, 0, 0, 0, 859, 860, 861, 862, 863, - 864, 865, 866, 867, 0, 0, 0, 872, 0, 874, - 875, 0, 0, 0, 499, 499, 499, 0, 0, 882, - 883, 884, 885, 886, 0, 0, 893, 893, 898, 899, - 0, 901, 0, 0, 903, 7, 8, 0, 0, 0, - 0, 0, 0, 0, 0, 499, 0, 0, 0, 0, - 0, 918, 920, 0, 922, 923, 0, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 499, 1138, 0, 0, 476, 885, 886, 0, 922, - 923, 0, 0, 0, 0, 1832, 0, 0, 1139, 0, - 956, 499, 0, 0, 0, 960, 1140, 1141, 1142, 0, - 0, 0, 1143, 1144, 1145, 1146, 0, 739, 24, 25, - 740, 27, 28, 741, 30, 742, 32, 33, 0, 0, - 0, 0, 35, 0, 36, 0, 620, 0, 0, 41, - 42, 43, 44, 0, 46, 47, 48, 0, 0, 0, - 51, 0, 0, 0, 0, 0, 500, 0, 0, 501, - 0, 0, 0, 0, 506, 0, 0, 0, 510, 0, - 1032, 0, 0, 1845, 0, 0, 1325, 0, 519, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, - 78, 79, 516, 0, 2137, 0, 1969, 0, 0, 0, - 0, 0, 1059, 1060, 0, 0, 499, 1066, 1067, 0, - 499, 1070, 536, 538, 540, 0, 500, 0, 545, 1077, - 0, 0, 920, 1080, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 500, 0, 0, 1096, - 0, 0, 0, 0, 0, 0, 579, 0, 0, 0, - 1104, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1126, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 499, 0, 0, 0, 476, - 0, 0, 1129, 1130, 0, 0, 0, 0, 1133, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 1161, 0, 476, 1163, 0, + 713, 0, 0, 0, 0, 0, 719, 0, 721, 1808, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 657, 658, 0, 0, 0, 0, 2041, 499, 0, 499, - 0, 0, 499, 666, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 499, 0, 499, 0, 499, - 0, 499, 0, 0, 0, 0, 499, 0, 0, 0, - 0, 499, 0, 0, 0, 0, 0, 1204, 0, 1206, - 1207, 704, 0, 0, 0, 0, 0, 0, 0, 0, - 1214, 0, 500, 500, 500, 500, 500, 0, 0, 745, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 0, 0, 0, 0, 476, 0, - 0, 0, 1236, 0, 7, 8, 0, 0, 0, 0, - 1237, 1238, 1239, 0, 499, 0, 0, 0, 0, 0, - 0, 0, 1242, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1249, 0, 0, 0, - 0, 1252, 0, 0, 0, 0, 0, 0, 0, 0, - 1256, 0, 0, 0, 0, 0, 1264, 0, 0, 0, - 836, 837, 500, 0, 0, 0, 499, 499, 499, 499, - 0, 0, 1278, 0, 0, 2022, 739, 24, 25, 740, - 27, 28, 741, 30, 742, 32, 33, 0, 0, 0, - 0, 35, 0, 36, 0, 7, 8, 0, 41, 42, - 43, 44, 0, 46, 47, 48, 877, 878, 879, 51, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 0, 0, 499, 0, 476, 0, - 0, 0, 0, 0, 0, 0, 0, 915, 1330, 0, - 1332, 0, 1334, 0, 1336, 0, 0, 0, 77, 78, - 79, 0, 0, 0, 0, 0, 7, 8, 0, 0, - 0, 0, 0, 937, 0, 0, 1355, 739, 24, 25, - 740, 27, 28, 741, 30, 742, 32, 33, 0, 0, - 0, 0, 35, 957, 36, 0, 0, 0, 0, 41, - 42, 43, 44, 0, 46, 47, 48, 0, 0, 1389, - 51, 0, 0, 0, 0, 0, 0, 0, 1394, 1395, - 0, 1396, 1397, 0, 1398, 1399, 1400, 0, 0, 1127, - 0, 0, 1405, 0, 0, 0, 0, 0, 739, 24, - 25, 740, 27, 28, 741, 30, 742, 32, 33, 77, - 78, 79, 0, 35, 0, 36, 0, 0, 0, 1427, - 41, 42, 43, 44, 1432, 46, 47, 48, 0, 7, - 8, 51, 0, 1021, 0, 0, 0, 1027, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 0, 0, 0, 0, 476, 0, 1065, 0, - 0, 0, 1069, 0, 0, 0, 1474, 0, 0, 0, - 77, 78, 79, 0, 0, 0, 0, 1483, 1484, 0, - 1150, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1493, 1495, 0, 0, 0, 0, 0, 0, - 0, 739, 24, 25, 740, 27, 28, 741, 30, 742, - 32, 33, 0, 0, 0, 0, 35, 0, 36, 0, - 0, 1105, 0, 41, 42, 43, 44, 1123, 46, 47, - 48, 0, 0, 0, 51, 0, 0, 0, 0, 0, - 0, 1205, 1540, 1541, 1542, 0, 0, 0, 0, 0, - 0, 7, 8, 1553, 0, 1555, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1560, 0, 0, 0, - 0, 0, 0, 77, 78, 79, 0, 0, 499, 1175, - 0, 1176, 0, 1575, 1178, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1190, 0, 1191, - 0, 1192, 0, 1193, 0, 0, 0, 0, 1196, 1592, - 1593, 1594, 0, 1199, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 739, 24, 25, 740, 27, 28, 741, - 30, 742, 32, 33, 0, 0, 0, 0, 35, 0, - 36, 1614, 0, 0, 1211, 41, 42, 43, 44, 0, - 46, 47, 48, 1217, 0, 0, 51, 1221, 0, 0, - 0, 1226, 0, 0, 0, 1626, 0, 0, 0, 624, - 0, 0, 0, 0, 0, 0, 1240, 0, 0, 1639, - 0, 0, 0, 0, 1645, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 77, 78, 79, 0, 1653, - 1654, 0, 0, 0, 1243, 0, 1659, 1660, 0, 0, - 0, 1662, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1669, 0, 0, 0, 0, 0, 1273, 1274, - 1275, 1276, 499, 499, 1681, 0, 1682, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1699, 0, - 0, 0, 7, 8, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1344, 0, 499, 0, - 0, 1717, 0, 0, 0, 0, 0, 0, 1720, 1721, - 1722, 1723, 1724, 1725, 1726, 0, 0, 0, 1321, 0, - 1304, 1305, 0, 1307, 1734, 1310, 1311, 0, 0, 1314, - 1315, 1316, 1317, 0, 0, 0, 0, 0, 1322, 0, - 0, 0, 0, 0, 1754, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 739, 24, 25, 740, 27, 28, - 741, 30, 742, 32, 33, 0, 0, 1769, 1770, 35, - 0, 36, 0, 0, 0, 1776, 41, 42, 43, 44, - 0, 46, 47, 48, 0, 0, 0, 51, 0, 7, - 8, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 625, 474, 475, 0, 0, 0, 0, 476, - 0, 0, 0, 1797, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 624, 77, 78, 79, 0, - 0, 1811, 0, 0, 0, 0, 0, 1408, 1409, 1410, - 619, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1422, 0, 1829, 0, 1830, 0, 0, - 499, 739, 24, 25, 740, 27, 28, 741, 30, 742, - 32, 33, 0, 0, 0, 0, 35, 1844, 36, 0, - 0, 0, 0, 41, 42, 43, 44, 0, 46, 47, - 48, 0, 0, 0, 51, 1850, 0, 1955, 0, 0, - 1854, 0, 0, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 1486, - 499, 476, 0, 0, 0, 0, 0, 1881, 1728, 1884, - 1729, 1887, 0, 77, 78, 79, 0, 0, 0, 0, - 499, 933, 0, 1507, 0, 0, 0, 0, 0, 1513, - 1903, 1904, 1905, 1906, 1907, 1908, 0, 1520, 0, 0, - 1523, 1524, 0, 0, 0, 1527, 1528, 1045, 1529, 0, - 1530, 0, 1531, 0, 1532, 1533, 1534, 0, 1922, 1923, - 0, 0, 0, 1925, 0, 0, 0, 0, 0, 0, - 0, 1195, 0, 1554, 0, 1931, 0, 0, 0, 0, - 1573, 0, 0, 0, 2043, 0, 1942, 0, 1564, 0, - 0, 0, 0, 0, 0, 0, 1572, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 785, 474, - 475, 0, 0, 0, 0, 476, 0, 0, 0, 0, - 0, 0, 1973, 0, 0, 0, 0, 0, 1645, 0, - 0, 0, 0, 0, 0, 0, 0, 1984, 0, 0, + 0, 0, 750, 503, 0, 752, 753, 754, 755, 756, + 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, + 0, 0, 768, 769, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 0, 0, + 0, 625, 480, 0, 0, 0, 0, 796, 0, 0, + 0, 0, 801, 0, 0, 0, 0, 0, 0, 1693, + 1694, 0, 811, 812, 0, 0, 0, 0, 0, 0, + 819, 820, 0, 0, 0, 825, 827, 830, 833, 836, + 838, 0, 840, 0, 842, 0, 503, 503, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 0, + 0, 0, 0, 480, 860, 861, 862, 448, 449, 863, + 0, 0, 0, 867, 868, 869, 870, 871, 872, 873, + 874, 875, 0, 0, 0, 880, 0, 882, 883, 0, + 0, 0, 503, 503, 503, 0, 0, 890, 891, 892, + 893, 894, 0, 0, 901, 901, 906, 907, 0, 909, + 0, 0, 911, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 503, 0, 1846, 0, 0, 0, 926, + 928, 0, 930, 931, 0, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 503, + 0, 0, 0, 480, 893, 894, 0, 930, 931, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 964, 503, + 0, 0, 0, 968, 0, 0, 0, 0, 127, 370, + 0, 0, 0, 0, 130, 131, 132, 0, 0, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 0, 0, 0, 0, 0, 1845, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 165, 166, + 167, 168, 0, 0, 0, 0, 173, 0, 1040, 0, + 0, 0, 0, 0, 0, 0, 0, 178, 179, 180, + 0, 0, 0, 0, 0, 181, 1983, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 0, + 1067, 1068, 0, 480, 503, 1074, 1075, 1891, 503, 1078, + 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, + 928, 1088, 0, 0, 0, 0, 0, 1911, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1995, 0, 0, 1999, 0, 0, 2003, 0, 0, - 0, 2006, 0, 0, 0, 0, 499, 499, 499, 499, - 499, 2016, 2017, 2018, 2019, 2020, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2026, 0, 0, 2028, 0, - 0, 0, 0, 0, 0, 1413, 0, 0, 1637, 0, + 1114, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 0, 0, 0, 0, 480, + 0, 0, 0, 0, 0, 503, 0, 0, 0, 0, + 0, 0, 1139, 1140, 0, 0, 184, 0, 1143, 0, + 188, 0, 0, 0, 189, 190, 191, 192, 193, 0, + 0, 0, 102, 0, 0, 1171, 0, 0, 1173, 0, + 0, 0, 0, 0, 0, 504, 196, 197, 0, 0, + 504, 198, 0, 0, 504, 0, 333, 503, 0, 503, + 0, 202, 503, 548, 0, 0, 504, 0, 0, 0, + 0, 0, 0, 0, 0, 503, 0, 503, 0, 503, + 0, 503, 0, 0, 0, 0, 503, 0, 0, 0, + 0, 503, 2055, 0, 0, 0, 0, 1214, 0, 1216, + 1217, 0, 0, 2024, 2025, 2026, 2027, 2029, 0, 0, + 1224, 0, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1246, 0, 0, 626, 0, 504, 0, 0, + 1247, 1248, 1249, 0, 503, 0, 0, 0, 0, 0, + 0, 0, 1252, 7, 8, 0, 0, 0, 0, 0, + 1931, 630, 0, 0, 0, 0, 1259, 0, 0, 0, + 0, 1262, 0, 0, 0, 0, 0, 0, 0, 0, + 1266, 0, 0, 2095, 0, 0, 1274, 0, 0, 0, + 0, 0, 0, 522, 0, 0, 503, 503, 503, 503, + 0, 0, 1288, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 542, 544, 546, 2036, 0, 0, 551, + 0, 0, 0, 0, 0, 745, 24, 25, 746, 27, + 28, 747, 30, 748, 32, 33, 0, 0, 0, 0, + 35, 36, 37, 0, 38, 0, 0, 585, 0, 43, + 44, 45, 46, 0, 48, 49, 50, 0, 503, 0, + 53, 0, 0, 0, 0, 0, 0, 504, 0, 0, + 1342, 0, 1344, 0, 1346, 0, 1348, 0, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 1367, 79, + 80, 81, 0, 0, 0, 626, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 0, 663, 664, 0, 480, 0, 0, 0, 0, 0, + 0, 1401, 0, 1051, 672, 0, 0, 0, 0, 0, + 1406, 1407, 0, 1408, 1409, 0, 1410, 1411, 1412, 0, + 504, 504, 0, 0, 1417, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 791, 478, 479, 0, + 947, 0, 710, 480, 0, 0, 0, 0, 0, 0, + 0, 1439, 0, 0, 0, 0, 1444, 7, 8, 0, + 0, 0, 0, 0, 0, 0, 504, 504, 504, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 902, 904, + 0, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 0, 0, 504, 1486, 480, + 0, 0, 0, 0, 929, 0, 0, 0, 0, 1495, + 1496, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 504, 1505, 1507, 0, 0, 0, 745, + 24, 25, 746, 27, 28, 747, 30, 748, 32, 33, + 0, 0, 0, 504, 35, 36, 37, 0, 38, 0, + 0, 0, 0, 43, 44, 45, 46, 0, 48, 49, + 50, 0, 0, 0, 53, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1554, 1555, 1556, 0, + 0, 7, 8, 0, 0, 0, 0, 1567, 0, 1569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1649, 0, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 0, 1679, 1680, 0, 0, 2064, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 499, 476, 2083, 2084, - 2085, 2086, 2087, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 1486, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 925, 0, 0, 0, 0, - 0, 0, 2115, 2116, 0, 0, 0, 0, 1727, 0, - 0, 0, 0, 2124, 2125, 2126, 2127, 0, 1739, 0, - 0, 0, 227, 228, 0, 0, 0, 0, 1746, 0, - 0, 0, 0, 1751, 0, 0, 0, 0, 964, 965, - 966, 967, 968, 969, 970, 971, 972, 973, 974, 0, - 976, 977, 978, 979, 980, 981, 982, 0, 0, 1771, - 986, 988, 989, 0, 0, 0, 993, 994, 0, 996, - 0, 0, 0, 0, 1001, 1002, 1003, 0, 1005, 0, - 0, 0, 1486, 0, 0, 1013, 1015, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 1038, 0, 476, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1808, 0, - 0, 0, 0, 0, 378, 0, 0, 0, 0, 0, - 0, 0, 1831, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 0, 0, - 0, 420, 421, 422, 423, 0, 425, 426, 427, 428, - 429, 430, 0, 0, 432, 0, 0, 0, 0, 0, - 433, 434, 0, 0, 0, 0, 439, 440, 0, 1486, - 0, 0, 1877, 0, 0, 0, 1859, 1860, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1486, 0, 0, - 0, 0, 1897, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1893, 0, 0, 125, - 126, 127, 0, 0, 0, 128, 129, 130, 0, 0, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 0, 0, 0, 1183, 0, 0, 0, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 0, 1935, - 0, 172, 173, 174, 0, 0, 175, 0, 176, 177, - 178, 0, 0, 0, 0, 0, 179, 180, 1952, 0, - 0, 0, 0, 0, 0, 0, 0, 598, 0, 0, - 601, 602, 603, 604, 0, 0, 356, 127, 0, 0, + 1574, 0, 0, 79, 80, 81, 0, 0, 0, 0, + 0, 0, 503, 0, 0, 0, 0, 1589, 0, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 0, 0, 0, 0, 480, 0, 0, + 0, 0, 0, 1606, 1607, 1608, 1108, 0, 504, 360, + 129, 0, 504, 745, 24, 25, 746, 27, 28, 747, + 30, 748, 32, 33, 929, 1089, 0, 0, 35, 36, + 37, 0, 38, 0, 1136, 1628, 0, 43, 44, 45, + 46, 0, 48, 49, 50, 0, 0, 0, 53, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 0, 1640, + 0, 0, 169, 170, 171, 172, 0, 0, 0, 0, + 174, 175, 176, 1653, 0, 177, 0, 0, 1659, 504, + 0, 0, 0, 0, 0, 0, 182, 79, 80, 81, + 0, 0, 0, 1667, 1668, 0, 0, 0, 0, 0, + 1673, 1674, 0, 0, 0, 1676, 1029, 0, 0, 0, + 1035, 0, 0, 0, 0, 0, 0, 0, 1683, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 503, 503, + 1695, 504, 1696, 504, 0, 0, 504, 0, 0, 0, + 0, 0, 0, 0, 1713, 0, 0, 0, 0, 504, + 630, 504, 0, 504, 0, 504, 0, 0, 1137, 0, + 504, 0, 0, 0, 503, 504, 0, 1731, 0, 0, + 7, 8, 0, 0, 1734, 1735, 1736, 1737, 1738, 1739, + 1740, 0, 0, 0, 0, 0, 0, 185, 186, 187, + 1748, 0, 0, 0, 0, 0, 1115, 0, 0, 194, + 0, 195, 102, 0, 0, 0, 0, 0, 0, 0, + 1768, 0, 7, 8, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 504, 0, + 0, 0, 480, 1783, 1784, 0, 941, 0, 0, 0, + 657, 1790, 745, 24, 25, 746, 27, 28, 747, 30, + 748, 32, 33, 0, 0, 0, 0, 35, 36, 37, + 0, 38, 0, 0, 0, 0, 43, 44, 45, 46, + 0, 48, 49, 50, 0, 0, 0, 53, 0, 1811, + 504, 504, 504, 504, 745, 24, 25, 746, 27, 28, + 747, 30, 748, 32, 33, 1053, 0, 1825, 0, 35, + 36, 37, 0, 38, 0, 0, 625, 0, 43, 44, + 45, 46, 0, 48, 49, 50, 79, 80, 81, 53, + 0, 1843, 0, 1844, 0, 0, 503, 0, 1227, 0, + 0, 0, 1231, 0, 0, 0, 1236, 0, 0, 0, + 0, 0, 504, 1858, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 791, 478, 479, 79, 80, + 81, 1864, 480, 0, 0, 0, 1868, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1253, + 0, 0, 0, 0, 0, 0, 503, 1160, 0, 0, + 0, 0, 0, 1895, 0, 1898, 0, 1901, 0, 0, + 0, 0, 0, 0, 0, 0, 503, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1917, 1918, 1919, 1920, + 1921, 1922, 0, 0, 0, 0, 0, 0, 0, 1215, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 1936, 1937, 0, 0, 480, 1939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 629, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2010, 2011, - 2012, 2013, 2015, 0, 0, 0, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 0, 0, 0, 0, 167, - 168, 169, 170, 0, 0, 0, 0, 172, 173, 174, - 0, 0, 175, 0, 0, 0, 0, 1486, 181, 0, - 0, 0, 0, 180, 0, 182, 183, 184, 185, 186, - 1277, 0, 0, 187, 188, 189, 190, 191, 192, 0, - 193, 100, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 194, 195, 0, 0, 0, - 196, 0, 0, 1299, 1300, 197, 0, 198, 2081, 199, - 200, 0, 201, 0, 202, 737, 0, 0, 0, 0, - 125, 316, 0, 0, 0, 0, 128, 129, 130, 0, - 0, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 318, 319, 320, 321, 322, 0, - 0, 0, 183, 184, 185, 0, 0, 0, 0, 1486, - 163, 164, 165, 166, 192, 0, 193, 100, 171, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, - 177, 178, 0, 0, 0, 0, 0, 179, 0, 0, - 0, 323, 0, 0, 324, 0, 0, 325, 0, 326, - 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 327, - 0, 0, 0, 0, 0, 0, 53, 54, 55, 56, - 57, 0, 0, 59, 60, 61, 62, 63, 0, 0, - 66, 0, 0, 69, 0, 0, 1434, 0, 0, 0, - 0, 0, 1438, 1439, 1440, 1441, 1442, 0, 1445, 0, - 1447, 1448, 0, 1451, 1454, 0, 0, 1458, 1459, 1460, - 0, 0, 0, 0, 1464, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, - 186, 0, 0, 0, 187, 188, 189, 190, 191, 0, - 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 562, 1713, 0, 0, - 0, 196, 0, 0, 0, 0, 564, 0, 0, 0, - 0, 200, 0, 279, 622, 125, 316, 0, 0, 0, - 0, 128, 129, 130, 0, 0, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 318, - 319, 320, 321, 322, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 163, 164, 165, 166, 0, - 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 176, 177, 178, 1578, 0, 0, - 0, 0, 179, 0, 0, 0, 323, 0, 0, 324, - 0, 0, 325, 1588, 326, 0, 0, 0, 0, 0, - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1603, 0, 0, 0, 327, 1607, 0, 0, 0, 0, - 0, 53, 54, 55, 56, 57, 0, 0, 59, 60, - 61, 62, 63, 0, 0, 66, 0, 0, 69, 0, - 0, 0, 0, 0, 0, 0, 0, 1620, 1621, 0, - 0, 1623, 1624, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 0, 0, 0, 0, 0, 1879, 0, - 1880, 182, 0, 0, 0, 186, 0, 0, 0, 187, - 188, 189, 190, 191, 484, 127, 0, 100, 0, 0, + 0, 1945, 0, 0, 0, 1314, 1315, 0, 1317, 0, + 1320, 1321, 1956, 1205, 1324, 1325, 1326, 1327, 1328, 1329, + 0, 0, 0, 0, 0, 1334, 0, 0, 0, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 0, 0, 0, 0, 480, 1987, 0, + 0, 0, 0, 0, 1659, 7, 8, 0, 0, 0, + 0, 0, 0, 1998, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2009, 0, 0, + 2013, 0, 0, 2017, 0, 0, 0, 2020, 0, 1425, + 0, 0, 503, 503, 503, 503, 503, 2030, 2031, 2032, + 2033, 2034, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2040, 0, 0, 2042, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1420, 1421, 1422, 745, 24, 25, + 746, 27, 28, 747, 30, 748, 32, 33, 0, 0, + 1434, 0, 35, 36, 37, 0, 38, 0, 0, 0, + 0, 43, 44, 45, 46, 0, 48, 49, 50, 0, + 0, 0, 53, 0, 2078, 0, 504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 194, 498, 0, 0, 0, 196, 0, 0, 0, - 0, 329, 0, 0, 0, 0, 200, 0, 0, 622, - 0, 0, 0, 0, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 0, 0, 0, 0, 167, 168, 169, - 170, 0, 0, 0, 0, 172, 173, 174, 0, 0, - 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 180, 0, 0, 0, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 1741, 1742, 0, 476, 1744, 1745, 0, 0, 0, 0, - 1748, 1749, 1043, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 360, 127, 0, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 0, 0, 0, 476, 0, 0, 0, 0, 0, 0, - 1253, 1254, 1098, 0, 0, 0, 1258, 1259, 0, 0, - 0, 0, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 0, 0, 0, 0, 167, 168, 169, 170, 0, - 183, 184, 185, 172, 173, 174, 0, 0, 175, 0, - 0, 0, 192, 0, 193, 100, 0, 0, 0, 180, - 0, 0, 0, 0, 0, 0, 0, 125, 316, 127, - 0, 0, 0, 128, 129, 130, 1821, 1822, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 318, 319, 320, 321, 322, 0, 0, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 0, 0, 0, 172, - 173, 174, 0, 0, 175, 0, 176, 177, 178, 0, - 0, 0, 0, 0, 179, 180, 0, 0, 323, 0, - 0, 324, 0, 0, 325, 0, 326, 0, 183, 184, - 185, 0, 34, 0, 0, 0, 0, 0, 0, 0, - 192, 0, 193, 0, 0, 0, 327, 0, 0, 0, - 0, 0, 0, 53, 54, 55, 56, 57, 0, 0, - 59, 60, 61, 62, 63, 0, 0, 66, 0, 0, - 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1424, 1425, 0, 0, 0, 1429, 1430, 0, 0, 0, - 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 0, 0, 0, 0, 476, - 0, 0, 0, 182, 183, 184, 185, 186, 1153, 0, - 0, 187, 188, 189, 190, 191, 192, 0, 193, 100, + 0, 0, 503, 0, 2097, 2098, 2099, 2100, 2101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 194, 328, 0, 0, 0, 196, 0, - 0, 0, 0, 329, 0, 125, 316, 127, 200, 0, - 330, 128, 129, 130, 0, 0, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 318, - 319, 320, 321, 322, 0, 0, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 0, 0, 0, 172, 173, 174, - 0, 0, 175, 0, 176, 177, 178, 0, 0, 0, - 0, 0, 179, 180, 0, 0, 323, 0, 0, 324, - 0, 0, 325, 0, 326, 0, 0, 0, 0, 0, - 34, 0, 127, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 327, 0, 0, 0, 0, 0, - 0, 53, 54, 55, 56, 57, 0, 0, 59, 60, - 61, 62, 63, 0, 0, 66, 0, 0, 69, 0, - 0, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 0, 0, 0, 0, 167, 168, 169, 170, 0, 2105, - 0, 0, 172, 173, 174, 0, 0, 175, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, - 0, 182, 183, 184, 185, 186, 0, 0, 0, 187, - 188, 189, 190, 191, 192, 0, 193, 100, 0, 0, + 0, 79, 80, 81, 0, 0, 1498, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 0, 0, 0, 0, 480, 0, 0, 2129, 2130, + 1519, 0, 0, 0, 0, 0, 1525, 0, 0, 2138, + 2139, 2140, 2141, 0, 0, 0, 1534, 0, 0, 1537, + 1538, 0, 0, 0, 1541, 1542, 0, 1543, 0, 1544, + 0, 1545, 0, 1546, 1547, 1548, 0, 0, 0, 0, + 0, 0, 1221, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1568, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 1578, 0, 0, + 0, 480, 0, 0, 933, 1586, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 230, 0, 0, 0, 0, + 0, 0, 504, 504, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 0, 0, + 0, 0, 480, 0, 896, 0, 897, 972, 973, 974, + 975, 976, 977, 978, 979, 980, 981, 982, 504, 984, + 985, 986, 987, 988, 989, 990, 0, 0, 0, 994, + 996, 997, 0, 0, 0, 1001, 1002, 0, 1004, 0, + 0, 0, 0, 1009, 1010, 1011, 0, 1013, 0, 0, + 0, 0, 0, 0, 1021, 1023, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1651, 0, 0, + 7, 8, 1046, 0, 0, 0, 0, 0, 382, 0, + 1663, 0, 0, 0, 0, 0, 0, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 0, 0, 0, 424, 425, 426, 427, 0, + 429, 430, 431, 432, 433, 434, 0, 0, 436, 0, + 0, 0, 0, 0, 437, 438, 0, 0, 0, 0, + 443, 444, 745, 24, 25, 746, 27, 28, 747, 30, + 748, 32, 33, 1498, 0, 0, 0, 35, 36, 37, + 626, 38, 0, 0, 0, 0, 43, 44, 45, 46, + 0, 48, 49, 50, 0, 0, 0, 53, 0, 1741, + 504, 0, 0, 0, 0, 0, 0, 0, 0, 1753, + 0, 0, 0, 0, 0, 0, 0, 1859, 0, 1760, + 0, 0, 0, 0, 1765, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 79, 80, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 194, 328, 0, 0, 0, 196, 0, 0, 0, - 0, 329, 0, 125, 316, 317, 200, 0, 1750, 128, - 129, 130, 0, 0, 131, 132, 133, 134, 135, 136, + 1785, 0, 0, 0, 0, 0, 0, 1193, 0, 0, + 504, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1498, 0, 0, 0, 0, 0, 0, + 504, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 604, 0, 0, 607, 608, 609, 610, + 0, 0, 0, 0, 0, 0, 0, 1356, 0, 1822, + 0, 0, 0, 0, 0, 0, 635, 0, 0, 0, + 0, 0, 0, 0, 0, 127, 320, 0, 0, 0, + 0, 130, 131, 132, 0, 0, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 318, 319, 320, - 321, 322, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 163, 164, 165, 166, 183, 184, 185, - 0, 171, 0, 0, 0, 0, 0, 7, 8, 192, - 0, 193, 176, 177, 178, 0, 0, 0, 0, 0, - 179, 0, 0, 0, 323, 0, 0, 324, 0, 0, - 325, 0, 326, 0, 0, 0, 0, 0, 34, 0, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 322, + 323, 324, 325, 326, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 165, 166, 167, 168, 0, + 1498, 0, 0, 173, 0, 0, 0, 1873, 1874, 0, + 0, 0, 0, 0, 178, 179, 180, 0, 1498, 0, + 0, 1287, 181, 0, 0, 0, 327, 0, 0, 328, + 0, 0, 329, 0, 330, 0, 0, 1907, 0, 0, + 34, 0, 0, 0, 0, 0, 504, 504, 504, 504, + 504, 743, 0, 0, 1309, 1310, 331, 0, 0, 0, + 0, 0, 0, 55, 56, 57, 58, 59, 0, 0, + 61, 62, 63, 64, 65, 0, 0, 68, 0, 0, + 71, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 0, 0, 0, 0, 480, + 1949, 0, 0, 0, 0, 0, 1700, 0, 1701, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1966, + 0, 0, 0, 184, 0, 0, 0, 188, 0, 0, + 0, 189, 190, 191, 192, 193, 504, 129, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 327, 0, 0, 0, 0, 0, 0, 53, - 54, 55, 56, 57, 0, 0, 59, 60, 61, 62, - 63, 0, 0, 66, 0, 0, 69, 0, 0, 739, - 24, 25, 740, 27, 28, 741, 30, 742, 32, 33, - 0, 0, 0, 0, 35, 0, 36, 0, 0, 0, - 0, 41, 42, 43, 44, 0, 46, 47, 48, 0, - 0, 0, 51, 0, 0, 0, 0, 0, 0, 182, - 0, 0, 0, 186, 0, 0, 0, 187, 188, 189, - 190, 191, 0, 0, 0, 100, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, - 328, 77, 78, 79, 196, 0, 0, 0, 0, 329, - 0, 125, 366, 127, 200, 0, 330, 128, 129, 130, - 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 0, 0, 0, 7, 8, - 0, 0, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 0, 0, 0, 172, 173, 174, 0, 0, 175, 0, - 176, 177, 178, 0, 0, 0, 0, 0, 179, 180, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 0, 0, 0, 0, 476, 0, - 0, 0, 0, 0, 0, 0, 0, 1186, 0, 0, - 739, 24, 25, 740, 27, 28, 741, 30, 742, 32, - 33, 0, 0, 0, 0, 35, 0, 36, 0, 0, - 0, 0, 41, 42, 43, 44, 0, 46, 47, 48, - 0, 0, 0, 51, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 0, 0, - 943, 0, 476, 0, 0, 0, 0, 0, 0, 0, - 0, 1229, 0, 0, 0, 0, 0, 182, 183, 184, - 185, 186, 77, 78, 79, 187, 188, 189, 190, 191, - 192, 0, 193, 100, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 194, 195, 0, - 0, 0, 196, 0, 0, 0, 0, 329, 0, 125, - 316, 1563, 200, 0, 1494, 128, 129, 130, 0, 0, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 318, 319, 320, 321, 322, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, - 164, 165, 166, 0, 0, 0, 0, 171, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 176, 177, - 178, 0, 0, 0, 0, 0, 179, 0, 0, 0, - 323, 0, 0, 324, 0, 0, 325, 0, 326, 0, - 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 327, 0, - 0, 0, 0, 0, 0, 53, 54, 55, 56, 57, - 0, 0, 59, 60, 61, 62, 63, 0, 0, 66, - 0, 0, 69, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 0, 0, 0, 0, 0, 0, 0, - 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 182, 0, 0, 0, 186, - 0, 0, 0, 187, 188, 189, 190, 191, 0, 0, - 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 194, 328, 0, 0, 0, - 196, 0, 0, 0, 0, 329, 0, 125, 366, 127, - 200, 0, 330, 128, 129, 130, 0, 0, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 0, 0, 0, 0, 0, 0, 0, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 0, 0, 0, 172, - 173, 174, 0, 0, 175, 0, 176, 177, 178, 0, - 125, 366, 127, 0, 179, 180, 128, 129, 130, 0, - 0, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 0, 0, 0, 0, 0, 0, - 0, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, - 0, 0, 172, 173, 174, 0, 0, 175, 0, 176, - 177, 178, 0, 0, 0, 0, 0, 179, 180, 0, - 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 0, 0, 0, 0, 476, - 0, 0, 0, 182, 183, 184, 185, 186, 1684, 0, - 0, 187, 188, 189, 190, 191, 192, 0, 193, 100, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 194, 195, 0, 0, 0, 196, 0, - 0, 0, 0, 329, 0, 0, 0, 0, 200, 0, - 1733, 0, 0, 0, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 0, 0, - 0, 0, 476, 0, 0, 0, 182, 183, 184, 185, - 186, 1703, 0, 0, 187, 188, 189, 190, 191, 192, - 0, 193, 100, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 194, 195, 0, 0, - 0, 196, 0, 0, 0, 0, 329, 0, 125, 316, - 0, 200, 0, 1753, 128, 129, 130, 0, 0, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 0, 0, 0, 568, 1727, 0, 0, 0, 198, 0, + 0, 0, 0, 570, 0, 0, 0, 0, 202, 0, + 283, 628, 0, 0, 0, 0, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 0, 0, 0, 0, 169, + 170, 171, 172, 0, 0, 0, 0, 174, 175, 176, + 0, 0, 177, 0, 0, 0, 0, 0, 1498, 1446, + 0, 0, 0, 182, 0, 1450, 1451, 1452, 1453, 1454, + 0, 1457, 0, 1459, 1460, 0, 1463, 1466, 0, 0, + 1470, 1471, 1472, 0, 0, 0, 0, 1476, 0, 0, + 127, 128, 129, 0, 0, 0, 130, 131, 132, 0, + 0, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 318, 319, 320, 321, 322, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, - 165, 166, 0, 0, 0, 0, 171, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 176, 177, 178, - 0, 0, 0, 0, 0, 179, 0, 0, 0, 323, - 0, 0, 324, 0, 0, 325, 0, 326, 0, 0, - 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 327, 0, 0, - 0, 0, 0, 0, 53, 54, 55, 56, 57, 0, - 0, 59, 60, 61, 62, 63, 0, 0, 66, 0, - 0, 69, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, - 476, 0, 0, 0, 0, 0, 0, 0, 0, 1781, + 152, 153, 154, 155, 0, 0, 0, 7, 8, 0, + 0, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 0, + 0, 0, 174, 175, 176, 0, 0, 177, 0, 178, + 179, 180, 0, 0, 185, 186, 187, 181, 182, 0, + 1498, 0, 0, 0, 0, 0, 194, 0, 195, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 0, 0, 0, 0, 480, 0, 745, + 24, 25, 746, 27, 28, 747, 30, 748, 32, 33, + 0, 0, 0, 0, 35, 36, 37, 0, 38, 0, + 0, 0, 1592, 43, 44, 45, 46, 0, 48, 49, + 50, 0, 0, 0, 53, 0, 0, 0, 1602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 182, 0, 0, 0, 186, 0, - 0, 0, 187, 188, 189, 190, 191, 0, 0, 0, - 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 194, 328, 0, 0, 0, 196, - 0, 0, 0, 0, 329, 0, 125, 316, 0, 200, - 0, 330, 128, 129, 130, 0, 0, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 318, 319, 320, 321, 322, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, - 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 176, 177, 178, 0, 0, - 0, 0, 0, 179, 0, 0, 0, 323, 0, 0, - 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, - 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 327, 0, 0, 0, 0, - 0, 0, 53, 54, 55, 56, 57, 0, 0, 59, - 60, 61, 62, 63, 0, 0, 66, 0, 0, 69, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 0, 0, 0, 0, 476, 0, - 0, 0, 0, 0, 0, 0, 0, 1782, 0, 0, + 0, 951, 0, 0, 0, 1617, 0, 0, 0, 0, + 1621, 183, 0, 0, 0, 0, 0, 0, 184, 185, + 186, 187, 188, 79, 80, 81, 189, 190, 191, 192, + 193, 194, 0, 195, 102, 0, 0, 0, 0, 0, + 0, 0, 1634, 1635, 0, 0, 1637, 1638, 196, 197, + 0, 0, 0, 198, 0, 0, 0, 0, 199, 0, + 200, 0, 201, 202, 0, 203, 0, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 182, 0, 0, 0, 186, 0, 0, 0, - 187, 188, 189, 190, 191, 0, 0, 0, 100, 0, + 0, 0, 127, 320, 0, 0, 0, 0, 130, 131, + 132, 0, 0, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 322, 323, 324, 325, + 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 165, 166, 167, 168, 0, 0, 0, 0, + 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 178, 179, 180, 0, 0, 0, 0, 0, 181, + 0, 0, 0, 327, 0, 0, 328, 0, 0, 329, + 0, 330, 0, 0, 0, 0, 0, 34, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1755, 1756, 0, + 0, 1758, 1759, 331, 0, 0, 0, 1762, 1763, 0, + 55, 56, 57, 58, 59, 0, 0, 61, 62, 63, + 64, 65, 0, 0, 68, 0, 0, 71, 0, 0, + 1263, 1264, 0, 0, 0, 0, 1268, 1269, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 0, 0, + 0, 0, 0, 1742, 0, 1743, 0, 0, 0, 0, + 184, 0, 0, 0, 188, 0, 0, 0, 189, 190, + 191, 192, 193, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 194, 328, 0, 0, 0, 196, 0, 0, - 0, 0, 535, 0, 125, 316, 0, 200, 0, 330, - 128, 129, 130, 0, 0, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 318, 319, - 320, 321, 322, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 163, 164, 165, 166, 0, 0, - 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 176, 177, 178, 0, 0, 0, 0, - 0, 179, 0, 0, 0, 323, 0, 0, 324, 0, - 0, 325, 0, 326, 0, 0, 0, 0, 0, 34, + 196, 502, 0, 0, 0, 198, 0, 0, 0, 0, + 333, 0, 0, 1835, 1836, 202, 0, 0, 628, 0, + 0, 0, 0, 127, 320, 129, 0, 0, 0, 130, + 131, 132, 0, 0, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 322, 323, 324, + 325, 326, 0, 0, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 0, 0, 0, 174, 175, 176, 0, 0, + 177, 0, 178, 179, 180, 0, 0, 0, 0, 0, + 181, 182, 0, 0, 327, 0, 0, 328, 0, 0, + 329, 0, 330, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 327, 0, 0, 0, 0, 0, 0, - 53, 54, 55, 56, 57, 0, 0, 59, 60, 61, - 62, 63, 0, 0, 66, 0, 0, 69, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 0, 0, 0, 0, 476, 0, 0, 0, - 0, 0, 0, 0, 0, 1783, 0, 0, 0, 0, + 0, 0, 1436, 1437, 331, 0, 0, 1441, 1442, 0, + 0, 55, 56, 57, 58, 59, 0, 0, 61, 62, + 63, 64, 65, 0, 0, 68, 0, 0, 71, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 0, 0, 0, 0, 480, 0, 0, + 0, 0, 0, 0, 1893, 0, 1894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 182, 0, 0, 0, 186, 0, 0, 0, 187, 188, - 189, 190, 191, 0, 0, 0, 100, 0, 0, 0, + 0, 184, 185, 186, 187, 188, 0, 0, 0, 189, + 190, 191, 192, 193, 194, 0, 195, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 194, 328, 0, 0, 0, 196, 0, 0, 0, 0, - 537, 0, 125, 316, 0, 200, 0, 330, 128, 129, - 130, 0, 0, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 318, 319, 320, 321, - 322, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 163, 164, 165, 166, 0, 0, 0, 0, - 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 176, 177, 178, 0, 0, 0, 0, 0, 179, - 0, 0, 0, 323, 0, 0, 324, 0, 0, 325, - 0, 326, 0, 0, 0, 0, 0, 34, 0, 0, + 0, 196, 332, 0, 0, 0, 198, 0, 0, 0, + 0, 333, 0, 127, 320, 129, 202, 0, 334, 130, + 131, 132, 0, 0, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 322, 323, 324, + 325, 326, 0, 0, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 0, 0, 0, 174, 175, 176, 0, 0, + 177, 0, 178, 179, 180, 0, 0, 0, 0, 0, + 181, 182, 0, 0, 327, 0, 0, 328, 0, 0, + 329, 0, 330, 0, 0, 0, 0, 0, 34, 364, + 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 331, 0, 0, 0, 0, 0, + 0, 55, 56, 57, 58, 59, 0, 0, 61, 62, + 63, 64, 65, 0, 0, 68, 2119, 0, 71, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 0, 0, + 0, 0, 169, 170, 171, 172, 0, 0, 0, 0, + 174, 175, 176, 0, 0, 177, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, + 0, 184, 185, 186, 187, 188, 0, 0, 0, 189, + 190, 191, 192, 193, 194, 0, 195, 102, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 196, 332, 0, 0, 0, 198, 0, 0, 0, + 0, 333, 0, 127, 320, 321, 202, 0, 1764, 130, + 131, 132, 0, 0, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 322, 323, 324, + 325, 326, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 165, 166, 167, 168, 185, 186, 187, + 0, 173, 0, 0, 0, 0, 0, 7, 8, 194, + 0, 195, 178, 179, 180, 0, 0, 0, 0, 0, + 181, 0, 0, 0, 327, 0, 0, 328, 0, 0, + 329, 0, 330, 0, 0, 0, 0, 0, 34, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 0, 331, 0, 0, 480, 0, 0, + 0, 55, 56, 57, 58, 59, 1163, 0, 61, 62, + 63, 64, 65, 0, 0, 68, 0, 0, 71, 745, + 24, 25, 746, 27, 28, 747, 30, 748, 32, 33, + 0, 0, 0, 0, 35, 36, 37, 0, 38, 0, + 0, 0, 0, 43, 44, 45, 46, 0, 48, 49, + 50, 0, 0, 0, 53, 0, 0, 0, 0, 0, + 0, 184, 0, 0, 0, 188, 0, 0, 0, 189, + 190, 191, 192, 193, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 327, 0, 0, 0, 0, 0, 0, 53, 54, - 55, 56, 57, 0, 0, 59, 60, 61, 62, 63, - 0, 0, 66, 0, 0, 69, 462, 463, 464, 465, + 0, 196, 332, 79, 80, 81, 198, 0, 0, 0, + 0, 333, 0, 127, 370, 129, 202, 0, 334, 130, + 131, 132, 0, 0, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 0, 0, 0, + 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 7, 8, 1969, 174, 175, 176, 0, 0, + 177, 0, 178, 179, 180, 0, 0, 0, 0, 0, + 181, 182, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 0, 0, 1196, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 0, 0, 0, 0, 476, 0, 0, 0, 0, 0, - 0, 0, 0, 1784, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, - 0, 0, 186, 0, 0, 0, 187, 188, 189, 190, - 191, 0, 0, 0, 100, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 194, 328, - 0, 0, 0, 196, 0, 0, 0, 0, 539, 0, - 125, 316, 0, 200, 0, 330, 128, 129, 130, 0, - 0, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 318, 319, 320, 321, 322, 0, + 476, 477, 478, 479, 0, 0, 0, 0, 480, 0, + 0, 0, 737, 0, 745, 24, 25, 746, 27, 28, + 747, 30, 748, 32, 33, 0, 0, 0, 0, 35, + 36, 37, 0, 38, 0, 0, 0, 0, 43, 44, + 45, 46, 0, 48, 49, 50, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 163, 164, 165, 166, 0, 0, 0, 0, 171, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, - 177, 178, 0, 0, 0, 0, 0, 179, 0, 0, - 0, 323, 0, 0, 324, 0, 0, 325, 0, 326, - 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 327, - 0, 0, 0, 0, 0, 0, 53, 54, 55, 56, - 57, 0, 0, 59, 60, 61, 62, 63, 0, 0, - 66, 0, 0, 69, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 0, 0, - 0, 0, 476, 0, 0, 0, 0, 0, 0, 0, - 0, 1785, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, - 186, 0, 0, 0, 187, 188, 189, 190, 191, 0, - 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 194, 498, 0, 0, - 0, 196, 0, 0, 0, 0, 329, 0, 125, 316, - 0, 200, 0, 618, 128, 129, 130, 0, 0, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 318, 319, 320, 321, 322, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, - 165, 166, 0, 0, 0, 0, 171, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 176, 177, 178, - 0, 0, 0, 0, 0, 179, 0, 0, 0, 323, - 0, 0, 324, 0, 0, 325, 0, 326, 0, 0, - 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 327, 0, 0, - 0, 0, 0, 0, 53, 54, 55, 56, 57, 0, - 0, 59, 60, 61, 62, 63, 0, 0, 66, 0, - 0, 69, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, - 476, 0, 0, 0, 0, 0, 0, 0, 0, 1820, + 0, 184, 185, 186, 187, 188, 0, 0, 0, 189, + 190, 191, 192, 193, 194, 0, 195, 102, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, + 81, 196, 197, 0, 0, 0, 198, 0, 0, 0, + 0, 333, 0, 127, 320, 1577, 202, 0, 1506, 130, + 131, 132, 0, 0, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 322, 323, 324, + 325, 326, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 165, 166, 167, 168, 0, 0, 2057, + 0, 173, 0, 0, 0, 0, 0, 7, 8, 0, + 0, 0, 178, 179, 180, 0, 0, 0, 0, 0, + 181, 0, 0, 0, 327, 0, 0, 328, 0, 0, + 329, 0, 330, 0, 0, 0, 0, 0, 34, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 0, 331, 0, 0, 480, 0, 0, + 0, 55, 56, 57, 58, 59, 1239, 0, 61, 62, + 63, 64, 65, 0, 0, 68, 0, 0, 71, 745, + 24, 25, 746, 27, 28, 747, 30, 748, 32, 33, + 0, 0, 0, 0, 35, 36, 37, 0, 38, 0, + 0, 0, 0, 43, 44, 45, 46, 0, 48, 49, + 50, 0, 0, 0, 53, 0, 0, 0, 0, 0, + 0, 184, 0, 0, 0, 188, 0, 0, 0, 189, + 190, 191, 192, 193, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 182, 0, 0, 0, 186, 0, - 0, 0, 187, 188, 189, 190, 191, 0, 0, 0, - 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 194, 498, 0, 0, 0, 196, - 0, 0, 0, 0, 329, 0, 125, 316, 0, 200, - 0, 892, 128, 129, 130, 0, 0, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 318, 319, 320, 321, 322, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, - 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 176, 177, 178, 0, 0, - 0, 0, 0, 179, 0, 0, 0, 323, 0, 0, - 324, 0, 0, 325, 0, 326, 0, 0, 0, 0, - 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 327, 0, 0, 0, 0, - 0, 0, 53, 54, 55, 56, 57, 0, 0, 59, - 60, 61, 62, 63, 0, 0, 66, 0, 0, 69, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 0, 0, 0, 0, 476, 0, - 0, 0, 0, 0, 0, 0, 0, 1895, 0, 0, + 0, 196, 332, 79, 80, 81, 198, 0, 0, 0, + 0, 333, 0, 127, 370, 129, 202, 0, 334, 130, + 131, 132, 0, 0, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 0, 0, 0, + 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 0, 0, 0, 174, 175, 176, 0, 0, + 177, 0, 178, 179, 180, 0, 127, 370, 129, 0, + 181, 182, 130, 131, 132, 0, 0, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 0, 0, 0, 0, 0, 0, 0, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 0, 0, 0, 174, 175, + 176, 0, 0, 177, 0, 178, 179, 180, 0, 0, + 0, 0, 0, 181, 182, 0, 0, 0, 0, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 0, 0, 0, 0, 480, 0, 0, + 0, 184, 185, 186, 187, 188, 1360, 0, 0, 189, + 190, 191, 192, 193, 194, 0, 195, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 182, 0, 0, 0, 186, 0, 0, 0, - 187, 188, 189, 190, 191, 0, 0, 0, 100, 0, + 0, 196, 197, 0, 0, 0, 198, 0, 0, 0, + 0, 333, 0, 0, 0, 0, 202, 0, 1747, 0, + 0, 0, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 184, 185, 186, 187, 188, 1698, + 0, 0, 189, 190, 191, 192, 193, 194, 0, 195, + 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, + 0, 0, 0, 0, 333, 0, 127, 320, 0, 202, + 0, 1767, 130, 131, 132, 0, 0, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 322, 323, 324, 325, 326, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 165, 166, 167, 168, + 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 178, 179, 180, 0, 0, + 0, 0, 0, 181, 0, 0, 0, 327, 0, 0, + 328, 0, 0, 329, 0, 330, 0, 0, 0, 0, + 0, 34, 0, 0, 0, 0, 0, 0, 488, 129, + 0, 0, 0, 0, 0, 0, 0, 331, 0, 0, + 0, 0, 0, 0, 55, 56, 57, 58, 59, 0, + 0, 61, 62, 63, 64, 65, 0, 0, 68, 0, + 0, 71, 0, 0, 0, 0, 0, 0, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 0, 0, 0, + 0, 169, 170, 171, 172, 0, 0, 0, 0, 174, + 175, 176, 0, 0, 177, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 184, 182, 0, 0, 188, 0, + 0, 0, 189, 190, 191, 192, 193, 0, 0, 0, + 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 196, 332, 0, 0, 0, 198, + 0, 0, 0, 0, 333, 0, 127, 320, 0, 202, + 0, 334, 130, 131, 132, 0, 0, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 322, 323, 324, 325, 326, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 165, 166, 167, 168, + 0, 0, 0, 0, 173, 0, 185, 186, 187, 0, + 0, 0, 0, 0, 0, 178, 179, 180, 194, 0, + 195, 102, 0, 181, 0, 0, 0, 327, 0, 0, + 328, 0, 0, 329, 0, 330, 0, 0, 0, 0, + 0, 34, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 331, 0, 0, + 480, 0, 0, 0, 55, 56, 57, 58, 59, 1717, + 0, 61, 62, 63, 64, 65, 0, 0, 68, 0, + 0, 71, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 0, 0, 1795, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 194, 498, 0, 0, 0, 196, 0, 0, - 0, 0, 329, 0, 125, 316, 0, 200, 0, 895, - 128, 129, 130, 0, 0, 131, 132, 133, 134, 135, + 0, 0, 0, 0, 184, 0, 0, 0, 188, 0, + 0, 0, 189, 190, 191, 192, 193, 0, 0, 0, + 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 196, 332, 0, 0, 0, 198, + 0, 0, 0, 0, 541, 0, 127, 320, 0, 202, + 0, 334, 130, 131, 132, 0, 0, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 318, 319, - 320, 321, 322, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 163, 164, 165, 166, 0, 0, - 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 176, 177, 178, 0, 0, 0, 0, - 0, 179, 0, 0, 0, 323, 0, 0, 324, 0, - 0, 325, 0, 326, 0, 0, 0, 0, 0, 34, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 322, 323, 324, 325, 326, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 165, 166, 167, 168, + 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 178, 179, 180, 0, 0, + 0, 0, 0, 181, 0, 0, 0, 327, 0, 0, + 328, 0, 0, 329, 0, 330, 0, 0, 0, 0, + 0, 34, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 331, 0, 0, + 480, 0, 0, 0, 55, 56, 57, 58, 59, 1796, + 0, 61, 62, 63, 64, 65, 0, 0, 68, 0, + 0, 71, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 0, 0, 1797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 327, 0, 0, 0, 0, 0, 0, - 53, 54, 55, 56, 57, 0, 0, 59, 60, 61, - 62, 63, 0, 0, 66, 0, 0, 69, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 0, 0, 0, 0, 476, 0, 0, 0, - 0, 0, 0, 0, 0, 1909, 0, 0, 0, 0, + 0, 0, 0, 0, 184, 0, 0, 0, 188, 0, + 0, 0, 189, 190, 191, 192, 193, 0, 0, 0, + 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 196, 332, 0, 0, 0, 198, + 0, 0, 0, 0, 543, 0, 127, 320, 0, 202, + 0, 334, 130, 131, 132, 0, 0, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 322, 323, 324, 325, 326, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 165, 166, 167, 168, + 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 178, 179, 180, 0, 0, + 0, 0, 0, 181, 0, 0, 0, 327, 0, 0, + 328, 0, 0, 329, 0, 330, 0, 0, 0, 0, + 0, 34, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 331, 0, 0, + 480, 0, 0, 0, 55, 56, 57, 58, 59, 1798, + 0, 61, 62, 63, 64, 65, 0, 0, 68, 0, + 0, 71, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 0, 0, 1799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 182, 0, 0, 0, 186, 0, 0, 0, 187, 188, - 189, 190, 191, 0, 0, 0, 100, 0, 0, 0, + 0, 0, 0, 0, 184, 0, 0, 0, 188, 0, + 0, 0, 189, 190, 191, 192, 193, 0, 0, 0, + 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 196, 332, 0, 0, 0, 198, + 0, 0, 0, 0, 545, 0, 127, 320, 0, 202, + 0, 334, 130, 131, 132, 0, 0, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 322, 323, 324, 325, 326, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 165, 166, 167, 168, + 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 178, 179, 180, 0, 0, + 0, 0, 0, 181, 0, 0, 0, 327, 0, 0, + 328, 0, 0, 329, 0, 330, 0, 0, 0, 0, + 0, 34, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 331, 0, 0, + 480, 0, 0, 0, 55, 56, 57, 58, 59, 1834, + 0, 61, 62, 63, 64, 65, 0, 0, 68, 0, + 0, 71, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 0, 0, 1909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 194, 498, 0, 0, 0, 196, 0, 0, 0, 0, - 329, 0, 125, 316, 0, 200, 0, 919, 128, 129, - 130, 0, 0, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 318, 319, 320, 321, - 322, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 163, 164, 165, 166, 0, 0, 0, 0, - 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 176, 177, 178, 0, 0, 0, 0, 0, 179, - 0, 0, 0, 323, 0, 0, 324, 0, 0, 325, - 0, 326, 0, 0, 0, 0, 0, 34, 0, 0, + 0, 0, 0, 0, 184, 0, 0, 0, 188, 0, + 0, 0, 189, 190, 191, 192, 193, 0, 0, 0, + 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 196, 502, 0, 0, 0, 198, + 0, 0, 0, 0, 333, 0, 127, 320, 0, 202, + 0, 624, 130, 131, 132, 0, 0, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 322, 323, 324, 325, 326, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 165, 166, 167, 168, + 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 178, 179, 180, 0, 0, + 0, 0, 0, 181, 0, 0, 0, 327, 0, 0, + 328, 0, 0, 329, 0, 330, 0, 0, 0, 0, + 0, 34, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 331, 0, 0, + 480, 0, 0, 0, 55, 56, 57, 58, 59, 1923, + 0, 61, 62, 63, 64, 65, 0, 0, 68, 0, + 0, 71, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 0, 0, 1924, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 327, 0, 0, 0, 0, 0, 0, 53, 54, - 55, 56, 57, 0, 0, 59, 60, 61, 62, 63, - 0, 0, 66, 0, 0, 69, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 0, 0, 0, 0, 476, 0, 0, 0, 0, 0, - 0, 0, 0, 1910, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, - 0, 0, 186, 0, 0, 0, 187, 188, 189, 190, - 191, 0, 0, 0, 100, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 194, 328, - 0, 0, 0, 196, 0, 0, 0, 0, 329, 0, - 125, 316, 0, 200, 0, 1571, 128, 129, 130, 0, - 0, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 318, 319, 320, 321, 322, 0, + 0, 0, 0, 0, 184, 0, 0, 0, 188, 0, + 0, 0, 189, 190, 191, 192, 193, 0, 0, 0, + 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 196, 502, 0, 0, 0, 198, + 0, 0, 0, 0, 333, 0, 127, 320, 0, 202, + 0, 900, 130, 131, 132, 0, 0, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 322, 323, 324, 325, 326, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 165, 166, 167, 168, + 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 178, 179, 180, 0, 0, + 0, 0, 0, 181, 0, 0, 0, 327, 0, 0, + 328, 0, 0, 329, 0, 330, 0, 0, 0, 0, + 0, 34, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 331, 0, 0, + 480, 0, 0, 0, 55, 56, 57, 58, 59, 1957, + 0, 61, 62, 63, 64, 65, 0, 0, 68, 0, + 0, 71, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 0, 0, 1960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 163, 164, 165, 166, 0, 0, 0, 0, 171, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, - 177, 178, 0, 0, 0, 0, 0, 179, 0, 0, - 0, 323, 0, 0, 324, 0, 0, 325, 0, 326, - 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 327, - 0, 0, 0, 0, 0, 0, 53, 54, 55, 56, - 57, 0, 0, 59, 60, 61, 62, 63, 0, 0, - 66, 0, 0, 69, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 0, 0, - 0, 0, 476, 0, 0, 0, 0, 0, 0, 0, - 0, 1943, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, - 186, 0, 0, 0, 187, 188, 189, 190, 191, 0, - 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 562, 1713, 0, 0, - 0, 196, 0, 0, 0, 0, 564, 0, 125, 366, - 0, 200, 0, 279, 128, 129, 130, 0, 0, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 0, 0, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 163, 164, - 165, 166, 476, 0, 0, 0, 171, 0, 0, 0, - 0, 1946, 0, 0, 0, 125, 366, 176, 177, 178, - 0, 128, 129, 130, 0, 179, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 0, - 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 163, 164, 165, 166, 476, - 0, 0, 0, 171, 0, 0, 0, 0, 1949, 0, - 0, 0, 0, 0, 176, 177, 178, 0, 0, 0, - 0, 0, 179, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 0, 0, 0, 0, 0, 0, 0, - 1985, 0, 0, 0, 182, 0, 0, 0, 186, 0, - 0, 0, 187, 188, 189, 190, 191, 0, 0, 0, - 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 194, 195, 0, 0, 0, 196, - 0, 0, 0, 0, 329, 0, 0, 0, 0, 200, - 0, 542, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, - 476, 182, 0, 0, 0, 186, 0, 0, 651, 187, - 188, 189, 190, 191, 0, 0, 0, 100, 0, 0, + 0, 0, 0, 0, 184, 0, 0, 0, 188, 0, + 0, 0, 189, 190, 191, 192, 193, 0, 0, 0, + 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 196, 502, 0, 0, 0, 198, + 0, 0, 0, 0, 333, 0, 127, 320, 0, 202, + 0, 903, 130, 131, 132, 0, 0, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 322, 323, 324, 325, 326, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 165, 166, 167, 168, + 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 178, 179, 180, 0, 0, + 0, 0, 0, 181, 0, 0, 0, 327, 0, 0, + 328, 0, 0, 329, 0, 330, 0, 0, 0, 0, + 0, 34, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 331, 0, 0, + 480, 0, 0, 0, 55, 56, 57, 58, 59, 1963, + 0, 61, 62, 63, 64, 65, 0, 0, 68, 0, + 0, 71, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 0, 0, 1999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 562, 563, 0, 0, 0, 196, 0, 0, 0, - 0, 564, 0, 125, 366, 127, 200, 0, 279, 128, - 129, 130, 0, 0, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 0, 0, 0, - 0, 0, 0, 0, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 0, 0, 0, 172, 173, 174, 0, 0, - 175, 0, 176, 177, 178, 0, 0, 0, 0, 0, - 179, 180, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, - 476, 0, 0, 0, 0, 0, 0, 0, 0, 1992, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 0, 0, 0, 0, 476, 0, - 0, 0, 0, 0, 0, 0, 0, 2035, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 0, 0, 0, 0, 476, 0, 0, 0, - 0, 0, 0, 0, 0, 2037, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, - 183, 184, 185, 186, 0, 0, 0, 187, 188, 189, - 190, 191, 192, 0, 193, 100, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, - 195, 0, 0, 0, 196, 125, 316, 0, 0, 329, - 0, 128, 129, 130, 200, 0, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 318, - 319, 320, 321, 322, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 163, 164, 165, 166, 0, - 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 176, 177, 178, 0, 0, 0, - 0, 0, 179, 0, 0, 0, 323, 0, 0, 324, - 0, 0, 325, 0, 326, 0, 0, 0, 0, 0, - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 327, 0, 0, 0, 0, 0, - 0, 53, 54, 55, 56, 57, 0, 0, 59, 60, - 61, 62, 63, 0, 0, 66, 0, 0, 69, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 0, 476, 0, 0, - 0, 0, 0, 0, 0, 0, 2039, 0, 0, 0, + 0, 0, 0, 0, 184, 0, 0, 0, 188, 0, + 0, 0, 189, 190, 191, 192, 193, 0, 0, 0, + 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 196, 502, 0, 0, 0, 198, + 0, 0, 0, 0, 333, 0, 127, 320, 0, 202, + 0, 927, 130, 131, 132, 0, 0, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 322, 323, 324, 325, 326, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 165, 166, 167, 168, + 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 178, 179, 180, 0, 0, + 0, 0, 0, 181, 0, 0, 0, 327, 0, 0, + 328, 0, 0, 329, 0, 330, 0, 0, 0, 0, + 0, 34, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 331, 0, 0, + 480, 0, 0, 0, 55, 56, 57, 58, 59, 2006, + 0, 61, 62, 63, 64, 65, 0, 0, 68, 0, + 0, 71, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 0, 0, 2049, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 182, 0, 0, 0, 186, 0, 0, 0, 187, - 188, 189, 190, 191, 0, 0, 0, 100, 0, 0, + 0, 0, 0, 0, 184, 0, 0, 0, 188, 0, + 0, 0, 189, 190, 191, 192, 193, 0, 0, 0, + 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 196, 332, 0, 0, 0, 198, + 0, 0, 0, 0, 333, 0, 127, 320, 0, 202, + 0, 1585, 130, 131, 132, 0, 0, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 322, 323, 324, 325, 326, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 165, 166, 167, 168, + 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 178, 179, 180, 0, 0, + 0, 0, 0, 181, 0, 0, 0, 327, 0, 0, + 328, 0, 0, 329, 0, 330, 0, 0, 0, 0, + 0, 34, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 331, 0, 0, + 480, 0, 0, 0, 55, 56, 57, 58, 59, 2051, + 0, 61, 62, 63, 64, 65, 0, 0, 68, 0, + 0, 71, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 0, 0, 2053, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 194, 498, 0, 0, 0, 196, 125, 366, 0, - 0, 329, 0, 128, 129, 130, 200, 0, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 0, 0, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 163, 164, 165, - 166, 476, 0, 0, 0, 171, 0, 0, 0, 0, - 2063, 0, 0, 0, 125, 366, 176, 177, 178, 0, - 128, 129, 130, 0, 179, 131, 132, 133, 134, 135, + 0, 0, 0, 0, 184, 0, 0, 0, 188, 0, + 0, 0, 189, 190, 191, 192, 193, 0, 0, 0, + 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 568, 1727, 0, 0, 0, 198, + 0, 0, 0, 0, 570, 0, 127, 370, 0, 202, + 0, 283, 130, 131, 132, 0, 0, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 0, 0, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 163, 164, 165, 166, 476, 0, - 0, 0, 171, 0, 0, 0, 0, 2094, 0, 0, - 0, 0, 0, 176, 177, 178, 0, 0, 0, 0, - 0, 179, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, - 476, 0, 0, 0, 0, 0, 0, 0, 0, 2133, - 0, 0, 0, 182, 0, 0, 0, 186, 0, 0, - 0, 187, 188, 189, 190, 191, 0, 0, 0, 100, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 0, 0, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 165, 166, 167, 168, + 480, 0, 0, 0, 173, 0, 0, 0, 0, 2077, + 0, 0, 0, 0, 0, 178, 179, 180, 127, 370, + 129, 0, 0, 181, 130, 131, 132, 0, 0, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 0, 0, 0, + 174, 175, 176, 0, 0, 177, 0, 178, 179, 180, + 0, 0, 0, 0, 0, 181, 182, 0, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 0, 0, + 0, 0, 0, 0, 184, 2108, 0, 0, 188, 0, + 0, 0, 189, 190, 191, 192, 193, 0, 0, 0, + 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 568, 569, 0, 0, 0, 198, + 0, 0, 0, 0, 570, 0, 0, 0, 0, 202, + 0, 283, 0, 0, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 0, 0, + 0, 0, 480, 0, 0, 0, 184, 185, 186, 187, + 188, 2147, 0, 0, 189, 190, 191, 192, 193, 194, + 0, 195, 102, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, + 0, 198, 127, 320, 0, 0, 333, 0, 130, 131, + 132, 202, 0, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 322, 323, 324, 325, + 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 165, 166, 167, 168, 0, 0, 0, 0, + 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 178, 179, 180, 0, 0, 0, 0, 0, 181, + 0, 0, 0, 327, 0, 0, 328, 0, 0, 329, + 0, 330, 0, 0, 0, 0, 0, 34, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 331, 0, 0, 480, 0, 0, 0, + 55, 56, 57, 58, 59, 2148, 0, 61, 62, 63, + 64, 65, 0, 0, 68, 0, 0, 71, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 0, 0, + 0, 0, 0, 0, 0, 2152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 194, 195, 0, 0, 0, 196, 0, - 0, 0, 0, 329, 447, 0, 0, 0, 200, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 0, 476, 0, 0, - 182, 0, 0, 0, 186, 0, 2134, 0, 187, 188, - 189, 190, 191, 0, 0, 0, 100, 0, 0, 0, + 184, 0, 0, 0, 188, 0, 0, 0, 189, 190, + 191, 192, 193, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 194, 195, 0, 0, 0, 196, 0, 0, 0, 0, - 329, 125, 366, 449, 0, 200, 0, 128, 129, 130, - 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, + 196, 502, 0, 0, 0, 198, 127, 370, 0, 0, + 333, 0, 130, 131, 132, 202, 0, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 0, 0, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 165, 166, 167, 168, + 480, 0, 0, 0, 173, 0, 0, 0, 0, 2153, + 0, 0, 0, 127, 370, 178, 179, 180, 0, 130, + 131, 132, 0, 181, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 0, 0, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 163, 164, 165, 166, 476, 0, 0, 0, 171, - 0, 0, 0, 0, 2138, 0, 0, 0, 125, 366, - 176, 177, 178, 0, 128, 129, 130, 0, 179, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 0, 0, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 163, 164, - 165, 166, 476, 0, 0, 0, 171, 0, 0, 0, - 0, 2139, 0, 0, 0, 0, 0, 176, 177, 178, - 0, 0, 0, 0, 0, 179, 462, 463, 464, 465, + 149, 150, 151, 152, 153, 154, 155, 0, 0, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 165, 166, 167, 168, 480, 0, 0, + 0, 173, 0, 0, 0, 0, 2154, 0, 0, 0, + 0, 0, 178, 179, 180, 0, 0, 0, 0, 0, + 181, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 0, 0, 0, 0, 480, + 0, 0, 0, 0, 0, 0, 0, 0, 2155, 0, + 0, 0, 0, 0, 184, 0, 0, 0, 188, 0, + 0, 0, 189, 190, 191, 192, 193, 0, 0, 0, + 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 196, 197, 0, 0, 0, 198, + 0, 0, 0, 0, 333, 451, 0, 0, 0, 202, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 0, 0, 0, 0, 476, 0, 0, 0, 0, 0, - 0, 0, 0, 2140, 0, 0, 0, 182, 0, 0, - 0, 186, 0, 0, 0, 187, 188, 189, 190, 191, - 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 194, 195, 0, - 0, 0, 196, 0, 0, 0, 0, 329, 659, 0, - 0, 0, 200, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 0, 182, 0, 0, 0, 186, 0, - 2141, 0, 187, 188, 189, 190, 191, 0, 0, 0, - 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 194, 195, 0, 0, 0, 196, - 0, 0, 0, 0, 329, 125, 366, 661, 1213, 200, - 0, 128, 129, 130, 0, 0, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 0, - 0, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 163, 164, 165, 166, 476, - 0, 0, 0, 171, 0, 0, 0, 838, 0, 0, - 0, 0, 0, 0, 176, 177, 178, 125, 366, 0, - 1354, 0, 179, 128, 129, 130, 0, 0, 131, 132, + 476, 477, 478, 479, 0, 0, 0, 0, 480, 0, + 0, 184, 0, 0, 0, 188, 846, 0, 0, 189, + 190, 191, 192, 193, 0, 0, 0, 102, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 196, 197, 0, 0, 0, 198, 0, 0, 0, + 0, 333, 127, 370, 453, 0, 202, 0, 130, 131, + 132, 0, 0, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 0, 0, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 165, 166, 167, 168, 480, 0, 0, 0, + 173, 0, 0, 0, 1807, 0, 0, 0, 0, 127, + 370, 178, 179, 180, 0, 130, 131, 132, 0, 181, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 0, 0, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 163, 164, 165, - 166, 476, 0, 0, 0, 171, 0, 0, 0, 1793, - 0, 0, 0, 0, 0, 0, 176, 177, 178, 0, - 0, 0, 0, 0, 179, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 0, 0, 0, 476, 0, 888, 0, 889, 0, 0, - 1444, 182, 0, 0, 0, 186, 0, 0, 0, 187, - 188, 189, 190, 191, 0, 0, 0, 100, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 194, 195, 0, 0, 0, 196, 0, 0, 0, - 0, 329, 0, 0, 0, 0, 200, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 0, 0, 476, 0, 916, 0, 0, - 0, 0, 845, 182, 0, 0, 0, 186, 0, 0, - 0, 187, 188, 189, 190, 191, 0, 0, 0, 100, + 153, 154, 155, 0, 0, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 165, + 166, 167, 168, 480, 0, 924, 0, 173, 0, 0, + 853, 0, 0, 0, 0, 0, 0, 0, 178, 179, + 180, 0, 0, 0, 0, 0, 181, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 0, 0, 0, 0, 480, 0, 896, 0, 897, + 0, 0, 1456, 0, 0, 0, 0, 0, 0, 0, + 184, 0, 0, 0, 188, 0, 0, 0, 189, 190, + 191, 192, 193, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 194, 195, 0, 0, 0, 196, 125, - 366, 0, 0, 329, 0, 128, 129, 130, 200, 0, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 0, 0, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 163, - 164, 165, 166, 476, 0, 0, 0, 171, 0, 0, - 774, 0, 0, 0, 0, 0, 0, 0, 176, 177, - 178, 0, 0, 0, 0, 0, 179, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 0, 0, 476, 0, 0, 0, 0, - 0, 0, 845, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 0, 0, 0, 0, 0, 846, 0, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 0, 0, 0, 0, 476, 0, - -4, 1, 0, 0, -4, 930, 0, 0, 0, 0, - 0, 0, -4, -4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 182, 0, 0, 0, 186, - 0, 0, 0, 187, 188, 189, 190, 191, 0, 0, - 0, 100, -4, -4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 194, 195, 0, 0, 0, - 196, 0, -4, -4, -4, 329, 0, 0, -4, -4, - 200, -4, 0, 0, 0, -4, -4, 0, -4, -4, - 0, 0, -4, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, -4, -4, 0, 0, 0, -4, -4, - 0, -4, -4, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, -4, -4, 0, -4, -4, -4, -4, - -4, -4, -4, -4, -4, 0, -4, -4, -4, -4, - -4, -4, -4, -4, -4, -4, -4, -4, -4, 0, - 0, 0, -4, -4, -4, 0, 0, 0, 0, 0, - -4, 6, 0, 0, 0, -4, -4, -4, -4, 7, - 8, -4, 0, -4, 0, -4, -4, -4, -4, -4, - -4, -4, -4, -4, -4, -4, -4, -4, -4, 0, - 0, 0, 0, 0, -4, -4, -4, 0, 0, 9, - 10, 0, 0, -4, 0, -4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, - 12, 13, 0, 0, 0, 14, 15, 0, 16, 0, - 0, 0, 17, 18, 0, 19, 20, 0, 0, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 0, 0, 0, 34, 35, 0, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 0, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 0, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 0, 0, 0, 72, - 73, 74, 0, 0, 0, 0, 0, 75, 0, 0, - 0, 0, 76, 77, 78, 79, 0, 0, 80, 0, - 81, 0, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 0, 0, 0, 0, - 0, 96, 97, 98, 0, 0, 0, 0, 0, 0, - 99, 0, 100, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 0, 0, 0, 0, 0, 975, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 0, 476, 0, 0, - 0, 0, 0, 0, 983, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 0, 0, 0, 476, 0, 0, 0, 0, 0, 0, - 984, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 0, 0, 0, 0, 476, - 0, 0, 0, 0, 0, 0, 985, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 0, 0, 476, 0, 0, 0, 0, - 0, 0, 1000, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 0, 0, 0, 0, 0, 1135, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 0, 476, 0, 0, - 0, 0, 0, 0, 1136, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 0, 0, 0, 476, 0, 0, 0, 0, 0, 0, - 1137, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 0, 0, 0, 0, 476, - 0, 0, 0, 0, 0, 0, 1172, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 0, 0, 476, 0, 0, 0, 0, - 0, 0, 1181, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 0, 0, 0, 0, 0, 1182, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 0, 476, 0, 0, - 0, 0, 0, 0, 1184, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 0, 0, 0, 476, 0, 0, 0, 0, 0, 0, - 1295, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 0, 0, 0, 0, 476, - 0, 0, 0, 0, 0, 0, 1346, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 0, 0, 476, 0, 0, 0, 0, - 0, 0, 1347, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 0, 0, 0, 0, 0, 1412, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 0, 476, 0, 0, - 0, 0, 0, 0, 1581, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 0, 0, 0, 476, 0, 0, 0, 0, 0, 0, - 1582, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 0, 0, 0, 0, 476, - 0, 0, 0, 0, 0, 0, 1583, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 0, 0, 476, 0, 0, 0, 0, - 0, 0, 1584, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 0, 0, 0, 0, 0, 1585, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 0, 476, 0, 0, - 0, 0, 0, 0, 1586, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 0, 0, 0, 476, 0, 0, 0, 0, 0, 0, - 1587, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 0, 0, 0, 0, 476, - 0, 0, 0, 0, 0, 0, 1640, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 0, 0, 476, 0, 0, 0, 0, - 0, 0, 1641, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 0, 0, 0, 0, 0, 1648, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 0, 476, 0, 0, - 0, 0, 0, 0, 1823, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 0, 0, 0, 476, 0, 0, 0, 0, 0, 0, - 1824, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 0, 0, 0, 0, 476, - 0, 0, 0, 0, 0, 0, 1825, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 0, 0, 476, 0, 0, 0, 0, - 0, 0, 1826, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 0, 0, 0, 0, 0, 1827, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 0, 476, 0, 0, - 0, 0, 0, 0, 1851, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 0, 0, 0, 476, 0, 0, 0, 0, 0, 0, - 1852, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 0, 0, 0, 0, 476, - 0, 0, 0, 0, 0, 0, 1856, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 0, 0, 476, 0, 0, 0, 0, - 0, 0, 1964, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 0, 0, 0, 0, 0, 1965, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 0, 476, 0, 0, - 0, 0, 0, 0, 1966, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 0, 0, 0, 476, 0, 0, 0, 0, 0, 0, - 1967, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 0, 0, 0, 0, 476, - 0, 0, 0, 0, 0, 0, 1968, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 0, 0, 476, 0, 0, 0, 0, - 0, 0, 1978, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 0, 0, 0, 0, 0, 1981, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 0, 476, 0, 0, - 0, 0, 0, 0, 2031, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 0, 0, 0, 476, 0, 0, 0, 0, 0, 0, - 2051, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 0, 0, 0, 0, 476, - 0, 0, 0, 0, 0, 0, 2052, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 0, 0, 476, 0, 0, 0, 0, - 0, 0, 2053, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 0, 0, 0, 0, 0, 2054, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 0, 476, 0, 0, - 0, 0, 0, 0, 2055, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 0, 0, 0, 476, 0, 0, 0, 0, 0, 0, - 2106, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 0, 0, 0, 0, 476, - 0, 0, 0, 0, 0, 0, 2107, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 0, 0, 476, 0, 0, 0, 0, - 0, 0, 2108, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 0, 0, 0, 0, 0, 2109, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 0, 476, 0, 888, - 0, 889, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, - 476, 0, 0, 0, 731, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 0, 0, 0, 476, 0, 0, 0, 936, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 0, 0, 0, 0, 476, 0, 0, 0, - 955, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 0, 0, 0, 0, 476, - 0, 0, 0, 962, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 0, 0, - 0, 0, 476, 0, 0, 0, 1058, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 0, 0, 476, 0, 0, 0, 1165, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 0, 0, 0, 0, 476, 0, - 0, 0, 1166, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 0, 0, 1170, 462, 463, 464, 465, + 196, 197, 0, 0, 0, 198, 0, 0, 0, 0, + 333, 665, 0, 0, 0, 202, 0, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 0, 0, 0, 0, 480, 0, 184, 0, 0, + 0, 188, 780, 0, 0, 189, 190, 191, 192, 193, + 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 196, 197, 0, + 0, 0, 198, 0, 0, 0, 0, 333, 127, 370, + 667, 1223, 202, 0, 130, 131, 132, 0, 0, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 0, 0, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 165, 166, + 167, 168, 480, 0, 0, 0, 173, 0, 0, 853, + 0, 0, 0, 0, 0, 0, 0, 178, 179, 180, + 127, 370, 0, 1366, 0, 181, 130, 131, 132, 0, + 0, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 0, 0, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 165, 166, 167, 168, 480, 0, 0, 0, 173, 0, + 0, 854, 0, 0, 0, 0, 0, 0, 0, 178, + 179, 180, 0, 0, 0, 0, 0, 181, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 0, 0, + 0, 0, 0, 938, 0, 0, 184, 0, 0, 0, + 188, 0, 0, 0, 189, 190, 191, 192, 193, 0, + 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 196, 197, 0, 0, + 0, 198, 0, 0, 0, 0, 333, 0, 0, 0, + 0, 202, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 983, 184, 0, + 0, 0, 188, 0, 0, 0, 189, 190, 191, 192, + 193, 0, 0, 0, 102, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 196, 197, + 0, 0, 0, 198, 127, 370, 0, 0, 333, 0, + 130, 131, 132, 202, 0, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 0, 0, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 165, 166, 167, 168, 480, 0, + 0, 0, 173, 0, 0, 991, 0, 0, 0, 0, + 0, 0, 0, 178, 179, 180, 0, 0, 0, 0, + 0, 181, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 992, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 0, 0, + 0, 0, 0, 993, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 0, 0, + 0, 0, 480, 0, 0, 0, 0, -4, 1, 1008, + 0, -4, 0, 0, 0, 0, 0, 0, 0, -4, + -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 184, 0, 0, 0, 188, 0, 0, 0, + 189, 190, 191, 192, 193, 0, 0, 0, 102, -4, + -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 196, 197, 0, 0, 0, 198, 0, -4, + -4, -4, 333, 0, 0, -4, -4, 202, -4, 0, + 0, 0, -4, -4, 0, -4, -4, 0, 0, -4, + -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + -4, -4, 0, 0, 0, -4, -4, -4, -4, 0, + -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + -4, -4, -4, -4, 0, -4, -4, -4, -4, -4, + -4, -4, -4, -4, 0, -4, -4, -4, -4, -4, + -4, -4, -4, -4, -4, -4, -4, -4, 0, 0, + 0, -4, -4, -4, 0, 0, 0, 0, 0, -4, + 6, 0, 0, 0, -4, -4, -4, -4, 7, 8, + -4, 0, -4, 0, -4, -4, -4, -4, -4, -4, + -4, -4, -4, -4, -4, -4, -4, -4, 0, 0, + 0, 0, 0, -4, -4, -4, 0, 0, 9, 10, + 0, 0, -4, 0, -4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, + 13, 0, 0, 0, 14, 15, 0, 16, 0, 0, + 0, 17, 18, 0, 19, 20, 0, 0, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 0, 0, 0, 34, 35, 36, 37, 0, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 0, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 0, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 0, 0, 0, + 74, 75, 76, 0, 0, 0, 0, 0, 77, 0, + 0, 0, 0, 78, 79, 80, 81, 0, 0, 82, + 0, 83, 0, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, + 0, 0, 98, 99, 100, 0, 0, 0, 0, 0, + 0, 101, 0, 102, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 0, 0, + 0, 0, 480, 0, 0, 0, 0, 0, 0, 1145, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 0, 0, 0, 0, 480, 0, + 0, 0, 0, 0, 0, 1146, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, + 0, 1147, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 1182, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 0, 0, + 0, 0, 0, 1191, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 0, 0, + 0, 0, 480, 0, 0, 0, 0, 0, 0, 1192, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 0, 0, 0, 0, 480, 0, + 0, 0, 0, 0, 0, 1194, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, + 0, 1305, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 1358, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 0, 0, + 0, 0, 0, 1359, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 0, 0, + 0, 0, 480, 0, 0, 0, 0, 0, 0, 1424, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 0, 0, 0, 0, 480, 0, + 0, 0, 0, 0, 0, 1595, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, + 0, 1596, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 1597, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 0, 0, + 0, 0, 0, 1598, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 0, 0, + 0, 0, 480, 0, 0, 0, 0, 0, 0, 1599, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 0, 0, 0, 0, 480, 0, + 0, 0, 0, 0, 0, 1600, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, + 0, 1601, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 1654, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 0, 0, + 0, 0, 0, 1655, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 0, 0, + 0, 0, 480, 0, 0, 0, 0, 0, 0, 1662, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 0, 0, 0, 0, 480, 0, + 0, 0, 0, 0, 0, 1837, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, + 0, 1838, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 1839, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 0, 0, + 0, 0, 0, 1840, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 0, 0, + 0, 0, 480, 0, 0, 0, 0, 0, 0, 1841, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 0, 0, 0, 0, 480, 0, + 0, 0, 0, 0, 0, 1865, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, + 0, 1866, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 1870, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 0, 0, + 0, 0, 0, 1978, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 0, 0, + 0, 0, 480, 0, 0, 0, 0, 0, 0, 1979, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 0, 0, 0, 0, 480, 0, + 0, 0, 0, 0, 0, 1980, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, + 0, 1981, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 1982, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 0, 0, + 0, 0, 0, 1992, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 0, 0, + 0, 0, 480, 0, 0, 0, 0, 0, 0, 1995, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 0, 0, 0, 0, 480, 0, + 0, 0, 0, 0, 0, 2045, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, + 0, 2065, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 2066, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 0, 0, + 0, 0, 0, 2067, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 0, 0, + 0, 0, 480, 0, 0, 0, 0, 0, 0, 2068, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 0, 0, 0, 0, 480, 0, + 0, 0, 0, 0, 0, 2069, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, + 0, 2120, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 2121, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 0, 0, + 0, 0, 0, 2122, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 0, 0, + 0, 0, 480, 0, 0, 0, 0, 0, 0, 2123, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 0, 0, 0, 0, 476, 0, 0, 0, 1171, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 0, 476, 0, 0, - 0, 1174, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, - 476, 0, 0, 0, 1198, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 0, 0, 0, 476, 0, 0, 0, 1231, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 0, 0, 0, 0, 476, 0, 0, 0, - 1288, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 0, 0, 0, 0, 476, - 0, 0, 0, 1293, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 0, 0, - 0, 0, 476, 0, 0, 0, 1576, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 0, 0, 476, 0, 0, 0, 1631, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 0, 0, 0, 0, 476, 0, - 0, 0, 1806, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 727, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 0, 0, - 0, 0, 476, 0, 784, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 0, 0, 0, 476, 0, 788, 462, 463, 464, 465, + 476, 477, 478, 479, 0, 0, 0, 0, 480, 0, + 0, 0, 944, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 0, 0, 0, + 0, 480, 0, 0, 0, 963, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 0, 0, 0, 0, 480, 0, 0, 0, 970, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 0, 0, 0, 0, 480, 0, 0, + 0, 1066, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 1175, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 0, + 0, 0, 0, 480, 0, 0, 0, 1176, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 0, 0, + 1180, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 0, 0, 0, 0, 480, + 0, 0, 0, 1181, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 0, 0, + 0, 0, 480, 0, 0, 0, 1184, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 0, 0, 0, 0, 480, 0, 0, 0, 1208, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 0, 0, 0, 0, 476, 0, 789, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 0, 0, 476, 0, 791, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 0, 0, 0, 0, 476, 0, 793, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 0, 476, 0, 794, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 0, 0, 0, 0, 476, 0, - 797, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 0, 0, 0, 0, 476, - 0, 798, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, - 476, 0, 799, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 800, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 0, 0, - 0, 0, 476, 0, 810, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 0, 0, 0, 476, 0, 916, 462, 463, 464, 465, + 476, 477, 478, 479, 0, 0, 0, 0, 480, 0, + 0, 0, 1241, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 0, 0, 0, + 0, 480, 0, 0, 0, 1298, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 0, 0, 0, 0, 480, 0, 0, 0, 1303, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 0, 0, 0, 0, 480, 0, 0, + 0, 1590, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 0, 0, 1645, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 0, + 0, 0, 0, 480, 0, 0, 0, 1820, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 733, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 0, 0, 0, 0, 480, 0, 790, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 0, 0, 0, 0, 476, 0, 926, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 0, 0, 476, 0, 927, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 0, 0, 0, 0, 476, 0, 928, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 0, 476, 0, 934, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 0, 0, 0, 0, 476, 0, - 935, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 0, 0, 0, 0, 476, - 0, 942, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, - 476, 0, 951, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 961, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 0, 0, - 0, 0, 476, 0, 1057, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 0, 0, 0, 476, 0, 1085, 462, 463, 464, 465, + 476, 477, 478, 479, 0, 0, 0, 0, 480, 0, + 794, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 0, 0, 0, 0, 480, + 0, 795, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 797, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 0, 0, 0, + 0, 480, 0, 799, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 0, 0, + 0, 0, 480, 0, 800, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 0, + 0, 0, 0, 480, 0, 803, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 0, 0, 0, 0, 480, 0, 804, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 0, 0, 0, 0, 480, 0, 805, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 806, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 0, 0, 0, 0, 480, 0, 808, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 0, 0, 0, 0, 476, 0, 1090, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 0, 0, 476, 0, 1097, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 0, 0, 0, 0, 476, 0, 1102, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 0, 476, 0, 1103, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 0, 0, 0, 0, 476, 0, - 1109, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 0, 0, 0, 0, 476, - 0, 1118, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, - 476, 0, 1119, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 1120, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 0, 0, - 0, 0, 476, 0, 1152, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 0, 0, 0, 476, 0, 1154, 462, 463, 464, 465, + 476, 477, 478, 479, 0, 0, 0, 0, 480, 0, + 809, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 0, 0, 0, 0, 480, + 0, 818, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 924, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 0, 0, 0, + 0, 480, 0, 934, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 0, 0, + 0, 0, 480, 0, 935, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 0, + 0, 0, 0, 480, 0, 936, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 0, 0, 0, 0, 480, 0, 942, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 0, 0, 0, 0, 480, 0, 943, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 950, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 0, 0, 0, 0, 480, 0, 959, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 0, 0, 0, 0, 476, 0, 1155, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 0, 0, 476, 0, 1156, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 0, 0, 0, 0, 476, 0, 1157, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 0, 476, 0, 1158, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 0, 0, 0, 0, 476, 0, - 1159, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 0, 0, 0, 0, 476, - 0, 1160, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, - 476, 0, 1164, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476, 0, 1173, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 0, 0, - 0, 0, 476, 0, 1197, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, - 0, 0, 0, 476, 0, 1287, 462, 463, 464, 465, + 476, 477, 478, 479, 0, 0, 0, 0, 480, 0, + 969, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 0, 0, 0, 0, 480, + 0, 1065, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 1093, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 0, 0, 0, + 0, 480, 0, 1098, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 0, 0, + 0, 0, 480, 0, 1107, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 0, + 0, 0, 0, 480, 0, 1112, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 0, 0, 0, 0, 480, 0, 1113, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 0, 0, 0, 0, 480, 0, 1119, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 1128, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 0, 0, 0, 0, 480, 0, 1129, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 0, 0, 0, 0, 476, 0, 1292, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 0, 0, 476, 0, 1456, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 0, 0, 0, 0, 476, 0, 1685, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 0, 476, 0, 1702, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 0, 0, 0, 0, 476, 0, - 1732, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 0, 0, 0, 0, 476, - 0, 1977, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, - 476, 0, 2061, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, - 0, 476 + 476, 477, 478, 479, 0, 0, 0, 0, 480, 0, + 1130, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 0, 0, 0, 0, 480, + 0, 1162, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 1164, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 0, 0, 0, + 0, 480, 0, 1165, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 0, 0, + 0, 0, 480, 0, 1166, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 0, + 0, 0, 0, 480, 0, 1167, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 0, 0, 0, 0, 480, 0, 1168, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 0, 0, 0, 0, 480, 0, 1169, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 1170, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 0, 0, 0, 0, 480, 0, 1174, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 0, 0, 0, 0, 480, 0, + 1183, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 0, 0, 0, 0, 480, + 0, 1207, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 0, 0, 0, 0, + 480, 0, 1297, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 0, 0, 0, + 0, 480, 0, 1302, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 0, 0, + 0, 0, 480, 0, 1468, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 0, + 0, 0, 0, 480, 0, 1699, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 0, 0, 0, 0, 480, 0, 1716, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 0, 0, 0, 0, 480, 0, 1746, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 0, 0, 0, 0, 480, 0, 1991, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 0, 0, 0, 0, 480, 0, 2075 }; static const yytype_int16 yycheck[] = { - 3, 1151, 414, 6, 416, 272, 1599, 1600, 1147, 1565, - 6, 4, 556, 557, 6, 6, 6, 4, 4, 431, - 3, 5, 0, 4, 6, 219, 5, 4, 4, 4, - 4, 4, 226, 5, 223, 4, 1777, 4, 4, 228, - 5, 287, 4, 4, 87, 5, 5, 90, 90, 5, - 5, 5, 5, 209, 210, 6, 6, 303, 219, 6, - 6, 6, 161, 6, 67, 115, 7, 4, 7, 6, - 226, 447, 75, 449, 219, 451, 221, 80, 177, 178, - 6, 131, 13, 6, 209, 210, 219, 6, 91, 139, - 140, 141, 209, 210, 220, 145, 146, 147, 148, 225, - 225, 91, 227, 93, 222, 209, 210, 225, 7, 1665, - 227, 209, 210, 219, 209, 210, 219, 363, 221, 365, - 226, 225, 84, 227, 219, 371, 88, 225, 4, 5, - 219, 226, 94, 95, 96, 97, 124, 226, 6, 87, - 209, 210, 90, 7, 209, 210, 108, 84, 211, 212, - 213, 222, 6, 4, 225, 218, 225, 4, 227, 54, - 55, 226, 57, 6, 151, 152, 153, 154, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 227, 209, 210, - 164, 57, 58, 59, 60, 164, 219, 1928, 1929, 65, - 66, 67, 164, 226, 70, 226, 6, 200, 172, 164, - 219, 176, 149, 149, 7, 81, 149, 226, 7, 212, - 213, 219, 7, 209, 210, 206, 1772, 220, 201, 195, - 221, 195, 195, 149, 206, 228, 219, 230, 221, 6, - 223, 1370, 235, 219, 1790, 228, 239, 227, 219, 219, - 227, 244, 245, 6, 221, 226, 249, 250, 251, 252, - 253, 228, 226, 226, 257, 258, 259, 226, 219, 226, - 226, 226, 265, 266, 267, 226, 226, 226, 271, 272, - 226, 226, 226, 226, 219, 226, 226, 7, 219, 3, - 221, 226, 6, 659, 223, 661, 209, 210, 221, 7, - 209, 210, 219, 7, 297, 298, 299, 196, 197, 198, - 199, 547, 548, 6, 180, 181, 182, 220, 311, 312, - 161, 162, 225, 8, 161, 162, 192, 219, 194, 195, - 84, 567, 220, 87, 222, 328, 90, 330, 226, 219, - 209, 210, 196, 197, 198, 199, 7, 220, 209, 210, - 216, 217, 225, 67, 212, 213, 225, 223, 209, 210, - 226, 727, 216, 217, 225, 731, 80, 209, 210, 223, - 219, 209, 210, 219, 225, 221, 369, 91, 209, 210, - 373, 374, 228, 225, 216, 217, 244, 225, 100, 1972, - 275, 276, 220, 386, 225, 253, 219, 225, 283, 379, - 636, 7, 287, 196, 197, 198, 199, 196, 197, 198, - 199, 196, 197, 198, 199, 651, 90, 219, 92, 8, - 219, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 1980, 428, 429, 430, 431, 432, - 219, 209, 210, 436, 437, 438, 439, 440, 441, 225, - 443, 227, 209, 210, 434, 209, 210, 225, 209, 210, - 84, 90, 442, 87, 90, 219, 90, 460, 225, 209, - 210, 6, 226, 451, 225, 220, 196, 197, 198, 199, - 225, 225, 225, 227, 227, 225, 200, 8, 196, 197, - 198, 199, 196, 197, 198, 199, 216, 217, 212, 213, - 216, 217, 220, 226, 222, 498, 220, 225, 216, 217, - 226, 369, 216, 217, 228, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 220, - 244, 209, 210, 218, 225, 196, 197, 198, 199, 253, - 216, 217, 227, 225, 219, 227, 2092, 225, 541, 542, - 226, 531, 532, 533, 534, 216, 217, 415, 272, 417, - 418, 419, 420, 421, 422, 423, 219, 425, 426, 92, - 428, 429, 430, 225, 432, 227, 6, 7, 436, 437, - 438, 439, 440, 556, 557, 951, 209, 210, 90, 955, - 196, 197, 198, 199, 587, 588, 589, 90, 216, 217, - 6, 7, 225, 216, 217, 841, 599, 600, 226, 222, - 603, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 618, 220, 219, 6, 218, - 87, 225, 625, 209, 210, 226, 209, 210, 227, 226, - 209, 210, 115, 209, 210, 219, 4, 221, 219, 225, - 221, 644, 225, 90, 228, 369, 225, 228, 131, 225, - 225, 1801, 227, 1803, 6, 1805, 139, 140, 141, 554, - 555, 664, 145, 146, 147, 148, 220, 562, 222, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 671, 209, 210, 225, 218, 227, 220, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 225, 425, 426, 87, 428, 429, 430, 431, 432, 209, - 210, 87, 436, 437, 438, 439, 440, 441, 220, 443, - 222, 209, 210, 726, 226, 225, 220, 730, 222, 209, - 210, 225, 209, 210, 1110, 603, 1112, 225, 1114, 727, - 1116, 90, 732, 731, 1883, 225, 219, 1886, 225, 4, - 1889, 119, 120, 121, 122, 115, 209, 210, 209, 210, - 4, 209, 210, 209, 210, 133, 769, 4, 136, 1036, - 773, 131, 225, 776, 225, 4, 779, 225, 781, 139, - 140, 141, 785, 786, 219, 145, 146, 147, 148, 219, - 219, 209, 210, 783, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 1956, 225, 219, 6, - 218, 814, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 84, 209, 210, 87, - 218, 225, 90, 227, 92, 838, 209, 210, 211, 212, - 213, 1253, 1254, 225, 221, 218, 1258, 1259, 200, 201, + 3, 1157, 418, 6, 420, 276, 451, 1161, 453, 4, + 455, 1613, 1614, 5, 562, 563, 7, 4, 4, 435, + 1791, 4, 6, 3, 6, 4, 4, 221, 4, 6, + 4, 4, 4, 4, 4, 4, 225, 4, 6, 291, + 5, 230, 5, 5, 5, 4, 6, 5, 5, 222, + 6, 5, 5, 5, 227, 307, 6, 1579, 6, 211, + 212, 6, 6, 218, 219, 7, 69, 211, 212, 4, + 4, 6, 211, 212, 77, 227, 117, 229, 163, 82, + 6, 6, 221, 227, 6, 229, 221, 211, 212, 228, + 93, 0, 133, 228, 179, 180, 117, 211, 212, 13, + 141, 142, 143, 7, 6, 229, 147, 148, 149, 150, + 218, 219, 133, 227, 7, 367, 224, 369, 211, 212, + 141, 142, 143, 375, 90, 7, 147, 148, 149, 150, + 211, 212, 221, 221, 223, 228, 56, 57, 126, 59, + 6, 211, 212, 218, 219, 6, 227, 7, 229, 84, + 84, 223, 7, 228, 88, 218, 219, 1679, 228, 7, + 94, 95, 96, 97, 221, 228, 223, 6, 93, 151, + 95, 1942, 1943, 230, 166, 221, 110, 223, 6, 153, + 154, 155, 156, 151, 230, 7, 84, 174, 229, 87, + 163, 164, 90, 163, 164, 151, 211, 212, 222, 202, + 178, 7, 197, 227, 166, 166, 151, 7, 229, 6, + 197, 214, 215, 228, 166, 7, 221, 221, 223, 222, + 665, 223, 667, 203, 208, 230, 1382, 230, 197, 232, + 221, 208, 223, 228, 237, 221, 228, 223, 241, 225, + 223, 228, 221, 246, 230, 221, 249, 230, 6, 228, + 253, 254, 255, 256, 257, 229, 228, 228, 261, 262, + 263, 228, 221, 228, 1786, 228, 269, 270, 271, 228, + 228, 228, 275, 276, 228, 228, 3, 221, 228, 6, + 228, 6, 1804, 225, 228, 211, 212, 102, 733, 211, + 212, 221, 737, 223, 198, 199, 200, 201, 301, 302, + 303, 553, 554, 221, 229, 198, 199, 200, 201, 211, + 212, 221, 315, 316, 218, 219, 198, 199, 200, 201, + 87, 573, 90, 90, 92, 218, 219, 84, 4, 332, + 87, 334, 225, 90, 6, 7, 218, 219, 198, 199, + 200, 201, 69, 198, 199, 200, 201, 221, 214, 215, + 198, 199, 200, 201, 228, 82, 221, 211, 212, 279, + 280, 218, 219, 218, 219, 221, 93, 287, 225, 221, + 373, 291, 228, 227, 377, 378, 198, 199, 200, 201, + 246, 222, 87, 224, 1986, 90, 227, 390, 211, 212, + 642, 257, 198, 199, 200, 201, 218, 219, 198, 199, + 200, 201, 221, 221, 227, 657, 198, 199, 200, 201, + 228, 224, 211, 212, 227, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 227, 432, + 433, 434, 435, 436, 211, 212, 221, 440, 441, 442, + 443, 444, 445, 228, 447, 121, 122, 123, 124, 221, + 227, 121, 122, 117, 211, 212, 90, 127, 383, 135, + 224, 464, 138, 227, 221, 211, 212, 455, 222, 133, + 224, 228, 1994, 221, 228, 202, 221, 141, 142, 143, + 227, 227, 229, 147, 148, 149, 150, 214, 215, 254, + 255, 256, 221, 211, 212, 222, 261, 262, 263, 502, + 211, 212, 221, 230, 211, 212, 221, 373, 117, 227, + 211, 212, 222, 438, 959, 6, 227, 227, 963, 246, + 227, 446, 90, 222, 133, 224, 227, 211, 212, 228, + 257, 228, 141, 142, 143, 221, 301, 302, 147, 148, + 149, 150, 221, 227, 547, 548, 121, 122, 90, 276, + 315, 316, 127, 419, 90, 421, 422, 423, 424, 425, + 426, 427, 8, 429, 430, 229, 432, 433, 434, 92, + 436, 211, 212, 221, 440, 441, 442, 443, 444, 211, + 212, 87, 562, 563, 2106, 211, 212, 227, 211, 212, + 593, 594, 595, 211, 212, 227, 8, 849, 213, 214, + 215, 227, 605, 606, 227, 220, 609, 211, 212, 227, + 211, 212, 537, 538, 539, 540, 211, 212, 228, 117, + 229, 624, 222, 227, 218, 219, 227, 227, 631, 218, + 219, 6, 227, 90, 228, 133, 228, 211, 212, 228, + 560, 561, 87, 141, 142, 143, 373, 650, 568, 147, + 148, 149, 150, 227, 211, 212, 211, 212, 211, 212, + 87, 1815, 221, 1817, 223, 1819, 225, 670, 211, 212, + 227, 230, 227, 87, 227, 1120, 90, 1122, 92, 1124, + 90, 1126, 222, 222, 227, 211, 212, 227, 227, 677, + 4, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 227, 429, 430, 4, 432, 433, 434, 435, 436, + 211, 212, 221, 440, 441, 442, 443, 444, 445, 4, + 447, 211, 212, 211, 212, 221, 227, 223, 227, 732, + 229, 229, 84, 736, 230, 87, 4, 227, 90, 227, + 92, 1897, 221, 609, 1900, 733, 221, 1903, 223, 737, + 225, 223, 222, 228, 224, 230, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 218, 219, 775, 1044, 220, 6, 779, 218, 219, 782, + 228, 221, 785, 229, 787, 211, 212, 228, 791, 792, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 209, 210, 6, 219, 218, 227, 2007, 219, - 216, 217, 216, 217, 216, 217, 600, 7, 225, 603, - 226, 223, 226, 221, 2034, 1261, 2036, 890, 2038, 892, - 216, 217, 895, 87, 2044, 219, 90, 221, 92, 887, - 226, 1277, 219, 219, 228, 908, 6, 910, 776, 912, - 219, 914, 221, 781, 223, 219, 919, 226, 219, 228, - 221, 924, 223, 219, 90, 221, 92, 228, 2067, 119, - 120, 2070, 228, 219, 2073, 125, 219, 2076, 221, 87, - 223, 219, 90, 946, 92, 228, 219, 950, 2098, 844, - 2100, 954, 2102, 6, 119, 120, 851, 219, 84, 962, - 125, 87, 857, 951, 90, 219, 92, 955, 219, 225, - 220, 227, 222, 961, 962, 225, 225, 6, 227, 2118, - 220, 2120, 222, 2122, 987, 225, 220, 226, 222, 992, - 225, 225, 227, 221, 997, 998, 999, 1000, 6, 1543, - 1544, 1268, 225, 220, 227, 222, 226, 1010, 225, 1012, - 226, 219, 1424, 1425, 219, 219, 115, 1429, 1430, 226, - 6, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 219, 219, 131, 1036, 218, 226, 1039, 1040, 1041, 1042, - 139, 140, 141, 225, 219, 227, 145, 146, 147, 148, - 4, 220, 776, 222, 226, 779, 225, 781, 1434, 219, - 219, 1064, 225, 225, 227, 227, 90, 219, 92, 1057, - 1058, 225, 225, 227, 227, 225, 225, 227, 227, 219, - 1083, 1084, 225, 1086, 227, 1088, 1089, 226, 226, 1092, - 1093, 1094, 1095, 226, 962, 6, 1099, 225, 1101, 227, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 225, 225, 227, 227, 218, 225, - 225, 227, 227, 225, 992, 227, 219, 225, 227, 227, - 998, 999, 1000, 225, 225, 227, 227, 225, 225, 227, - 227, 225, 1010, 227, 1012, 226, 219, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 4, 225, 6, 227, 218, 225, 225, 227, 227, - 225, 221, 227, 1419, 225, 1421, 227, 225, 219, 227, - 225, 219, 227, 230, 1079, 1173, 1174, 6, 235, 225, - 6, 227, 239, 225, 219, 227, 1064, 1200, 1201, 1202, - 219, 219, 249, 225, 225, 227, 227, 219, 1475, 1197, - 1198, 228, 6, 1216, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 225, 225, - 227, 227, 218, 225, 225, 227, 227, 225, 962, 227, - 1135, 1136, 1137, 225, 225, 227, 227, 225, 6, 227, - 1253, 1254, 1796, 226, 226, 1258, 1259, 225, 6, 227, - 225, 225, 227, 227, 225, 1268, 227, 225, 992, 227, - 12, 13, 6, 1261, 998, 999, 1000, 226, 225, 1282, - 227, 328, 225, 330, 227, 225, 1010, 227, 1012, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 1306, 226, 221, 1296, 218, 225, 1312, - 227, 6, 1036, 225, 221, 227, 221, 1320, 226, 164, - 1323, 1324, 228, 6, 6, 1328, 1329, 226, 1331, 6, - 1333, 6, 1335, 226, 1337, 1338, 1339, 226, 6, 221, - 1064, 1753, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 1356, 4, 218, 223, 99, 7, 101, - 226, 225, 227, 225, 106, 107, 108, 109, 1371, 111, - 112, 113, 220, 7, 6, 117, 1379, 6, 1381, 6, - 220, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 7, 7, 6, 6, 218, - 6, 6, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 460, 156, 157, 158, 218, 220, 226, - 7, 1424, 1425, 6, 4, 7, 1429, 1430, 1418, 6, - 6, 6, 62, 161, 62, 226, 250, 251, 252, 62, - 1443, 62, 222, 257, 258, 259, 1449, 220, 1436, 6, - 6, 498, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 220, 220, 225, 225, - 218, 222, 1475, 225, 1369, 225, 225, 1467, 1481, 225, - 225, 220, 220, 297, 298, 227, 44, 220, 1491, 44, - 44, 1494, 44, 6, 541, 542, 1763, 311, 312, 4, - 4, 7, 164, 6, 1494, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 6, - 6, 6, 164, 218, 7, 164, 7, 7, 7, 1253, - 1254, 7, 1535, 1536, 1258, 1259, 7, 7, 7, 7, - 587, 588, 589, 6, 1268, 226, 7, 4, 6, 1539, - 220, 225, 599, 600, 220, 220, 225, 220, 225, 223, - 1543, 1544, 1565, 6, 1810, 225, 227, 220, 1571, 227, - 222, 618, 226, 7, 7, 1443, 7, 7, 625, 226, - 226, 1449, 226, 223, 227, 226, 6, 6, 1591, 1577, - 44, 44, 44, 44, 6, 6, 6, 644, 1601, 6, - 226, 7, 221, 6, 219, 115, 219, 1597, 1611, 1504, - 6, 206, 7, 1616, 7, 92, 7, 664, 7, 7, - 7, 131, 6, 1491, 4, 7, 1616, 1617, 1618, 139, - 140, 141, 7, 115, 7, 145, 146, 147, 148, 1642, - 7, 4, 5, 7, 4, 7, 219, 226, 6, 131, - 1545, 7, 1547, 6, 1549, 7, 7, 139, 140, 141, - 226, 7, 1665, 145, 146, 147, 148, 1913, 7, 7, - 7, 1566, 1567, 1568, 1569, 1570, 1571, 7, 6, 6, - 6, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 90, 7, 6, 6, 57, 58, 59, 60, 1701, 4, - 1424, 1425, 65, 66, 67, 1429, 1430, 70, 4, 4, - 1713, 1957, 226, 225, 6, 226, 6, 227, 81, 1443, - 227, 6, 769, 6, 6, 1449, 773, 4, 6, 225, - 1733, 220, 115, 225, 7, 223, 220, 6, 785, 786, - 6, 219, 6, 6, 6, 227, 1736, 1750, 131, 222, - 1753, 1475, 226, 220, 226, 6, 139, 140, 141, 223, - 1763, 226, 145, 146, 147, 148, 108, 1491, 115, 1772, - 226, 226, 6, 6, 6, 6, 1779, 1780, 226, 6, - 5, 4, 6, 220, 131, 6, 226, 1790, 226, 7, - 1793, 838, 139, 140, 141, 221, 6, 226, 145, 146, - 147, 148, 226, 6, 6, 6, 1809, 4, 226, 226, - 1813, 226, 226, 1796, 222, 6, 6, 180, 181, 182, - 160, 226, 226, 6, 226, 6, 225, 4, 7, 192, - 6, 194, 195, 6, 6, 4, 6, 223, 6, 6, - 6, 6, 4, 890, 227, 892, 7, 6, 895, 6, - 6, 6, 5, 164, 6, 226, 6, 220, 6, 222, - 115, 908, 6, 910, 6, 912, 6, 914, 6, 1872, - 6, 115, 919, 6, 6, 6, 131, 924, 6, 6, - 227, 225, 6, 6, 139, 140, 141, 131, 1891, 6, - 145, 146, 147, 148, 6, 139, 140, 141, 6, 6, - 225, 145, 146, 147, 148, 1800, 6, 1802, 220, 1804, - 6, 6, 6, 6, 6, 1918, 7, 6, 6, 1814, - 1815, 1816, 1817, 1818, 6, 12, 13, 1917, 226, 6, - 5, 7, 226, 226, 88, 6, 6, 115, 226, 226, - 987, 227, 6, 227, 6, 226, 226, 6, 159, 6, - 226, 226, 6, 131, 6, 227, 1959, 1960, 1961, 1962, - 1963, 139, 140, 141, 6, 6, 227, 145, 146, 147, - 148, 227, 227, 6, 6, 162, 1871, 1980, 6, 6, - 1875, 6, 6, 227, 6, 6, 6, 226, 6, 6, - 220, 226, 1039, 1040, 1041, 1042, 6, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 7, 6, - 226, 226, 99, 226, 101, 6, 6, 226, 6, 106, - 107, 108, 109, 227, 111, 112, 113, 226, 6, 1753, - 117, 115, 2022, 6, 6, 6, 6, 6, 1933, 1763, - 6, 6, 1937, 6, 6, 6, 2049, 227, 6, 227, - 6, 226, 1099, 227, 6, 219, 6, 2060, 6, 6, - 220, 6, 6, 226, 6, 6, 99, 6, 1963, 156, - 157, 158, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 6, 226, 6, 2092, - 218, 226, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 226, 2110, 226, 2112, - 218, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 226, 6, 226, 226, 218, - 6, 6, 6, 6, 6, 6, 6, 2032, 2033, 2142, - 227, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 115, 6, 6, 6, 218, - 6, 194, 195, 196, 197, 198, 1291, 6, 1778, 1921, - 494, 131, 3, 1305, 529, 3, 3, 3, 211, 139, - 140, 141, 215, 12, 13, 145, 146, 147, 148, 1792, - 1471, -1, 2060, -1, 1918, -1, 229, 230, 231, 232, - -1, 234, 235, 236, 237, -1, 239, 240, 241, 242, - 243, 7, 8, -1, -1, -1, 249, -1, -1, -1, - -1, 254, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 269, -1, -1, -1, - 218, -1, 2110, -1, 2112, 278, 279, -1, -1, -1, - -1, -1, -1, -1, 287, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, -1, 227, -1, -1, - 99, -1, 101, -1, 2142, 115, -1, 106, 107, 108, - 109, -1, 111, 112, 113, -1, -1, -1, 117, -1, - -1, 131, -1, -1, -1, 328, 329, 330, -1, 139, - 140, 141, -1, -1, -1, 145, 146, 147, 148, 342, - 343, 344, -1, 346, -1, -1, -1, 350, 351, 352, - -1, -1, 355, -1, -1, -1, -1, 156, 157, 158, - -1, -1, -1, -1, 1381, -1, 2060, 370, -1, -1, - -1, -1, 375, 376, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 389, 390, -1, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, -1, -1, -1, -1, -1, 2110, 227, 2112, -1, - -1, -1, -1, -1, 427, -1, -1, -1, 227, -1, - 433, -1, 435, 6, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 2142, -1, - -1, -1, 218, -1, -1, -1, 459, 460, -1, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, -1, -1, 479, 480, 200, 201, + 212, 213, 214, 215, 227, 221, 229, 223, 220, 225, + 6, 7, 84, 738, 230, 87, 1970, 229, 90, 822, + 92, 227, 227, 229, 229, 117, 1271, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 133, 1287, 846, 117, 220, 6, 1263, 1264, 141, + 142, 143, 1268, 1269, 222, 147, 148, 149, 150, 227, + 133, 222, 221, 224, 789, 2021, 227, 221, 141, 142, + 143, 221, 221, 223, 147, 148, 149, 150, 223, 606, + 230, 221, 609, 211, 212, 213, 214, 215, 87, 221, + 221, 90, 220, 92, 2048, 898, 2050, 900, 2052, 221, + 903, 222, 7, 224, 2058, 221, 227, 895, 227, 222, + 229, 224, 221, 916, 227, 918, 782, 920, 8, 922, + 227, 787, 229, 221, 927, 2081, 221, 221, 2084, 932, + 221, 2087, 852, 222, 2090, 224, 223, 229, 227, 859, + 228, 222, 222, 224, 224, 865, 227, 227, 227, 6, + 229, 954, 227, 4, 229, 958, 229, 228, 2112, 962, + 2114, 228, 2116, 117, 227, 6, 229, 970, 227, 221, + 229, 959, 227, 221, 229, 963, 2132, 228, 2134, 133, + 2136, 969, 970, 227, 227, 229, 229, 141, 142, 143, + 228, 221, 995, 147, 148, 149, 150, 1000, 117, 221, + 228, 1446, 1005, 1006, 1007, 1008, 227, 1278, 229, 1557, + 1558, 90, 221, 92, 133, 1018, 90, 1020, 92, 221, + 1436, 1437, 141, 142, 143, 1441, 1442, 228, 147, 148, + 149, 150, 227, 227, 229, 229, 227, 227, 229, 229, + 117, 1044, 228, 228, 1047, 1048, 1049, 1050, 227, 227, + 229, 229, 227, 221, 229, 782, 133, 227, 785, 229, + 787, 227, 221, 229, 141, 142, 143, 228, 223, 1072, + 147, 148, 149, 150, 227, 229, 229, 1065, 1066, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 1091, 1092, + 221, 1094, 220, 1096, 1097, 221, 221, 1100, 1101, 1102, + 1103, 1104, 1105, 8, 970, 227, 1109, 229, 1111, 227, + 229, 229, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 227, 227, 229, 229, + 220, 227, 222, 229, 1000, 227, 227, 229, 229, 117, + 1006, 1007, 1008, 4, 227, 6, 229, 227, 221, 229, + 6, 227, 1018, 229, 1020, 133, 227, 227, 229, 229, + 227, 221, 229, 141, 142, 143, 227, 1087, 229, 147, + 148, 149, 150, 227, 227, 229, 229, 6, 227, 1431, + 229, 1433, 232, 227, 227, 229, 229, 237, 227, 221, + 229, 241, 4, 5, 221, 1183, 1184, 227, 227, 229, + 229, 221, 227, 253, 229, 228, 1072, 1210, 1211, 1212, + 227, 227, 229, 229, 221, 227, 1487, 229, 221, 1207, + 1208, 230, 227, 1226, 229, 1145, 1146, 1147, 227, 227, + 229, 229, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 228, 227, 970, 229, 57, 58, 59, 60, 228, + 227, 229, 229, 65, 66, 67, 223, 227, 70, 229, + 1263, 1264, 1810, 223, 228, 1268, 1269, 223, 227, 81, + 229, 6, 6, 1000, 6, 1278, 227, 166, 229, 1006, + 1007, 1008, 227, 1271, 229, 227, 230, 229, 228, 1292, + 6, 1018, 6, 1020, 228, 6, 6, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 6, 228, 1316, 228, 220, 6, 1044, 4, 1322, + 223, 12, 13, 220, 225, 7, 228, 227, 222, 1332, + 229, 227, 1335, 1336, 7, 6, 117, 1340, 1341, 6, + 1343, 6, 1345, 222, 1347, 1072, 1349, 1350, 1351, 7, + 7, 1767, 133, 6, 6, 6, 222, 6, 228, 6, + 141, 142, 143, 7, 6, 1368, 147, 148, 149, 150, + 182, 183, 184, 7, 6, 6, 6, 4, 62, 62, + 1383, 1306, 194, 62, 196, 197, 62, 163, 1391, 228, + 1393, 224, 222, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 6, 6, 218, 219, 99, 100, + 101, 117, 103, 225, 464, 222, 228, 108, 109, 110, + 111, 222, 113, 114, 115, 227, 44, 133, 119, 227, + 227, 227, 227, 1436, 1437, 141, 142, 143, 1441, 1442, + 227, 147, 148, 149, 150, 227, 224, 222, 229, 222, + 222, 44, 1455, 44, 44, 6, 4, 4, 1461, 166, + 1448, 1381, 6, 6, 6, 6, 166, 158, 159, 160, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 1487, 7, 7, 7, 220, 166, + 1493, 7, 7, 7, 6, 228, 7, 547, 548, 7, + 1503, 7, 7, 1506, 7, 1430, 1777, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 7, 6, 229, 7, 220, 4, 6, 222, 227, + 222, 227, 229, 222, 227, 222, 1263, 1264, 229, 227, + 225, 1268, 1269, 593, 594, 595, 1549, 1550, 229, 6, + 6, 1278, 222, 228, 1479, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 224, + 7, 7, 1824, 220, 624, 7, 1579, 1557, 1558, 225, + 228, 1506, 1585, 228, 7, 228, 6, 6, 229, 1455, + 228, 44, 44, 44, 44, 1461, 1516, 6, 6, 117, + 650, 6, 1605, 1591, 6, 228, 7, 223, 6, 6, + 221, 221, 1615, 6, 208, 133, 7, 7, 92, 7, + 670, 7, 1625, 141, 142, 143, 7, 1630, 1553, 147, + 148, 149, 150, 7, 6, 6, 4, 1503, 7, 1559, + 7, 1561, 7, 1563, 7, 7, 7, 4, 228, 221, + 6, 228, 7, 1656, 6, 90, 7, 7, 7, 7, + 1580, 1581, 1582, 1583, 1584, 1585, 7, 7, 7, 6, + 6, 6, 227, 7, 6, 1927, 1679, 6, 4, 4, + 4, 4, 228, 228, 6, 6, 1611, 6, 6, 229, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, -1, -1, -1, 498, 218, -1, -1, -1, - -1, 504, -1, 225, -1, 227, 509, -1, -1, -1, - -1, -1, -1, -1, 517, 518, -1, -1, 1535, 1536, - -1, -1, 525, 526, -1, -1, -1, 530, 531, 532, - 533, 534, 535, -1, 537, -1, 539, -1, 541, 542, + 212, 213, 214, 215, 6, 1630, 1631, 1632, 220, 1436, + 1437, 229, 1715, 6, 1441, 1442, 7, 6, 227, 1971, + 222, 222, 6, 227, 1727, 775, 225, 221, 1455, 779, + 228, 6, 225, 222, 1461, 6, 224, 6, 228, 6, + 110, 228, 6, 228, 1747, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 228, + 1487, 1764, 6, 220, 1767, 228, 6, 6, 6, 6, + 6, 6, 5, 228, 1777, 6, 1503, 4, 6, 228, + 228, 7, 228, 1786, 223, 6, 6, 6, 6, 4, + 1793, 1794, 6, 6, 228, 228, 846, 228, 228, 228, + 228, 1804, 228, 224, 1807, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 222, + 1823, 6, 6, 220, 1827, 1750, 4, 227, 4, 162, + 1810, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 6, 6, 6, 898, 220, + 900, 6, 6, 903, 6, 6, 6, 4, 7, 7, + 6, 117, 6, 6, 6, 5, 916, 6, 918, 228, + 920, 6, 922, 6, 166, 6, 6, 927, 6, 6, + 6, 6, 932, 1886, 6, 6, 6, 6, 6, 227, + 6, 6, 6, 6, 1814, 222, 1816, 227, 1818, 6, + 6, 6, 1905, 6, 6, 225, 7, 6, 1828, 1829, + 1830, 1831, 1832, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 6, 228, 1932, + 6, 220, 228, 228, 6, 5, 7, 6, 228, 6, + 228, 6, 229, 88, 229, 995, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 228, 6, 228, 228, 220, 1885, 228, 4, 5, 1889, + 1973, 1974, 1975, 1976, 1977, 161, 6, 229, 229, 229, + 6, 6, 6, 6, 6, 6, 6, 164, 6, 6, + 6, 1994, 6, 6, 6, 6, 228, 1047, 1048, 1049, + 1050, 6, 6, 228, 7, 222, 1931, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 6, 12, 13, 228, + 57, 58, 59, 60, 228, 228, 6, 1947, 65, 66, + 67, 1951, 228, 70, 6, 229, 6, 117, 228, 6, + 1767, 6, 6, 6, 81, 6, 6, 6, 6, 6, + 1777, 6, 6, 6, 229, 221, 228, 1977, 228, 1109, + 2063, 228, 6, 6, 229, 222, 228, 6, 6, 6, + 6, 2074, 6, 6, 6, 6, 6, 6, 6, 6, + 101, 6, 6, 6, 6, 6, 6, 228, 6, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 6, 6, 6, 2106, 99, 100, 101, 6, 103, 6, + 6, 2036, 1301, 108, 109, 110, 111, 228, 113, 114, + 115, 2124, 498, 2126, 119, 1935, 2046, 2047, 228, 1792, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 228, 182, 183, 184, 220, 3, + 228, 1315, 3, 2156, 3, 3, 535, 194, 1483, 196, + 197, 1806, -1, 158, 159, 160, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 196, 197, 198, 199, 200, + -1, -1, -1, -1, -1, 222, -1, 224, -1, -1, + -1, -1, 213, -1, -1, -1, 217, -1, -1, -1, + -1, -1, -1, -1, -1, 1932, -1, -1, 2074, -1, + 231, 232, 233, 234, -1, 236, 237, 238, 239, -1, + 241, 242, 243, 244, 245, -1, 247, 248, -1, -1, + -1, -1, 253, -1, 229, -1, -1, 258, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 273, -1, -1, -1, 220, -1, 2124, -1, + 2126, 282, 283, -1, -1, -1, -1, -1, 6, -1, + 291, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, -1, -1, -1, -1, 220, + 2156, -1, -1, -1, -1, -1, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + -1, 332, 333, 334, 220, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 346, 347, 348, -1, 350, + -1, -1, -1, 354, 355, 356, -1, -1, 359, -1, + -1, -1, -1, 1393, -1, -1, -1, 2074, -1, -1, + -1, -1, -1, 374, -1, -1, -1, -1, 379, 380, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1571, -1, 559, 560, 561, 562, - 563, 564, -1, -1, -1, 568, 569, 570, 571, 572, - 573, 574, 575, 576, -1, -1, -1, 580, -1, 582, - 583, -1, -1, -1, 587, 588, 589, -1, -1, 592, - 593, 594, 595, 596, -1, -1, 599, 600, 601, 602, - -1, 604, -1, -1, 607, 12, 13, -1, -1, -1, - -1, -1, -1, -1, -1, 618, -1, -1, -1, -1, - -1, 624, 625, -1, 627, 628, -1, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 644, 115, -1, -1, 218, 649, 650, -1, 652, - 653, -1, -1, -1, -1, 6, -1, -1, 131, -1, - 663, 664, -1, -1, -1, 668, 139, 140, 141, -1, - -1, -1, 145, 146, 147, 148, -1, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, - -1, -1, 99, -1, 101, -1, 1713, -1, -1, 106, - 107, 108, 109, -1, 111, 112, 113, -1, -1, -1, - 117, -1, -1, -1, -1, -1, 1733, -1, -1, 230, - -1, -1, -1, -1, 235, -1, -1, -1, 239, -1, - 733, -1, -1, 1750, -1, -1, 115, -1, 249, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 156, - 157, 158, 245, -1, 227, -1, 6, -1, -1, -1, - -1, -1, 765, 766, -1, -1, 769, 770, 771, -1, - 773, 774, 265, 266, 267, -1, 1793, -1, 271, 782, - -1, -1, 785, 786, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1813, -1, -1, 802, - -1, -1, -1, -1, -1, -1, 299, -1, -1, -1, - 813, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 227, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 838, -1, -1, -1, 218, - -1, -1, 845, 846, -1, -1, -1, -1, 851, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, -1, -1, 868, -1, 218, 871, -1, + -1, -1, 393, 394, -1, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 2124, -1, 2126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 373, 374, -1, -1, -1, -1, 6, 890, -1, 892, - -1, -1, 895, 386, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 908, -1, 910, -1, 912, - -1, 914, -1, -1, -1, -1, 919, -1, -1, -1, - -1, 924, -1, -1, -1, -1, -1, 930, -1, 932, - 933, 424, -1, -1, -1, -1, -1, -1, -1, -1, - 943, -1, 1959, 1960, 1961, 1962, 1963, -1, -1, 460, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, -1, -1, -1, -1, 218, -1, - -1, -1, 975, -1, 12, 13, -1, -1, -1, -1, - 983, 984, 985, -1, 987, -1, -1, -1, -1, -1, - -1, -1, 995, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1009, -1, -1, -1, - -1, 1014, -1, -1, -1, -1, -1, -1, -1, -1, - 1023, -1, -1, -1, -1, -1, 1029, -1, -1, -1, - 541, 542, 2049, -1, -1, -1, 1039, 1040, 1041, 1042, - -1, -1, 1045, -1, -1, 7, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, - -1, 99, -1, 101, -1, 12, 13, -1, 106, 107, - 108, 109, -1, 111, 112, 113, 587, 588, 589, 117, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, -1, -1, 1099, -1, 218, -1, - -1, -1, -1, -1, -1, -1, -1, 618, 1111, -1, - 1113, -1, 1115, -1, 1117, -1, -1, -1, 156, 157, - 158, -1, -1, -1, -1, -1, 12, 13, -1, -1, - -1, -1, -1, 644, -1, -1, 1139, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, - -1, -1, 99, 664, 101, -1, -1, -1, -1, 106, - 107, 108, 109, -1, 111, 112, 113, -1, -1, 1172, - 117, -1, -1, -1, -1, -1, -1, -1, 1181, 1182, - -1, 1184, 1185, -1, 1187, 1188, 1189, -1, -1, 227, - -1, -1, 1195, -1, -1, -1, -1, -1, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 156, - 157, 158, -1, 99, -1, 101, -1, -1, -1, 1222, - 106, 107, 108, 109, 1227, 111, 112, 113, -1, 12, - 13, 117, -1, 726, -1, -1, -1, 730, 200, 201, + 431, -1, -1, -1, -1, -1, 437, -1, 439, 6, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2156, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 463, 464, -1, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + -1, -1, 483, 484, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, + -1, 502, 220, -1, -1, -1, -1, 508, -1, -1, + -1, -1, 513, -1, -1, -1, -1, -1, -1, 1549, + 1550, -1, 523, 524, -1, -1, -1, -1, -1, -1, + 531, 532, -1, -1, -1, 536, 537, 538, 539, 540, + 541, -1, 543, -1, 545, -1, 547, 548, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, -1, + -1, -1, -1, 220, 565, 566, 567, 568, 569, 570, + -1, -1, -1, 574, 575, 576, 577, 578, 579, 580, + 581, 582, -1, -1, -1, 586, -1, 588, 589, -1, + -1, -1, 593, 594, 595, -1, -1, 598, 599, 600, + 601, 602, -1, -1, 605, 606, 607, 608, -1, 610, + -1, -1, 613, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 624, -1, 6, -1, -1, -1, 630, + 631, -1, 633, 634, -1, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 650, + -1, -1, -1, 220, 655, 656, -1, 658, 659, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 669, 670, + -1, -1, -1, 674, -1, -1, -1, -1, 3, 4, + -1, -1, -1, -1, 9, 10, 11, -1, -1, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, -1, -1, -1, -1, -1, 1747, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 53, 54, + 55, 56, -1, -1, -1, -1, 61, -1, 739, -1, + -1, -1, -1, -1, -1, -1, -1, 72, 73, 74, + -1, -1, -1, -1, -1, 80, 6, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, -1, + 771, 772, -1, 220, 775, 776, 777, 1807, 779, 780, + -1, -1, -1, -1, -1, -1, -1, 788, -1, -1, + 791, 792, -1, -1, -1, -1, -1, 1827, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 810, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 821, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, -1, -1, -1, -1, 220, + -1, -1, -1, -1, -1, 846, -1, -1, -1, -1, + -1, -1, 853, 854, -1, -1, 181, -1, 859, -1, + 185, -1, -1, -1, 189, 190, 191, 192, 193, -1, + -1, -1, 197, -1, -1, 876, -1, -1, 879, -1, + -1, -1, -1, -1, -1, 232, 211, 212, -1, -1, + 237, 216, -1, -1, 241, -1, 221, 898, -1, 900, + -1, 226, 903, 228, -1, -1, 253, -1, -1, -1, + -1, -1, -1, -1, -1, 916, -1, 918, -1, 920, + -1, 922, -1, -1, -1, -1, 927, -1, -1, -1, + -1, 932, 6, -1, -1, -1, -1, 938, -1, 940, + 941, -1, -1, 1973, 1974, 1975, 1976, 1977, -1, -1, + 951, -1, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 983, -1, -1, 332, -1, 334, -1, -1, + 991, 992, 993, -1, 995, -1, -1, -1, -1, -1, + -1, -1, 1003, 12, 13, -1, -1, -1, -1, -1, + 7, 8, -1, -1, -1, -1, 1017, -1, -1, -1, + -1, 1022, -1, -1, -1, -1, -1, -1, -1, -1, + 1031, -1, -1, 2063, -1, -1, 1037, -1, -1, -1, + -1, -1, -1, 249, -1, -1, 1047, 1048, 1049, 1050, + -1, -1, 1053, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 269, 270, 271, 7, -1, -1, 275, + -1, -1, -1, -1, -1, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, -1, -1, -1, -1, + 99, 100, 101, -1, 103, -1, -1, 303, -1, 108, + 109, 110, 111, -1, 113, 114, 115, -1, 1109, -1, + 119, -1, -1, -1, -1, -1, -1, 464, -1, -1, + 1121, -1, 1123, -1, 1125, -1, 1127, -1, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, -1, -1, -1, -1, 220, -1, 1149, 158, + 159, 160, -1, -1, -1, 502, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + -1, 377, 378, -1, 220, -1, -1, -1, -1, -1, + -1, 1182, -1, 229, 390, -1, -1, -1, -1, -1, + 1191, 1192, -1, 1194, 1195, -1, 1197, 1198, 1199, -1, + 547, 548, -1, -1, 1205, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, -1, + 229, -1, 428, 220, -1, -1, -1, -1, -1, -1, + -1, 1232, -1, -1, -1, -1, 1237, 12, 13, -1, + -1, -1, -1, -1, -1, -1, 593, 594, 595, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 605, 606, + -1, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, -1, -1, 624, 1279, 220, + -1, -1, -1, -1, 631, -1, -1, -1, -1, 1290, + 1291, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 650, 1305, 1306, -1, -1, -1, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + -1, -1, -1, 670, 99, 100, 101, -1, 103, -1, + -1, -1, -1, 108, 109, 110, 111, -1, 113, 114, + 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1357, 1358, 1359, -1, + -1, 12, 13, -1, -1, -1, -1, 1368, -1, 1370, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1381, -1, -1, 158, 159, 160, -1, -1, -1, -1, + -1, -1, 1393, -1, -1, -1, -1, 1398, -1, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, -1, -1, -1, -1, 220, -1, -1, + -1, -1, -1, 1424, 1425, 1426, 229, -1, 775, 4, + 5, -1, 779, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 791, 792, -1, -1, 99, 100, + 101, -1, 103, -1, 229, 1456, -1, 108, 109, 110, + 111, -1, 113, 114, 115, -1, -1, -1, 119, 44, + 45, 46, 47, 48, 49, 50, 51, 52, -1, 1480, + -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, + 65, 66, 67, 1494, -1, 70, -1, -1, 1499, 846, + -1, -1, -1, -1, -1, -1, 81, 158, 159, 160, + -1, -1, -1, 1514, 1515, -1, -1, -1, -1, -1, + 1521, 1522, -1, -1, -1, 1526, 732, -1, -1, -1, + 736, -1, -1, -1, -1, -1, -1, -1, 1539, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1549, 1550, + 1551, 898, 1553, 900, -1, -1, 903, -1, -1, -1, + -1, -1, -1, -1, 1565, -1, -1, -1, -1, 916, + 8, 918, -1, 920, -1, 922, -1, -1, 229, -1, + 927, -1, -1, -1, 1585, 932, -1, 1588, -1, -1, + 12, 13, -1, -1, 1595, 1596, 1597, 1598, 1599, 1600, + 1601, -1, -1, -1, -1, -1, -1, 182, 183, 184, + 1611, -1, -1, -1, -1, -1, 822, -1, -1, 194, + -1, 196, 197, -1, -1, -1, -1, -1, -1, -1, + 1631, -1, 12, 13, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 995, -1, + -1, -1, 220, 1654, 1655, -1, 8, -1, -1, -1, + 228, 1662, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, -1, -1, -1, -1, 99, 100, 101, + -1, 103, -1, -1, -1, -1, 108, 109, 110, 111, + -1, 113, 114, 115, -1, -1, -1, 119, -1, 1700, + 1047, 1048, 1049, 1050, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 8, -1, 1718, -1, 99, + 100, 101, -1, 103, -1, -1, 1727, -1, 108, 109, + 110, 111, -1, 113, 114, 115, 158, 159, 160, 119, + -1, 1742, -1, 1744, -1, -1, 1747, -1, 954, -1, + -1, -1, 958, -1, -1, -1, 962, -1, -1, -1, + -1, -1, 1109, 1764, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 158, 159, + 160, 1782, 220, -1, -1, -1, 1787, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1005, + -1, -1, -1, -1, -1, -1, 1807, 229, -1, -1, + -1, -1, -1, 1814, -1, 1816, -1, 1818, -1, -1, + -1, -1, -1, -1, -1, -1, 1827, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1837, 1838, 1839, 1840, + 1841, 1842, -1, -1, -1, -1, -1, -1, -1, 229, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, -1, -1, -1, -1, 218, -1, 769, -1, - -1, -1, 773, -1, -1, -1, 1269, -1, -1, -1, - 156, 157, 158, -1, -1, -1, -1, 1280, 1281, -1, - 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1295, 1296, -1, -1, -1, -1, -1, -1, - -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, -1, -1, -1, -1, 99, -1, 101, -1, - -1, 814, -1, 106, 107, 108, 109, 838, 111, 112, - 113, -1, -1, -1, 117, -1, -1, -1, -1, -1, - -1, 227, 1345, 1346, 1347, -1, -1, -1, -1, -1, - -1, 12, 13, 1356, -1, 1358, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1369, -1, -1, -1, - -1, -1, -1, 156, 157, 158, -1, -1, 1381, 890, - -1, 892, -1, 1386, 895, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 908, -1, 910, - -1, 912, -1, 914, -1, -1, -1, -1, 919, 1412, - 1413, 1414, -1, 924, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, -1, -1, -1, -1, 99, -1, - 101, 1444, -1, -1, 227, 106, 107, 108, 109, -1, - 111, 112, 113, 946, -1, -1, 117, 950, -1, -1, - -1, 954, -1, -1, -1, 1468, -1, -1, -1, 8, - -1, -1, -1, -1, -1, -1, 987, -1, -1, 1482, - -1, -1, -1, -1, 1487, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 156, 157, 158, -1, 1502, - 1503, -1, -1, -1, 997, -1, 1509, 1510, -1, -1, - -1, 1514, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1525, -1, -1, -1, -1, -1, 1039, 1040, - 1041, 1042, 1535, 1536, 1537, -1, 1539, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1551, -1, - -1, -1, 12, 13, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 227, -1, 1571, -1, - -1, 1574, -1, -1, -1, -1, -1, -1, 1581, 1582, - 1583, 1584, 1585, 1586, 1587, -1, -1, -1, 1099, -1, - 1083, 1084, -1, 1086, 1597, 1088, 1089, -1, -1, 1092, - 1093, 1094, 1095, -1, -1, -1, -1, -1, 1101, -1, - -1, -1, -1, -1, 1617, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, -1, -1, 1640, 1641, 99, - -1, 101, -1, -1, -1, 1648, 106, 107, 108, 109, - -1, 111, 112, 113, -1, -1, -1, 117, -1, 12, - 13, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, -1, -1, -1, -1, 218, - -1, -1, -1, 1686, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 8, 156, 157, 158, -1, - -1, 1704, -1, -1, -1, -1, -1, 1200, 1201, 1202, - 1713, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1216, -1, 1728, -1, 1730, -1, -1, - 1733, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, -1, -1, -1, -1, 99, 1750, 101, -1, - -1, -1, -1, 106, 107, 108, 109, -1, 111, 112, - 113, -1, -1, -1, 117, 1768, -1, 227, -1, -1, - 1773, -1, -1, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, 1282, - 1793, 218, -1, -1, -1, -1, -1, 1800, 225, 1802, - 227, 1804, -1, 156, 157, 158, -1, -1, -1, -1, - 1813, 8, -1, 1306, -1, -1, -1, -1, -1, 1312, - 1823, 1824, 1825, 1826, 1827, 1828, -1, 1320, -1, -1, - 1323, 1324, -1, -1, -1, 1328, 1329, 8, 1331, -1, - 1333, -1, 1335, -1, 1337, 1338, 1339, -1, 1851, 1852, - -1, -1, -1, 1856, -1, -1, -1, -1, -1, -1, - -1, 8, -1, 1356, -1, 1868, -1, -1, -1, -1, - 1381, -1, -1, -1, 227, -1, 1879, -1, 1371, -1, - -1, -1, -1, -1, -1, -1, 1379, 200, 201, 202, + 212, 213, 214, 215, 1865, 1866, -1, -1, 220, 1870, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1882, -1, -1, -1, 1091, 1092, -1, 1094, -1, + 1096, 1097, 1893, 8, 1100, 1101, 1102, 1103, 1104, 1105, + -1, -1, -1, -1, -1, 1111, -1, -1, -1, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, -1, -1, -1, -1, 218, -1, -1, -1, -1, - -1, -1, 1915, -1, -1, -1, -1, -1, 1921, -1, - -1, -1, -1, -1, -1, -1, -1, 1930, -1, -1, + 213, 214, 215, -1, -1, -1, -1, 220, 1929, -1, + -1, -1, -1, -1, 1935, 12, 13, -1, -1, -1, + -1, -1, -1, 1944, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1958, -1, -1, + 1961, -1, -1, 1964, -1, -1, -1, 1968, -1, 8, + -1, -1, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, + 1981, 1982, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1992, -1, -1, 1995, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1210, 1211, 1212, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, + 1226, -1, 99, 100, 101, -1, 103, -1, -1, -1, + -1, 108, 109, 110, 111, -1, 113, 114, 115, -1, + -1, -1, 119, -1, 2045, -1, 1393, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1944, -1, -1, 1947, -1, -1, 1950, -1, -1, - -1, 1954, -1, -1, -1, -1, 1959, 1960, 1961, 1962, - 1963, 1964, 1965, 1966, 1967, 1968, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1978, -1, -1, 1981, -1, - -1, -1, -1, -1, -1, 8, -1, -1, 1481, -1, + -1, -1, 2063, -1, 2065, 2066, 2067, 2068, 2069, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1494, -1, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, -1, 1535, 1536, -1, -1, 2031, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, -1, -1, -1, 2049, 218, 2051, 2052, - 2053, 2054, 2055, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, 1565, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 629, -1, -1, -1, -1, - -1, -1, 2095, 2096, -1, -1, -1, -1, 1591, -1, - -1, -1, -1, 2106, 2107, 2108, 2109, -1, 1601, -1, - -1, -1, 21, 22, -1, -1, -1, -1, 1611, -1, - -1, -1, -1, 1616, -1, -1, -1, -1, 672, 673, - 674, 675, 676, 677, 678, 679, 680, 681, 682, -1, - 684, 685, 686, 687, 688, 689, 690, -1, -1, 1642, - 694, 695, 696, -1, -1, -1, 700, 701, -1, 703, - -1, -1, -1, -1, 708, 709, 710, -1, 712, -1, - -1, -1, 1665, -1, -1, 719, 720, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, -1, -1, 737, -1, 218, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1701, -1, - -1, -1, -1, -1, 123, -1, -1, -1, -1, -1, - -1, -1, 1733, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, -1, -1, - -1, 160, 161, 162, 163, -1, 165, 166, 167, 168, - 169, 170, -1, -1, 173, -1, -1, -1, -1, -1, - 179, 180, -1, -1, -1, -1, 185, 186, -1, 1772, - -1, -1, 1793, -1, -1, -1, 1779, 1780, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1790, -1, -1, - -1, -1, 1813, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1809, -1, -1, 3, - 4, 5, -1, -1, -1, 9, 10, 11, -1, -1, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, -1, -1, -1, 900, -1, -1, -1, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, -1, 1872, - -1, 65, 66, 67, -1, -1, 70, -1, 72, 73, - 74, -1, -1, -1, -1, -1, 80, 81, 1891, -1, - -1, -1, -1, -1, -1, -1, -1, 316, -1, -1, - 319, 320, 321, 322, -1, -1, 4, 5, -1, -1, + -1, 158, 159, 160, -1, -1, 1292, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, -1, -1, -1, -1, 220, -1, -1, 2109, 2110, + 1316, -1, -1, -1, -1, -1, 1322, -1, -1, 2120, + 2121, 2122, 2123, -1, -1, -1, 1332, -1, -1, 1335, + 1336, -1, -1, -1, 1340, 1341, -1, 1343, -1, 1345, + -1, 1347, -1, 1349, 1350, 1351, -1, -1, -1, -1, + -1, -1, 229, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1368, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 1383, -1, -1, + -1, 220, -1, -1, 635, 1391, -1, -1, -1, -1, + -1, -1, -1, -1, 21, 22, -1, -1, -1, -1, + -1, -1, 1549, 1550, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, + -1, -1, 220, -1, 222, -1, 224, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 1585, 690, + 691, 692, 693, 694, 695, 696, -1, -1, -1, 700, + 701, 702, -1, -1, -1, 706, 707, -1, 709, -1, + -1, -1, -1, 714, 715, 716, -1, 718, -1, -1, + -1, -1, -1, -1, 725, 726, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1493, -1, -1, + 12, 13, 743, -1, -1, -1, -1, -1, 125, -1, + 1506, -1, -1, -1, -1, -1, -1, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, -1, -1, -1, 162, 163, 164, 165, -1, + 167, 168, 169, 170, 171, 172, -1, -1, 175, -1, + -1, -1, -1, -1, 181, 182, -1, -1, -1, -1, + 187, 188, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 1579, -1, -1, -1, 99, 100, 101, + 1727, 103, -1, -1, -1, -1, 108, 109, 110, 111, + -1, 113, 114, 115, -1, -1, -1, 119, -1, 1605, + 1747, -1, -1, -1, -1, -1, -1, -1, -1, 1615, + -1, -1, -1, -1, -1, -1, -1, 1764, -1, 1625, + -1, -1, -1, -1, 1630, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 158, 159, 160, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1959, 1960, - 1961, 1962, 1963, -1, -1, -1, 44, 45, 46, 47, - 48, 49, 50, 51, 52, -1, -1, -1, -1, 57, - 58, 59, 60, -1, -1, -1, -1, 65, 66, 67, - -1, -1, 70, -1, -1, -1, -1, 1980, 172, -1, - -1, -1, -1, 81, -1, 179, 180, 181, 182, 183, - 1044, -1, -1, 187, 188, 189, 190, 191, 192, -1, - 194, 195, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 209, 210, -1, -1, -1, - 214, -1, -1, 1077, 1078, 219, -1, 221, 2049, 223, - 224, -1, 226, -1, 228, 454, -1, -1, -1, -1, - 3, 4, -1, -1, -1, -1, 9, 10, 11, -1, - -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, - -1, -1, 180, 181, 182, -1, -1, -1, -1, 2092, - 53, 54, 55, 56, 192, -1, 194, 195, 61, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, - 73, 74, -1, -1, -1, -1, -1, 80, -1, -1, - -1, 84, -1, -1, 87, -1, -1, 90, -1, 92, - -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 112, - -1, -1, -1, -1, -1, -1, 119, 120, 121, 122, - 123, -1, -1, 126, 127, 128, 129, 130, -1, -1, - 133, -1, -1, 136, -1, -1, 1230, -1, -1, -1, - -1, -1, 1236, 1237, 1238, 1239, 1240, -1, 1242, -1, - 1244, 1245, -1, 1247, 1248, -1, -1, 1251, 1252, 1253, - -1, -1, -1, -1, 1258, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 179, -1, -1, -1, - 183, -1, -1, -1, 187, 188, 189, 190, 191, -1, - -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 209, 210, -1, -1, - -1, 214, -1, -1, -1, -1, 219, -1, -1, -1, - -1, 224, -1, 226, 227, 3, 4, -1, -1, -1, + 1656, -1, -1, -1, -1, -1, -1, 908, -1, -1, + 1807, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1679, -1, -1, -1, -1, -1, -1, + 1827, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 320, -1, -1, 323, 324, 325, 326, + -1, -1, -1, -1, -1, -1, -1, 229, -1, 1715, + -1, -1, -1, -1, -1, -1, 343, -1, -1, -1, + -1, -1, -1, -1, -1, 3, 4, -1, -1, -1, -1, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, 54, 55, 56, -1, - -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 72, 73, 74, 1391, -1, -1, - -1, -1, 80, -1, -1, -1, 84, -1, -1, 87, - -1, -1, 90, 1407, 92, -1, -1, -1, -1, -1, - 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 1424, -1, -1, -1, 112, 1429, -1, -1, -1, -1, - -1, 119, 120, 121, 122, 123, -1, -1, 126, 127, - 128, 129, 130, -1, -1, 133, -1, -1, 136, -1, - -1, -1, -1, -1, -1, -1, -1, 1461, 1462, -1, - -1, 1465, 1466, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, -1, -1, -1, -1, -1, 225, -1, - 227, 179, -1, -1, -1, 183, -1, -1, -1, 187, - 188, 189, 190, 191, 4, 5, -1, 195, -1, -1, + 1786, -1, -1, 61, -1, -1, -1, 1793, 1794, -1, + -1, -1, -1, -1, 72, 73, 74, -1, 1804, -1, + -1, 1052, 80, -1, -1, -1, 84, -1, -1, 87, + -1, -1, 90, -1, 92, -1, -1, 1823, -1, -1, + 98, -1, -1, -1, -1, -1, 1973, 1974, 1975, 1976, + 1977, 458, -1, -1, 1085, 1086, 114, -1, -1, -1, + -1, -1, -1, 121, 122, 123, 124, 125, -1, -1, + 128, 129, 130, 131, 132, -1, -1, 135, -1, -1, + 138, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, -1, -1, -1, -1, 220, + 1886, -1, -1, -1, -1, -1, 227, -1, 229, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1905, + -1, -1, -1, 181, -1, -1, -1, 185, -1, -1, + -1, 189, 190, 191, 192, 193, 2063, 5, -1, 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 209, 210, -1, -1, -1, 214, -1, -1, -1, - -1, 219, -1, -1, -1, -1, 224, -1, -1, 227, - -1, -1, -1, -1, 44, 45, 46, 47, 48, 49, - 50, 51, 52, -1, -1, -1, -1, 57, 58, 59, - 60, -1, -1, -1, -1, 65, 66, 67, -1, -1, - 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 81, -1, -1, -1, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, -1, - 1604, 1605, -1, 218, 1608, 1609, -1, -1, -1, -1, - 1614, 1615, 227, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 4, 5, -1, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, -1, - -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, - 1019, 1020, 227, -1, -1, -1, 1025, 1026, -1, -1, - -1, -1, 44, 45, 46, 47, 48, 49, 50, 51, - 52, -1, -1, -1, -1, 57, 58, 59, 60, -1, - 180, 181, 182, 65, 66, 67, -1, -1, 70, -1, - -1, -1, 192, -1, 194, 195, -1, -1, -1, 81, - -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, - -1, -1, -1, 9, 10, 11, 1720, 1721, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, -1, -1, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, -1, -1, -1, 65, - 66, 67, -1, -1, 70, -1, 72, 73, 74, -1, - -1, -1, -1, -1, 80, 81, -1, -1, 84, -1, - -1, 87, -1, -1, 90, -1, 92, -1, 180, 181, - 182, -1, 98, -1, -1, -1, -1, -1, -1, -1, - 192, -1, 194, -1, -1, -1, 112, -1, -1, -1, - -1, -1, -1, 119, 120, 121, 122, 123, -1, -1, - 126, 127, 128, 129, 130, -1, -1, 133, -1, -1, - 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 1219, 1220, -1, -1, -1, 1224, 1225, -1, -1, -1, - -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, -1, -1, -1, -1, 218, - -1, -1, -1, 179, 180, 181, 182, 183, 227, -1, - -1, 187, 188, 189, 190, 191, 192, -1, 194, 195, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 209, 210, -1, -1, -1, 214, -1, - -1, -1, -1, 219, -1, 3, 4, 5, 224, -1, - 226, 9, 10, 11, -1, -1, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, -1, -1, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, -1, -1, -1, 65, 66, 67, - -1, -1, 70, -1, 72, 73, 74, -1, -1, -1, - -1, -1, 80, 81, -1, -1, 84, -1, -1, 87, - -1, -1, 90, -1, 92, -1, -1, -1, -1, -1, - 98, -1, 5, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 112, -1, -1, -1, -1, -1, - -1, 119, 120, 121, 122, 123, -1, -1, 126, 127, - 128, 129, 130, -1, -1, 133, -1, -1, 136, -1, + -1, -1, -1, 211, 212, -1, -1, -1, 216, -1, + -1, -1, -1, 221, -1, -1, -1, -1, 226, -1, + 228, 229, -1, -1, -1, -1, 44, 45, 46, 47, + 48, 49, 50, 51, 52, -1, -1, -1, -1, 57, + 58, 59, 60, -1, -1, -1, -1, 65, 66, 67, + -1, -1, 70, -1, -1, -1, -1, -1, 1994, 1240, + -1, -1, -1, 81, -1, 1246, 1247, 1248, 1249, 1250, + -1, 1252, -1, 1254, 1255, -1, 1257, 1258, -1, -1, + 1261, 1262, 1263, -1, -1, -1, -1, 1268, -1, -1, + 3, 4, 5, -1, -1, -1, 9, 10, 11, -1, + -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, -1, -1, -1, 12, 13, -1, -1, 44, 45, 46, 47, 48, 49, 50, 51, 52, - -1, -1, -1, -1, 57, 58, 59, 60, -1, 2083, - -1, -1, 65, 66, 67, -1, -1, 70, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 81, -1, - -1, 179, 180, 181, 182, 183, -1, -1, -1, 187, - 188, 189, 190, 191, 192, -1, 194, 195, -1, -1, + 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, + -1, -1, 65, 66, 67, -1, -1, 70, -1, 72, + 73, 74, -1, -1, 182, 183, 184, 80, 81, -1, + 2106, -1, -1, -1, -1, -1, 194, -1, 196, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, -1, -1, -1, -1, 220, -1, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + -1, -1, -1, -1, 99, 100, 101, -1, 103, -1, + -1, -1, 1403, 108, 109, 110, 111, -1, 113, 114, + 115, -1, -1, -1, 119, -1, -1, -1, 1419, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 136, -1, -1, -1, 1436, -1, -1, -1, -1, + 1441, 174, -1, -1, -1, -1, -1, -1, 181, 182, + 183, 184, 185, 158, 159, 160, 189, 190, 191, 192, + 193, 194, -1, 196, 197, -1, -1, -1, -1, -1, + -1, -1, 1473, 1474, -1, -1, 1477, 1478, 211, 212, + -1, -1, -1, 216, -1, -1, -1, -1, 221, -1, + 223, -1, 225, 226, -1, 228, -1, 230, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 209, 210, -1, -1, -1, 214, -1, -1, -1, - -1, 219, -1, 3, 4, 5, 224, -1, 226, 9, + -1, -1, 3, 4, -1, -1, -1, -1, 9, 10, + 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 53, 54, 55, 56, -1, -1, -1, -1, + 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 72, 73, 74, -1, -1, -1, -1, -1, 80, + -1, -1, -1, 84, -1, -1, 87, -1, -1, 90, + -1, 92, -1, -1, -1, -1, -1, 98, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1618, 1619, -1, + -1, 1622, 1623, 114, -1, -1, -1, 1628, 1629, -1, + 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, + 131, 132, -1, -1, 135, -1, -1, 138, -1, -1, + 1027, 1028, -1, -1, -1, -1, 1033, 1034, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, -1, -1, -1, -1, 220, -1, -1, -1, + -1, -1, -1, 227, -1, 229, -1, -1, -1, -1, + 181, -1, -1, -1, 185, -1, -1, -1, 189, 190, + 191, 192, 193, -1, -1, -1, 197, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 211, 212, -1, -1, -1, 216, -1, -1, -1, -1, + 221, -1, -1, 1734, 1735, 226, -1, -1, 229, -1, + -1, -1, -1, 3, 4, 5, -1, -1, -1, 9, + 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, -1, -1, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, -1, -1, -1, 65, 66, 67, -1, -1, + 70, -1, 72, 73, 74, -1, -1, -1, -1, -1, + 80, 81, -1, -1, 84, -1, -1, 87, -1, -1, + 90, -1, 92, -1, -1, -1, -1, -1, 98, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1229, 1230, 114, -1, -1, 1234, 1235, -1, + -1, 121, 122, 123, 124, 125, -1, -1, 128, 129, + 130, 131, 132, -1, -1, 135, -1, -1, 138, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, -1, -1, -1, -1, 220, -1, -1, + -1, -1, -1, -1, 227, -1, 229, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 181, 182, 183, 184, 185, -1, -1, -1, 189, + 190, 191, 192, 193, 194, -1, 196, 197, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 211, 212, -1, -1, -1, 216, -1, -1, -1, + -1, 221, -1, 3, 4, 5, 226, -1, 228, 9, + 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, -1, -1, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, -1, -1, -1, 65, 66, 67, -1, -1, + 70, -1, 72, 73, 74, -1, -1, -1, -1, -1, + 80, 81, -1, -1, 84, -1, -1, 87, -1, -1, + 90, -1, 92, -1, -1, -1, -1, -1, 98, 4, + 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 114, -1, -1, -1, -1, -1, + -1, 121, 122, 123, 124, 125, -1, -1, 128, 129, + 130, 131, 132, -1, -1, 135, 2097, -1, 138, 44, + 45, 46, 47, 48, 49, 50, 51, 52, -1, -1, + -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, + 65, 66, 67, -1, -1, 70, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 81, -1, -1, -1, + -1, 181, 182, 183, 184, 185, -1, -1, -1, 189, + 190, 191, 192, 193, 194, -1, 196, 197, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 211, 212, -1, -1, -1, 216, -1, -1, -1, + -1, 221, -1, 3, 4, 5, 226, -1, 228, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 53, 54, 55, 56, 180, 181, 182, - -1, 61, -1, -1, -1, -1, -1, 12, 13, 192, - -1, 194, 72, 73, 74, -1, -1, -1, -1, -1, + -1, -1, -1, 53, 54, 55, 56, 182, 183, 184, + -1, 61, -1, -1, -1, -1, -1, 12, 13, 194, + -1, 196, 72, 73, 74, -1, -1, -1, -1, -1, 80, -1, -1, -1, 84, -1, -1, 87, -1, -1, - 90, -1, 92, -1, -1, -1, -1, -1, 98, -1, + 90, -1, 92, -1, -1, -1, -1, -1, 98, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, -1, 114, -1, -1, 220, -1, -1, + -1, 121, 122, 123, 124, 125, 229, -1, 128, 129, + 130, 131, 132, -1, -1, 135, -1, -1, 138, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + -1, -1, -1, -1, 99, 100, 101, -1, 103, -1, + -1, -1, -1, 108, 109, 110, 111, -1, 113, 114, + 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, + -1, 181, -1, -1, -1, 185, -1, -1, -1, 189, + 190, 191, 192, 193, -1, -1, -1, 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 112, -1, -1, -1, -1, -1, -1, 119, - 120, 121, 122, 123, -1, -1, 126, 127, 128, 129, - 130, -1, -1, 133, -1, -1, 136, -1, -1, 84, + -1, 211, 212, 158, 159, 160, 216, -1, -1, -1, + -1, 221, -1, 3, 4, 5, 226, -1, 228, 9, + 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, -1, -1, -1, + -1, -1, -1, -1, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 12, 13, 229, 65, 66, 67, -1, -1, + 70, -1, 72, 73, 74, -1, -1, -1, -1, -1, + 80, 81, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, -1, -1, 229, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, -1, -1, -1, -1, 220, -1, + -1, -1, 224, -1, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, -1, -1, -1, -1, 99, + 100, 101, -1, 103, -1, -1, -1, -1, 108, 109, + 110, 111, -1, 113, 114, 115, -1, -1, -1, 119, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 181, 182, 183, 184, 185, -1, -1, -1, 189, + 190, 191, 192, 193, 194, -1, 196, 197, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 158, 159, + 160, 211, 212, -1, -1, -1, 216, -1, -1, -1, + -1, 221, -1, 3, 4, 5, 226, -1, 228, 9, + 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 53, 54, 55, 56, -1, -1, 229, + -1, 61, -1, -1, -1, -1, -1, 12, 13, -1, + -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, + 80, -1, -1, -1, 84, -1, -1, 87, -1, -1, + 90, -1, 92, -1, -1, -1, -1, -1, 98, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, -1, 114, -1, -1, 220, -1, -1, + -1, 121, 122, 123, 124, 125, 229, -1, 128, 129, + 130, 131, 132, -1, -1, 135, -1, -1, 138, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - -1, -1, -1, -1, 99, -1, 101, -1, -1, -1, - -1, 106, 107, 108, 109, -1, 111, 112, 113, -1, - -1, -1, 117, -1, -1, -1, -1, -1, -1, 179, - -1, -1, -1, 183, -1, -1, -1, 187, 188, 189, - 190, 191, -1, -1, -1, 195, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 209, - 210, 156, 157, 158, 214, -1, -1, -1, -1, 219, - -1, 3, 4, 5, 224, -1, 226, 9, 10, 11, - -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, -1, -1, -1, 12, 13, - -1, -1, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - -1, -1, -1, 65, 66, 67, -1, -1, 70, -1, - 72, 73, 74, -1, -1, -1, -1, -1, 80, 81, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, -1, -1, -1, -1, 218, -1, - -1, -1, -1, -1, -1, -1, -1, 227, -1, -1, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, -1, -1, -1, -1, 99, -1, 101, -1, -1, - -1, -1, 106, 107, 108, 109, -1, 111, 112, 113, - -1, -1, -1, 117, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, -1, -1, - 134, -1, 218, -1, -1, -1, -1, -1, -1, -1, - -1, 227, -1, -1, -1, -1, -1, 179, 180, 181, - 182, 183, 156, 157, 158, 187, 188, 189, 190, 191, - 192, -1, 194, 195, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 209, 210, -1, - -1, -1, 214, -1, -1, -1, -1, 219, -1, 3, - 4, 5, 224, -1, 226, 9, 10, 11, -1, -1, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, - 54, 55, 56, -1, -1, -1, -1, 61, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 72, 73, - 74, -1, -1, -1, -1, -1, 80, -1, -1, -1, - 84, -1, -1, 87, -1, -1, 90, -1, 92, -1, - -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 112, -1, - -1, -1, -1, -1, -1, 119, 120, 121, 122, 123, - -1, -1, 126, 127, 128, 129, 130, -1, -1, 133, - -1, -1, 136, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, - 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 179, -1, -1, -1, 183, - -1, -1, -1, 187, 188, 189, 190, 191, -1, -1, - -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 209, 210, -1, -1, -1, - 214, -1, -1, -1, -1, 219, -1, 3, 4, 5, - 224, -1, 226, 9, 10, 11, -1, -1, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, -1, -1, -1, -1, -1, -1, -1, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, -1, -1, -1, 65, - 66, 67, -1, -1, 70, -1, 72, 73, 74, -1, - 3, 4, 5, -1, 80, 81, 9, 10, 11, -1, - -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, -1, -1, -1, -1, -1, -1, - -1, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, - -1, -1, 65, 66, 67, -1, -1, 70, -1, 72, - 73, 74, -1, -1, -1, -1, -1, 80, 81, -1, - -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, -1, -1, -1, -1, 218, - -1, -1, -1, 179, 180, 181, 182, 183, 227, -1, - -1, 187, 188, 189, 190, 191, 192, -1, 194, 195, + -1, -1, -1, -1, 99, 100, 101, -1, 103, -1, + -1, -1, -1, 108, 109, 110, 111, -1, 113, 114, + 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, + -1, 181, -1, -1, -1, 185, -1, -1, -1, 189, + 190, 191, 192, 193, -1, -1, -1, 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 209, 210, -1, -1, -1, 214, -1, - -1, -1, -1, 219, -1, -1, -1, -1, 224, -1, - 226, -1, -1, -1, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, -1, -1, - -1, -1, 218, -1, -1, -1, 179, 180, 181, 182, - 183, 227, -1, -1, 187, 188, 189, 190, 191, 192, - -1, 194, 195, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 209, 210, -1, -1, - -1, 214, -1, -1, -1, -1, 219, -1, 3, 4, - -1, 224, -1, 226, 9, 10, 11, -1, -1, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 53, 54, - 55, 56, -1, -1, -1, -1, 61, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 72, 73, 74, - -1, -1, -1, -1, -1, 80, -1, -1, -1, 84, - -1, -1, 87, -1, -1, 90, -1, 92, -1, -1, - -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 112, -1, -1, - -1, -1, -1, -1, 119, 120, 121, 122, 123, -1, - -1, 126, 127, 128, 129, 130, -1, -1, 133, -1, - -1, 136, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, -1, -1, -1, -1, - 218, -1, -1, -1, -1, -1, -1, -1, -1, 227, + -1, 211, 212, 158, 159, 160, 216, -1, -1, -1, + -1, 221, -1, 3, 4, 5, 226, -1, 228, 9, + 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, -1, -1, -1, + -1, -1, -1, -1, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, -1, -1, -1, 65, 66, 67, -1, -1, + 70, -1, 72, 73, 74, -1, 3, 4, 5, -1, + 80, 81, 9, 10, 11, -1, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + -1, -1, -1, -1, -1, -1, -1, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, -1, -1, -1, 65, 66, + 67, -1, -1, 70, -1, 72, 73, 74, -1, -1, + -1, -1, -1, 80, 81, -1, -1, -1, -1, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, -1, -1, -1, -1, 220, -1, -1, + -1, 181, 182, 183, 184, 185, 229, -1, -1, 189, + 190, 191, 192, 193, 194, -1, 196, 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 179, -1, -1, -1, 183, -1, - -1, -1, 187, 188, 189, 190, 191, -1, -1, -1, - 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 209, 210, -1, -1, -1, 214, - -1, -1, -1, -1, 219, -1, 3, 4, -1, 224, - -1, 226, 9, 10, 11, -1, -1, 14, 15, 16, + -1, 211, 212, -1, -1, -1, 216, -1, -1, -1, + -1, 221, -1, -1, -1, -1, 226, -1, 228, -1, + -1, -1, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, 181, 182, 183, 184, 185, 229, + -1, -1, 189, 190, 191, 192, 193, 194, -1, 196, + 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 211, 212, -1, -1, -1, 216, + -1, -1, -1, -1, 221, -1, 3, 4, -1, 226, + -1, 228, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, -1, -1, -1, -1, @@ -4178,107 +4161,108 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, 80, -1, -1, -1, 84, -1, -1, 87, -1, -1, 90, -1, 92, -1, -1, -1, -1, - -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 112, -1, -1, -1, -1, - -1, -1, 119, 120, 121, 122, 123, -1, -1, 126, - 127, 128, 129, 130, -1, -1, 133, -1, -1, 136, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, -1, -1, -1, -1, 218, -1, - -1, -1, -1, -1, -1, -1, -1, 227, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 179, -1, -1, -1, 183, -1, -1, -1, - 187, 188, 189, 190, 191, -1, -1, -1, 195, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 209, 210, -1, -1, -1, 214, -1, -1, - -1, -1, 219, -1, 3, 4, -1, 224, -1, 226, - 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 53, 54, 55, 56, -1, -1, - -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, - -1, 80, -1, -1, -1, 84, -1, -1, 87, -1, - -1, 90, -1, 92, -1, -1, -1, -1, -1, 98, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, - 119, 120, 121, 122, 123, -1, -1, 126, 127, 128, - 129, 130, -1, -1, 133, -1, -1, 136, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, -1, -1, -1, -1, 218, -1, -1, -1, - -1, -1, -1, -1, -1, 227, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 179, -1, -1, -1, 183, -1, -1, -1, 187, 188, - 189, 190, 191, -1, -1, -1, 195, -1, -1, -1, + -1, 98, -1, -1, -1, -1, -1, -1, 4, 5, + -1, -1, -1, -1, -1, -1, -1, 114, -1, -1, + -1, -1, -1, -1, 121, 122, 123, 124, 125, -1, + -1, 128, 129, 130, 131, 132, -1, -1, 135, -1, + -1, 138, -1, -1, -1, -1, -1, -1, 44, 45, + 46, 47, 48, 49, 50, 51, 52, -1, -1, -1, + -1, 57, 58, 59, 60, -1, -1, -1, -1, 65, + 66, 67, -1, -1, 70, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 181, 81, -1, -1, 185, -1, + -1, -1, 189, 190, 191, 192, 193, -1, -1, -1, + 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 211, 212, -1, -1, -1, 216, + -1, -1, -1, -1, 221, -1, 3, 4, -1, 226, + -1, 228, 9, 10, 11, -1, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 53, 54, 55, 56, + -1, -1, -1, -1, 61, -1, 182, 183, 184, -1, + -1, -1, -1, -1, -1, 72, 73, 74, 194, -1, + 196, 197, -1, 80, -1, -1, -1, 84, -1, -1, + 87, -1, -1, 90, -1, 92, -1, -1, -1, -1, + -1, 98, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, 114, -1, -1, + 220, -1, -1, -1, 121, 122, 123, 124, 125, 229, + -1, 128, 129, 130, 131, 132, -1, -1, 135, -1, + -1, 138, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, -1, -1, 229, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 209, 210, -1, -1, -1, 214, -1, -1, -1, -1, - 219, -1, 3, 4, -1, 224, -1, 226, 9, 10, - 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 53, 54, 55, 56, -1, -1, -1, -1, - 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 72, 73, 74, -1, -1, -1, -1, -1, 80, - -1, -1, -1, 84, -1, -1, 87, -1, -1, 90, - -1, 92, -1, -1, -1, -1, -1, 98, -1, -1, + -1, -1, -1, -1, 181, -1, -1, -1, 185, -1, + -1, -1, 189, 190, 191, 192, 193, -1, -1, -1, + 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 211, 212, -1, -1, -1, 216, + -1, -1, -1, -1, 221, -1, 3, 4, -1, 226, + -1, 228, 9, 10, 11, -1, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 53, 54, 55, 56, + -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, + -1, -1, -1, 80, -1, -1, -1, 84, -1, -1, + 87, -1, -1, 90, -1, 92, -1, -1, -1, -1, + -1, 98, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, 114, -1, -1, + 220, -1, -1, -1, 121, 122, 123, 124, 125, 229, + -1, 128, 129, 130, 131, 132, -1, -1, 135, -1, + -1, 138, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, -1, -1, 229, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 112, -1, -1, -1, -1, -1, -1, 119, 120, - 121, 122, 123, -1, -1, 126, 127, 128, 129, 130, - -1, -1, 133, -1, -1, 136, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, - -1, -1, -1, 227, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 179, -1, - -1, -1, 183, -1, -1, -1, 187, 188, 189, 190, - 191, -1, -1, -1, 195, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 209, 210, - -1, -1, -1, 214, -1, -1, -1, -1, 219, -1, - 3, 4, -1, 224, -1, 226, 9, 10, 11, -1, - -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, + -1, -1, -1, -1, 181, -1, -1, -1, 185, -1, + -1, -1, 189, 190, 191, 192, 193, -1, -1, -1, + 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 211, 212, -1, -1, -1, 216, + -1, -1, -1, -1, 221, -1, 3, 4, -1, 226, + -1, 228, 9, 10, 11, -1, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 53, 54, 55, 56, + -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, + -1, -1, -1, 80, -1, -1, -1, 84, -1, -1, + 87, -1, -1, 90, -1, 92, -1, -1, -1, -1, + -1, 98, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, 114, -1, -1, + 220, -1, -1, -1, 121, 122, 123, 124, 125, 229, + -1, 128, 129, 130, 131, 132, -1, -1, 135, -1, + -1, 138, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, -1, -1, 229, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 53, 54, 55, 56, -1, -1, -1, -1, 61, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, - 73, 74, -1, -1, -1, -1, -1, 80, -1, -1, - -1, 84, -1, -1, 87, -1, -1, 90, -1, 92, - -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 112, - -1, -1, -1, -1, -1, -1, 119, 120, 121, 122, - 123, -1, -1, 126, 127, 128, 129, 130, -1, -1, - 133, -1, -1, 136, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, -1, -1, - -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, - -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 179, -1, -1, -1, - 183, -1, -1, -1, 187, 188, 189, 190, 191, -1, - -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 209, 210, -1, -1, - -1, 214, -1, -1, -1, -1, 219, -1, 3, 4, - -1, 224, -1, 226, 9, 10, 11, -1, -1, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 53, 54, - 55, 56, -1, -1, -1, -1, 61, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 72, 73, 74, - -1, -1, -1, -1, -1, 80, -1, -1, -1, 84, - -1, -1, 87, -1, -1, 90, -1, 92, -1, -1, - -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 112, -1, -1, - -1, -1, -1, -1, 119, 120, 121, 122, 123, -1, - -1, 126, 127, 128, 129, 130, -1, -1, 133, -1, - -1, 136, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, -1, -1, -1, -1, - 218, -1, -1, -1, -1, -1, -1, -1, -1, 227, + -1, -1, -1, -1, 181, -1, -1, -1, 185, -1, + -1, -1, 189, 190, 191, 192, 193, -1, -1, -1, + 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 211, 212, -1, -1, -1, 216, + -1, -1, -1, -1, 221, -1, 3, 4, -1, 226, + -1, 228, 9, 10, 11, -1, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 53, 54, 55, 56, + -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, + -1, -1, -1, 80, -1, -1, -1, 84, -1, -1, + 87, -1, -1, 90, -1, 92, -1, -1, -1, -1, + -1, 98, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, 114, -1, -1, + 220, -1, -1, -1, 121, 122, 123, 124, 125, 229, + -1, 128, 129, 130, 131, 132, -1, -1, 135, -1, + -1, 138, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, -1, -1, 229, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 179, -1, -1, -1, 183, -1, - -1, -1, 187, 188, 189, 190, 191, -1, -1, -1, - 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 209, 210, -1, -1, -1, 214, - -1, -1, -1, -1, 219, -1, 3, 4, -1, 224, - -1, 226, 9, 10, 11, -1, -1, 14, 15, 16, + -1, -1, -1, -1, 181, -1, -1, -1, 185, -1, + -1, -1, 189, 190, 191, 192, 193, -1, -1, -1, + 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 211, 212, -1, -1, -1, 216, + -1, -1, -1, -1, 221, -1, 3, 4, -1, 226, + -1, 228, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, -1, -1, -1, -1, @@ -4287,42 +4271,137 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, 80, -1, -1, -1, 84, -1, -1, 87, -1, -1, 90, -1, 92, -1, -1, -1, -1, - -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 112, -1, -1, -1, -1, - -1, -1, 119, 120, 121, 122, 123, -1, -1, 126, - 127, 128, 129, 130, -1, -1, 133, -1, -1, 136, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, -1, -1, -1, -1, 218, -1, - -1, -1, -1, -1, -1, -1, -1, 227, -1, -1, + -1, 98, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, 114, -1, -1, + 220, -1, -1, -1, 121, 122, 123, 124, 125, 229, + -1, 128, 129, 130, 131, 132, -1, -1, 135, -1, + -1, 138, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, -1, -1, 229, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 179, -1, -1, -1, 183, -1, -1, -1, - 187, 188, 189, 190, 191, -1, -1, -1, 195, -1, + -1, -1, -1, -1, 181, -1, -1, -1, 185, -1, + -1, -1, 189, 190, 191, 192, 193, -1, -1, -1, + 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 211, 212, -1, -1, -1, 216, + -1, -1, -1, -1, 221, -1, 3, 4, -1, 226, + -1, 228, 9, 10, 11, -1, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 53, 54, 55, 56, + -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, + -1, -1, -1, 80, -1, -1, -1, 84, -1, -1, + 87, -1, -1, 90, -1, 92, -1, -1, -1, -1, + -1, 98, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, 114, -1, -1, + 220, -1, -1, -1, 121, 122, 123, 124, 125, 229, + -1, 128, 129, 130, 131, 132, -1, -1, 135, -1, + -1, 138, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, -1, -1, 229, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 209, 210, -1, -1, -1, 214, -1, -1, - -1, -1, 219, -1, 3, 4, -1, 224, -1, 226, - 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 53, 54, 55, 56, -1, -1, - -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, - -1, 80, -1, -1, -1, 84, -1, -1, 87, -1, - -1, 90, -1, 92, -1, -1, -1, -1, -1, 98, + -1, -1, -1, -1, 181, -1, -1, -1, 185, -1, + -1, -1, 189, 190, 191, 192, 193, -1, -1, -1, + 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 211, 212, -1, -1, -1, 216, + -1, -1, -1, -1, 221, -1, 3, 4, -1, 226, + -1, 228, 9, 10, 11, -1, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 53, 54, 55, 56, + -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, + -1, -1, -1, 80, -1, -1, -1, 84, -1, -1, + 87, -1, -1, 90, -1, 92, -1, -1, -1, -1, + -1, 98, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, 114, -1, -1, + 220, -1, -1, -1, 121, 122, 123, 124, 125, 229, + -1, 128, 129, 130, 131, 132, -1, -1, 135, -1, + -1, 138, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, -1, -1, 229, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, - 119, 120, 121, 122, 123, -1, -1, 126, 127, 128, - 129, 130, -1, -1, 133, -1, -1, 136, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, -1, -1, -1, -1, 218, -1, -1, -1, - -1, -1, -1, -1, -1, 227, -1, -1, -1, -1, + -1, -1, -1, -1, 181, -1, -1, -1, 185, -1, + -1, -1, 189, 190, 191, 192, 193, -1, -1, -1, + 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 211, 212, -1, -1, -1, 216, + -1, -1, -1, -1, 221, -1, 3, 4, -1, 226, + -1, 228, 9, 10, 11, -1, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 53, 54, 55, 56, + -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, + -1, -1, -1, 80, -1, -1, -1, 84, -1, -1, + 87, -1, -1, 90, -1, 92, -1, -1, -1, -1, + -1, 98, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, 114, -1, -1, + 220, -1, -1, -1, 121, 122, 123, 124, 125, 229, + -1, 128, 129, 130, 131, 132, -1, -1, 135, -1, + -1, 138, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, -1, -1, 229, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 179, -1, -1, -1, 183, -1, -1, -1, 187, 188, - 189, 190, 191, -1, -1, -1, 195, -1, -1, -1, + -1, -1, -1, -1, 181, -1, -1, -1, 185, -1, + -1, -1, 189, 190, 191, 192, 193, -1, -1, -1, + 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 211, 212, -1, -1, -1, 216, + -1, -1, -1, -1, 221, -1, 3, 4, -1, 226, + -1, 228, 9, 10, 11, -1, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 53, 54, 55, 56, + -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, + -1, -1, -1, 80, -1, -1, -1, 84, -1, -1, + 87, -1, -1, 90, -1, 92, -1, -1, -1, -1, + -1, 98, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, 114, -1, -1, + 220, -1, -1, -1, 121, 122, 123, 124, 125, 229, + -1, 128, 129, 130, 131, 132, -1, -1, 135, -1, + -1, 138, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, -1, -1, 229, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 209, 210, -1, -1, -1, 214, -1, -1, -1, -1, - 219, -1, 3, 4, -1, 224, -1, 226, 9, 10, - 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, + -1, -1, -1, -1, 181, -1, -1, -1, 185, -1, + -1, -1, 189, 190, 191, 192, 193, -1, -1, -1, + 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 211, 212, -1, -1, -1, 216, + -1, -1, -1, -1, 221, -1, 3, 4, -1, 226, + -1, 228, 9, 10, 11, -1, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + -1, -1, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 53, 54, 55, 56, + 220, -1, -1, -1, 61, -1, -1, -1, -1, 229, + -1, -1, -1, -1, -1, 72, 73, 74, 3, 4, + 5, -1, -1, 80, 9, 10, 11, -1, -1, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, -1, -1, -1, -1, -1, -1, -1, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, + 65, 66, 67, -1, -1, 70, -1, 72, 73, 74, + -1, -1, -1, -1, -1, 80, 81, -1, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, -1, -1, -1, -1, 220, -1, -1, -1, + -1, -1, -1, -1, 181, 229, -1, -1, 185, -1, + -1, -1, 189, 190, 191, 192, 193, -1, -1, -1, + 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 211, 212, -1, -1, -1, 216, + -1, -1, -1, -1, 221, -1, -1, -1, -1, 226, + -1, 228, -1, -1, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, + -1, -1, 220, -1, -1, -1, 181, 182, 183, 184, + 185, 229, -1, -1, 189, 190, 191, 192, 193, 194, + -1, 196, 197, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 211, 212, -1, -1, + -1, 216, 3, 4, -1, -1, 221, -1, 9, 10, + 11, 226, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -4330,750 +4409,643 @@ static const yytype_int16 yycheck[] = 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, 80, -1, -1, -1, 84, -1, -1, 87, -1, -1, 90, - -1, 92, -1, -1, -1, -1, -1, 98, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 112, -1, -1, -1, -1, -1, -1, 119, 120, - 121, 122, 123, -1, -1, 126, 127, 128, 129, 130, - -1, -1, 133, -1, -1, 136, 200, 201, 202, 203, + -1, 92, -1, -1, -1, -1, -1, 98, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, - -1, -1, -1, 227, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 179, -1, - -1, -1, 183, -1, -1, -1, 187, 188, 189, 190, - 191, -1, -1, -1, 195, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 209, 210, - -1, -1, -1, 214, -1, -1, -1, -1, 219, -1, - 3, 4, -1, 224, -1, 226, 9, 10, 11, -1, - -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, + 214, 215, -1, 114, -1, -1, 220, -1, -1, -1, + 121, 122, 123, 124, 125, 229, -1, 128, 129, 130, + 131, 132, -1, -1, 135, -1, -1, 138, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, -1, -1, -1, -1, 220, -1, -1, -1, + -1, -1, -1, -1, -1, 229, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 53, 54, 55, 56, -1, -1, -1, -1, 61, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, - 73, 74, -1, -1, -1, -1, -1, 80, -1, -1, - -1, 84, -1, -1, 87, -1, -1, 90, -1, 92, - -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 112, - -1, -1, -1, -1, -1, -1, 119, 120, 121, 122, - 123, -1, -1, 126, 127, 128, 129, 130, -1, -1, - 133, -1, -1, 136, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, -1, -1, - -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, - -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 179, -1, -1, -1, - 183, -1, -1, -1, 187, 188, 189, 190, 191, -1, - -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 209, 210, -1, -1, - -1, 214, -1, -1, -1, -1, 219, -1, 3, 4, - -1, 224, -1, 226, 9, 10, 11, -1, -1, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, -1, -1, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 53, 54, - 55, 56, 218, -1, -1, -1, 61, -1, -1, -1, - -1, 227, -1, -1, -1, 3, 4, 72, 73, 74, - -1, 9, 10, 11, -1, 80, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, -1, - -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 53, 54, 55, 56, 218, - -1, -1, -1, 61, -1, -1, -1, -1, 227, -1, - -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, - -1, -1, 80, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, - 227, -1, -1, -1, 179, -1, -1, -1, 183, -1, - -1, -1, 187, 188, 189, 190, 191, -1, -1, -1, - 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 209, 210, -1, -1, -1, 214, - -1, -1, -1, -1, 219, -1, -1, -1, -1, 224, - -1, 226, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, -1, -1, -1, -1, - 218, 179, -1, -1, -1, 183, -1, -1, 226, 187, - 188, 189, 190, 191, -1, -1, -1, 195, -1, -1, + 181, -1, -1, -1, 185, -1, -1, -1, 189, 190, + 191, 192, 193, -1, -1, -1, 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 209, 210, -1, -1, -1, 214, -1, -1, -1, - -1, 219, -1, 3, 4, 5, 224, -1, 226, 9, - 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, + 211, 212, -1, -1, -1, 216, 3, 4, -1, -1, + 221, -1, 9, 10, 11, 226, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + -1, -1, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 53, 54, 55, 56, + 220, -1, -1, -1, 61, -1, -1, -1, -1, 229, + -1, -1, -1, 3, 4, 72, 73, 74, -1, 9, + 10, 11, -1, 80, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, -1, -1, -1, - -1, -1, -1, -1, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, -1, -1, -1, 65, 66, 67, -1, -1, - 70, -1, 72, 73, 74, -1, -1, -1, -1, -1, - 80, 81, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, -1, -1, -1, -1, - 218, -1, -1, -1, -1, -1, -1, -1, -1, 227, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, -1, -1, -1, -1, 218, -1, - -1, -1, -1, -1, -1, -1, -1, 227, 200, 201, + 30, 31, 32, 33, 34, 35, 36, -1, -1, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 53, 54, 55, 56, 220, -1, -1, + -1, 61, -1, -1, -1, -1, 229, -1, -1, -1, + -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, + 80, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, -1, -1, -1, -1, 220, + -1, -1, -1, -1, -1, -1, -1, -1, 229, -1, + -1, -1, -1, -1, 181, -1, -1, -1, 185, -1, + -1, -1, 189, 190, 191, 192, 193, -1, -1, -1, + 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 211, 212, -1, -1, -1, 216, + -1, -1, -1, -1, 221, 222, -1, -1, -1, 226, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, -1, -1, -1, -1, 218, -1, -1, -1, - -1, -1, -1, -1, -1, 227, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 179, - 180, 181, 182, 183, -1, -1, -1, 187, 188, 189, - 190, 191, 192, -1, 194, 195, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 209, - 210, -1, -1, -1, 214, 3, 4, -1, -1, 219, - -1, 9, 10, 11, 224, -1, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 53, 54, 55, 56, -1, - -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, - -1, -1, 80, -1, -1, -1, 84, -1, -1, 87, - -1, -1, 90, -1, 92, -1, -1, -1, -1, -1, - 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 112, -1, -1, -1, -1, -1, - -1, 119, 120, 121, 122, 123, -1, -1, 126, 127, - 128, 129, 130, -1, -1, 133, -1, -1, 136, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, -1, -1, -1, -1, 218, -1, -1, - -1, -1, -1, -1, -1, -1, 227, -1, -1, -1, + 212, 213, 214, 215, -1, -1, -1, -1, 220, -1, + -1, 181, -1, -1, -1, 185, 228, -1, -1, 189, + 190, 191, 192, 193, -1, -1, -1, 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 179, -1, -1, -1, 183, -1, -1, -1, 187, - 188, 189, 190, 191, -1, -1, -1, 195, -1, -1, + -1, 211, 212, -1, -1, -1, 216, -1, -1, -1, + -1, 221, 3, 4, 224, -1, 226, -1, 9, 10, + 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, -1, -1, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 53, 54, 55, 56, 220, -1, -1, -1, + 61, -1, -1, -1, 228, -1, -1, -1, -1, 3, + 4, 72, 73, 74, -1, 9, 10, 11, -1, 80, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, -1, -1, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 53, + 54, 55, 56, 220, -1, 222, -1, 61, -1, -1, + 227, -1, -1, -1, -1, -1, -1, -1, 72, 73, + 74, -1, -1, -1, -1, -1, 80, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, -1, -1, -1, -1, 220, -1, 222, -1, 224, + -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, + 181, -1, -1, -1, 185, -1, -1, -1, 189, 190, + 191, 192, 193, -1, -1, -1, 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 209, 210, -1, -1, -1, 214, 3, 4, -1, - -1, 219, -1, 9, 10, 11, 224, -1, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, -1, -1, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, 53, 54, 55, - 56, 218, -1, -1, -1, 61, -1, -1, -1, -1, - 227, -1, -1, -1, 3, 4, 72, 73, 74, -1, - 9, 10, 11, -1, 80, 14, 15, 16, 17, 18, + 211, 212, -1, -1, -1, 216, -1, -1, -1, -1, + 221, 222, -1, -1, -1, 226, -1, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, -1, -1, -1, -1, 220, -1, 181, -1, -1, + -1, 185, 227, -1, -1, 189, 190, 191, 192, 193, + -1, -1, -1, 197, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 211, 212, -1, + -1, -1, 216, -1, -1, -1, -1, 221, 3, 4, + 224, 6, 226, -1, 9, 10, 11, -1, -1, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, -1, -1, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 53, 54, + 55, 56, 220, -1, -1, -1, 61, -1, -1, 227, + -1, -1, -1, -1, -1, -1, -1, 72, 73, 74, + 3, 4, -1, 6, -1, 80, 9, 10, 11, -1, + -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, -1, -1, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 53, 54, 55, 56, 220, -1, -1, -1, 61, -1, + -1, 227, -1, -1, -1, -1, -1, -1, -1, 72, + 73, 74, -1, -1, -1, -1, -1, 80, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, -1, -1, -1, -1, 220, -1, -1, -1, + -1, -1, -1, 227, -1, -1, 181, -1, -1, -1, + 185, -1, -1, -1, 189, 190, 191, 192, 193, -1, + -1, -1, 197, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 211, 212, -1, -1, + -1, 216, -1, -1, -1, -1, 221, -1, -1, -1, + -1, 226, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, 227, 181, -1, + -1, -1, 185, -1, -1, -1, 189, 190, 191, 192, + 193, -1, -1, -1, 197, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 211, 212, + -1, -1, -1, 216, 3, 4, -1, -1, 221, -1, + 9, 10, 11, 226, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, -1, -1, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 53, 54, 55, 56, 218, -1, - -1, -1, 61, -1, -1, -1, -1, 227, -1, -1, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 53, 54, 55, 56, 220, -1, + -1, -1, 61, -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, - -1, 80, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, -1, -1, -1, -1, - 218, -1, -1, -1, -1, -1, -1, -1, -1, 227, - -1, -1, -1, 179, -1, -1, -1, 183, -1, -1, - -1, 187, 188, 189, 190, 191, -1, -1, -1, 195, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 209, 210, -1, -1, -1, 214, -1, - -1, -1, -1, 219, 220, -1, -1, -1, 224, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, -1, -1, -1, -1, 218, -1, -1, - 179, -1, -1, -1, 183, -1, 227, -1, 187, 188, - 189, 190, 191, -1, -1, -1, 195, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 209, 210, -1, -1, -1, 214, -1, -1, -1, -1, - 219, 3, 4, 222, -1, 224, -1, 9, 10, 11, - -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, -1, -1, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 53, 54, 55, 56, 218, -1, -1, -1, 61, - -1, -1, -1, -1, 227, -1, -1, -1, 3, 4, - 72, 73, 74, -1, 9, 10, 11, -1, 80, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, -1, -1, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 53, 54, - 55, 56, 218, -1, -1, -1, 61, -1, -1, -1, - -1, 227, -1, -1, -1, -1, -1, 72, 73, 74, - -1, -1, -1, -1, -1, 80, 200, 201, 202, 203, + -1, 80, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, 227, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, - -1, -1, -1, 227, -1, -1, -1, 179, -1, -1, - -1, 183, -1, -1, -1, 187, 188, 189, 190, 191, - -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 209, 210, -1, - -1, -1, 214, -1, -1, -1, -1, 219, 220, -1, - -1, -1, 224, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, -1, 179, -1, -1, -1, 183, -1, - 227, -1, 187, 188, 189, 190, 191, -1, -1, -1, - 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 209, 210, -1, -1, -1, 214, - -1, -1, -1, -1, 219, 3, 4, 222, 6, 224, - -1, 9, 10, 11, -1, -1, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, -1, - -1, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 53, 54, 55, 56, 218, - -1, -1, -1, 61, -1, -1, -1, 226, -1, -1, - -1, -1, -1, -1, 72, 73, 74, 3, 4, -1, - 6, -1, 80, 9, 10, 11, -1, -1, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, -1, -1, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, 53, 54, 55, - 56, 218, -1, -1, -1, 61, -1, -1, -1, 226, - -1, -1, -1, -1, -1, -1, 72, 73, 74, -1, - -1, -1, -1, -1, 80, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, -1, - -1, -1, -1, 218, -1, 220, -1, 222, -1, -1, - 225, 179, -1, -1, -1, 183, -1, -1, -1, 187, - 188, 189, 190, 191, -1, -1, -1, 195, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 209, 210, -1, -1, -1, 214, -1, -1, -1, - -1, 219, -1, -1, -1, -1, 224, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, -1, -1, -1, -1, 218, -1, 220, -1, -1, - -1, -1, 225, 179, -1, -1, -1, 183, -1, -1, - -1, 187, 188, 189, 190, 191, -1, -1, -1, 195, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 209, 210, -1, -1, -1, 214, 3, - 4, -1, -1, 219, -1, 9, 10, 11, 224, -1, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, -1, -1, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 53, - 54, 55, 56, 218, -1, -1, -1, 61, -1, -1, - 225, -1, -1, -1, -1, -1, -1, -1, 72, 73, - 74, -1, -1, -1, -1, -1, 80, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, -1, -1, -1, -1, 218, -1, -1, -1, -1, - -1, -1, 225, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, -1, -1, -1, -1, -1, 225, -1, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, -1, -1, -1, -1, 218, -1, - 0, 1, -1, -1, 4, 225, -1, -1, -1, -1, - -1, -1, 12, 13, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 179, -1, -1, -1, 183, - -1, -1, -1, 187, 188, 189, 190, 191, -1, -1, - -1, 195, 42, 43, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 209, 210, -1, -1, -1, - 214, -1, 62, 63, 64, 219, -1, -1, 68, 69, - 224, 71, -1, -1, -1, 75, 76, -1, 78, 79, - -1, -1, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, - -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, - 120, 121, 122, 123, 124, -1, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, 142, 143, 144, -1, -1, -1, -1, -1, - 150, 4, -1, -1, -1, 155, 156, 157, 158, 12, - 13, 161, -1, 163, -1, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, -1, - -1, -1, -1, -1, 184, 185, 186, -1, -1, 42, - 43, -1, -1, 193, -1, 195, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, - 63, 64, -1, -1, -1, 68, 69, -1, 71, -1, + 214, 215, -1, -1, -1, -1, 220, -1, -1, -1, + -1, -1, -1, 227, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, + -1, -1, 220, -1, -1, -1, -1, 0, 1, 227, + -1, 4, -1, -1, -1, -1, -1, -1, -1, 12, + 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 181, -1, -1, -1, 185, -1, -1, -1, + 189, 190, 191, 192, 193, -1, -1, -1, 197, 42, + 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 211, 212, -1, -1, -1, 216, -1, 62, + 63, 64, 221, -1, -1, 68, 69, 226, 71, -1, -1, -1, 75, 76, -1, 78, 79, -1, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, -1, -1, -1, 98, 99, -1, 101, 102, + 93, 94, -1, -1, -1, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, -1, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, -1, -1, -1, 142, - 143, 144, -1, -1, -1, -1, -1, 150, -1, -1, - -1, -1, 155, 156, 157, 158, -1, -1, 161, -1, - 163, -1, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, -1, -1, -1, -1, - -1, 184, 185, 186, -1, -1, -1, -1, -1, -1, - 193, -1, 195, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, -1, -1, -1, -1, -1, 225, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, -1, -1, -1, -1, 218, -1, -1, - -1, -1, -1, -1, 225, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, -1, - -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, - 225, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, -1, -1, -1, -1, 218, - -1, -1, -1, -1, -1, -1, 225, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, -1, -1, -1, -1, 218, -1, -1, -1, -1, - -1, -1, 225, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, -1, -1, -1, -1, -1, 225, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, -1, -1, -1, -1, 218, -1, -1, - -1, -1, -1, -1, 225, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, -1, - -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, - 225, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, -1, -1, -1, -1, 218, - -1, -1, -1, -1, -1, -1, 225, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, -1, -1, -1, -1, 218, -1, -1, -1, -1, - -1, -1, 225, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, -1, -1, -1, -1, -1, 225, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, -1, -1, -1, -1, 218, -1, -1, - -1, -1, -1, -1, 225, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, -1, - -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, - 225, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, -1, -1, -1, -1, 218, - -1, -1, -1, -1, -1, -1, 225, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, -1, -1, -1, -1, 218, -1, -1, -1, -1, - -1, -1, 225, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, -1, -1, -1, -1, -1, 225, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, -1, -1, -1, -1, 218, -1, -1, - -1, -1, -1, -1, 225, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, -1, - -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, - 225, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, -1, -1, -1, -1, 218, - -1, -1, -1, -1, -1, -1, 225, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, -1, -1, -1, -1, 218, -1, -1, -1, -1, - -1, -1, 225, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, -1, -1, -1, -1, -1, 225, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, -1, -1, -1, -1, 218, -1, -1, - -1, -1, -1, -1, 225, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, -1, - -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, - 225, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, -1, -1, -1, -1, 218, - -1, -1, -1, -1, -1, -1, 225, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, -1, -1, -1, -1, 218, -1, -1, -1, -1, - -1, -1, 225, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, -1, -1, -1, -1, -1, 225, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, -1, -1, -1, -1, 218, -1, -1, - -1, -1, -1, -1, 225, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, -1, - -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, - 225, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, -1, -1, -1, -1, 218, - -1, -1, -1, -1, -1, -1, 225, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, -1, -1, -1, -1, 218, -1, -1, -1, -1, - -1, -1, 225, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, -1, -1, -1, -1, -1, 225, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, -1, -1, -1, -1, 218, -1, -1, - -1, -1, -1, -1, 225, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, -1, - -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, - 225, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, -1, -1, -1, -1, 218, - -1, -1, -1, -1, -1, -1, 225, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, -1, -1, -1, -1, 218, -1, -1, -1, -1, - -1, -1, 225, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, -1, -1, -1, -1, -1, 225, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, -1, -1, -1, -1, 218, -1, -1, - -1, -1, -1, -1, 225, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, -1, - -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, - 225, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, -1, -1, -1, -1, 218, - -1, -1, -1, -1, -1, -1, 225, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, -1, -1, -1, -1, 218, -1, -1, -1, -1, - -1, -1, 225, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, -1, -1, -1, -1, -1, 225, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, -1, -1, -1, -1, 218, -1, -1, - -1, -1, -1, -1, 225, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, -1, - -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, - 225, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, -1, -1, -1, -1, 218, - -1, -1, -1, -1, -1, -1, 225, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, -1, -1, -1, -1, 218, -1, -1, -1, -1, - -1, -1, 225, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, -1, -1, -1, -1, -1, 225, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, -1, -1, -1, -1, 218, -1, -1, - -1, -1, -1, -1, 225, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, -1, - -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, - 225, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, -1, -1, -1, -1, 218, - -1, -1, -1, -1, -1, -1, 225, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, -1, -1, -1, -1, 218, -1, -1, -1, -1, - -1, -1, 225, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, -1, -1, -1, -1, -1, 225, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, -1, -1, -1, -1, 218, -1, 220, - -1, 222, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, -1, -1, -1, -1, - 218, -1, -1, -1, 222, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, -1, - -1, -1, -1, 218, -1, -1, -1, 222, 200, 201, + 113, 114, 115, 116, -1, 118, 119, 120, 121, 122, + 123, 124, 125, 126, -1, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, -1, -1, + -1, 144, 145, 146, -1, -1, -1, -1, -1, 152, + 4, -1, -1, -1, 157, 158, 159, 160, 12, 13, + 163, -1, 165, -1, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, -1, -1, + -1, -1, -1, 186, 187, 188, -1, -1, 42, 43, + -1, -1, 195, -1, 197, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 62, 63, + 64, -1, -1, -1, 68, 69, -1, 71, -1, -1, + -1, 75, 76, -1, 78, 79, -1, -1, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, -1, -1, -1, 98, 99, 100, 101, -1, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, 119, 120, 121, 122, 123, + 124, 125, 126, -1, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, -1, -1, -1, + 144, 145, 146, -1, -1, -1, -1, -1, 152, -1, + -1, -1, -1, 157, 158, 159, 160, -1, -1, 163, + -1, 165, -1, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, -1, -1, -1, + -1, -1, 186, 187, 188, -1, -1, -1, -1, -1, + -1, 195, -1, 197, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, + -1, -1, 220, -1, -1, -1, -1, -1, -1, 227, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, -1, -1, -1, -1, 220, -1, + -1, -1, -1, -1, -1, 227, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + -1, -1, -1, -1, 220, -1, -1, -1, -1, -1, + -1, 227, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, 227, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, -1, -1, -1, -1, 220, -1, -1, -1, + -1, -1, -1, 227, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, + -1, -1, 220, -1, -1, -1, -1, -1, -1, 227, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, -1, -1, -1, -1, 220, -1, + -1, -1, -1, -1, -1, 227, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + -1, -1, -1, -1, 220, -1, -1, -1, -1, -1, + -1, 227, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, 227, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, -1, -1, -1, -1, 220, -1, -1, -1, + -1, -1, -1, 227, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, + -1, -1, 220, -1, -1, -1, -1, -1, -1, 227, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, -1, -1, -1, -1, 220, -1, + -1, -1, -1, -1, -1, 227, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + -1, -1, -1, -1, 220, -1, -1, -1, -1, -1, + -1, 227, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, 227, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, -1, -1, -1, -1, 220, -1, -1, -1, + -1, -1, -1, 227, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, + -1, -1, 220, -1, -1, -1, -1, -1, -1, 227, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, -1, -1, -1, -1, 220, -1, + -1, -1, -1, -1, -1, 227, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + -1, -1, -1, -1, 220, -1, -1, -1, -1, -1, + -1, 227, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, 227, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, -1, -1, -1, -1, 220, -1, -1, -1, + -1, -1, -1, 227, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, + -1, -1, 220, -1, -1, -1, -1, -1, -1, 227, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, -1, -1, -1, -1, 220, -1, + -1, -1, -1, -1, -1, 227, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + -1, -1, -1, -1, 220, -1, -1, -1, -1, -1, + -1, 227, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, 227, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, -1, -1, -1, -1, 220, -1, -1, -1, + -1, -1, -1, 227, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, + -1, -1, 220, -1, -1, -1, -1, -1, -1, 227, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, -1, -1, -1, -1, 220, -1, + -1, -1, -1, -1, -1, 227, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + -1, -1, -1, -1, 220, -1, -1, -1, -1, -1, + -1, 227, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, 227, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, -1, -1, -1, -1, 220, -1, -1, -1, + -1, -1, -1, 227, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, + -1, -1, 220, -1, -1, -1, -1, -1, -1, 227, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, -1, -1, -1, -1, 220, -1, + -1, -1, -1, -1, -1, 227, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + -1, -1, -1, -1, 220, -1, -1, -1, -1, -1, + -1, 227, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, 227, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, -1, -1, -1, -1, 220, -1, -1, -1, + -1, -1, -1, 227, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, + -1, -1, 220, -1, -1, -1, -1, -1, -1, 227, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, -1, -1, -1, -1, 220, -1, + -1, -1, -1, -1, -1, 227, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + -1, -1, -1, -1, 220, -1, -1, -1, -1, -1, + -1, 227, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, 227, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, -1, -1, -1, -1, 220, -1, -1, -1, + -1, -1, -1, 227, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, + -1, -1, 220, -1, -1, -1, -1, -1, -1, 227, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, -1, -1, -1, -1, 220, -1, + -1, -1, -1, -1, -1, 227, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + -1, -1, -1, -1, 220, -1, -1, -1, -1, -1, + -1, 227, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, -1, -1, -1, 227, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, -1, -1, -1, -1, 220, -1, -1, -1, + -1, -1, -1, 227, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, + -1, -1, 220, -1, -1, -1, -1, -1, -1, 227, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, -1, -1, -1, -1, 218, -1, -1, -1, - 222, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, -1, -1, -1, -1, 218, - -1, -1, -1, 222, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, -1, -1, - -1, -1, 218, -1, -1, -1, 222, 200, 201, 202, + 212, 213, 214, 215, -1, -1, -1, -1, 220, -1, + -1, -1, 224, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, -1, -1, -1, + -1, 220, -1, -1, -1, 224, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + -1, -1, -1, -1, 220, -1, -1, -1, 224, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, -1, -1, -1, -1, 218, -1, -1, -1, 222, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, -1, -1, -1, -1, 218, -1, - -1, -1, 222, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, -1, -1, 222, 200, 201, 202, 203, + 213, 214, 215, -1, -1, -1, -1, 220, -1, -1, + -1, 224, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, 224, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, -1, + -1, -1, -1, 220, -1, -1, -1, 224, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - -1, -1, -1, -1, 218, -1, -1, -1, 222, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, -1, -1, -1, -1, 218, -1, -1, - -1, 222, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, -1, -1, -1, -1, - 218, -1, -1, -1, 222, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, -1, - -1, -1, -1, 218, -1, -1, -1, 222, 200, 201, + 214, 215, -1, -1, -1, -1, 220, -1, -1, -1, + 224, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, -1, -1, -1, -1, 220, + -1, -1, -1, 224, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, + -1, -1, 220, -1, -1, -1, 224, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, -1, -1, -1, -1, 220, -1, -1, -1, 224, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, -1, -1, -1, -1, 218, -1, -1, -1, - 222, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, -1, -1, -1, -1, 218, - -1, -1, -1, 222, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, -1, -1, - -1, -1, 218, -1, -1, -1, 222, 200, 201, 202, + 212, 213, 214, 215, -1, -1, -1, -1, 220, -1, + -1, -1, 224, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, -1, -1, -1, + -1, 220, -1, -1, -1, 224, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + -1, -1, -1, -1, 220, -1, -1, -1, 224, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, -1, -1, -1, -1, 218, -1, -1, -1, 222, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, -1, -1, -1, -1, 218, -1, - -1, -1, 222, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, 220, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, -1, -1, - -1, -1, 218, -1, 220, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, -1, - -1, -1, -1, 218, -1, 220, 200, 201, 202, 203, + 213, 214, 215, -1, -1, -1, -1, 220, -1, -1, + -1, 224, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, -1, -1, 224, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, -1, + -1, -1, -1, 220, -1, -1, -1, 224, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - -1, -1, -1, -1, 218, -1, 220, 200, 201, 202, + 214, 215, -1, -1, -1, -1, 220, -1, 222, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, -1, -1, -1, -1, 218, -1, 220, 200, 201, + 213, 214, 215, -1, -1, -1, -1, 220, -1, 222, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, -1, -1, -1, -1, 218, -1, 220, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, -1, -1, -1, -1, 218, -1, 220, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, -1, -1, -1, -1, 218, -1, - 220, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, -1, -1, -1, -1, 218, - -1, 220, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, -1, -1, -1, -1, - 218, -1, 220, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, 220, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, -1, -1, - -1, -1, 218, -1, 220, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, -1, - -1, -1, -1, 218, -1, 220, 200, 201, 202, 203, + 212, 213, 214, 215, -1, -1, -1, -1, 220, -1, + 222, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, -1, -1, -1, -1, 220, + -1, 222, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, 222, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, -1, -1, -1, + -1, 220, -1, 222, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, + -1, -1, 220, -1, 222, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, -1, + -1, -1, -1, 220, -1, 222, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + -1, -1, -1, -1, 220, -1, 222, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, -1, -1, -1, -1, 220, -1, 222, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - -1, -1, -1, -1, 218, -1, 220, 200, 201, 202, + 214, 215, -1, -1, -1, -1, 220, -1, 222, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, -1, -1, -1, -1, 218, -1, 220, 200, 201, + 213, 214, 215, -1, -1, -1, -1, 220, -1, 222, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, -1, -1, -1, -1, 218, -1, 220, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, -1, -1, -1, -1, 218, -1, 220, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, -1, -1, -1, -1, 218, -1, - 220, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, -1, -1, -1, -1, 218, - -1, 220, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, -1, -1, -1, -1, - 218, -1, 220, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, 220, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, -1, -1, - -1, -1, 218, -1, 220, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, -1, - -1, -1, -1, 218, -1, 220, 200, 201, 202, 203, + 212, 213, 214, 215, -1, -1, -1, -1, 220, -1, + 222, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, -1, -1, -1, -1, 220, + -1, 222, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, 222, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, -1, -1, -1, + -1, 220, -1, 222, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, + -1, -1, 220, -1, 222, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, -1, + -1, -1, -1, 220, -1, 222, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + -1, -1, -1, -1, 220, -1, 222, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, -1, -1, -1, -1, 220, -1, 222, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - -1, -1, -1, -1, 218, -1, 220, 200, 201, 202, + 214, 215, -1, -1, -1, -1, 220, -1, 222, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, -1, -1, -1, -1, 218, -1, 220, 200, 201, + 213, 214, 215, -1, -1, -1, -1, 220, -1, 222, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, -1, -1, -1, -1, 218, -1, 220, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, -1, -1, -1, -1, 218, -1, 220, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, -1, -1, -1, -1, 218, -1, - 220, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, -1, -1, -1, -1, 218, - -1, 220, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, -1, -1, -1, -1, - 218, -1, 220, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, 220, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, -1, -1, - -1, -1, 218, -1, 220, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, -1, - -1, -1, -1, 218, -1, 220, 200, 201, 202, 203, + 212, 213, 214, 215, -1, -1, -1, -1, 220, -1, + 222, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, -1, -1, -1, -1, 220, + -1, 222, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, 222, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, -1, -1, -1, + -1, 220, -1, 222, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, + -1, -1, 220, -1, 222, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, -1, + -1, -1, -1, 220, -1, 222, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + -1, -1, -1, -1, 220, -1, 222, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, -1, -1, -1, -1, 220, -1, 222, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - -1, -1, -1, -1, 218, -1, 220, 200, 201, 202, + 214, 215, -1, -1, -1, -1, 220, -1, 222, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, -1, -1, -1, -1, 218, -1, 220, 200, 201, + 213, 214, 215, -1, -1, -1, -1, 220, -1, 222, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, -1, -1, -1, -1, 218, -1, 220, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, -1, -1, -1, -1, 218, -1, 220, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, -1, -1, -1, -1, 218, -1, - 220, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, -1, -1, -1, -1, 218, - -1, 220, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, -1, -1, -1, -1, - 218, -1, 220, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218, -1, 220, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, -1, -1, - -1, -1, 218, -1, 220, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, -1, - -1, -1, -1, 218, -1, 220, 200, 201, 202, 203, + 212, 213, 214, 215, -1, -1, -1, -1, 220, -1, + 222, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, -1, -1, -1, -1, 220, + -1, 222, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, 222, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, -1, -1, -1, + -1, 220, -1, 222, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, + -1, -1, 220, -1, 222, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, -1, + -1, -1, -1, 220, -1, 222, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + -1, -1, -1, -1, 220, -1, 222, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, -1, -1, -1, -1, 220, -1, 222, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - -1, -1, -1, -1, 218, -1, 220, 200, 201, 202, + 214, 215, -1, -1, -1, -1, 220, -1, 222, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, -1, -1, -1, -1, 218, -1, 220, 200, 201, + 213, 214, 215, -1, -1, -1, -1, 220, -1, 222, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, -1, -1, -1, -1, 218, -1, 220, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, -1, -1, -1, -1, 218, -1, 220, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, -1, -1, -1, -1, 218, -1, - 220, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, -1, -1, -1, -1, 218, - -1, 220, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, -1, -1, -1, -1, - 218, -1, 220, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, -1, -1, -1, - -1, 218 + 212, 213, 214, 215, -1, -1, -1, -1, 220, -1, + 222, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, -1, -1, -1, -1, 220, + -1, 222, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, + 220, -1, 222, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, -1, -1, -1, + -1, 220, -1, 222, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, + -1, -1, 220, -1, 222, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, -1, + -1, -1, -1, 220, -1, 222, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + -1, -1, -1, -1, 220, -1, 222, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, -1, -1, -1, -1, 220, -1, 222, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, -1, -1, -1, -1, 220, -1, 222, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, -1, -1, -1, -1, 220, -1, 222 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { - 0, 1, 230, 231, 6, 0, 4, 12, 13, 42, + 0, 1, 232, 233, 6, 0, 4, 12, 13, 42, 43, 62, 63, 64, 68, 69, 71, 75, 76, 78, 79, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 98, 99, 101, 102, 103, 104, + 91, 92, 93, 94, 98, 99, 100, 101, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 142, 143, 144, 150, 155, 156, 157, 158, - 161, 163, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 184, 185, 186, 193, - 195, 232, 234, 235, 255, 274, 275, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 302, 304, 305, 311, - 312, 313, 314, 332, 333, 3, 4, 5, 9, 10, - 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 65, 66, 67, 70, 72, 73, 74, 80, - 81, 172, 179, 180, 181, 182, 183, 187, 188, 189, - 190, 191, 192, 194, 209, 210, 214, 219, 221, 223, - 224, 226, 228, 253, 315, 316, 328, 329, 332, 333, - 13, 90, 219, 219, 6, 226, 6, 6, 6, 6, - 219, 6, 6, 221, 221, 219, 221, 253, 253, 219, - 226, 219, 219, 4, 219, 226, 219, 219, 4, 226, - 219, 219, 219, 219, 219, 100, 90, 90, 6, 226, - 84, 87, 90, 219, 219, 90, 90, 87, 90, 92, - 92, 84, 87, 90, 92, 87, 90, 92, 87, 90, - 219, 87, 161, 177, 178, 226, 209, 210, 219, 226, - 318, 319, 318, 226, 84, 87, 90, 226, 318, 4, - 84, 88, 94, 95, 96, 97, 108, 90, 92, 90, - 87, 4, 172, 226, 332, 333, 4, 6, 84, 87, - 90, 87, 90, 4, 4, 4, 4, 5, 37, 38, - 39, 40, 41, 84, 87, 90, 92, 112, 210, 219, - 226, 275, 286, 302, 304, 315, 321, 322, 323, 332, - 333, 4, 219, 219, 219, 4, 226, 325, 333, 4, - 219, 219, 219, 6, 6, 221, 4, 329, 333, 219, - 4, 329, 5, 226, 5, 226, 4, 315, 332, 221, - 219, 226, 6, 219, 226, 219, 221, 228, 253, 7, - 196, 197, 198, 199, 216, 217, 251, 252, 4, 219, - 221, 223, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 219, 219, 219, - 253, 253, 253, 253, 219, 253, 253, 253, 253, 253, - 253, 219, 253, 253, 253, 7, 219, 219, 219, 253, - 253, 219, 219, 221, 315, 315, 315, 220, 315, 222, - 315, 4, 161, 162, 333, 4, 275, 276, 277, 226, - 226, 6, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 218, 226, 6, 219, - 221, 252, 6, 315, 4, 328, 329, 332, 333, 328, - 315, 328, 331, 257, 262, 329, 333, 315, 210, 315, - 323, 324, 315, 315, 219, 315, 324, 315, 315, 219, - 324, 315, 315, 315, 315, 328, 321, 219, 226, 324, - 322, 322, 322, 328, 315, 219, 219, 322, 322, 322, - 219, 219, 219, 219, 219, 219, 321, 219, 321, 219, - 321, 226, 226, 315, 4, 321, 325, 226, 226, 318, - 318, 318, 315, 315, 209, 210, 226, 226, 318, 226, - 226, 226, 209, 210, 219, 277, 318, 226, 219, 226, - 219, 219, 219, 219, 219, 219, 219, 322, 322, 321, - 219, 4, 221, 221, 277, 6, 6, 226, 226, 226, - 322, 322, 221, 221, 221, 219, 221, 223, 253, 219, - 221, 253, 253, 253, 253, 5, 164, 226, 5, 164, - 5, 164, 5, 164, 84, 87, 90, 92, 226, 315, - 323, 315, 227, 324, 8, 211, 6, 219, 221, 253, - 6, 315, 315, 315, 223, 315, 226, 164, 315, 315, - 315, 315, 6, 6, 226, 6, 277, 6, 277, 219, - 221, 226, 219, 221, 328, 315, 277, 321, 321, 220, - 315, 222, 315, 226, 226, 329, 321, 6, 221, 315, - 315, 4, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 331, 328, 331, 328, 328, 328, - 328, 328, 328, 328, 321, 328, 328, 315, 328, 328, - 328, 331, 328, 315, 329, 315, 328, 328, 328, 328, - 328, 333, 329, 333, 7, 199, 251, 220, 7, 199, - 251, 222, 7, 251, 252, 223, 7, 253, 227, 84, - 87, 90, 92, 274, 315, 324, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 236, 315, 315, 6, 219, 221, 223, 220, 225, - 219, 221, 220, 225, 225, 220, 225, 222, 225, 256, - 222, 256, 225, 225, 220, 211, 225, 227, 220, 220, - 315, 220, 227, 220, 220, 315, 227, 220, 220, 220, - 220, 220, 7, 315, 315, 227, 6, 6, 6, 220, - 220, 315, 315, 7, 7, 308, 308, 315, 268, 315, - 329, 269, 315, 329, 270, 315, 329, 271, 315, 329, - 315, 6, 315, 6, 315, 6, 324, 324, 226, 220, - 6, 226, 277, 277, 225, 225, 225, 318, 318, 276, - 276, 225, 315, 315, 315, 315, 290, 225, 277, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 7, 309, - 6, 7, 315, 6, 315, 315, 227, 324, 324, 324, - 6, 6, 315, 315, 315, 315, 315, 4, 220, 222, - 226, 254, 226, 315, 323, 226, 323, 333, 315, 315, - 328, 315, 62, 315, 62, 62, 62, 5, 226, 5, - 226, 5, 226, 5, 226, 324, 220, 227, 315, 226, - 315, 323, 315, 315, 226, 254, 220, 220, 220, 161, - 225, 277, 226, 8, 220, 220, 222, 324, 227, 227, - 277, 222, 220, 134, 303, 220, 225, 227, 7, 199, - 251, 220, 7, 199, 251, 222, 315, 324, 6, 6, - 315, 220, 222, 252, 254, 254, 254, 254, 254, 254, - 254, 254, 254, 254, 254, 225, 254, 254, 254, 254, - 254, 254, 254, 225, 225, 225, 254, 225, 254, 254, - 220, 220, 225, 254, 254, 225, 254, 225, 225, 225, - 225, 254, 254, 254, 220, 254, 317, 330, 6, 225, - 225, 220, 225, 254, 225, 254, 220, 220, 222, 44, - 44, 321, 7, 251, 252, 44, 44, 321, 223, 251, - 252, 329, 315, 6, 4, 4, 226, 326, 254, 226, - 226, 226, 226, 227, 227, 8, 4, 151, 152, 153, - 154, 227, 239, 243, 246, 248, 249, 220, 222, 315, - 315, 4, 6, 206, 233, 324, 315, 315, 6, 324, - 315, 6, 328, 6, 333, 6, 328, 315, 329, 7, - 315, 323, 164, 7, 7, 220, 7, 164, 7, 7, - 220, 164, 7, 7, 7, 7, 315, 220, 227, 226, - 6, 7, 220, 220, 315, 321, 4, 307, 6, 220, - 220, 225, 220, 225, 220, 225, 220, 225, 220, 220, - 220, 227, 227, 324, 223, 277, 227, 227, 318, 315, - 315, 227, 227, 315, 318, 225, 225, 225, 115, 131, - 139, 140, 141, 145, 146, 147, 148, 300, 301, 318, - 227, 287, 220, 227, 220, 220, 220, 220, 220, 220, - 220, 315, 6, 315, 220, 222, 222, 227, 227, 227, - 222, 222, 225, 220, 222, 324, 324, 220, 324, 222, - 222, 225, 225, 254, 225, 226, 227, 226, 226, 226, - 324, 324, 324, 324, 227, 8, 324, 220, 222, 324, - 7, 7, 7, 223, 315, 227, 315, 315, 7, 223, - 227, 227, 7, 6, 315, 227, 226, 321, 6, 44, - 44, 321, 251, 252, 44, 44, 321, 251, 252, 227, - 227, 222, 252, 223, 252, 328, 315, 315, 315, 315, - 324, 328, 315, 321, 328, 328, 328, 264, 266, 315, - 328, 328, 315, 253, 253, 6, 315, 6, 253, 253, - 6, 4, 161, 162, 315, 6, 6, 6, 7, 221, - 325, 327, 6, 324, 324, 324, 324, 254, 315, 240, - 219, 219, 226, 250, 6, 252, 252, 220, 222, 206, - 328, 220, 220, 222, 220, 225, 7, 219, 221, 254, - 254, 318, 90, 92, 321, 321, 7, 321, 90, 92, - 321, 321, 7, 92, 321, 321, 321, 321, 6, 7, - 7, 324, 321, 7, 7, 115, 306, 6, 7, 251, - 315, 251, 315, 251, 315, 251, 315, 7, 7, 7, - 7, 7, 227, 4, 227, 225, 225, 225, 227, 227, - 318, 318, 318, 4, 6, 315, 226, 6, 219, 6, - 149, 6, 149, 6, 149, 6, 149, 227, 301, 225, - 300, 7, 6, 7, 7, 7, 7, 7, 7, 7, - 6, 226, 6, 6, 6, 90, 7, 6, 6, 315, - 223, 227, 227, 227, 315, 315, 315, 315, 315, 315, - 315, 227, 227, 227, 227, 315, 227, 227, 321, 321, - 321, 4, 225, 8, 8, 220, 4, 4, 225, 226, - 6, 226, 321, 227, 253, 253, 6, 315, 6, 253, - 253, 6, 315, 6, 254, 6, 4, 6, 254, 254, - 254, 254, 254, 225, 225, 254, 220, 254, 254, 225, - 225, 254, 265, 225, 254, 267, 220, 220, 254, 254, - 254, 331, 331, 6, 254, 331, 331, 7, 251, 252, - 223, 7, 6, 325, 315, 225, 227, 227, 227, 227, - 227, 251, 219, 315, 315, 320, 321, 226, 223, 6, - 6, 233, 6, 315, 226, 315, 329, 220, 222, 6, - 6, 6, 226, 226, 108, 273, 273, 321, 6, 226, - 226, 6, 6, 321, 226, 6, 6, 6, 6, 5, - 321, 227, 6, 321, 321, 4, 6, 321, 321, 321, - 321, 321, 321, 321, 321, 226, 226, 7, 6, 7, - 315, 315, 315, 226, 226, 225, 227, 225, 227, 225, - 227, 221, 6, 315, 321, 315, 6, 6, 6, 6, - 315, 318, 227, 5, 321, 226, 226, 226, 226, 226, - 226, 226, 321, 324, 226, 315, 222, 4, 254, 220, - 222, 225, 225, 225, 225, 225, 225, 225, 254, 6, - 6, 160, 315, 315, 315, 6, 6, 7, 329, 277, - 277, 225, 6, 254, 331, 331, 6, 254, 331, 331, - 6, 251, 252, 328, 315, 328, 4, 4, 176, 6, - 254, 254, 6, 254, 254, 329, 315, 6, 4, 326, - 6, 222, 325, 6, 6, 6, 6, 321, 237, 315, - 225, 225, 225, 227, 238, 315, 4, 328, 225, 321, - 329, 7, 7, 315, 315, 318, 6, 6, 6, 315, - 315, 6, 315, 5, 6, 226, 6, 164, 272, 315, - 6, 6, 6, 6, 6, 6, 4, 6, 6, 324, - 324, 315, 315, 329, 227, 220, 225, 227, 276, 276, - 318, 6, 291, 318, 6, 292, 318, 6, 293, 315, - 227, 225, 220, 227, 225, 6, 6, 320, 318, 318, - 318, 318, 318, 210, 318, 6, 227, 315, 6, 6, - 315, 315, 315, 315, 315, 315, 315, 321, 225, 227, - 8, 227, 220, 226, 315, 329, 225, 303, 303, 321, - 6, 254, 254, 6, 254, 254, 321, 220, 254, 254, - 226, 321, 329, 226, 315, 329, 329, 6, 6, 6, - 6, 6, 6, 7, 6, 223, 6, 220, 225, 315, - 315, 321, 226, 225, 227, 6, 315, 258, 261, 226, - 226, 227, 227, 227, 227, 227, 5, 320, 88, 6, - 226, 227, 227, 226, 6, 6, 226, 315, 227, 227, - 225, 226, 225, 226, 225, 226, 222, 6, 321, 7, - 226, 315, 227, 225, 225, 225, 225, 225, 225, 6, - 227, 254, 254, 225, 225, 225, 225, 225, 159, 315, - 315, 324, 6, 6, 329, 227, 227, 227, 6, 6, - 6, 6, 6, 263, 315, 323, 331, 325, 162, 241, - 315, 225, 225, 320, 315, 6, 225, 264, 266, 321, - 321, 6, 6, 6, 6, 6, 6, 227, 226, 320, - 119, 120, 125, 310, 119, 120, 310, 324, 276, 225, - 227, 315, 318, 300, 315, 318, 300, 315, 318, 300, - 6, 225, 227, 321, 277, 227, 6, 324, 318, 318, - 318, 318, 318, 315, 315, 315, 315, 315, 315, 227, - 227, 227, 220, 226, 6, 225, 227, 7, 7, 227, - 6, 226, 315, 315, 227, 315, 227, 227, 260, 259, - 226, 315, 227, 226, 318, 321, 6, 226, 318, 6, - 227, 227, 315, 227, 225, 227, 227, 225, 227, 227, - 225, 227, 321, 6, 115, 227, 288, 226, 227, 225, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 6, - 6, 6, 277, 315, 329, 333, 238, 220, 225, 6, - 226, 225, 264, 264, 315, 227, 6, 318, 6, 318, - 6, 6, 227, 6, 294, 315, 6, 6, 295, 315, - 6, 6, 296, 315, 6, 227, 315, 300, 277, 6, - 324, 324, 324, 324, 318, 324, 315, 315, 315, 315, - 315, 303, 7, 219, 227, 244, 315, 320, 315, 227, - 227, 225, 225, 225, 226, 227, 226, 227, 226, 227, - 6, 6, 227, 227, 289, 227, 227, 227, 227, 225, - 227, 225, 225, 225, 225, 225, 227, 329, 220, 6, - 226, 220, 227, 227, 315, 318, 318, 300, 6, 297, - 300, 6, 298, 300, 6, 299, 300, 6, 6, 6, - 6, 324, 6, 315, 315, 315, 315, 315, 6, 242, - 328, 247, 226, 6, 227, 225, 225, 227, 226, 227, - 226, 227, 226, 227, 227, 254, 225, 225, 225, 225, - 225, 227, 226, 320, 6, 315, 315, 6, 300, 6, - 300, 6, 300, 6, 315, 315, 315, 315, 328, 6, - 245, 328, 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 225, 227, 6, 6, 6, 6, 6, 6, - 328, 6 + 115, 116, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 144, 145, 146, 152, 157, 158, + 159, 160, 163, 165, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 186, 187, + 188, 195, 197, 234, 236, 237, 257, 276, 277, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 304, 306, + 307, 313, 314, 315, 316, 334, 335, 3, 4, 5, + 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 65, 66, 67, 70, 72, 73, + 74, 80, 81, 174, 181, 182, 183, 184, 185, 189, + 190, 191, 192, 193, 194, 196, 211, 212, 216, 221, + 223, 225, 226, 228, 230, 255, 317, 318, 330, 331, + 334, 335, 13, 90, 221, 221, 6, 228, 6, 6, + 6, 6, 221, 6, 6, 223, 223, 221, 223, 255, + 255, 221, 228, 221, 221, 4, 221, 228, 221, 221, + 4, 228, 221, 221, 221, 221, 221, 221, 221, 102, + 90, 90, 6, 228, 84, 87, 90, 221, 221, 90, + 90, 87, 90, 92, 92, 84, 87, 90, 92, 87, + 90, 92, 87, 90, 221, 87, 163, 179, 180, 228, + 211, 212, 221, 228, 320, 321, 320, 228, 84, 87, + 90, 228, 320, 4, 84, 88, 94, 95, 96, 97, + 110, 90, 92, 90, 87, 4, 174, 228, 334, 335, + 4, 6, 84, 87, 90, 87, 90, 4, 4, 4, + 4, 5, 37, 38, 39, 40, 41, 84, 87, 90, + 92, 114, 212, 221, 228, 277, 288, 304, 306, 317, + 323, 324, 325, 334, 335, 4, 221, 221, 221, 4, + 228, 327, 335, 4, 221, 221, 221, 6, 6, 223, + 4, 331, 335, 221, 4, 331, 5, 228, 5, 228, + 4, 317, 334, 223, 221, 228, 6, 221, 228, 221, + 223, 230, 255, 7, 198, 199, 200, 201, 218, 219, + 253, 254, 4, 221, 223, 225, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 221, 221, 221, 255, 255, 255, 255, 221, 255, + 255, 255, 255, 255, 255, 221, 255, 255, 255, 7, + 221, 221, 221, 255, 255, 221, 221, 223, 317, 317, + 317, 222, 317, 224, 317, 4, 163, 164, 335, 4, + 277, 278, 279, 228, 228, 6, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 220, 228, 6, 221, 223, 254, 6, 317, 4, 330, + 331, 334, 335, 330, 317, 330, 333, 259, 264, 331, + 335, 317, 212, 317, 325, 326, 317, 317, 221, 317, + 326, 317, 317, 221, 326, 317, 317, 317, 317, 330, + 317, 317, 323, 221, 228, 326, 324, 324, 324, 330, + 317, 221, 221, 324, 324, 324, 221, 221, 221, 221, + 221, 221, 323, 221, 323, 221, 323, 228, 228, 317, + 4, 323, 327, 228, 228, 320, 320, 320, 317, 317, + 211, 212, 228, 228, 320, 228, 228, 228, 211, 212, + 221, 279, 320, 228, 221, 228, 221, 221, 221, 221, + 221, 221, 221, 324, 324, 323, 221, 4, 223, 223, + 279, 6, 6, 228, 228, 228, 324, 324, 223, 223, + 223, 221, 223, 225, 255, 221, 223, 255, 255, 255, + 255, 5, 166, 228, 5, 166, 5, 166, 5, 166, + 84, 87, 90, 92, 228, 317, 325, 317, 229, 326, + 8, 213, 6, 221, 223, 255, 6, 317, 317, 317, + 225, 317, 228, 166, 317, 317, 317, 317, 6, 6, + 228, 6, 279, 6, 279, 221, 223, 228, 221, 223, + 330, 317, 279, 323, 323, 222, 317, 224, 317, 228, + 228, 331, 323, 6, 223, 317, 317, 4, 317, 317, + 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, + 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, + 333, 330, 333, 330, 330, 330, 330, 330, 330, 330, + 323, 330, 330, 317, 330, 330, 330, 333, 330, 317, + 331, 317, 330, 330, 330, 330, 330, 335, 331, 335, + 7, 201, 253, 222, 7, 201, 253, 224, 7, 253, + 254, 225, 7, 255, 229, 84, 87, 90, 92, 276, + 317, 326, 317, 317, 317, 317, 317, 317, 317, 317, + 317, 317, 317, 317, 317, 317, 317, 238, 317, 317, + 6, 221, 223, 225, 222, 227, 221, 223, 222, 227, + 227, 222, 227, 224, 227, 258, 224, 258, 227, 227, + 222, 213, 227, 229, 222, 222, 317, 222, 229, 222, + 222, 317, 229, 222, 222, 222, 222, 222, 222, 222, + 7, 317, 317, 229, 6, 6, 6, 222, 222, 317, + 317, 7, 7, 310, 310, 317, 270, 317, 331, 271, + 317, 331, 272, 317, 331, 273, 317, 331, 317, 6, + 317, 6, 317, 6, 326, 326, 228, 222, 6, 228, + 279, 279, 227, 227, 227, 320, 320, 278, 278, 227, + 317, 317, 317, 317, 292, 227, 279, 317, 317, 317, + 317, 317, 317, 317, 317, 317, 7, 311, 6, 7, + 317, 6, 317, 317, 229, 326, 326, 326, 6, 6, + 317, 317, 317, 317, 317, 4, 222, 224, 228, 256, + 228, 317, 325, 228, 325, 335, 317, 317, 330, 317, + 62, 317, 62, 62, 62, 5, 228, 5, 228, 5, + 228, 5, 228, 326, 222, 229, 317, 228, 317, 325, + 317, 317, 228, 256, 222, 222, 222, 163, 227, 279, + 228, 8, 222, 222, 224, 326, 229, 229, 279, 224, + 222, 136, 305, 222, 227, 229, 7, 201, 253, 222, + 7, 201, 253, 224, 317, 326, 6, 6, 317, 222, + 224, 254, 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 227, 256, 256, 256, 256, 256, 256, + 256, 227, 227, 227, 256, 227, 256, 256, 222, 222, + 227, 256, 256, 227, 256, 227, 227, 227, 227, 256, + 256, 256, 222, 256, 319, 332, 6, 227, 227, 222, + 227, 256, 227, 256, 222, 222, 224, 44, 44, 323, + 7, 253, 254, 44, 44, 323, 225, 253, 254, 331, + 317, 6, 4, 4, 228, 328, 256, 228, 228, 228, + 228, 229, 229, 8, 4, 153, 154, 155, 156, 229, + 241, 245, 248, 250, 251, 222, 224, 317, 317, 4, + 6, 208, 235, 326, 317, 317, 6, 326, 317, 6, + 330, 6, 335, 6, 330, 317, 331, 7, 317, 325, + 166, 7, 7, 222, 7, 166, 7, 7, 222, 166, + 7, 7, 7, 7, 7, 7, 317, 222, 229, 228, + 6, 7, 222, 222, 317, 323, 4, 309, 6, 222, + 222, 227, 222, 227, 222, 227, 222, 227, 222, 222, + 222, 229, 229, 326, 225, 279, 229, 229, 320, 317, + 317, 229, 229, 317, 320, 227, 227, 227, 117, 133, + 141, 142, 143, 147, 148, 149, 150, 302, 303, 320, + 229, 289, 222, 229, 222, 222, 222, 222, 222, 222, + 222, 317, 6, 317, 222, 224, 224, 229, 229, 229, + 224, 224, 227, 222, 224, 326, 326, 222, 326, 224, + 224, 227, 227, 256, 227, 228, 229, 228, 228, 228, + 326, 326, 326, 326, 229, 8, 326, 222, 224, 326, + 7, 7, 7, 225, 317, 229, 317, 317, 7, 225, + 229, 229, 7, 6, 317, 229, 228, 323, 6, 44, + 44, 323, 253, 254, 44, 44, 323, 253, 254, 229, + 229, 224, 254, 225, 254, 330, 317, 317, 317, 317, + 326, 330, 317, 323, 330, 330, 330, 266, 268, 317, + 330, 330, 317, 255, 255, 6, 317, 6, 255, 255, + 6, 4, 163, 164, 317, 6, 6, 6, 7, 223, + 327, 329, 6, 326, 326, 326, 326, 256, 317, 242, + 221, 221, 228, 252, 6, 254, 254, 222, 224, 208, + 330, 222, 222, 224, 222, 227, 7, 221, 223, 256, + 256, 320, 90, 92, 323, 323, 7, 323, 90, 92, + 323, 323, 7, 92, 323, 323, 323, 323, 323, 323, + 6, 7, 7, 326, 323, 7, 7, 117, 308, 6, + 7, 253, 317, 253, 317, 253, 317, 253, 317, 7, + 7, 7, 7, 7, 229, 4, 229, 227, 227, 227, + 229, 229, 320, 320, 320, 4, 6, 317, 228, 6, + 221, 6, 151, 6, 151, 6, 151, 6, 151, 229, + 303, 227, 302, 7, 6, 7, 7, 7, 7, 7, + 7, 7, 6, 228, 6, 6, 6, 90, 7, 6, + 6, 317, 225, 229, 229, 229, 317, 317, 317, 317, + 317, 317, 317, 229, 229, 229, 229, 317, 229, 229, + 323, 323, 323, 4, 227, 8, 8, 222, 4, 4, + 227, 228, 6, 228, 323, 229, 255, 255, 6, 317, + 6, 255, 255, 6, 317, 6, 256, 6, 4, 6, + 256, 256, 256, 256, 256, 227, 227, 256, 222, 256, + 256, 227, 227, 256, 267, 227, 256, 269, 222, 222, + 256, 256, 256, 333, 333, 6, 256, 333, 333, 7, + 253, 254, 225, 7, 6, 327, 317, 227, 229, 229, + 229, 229, 229, 253, 221, 317, 317, 322, 323, 228, + 225, 6, 6, 235, 6, 317, 228, 317, 331, 222, + 224, 6, 6, 6, 228, 228, 110, 275, 275, 323, + 6, 228, 228, 6, 6, 323, 228, 6, 6, 6, + 6, 6, 6, 5, 323, 229, 6, 323, 323, 4, + 6, 323, 323, 323, 323, 323, 323, 323, 323, 228, + 228, 7, 6, 7, 317, 317, 317, 228, 228, 227, + 229, 227, 229, 227, 229, 223, 6, 317, 323, 317, + 6, 6, 6, 6, 317, 320, 229, 5, 323, 228, + 228, 228, 228, 228, 228, 228, 323, 326, 228, 317, + 224, 4, 256, 222, 224, 227, 227, 227, 227, 227, + 227, 227, 256, 6, 6, 162, 317, 317, 317, 6, + 6, 7, 331, 279, 279, 227, 6, 256, 333, 333, + 6, 256, 333, 333, 6, 253, 254, 330, 317, 330, + 4, 4, 178, 6, 256, 256, 6, 256, 256, 331, + 317, 6, 4, 328, 6, 224, 327, 6, 6, 6, + 6, 323, 239, 317, 227, 227, 227, 229, 240, 317, + 4, 330, 227, 323, 331, 7, 7, 317, 317, 320, + 6, 6, 6, 317, 317, 6, 317, 5, 6, 228, + 6, 166, 274, 317, 6, 6, 6, 6, 6, 6, + 4, 6, 6, 326, 326, 317, 317, 331, 229, 222, + 227, 229, 278, 278, 320, 6, 293, 320, 6, 294, + 320, 6, 295, 317, 229, 227, 222, 229, 227, 6, + 6, 322, 320, 320, 320, 320, 320, 212, 320, 6, + 229, 317, 6, 6, 317, 317, 317, 317, 317, 317, + 317, 323, 227, 229, 8, 229, 222, 228, 317, 331, + 227, 305, 305, 323, 6, 256, 256, 6, 256, 256, + 323, 222, 256, 256, 228, 323, 331, 228, 317, 331, + 331, 6, 6, 6, 6, 6, 6, 7, 6, 225, + 6, 222, 227, 317, 317, 323, 228, 227, 229, 6, + 317, 260, 263, 228, 228, 229, 229, 229, 229, 229, + 5, 322, 88, 6, 228, 229, 229, 228, 6, 6, + 228, 317, 229, 229, 227, 228, 227, 228, 227, 228, + 224, 6, 323, 7, 228, 317, 229, 227, 227, 227, + 227, 227, 227, 6, 229, 256, 256, 227, 227, 227, + 227, 227, 161, 317, 317, 326, 6, 6, 331, 229, + 229, 229, 6, 6, 6, 6, 6, 265, 317, 325, + 333, 327, 164, 243, 317, 227, 227, 322, 317, 6, + 227, 266, 268, 323, 323, 6, 6, 6, 6, 6, + 6, 229, 228, 322, 121, 122, 127, 312, 121, 122, + 312, 326, 278, 227, 229, 317, 320, 302, 317, 320, + 302, 317, 320, 302, 6, 227, 229, 323, 279, 229, + 6, 326, 320, 320, 320, 320, 320, 317, 317, 317, + 317, 317, 317, 229, 229, 229, 222, 228, 6, 227, + 229, 7, 7, 229, 6, 228, 317, 317, 229, 317, + 229, 229, 262, 261, 228, 317, 229, 228, 320, 323, + 6, 228, 320, 6, 229, 229, 317, 229, 227, 229, + 229, 227, 229, 229, 227, 229, 323, 6, 117, 229, + 290, 228, 229, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 6, 6, 6, 279, 317, 331, 335, + 240, 222, 227, 6, 228, 227, 266, 266, 317, 229, + 6, 320, 6, 320, 6, 6, 229, 6, 296, 317, + 6, 6, 297, 317, 6, 6, 298, 317, 6, 229, + 317, 302, 279, 6, 326, 326, 326, 326, 320, 326, + 317, 317, 317, 317, 317, 305, 7, 221, 229, 246, + 317, 322, 317, 229, 229, 227, 227, 227, 228, 229, + 228, 229, 228, 229, 6, 6, 229, 229, 291, 229, + 229, 229, 229, 227, 229, 227, 227, 227, 227, 227, + 229, 331, 222, 6, 228, 222, 229, 229, 317, 320, + 320, 302, 6, 299, 302, 6, 300, 302, 6, 301, + 302, 6, 6, 6, 6, 326, 6, 317, 317, 317, + 317, 317, 6, 244, 330, 249, 228, 6, 229, 227, + 227, 229, 228, 229, 228, 229, 228, 229, 229, 256, + 227, 227, 227, 227, 227, 229, 228, 322, 6, 317, + 317, 6, 302, 6, 302, 6, 302, 6, 317, 317, + 317, 317, 330, 6, 247, 330, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 227, 229, 6, 6, + 6, 6, 6, 6, 330, 6 }; #define yyerrok (yyerrstatus = 0) @@ -5888,121 +5860,121 @@ yyreduce: switch (yyn) { case 3: -#line 210 "Gmsh.y" +#line 211 "Gmsh.y" { yyerrok; return 1; ;} break; case 6: -#line 221 "Gmsh.y" +#line 222 "Gmsh.y" { return 1; ;} break; case 7: -#line 222 "Gmsh.y" +#line 223 "Gmsh.y" { return 1; ;} break; case 8: -#line 223 "Gmsh.y" +#line 224 "Gmsh.y" { return 1; ;} break; case 9: -#line 224 "Gmsh.y" +#line 225 "Gmsh.y" { return 1; ;} break; case 10: -#line 225 "Gmsh.y" +#line 226 "Gmsh.y" { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} break; case 11: -#line 226 "Gmsh.y" +#line 227 "Gmsh.y" { return 1; ;} break; case 12: -#line 227 "Gmsh.y" +#line 228 "Gmsh.y" { return 1; ;} break; case 13: -#line 228 "Gmsh.y" +#line 229 "Gmsh.y" { return 1; ;} break; case 14: -#line 229 "Gmsh.y" +#line 230 "Gmsh.y" { return 1; ;} break; case 15: -#line 230 "Gmsh.y" +#line 231 "Gmsh.y" { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} break; case 16: -#line 231 "Gmsh.y" +#line 232 "Gmsh.y" { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} break; case 17: -#line 232 "Gmsh.y" +#line 233 "Gmsh.y" { return 1; ;} break; case 18: -#line 233 "Gmsh.y" +#line 234 "Gmsh.y" { return 1; ;} break; case 19: -#line 234 "Gmsh.y" +#line 235 "Gmsh.y" { return 1; ;} break; case 20: -#line 235 "Gmsh.y" +#line 236 "Gmsh.y" { return 1; ;} break; case 21: -#line 236 "Gmsh.y" +#line 237 "Gmsh.y" { return 1; ;} break; case 22: -#line 237 "Gmsh.y" +#line 238 "Gmsh.y" { return 1; ;} break; case 23: -#line 238 "Gmsh.y" +#line 239 "Gmsh.y" { return 1; ;} break; case 24: -#line 239 "Gmsh.y" +#line 240 "Gmsh.y" { return 1; ;} break; case 25: -#line 244 "Gmsh.y" +#line 245 "Gmsh.y" { (yyval.c) = (char*)"w"; ;} break; case 26: -#line 248 "Gmsh.y" +#line 249 "Gmsh.y" { (yyval.c) = (char*)"a"; ;} break; case 27: -#line 255 "Gmsh.y" +#line 256 "Gmsh.y" { Msg::Direct((yyvsp[(3) - (5)].c)); Free((yyvsp[(3) - (5)].c)); @@ -6010,7 +5982,7 @@ yyreduce: break; case 28: -#line 260 "Gmsh.y" +#line 261 "Gmsh.y" { Msg::Error((yyvsp[(3) - (5)].c)); Free((yyvsp[(3) - (5)].c)); @@ -6018,7 +5990,7 @@ yyreduce: break; case 29: -#line 265 "Gmsh.y" +#line 266 "Gmsh.y" { std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(6) - (7)].c)); FILE *fp = Fopen(tmp.c_str(), (yyvsp[(5) - (7)].c)); @@ -6035,7 +6007,7 @@ yyreduce: break; case 30: -#line 279 "Gmsh.y" +#line 280 "Gmsh.y" { char tmpstring[5000]; int i = PrintListOfDouble((yyvsp[(3) - (7)].c), (yyvsp[(5) - (7)].l), tmpstring); @@ -6051,7 +6023,7 @@ yyreduce: break; case 31: -#line 292 "Gmsh.y" +#line 293 "Gmsh.y" { char tmpstring[5000]; int i = PrintListOfDouble((yyvsp[(3) - (7)].c), (yyvsp[(5) - (7)].l), tmpstring); @@ -6067,7 +6039,7 @@ yyreduce: break; case 32: -#line 305 "Gmsh.y" +#line 306 "Gmsh.y" { char tmpstring[5000]; int i = PrintListOfDouble((yyvsp[(3) - (9)].c), (yyvsp[(5) - (9)].l), tmpstring); @@ -6093,7 +6065,7 @@ yyreduce: break; case 33: -#line 333 "Gmsh.y" +#line 334 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(1) - (6)].c), "View") && ViewData->finalize()){ @@ -6110,7 +6082,7 @@ yyreduce: break; case 34: -#line 347 "Gmsh.y" +#line 348 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -6126,7 +6098,7 @@ yyreduce: break; case 35: -#line 360 "Gmsh.y" +#line 361 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -6142,7 +6114,7 @@ yyreduce: break; case 36: -#line 373 "Gmsh.y" +#line 374 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (8)].c), "View")){ @@ -6160,7 +6132,7 @@ yyreduce: break; case 37: -#line 391 "Gmsh.y" +#line 392 "Gmsh.y" { #if defined(HAVE_POST) ViewData = new PViewDataList(); @@ -6169,27 +6141,27 @@ yyreduce: break; case 43: -#line 405 "Gmsh.y" +#line 406 "Gmsh.y" { ViewCoord.push_back((yyvsp[(1) - (1)].d)); ;} break; case 44: -#line 407 "Gmsh.y" +#line 408 "Gmsh.y" { ViewCoord.push_back((yyvsp[(3) - (3)].d)); ;} break; case 45: -#line 412 "Gmsh.y" +#line 413 "Gmsh.y" { if(ViewValueList) ViewValueList->push_back((yyvsp[(1) - (1)].d)); ;} break; case 46: -#line 414 "Gmsh.y" +#line 415 "Gmsh.y" { if(ViewValueList) ViewValueList->push_back((yyvsp[(3) - (3)].d)); ;} break; case 47: -#line 419 "Gmsh.y" +#line 420 "Gmsh.y" { #if defined(HAVE_POST) if(!strncmp((yyvsp[(1) - (1)].c), "SP", 2)){ @@ -6296,7 +6268,7 @@ yyreduce: break; case 48: -#line 523 "Gmsh.y" +#line 524 "Gmsh.y" { #if defined(HAVE_POST) if(ViewValueList){ @@ -6309,7 +6281,7 @@ yyreduce: break; case 49: -#line 533 "Gmsh.y" +#line 534 "Gmsh.y" { #if defined(HAVE_POST) if(ViewValueList) (*ViewNumList)++; @@ -6318,7 +6290,7 @@ yyreduce: break; case 50: -#line 542 "Gmsh.y" +#line 543 "Gmsh.y" { #if defined(HAVE_POST) for(int i = 0; i < (int)strlen((yyvsp[(1) - (1)].c)) + 1; i++) ViewData->T2C.push_back((yyvsp[(1) - (1)].c)[i]); @@ -6328,7 +6300,7 @@ yyreduce: break; case 51: -#line 549 "Gmsh.y" +#line 550 "Gmsh.y" { #if defined(HAVE_POST) for(int i = 0; i < (int)strlen((yyvsp[(3) - (3)].c)) + 1; i++) ViewData->T2C.push_back((yyvsp[(3) - (3)].c)[i]); @@ -6338,7 +6310,7 @@ yyreduce: break; case 52: -#line 559 "Gmsh.y" +#line 560 "Gmsh.y" { #if defined(HAVE_POST) ViewData->T2D.push_back((yyvsp[(3) - (8)].d)); @@ -6350,7 +6322,7 @@ yyreduce: break; case 53: -#line 568 "Gmsh.y" +#line 569 "Gmsh.y" { #if defined(HAVE_POST) ViewData->NbT2++; @@ -6359,7 +6331,7 @@ yyreduce: break; case 54: -#line 577 "Gmsh.y" +#line 578 "Gmsh.y" { #if defined(HAVE_POST) for(int i = 0; i < (int)strlen((yyvsp[(1) - (1)].c)) + 1; i++) ViewData->T3C.push_back((yyvsp[(1) - (1)].c)[i]); @@ -6369,7 +6341,7 @@ yyreduce: break; case 55: -#line 584 "Gmsh.y" +#line 585 "Gmsh.y" { #if defined(HAVE_POST) for(int i = 0; i < (int)strlen((yyvsp[(3) - (3)].c)) + 1; i++) ViewData->T3C.push_back((yyvsp[(3) - (3)].c)[i]); @@ -6379,7 +6351,7 @@ yyreduce: break; case 56: -#line 594 "Gmsh.y" +#line 595 "Gmsh.y" { #if defined(HAVE_POST) ViewData->T3D.push_back((yyvsp[(3) - (10)].d)); ViewData->T3D.push_back((yyvsp[(5) - (10)].d)); @@ -6390,7 +6362,7 @@ yyreduce: break; case 57: -#line 602 "Gmsh.y" +#line 603 "Gmsh.y" { #if defined(HAVE_POST) ViewData->NbT3++; @@ -6399,7 +6371,7 @@ yyreduce: break; case 58: -#line 612 "Gmsh.y" +#line 613 "Gmsh.y" { #if defined(HAVE_POST) int type = @@ -6418,7 +6390,7 @@ yyreduce: break; case 59: -#line 631 "Gmsh.y" +#line 632 "Gmsh.y" { #if defined(HAVE_POST) int type = @@ -6437,7 +6409,7 @@ yyreduce: break; case 60: -#line 650 "Gmsh.y" +#line 651 "Gmsh.y" { #if defined(HAVE_POST) ViewValueList = &ViewData->Time; @@ -6446,68 +6418,68 @@ yyreduce: break; case 61: -#line 656 "Gmsh.y" +#line 657 "Gmsh.y" { ;} break; case 62: -#line 663 "Gmsh.y" +#line 664 "Gmsh.y" { (yyval.i) = 0; ;} break; case 63: -#line 664 "Gmsh.y" +#line 665 "Gmsh.y" { (yyval.i) = 1; ;} break; case 64: -#line 665 "Gmsh.y" +#line 666 "Gmsh.y" { (yyval.i) = 2; ;} break; case 65: -#line 666 "Gmsh.y" +#line 667 "Gmsh.y" { (yyval.i) = 3; ;} break; case 66: -#line 667 "Gmsh.y" +#line 668 "Gmsh.y" { (yyval.i) = 4; ;} break; case 67: -#line 671 "Gmsh.y" +#line 672 "Gmsh.y" { (yyval.i) = 1; ;} break; case 68: -#line 672 "Gmsh.y" +#line 673 "Gmsh.y" { (yyval.i) = -1; ;} break; case 69: -#line 678 "Gmsh.y" +#line 679 "Gmsh.y" { (yyval.c) = (char*)"("; ;} break; case 70: -#line 678 "Gmsh.y" +#line 679 "Gmsh.y" { (yyval.c) = (char*)"["; ;} break; case 71: -#line 679 "Gmsh.y" +#line 680 "Gmsh.y" { (yyval.c) = (char*)")"; ;} break; case 72: -#line 679 "Gmsh.y" +#line 680 "Gmsh.y" { (yyval.c) = (char*)"]"; ;} break; case 75: -#line 688 "Gmsh.y" +#line 689 "Gmsh.y" { Msg::SetOnelabNumber((yyvsp[(3) - (7)].c), (yyvsp[(5) - (7)].d)); Free((yyvsp[(3) - (7)].c)); @@ -6515,7 +6487,7 @@ yyreduce: break; case 76: -#line 693 "Gmsh.y" +#line 694 "Gmsh.y" { Msg::SetOnelabString((yyvsp[(3) - (7)].c), (yyvsp[(5) - (7)].c)); Free((yyvsp[(3) - (7)].c)); @@ -6524,7 +6496,7 @@ yyreduce: break; case 77: -#line 699 "Gmsh.y" +#line 700 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c)) && (yyvsp[(2) - (4)].i) && List_Nbr((yyvsp[(3) - (4)].l)) == 1){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (4)].c)); @@ -6589,7 +6561,7 @@ yyreduce: break; case 78: -#line 761 "Gmsh.y" +#line 762 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (3)].c)); @@ -6607,7 +6579,7 @@ yyreduce: break; case 79: -#line 778 "Gmsh.y" +#line 779 "Gmsh.y" { gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (6)].c)]); s.list = true; @@ -6639,7 +6611,7 @@ yyreduce: break; case 80: -#line 807 "Gmsh.y" +#line 808 "Gmsh.y" { gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (6)].c)]); s.list = true; @@ -6671,7 +6643,7 @@ yyreduce: break; case 81: -#line 836 "Gmsh.y" +#line 837 "Gmsh.y" { assignVariable((yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(5) - (7)].i), (yyvsp[(6) - (7)].d)); Free((yyvsp[(1) - (7)].c)); @@ -6679,7 +6651,7 @@ yyreduce: break; case 82: -#line 841 "Gmsh.y" +#line 842 "Gmsh.y" { assignVariable((yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(5) - (7)].i), (yyvsp[(6) - (7)].d)); Free((yyvsp[(1) - (7)].c)); @@ -6687,7 +6659,7 @@ yyreduce: break; case 83: -#line 846 "Gmsh.y" +#line 847 "Gmsh.y" { incrementVariable((yyvsp[(1) - (6)].c), (yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].i)); Free((yyvsp[(1) - (6)].c)); @@ -6695,7 +6667,7 @@ yyreduce: break; case 84: -#line 851 "Gmsh.y" +#line 852 "Gmsh.y" { incrementVariable((yyvsp[(1) - (6)].c), (yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].i)); Free((yyvsp[(1) - (6)].c)); @@ -6703,7 +6675,7 @@ yyreduce: break; case 85: -#line 856 "Gmsh.y" +#line 857 "Gmsh.y" { assignVariables((yyvsp[(1) - (9)].c), (yyvsp[(4) - (9)].l), (yyvsp[(7) - (9)].i), (yyvsp[(8) - (9)].l)); Free((yyvsp[(1) - (9)].c)); @@ -6713,7 +6685,7 @@ yyreduce: break; case 86: -#line 863 "Gmsh.y" +#line 864 "Gmsh.y" { assignVariables((yyvsp[(1) - (9)].c), (yyvsp[(4) - (9)].l), (yyvsp[(7) - (9)].i), (yyvsp[(8) - (9)].l)); Free((yyvsp[(1) - (9)].c)); @@ -6723,7 +6695,7 @@ yyreduce: break; case 87: -#line 873 "Gmsh.y" +#line 874 "Gmsh.y" { gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (6)].c)]); s.list = true; @@ -6755,7 +6727,7 @@ yyreduce: break; case 88: -#line 902 "Gmsh.y" +#line 903 "Gmsh.y" { gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (6)].c)]); s.list = true; @@ -6787,7 +6759,7 @@ yyreduce: break; case 89: -#line 931 "Gmsh.y" +#line 932 "Gmsh.y" { assignVariable((yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(5) - (7)].i), (yyvsp[(6) - (7)].d)); Free((yyvsp[(1) - (7)].c)); @@ -6795,7 +6767,7 @@ yyreduce: break; case 90: -#line 936 "Gmsh.y" +#line 937 "Gmsh.y" { assignVariable((yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(5) - (7)].i), (yyvsp[(6) - (7)].d)); Free((yyvsp[(1) - (7)].c)); @@ -6803,7 +6775,7 @@ yyreduce: break; case 91: -#line 941 "Gmsh.y" +#line 942 "Gmsh.y" { incrementVariable((yyvsp[(1) - (6)].c), (yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].i)); Free((yyvsp[(1) - (6)].c)); @@ -6811,7 +6783,7 @@ yyreduce: break; case 92: -#line 946 "Gmsh.y" +#line 947 "Gmsh.y" { incrementVariable((yyvsp[(1) - (6)].c), (yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].i)); Free((yyvsp[(1) - (6)].c)); @@ -6819,7 +6791,7 @@ yyreduce: break; case 93: -#line 954 "Gmsh.y" +#line 955 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (4)].c)] = std::vector<std::string>(1, (yyvsp[(3) - (4)].c)); Free((yyvsp[(1) - (4)].c)); @@ -6828,7 +6800,7 @@ yyreduce: break; case 94: -#line 963 "Gmsh.y" +#line 964 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (8)].c)] = std::vector<std::string>(); Free((yyvsp[(1) - (8)].c)); @@ -6836,7 +6808,7 @@ yyreduce: break; case 95: -#line 969 "Gmsh.y" +#line 970 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (8)].c)] = std::vector<std::string>(); Free((yyvsp[(1) - (8)].c)); @@ -6844,7 +6816,7 @@ yyreduce: break; case 96: -#line 975 "Gmsh.y" +#line 976 "Gmsh.y" { std::vector<std::string> s; for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -6859,7 +6831,7 @@ yyreduce: break; case 97: -#line 988 "Gmsh.y" +#line 989 "Gmsh.y" { std::vector<std::string> s; for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -6874,7 +6846,7 @@ yyreduce: break; case 98: -#line 1001 "Gmsh.y" +#line 1002 "Gmsh.y" { if(gmsh_yystringsymbols.count((yyvsp[(1) - (9)].c))){ for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -6891,7 +6863,7 @@ yyreduce: break; case 99: -#line 1016 "Gmsh.y" +#line 1017 "Gmsh.y" { if(gmsh_yystringsymbols.count((yyvsp[(1) - (9)].c))){ for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -6908,7 +6880,7 @@ yyreduce: break; case 100: -#line 1033 "Gmsh.y" +#line 1034 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (8)].c)] = std::vector<std::string>(); Free((yyvsp[(1) - (8)].c)); @@ -6916,7 +6888,7 @@ yyreduce: break; case 101: -#line 1039 "Gmsh.y" +#line 1040 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (8)].c)] = std::vector<std::string>(); Free((yyvsp[(1) - (8)].c)); @@ -6924,7 +6896,7 @@ yyreduce: break; case 102: -#line 1045 "Gmsh.y" +#line 1046 "Gmsh.y" { std::vector<std::string> s; for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -6939,7 +6911,7 @@ yyreduce: break; case 103: -#line 1058 "Gmsh.y" +#line 1059 "Gmsh.y" { std::vector<std::string> s; for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -6954,7 +6926,7 @@ yyreduce: break; case 104: -#line 1071 "Gmsh.y" +#line 1072 "Gmsh.y" { if(gmsh_yystringsymbols.count((yyvsp[(1) - (9)].c))){ for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -6971,7 +6943,7 @@ yyreduce: break; case 105: -#line 1086 "Gmsh.y" +#line 1087 "Gmsh.y" { if(gmsh_yystringsymbols.count((yyvsp[(1) - (9)].c))){ for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -6988,7 +6960,7 @@ yyreduce: break; case 106: -#line 1103 "Gmsh.y" +#line 1104 "Gmsh.y" { std::string tmp((yyvsp[(5) - (6)].c)); StringOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), tmp); @@ -6997,7 +6969,7 @@ yyreduce: break; case 107: -#line 1109 "Gmsh.y" +#line 1110 "Gmsh.y" { std::string tmp((yyvsp[(8) - (9)].c)); StringOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), tmp); @@ -7006,7 +6978,7 @@ yyreduce: break; case 108: -#line 1118 "Gmsh.y" +#line 1119 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), d)){ @@ -7027,7 +6999,7 @@ yyreduce: break; case 109: -#line 1136 "Gmsh.y" +#line 1137 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), d)){ @@ -7048,7 +7020,7 @@ yyreduce: break; case 110: -#line 1154 "Gmsh.y" +#line 1155 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(3) - (5)].c), d)){ @@ -7060,7 +7032,7 @@ yyreduce: break; case 111: -#line 1163 "Gmsh.y" +#line 1164 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (8)].c), (int)(yyvsp[(3) - (8)].d), (yyvsp[(6) - (8)].c), d)){ @@ -7072,7 +7044,7 @@ yyreduce: break; case 112: -#line 1175 "Gmsh.y" +#line 1176 "Gmsh.y" { ColorOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (8)].c), 0, (yyvsp[(5) - (8)].c), (yyvsp[(7) - (8)].u)); Free((yyvsp[(1) - (8)].c)); Free((yyvsp[(5) - (8)].c)); @@ -7080,7 +7052,7 @@ yyreduce: break; case 113: -#line 1180 "Gmsh.y" +#line 1181 "Gmsh.y" { ColorOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (11)].c), (int)(yyvsp[(3) - (11)].d), (yyvsp[(8) - (11)].c), (yyvsp[(10) - (11)].u)); Free((yyvsp[(1) - (11)].c)); Free((yyvsp[(8) - (11)].c)); @@ -7088,7 +7060,7 @@ yyreduce: break; case 114: -#line 1188 "Gmsh.y" +#line 1189 "Gmsh.y" { GmshColorTable *ct = GetColorTable(0); if(!ct) @@ -7111,7 +7083,7 @@ yyreduce: break; case 115: -#line 1208 "Gmsh.y" +#line 1209 "Gmsh.y" { GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (9)].d)); if(!ct) @@ -7134,7 +7106,7 @@ yyreduce: break; case 116: -#line 1231 "Gmsh.y" +#line 1232 "Gmsh.y" { #if defined(HAVE_MESH) if(!strcmp((yyvsp[(1) - (5)].c),"Background")) @@ -7148,7 +7120,7 @@ yyreduce: break; case 117: -#line 1242 "Gmsh.y" +#line 1243 "Gmsh.y" { #if defined(HAVE_MESH) if(!GModel::current()->getFields()->newField((int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c))) @@ -7159,7 +7131,7 @@ yyreduce: break; case 118: -#line 1250 "Gmsh.y" +#line 1251 "Gmsh.y" { #if defined(HAVE_MESH) Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (9)].d)); @@ -7184,7 +7156,7 @@ yyreduce: break; case 119: -#line 1272 "Gmsh.y" +#line 1273 "Gmsh.y" { #if defined(HAVE_MESH) Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (9)].d)); @@ -7210,7 +7182,7 @@ yyreduce: break; case 120: -#line 1295 "Gmsh.y" +#line 1296 "Gmsh.y" { #if defined(HAVE_MESH) Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (11)].d)); @@ -7251,7 +7223,7 @@ yyreduce: break; case 121: -#line 1333 "Gmsh.y" +#line 1334 "Gmsh.y" { #if defined(HAVE_MESH) Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (7)].d)); @@ -7272,7 +7244,7 @@ yyreduce: break; case 122: -#line 1354 "Gmsh.y" +#line 1355 "Gmsh.y" { #if defined(HAVE_PLUGINS) try { @@ -7287,7 +7259,7 @@ yyreduce: break; case 123: -#line 1366 "Gmsh.y" +#line 1367 "Gmsh.y" { #if defined(HAVE_PLUGINS) try { @@ -7302,7 +7274,7 @@ yyreduce: break; case 127: -#line 1384 "Gmsh.y" +#line 1385 "Gmsh.y" { std::string key((yyvsp[(3) - (3)].c)); std::vector<double> val(1, 0.); @@ -7314,7 +7286,7 @@ yyreduce: break; case 128: -#line 1393 "Gmsh.y" +#line 1394 "Gmsh.y" { std::string key((yyvsp[(3) - (5)].c)); std::vector<double> val(1, (yyvsp[(5) - (5)].d)); @@ -7326,12 +7298,12 @@ yyreduce: break; case 129: -#line 1402 "Gmsh.y" +#line 1403 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; case 130: -#line 1404 "Gmsh.y" +#line 1405 "Gmsh.y" { if(List_Nbr((yyvsp[(6) - (9)].l)) != 1) yymsg(1, "List notation should be used to define list '%s[]'", (yyvsp[(3) - (9)].c)); @@ -7352,12 +7324,12 @@ yyreduce: break; case 131: -#line 1422 "Gmsh.y" +#line 1423 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; case 132: -#line 1424 "Gmsh.y" +#line 1425 "Gmsh.y" { std::string key((yyvsp[(3) - (11)].c)); std::vector<double> val; @@ -7376,12 +7348,12 @@ yyreduce: break; case 133: -#line 1440 "Gmsh.y" +#line 1441 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; case 134: -#line 1442 "Gmsh.y" +#line 1443 "Gmsh.y" { std::string key((yyvsp[(3) - (11)].c)); std::vector<double> val; @@ -7400,7 +7372,7 @@ yyreduce: break; case 135: -#line 1458 "Gmsh.y" +#line 1459 "Gmsh.y" { std::string key((yyvsp[(3) - (5)].c)), val((yyvsp[(5) - (5)].c)); if(!gmsh_yystringsymbols.count(key)){ @@ -7412,12 +7384,12 @@ yyreduce: break; case 136: -#line 1467 "Gmsh.y" +#line 1468 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; case 137: -#line 1469 "Gmsh.y" +#line 1470 "Gmsh.y" { std::string key((yyvsp[(3) - (9)].c)), val((yyvsp[(6) - (9)].c)); if(!gmsh_yysymbols.count(key)){ @@ -7430,7 +7402,7 @@ yyreduce: break; case 139: -#line 1483 "Gmsh.y" +#line 1484 "Gmsh.y" { std::string name((yyvsp[(3) - (3)].c)); Msg::UndefineOnelabParameter(name); @@ -7439,7 +7411,7 @@ yyreduce: break; case 140: -#line 1491 "Gmsh.y" +#line 1492 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(doubleXstring)); doubleXstring v = {(yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].c)}; @@ -7448,7 +7420,7 @@ yyreduce: break; case 141: -#line 1497 "Gmsh.y" +#line 1498 "Gmsh.y" { doubleXstring v = {(yyvsp[(3) - (5)].d), (yyvsp[(5) - (5)].c)}; List_Add((yyval.l), &v); @@ -7456,7 +7428,7 @@ yyreduce: break; case 142: -#line 1502 "Gmsh.y" +#line 1503 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(doubleXstring)); int n = List_Nbr((yyvsp[(1) - (5)].l)); @@ -7483,7 +7455,7 @@ yyreduce: break; case 145: -#line 1533 "Gmsh.y" +#line 1534 "Gmsh.y" { std::string key((yyvsp[(2) - (3)].c)); for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ @@ -7497,7 +7469,7 @@ yyreduce: break; case 146: -#line 1544 "Gmsh.y" +#line 1545 "Gmsh.y" { std::string key((yyvsp[(2) - (5)].c)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -7514,7 +7486,7 @@ yyreduce: break; case 147: -#line 1559 "Gmsh.y" +#line 1560 "Gmsh.y" { std::string key((yyvsp[(2) - (3)].c)); std::string val((yyvsp[(3) - (3)].c)); @@ -7525,7 +7497,7 @@ yyreduce: break; case 150: -#line 1575 "Gmsh.y" +#line 1576 "Gmsh.y" { std::string key((yyvsp[(2) - (3)].c)); double val = (yyvsp[(3) - (3)].d); @@ -7535,7 +7507,7 @@ yyreduce: break; case 151: -#line 1583 "Gmsh.y" +#line 1584 "Gmsh.y" { std::string key((yyvsp[(2) - (3)].c)); std::string val((yyvsp[(3) - (3)].c)); @@ -7546,7 +7518,7 @@ yyreduce: break; case 152: -#line 1592 "Gmsh.y" +#line 1593 "Gmsh.y" { std::string key("Macro"); std::string val((yyvsp[(3) - (3)].c)); @@ -7556,7 +7528,7 @@ yyreduce: break; case 153: -#line 1600 "Gmsh.y" +#line 1601 "Gmsh.y" { std::string key((yyvsp[(2) - (5)].c)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -7572,14 +7544,14 @@ yyreduce: break; case 154: -#line 1618 "Gmsh.y" +#line 1619 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); ;} break; case 155: -#line 1622 "Gmsh.y" +#line 1623 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName (std::string((yyvsp[(1) - (1)].c)), 0, ++GModel::current()->getGEOInternals()->MaxPhysicalNum); @@ -7588,7 +7560,7 @@ yyreduce: break; case 156: -#line 1628 "Gmsh.y" +#line 1629 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName(std::string((yyvsp[(1) - (3)].c)), 0, (yyvsp[(3) - (3)].d)); Free((yyvsp[(1) - (3)].c)); @@ -7596,14 +7568,14 @@ yyreduce: break; case 157: -#line 1636 "Gmsh.y" +#line 1637 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); ;} break; case 158: -#line 1640 "Gmsh.y" +#line 1641 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName (std::string((yyvsp[(1) - (1)].c)), 1, ++GModel::current()->getGEOInternals()->MaxPhysicalNum); @@ -7612,7 +7584,7 @@ yyreduce: break; case 159: -#line 1646 "Gmsh.y" +#line 1647 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName(std::string((yyvsp[(1) - (3)].c)), 1, (yyvsp[(3) - (3)].d)); Free((yyvsp[(1) - (3)].c)); @@ -7620,14 +7592,14 @@ yyreduce: break; case 160: -#line 1654 "Gmsh.y" +#line 1655 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); ;} break; case 161: -#line 1658 "Gmsh.y" +#line 1659 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName (std::string((yyvsp[(1) - (1)].c)), 2, ++GModel::current()->getGEOInternals()->MaxPhysicalNum); @@ -7636,7 +7608,7 @@ yyreduce: break; case 162: -#line 1664 "Gmsh.y" +#line 1665 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName(std::string((yyvsp[(1) - (3)].c)), 2, (yyvsp[(3) - (3)].d)); Free((yyvsp[(1) - (3)].c)); @@ -7644,14 +7616,14 @@ yyreduce: break; case 163: -#line 1672 "Gmsh.y" +#line 1673 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); ;} break; case 164: -#line 1676 "Gmsh.y" +#line 1677 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName (std::string((yyvsp[(1) - (1)].c)), 3, ++GModel::current()->getGEOInternals()->MaxPhysicalNum); @@ -7660,7 +7632,7 @@ yyreduce: break; case 165: -#line 1682 "Gmsh.y" +#line 1683 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName(std::string((yyvsp[(1) - (3)].c)), 3, (yyvsp[(3) - (3)].d)); Free((yyvsp[(1) - (3)].c)); @@ -7668,14 +7640,14 @@ yyreduce: break; case 166: -#line 1690 "Gmsh.y" +#line 1691 "Gmsh.y" { (yyval.l) = 0; ;} break; case 167: -#line 1694 "Gmsh.y" +#line 1695 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(Vertex*)); Vertex *v = FindPoint((int)(yyvsp[(4) - (5)].d)); @@ -7688,21 +7660,21 @@ yyreduce: break; case 168: -#line 1706 "Gmsh.y" +#line 1707 "Gmsh.y" { for(int i = 0; i < 4; i++) (yyval.v)[i] = 0.; ;} break; case 169: -#line 1710 "Gmsh.y" +#line 1711 "Gmsh.y" { for(int i = 0; i < 4; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; case 170: -#line 1718 "Gmsh.y" +#line 1719 "Gmsh.y" { // FIXME: when changing to OpenCASCADE, get maxTag for all dimensions // and add that info in OCC_Internals - same in the other direction @@ -7712,7 +7684,7 @@ yyreduce: break; case 171: -#line 1728 "Gmsh.y" +#line 1729 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindPoint(num)){ @@ -7743,7 +7715,7 @@ yyreduce: break; case 172: -#line 1756 "Gmsh.y" +#line 1757 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); int op = (yyvsp[(6) - (8)].i); @@ -7789,7 +7761,7 @@ yyreduce: break; case 173: -#line 1799 "Gmsh.y" +#line 1800 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -7812,7 +7784,7 @@ yyreduce: break; case 174: -#line 1822 "Gmsh.y" +#line 1823 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -7844,7 +7816,7 @@ yyreduce: break; case 175: -#line 1851 "Gmsh.y" +#line 1852 "Gmsh.y" { for (int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ double dnum; @@ -7868,7 +7840,7 @@ yyreduce: break; case 176: -#line 1872 "Gmsh.y" +#line 1873 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -7889,7 +7861,7 @@ yyreduce: break; case 177: -#line 1890 "Gmsh.y" +#line 1891 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); if(FindCurve(num)){ @@ -7932,7 +7904,7 @@ yyreduce: break; case 178: -#line 1930 "Gmsh.y" +#line 1931 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); if(FindCurve(num)){ @@ -7965,7 +7937,7 @@ yyreduce: break; case 179: -#line 1960 "Gmsh.y" +#line 1961 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -7986,7 +7958,7 @@ yyreduce: break; case 180: -#line 1978 "Gmsh.y" +#line 1979 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -8007,7 +7979,7 @@ yyreduce: break; case 181: -#line 1997 "Gmsh.y" +#line 1998 "Gmsh.y" { int num = (int)(yyvsp[(3) - (11)].d); if(List_Nbr((yyvsp[(6) - (11)].l)) + (int)(yyvsp[(10) - (11)].d) + 1 != List_Nbr((yyvsp[(8) - (11)].l))){ @@ -8036,7 +8008,7 @@ yyreduce: break; case 182: -#line 2023 "Gmsh.y" +#line 2024 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -8067,14 +8039,14 @@ yyreduce: break; case 183: -#line 2052 "Gmsh.y" +#line 2053 "Gmsh.y" { GModel::current()->getGEOInternals()->addCompoundMesh ( 1 , (yyvsp[(3) - (4)].l) ); ;} break; case 184: -#line 2057 "Gmsh.y" +#line 2058 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindCurve(num)){ @@ -8095,7 +8067,7 @@ yyreduce: break; case 185: -#line 2075 "Gmsh.y" +#line 2076 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); int op = (yyvsp[(6) - (8)].i); @@ -8141,19 +8113,29 @@ yyreduce: break; case 186: -#line 2121 "Gmsh.y" +#line 2122 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); - if(FindSurface(num)){ - yymsg(0, "Surface %d already exists", num); + if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ + std::vector<int> wires; + for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++){ + double d; List_Read((yyvsp[(7) - (8)].l), i, &d); + wires.push_back((int)std::abs(d)); + } + GModel::current()->getOCCInternals()->addPlanarFace(num, wires); } else{ - Surface *s = Create_Surface(num, MSH_SURF_PLAN); - List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (8)].l)); - setSurfaceGeneratrices(s, temp); - List_Delete(temp); - End_Surface(s); - Tree_Add(GModel::current()->getGEOInternals()->Surfaces, &s); + if(FindSurface(num)){ + yymsg(0, "Surface %d already exists", num); + } + else{ + Surface *s = Create_Surface(num, MSH_SURF_PLAN); + List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (8)].l)); + setSurfaceGeneratrices(s, temp); + List_Delete(temp); + End_Surface(s); + Tree_Add(GModel::current()->getGEOInternals()->Surfaces, &s); + } } List_Delete((yyvsp[(7) - (8)].l)); (yyval.s).Type = MSH_SURF_PLAN; @@ -8162,40 +8144,50 @@ yyreduce: break; case 187: -#line 2139 "Gmsh.y" +#line 2150 "Gmsh.y" { int num = (int)(yyvsp[(4) - (9)].d), type = 0; - if(FindSurface(num)){ - yymsg(0, "Surface %d already exists", num); + if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ + std::vector<int> wires; + for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ + double d; List_Read((yyvsp[(7) - (9)].l), i, &d); + wires.push_back((int)std::abs(d)); + } + GModel::current()->getOCCInternals()->addRuledFace(num, wires); } else{ - double d; - List_Read((yyvsp[(7) - (9)].l), 0, &d); - EdgeLoop *el = FindEdgeLoop((int)fabs(d)); - if(!el){ - yymsg(0, "Unknown line loop %d", (int)d); - } - else{ - int j = List_Nbr(el->Curves); - if(j == 4){ - type = MSH_SURF_REGL; - } - else if(j == 3){ - type = MSH_SURF_TRIC; - } - else{ - yymsg(0, "Wrong definition of Ruled Surface %d: " - "%d borders instead of 3 or 4", num, j); - type = MSH_SURF_PLAN; - } - Surface *s = Create_Surface(num, type); - List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (9)].l)); - setSurfaceGeneratrices(s, temp); - List_Delete(temp); - End_Surface(s); - s->InSphereCenter = (yyvsp[(8) - (9)].l); - Tree_Add(GModel::current()->getGEOInternals()->Surfaces, &s); - } + if(FindSurface(num)){ + yymsg(0, "Surface %d already exists", num); + } + else{ + double d; + List_Read((yyvsp[(7) - (9)].l), 0, &d); + EdgeLoop *el = FindEdgeLoop((int)fabs(d)); + if(!el){ + yymsg(0, "Unknown line loop %d", (int)d); + } + else{ + int j = List_Nbr(el->Curves); + if(j == 4){ + type = MSH_SURF_REGL; + } + else if(j == 3){ + type = MSH_SURF_TRIC; + } + else{ + yymsg(0, "Wrong definition of Ruled Surface %d: " + "%d borders instead of 3 or 4", num, j); + type = MSH_SURF_PLAN; + } + Surface *s = Create_Surface(num, type); + List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (9)].l)); + setSurfaceGeneratrices(s, temp); + List_Delete(temp); + End_Surface(s); + s->InSphereCenter = (yyvsp[(8) - (9)].l); + Tree_Add(GModel::current()->getGEOInternals()->Surfaces, &s); + } + } } List_Delete((yyvsp[(7) - (9)].l)); (yyval.s).Type = type; @@ -8204,7 +8196,7 @@ yyreduce: break; case 188: -#line 2178 "Gmsh.y" +#line 2199 "Gmsh.y" { myGmshSurface = 0; (yyval.s).Type = 0; @@ -8213,7 +8205,7 @@ yyreduce: break; case 189: -#line 2184 "Gmsh.y" +#line 2205 "Gmsh.y" { myGmshSurface = gmshSurface::getSurface((int)(yyvsp[(3) - (4)].d)); (yyval.s).Type = 0; @@ -8222,7 +8214,7 @@ yyreduce: break; case 190: -#line 2190 "Gmsh.y" +#line 2211 "Gmsh.y" { int num = (int)(yyvsp[(4) - (10)].d); myGmshSurface = gmshParametricSurface::NewParametricSurface(num, (yyvsp[(7) - (10)].c), (yyvsp[(8) - (10)].c), (yyvsp[(9) - (10)].c)); @@ -8232,7 +8224,7 @@ yyreduce: break; case 191: -#line 2197 "Gmsh.y" +#line 2218 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(List_Nbr((yyvsp[(6) - (7)].l)) == 4){ // solid sphere (volume) @@ -8276,7 +8268,7 @@ yyreduce: break; case 192: -#line 2238 "Gmsh.y" +#line 2259 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if (List_Nbr((yyvsp[(6) - (7)].l)) != 2){ @@ -8305,7 +8297,7 @@ yyreduce: break; case 193: -#line 2264 "Gmsh.y" +#line 2285 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(List_Nbr((yyvsp[(6) - (7)].l)) == 6){ @@ -8332,7 +8324,57 @@ yyreduce: break; case 194: -#line 2288 "Gmsh.y" +#line 2309 "Gmsh.y" + { + int num = (int)(yyvsp[(3) - (7)].d); + if(List_Nbr((yyvsp[(6) - (7)].l)) == 4){ + if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ + double x1; List_Read((yyvsp[(6) - (7)].l), 0, &x1); + double y1; List_Read((yyvsp[(6) - (7)].l), 1, &y1); + double x2; List_Read((yyvsp[(6) - (7)].l), 2, &x2); + double y2; List_Read((yyvsp[(6) - (7)].l), 3, &y2); + GModel::current()->getOCCInternals()->addRectangle(num, x1, y1, x2, y2); + } + else{ + yymsg(0, "Rectangle only available with OpenCASCADE factory"); + } + } + else{ + yymsg(0, "Rectangle has to be defined using {x1,y1,x2,y2}"); + } + List_Delete((yyvsp[(6) - (7)].l)); + (yyval.s).Type = MSH_SURF_PLAN; + (yyval.s).Num = num; + ;} + break; + + case 195: +#line 2331 "Gmsh.y" + { + int num = (int)(yyvsp[(3) - (7)].d); + if(List_Nbr((yyvsp[(6) - (7)].l)) == 3 || List_Nbr((yyvsp[(6) - (7)].l)) == 4){ + if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ + double xc; List_Read((yyvsp[(6) - (7)].l), 0, &xc); + double yc; List_Read((yyvsp[(6) - (7)].l), 1, &yc); + double rx; List_Read((yyvsp[(6) - (7)].l), 2, &rx); + double ry = rx; if(List_Nbr((yyvsp[(6) - (7)].l)) == 4) List_Read((yyvsp[(6) - (7)].l), 3, &ry); + GModel::current()->getOCCInternals()->addDisk(num, xc, yc, rx, ry); + } + else{ + yymsg(0, "Disk only available with OpenCASCADE factory"); + } + } + else{ + yymsg(0, "Disk has to be defined using {xc,yc,r} or {xc,yc,rx,ry}"); + } + List_Delete((yyvsp[(6) - (7)].l)); + (yyval.s).Type = MSH_SURF_PLAN; + (yyval.s).Num = num; + ;} + break; + + case 196: +#line 2353 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(List_Nbr((yyvsp[(6) - (7)].l)) == 7){ @@ -8359,18 +8401,28 @@ yyreduce: ;} break; - case 195: -#line 2313 "Gmsh.y" + case 197: +#line 2378 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); - if(FindSurfaceLoop(num)){ - yymsg(0, "Surface loop %d already exists", num); + if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ + std::vector<int> faces; + for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++){ + double d; List_Read((yyvsp[(7) - (8)].l), i, &d); + faces.push_back((int)std::abs(d)); + } + GModel::current()->getOCCInternals()->addSurfaceLoop(num, faces); } else{ - List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (8)].l)); - SurfaceLoop *l = Create_SurfaceLoop(num, temp); - Tree_Add(GModel::current()->getGEOInternals()->SurfaceLoops, &l); - List_Delete(temp); + if(FindSurfaceLoop(num)){ + yymsg(0, "Surface loop %d already exists", num); + } + else{ + List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (8)].l)); + SurfaceLoop *l = Create_SurfaceLoop(num, temp); + Tree_Add(GModel::current()->getGEOInternals()->SurfaceLoops, &l); + List_Delete(temp); + } } List_Delete((yyvsp[(7) - (8)].l)); Free((yyvsp[(2) - (8)].c)); @@ -8379,15 +8431,15 @@ yyreduce: ;} break; - case 196: -#line 2330 "Gmsh.y" + case 198: +#line 2405 "Gmsh.y" { GModel::current()->getGEOInternals()->addCompoundMesh ( 2 , (yyvsp[(3) - (4)].l) ); ;} break; - case 197: -#line 2334 "Gmsh.y" + case 199: +#line 2409 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindSurface(num)){ @@ -8408,8 +8460,8 @@ yyreduce: ;} break; - case 198: -#line 2354 "Gmsh.y" + case 200: +#line 2429 "Gmsh.y" { int num = (int)(yyvsp[(4) - (12)].d); if(FindSurface(num)){ @@ -8444,8 +8496,8 @@ yyreduce: ;} break; - case 199: -#line 2387 "Gmsh.y" + case 201: +#line 2462 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); int op = (yyvsp[(6) - (8)].i); @@ -8490,8 +8542,8 @@ yyreduce: ;} break; - case 200: -#line 2434 "Gmsh.y" + case 202: +#line 2509 "Gmsh.y" { yymsg(0, "'Complex Volume' command is deprecated: use 'Volume' instead"); int num = (int)(yyvsp[(4) - (8)].d); @@ -8511,19 +8563,29 @@ yyreduce: ;} break; - case 201: -#line 2452 "Gmsh.y" + case 203: +#line 2527 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); - if(FindVolume(num)){ - yymsg(0, "Volume %d already exists", num); + if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ + std::vector<int> shells; + for(int i = 0; i < List_Nbr((yyvsp[(6) - (7)].l)); i++){ + double d; List_Read((yyvsp[(6) - (7)].l), i, &d); + shells.push_back((int)std::abs(d)); + } + GModel::current()->getOCCInternals()->addVolume(num, shells); } else{ - Volume *v = Create_Volume(num, MSH_VOLUME); - List_T *temp = ListOfDouble2ListOfInt((yyvsp[(6) - (7)].l)); - setVolumeSurfaces(v, temp); - List_Delete(temp); - Tree_Add(GModel::current()->getGEOInternals()->Volumes, &v); + if(FindVolume(num)){ + yymsg(0, "Volume %d already exists", num); + } + else{ + Volume *v = Create_Volume(num, MSH_VOLUME); + List_T *temp = ListOfDouble2ListOfInt((yyvsp[(6) - (7)].l)); + setVolumeSurfaces(v, temp); + List_Delete(temp); + Tree_Add(GModel::current()->getGEOInternals()->Volumes, &v); + } } List_Delete((yyvsp[(6) - (7)].l)); (yyval.s).Type = MSH_VOLUME; @@ -8531,8 +8593,8 @@ yyreduce: ;} break; - case 202: -#line 2469 "Gmsh.y" + case 204: +#line 2554 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -8552,15 +8614,15 @@ yyreduce: ;} break; - case 203: -#line 2487 "Gmsh.y" + case 205: +#line 2572 "Gmsh.y" { GModel::current()->getGEOInternals()->addCompoundMesh(3, (yyvsp[(3) - (4)].l)); ;} break; - case 204: -#line 2491 "Gmsh.y" + case 206: +#line 2576 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindVolume(num)){ @@ -8578,8 +8640,8 @@ yyreduce: ;} break; - case 205: -#line 2507 "Gmsh.y" + case 207: +#line 2592 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); int op = (yyvsp[(6) - (8)].i); @@ -8624,8 +8686,8 @@ yyreduce: ;} break; - case 206: -#line 2555 "Gmsh.y" + case 208: +#line 2640 "Gmsh.y" { if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ std::vector<int> in[4]; @@ -8644,8 +8706,8 @@ yyreduce: ;} break; - case 207: -#line 2572 "Gmsh.y" + case 209: +#line 2657 "Gmsh.y" { if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ std::vector<int> in[4]; @@ -8665,8 +8727,8 @@ yyreduce: ;} break; - case 208: -#line 2590 "Gmsh.y" + case 210: +#line 2675 "Gmsh.y" { if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ Msg::Error("TODO OCC Symmetry"); @@ -8678,8 +8740,8 @@ yyreduce: ;} break; - case 209: -#line 2600 "Gmsh.y" + case 211: +#line 2685 "Gmsh.y" { if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ Msg::Error("TODO OCC Dilate"); @@ -8691,8 +8753,8 @@ yyreduce: ;} break; - case 210: -#line 2610 "Gmsh.y" + case 212: +#line 2695 "Gmsh.y" { if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ Msg::Error("TODO OCC Dilate"); @@ -8704,8 +8766,8 @@ yyreduce: ;} break; - case 211: -#line 2620 "Gmsh.y" + case 213: +#line 2705 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); if(!strcmp((yyvsp[(1) - (4)].c), "Duplicata")){ @@ -8770,8 +8832,8 @@ yyreduce: ;} break; - case 212: -#line 2683 "Gmsh.y" + case 214: +#line 2768 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -8784,8 +8846,8 @@ yyreduce: ;} break; - case 213: -#line 2694 "Gmsh.y" + case 215: +#line 2779 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape*)); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -8800,32 +8862,32 @@ yyreduce: ;} break; - case 214: -#line 2709 "Gmsh.y" + case 216: +#line 2794 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 215: -#line 2710 "Gmsh.y" + case 217: +#line 2795 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 216: -#line 2715 "Gmsh.y" + case 218: +#line 2800 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); ;} break; - case 217: -#line 2719 "Gmsh.y" + case 219: +#line 2804 "Gmsh.y" { List_Add((yyval.l), &(yyvsp[(2) - (2)].s)); ;} break; - case 218: -#line 2723 "Gmsh.y" + case 220: +#line 2808 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -8856,8 +8918,8 @@ yyreduce: ;} break; - case 219: -#line 2752 "Gmsh.y" + case 221: +#line 2837 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -8888,8 +8950,8 @@ yyreduce: ;} break; - case 220: -#line 2781 "Gmsh.y" + case 222: +#line 2866 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -8920,8 +8982,8 @@ yyreduce: ;} break; - case 221: -#line 2810 "Gmsh.y" + case 223: +#line 2895 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -8952,8 +9014,8 @@ yyreduce: ;} break; - case 222: -#line 2844 "Gmsh.y" + case 224: +#line 2929 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(7) - (8)].l)) == 4){ @@ -8977,8 +9039,8 @@ yyreduce: ;} break; - case 223: -#line 2866 "Gmsh.y" + case 225: +#line 2951 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) int t = (int)(yyvsp[(4) - (10)].d); @@ -9006,8 +9068,8 @@ yyreduce: ;} break; - case 224: -#line 2893 "Gmsh.y" + case 226: +#line 2978 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(12) - (14)].l)) == 0){ @@ -9030,8 +9092,8 @@ yyreduce: ;} break; - case 225: -#line 2915 "Gmsh.y" + case 227: +#line 3000 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(14) - (16)].l)) == 0){ @@ -9055,8 +9117,8 @@ yyreduce: ;} break; - case 226: -#line 2937 "Gmsh.y" + case 228: +#line 3022 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(10) - (12)].l)) == 1){ @@ -9079,8 +9141,8 @@ yyreduce: ;} break; - case 227: -#line 2959 "Gmsh.y" + case 229: +#line 3044 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(12) - (14)].l)) == 1){ @@ -9137,8 +9199,8 @@ yyreduce: ;} break; - case 228: -#line 3015 "Gmsh.y" + case 230: +#line 3100 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(12) - (14)].l)) == 1){ @@ -9163,8 +9225,8 @@ yyreduce: ;} break; - case 229: -#line 3039 "Gmsh.y" + case 231: +#line 3124 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(12) - (14)].l)) == 3){ @@ -9190,8 +9252,8 @@ yyreduce: ;} break; - case 230: -#line 3064 "Gmsh.y" + case 232: +#line 3149 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(12) - (14)].l)) == 5){ @@ -9218,8 +9280,8 @@ yyreduce: ;} break; - case 231: -#line 3089 "Gmsh.y" + case 233: +#line 3174 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (8)].c), "Union")){ @@ -9334,8 +9396,8 @@ yyreduce: ;} break; - case 232: -#line 3202 "Gmsh.y" + case 234: +#line 3287 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (8)].c), "MathEval")){ @@ -9356,8 +9418,8 @@ yyreduce: ;} break; - case 233: -#line 3221 "Gmsh.y" + case 235: +#line 3306 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (6)].c), "CutMesh")){ @@ -9397,8 +9459,8 @@ yyreduce: ;} break; - case 234: -#line 3264 "Gmsh.y" + case 236: +#line 3349 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -9414,8 +9476,8 @@ yyreduce: ;} break; - case 235: -#line 3278 "Gmsh.y" + case 237: +#line 3363 "Gmsh.y" { #if defined(HAVE_MESH) GModel::current()->getFields()->deleteField((int)(yyvsp[(4) - (6)].d)); @@ -9423,8 +9485,8 @@ yyreduce: ;} break; - case 236: -#line 3284 "Gmsh.y" + case 238: +#line 3369 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -9441,8 +9503,8 @@ yyreduce: ;} break; - case 237: -#line 3299 "Gmsh.y" + case 239: +#line 3384 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Meshes") || !strcmp((yyvsp[(2) - (3)].c), "All")){ ClearProject(); @@ -9472,8 +9534,8 @@ yyreduce: ;} break; - case 238: -#line 3327 "Gmsh.y" + case 240: +#line 3412 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (4)].c), "Empty") && !strcmp((yyvsp[(3) - (4)].c), "Views")){ @@ -9487,8 +9549,8 @@ yyreduce: ;} break; - case 239: -#line 3344 "Gmsh.y" + case 241: +#line 3429 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -9499,8 +9561,8 @@ yyreduce: ;} break; - case 240: -#line 3353 "Gmsh.y" + case 242: +#line 3438 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(5) - (6)].l)); i++){ Shape TheShape; @@ -9511,8 +9573,8 @@ yyreduce: ;} break; - case 241: -#line 3367 "Gmsh.y" + case 243: +#line 3452 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -9523,8 +9585,8 @@ yyreduce: ;} break; - case 242: -#line 3381 "Gmsh.y" + case 244: +#line 3466 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 1, false); @@ -9532,8 +9594,8 @@ yyreduce: ;} break; - case 243: -#line 3387 "Gmsh.y" + case 245: +#line 3472 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 0, false); @@ -9541,8 +9603,8 @@ yyreduce: ;} break; - case 244: -#line 3393 "Gmsh.y" + case 246: +#line 3478 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -9553,8 +9615,8 @@ yyreduce: ;} break; - case 245: -#line 3402 "Gmsh.y" + case 247: +#line 3487 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -9565,8 +9627,8 @@ yyreduce: ;} break; - case 246: -#line 3411 "Gmsh.y" + case 248: +#line 3496 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -9577,8 +9639,8 @@ yyreduce: ;} break; - case 247: -#line 3420 "Gmsh.y" + case 249: +#line 3505 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -9589,8 +9651,8 @@ yyreduce: ;} break; - case 248: -#line 3434 "Gmsh.y" + case 250: +#line 3519 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Include")){ std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(2) - (3)].c)); @@ -9654,8 +9716,8 @@ yyreduce: ;} break; - case 249: -#line 3496 "Gmsh.y" + case 251: +#line 3581 "Gmsh.y" { int n = List_Nbr((yyvsp[(3) - (5)].l)); if(n == 1){ @@ -9675,8 +9737,8 @@ yyreduce: ;} break; - case 250: -#line 3514 "Gmsh.y" + case 252: +#line 3599 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(1) - (7)].c), "Save") && !strcmp((yyvsp[(2) - (7)].c), "View")){ @@ -9695,8 +9757,8 @@ yyreduce: ;} break; - case 251: -#line 3531 "Gmsh.y" + case 253: +#line 3616 "Gmsh.y" { #if defined(HAVE_POST) && defined(HAVE_MESH) if(!strcmp((yyvsp[(1) - (7)].c), "Background") && !strcmp((yyvsp[(2) - (7)].c), "Mesh") && !strcmp((yyvsp[(3) - (7)].c), "View")){ @@ -9713,8 +9775,8 @@ yyreduce: ;} break; - case 252: -#line 3546 "Gmsh.y" + case 254: +#line 3631 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Sleep")){ SleepInSeconds((yyvsp[(2) - (3)].d)); @@ -9745,8 +9807,8 @@ yyreduce: ;} break; - case 253: -#line 3575 "Gmsh.y" + case 255: +#line 3660 "Gmsh.y" { #if defined(HAVE_PLUGINS) try { @@ -9760,8 +9822,8 @@ yyreduce: ;} break; - case 254: -#line 3587 "Gmsh.y" + case 256: +#line 3672 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (3)].c), "ElementsFromAllViews")) @@ -9787,23 +9849,23 @@ yyreduce: ;} break; - case 255: -#line 3611 "Gmsh.y" + case 257: +#line 3696 "Gmsh.y" { Msg::Exit(0); ;} break; - case 256: -#line 3615 "Gmsh.y" + case 258: +#line 3700 "Gmsh.y" { gmsh_yyerrorstate = 999; // this will be checked when yyparse returns YYABORT; ;} break; - case 257: -#line 3620 "Gmsh.y" + case 259: +#line 3705 "Gmsh.y" { // FIXME: this is a hack to force a transfer from the old DB to // the new DB. This will become unnecessary if/when we fill the @@ -9813,16 +9875,16 @@ yyreduce: ;} break; - case 258: -#line 3628 "Gmsh.y" + case 260: +#line 3713 "Gmsh.y" { new GModel(); GModel::current(GModel::list.size() - 1); ;} break; - case 259: -#line 3633 "Gmsh.y" + case 261: +#line 3718 "Gmsh.y" { CTX::instance()->forcedBBox = 0; GModel::current()->importGEOInternals(); @@ -9830,16 +9892,16 @@ yyreduce: ;} break; - case 260: -#line 3639 "Gmsh.y" + case 262: +#line 3724 "Gmsh.y" { CTX::instance()->forcedBBox = 1; SetBoundingBox((yyvsp[(3) - (15)].d), (yyvsp[(5) - (15)].d), (yyvsp[(7) - (15)].d), (yyvsp[(9) - (15)].d), (yyvsp[(11) - (15)].d), (yyvsp[(13) - (15)].d)); ;} break; - case 261: -#line 3644 "Gmsh.y" + case 263: +#line 3729 "Gmsh.y" { #if defined(HAVE_OPENGL) drawContext::global()->draw(); @@ -9847,8 +9909,8 @@ yyreduce: ;} break; - case 262: -#line 3650 "Gmsh.y" + case 264: +#line 3735 "Gmsh.y" { #if defined(HAVE_OPENGL) CTX::instance()->mesh.changed = ENT_ALL; @@ -9858,30 +9920,30 @@ yyreduce: ;} break; - case 263: -#line 3658 "Gmsh.y" + case 265: +#line 3743 "Gmsh.y" { GModel::current()->createTopologyFromMesh(); ;} break; - case 264: -#line 3662 "Gmsh.y" + case 266: +#line 3747 "Gmsh.y" { GModel::current()->createTopologyFromMesh(1); ;} break; - case 265: -#line 3666 "Gmsh.y" + case 267: +#line 3751 "Gmsh.y" { GModel::current()->importGEOInternals(); GModel::current()->refineMesh(CTX::instance()->mesh.secondOrderLinear); ;} break; - case 266: -#line 3672 "Gmsh.y" + case 268: +#line 3757 "Gmsh.y" { int lock = CTX::instance()->lock; CTX::instance()->lock = 0; @@ -9937,8 +9999,8 @@ yyreduce: ;} break; - case 267: -#line 3731 "Gmsh.y" + case 269: +#line 3816 "Gmsh.y" { #if defined(HAVE_POPPLER) std::vector<int> is; @@ -9952,8 +10014,8 @@ yyreduce: ;} break; - case 268: -#line 3747 "Gmsh.y" + case 270: +#line 3832 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (6)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (6)].d); @@ -9972,8 +10034,8 @@ yyreduce: ;} break; - case 269: -#line 3764 "Gmsh.y" + case 271: +#line 3849 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (8)].d); @@ -9992,8 +10054,8 @@ yyreduce: ;} break; - case 270: -#line 3781 "Gmsh.y" + case 272: +#line 3866 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (8)].d); @@ -10017,8 +10079,8 @@ yyreduce: ;} break; - case 271: -#line 3803 "Gmsh.y" + case 273: +#line 3888 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (10)].d); @@ -10042,8 +10104,8 @@ yyreduce: ;} break; - case 272: -#line 3825 "Gmsh.y" + case 274: +#line 3910 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(0, "Invalid For/EndFor loop"); @@ -10080,8 +10142,8 @@ yyreduce: ;} break; - case 273: -#line 3860 "Gmsh.y" + case 275: +#line 3945 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction (std::string((yyvsp[(2) - (2)].c)), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -10091,8 +10153,8 @@ yyreduce: ;} break; - case 274: -#line 3868 "Gmsh.y" + case 276: +#line 3953 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction (std::string((yyvsp[(2) - (2)].c)), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -10102,8 +10164,8 @@ yyreduce: ;} break; - case 275: -#line 3876 "Gmsh.y" + case 277: +#line 3961 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction (&gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -10111,8 +10173,8 @@ yyreduce: ;} break; - case 276: -#line 3882 "Gmsh.y" + case 278: +#line 3967 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction (std::string((yyvsp[(2) - (3)].c)), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -10121,8 +10183,8 @@ yyreduce: ;} break; - case 277: -#line 3889 "Gmsh.y" + case 279: +#line 3974 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction (std::string((yyvsp[(2) - (3)].c)), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -10131,8 +10193,8 @@ yyreduce: ;} break; - case 278: -#line 3896 "Gmsh.y" + case 280: +#line 3981 "Gmsh.y" { ImbricatedTest++; if(ImbricatedTest > MAX_RECUR_TESTS-1){ @@ -10154,8 +10216,8 @@ yyreduce: ;} break; - case 279: -#line 3916 "Gmsh.y" + case 281: +#line 4001 "Gmsh.y" { if(ImbricatedTest > 0){ if (statusImbricatedTests[ImbricatedTest]){ @@ -10183,8 +10245,8 @@ yyreduce: ;} break; - case 280: -#line 3942 "Gmsh.y" + case 282: +#line 4027 "Gmsh.y" { if(ImbricatedTest > 0){ if(statusImbricatedTests[ImbricatedTest]){ @@ -10198,8 +10260,8 @@ yyreduce: ;} break; - case 281: -#line 3954 "Gmsh.y" + case 283: +#line 4039 "Gmsh.y" { ImbricatedTest--; if(ImbricatedTest < 0) @@ -10207,8 +10269,8 @@ yyreduce: ;} break; - case 282: -#line 3966 "Gmsh.y" + case 284: +#line 4051 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (5)].l), @@ -10218,8 +10280,8 @@ yyreduce: ;} break; - case 283: -#line 3974 "Gmsh.y" + case 285: +#line 4059 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (11)].l), @@ -10229,8 +10291,8 @@ yyreduce: ;} break; - case 284: -#line 3982 "Gmsh.y" + case 286: +#line 4067 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (13)].l), @@ -10240,8 +10302,8 @@ yyreduce: ;} break; - case 285: -#line 3990 "Gmsh.y" + case 287: +#line 4075 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10249,8 +10311,8 @@ yyreduce: ;} break; - case 286: -#line 3996 "Gmsh.y" + case 288: +#line 4081 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (7)].l), @@ -10260,8 +10322,8 @@ yyreduce: ;} break; - case 287: -#line 4004 "Gmsh.y" + case 289: +#line 4089 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10269,8 +10331,8 @@ yyreduce: ;} break; - case 288: -#line 4010 "Gmsh.y" + case 290: +#line 4095 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (13)].l), @@ -10280,8 +10342,8 @@ yyreduce: ;} break; - case 289: -#line 4018 "Gmsh.y" + case 291: +#line 4103 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10289,8 +10351,8 @@ yyreduce: ;} break; - case 290: -#line 4024 "Gmsh.y" + case 292: +#line 4109 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (15)].l), @@ -10300,8 +10362,8 @@ yyreduce: ;} break; - case 291: -#line 4032 "Gmsh.y" + case 293: +#line 4117 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10309,8 +10371,8 @@ yyreduce: ;} break; - case 292: -#line 4038 "Gmsh.y" + case 294: +#line 4123 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(BOUNDARY_LAYER, (yyvsp[(3) - (6)].l), 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., @@ -10319,8 +10381,8 @@ yyreduce: ;} break; - case 293: -#line 4046 "Gmsh.y" + case 295: +#line 4131 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (8)].d), @@ -10329,8 +10391,8 @@ yyreduce: ;} break; - case 294: -#line 4053 "Gmsh.y" + case 296: +#line 4138 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (8)].d), @@ -10339,8 +10401,8 @@ yyreduce: ;} break; - case 295: -#line 4060 "Gmsh.y" + case 297: +#line 4145 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (8)].d), @@ -10349,8 +10411,8 @@ yyreduce: ;} break; - case 296: -#line 4067 "Gmsh.y" + case 298: +#line 4152 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -10359,8 +10421,8 @@ yyreduce: ;} break; - case 297: -#line 4074 "Gmsh.y" + case 299: +#line 4159 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -10369,8 +10431,8 @@ yyreduce: ;} break; - case 298: -#line 4081 "Gmsh.y" + case 300: +#line 4166 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -10379,8 +10441,8 @@ yyreduce: ;} break; - case 299: -#line 4088 "Gmsh.y" + case 301: +#line 4173 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (14)].d), @@ -10389,8 +10451,8 @@ yyreduce: ;} break; - case 300: -#line 4095 "Gmsh.y" + case 302: +#line 4180 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (14)].d), @@ -10399,8 +10461,8 @@ yyreduce: ;} break; - case 301: -#line 4102 "Gmsh.y" + case 303: +#line 4187 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (14)].d), @@ -10409,8 +10471,8 @@ yyreduce: ;} break; - case 302: -#line 4109 "Gmsh.y" + case 304: +#line 4194 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10418,8 +10480,8 @@ yyreduce: ;} break; - case 303: -#line 4115 "Gmsh.y" + case 305: +#line 4200 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -10428,8 +10490,8 @@ yyreduce: ;} break; - case 304: -#line 4122 "Gmsh.y" + case 306: +#line 4207 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10437,8 +10499,8 @@ yyreduce: ;} break; - case 305: -#line 4128 "Gmsh.y" + case 307: +#line 4213 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -10447,8 +10509,8 @@ yyreduce: ;} break; - case 306: -#line 4135 "Gmsh.y" + case 308: +#line 4220 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10456,8 +10518,8 @@ yyreduce: ;} break; - case 307: -#line 4141 "Gmsh.y" + case 309: +#line 4226 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -10466,8 +10528,8 @@ yyreduce: ;} break; - case 308: -#line 4148 "Gmsh.y" + case 310: +#line 4233 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10475,8 +10537,8 @@ yyreduce: ;} break; - case 309: -#line 4154 "Gmsh.y" + case 311: +#line 4239 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (16)].d), @@ -10485,8 +10547,8 @@ yyreduce: ;} break; - case 310: -#line 4161 "Gmsh.y" + case 312: +#line 4246 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10494,8 +10556,8 @@ yyreduce: ;} break; - case 311: -#line 4167 "Gmsh.y" + case 313: +#line 4252 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (16)].d), @@ -10504,8 +10566,8 @@ yyreduce: ;} break; - case 312: -#line 4174 "Gmsh.y" + case 314: +#line 4259 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10513,8 +10575,8 @@ yyreduce: ;} break; - case 313: -#line 4180 "Gmsh.y" + case 315: +#line 4265 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (16)].d), @@ -10523,8 +10585,8 @@ yyreduce: ;} break; - case 314: -#line 4187 "Gmsh.y" + case 316: +#line 4272 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10532,8 +10594,8 @@ yyreduce: ;} break; - case 315: -#line 4193 "Gmsh.y" + case 317: +#line 4278 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (18)].d), @@ -10542,8 +10604,8 @@ yyreduce: ;} break; - case 316: -#line 4200 "Gmsh.y" + case 318: +#line 4285 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10551,8 +10613,8 @@ yyreduce: ;} break; - case 317: -#line 4206 "Gmsh.y" + case 319: +#line 4291 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (18)].d), @@ -10561,8 +10623,8 @@ yyreduce: ;} break; - case 318: -#line 4213 "Gmsh.y" + case 320: +#line 4298 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10570,8 +10632,8 @@ yyreduce: ;} break; - case 319: -#line 4219 "Gmsh.y" + case 321: +#line 4304 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (18)].d), @@ -10580,20 +10642,20 @@ yyreduce: ;} break; - case 320: -#line 4230 "Gmsh.y" + case 322: +#line 4315 "Gmsh.y" { ;} break; - case 321: -#line 4233 "Gmsh.y" + case 323: +#line 4318 "Gmsh.y" { ;} break; - case 322: -#line 4239 "Gmsh.y" + case 324: +#line 4324 "Gmsh.y" { int n = (int)fabs((yyvsp[(3) - (5)].d)); if(n){ // we accept n==0 to easily disable layers @@ -10607,8 +10669,8 @@ yyreduce: ;} break; - case 323: -#line 4251 "Gmsh.y" + case 325: +#line 4336 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (7)].l)); @@ -10630,8 +10692,8 @@ yyreduce: ;} break; - case 324: -#line 4271 "Gmsh.y" + case 326: +#line 4356 "Gmsh.y" { yymsg(0, "Explicit region numbers in layers are deprecated"); extr.mesh.ExtrudeMesh = true; @@ -10656,43 +10718,43 @@ yyreduce: ;} break; - case 325: -#line 4295 "Gmsh.y" + case 327: +#line 4380 "Gmsh.y" { extr.mesh.ScaleLast = true; ;} break; - case 326: -#line 4299 "Gmsh.y" + case 328: +#line 4384 "Gmsh.y" { extr.mesh.Recombine = true; ;} break; - case 327: -#line 4303 "Gmsh.y" + case 329: +#line 4388 "Gmsh.y" { extr.mesh.Recombine = (yyvsp[(2) - (3)].d) ? true : false; ;} break; - case 328: -#line 4307 "Gmsh.y" + case 330: +#line 4392 "Gmsh.y" { yymsg(0, "Keyword 'QuadTriSngl' deprecated. Use 'QuadTriNoNewVerts' instead."); ;} break; - case 329: -#line 4311 "Gmsh.y" + case 331: +#line 4396 "Gmsh.y" { yymsg(0, "Keyword 'QuadTriSngl' deprecated. Use 'QuadTriNoNewVerts' instead."); ;} break; - case 330: -#line 4315 "Gmsh.y" + case 332: +#line 4400 "Gmsh.y" { yymsg(0, "Method 'QuadTriDbl' deprecated. Use 'QuadTriAddVerts' instead, " "which has no requirement for the number of extrusion layers and meshes " @@ -10700,8 +10762,8 @@ yyreduce: ;} break; - case 331: -#line 4321 "Gmsh.y" + case 333: +#line 4406 "Gmsh.y" { yymsg(0, "Method 'QuadTriDbl' deprecated. Use 'QuadTriAddVerts' instead, " "which has no requirement for the number of extrusion layers and meshes " @@ -10709,36 +10771,36 @@ yyreduce: ;} break; - case 332: -#line 4327 "Gmsh.y" + case 334: +#line 4412 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_ADDVERTS_1; ;} break; - case 333: -#line 4331 "Gmsh.y" + case 335: +#line 4416 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_ADDVERTS_1_RECOMB; ;} break; - case 334: -#line 4335 "Gmsh.y" + case 336: +#line 4420 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_NOVERTS_1; ;} break; - case 335: -#line 4339 "Gmsh.y" + case 337: +#line 4424 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_NOVERTS_1_RECOMB; ;} break; - case 336: -#line 4343 "Gmsh.y" + case 338: +#line 4428 "Gmsh.y" { int num = (int)(yyvsp[(3) - (9)].d); if(FindSurface(num)){ @@ -10759,8 +10821,8 @@ yyreduce: ;} break; - case 337: -#line 4362 "Gmsh.y" + case 339: +#line 4447 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (6)].c), "Index")) extr.mesh.BoundaryLayerIndex = (yyvsp[(4) - (6)].d); @@ -10770,75 +10832,84 @@ yyreduce: ;} break; - case 338: -#line 4374 "Gmsh.y" + case 340: +#line 4459 "Gmsh.y" { (yyval.i) = OCC_Internals::Union; ;} break; - case 339: -#line 4375 "Gmsh.y" + case 341: +#line 4460 "Gmsh.y" { (yyval.i) = OCC_Internals::Intersection; ;} break; - case 340: -#line 4376 "Gmsh.y" + case 342: +#line 4461 "Gmsh.y" { (yyval.i) = OCC_Internals::Difference; ;} break; - case 341: -#line 4377 "Gmsh.y" + case 343: +#line 4462 "Gmsh.y" { (yyval.i) = OCC_Internals::Section; ;} break; - case 342: -#line 4378 "Gmsh.y" + case 344: +#line 4463 "Gmsh.y" { (yyval.i) = OCC_Internals::Fragments; ;} break; - case 343: -#line 4382 "Gmsh.y" + case 345: +#line 4467 "Gmsh.y" { (yyval.i) = 0; ;} break; - case 344: -#line 4383 "Gmsh.y" + case 346: +#line 4468 "Gmsh.y" { (yyval.i) = 1; ;} break; - case 345: -#line 4384 "Gmsh.y" + case 347: +#line 4469 "Gmsh.y" { (yyval.i) = (yyvsp[(2) - (3)].d); ;} break; - case 346: -#line 4389 "Gmsh.y" + case 348: +#line 4474 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ std::vector<int> shape[4], tool[4]; for(int i = 0; i < List_Nbr((yyvsp[(3) - (9)].l)); i++){ - Shape s; List_Read((yyvsp[(3) - (9)].l), i, &s); shape[3].push_back(s.Num); + Shape s; List_Read((yyvsp[(3) - (9)].l), i, &s); int dim = s.Type / 100 - 1; + if(dim >= 0 && dim <= 3) shape[dim].push_back(s.Num); } for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ - Shape s; List_Read((yyvsp[(7) - (9)].l), i, &s); tool[3].push_back(s.Num); + Shape s; List_Read((yyvsp[(7) - (9)].l), i, &s);int dim = s.Type / 100 - 1; + if(dim >= 0 && dim <= 3) tool[dim].push_back(s.Num); } std::vector<int> out[4]; GModel::current()->getOCCInternals()->applyBooleanOperator (-1, (OCC_Internals::BooleanOperator)(yyvsp[(1) - (9)].i), shape, tool, out, (yyvsp[(4) - (9)].i), (yyvsp[(8) - (9)].i)); - for(unsigned int i = 0; i < out[3].size(); i++){ - Shape s; - s.Num = out[3][i]; - s.Type = MSH_VOLUME; - List_Add((yyval.l), &s); + for(int dim = 0; dim < 4; dim++){ + for(unsigned int i = 0; i < out[dim].size(); i++){ + Shape s; + s.Num = out[dim][i]; + s.Type = (dim == 3) ? MSH_VOLUME_FROM_GMODEL : + (dim == 2) ? MSH_SURF_FROM_GMODEL : + (dim == 1) ? MSH_SEGM_FROM_GMODEL : MSH_POINT_FROM_GMODEL; + List_Add((yyval.l), &s); + } } } + else{ + yymsg(0, "Boolean operators only available with OpenCASCADE factory"); + } List_Delete((yyvsp[(3) - (9)].l)); List_Delete((yyvsp[(7) - (9)].l)); ;} break; - case 347: -#line 4413 "Gmsh.y" + case 349: +#line 4507 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -10863,16 +10934,18 @@ yyreduce: ;} break; - case 348: -#line 4440 "Gmsh.y" + case 350: +#line 4534 "Gmsh.y" { if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ std::vector<int> shape[4], tool[4]; for(int i = 0; i < List_Nbr((yyvsp[(7) - (14)].l)); i++){ - Shape s; List_Read((yyvsp[(7) - (14)].l), i, &s); shape[3].push_back(s.Num); + Shape s; List_Read((yyvsp[(7) - (14)].l), i, &s); int dim = s.Type / 100 - 1; + if(dim >= 0 && dim <= 3) shape[dim].push_back(s.Num); } for(int i = 0; i < List_Nbr((yyvsp[(11) - (14)].l)); i++){ - Shape s; List_Read((yyvsp[(11) - (14)].l), i, &s); tool[3].push_back(s.Num); + Shape s; List_Read((yyvsp[(11) - (14)].l), i, &s);int dim = s.Type / 100 - 1; + if(dim >= 0 && dim <= 3) tool[dim].push_back(s.Num); } std::vector<int> out[4]; GModel::current()->getOCCInternals()->applyBooleanOperator @@ -10883,15 +10956,15 @@ yyreduce: ;} break; - case 349: -#line 4460 "Gmsh.y" + case 351: +#line 4556 "Gmsh.y" { (yyval.v)[0] = (yyval.v)[1] = 1.; ;} break; - case 350: -#line 4464 "Gmsh.y" + case 352: +#line 4560 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power")) (yyval.v)[0] = 1.; @@ -10906,15 +10979,15 @@ yyreduce: ;} break; - case 351: -#line 4479 "Gmsh.y" + case 353: +#line 4575 "Gmsh.y" { (yyval.i) = -1; // left ;} break; - case 352: -#line 4483 "Gmsh.y" + case 354: +#line 4579 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "Right")) (yyval.i) = 1; @@ -10930,50 +11003,50 @@ yyreduce: ;} break; - case 353: -#line 4499 "Gmsh.y" + case 355: +#line 4595 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; - case 354: -#line 4503 "Gmsh.y" + case 356: +#line 4599 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; - case 355: -#line 4508 "Gmsh.y" + case 357: +#line 4604 "Gmsh.y" { (yyval.i) = 45; ;} break; - case 356: -#line 4512 "Gmsh.y" + case 358: +#line 4608 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(2) - (2)].d); ;} break; - case 357: -#line 4518 "Gmsh.y" + case 359: +#line 4614 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; - case 358: -#line 4522 "Gmsh.y" + case 360: +#line 4618 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; - case 359: -#line 4529 "Gmsh.y" + case 361: +#line 4625 "Gmsh.y" { int type = (int)(yyvsp[(6) - (7)].v)[0]; double coef = fabs((yyvsp[(6) - (7)].v)[1]); @@ -11031,8 +11104,8 @@ yyreduce: ;} break; - case 360: -#line 4585 "Gmsh.y" + case 362: +#line 4681 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (6)].l)); if(k != 0 && k != 3 && k != 4){ @@ -11104,16 +11177,16 @@ yyreduce: ;} break; - case 361: -#line 4655 "Gmsh.y" + case 363: +#line 4751 "Gmsh.y" { yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete((yyvsp[(7) - (8)].l)); ;} break; - case 362: -#line 4660 "Gmsh.y" + case 364: +#line 4756 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (5)].l)); if(k != 0 && k != 6 && k != 8){ @@ -11182,8 +11255,8 @@ yyreduce: ;} break; - case 363: -#line 4727 "Gmsh.y" + case 365: +#line 4823 "Gmsh.y" { if(!(yyvsp[(2) - (3)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Volumes); @@ -11221,8 +11294,8 @@ yyreduce: ;} break; - case 364: -#line 4763 "Gmsh.y" + case 366: +#line 4859 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (8)].l)); i++){ double d; @@ -11232,8 +11305,8 @@ yyreduce: ;} break; - case 365: -#line 4771 "Gmsh.y" + case 367: +#line 4867 "Gmsh.y" { if(!(yyvsp[(3) - (5)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -11278,8 +11351,8 @@ yyreduce: ;} break; - case 366: -#line 4814 "Gmsh.y" + case 368: +#line 4910 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Volumes); @@ -11320,8 +11393,8 @@ yyreduce: ;} break; - case 367: -#line 4853 "Gmsh.y" + case 369: +#line 4949 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -11343,8 +11416,8 @@ yyreduce: ;} break; - case 368: -#line 4874 "Gmsh.y" + case 370: +#line 4970 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (11)].l)) != List_Nbr((yyvsp[(8) - (11)].l))){ yymsg(0, "Number of master lines (%d) different from number of " @@ -11377,8 +11450,8 @@ yyreduce: ;} break; - case 369: -#line 4906 "Gmsh.y" + case 371: +#line 5002 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (11)].l)) != List_Nbr((yyvsp[(8) - (11)].l))){ yymsg(0, "Number of master faces (%d) different from number of " @@ -11406,8 +11479,8 @@ yyreduce: ;} break; - case 370: -#line 4933 "Gmsh.y" + case 372: +#line 5029 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (18)].l)) != List_Nbr((yyvsp[(8) - (18)].l))){ yymsg(0, "Number of master edges (%d) different from number of " @@ -11434,8 +11507,8 @@ yyreduce: ;} break; - case 371: -#line 4959 "Gmsh.y" + case 373: +#line 5055 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (18)].l)) != List_Nbr((yyvsp[(8) - (18)].l))){ yymsg(0, "Number of master faces (%d) different from number of " @@ -11462,8 +11535,8 @@ yyreduce: ;} break; - case 372: -#line 4985 "Gmsh.y" + case 374: +#line 5081 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (12)].l)) != List_Nbr((yyvsp[(8) - (12)].l))){ yymsg(0, "Number of master edges (%d) different from number of " @@ -11490,8 +11563,8 @@ yyreduce: ;} break; - case 373: -#line 5011 "Gmsh.y" + case 375: +#line 5107 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (12)].l)) != List_Nbr((yyvsp[(8) - (12)].l))){ yymsg(0, "Number of master faces (%d) different from number of " @@ -11518,8 +11591,8 @@ yyreduce: ;} break; - case 374: -#line 5037 "Gmsh.y" + case 376: +#line 5133 "Gmsh.y" { if (List_Nbr((yyvsp[(5) - (12)].l)) != List_Nbr((yyvsp[(10) - (12)].l))){ yymsg(0, "Number of master surface edges (%d) different from number of " @@ -11542,8 +11615,8 @@ yyreduce: ;} break; - case 375: -#line 5058 "Gmsh.y" + case 377: +#line 5154 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -11573,8 +11646,8 @@ yyreduce: ;} break; - case 376: -#line 5086 "Gmsh.y" + case 378: +#line 5182 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -11604,8 +11677,8 @@ yyreduce: ;} break; - case 377: -#line 5114 "Gmsh.y" + case 379: +#line 5210 "Gmsh.y" { Volume *v = FindVolume((int)(yyvsp[(8) - (10)].d)); if(v){ @@ -11635,8 +11708,8 @@ yyreduce: ;} break; - case 378: -#line 5142 "Gmsh.y" + case 380: +#line 5238 "Gmsh.y" { Volume *v = FindVolume((int)(yyvsp[(8) - (10)].d)); if(v){ @@ -11666,8 +11739,8 @@ yyreduce: ;} break; - case 379: -#line 5170 "Gmsh.y" + case 381: +#line 5266 "Gmsh.y" { Volume *v = FindVolume((int)(yyvsp[(8) - (10)].d)); if(v){ @@ -11697,8 +11770,8 @@ yyreduce: ;} break; - case 380: -#line 5198 "Gmsh.y" + case 382: +#line 5294 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -11739,8 +11812,8 @@ yyreduce: ;} break; - case 381: -#line 5237 "Gmsh.y" + case 383: +#line 5333 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Curves); @@ -11781,8 +11854,8 @@ yyreduce: ;} break; - case 382: -#line 5276 "Gmsh.y" + case 384: +#line 5372 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::viter it = GModel::current()->firstVertex(); @@ -11805,8 +11878,8 @@ yyreduce: ;} break; - case 383: -#line 5297 "Gmsh.y" + case 385: +#line 5393 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::eiter it = GModel::current()->firstEdge(); @@ -11829,8 +11902,8 @@ yyreduce: ;} break; - case 384: -#line 5318 "Gmsh.y" + case 386: +#line 5414 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::fiter it = GModel::current()->firstFace(); @@ -11853,15 +11926,15 @@ yyreduce: ;} break; - case 385: -#line 5345 "Gmsh.y" + case 387: +#line 5441 "Gmsh.y" { ReplaceAllDuplicates(); ;} break; - case 386: -#line 5349 "Gmsh.y" + case 388: +#line 5445 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Geometry")) ReplaceAllDuplicates(); @@ -11873,8 +11946,8 @@ yyreduce: ;} break; - case 387: -#line 5359 "Gmsh.y" + case 389: +#line 5455 "Gmsh.y" { if(List_Nbr((yyvsp[(4) - (6)].l)) >= 2){ double d; @@ -11906,23 +11979,23 @@ yyreduce: ;} break; - case 388: -#line 5393 "Gmsh.y" + case 390: +#line 5489 "Gmsh.y" { (yyval.c) = (char*)"Homology"; ;} break; - case 389: -#line 5394 "Gmsh.y" + case 391: +#line 5490 "Gmsh.y" { (yyval.c) = (char*)"Cohomology"; ;} break; - case 390: -#line 5395 "Gmsh.y" + case 392: +#line 5491 "Gmsh.y" { (yyval.c) = (char*)"Betti"; ;} break; - case 391: -#line 5400 "Gmsh.y" + case 393: +#line 5496 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < 4; i++) dim.push_back(i); @@ -11930,8 +12003,8 @@ yyreduce: ;} break; - case 392: -#line 5406 "Gmsh.y" + case 394: +#line 5502 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(3) - (5)].l)); i++){ @@ -11945,8 +12018,8 @@ yyreduce: ;} break; - case 393: -#line 5418 "Gmsh.y" + case 395: +#line 5514 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(3) - (7)].l)); i++){ @@ -11966,8 +12039,8 @@ yyreduce: ;} break; - case 394: -#line 5436 "Gmsh.y" + case 396: +#line 5532 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(6) - (10)].l)); i++){ @@ -11992,48 +12065,48 @@ yyreduce: ;} break; - case 395: -#line 5463 "Gmsh.y" + case 397: +#line 5559 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; - case 396: -#line 5464 "Gmsh.y" + case 398: +#line 5560 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (3)].d); ;} break; - case 397: -#line 5465 "Gmsh.y" + case 399: +#line 5561 "Gmsh.y" { (yyval.d) = -(yyvsp[(2) - (2)].d); ;} break; - case 398: -#line 5466 "Gmsh.y" + case 400: +#line 5562 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; - case 399: -#line 5467 "Gmsh.y" + case 401: +#line 5563 "Gmsh.y" { (yyval.d) = !(yyvsp[(2) - (2)].d); ;} break; - case 400: -#line 5468 "Gmsh.y" + case 402: +#line 5564 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;} break; - case 401: -#line 5469 "Gmsh.y" + case 403: +#line 5565 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;} break; - case 402: -#line 5470 "Gmsh.y" + case 404: +#line 5566 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;} break; - case 403: -#line 5472 "Gmsh.y" + case 405: +#line 5568 "Gmsh.y" { if(!(yyvsp[(3) - (3)].d)) yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); @@ -12042,233 +12115,233 @@ yyreduce: ;} break; - case 404: -#line 5478 "Gmsh.y" + case 406: +#line 5574 "Gmsh.y" { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} break; - case 405: -#line 5479 "Gmsh.y" + case 407: +#line 5575 "Gmsh.y" { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} break; - case 406: -#line 5480 "Gmsh.y" + case 408: +#line 5576 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} break; - case 407: -#line 5481 "Gmsh.y" + case 409: +#line 5577 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} break; - case 408: -#line 5482 "Gmsh.y" + case 410: +#line 5578 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} break; - case 409: -#line 5483 "Gmsh.y" + case 411: +#line 5579 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} break; - case 410: -#line 5484 "Gmsh.y" + case 412: +#line 5580 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} break; - case 411: -#line 5485 "Gmsh.y" + case 413: +#line 5581 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} break; - case 412: -#line 5486 "Gmsh.y" + case 414: +#line 5582 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} break; - case 413: -#line 5487 "Gmsh.y" + case 415: +#line 5583 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} break; - case 414: -#line 5488 "Gmsh.y" + case 416: +#line 5584 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} break; - case 415: -#line 5489 "Gmsh.y" + case 417: +#line 5585 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; - case 416: -#line 5490 "Gmsh.y" + case 418: +#line 5586 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; - case 417: -#line 5491 "Gmsh.y" + case 419: +#line 5587 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; - case 418: -#line 5492 "Gmsh.y" + case 420: +#line 5588 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; - case 419: -#line 5493 "Gmsh.y" + case 421: +#line 5589 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; - case 420: -#line 5494 "Gmsh.y" + case 422: +#line 5590 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; - case 421: -#line 5495 "Gmsh.y" + case 423: +#line 5591 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; - case 422: -#line 5496 "Gmsh.y" + case 424: +#line 5592 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; - case 423: -#line 5497 "Gmsh.y" + case 425: +#line 5593 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; - case 424: -#line 5498 "Gmsh.y" + case 426: +#line 5594 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; - case 425: -#line 5499 "Gmsh.y" + case 427: +#line 5595 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; - case 426: -#line 5500 "Gmsh.y" + case 428: +#line 5596 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; - case 427: -#line 5501 "Gmsh.y" + case 429: +#line 5597 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; - case 428: -#line 5502 "Gmsh.y" + case 430: +#line 5598 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; - case 429: -#line 5503 "Gmsh.y" + case 431: +#line 5599 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; - case 430: -#line 5504 "Gmsh.y" + case 432: +#line 5600 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; - case 431: -#line 5505 "Gmsh.y" + case 433: +#line 5601 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; - case 432: -#line 5506 "Gmsh.y" + case 434: +#line 5602 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d) + 0.5); ;} break; - case 433: -#line 5507 "Gmsh.y" + case 435: +#line 5603 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 434: -#line 5508 "Gmsh.y" + case 436: +#line 5604 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 435: -#line 5509 "Gmsh.y" + case 437: +#line 5605 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; - case 436: -#line 5510 "Gmsh.y" + case 438: +#line 5606 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; - case 437: -#line 5519 "Gmsh.y" + case 439: +#line 5615 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; - case 438: -#line 5520 "Gmsh.y" + case 440: +#line 5616 "Gmsh.y" { (yyval.d) = 3.141592653589793; ;} break; - case 439: -#line 5521 "Gmsh.y" + case 441: +#line 5617 "Gmsh.y" { (yyval.d) = (double)ImbricatedTest; ;} break; - case 440: -#line 5522 "Gmsh.y" + case 442: +#line 5618 "Gmsh.y" { (yyval.d) = Msg::GetCommRank(); ;} break; - case 441: -#line 5523 "Gmsh.y" + case 443: +#line 5619 "Gmsh.y" { (yyval.d) = Msg::GetCommSize(); ;} break; - case 442: -#line 5524 "Gmsh.y" + case 444: +#line 5620 "Gmsh.y" { (yyval.d) = GetGmshMajorVersion(); ;} break; - case 443: -#line 5525 "Gmsh.y" + case 445: +#line 5621 "Gmsh.y" { (yyval.d) = GetGmshMinorVersion(); ;} break; - case 444: -#line 5526 "Gmsh.y" + case 446: +#line 5622 "Gmsh.y" { (yyval.d) = GetGmshPatchVersion(); ;} break; - case 445: -#line 5527 "Gmsh.y" + case 447: +#line 5623 "Gmsh.y" { (yyval.d) = Cpu(); ;} break; - case 446: -#line 5528 "Gmsh.y" + case 448: +#line 5624 "Gmsh.y" { (yyval.d) = GetMemoryUsage()/1024./1024.; ;} break; - case 447: -#line 5529 "Gmsh.y" + case 449: +#line 5625 "Gmsh.y" { (yyval.d) = TotalRam(); ;} break; - case 448: -#line 5534 "Gmsh.y" + case 450: +#line 5630 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; - case 449: -#line 5536 "Gmsh.y" + case 451: +#line 5632 "Gmsh.y" { std::vector<double> val(1, (yyvsp[(3) - (6)].d)); Msg::ExchangeOnelabParameter("", val, floatOptions, charOptions); @@ -12276,24 +12349,24 @@ yyreduce: ;} break; - case 450: -#line 5542 "Gmsh.y" + case 452: +#line 5638 "Gmsh.y" { (yyval.d) = Msg::GetOnelabNumber((yyvsp[(3) - (4)].c)); Free((yyvsp[(3) - (4)].c)); ;} break; - case 451: -#line 5547 "Gmsh.y" + case 453: +#line 5643 "Gmsh.y" { (yyval.d) = Msg::GetOnelabNumber((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); ;} break; - case 452: -#line 5552 "Gmsh.y" + case 454: +#line 5648 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c)); @@ -12312,8 +12385,8 @@ yyreduce: ;} break; - case 453: -#line 5569 "Gmsh.y" + case 455: +#line 5665 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -12333,8 +12406,8 @@ yyreduce: ;} break; - case 454: -#line 5587 "Gmsh.y" + case 456: +#line 5683 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -12354,8 +12427,8 @@ yyreduce: ;} break; - case 455: -#line 5605 "Gmsh.y" + case 457: +#line 5701 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -12375,8 +12448,8 @@ yyreduce: ;} break; - case 456: -#line 5623 "Gmsh.y" + case 458: +#line 5719 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -12396,16 +12469,16 @@ yyreduce: ;} break; - case 457: -#line 5641 "Gmsh.y" + case 459: +#line 5737 "Gmsh.y" { (yyval.d) = gmsh_yysymbols.count((yyvsp[(3) - (4)].c)); Free((yyvsp[(3) - (4)].c)); ;} break; - case 458: -#line 5646 "Gmsh.y" + case 460: +#line 5742 "Gmsh.y" { std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(3) - (4)].c)); (yyval.d) = !StatFile(tmp); @@ -12413,8 +12486,8 @@ yyreduce: ;} break; - case 459: -#line 5652 "Gmsh.y" + case 461: +#line 5748 "Gmsh.y" { if(gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){ gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(2) - (4)].c)]); @@ -12431,8 +12504,8 @@ yyreduce: ;} break; - case 460: -#line 5667 "Gmsh.y" + case 462: +#line 5763 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c)); @@ -12453,8 +12526,8 @@ yyreduce: ;} break; - case 461: -#line 5686 "Gmsh.y" + case 463: +#line 5782 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -12476,8 +12549,8 @@ yyreduce: ;} break; - case 462: -#line 5706 "Gmsh.y" + case 464: +#line 5802 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -12499,8 +12572,8 @@ yyreduce: ;} break; - case 463: -#line 5726 "Gmsh.y" + case 465: +#line 5822 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -12522,8 +12595,8 @@ yyreduce: ;} break; - case 464: -#line 5746 "Gmsh.y" + case 466: +#line 5842 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -12545,24 +12618,24 @@ yyreduce: ;} break; - case 465: -#line 5769 "Gmsh.y" + case 467: +#line 5865 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), (yyval.d)); Free((yyvsp[(1) - (3)].c)); Free((yyvsp[(3) - (3)].c)); ;} break; - case 466: -#line 5774 "Gmsh.y" + case 468: +#line 5870 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), (yyval.d)); Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(6) - (6)].c)); ;} break; - case 467: -#line 5779 "Gmsh.y" + case 469: +#line 5875 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){ @@ -12574,8 +12647,8 @@ yyreduce: ;} break; - case 468: -#line 5789 "Gmsh.y" + case 470: +#line 5885 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){ @@ -12587,16 +12660,16 @@ yyreduce: ;} break; - case 469: -#line 5799 "Gmsh.y" + case 471: +#line 5895 "Gmsh.y" { (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); ;} break; - case 470: -#line 5804 "Gmsh.y" + case 472: +#line 5900 "Gmsh.y" { int matches = 0; for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ @@ -12609,8 +12682,8 @@ yyreduce: ;} break; - case 471: -#line 5815 "Gmsh.y" + case 473: +#line 5911 "Gmsh.y" { std::string s((yyvsp[(3) - (6)].c)), substr((yyvsp[(5) - (6)].c)); if(s.find(substr) != std::string::npos) @@ -12621,24 +12694,24 @@ yyreduce: ;} break; - case 472: -#line 5824 "Gmsh.y" + case 474: +#line 5920 "Gmsh.y" { (yyval.d) = strlen((yyvsp[(3) - (4)].c)); Free((yyvsp[(3) - (4)].c)); ;} break; - case 473: -#line 5829 "Gmsh.y" + case 475: +#line 5925 "Gmsh.y" { (yyval.d) = strcmp((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); Free((yyvsp[(3) - (6)].c)); Free((yyvsp[(5) - (6)].c)); ;} break; - case 474: -#line 5834 "Gmsh.y" + case 476: +#line 5930 "Gmsh.y" { int align = 0, font = 0, fontsize = CTX::instance()->glFontSize; if(List_Nbr((yyvsp[(3) - (4)].l)) % 2){ @@ -12664,116 +12737,116 @@ yyreduce: ;} break; - case 475: -#line 5861 "Gmsh.y" + case 477: +#line 5957 "Gmsh.y" { memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double)); ;} break; - case 476: -#line 5865 "Gmsh.y" + case 478: +#line 5961 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i]; ;} break; - case 477: -#line 5869 "Gmsh.y" + case 479: +#line 5965 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; - case 478: -#line 5873 "Gmsh.y" + case 480: +#line 5969 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i]; ;} break; - case 479: -#line 5877 "Gmsh.y" + case 481: +#line 5973 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i]; ;} break; - case 480: -#line 5884 "Gmsh.y" + case 482: +#line 5980 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (11)].d); (yyval.v)[1] = (yyvsp[(4) - (11)].d); (yyval.v)[2] = (yyvsp[(6) - (11)].d); (yyval.v)[3] = (yyvsp[(8) - (11)].d); (yyval.v)[4] = (yyvsp[(10) - (11)].d); ;} break; - case 481: -#line 5888 "Gmsh.y" + case 483: +#line 5984 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (9)].d); (yyval.v)[1] = (yyvsp[(4) - (9)].d); (yyval.v)[2] = (yyvsp[(6) - (9)].d); (yyval.v)[3] = (yyvsp[(8) - (9)].d); (yyval.v)[4] = 1.0; ;} break; - case 482: -#line 5892 "Gmsh.y" + case 484: +#line 5988 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; - case 483: -#line 5896 "Gmsh.y" + case 485: +#line 5992 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; - case 484: -#line 5903 "Gmsh.y" + case 486: +#line 5999 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(List_T*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].l))); ;} break; - case 485: -#line 5908 "Gmsh.y" + case 487: +#line 6004 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].l))); ;} break; - case 486: -#line 5915 "Gmsh.y" + case 488: +#line 6011 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); ;} break; - case 487: -#line 5920 "Gmsh.y" + case 489: +#line 6016 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 488: -#line 5924 "Gmsh.y" + case 490: +#line 6020 "Gmsh.y" { // creates an empty list (yyval.l) = List_Create(2, 1, sizeof(double)); ;} break; - case 489: -#line 5929 "Gmsh.y" + case 491: +#line 6025 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; - case 490: -#line 5933 "Gmsh.y" + case 492: +#line 6029 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -12783,8 +12856,8 @@ yyreduce: ;} break; - case 491: -#line 5941 "Gmsh.y" + case 493: +#line 6037 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (5)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -12794,15 +12867,15 @@ yyreduce: ;} break; - case 492: -#line 5952 "Gmsh.y" + case 494: +#line 6048 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 493: -#line 5956 "Gmsh.y" + case 495: +#line 6052 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all")) (yyval.l) = 0; @@ -12813,8 +12886,8 @@ yyreduce: ;} break; - case 494: -#line 5968 "Gmsh.y" + case 496: +#line 6064 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -12824,8 +12897,8 @@ yyreduce: ;} break; - case 495: -#line 5976 "Gmsh.y" + case 497: +#line 6072 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (3)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -12835,8 +12908,8 @@ yyreduce: ;} break; - case 496: -#line 5984 "Gmsh.y" + case 498: +#line 6080 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); for(double d = (yyvsp[(1) - (3)].d); ((yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d)) ? (d <= (yyvsp[(3) - (3)].d)) : (d >= (yyvsp[(3) - (3)].d)); @@ -12845,8 +12918,8 @@ yyreduce: ;} break; - case 497: -#line 5991 "Gmsh.y" + case 499: +#line 6087 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!(yyvsp[(5) - (5)].d)){ //|| ($1 < $3 && $5 < 0) || ($1 > $3 && $5 > 0) @@ -12858,8 +12931,8 @@ yyreduce: ;} break; - case 498: -#line 6001 "Gmsh.y" + case 500: +#line 6097 "Gmsh.y" { // Returns the coordinates of a point and fills a list with it. // This allows to ensure e.g. that relative point positions are @@ -12890,64 +12963,64 @@ yyreduce: ;} break; - case 499: -#line 6030 "Gmsh.y" + case 501: +#line 6126 "Gmsh.y" { (yyval.l) = GetAllElementaryEntityNumbers(0); ;} break; - case 500: -#line 6034 "Gmsh.y" + case 502: +#line 6130 "Gmsh.y" { (yyval.l) = GetAllElementaryEntityNumbers(1); ;} break; - case 501: -#line 6038 "Gmsh.y" + case 503: +#line 6134 "Gmsh.y" { (yyval.l) = GetAllElementaryEntityNumbers(2); ;} break; - case 502: -#line 6042 "Gmsh.y" + case 504: +#line 6138 "Gmsh.y" { (yyval.l) = GetAllElementaryEntityNumbers(3); ;} break; - case 503: -#line 6046 "Gmsh.y" + case 505: +#line 6142 "Gmsh.y" { (yyval.l) = GetAllPhysicalEntityNumbers(0); ;} break; - case 504: -#line 6050 "Gmsh.y" + case 506: +#line 6146 "Gmsh.y" { (yyval.l) = GetAllPhysicalEntityNumbers(1); ;} break; - case 505: -#line 6054 "Gmsh.y" + case 507: +#line 6150 "Gmsh.y" { (yyval.l) = GetAllPhysicalEntityNumbers(2); ;} break; - case 506: -#line 6058 "Gmsh.y" + case 508: +#line 6154 "Gmsh.y" { (yyval.l) = GetAllPhysicalEntityNumbers(3); ;} break; - case 507: -#line 6062 "Gmsh.y" + case 509: +#line 6158 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -12978,8 +13051,8 @@ yyreduce: ;} break; - case 508: -#line 6091 "Gmsh.y" + case 510: +#line 6187 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -13010,8 +13083,8 @@ yyreduce: ;} break; - case 509: -#line 6120 "Gmsh.y" + case 511: +#line 6216 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -13042,8 +13115,8 @@ yyreduce: ;} break; - case 510: -#line 6149 "Gmsh.y" + case 512: +#line 6245 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -13074,8 +13147,8 @@ yyreduce: ;} break; - case 511: -#line 6179 "Gmsh.y" + case 513: +#line 6275 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); GModel::current()->importGEOInternals(); @@ -13089,8 +13162,8 @@ yyreduce: ;} break; - case 512: -#line 6192 "Gmsh.y" + case 514: +#line 6288 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); GModel::current()->importGEOInternals(); @@ -13104,8 +13177,8 @@ yyreduce: ;} break; - case 513: -#line 6205 "Gmsh.y" + case 515: +#line 6301 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); GModel::current()->importGEOInternals(); @@ -13119,8 +13192,8 @@ yyreduce: ;} break; - case 514: -#line 6218 "Gmsh.y" + case 516: +#line 6314 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); GModel::current()->importGEOInternals(); @@ -13134,8 +13207,8 @@ yyreduce: ;} break; - case 515: -#line 6230 "Gmsh.y" + case 517: +#line 6326 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -13147,8 +13220,8 @@ yyreduce: ;} break; - case 516: -#line 6240 "Gmsh.y" + case 518: +#line 6336 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -13160,8 +13233,8 @@ yyreduce: ;} break; - case 517: -#line 6250 "Gmsh.y" + case 519: +#line 6346 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -13173,8 +13246,8 @@ yyreduce: ;} break; - case 518: -#line 6260 "Gmsh.y" + case 520: +#line 6356 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -13188,8 +13261,8 @@ yyreduce: ;} break; - case 519: -#line 6272 "Gmsh.y" + case 521: +#line 6368 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -13203,8 +13276,8 @@ yyreduce: ;} break; - case 520: -#line 6285 "Gmsh.y" + case 522: +#line 6381 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(3) - (4)].c))) @@ -13218,36 +13291,36 @@ yyreduce: ;} break; - case 521: -#line 6297 "Gmsh.y" + case 523: +#line 6393 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); ;} break; - case 522: -#line 6301 "Gmsh.y" + case 524: +#line 6397 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); ;} break; - case 523: -#line 6305 "Gmsh.y" + case 525: +#line 6401 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (6)].l); ;} break; - case 524: -#line 6309 "Gmsh.y" + case 526: +#line 6405 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (6)].l); ;} break; - case 525: -#line 6313 "Gmsh.y" + case 527: +#line 6409 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -13267,8 +13340,8 @@ yyreduce: ;} break; - case 526: -#line 6331 "Gmsh.y" + case 528: +#line 6427 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -13288,8 +13361,8 @@ yyreduce: ;} break; - case 527: -#line 6349 "Gmsh.y" + case 529: +#line 6445 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(double)); for(int i = 0; i < (int)(yyvsp[(7) - (8)].d); i++) { @@ -13299,8 +13372,8 @@ yyreduce: ;} break; - case 528: -#line 6357 "Gmsh.y" + case 530: +#line 6453 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(double)); for(int i = 0; i < (int)(yyvsp[(7) - (8)].d); i++) { @@ -13310,8 +13383,8 @@ yyreduce: ;} break; - case 529: -#line 6365 "Gmsh.y" + case 531: +#line 6461 "Gmsh.y" { Msg::Barrier(); FILE *File; @@ -13342,8 +13415,8 @@ yyreduce: ;} break; - case 530: -#line 6394 "Gmsh.y" + case 532: +#line 6490 "Gmsh.y" { double x0 = (yyvsp[(3) - (14)].d), x1 = (yyvsp[(5) - (14)].d), y0 = (yyvsp[(7) - (14)].d), y1 = (yyvsp[(9) - (14)].d), ys = (yyvsp[(11) - (14)].d); int N = (int)(yyvsp[(13) - (14)].d); @@ -13355,30 +13428,30 @@ yyreduce: ;} break; - case 531: -#line 6407 "Gmsh.y" + case 533: +#line 6503 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); ;} break; - case 532: -#line 6412 "Gmsh.y" + case 534: +#line 6508 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 533: -#line 6416 "Gmsh.y" + case 535: +#line 6512 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].d))); ;} break; - case 534: -#line 6420 "Gmsh.y" + case 536: +#line 6516 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ double d; @@ -13389,22 +13462,22 @@ yyreduce: ;} break; - case 535: -#line 6432 "Gmsh.y" + case 537: +#line 6528 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (9)].d), (int)(yyvsp[(4) - (9)].d), (int)(yyvsp[(6) - (9)].d), (int)(yyvsp[(8) - (9)].d)); ;} break; - case 536: -#line 6436 "Gmsh.y" + case 538: +#line 6532 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (7)].d), (int)(yyvsp[(4) - (7)].d), (int)(yyvsp[(6) - (7)].d), 255); ;} break; - case 537: -#line 6448 "Gmsh.y" + case 539: +#line 6544 "Gmsh.y" { int flag = 0; if(gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){ @@ -13423,8 +13496,8 @@ yyreduce: ;} break; - case 538: -#line 6465 "Gmsh.y" + case 540: +#line 6561 "Gmsh.y" { unsigned int val = 0; ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val); @@ -13433,15 +13506,15 @@ yyreduce: ;} break; - case 539: -#line 6475 "Gmsh.y" + case 541: +#line 6571 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; - case 540: -#line 6479 "Gmsh.y" + case 542: +#line 6575 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (6)].d)); @@ -13455,30 +13528,30 @@ yyreduce: ;} break; - case 541: -#line 6494 "Gmsh.y" + case 543: +#line 6590 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); List_Add((yyval.l), &((yyvsp[(1) - (1)].u))); ;} break; - case 542: -#line 6499 "Gmsh.y" + case 544: +#line 6595 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].u))); ;} break; - case 543: -#line 6506 "Gmsh.y" + case 545: +#line 6602 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 544: -#line 6510 "Gmsh.y" + case 546: +#line 6606 "Gmsh.y" { std::string val; if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))) @@ -13493,8 +13566,8 @@ yyreduce: ;} break; - case 545: -#line 6523 "Gmsh.y" + case 547: +#line 6619 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -13510,8 +13583,8 @@ yyreduce: ;} break; - case 546: -#line 6537 "Gmsh.y" + case 548: +#line 6633 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -13527,8 +13600,8 @@ yyreduce: ;} break; - case 547: -#line 6551 "Gmsh.y" + case 549: +#line 6647 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -13544,8 +13617,8 @@ yyreduce: ;} break; - case 548: -#line 6565 "Gmsh.y" + case 550: +#line 6661 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -13561,8 +13634,8 @@ yyreduce: ;} break; - case 549: -#line 6579 "Gmsh.y" + case 551: +#line 6675 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), out); @@ -13572,8 +13645,8 @@ yyreduce: ;} break; - case 550: -#line 6587 "Gmsh.y" + case 552: +#line 6683 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), out); @@ -13583,22 +13656,22 @@ yyreduce: ;} break; - case 551: -#line 6598 "Gmsh.y" + case 553: +#line 6694 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 552: -#line 6602 "Gmsh.y" + case 554: +#line 6698 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; - case 553: -#line 6606 "Gmsh.y" + case 555: +#line 6702 "Gmsh.y" { (yyval.c) = (char *)Malloc(32 * sizeof(char)); time_t now; @@ -13608,8 +13681,8 @@ yyreduce: ;} break; - case 554: -#line 6614 "Gmsh.y" + case 556: +#line 6710 "Gmsh.y" { std::string exe = Msg::GetExecutableName(); (yyval.c) = (char *)Malloc(exe.size() + 1); @@ -13617,8 +13690,8 @@ yyreduce: ;} break; - case 555: -#line 6620 "Gmsh.y" + case 557: +#line 6716 "Gmsh.y" { std::string action = Msg::GetOnelabAction(); (yyval.c) = (char *)Malloc(action.size() + 1); @@ -13626,8 +13699,8 @@ yyreduce: ;} break; - case 556: -#line 6626 "Gmsh.y" + case 558: +#line 6722 "Gmsh.y" { const char *env = GetEnvironmentVar((yyvsp[(3) - (4)].c)); if(!env) env = ""; @@ -13637,8 +13710,8 @@ yyreduce: ;} break; - case 557: -#line 6634 "Gmsh.y" + case 559: +#line 6730 "Gmsh.y" { std::string s = Msg::GetString((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -13648,8 +13721,8 @@ yyreduce: ;} break; - case 558: -#line 6642 "Gmsh.y" + case 560: +#line 6738 "Gmsh.y" { std::string s = Msg::GetOnelabString((yyvsp[(3) - (4)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -13658,8 +13731,8 @@ yyreduce: ;} break; - case 559: -#line 6649 "Gmsh.y" + case 561: +#line 6745 "Gmsh.y" { std::string s = Msg::GetOnelabString((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -13669,8 +13742,8 @@ yyreduce: ;} break; - case 560: -#line 6657 "Gmsh.y" + case 562: +#line 6753 "Gmsh.y" { int size = 1; for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++) @@ -13687,8 +13760,8 @@ yyreduce: ;} break; - case 561: -#line 6672 "Gmsh.y" + case 563: +#line 6768 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -13704,8 +13777,8 @@ yyreduce: ;} break; - case 562: -#line 6686 "Gmsh.y" + case 564: +#line 6782 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -13721,8 +13794,8 @@ yyreduce: ;} break; - case 563: -#line 6700 "Gmsh.y" + case 565: +#line 6796 "Gmsh.y" { std::string input = (yyvsp[(3) - (8)].c); std::string substr_old = (yyvsp[(5) - (8)].c); @@ -13736,8 +13809,8 @@ yyreduce: ;} break; - case 564: -#line 6712 "Gmsh.y" + case 566: +#line 6808 "Gmsh.y" { int size = 1; for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++) @@ -13755,8 +13828,8 @@ yyreduce: ;} break; - case 565: -#line 6728 "Gmsh.y" + case 567: +#line 6824 "Gmsh.y" { int i = 0; while ((yyvsp[(3) - (4)].c)[i]) { @@ -13767,8 +13840,8 @@ yyreduce: ;} break; - case 566: -#line 6737 "Gmsh.y" + case 568: +#line 6833 "Gmsh.y" { int i = 0; while ((yyvsp[(3) - (4)].c)[i]) { @@ -13779,8 +13852,8 @@ yyreduce: ;} break; - case 567: -#line 6746 "Gmsh.y" + case 569: +#line 6842 "Gmsh.y" { int i = 0; while ((yyvsp[(3) - (4)].c)[i]) { @@ -13792,8 +13865,8 @@ yyreduce: ;} break; - case 568: -#line 6756 "Gmsh.y" + case 570: +#line 6852 "Gmsh.y" { if((yyvsp[(3) - (8)].d)){ (yyval.c) = (yyvsp[(5) - (8)].c); @@ -13806,8 +13879,8 @@ yyreduce: ;} break; - case 569: -#line 6767 "Gmsh.y" + case 571: +#line 6863 "Gmsh.y" { std::string in = (yyvsp[(3) - (8)].c); std::string out = in.substr((int)(yyvsp[(5) - (8)].d), (int)(yyvsp[(7) - (8)].d)); @@ -13817,8 +13890,8 @@ yyreduce: ;} break; - case 570: -#line 6775 "Gmsh.y" + case 572: +#line 6871 "Gmsh.y" { std::string in = (yyvsp[(3) - (6)].c); std::string out = in.substr((int)(yyvsp[(5) - (6)].d), std::string::npos); @@ -13828,15 +13901,15 @@ yyreduce: ;} break; - case 571: -#line 6783 "Gmsh.y" + case 573: +#line 6879 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; - case 572: -#line 6787 "Gmsh.y" + case 574: +#line 6883 "Gmsh.y" { char tmpstring[5000]; int i = PrintListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring); @@ -13857,8 +13930,8 @@ yyreduce: ;} break; - case 573: -#line 6806 "Gmsh.y" + case 575: +#line 6902 "Gmsh.y" { std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(3) - (4)].c)); (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -13867,8 +13940,8 @@ yyreduce: ;} break; - case 574: -#line 6813 "Gmsh.y" + case 576: +#line 6909 "Gmsh.y" { std::string tmp = SplitFileName(GetAbsolutePath(gmsh_yyname))[0]; (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -13876,8 +13949,8 @@ yyreduce: ;} break; - case 575: -#line 6819 "Gmsh.y" + case 577: +#line 6915 "Gmsh.y" { std::string tmp = SplitFileName((yyvsp[(3) - (4)].c))[0]; (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -13886,8 +13959,8 @@ yyreduce: ;} break; - case 576: -#line 6826 "Gmsh.y" + case 578: +#line 6922 "Gmsh.y" { std::string tmp = GetAbsolutePath((yyvsp[(3) - (4)].c)); (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -13896,13 +13969,13 @@ yyreduce: ;} break; - case 577: -#line 6833 "Gmsh.y" + case 579: +#line 6929 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; - case 578: -#line 6835 "Gmsh.y" + case 580: +#line 6931 "Gmsh.y" { std::string val((yyvsp[(3) - (6)].c)); Msg::ExchangeOnelabParameter("", val, floatOptions, charOptions); @@ -13912,21 +13985,21 @@ yyreduce: ;} break; - case 579: -#line 6846 "Gmsh.y" + case 581: +#line 6942 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(char*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].c))); ;} break; - case 580: -#line 6851 "Gmsh.y" + case 582: +#line 6947 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].c))); ;} break; - case 581: -#line 6857 "Gmsh.y" + case 583: +#line 6953 "Gmsh.y" { char tmpstr[256]; sprintf(tmpstr, "_%d", (int)(yyvsp[(4) - (5)].d)); @@ -13936,8 +14009,8 @@ yyreduce: ;} break; - case 582: -#line 6866 "Gmsh.y" + case 584: +#line 6962 "Gmsh.y" { char tmpstr[256]; sprintf(tmpstr, "_%d", (int)(yyvsp[(4) - (5)].d)); @@ -13947,24 +14020,24 @@ yyreduce: ;} break; - case 583: -#line 6879 "Gmsh.y" + case 585: +#line 6975 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 584: -#line 6882 "Gmsh.y" + case 586: +#line 6978 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 585: -#line 6886 "Gmsh.y" + case 587: +#line 6982 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; /* Line 1267 of yacc.c. */ -#line 13968 "Gmsh.tab.cpp" +#line 14041 "Gmsh.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -14178,7 +14251,7 @@ yyreturn: } -#line 6889 "Gmsh.y" +#line 6985 "Gmsh.y" void assignVariable(const std::string &name, int index, int assignType, diff --git a/Parser/Gmsh.tab.hpp b/Parser/Gmsh.tab.hpp index 7758580a055436e0e3949f01b55453eb5bdbf926..b1e0cea9e131529e141fa9f46a3cdf17f8723783 100644 --- a/Parser/Gmsh.tab.hpp +++ b/Parser/Gmsh.tab.hpp @@ -135,116 +135,118 @@ tEllipsoid = 351, tQuadric = 352, tShapeFromFile = 353, - tCharacteristic = 354, - tLength = 355, - tParametric = 356, - tElliptic = 357, - tRefineMesh = 358, - tAdaptMesh = 359, - tRelocateMesh = 360, - tSetFactory = 361, - tThruSections = 362, - tPlane = 363, - tRuled = 364, - tTransfinite = 365, - tComplex = 366, - tPhysical = 367, - tCompound = 368, - tPeriodic = 369, - tUsing = 370, - tPlugin = 371, - tDegenerated = 372, - tRecursive = 373, - tRotate = 374, - tTranslate = 375, - tSymmetry = 376, - tDilate = 377, - tExtrude = 378, - tLevelset = 379, - tAffine = 380, - tBooleanUnion = 381, - tBooleanIntersection = 382, - tBooleanDifference = 383, - tBooleanSection = 384, - tBooleanFragments = 385, - tRecombine = 386, - tSmoother = 387, - tSplit = 388, - tDelete = 389, - tCoherence = 390, - tIntersect = 391, - tMeshAlgorithm = 392, - tReverse = 393, - tLayers = 394, - tScaleLast = 395, - tHole = 396, - tAlias = 397, - tAliasWithOptions = 398, - tCopyOptions = 399, - tQuadTriAddVerts = 400, - tQuadTriNoNewVerts = 401, - tQuadTriSngl = 402, - tQuadTriDbl = 403, - tRecombLaterals = 404, - tTransfQuadTri = 405, - tText2D = 406, - tText3D = 407, - tInterpolationScheme = 408, - tTime = 409, - tCombine = 410, - tBSpline = 411, - tBezier = 412, - tNurbs = 413, - tNurbsOrder = 414, - tNurbsKnots = 415, - tColor = 416, - tColorTable = 417, - tFor = 418, - tIn = 419, - tEndFor = 420, - tIf = 421, - tElseIf = 422, - tElse = 423, - tEndIf = 424, - tExit = 425, - tAbort = 426, - tField = 427, - tReturn = 428, - tCall = 429, - tSlide = 430, - tMacro = 431, - tShow = 432, - tHide = 433, - tGetValue = 434, - tGetStringValue = 435, - tGetEnv = 436, - tGetString = 437, - tGetNumber = 438, - tHomology = 439, - tCohomology = 440, - tBetti = 441, - tExists = 442, - tFileExists = 443, - tGMSH_MAJOR_VERSION = 444, - tGMSH_MINOR_VERSION = 445, - tGMSH_PATCH_VERSION = 446, - tGmshExecutableName = 447, - tSetPartition = 448, - tNameToString = 449, - tStringToName = 450, - tAFFECTDIVIDE = 451, - tAFFECTTIMES = 452, - tAFFECTMINUS = 453, - tAFFECTPLUS = 454, - tOR = 455, - tAND = 456, - tNOTEQUAL = 457, - tEQUAL = 458, - tGREATEROREQUAL = 459, - tLESSOREQUAL = 460, - UNARYPREC = 461, - tMINUSMINUS = 462, - tPLUSPLUS = 463 + tRectangle = 354, + tDisk = 355, + tCharacteristic = 356, + tLength = 357, + tParametric = 358, + tElliptic = 359, + tRefineMesh = 360, + tAdaptMesh = 361, + tRelocateMesh = 362, + tSetFactory = 363, + tThruSections = 364, + tPlane = 365, + tRuled = 366, + tTransfinite = 367, + tComplex = 368, + tPhysical = 369, + tCompound = 370, + tPeriodic = 371, + tUsing = 372, + tPlugin = 373, + tDegenerated = 374, + tRecursive = 375, + tRotate = 376, + tTranslate = 377, + tSymmetry = 378, + tDilate = 379, + tExtrude = 380, + tLevelset = 381, + tAffine = 382, + tBooleanUnion = 383, + tBooleanIntersection = 384, + tBooleanDifference = 385, + tBooleanSection = 386, + tBooleanFragments = 387, + tRecombine = 388, + tSmoother = 389, + tSplit = 390, + tDelete = 391, + tCoherence = 392, + tIntersect = 393, + tMeshAlgorithm = 394, + tReverse = 395, + tLayers = 396, + tScaleLast = 397, + tHole = 398, + tAlias = 399, + tAliasWithOptions = 400, + tCopyOptions = 401, + tQuadTriAddVerts = 402, + tQuadTriNoNewVerts = 403, + tQuadTriSngl = 404, + tQuadTriDbl = 405, + tRecombLaterals = 406, + tTransfQuadTri = 407, + tText2D = 408, + tText3D = 409, + tInterpolationScheme = 410, + tTime = 411, + tCombine = 412, + tBSpline = 413, + tBezier = 414, + tNurbs = 415, + tNurbsOrder = 416, + tNurbsKnots = 417, + tColor = 418, + tColorTable = 419, + tFor = 420, + tIn = 421, + tEndFor = 422, + tIf = 423, + tElseIf = 424, + tElse = 425, + tEndIf = 426, + tExit = 427, + tAbort = 428, + tField = 429, + tReturn = 430, + tCall = 431, + tSlide = 432, + tMacro = 433, + tShow = 434, + tHide = 435, + tGetValue = 436, + tGetStringValue = 437, + tGetEnv = 438, + tGetString = 439, + tGetNumber = 440, + tHomology = 441, + tCohomology = 442, + tBetti = 443, + tExists = 444, + tFileExists = 445, + tGMSH_MAJOR_VERSION = 446, + tGMSH_MINOR_VERSION = 447, + tGMSH_PATCH_VERSION = 448, + tGmshExecutableName = 449, + tSetPartition = 450, + tNameToString = 451, + tStringToName = 452, + tAFFECTDIVIDE = 453, + tAFFECTTIMES = 454, + tAFFECTMINUS = 455, + tAFFECTPLUS = 456, + tOR = 457, + tAND = 458, + tNOTEQUAL = 459, + tEQUAL = 460, + tGREATEROREQUAL = 461, + tLESSOREQUAL = 462, + UNARYPREC = 463, + tMINUSMINUS = 464, + tPLUSPLUS = 465 }; #endif /* Tokens. */ @@ -344,116 +346,118 @@ #define tEllipsoid 351 #define tQuadric 352 #define tShapeFromFile 353 -#define tCharacteristic 354 -#define tLength 355 -#define tParametric 356 -#define tElliptic 357 -#define tRefineMesh 358 -#define tAdaptMesh 359 -#define tRelocateMesh 360 -#define tSetFactory 361 -#define tThruSections 362 -#define tPlane 363 -#define tRuled 364 -#define tTransfinite 365 -#define tComplex 366 -#define tPhysical 367 -#define tCompound 368 -#define tPeriodic 369 -#define tUsing 370 -#define tPlugin 371 -#define tDegenerated 372 -#define tRecursive 373 -#define tRotate 374 -#define tTranslate 375 -#define tSymmetry 376 -#define tDilate 377 -#define tExtrude 378 -#define tLevelset 379 -#define tAffine 380 -#define tBooleanUnion 381 -#define tBooleanIntersection 382 -#define tBooleanDifference 383 -#define tBooleanSection 384 -#define tBooleanFragments 385 -#define tRecombine 386 -#define tSmoother 387 -#define tSplit 388 -#define tDelete 389 -#define tCoherence 390 -#define tIntersect 391 -#define tMeshAlgorithm 392 -#define tReverse 393 -#define tLayers 394 -#define tScaleLast 395 -#define tHole 396 -#define tAlias 397 -#define tAliasWithOptions 398 -#define tCopyOptions 399 -#define tQuadTriAddVerts 400 -#define tQuadTriNoNewVerts 401 -#define tQuadTriSngl 402 -#define tQuadTriDbl 403 -#define tRecombLaterals 404 -#define tTransfQuadTri 405 -#define tText2D 406 -#define tText3D 407 -#define tInterpolationScheme 408 -#define tTime 409 -#define tCombine 410 -#define tBSpline 411 -#define tBezier 412 -#define tNurbs 413 -#define tNurbsOrder 414 -#define tNurbsKnots 415 -#define tColor 416 -#define tColorTable 417 -#define tFor 418 -#define tIn 419 -#define tEndFor 420 -#define tIf 421 -#define tElseIf 422 -#define tElse 423 -#define tEndIf 424 -#define tExit 425 -#define tAbort 426 -#define tField 427 -#define tReturn 428 -#define tCall 429 -#define tSlide 430 -#define tMacro 431 -#define tShow 432 -#define tHide 433 -#define tGetValue 434 -#define tGetStringValue 435 -#define tGetEnv 436 -#define tGetString 437 -#define tGetNumber 438 -#define tHomology 439 -#define tCohomology 440 -#define tBetti 441 -#define tExists 442 -#define tFileExists 443 -#define tGMSH_MAJOR_VERSION 444 -#define tGMSH_MINOR_VERSION 445 -#define tGMSH_PATCH_VERSION 446 -#define tGmshExecutableName 447 -#define tSetPartition 448 -#define tNameToString 449 -#define tStringToName 450 -#define tAFFECTDIVIDE 451 -#define tAFFECTTIMES 452 -#define tAFFECTMINUS 453 -#define tAFFECTPLUS 454 -#define tOR 455 -#define tAND 456 -#define tNOTEQUAL 457 -#define tEQUAL 458 -#define tGREATEROREQUAL 459 -#define tLESSOREQUAL 460 -#define UNARYPREC 461 -#define tMINUSMINUS 462 -#define tPLUSPLUS 463 +#define tRectangle 354 +#define tDisk 355 +#define tCharacteristic 356 +#define tLength 357 +#define tParametric 358 +#define tElliptic 359 +#define tRefineMesh 360 +#define tAdaptMesh 361 +#define tRelocateMesh 362 +#define tSetFactory 363 +#define tThruSections 364 +#define tPlane 365 +#define tRuled 366 +#define tTransfinite 367 +#define tComplex 368 +#define tPhysical 369 +#define tCompound 370 +#define tPeriodic 371 +#define tUsing 372 +#define tPlugin 373 +#define tDegenerated 374 +#define tRecursive 375 +#define tRotate 376 +#define tTranslate 377 +#define tSymmetry 378 +#define tDilate 379 +#define tExtrude 380 +#define tLevelset 381 +#define tAffine 382 +#define tBooleanUnion 383 +#define tBooleanIntersection 384 +#define tBooleanDifference 385 +#define tBooleanSection 386 +#define tBooleanFragments 387 +#define tRecombine 388 +#define tSmoother 389 +#define tSplit 390 +#define tDelete 391 +#define tCoherence 392 +#define tIntersect 393 +#define tMeshAlgorithm 394 +#define tReverse 395 +#define tLayers 396 +#define tScaleLast 397 +#define tHole 398 +#define tAlias 399 +#define tAliasWithOptions 400 +#define tCopyOptions 401 +#define tQuadTriAddVerts 402 +#define tQuadTriNoNewVerts 403 +#define tQuadTriSngl 404 +#define tQuadTriDbl 405 +#define tRecombLaterals 406 +#define tTransfQuadTri 407 +#define tText2D 408 +#define tText3D 409 +#define tInterpolationScheme 410 +#define tTime 411 +#define tCombine 412 +#define tBSpline 413 +#define tBezier 414 +#define tNurbs 415 +#define tNurbsOrder 416 +#define tNurbsKnots 417 +#define tColor 418 +#define tColorTable 419 +#define tFor 420 +#define tIn 421 +#define tEndFor 422 +#define tIf 423 +#define tElseIf 424 +#define tElse 425 +#define tEndIf 426 +#define tExit 427 +#define tAbort 428 +#define tField 429 +#define tReturn 430 +#define tCall 431 +#define tSlide 432 +#define tMacro 433 +#define tShow 434 +#define tHide 435 +#define tGetValue 436 +#define tGetStringValue 437 +#define tGetEnv 438 +#define tGetString 439 +#define tGetNumber 440 +#define tHomology 441 +#define tCohomology 442 +#define tBetti 443 +#define tExists 444 +#define tFileExists 445 +#define tGMSH_MAJOR_VERSION 446 +#define tGMSH_MINOR_VERSION 447 +#define tGMSH_PATCH_VERSION 448 +#define tGmshExecutableName 449 +#define tSetPartition 450 +#define tNameToString 451 +#define tStringToName 452 +#define tAFFECTDIVIDE 453 +#define tAFFECTTIMES 454 +#define tAFFECTMINUS 455 +#define tAFFECTPLUS 456 +#define tOR 457 +#define tAND 458 +#define tNOTEQUAL 459 +#define tEQUAL 460 +#define tGREATEROREQUAL 461 +#define tLESSOREQUAL 462 +#define UNARYPREC 463 +#define tMINUSMINUS 464 +#define tPLUSPLUS 465 @@ -471,7 +475,7 @@ typedef union YYSTYPE List_T *l; } /* Line 1529 of yacc.c. */ -#line 475 "Gmsh.tab.hpp" +#line 479 "Gmsh.tab.hpp" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index fd7b3befc19b93ae7229379987c6df81b70f5102..3fa146c9b19a1c3f05edc692782bf04eb6e42dc1 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -144,6 +144,7 @@ struct doubleXstring{ %token tDefineNumber tDefineString tSetNumber tSetString %token tPoint tCircle tEllipse tLine tSphere tPolarSphere tSurface tSpline tVolume %token tBlock tCylinder tCone tEllipsoid tQuadric tShapeFromFile +%token tRectangle tDisk %token tCharacteristic tLength tParametric tElliptic tRefineMesh tAdaptMesh %token tRelocateMesh tSetFactory tThruSections %token tPlane tRuled tTransfinite tComplex tPhysical tCompound tPeriodic @@ -2120,16 +2121,26 @@ Shape : | tPlane tSurface '(' FExpr ')' tAFFECT ListOfDouble tEND { int num = (int)$4; - if(FindSurface(num)){ - yymsg(0, "Surface %d already exists", num); + if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ + std::vector<int> wires; + for(int i = 0; i < List_Nbr($7); i++){ + double d; List_Read($7, i, &d); + wires.push_back((int)std::abs(d)); + } + GModel::current()->getOCCInternals()->addPlanarFace(num, wires); } else{ - Surface *s = Create_Surface(num, MSH_SURF_PLAN); - List_T *temp = ListOfDouble2ListOfInt($7); - setSurfaceGeneratrices(s, temp); - List_Delete(temp); - End_Surface(s); - Tree_Add(GModel::current()->getGEOInternals()->Surfaces, &s); + if(FindSurface(num)){ + yymsg(0, "Surface %d already exists", num); + } + else{ + Surface *s = Create_Surface(num, MSH_SURF_PLAN); + List_T *temp = ListOfDouble2ListOfInt($7); + setSurfaceGeneratrices(s, temp); + List_Delete(temp); + End_Surface(s); + Tree_Add(GModel::current()->getGEOInternals()->Surfaces, &s); + } } List_Delete($7); $$.Type = MSH_SURF_PLAN; @@ -2138,37 +2149,47 @@ Shape : | tRuled tSurface '(' FExpr ')' tAFFECT ListOfDouble InSphereCenter tEND { int num = (int)$4, type = 0; - if(FindSurface(num)){ - yymsg(0, "Surface %d already exists", num); + if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ + std::vector<int> wires; + for(int i = 0; i < List_Nbr($7); i++){ + double d; List_Read($7, i, &d); + wires.push_back((int)std::abs(d)); + } + GModel::current()->getOCCInternals()->addRuledFace(num, wires); } else{ - double d; - List_Read($7, 0, &d); - EdgeLoop *el = FindEdgeLoop((int)fabs(d)); - if(!el){ - yymsg(0, "Unknown line loop %d", (int)d); - } - else{ - int j = List_Nbr(el->Curves); - if(j == 4){ - type = MSH_SURF_REGL; - } - else if(j == 3){ - type = MSH_SURF_TRIC; - } - else{ - yymsg(0, "Wrong definition of Ruled Surface %d: " - "%d borders instead of 3 or 4", num, j); - type = MSH_SURF_PLAN; - } - Surface *s = Create_Surface(num, type); - List_T *temp = ListOfDouble2ListOfInt($7); - setSurfaceGeneratrices(s, temp); - List_Delete(temp); - End_Surface(s); - s->InSphereCenter = $8; - Tree_Add(GModel::current()->getGEOInternals()->Surfaces, &s); - } + if(FindSurface(num)){ + yymsg(0, "Surface %d already exists", num); + } + else{ + double d; + List_Read($7, 0, &d); + EdgeLoop *el = FindEdgeLoop((int)fabs(d)); + if(!el){ + yymsg(0, "Unknown line loop %d", (int)d); + } + else{ + int j = List_Nbr(el->Curves); + if(j == 4){ + type = MSH_SURF_REGL; + } + else if(j == 3){ + type = MSH_SURF_TRIC; + } + else{ + yymsg(0, "Wrong definition of Ruled Surface %d: " + "%d borders instead of 3 or 4", num, j); + type = MSH_SURF_PLAN; + } + Surface *s = Create_Surface(num, type); + List_T *temp = ListOfDouble2ListOfInt($7); + setSurfaceGeneratrices(s, temp); + List_Delete(temp); + End_Surface(s); + s->InSphereCenter = $8; + Tree_Add(GModel::current()->getGEOInternals()->Surfaces, &s); + } + } } List_Delete($7); $$.Type = type; @@ -2284,6 +2305,50 @@ Shape : $$.Type = MSH_VOLUME; $$.Num = num; } + | tRectangle '(' FExpr ')' tAFFECT ListOfDouble tEND + { + int num = (int)$3; + if(List_Nbr($6) == 4){ + if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ + double x1; List_Read($6, 0, &x1); + double y1; List_Read($6, 1, &y1); + double x2; List_Read($6, 2, &x2); + double y2; List_Read($6, 3, &y2); + GModel::current()->getOCCInternals()->addRectangle(num, x1, y1, x2, y2); + } + else{ + yymsg(0, "Rectangle only available with OpenCASCADE factory"); + } + } + else{ + yymsg(0, "Rectangle has to be defined using {x1,y1,x2,y2}"); + } + List_Delete($6); + $$.Type = MSH_SURF_PLAN; + $$.Num = num; + } + | tDisk '(' FExpr ')' tAFFECT ListOfDouble tEND + { + int num = (int)$3; + if(List_Nbr($6) == 3 || List_Nbr($6) == 4){ + if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ + double xc; List_Read($6, 0, &xc); + double yc; List_Read($6, 1, &yc); + double rx; List_Read($6, 2, &rx); + double ry = rx; if(List_Nbr($6) == 4) List_Read($6, 3, &ry); + GModel::current()->getOCCInternals()->addDisk(num, xc, yc, rx, ry); + } + else{ + yymsg(0, "Disk only available with OpenCASCADE factory"); + } + } + else{ + yymsg(0, "Disk has to be defined using {xc,yc,r} or {xc,yc,rx,ry}"); + } + List_Delete($6); + $$.Type = MSH_SURF_PLAN; + $$.Num = num; + } | tCylinder '(' FExpr ')' tAFFECT ListOfDouble tEND { int num = (int)$3; @@ -2312,14 +2377,24 @@ Shape : | tSurface tSTRING '(' FExpr ')' tAFFECT ListOfDouble tEND { int num = (int)$4; - if(FindSurfaceLoop(num)){ - yymsg(0, "Surface loop %d already exists", num); + if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ + std::vector<int> faces; + for(int i = 0; i < List_Nbr($7); i++){ + double d; List_Read($7, i, &d); + faces.push_back((int)std::abs(d)); + } + GModel::current()->getOCCInternals()->addSurfaceLoop(num, faces); } else{ - List_T *temp = ListOfDouble2ListOfInt($7); - SurfaceLoop *l = Create_SurfaceLoop(num, temp); - Tree_Add(GModel::current()->getGEOInternals()->SurfaceLoops, &l); - List_Delete(temp); + if(FindSurfaceLoop(num)){ + yymsg(0, "Surface loop %d already exists", num); + } + else{ + List_T *temp = ListOfDouble2ListOfInt($7); + SurfaceLoop *l = Create_SurfaceLoop(num, temp); + Tree_Add(GModel::current()->getGEOInternals()->SurfaceLoops, &l); + List_Delete(temp); + } } List_Delete($7); Free($2); @@ -2451,15 +2526,25 @@ Shape : | tVolume '(' FExpr ')' tAFFECT ListOfDouble tEND { int num = (int)$3; - if(FindVolume(num)){ - yymsg(0, "Volume %d already exists", num); + if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ + std::vector<int> shells; + for(int i = 0; i < List_Nbr($6); i++){ + double d; List_Read($6, i, &d); + shells.push_back((int)std::abs(d)); + } + GModel::current()->getOCCInternals()->addVolume(num, shells); } else{ - Volume *v = Create_Volume(num, MSH_VOLUME); - List_T *temp = ListOfDouble2ListOfInt($6); - setVolumeSurfaces(v, temp); - List_Delete(temp); - Tree_Add(GModel::current()->getGEOInternals()->Volumes, &v); + if(FindVolume(num)){ + yymsg(0, "Volume %d already exists", num); + } + else{ + Volume *v = Create_Volume(num, MSH_VOLUME); + List_T *temp = ListOfDouble2ListOfInt($6); + setVolumeSurfaces(v, temp); + List_Delete(temp); + Tree_Add(GModel::current()->getGEOInternals()->Volumes, &v); + } } List_Delete($6); $$.Type = MSH_VOLUME; @@ -4391,21 +4476,30 @@ Boolean : if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ std::vector<int> shape[4], tool[4]; for(int i = 0; i < List_Nbr($3); i++){ - Shape s; List_Read($3, i, &s); shape[3].push_back(s.Num); + Shape s; List_Read($3, i, &s); int dim = s.Type / 100 - 1; + if(dim >= 0 && dim <= 3) shape[dim].push_back(s.Num); } for(int i = 0; i < List_Nbr($7); i++){ - Shape s; List_Read($7, i, &s); tool[3].push_back(s.Num); + Shape s; List_Read($7, i, &s);int dim = s.Type / 100 - 1; + if(dim >= 0 && dim <= 3) tool[dim].push_back(s.Num); } std::vector<int> out[4]; GModel::current()->getOCCInternals()->applyBooleanOperator (-1, (OCC_Internals::BooleanOperator)$1, shape, tool, out, $4, $8); - for(unsigned int i = 0; i < out[3].size(); i++){ - Shape s; - s.Num = out[3][i]; - s.Type = MSH_VOLUME; - List_Add($$, &s); + for(int dim = 0; dim < 4; dim++){ + for(unsigned int i = 0; i < out[dim].size(); i++){ + Shape s; + s.Num = out[dim][i]; + s.Type = (dim == 3) ? MSH_VOLUME_FROM_GMODEL : + (dim == 2) ? MSH_SURF_FROM_GMODEL : + (dim == 1) ? MSH_SEGM_FROM_GMODEL : MSH_POINT_FROM_GMODEL; + List_Add($$, &s); + } } } + else{ + yymsg(0, "Boolean operators only available with OpenCASCADE factory"); + } List_Delete($3); List_Delete($7); } @@ -4441,10 +4535,12 @@ BooleanShape : if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ std::vector<int> shape[4], tool[4]; for(int i = 0; i < List_Nbr($7); i++){ - Shape s; List_Read($7, i, &s); shape[3].push_back(s.Num); + Shape s; List_Read($7, i, &s); int dim = s.Type / 100 - 1; + if(dim >= 0 && dim <= 3) shape[dim].push_back(s.Num); } for(int i = 0; i < List_Nbr($11); i++){ - Shape s; List_Read($11, i, &s); tool[3].push_back(s.Num); + Shape s; List_Read($11, i, &s);int dim = s.Type / 100 - 1; + if(dim >= 0 && dim <= 3) tool[dim].push_back(s.Num); } std::vector<int> out[4]; GModel::current()->getOCCInternals()->applyBooleanOperator diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index a990fc80dc72dda639c41e94dd55d74b7186708e..413e5217663ed6abccbb7e42b087dc62b61a3f06 100644 --- a/Parser/Gmsh.yy.cpp +++ b/Parser/Gmsh.yy.cpp @@ -380,8 +380,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 233 -#define YY_END_OF_BUFFER 234 +#define YY_NUM_RULES 235 +#define YY_END_OF_BUFFER 236 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -389,141 +389,141 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1203] = +static yyconst flex_int16_t yy_accept[1211] = { 0, - 0, 0, 234, 232, 1, 1, 232, 5, 232, 6, - 232, 232, 232, 232, 232, 227, 21, 2, 232, 16, - 232, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 232, 28, 24, 19, 25, 17, - 26, 18, 0, 229, 3, 4, 20, 228, 227, 0, - 29, 27, 30, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - - 231, 231, 231, 231, 231, 231, 125, 124, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 154, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 208, 209, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 23, 22, 0, 228, 0, 0, 230, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 64, 75, 231, 231, 231, 231, 231, - - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 88, 231, 231, 231, 231, 231, 231, 231, 231, 109, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 135, 231, 231, 231, - 231, 231, 231, 146, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 193, 231, 231, - 231, 231, 185, 231, 231, 231, 231, 231, 231, 191, - 231, 231, 231, 231, 218, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 0, 229, 0, 0, - - 228, 231, 231, 33, 231, 231, 231, 231, 231, 231, - 39, 41, 231, 231, 231, 231, 231, 231, 72, 231, - 231, 56, 231, 231, 231, 231, 231, 231, 231, 62, - 231, 231, 63, 231, 231, 231, 231, 231, 231, 231, - 231, 86, 231, 92, 231, 231, 231, 231, 231, 100, - 231, 102, 231, 231, 104, 231, 231, 108, 231, 231, - 231, 231, 231, 231, 231, 120, 121, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 130, 131, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - - 172, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 204, 186, 231, - 231, 231, 231, 231, 184, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 213, 217, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 10, 15, 9, - 8, 231, 12, 14, 0, 228, 31, 231, 231, 231, - 37, 231, 231, 231, 43, 231, 45, 231, 47, 231, - 231, 231, 231, 231, 231, 231, 231, 67, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 97, 99, 231, 231, 231, 103, - - 231, 231, 107, 231, 231, 231, 231, 231, 231, 231, - 231, 123, 231, 231, 128, 231, 231, 231, 231, 231, - 136, 231, 231, 231, 231, 139, 231, 231, 231, 231, - 231, 148, 231, 151, 231, 231, 231, 155, 231, 156, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 170, 171, 231, 231, 231, 231, 231, 231, 231, - 206, 231, 231, 231, 189, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 219, 231, 231, 231, 231, 225, 231, 11, 231, - 13, 231, 231, 35, 231, 36, 40, 42, 231, 46, - - 231, 231, 231, 231, 231, 57, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 82, - 84, 231, 231, 231, 93, 96, 231, 101, 231, 231, - 231, 231, 231, 231, 111, 231, 231, 231, 231, 231, - 231, 231, 137, 129, 231, 231, 231, 231, 231, 231, - 231, 144, 231, 141, 231, 231, 231, 231, 231, 231, - 160, 231, 159, 231, 231, 231, 231, 231, 231, 175, - 231, 169, 231, 231, 231, 231, 231, 231, 231, 231, - 187, 188, 231, 195, 231, 200, 231, 202, 231, 231, - 231, 203, 231, 231, 231, 231, 231, 231, 231, 231, - - 231, 231, 231, 231, 226, 7, 231, 231, 231, 44, - 48, 231, 231, 231, 231, 231, 231, 231, 231, 61, - 66, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 85, 90, 231, 231, 231, 231, 94, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 161, 231, - 231, 231, 231, 231, 176, 231, 231, 231, 231, 231, - 231, 231, 231, 194, 231, 199, 231, 231, 231, 231, - 190, 231, 231, 231, 231, 231, 231, 231, 231, 231, - - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 55, 231, 231, 231, 231, 231, 69, 231, 231, - 231, 231, 78, 231, 231, 231, 231, 89, 231, 95, - 231, 231, 231, 110, 231, 231, 231, 231, 231, 114, - 231, 122, 231, 231, 138, 133, 231, 134, 231, 142, - 143, 231, 231, 147, 231, 231, 231, 152, 153, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 178, 231, 231, 231, - 231, 231, 205, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 34, 231, 231, 231, 231, 231, - - 231, 231, 231, 231, 59, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 91, 98, 231, 231, 231, - 231, 231, 113, 112, 231, 231, 126, 231, 223, 231, - 231, 231, 150, 231, 231, 231, 231, 231, 231, 231, - 166, 168, 231, 231, 231, 231, 231, 181, 231, 182, - 231, 201, 197, 231, 231, 231, 207, 210, 231, 231, - 231, 231, 231, 216, 231, 222, 231, 231, 231, 231, - 231, 231, 231, 231, 71, 231, 60, 68, 231, 231, - 231, 77, 231, 231, 231, 231, 105, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 157, - - 231, 231, 164, 231, 231, 231, 173, 231, 231, 87, - 180, 231, 231, 231, 196, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 54, - 231, 70, 58, 231, 231, 231, 231, 231, 83, 231, - 231, 231, 231, 231, 231, 231, 231, 224, 231, 231, - 231, 158, 231, 231, 165, 231, 231, 231, 231, 231, - 198, 231, 231, 231, 220, 231, 214, 231, 32, 231, - 231, 231, 231, 231, 49, 231, 231, 231, 231, 80, - 81, 231, 231, 231, 231, 231, 231, 231, 132, 231, - 145, 149, 231, 231, 231, 174, 231, 183, 231, 192, - - 231, 212, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 140, 231, 231, 231, 231, 179, 231, 215, 231, 231, - 231, 231, 231, 52, 65, 73, 231, 79, 231, 231, - 231, 231, 115, 231, 231, 231, 231, 167, 177, 211, - 231, 231, 231, 231, 231, 231, 231, 106, 231, 231, - 231, 231, 231, 162, 231, 231, 38, 231, 53, 231, - 231, 76, 231, 231, 231, 231, 231, 231, 221, 51, - 231, 231, 231, 231, 231, 231, 231, 163, 231, 231, - 116, 117, 118, 119, 231, 50, 231, 231, 231, 127, - - 74, 0 + 0, 0, 236, 234, 1, 1, 234, 5, 234, 6, + 234, 234, 234, 234, 234, 229, 21, 2, 234, 16, + 234, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 234, 28, 24, 19, 25, 17, + 26, 18, 0, 231, 3, 4, 20, 230, 229, 0, + 29, 27, 30, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + + 233, 233, 233, 233, 233, 233, 126, 125, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 155, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 210, 211, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 23, 22, 0, 230, 0, 0, 232, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 64, 75, 233, 233, 233, 233, 233, + + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 89, 233, 233, 233, 233, 233, 233, 233, 233, + 110, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 136, 233, 233, + 233, 233, 233, 233, 147, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 195, 233, + 233, 233, 233, 187, 233, 233, 233, 233, 233, 233, + 193, 233, 233, 233, 233, 220, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 0, 231, 0, + + 0, 230, 233, 233, 33, 233, 233, 233, 233, 233, + 233, 39, 41, 233, 233, 233, 233, 233, 233, 72, + 233, 233, 56, 233, 233, 233, 233, 233, 233, 233, + 62, 233, 233, 63, 233, 233, 233, 233, 233, 233, + 233, 233, 86, 87, 233, 93, 233, 233, 233, 233, + 233, 101, 233, 103, 233, 233, 105, 233, 233, 109, + 233, 233, 233, 233, 233, 233, 233, 121, 122, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 131, 132, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + + 233, 233, 174, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 206, 188, 233, 233, 233, 233, 233, 186, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 215, 219, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 10, 15, 9, 8, 233, 12, 14, 0, 230, 31, + 233, 233, 233, 37, 233, 233, 233, 43, 233, 45, + 233, 47, 233, 233, 233, 233, 233, 233, 233, 233, + 67, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 98, 100, 233, + + 233, 233, 104, 233, 233, 108, 233, 233, 233, 233, + 233, 233, 233, 233, 124, 233, 233, 129, 233, 233, + 233, 233, 233, 137, 233, 233, 233, 233, 140, 233, + 233, 233, 233, 233, 149, 233, 152, 233, 233, 233, + 156, 233, 157, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 172, 173, 233, 233, 233, + 233, 233, 233, 233, 208, 233, 233, 233, 191, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 221, 233, 233, 233, 233, + 227, 233, 11, 233, 13, 233, 233, 35, 233, 36, + + 40, 42, 233, 46, 233, 233, 233, 233, 233, 57, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 82, 84, 233, 233, 233, 94, 97, + 233, 102, 233, 233, 233, 233, 233, 233, 112, 233, + 233, 233, 233, 233, 233, 233, 138, 130, 233, 233, + 233, 233, 233, 233, 233, 145, 233, 142, 233, 233, + 233, 233, 233, 233, 161, 233, 160, 233, 233, 233, + 233, 233, 233, 233, 177, 233, 171, 233, 233, 233, + 233, 233, 233, 233, 233, 189, 190, 233, 197, 233, + 202, 233, 204, 233, 233, 233, 205, 233, 233, 233, + + 233, 233, 233, 233, 233, 233, 233, 233, 233, 228, + 7, 233, 233, 233, 44, 48, 233, 233, 233, 233, + 233, 233, 233, 233, 61, 66, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 85, 91, 233, 233, + 233, 233, 95, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 162, 233, 233, 233, 233, 233, 233, + 178, 233, 233, 233, 233, 233, 233, 233, 233, 196, + 233, 201, 233, 233, 233, 233, 192, 233, 233, 233, + + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 55, 233, 233, + 233, 233, 233, 69, 233, 233, 233, 233, 78, 233, + 233, 233, 233, 90, 233, 96, 233, 233, 233, 111, + 233, 233, 233, 233, 233, 115, 233, 123, 233, 233, + 139, 134, 233, 135, 233, 143, 144, 233, 233, 148, + 233, 233, 233, 153, 154, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 180, 233, 233, 233, 233, 233, 207, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + + 233, 34, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 59, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 92, 99, 233, 233, 233, 233, 233, 114, + 113, 233, 233, 127, 233, 225, 233, 233, 233, 151, + 233, 233, 233, 233, 233, 233, 233, 168, 167, 170, + 233, 233, 233, 233, 233, 183, 233, 184, 233, 203, + 199, 233, 233, 233, 209, 212, 233, 233, 233, 233, + 233, 218, 233, 224, 233, 233, 233, 233, 233, 233, + 233, 233, 71, 233, 60, 68, 233, 233, 233, 77, + 233, 233, 233, 233, 106, 233, 233, 233, 233, 233, + + 233, 233, 233, 233, 233, 233, 233, 158, 233, 233, + 165, 233, 233, 233, 175, 233, 233, 88, 182, 233, + 233, 233, 198, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 54, 233, 70, + 58, 233, 233, 233, 233, 233, 83, 233, 233, 233, + 233, 233, 233, 233, 233, 226, 233, 233, 233, 159, + 233, 233, 166, 233, 233, 233, 233, 233, 200, 233, + 233, 233, 222, 233, 216, 233, 32, 233, 233, 233, + 233, 233, 49, 233, 233, 233, 233, 80, 81, 233, + 233, 233, 233, 233, 233, 233, 133, 233, 146, 150, + + 233, 233, 233, 176, 233, 185, 233, 194, 233, 214, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 141, 233, + 233, 233, 233, 181, 233, 217, 233, 233, 233, 233, + 233, 52, 65, 73, 233, 79, 233, 233, 233, 233, + 116, 233, 233, 233, 233, 169, 179, 213, 233, 233, + 233, 233, 233, 233, 233, 107, 233, 233, 233, 233, + 233, 163, 233, 233, 38, 233, 53, 233, 233, 76, + 233, 233, 233, 233, 233, 233, 223, 51, 233, 233, + 233, 233, 233, 233, 233, 164, 233, 233, 117, 118, + + 119, 120, 233, 50, 233, 233, 233, 128, 74, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -570,281 +570,283 @@ static yyconst flex_int32_t yy_meta[74] = 2, 2, 1 } ; -static yyconst flex_int16_t yy_base[1204] = +static yyconst flex_int16_t yy_base[1212] = { 0, - 0, 0, 1335, 1336, 1336, 1336, 1313, 1336, 1327, 1336, - 1311, 65, 66, 64, 76, 78, 1336, 1336, 1310, 1309, - 1308, 49, 60, 71, 52, 64, 88, 102, 87, 103, - 0, 1268, 112, 114, 105, 46, 122, 1260, 133, 186, - 173, 122, 1265, 1273, 1251, 1336, 1336, 1336, 1336, 1336, - 1336, 1336, 1312, 195, 1336, 1336, 1336, 202, 245, 182, - 1336, 1336, 1336, 0, 64, 1261, 1273, 1267, 1263, 1268, - 1261, 1268, 1253, 24, 1253, 42, 93, 1257, 1264, 1247, - 208, 1243, 1257, 1244, 1249, 87, 53, 1258, 111, 1254, - 1240, 1253, 158, 1253, 219, 1240, 1239, 1235, 1238, 1256, - - 1230, 1230, 1243, 24, 1231, 1250, 0, 1225, 1229, 1218, - 111, 142, 96, 1257, 1237, 167, 1235, 1244, 1225, 1214, - 1218, 1229, 1229, 1215, 1214, 1206, 0, 179, 147, 1220, - 1227, 1214, 225, 164, 1215, 1236, 1223, 1204, 145, 1209, - 1212, 1206, 226, 1202, 1201, 1200, 180, 0, 0, 1228, - 1202, 185, 1197, 214, 1212, 1208, 1196, 1201, 1198, 1186, - 1336, 1336, 285, 290, 299, 305, 310, 1190, 1192, 1187, - 1189, 1194, 1201, 303, 1188, 1187, 1188, 1179, 1188, 1193, - 1184, 1181, 1182, 233, 1181, 1174, 1187, 235, 1175, 202, - 1183, 1170, 1162, 1177, 0, 1183, 1166, 1173, 1172, 1175, - - 1174, 1177, 1188, 1154, 1166, 1169, 301, 1159, 1161, 245, - 0, 1154, 1152, 1158, 1163, 1163, 1173, 1151, 1160, 0, - 1160, 1179, 307, 1153, 1155, 1154, 1144, 1143, 1176, 1150, - 1135, 1148, 1145, 1146, 289, 1131, 317, 1144, 1148, 1130, - 1132, 1137, 1124, 0, 1138, 1154, 1139, 1129, 1134, 1137, - 1128, 1118, 1122, 1127, 1120, 1131, 1118, 1126, 1125, 215, - 1119, 1113, 1106, 1120, 1123, 1110, 1117, 0, 1110, 311, - 1105, 1097, 1110, 1113, 1102, 1110, 1105, 1104, 1093, 325, - 1105, 1098, 1106, 1128, 1099, 1087, 1086, 1084, 1102, 1101, - 1088, 1095, 1094, 1085, 1077, 311, 369, 374, 383, 388, - - 393, 1077, 1084, 0, 1075, 1080, 1074, 1077, 1081, 1088, - 0, 1120, 1078, 1077, 1080, 1074, 1078, 1078, 0, 1068, - 1060, 0, 1078, 1067, 1060, 1064, 1058, 1065, 277, 0, - 1069, 1082, 0, 1052, 1065, 1056, 1055, 1054, 1047, 1046, - 1063, 0, 1048, 1078, 1047, 1054, 1042, 1049, 1038, 0, - 1036, 0, 1051, 1074, 0, 1048, 1035, 0, 1032, 1050, - 1036, 1028, 1028, 1045, 1065, 0, 0, 1033, 1024, 1049, - 1024, 1022, 1022, 1019, 1026, 1021, 0, 1054, 1068, 1018, - 1015, 314, 1017, 1013, 1053, 1017, 1032, 1012, 1007, 1023, - 1006, 1010, 1007, 1011, 1014, 1009, 998, 999, 996, 304, - - 0, 1002, 996, 999, 1008, 993, 992, 989, 1003, 1002, - 1000, 996, 1002, 982, 1000, 981, 994, 0, 0, 993, - 978, 979, 296, 982, 0, 312, 985, 988, 975, 986, - 970, 976, 987, 982, 998, 0, 0, 998, 1008, 989, - 958, 970, 962, 973, 961, 970, 964, 0, 0, 964, - 0, 969, 962, 0, 398, 403, 0, 952, 983, 965, - 971, 950, 954, 953, 0, 952, 0, 947, 0, 962, - 953, 960, 949, 956, 953, 952, 942, 960, 941, 948, - 932, 942, 935, 944, 935, 943, 941, 940, 939, 938, - 930, 312, 935, 923, 0, 0, 935, 920, 933, 0, - - 913, 924, 0, 925, 302, 912, 920, 914, 919, 906, - 914, 0, 936, 908, 0, 907, 916, 905, 921, 904, - 0, 919, 941, 917, 908, 0, 892, 904, 900, 899, - 908, 0, 909, 0, 905, 905, 905, 0, 894, 0, - 912, 899, 887, 894, 900, 883, 895, 898, 885, 879, - 891, 0, 0, 908, 893, 890, 880, 874, 873, 908, - 0, 880, 882, 881, 0, 866, 865, 869, 867, 868, - 867, 874, 363, 876, 870, 873, 856, 860, 868, 853, - 866, 0, 882, 369, 860, 890, 0, 862, 0, 859, - 0, 846, 859, 0, 854, 0, 0, 894, 856, 0, - - 847, 846, 841, 846, 837, 0, 842, 843, 852, 847, - 828, 837, 836, 829, 852, 827, 840, 398, 827, 0, - 0, 838, 372, 833, 0, 0, 832, 0, 835, 830, - 837, 823, 212, 860, 0, 833, 825, 813, 827, 824, - 840, 824, 0, 0, 823, 824, 812, 822, 823, 810, - 797, 0, 814, 0, 826, 814, 334, 799, 808, 815, - 0, 800, 0, 805, 810, 392, 803, 823, 791, 0, - 804, 0, 807, 794, 787, 803, 785, 794, 785, 796, - 0, 0, 794, 0, 790, 0, 794, 0, 791, 795, - 784, 0, 799, 788, 775, 787, 769, 19, 117, 138, - - 390, 165, 163, 185, 0, 0, 222, 221, 222, 0, - 0, 404, 279, 301, 340, 342, 345, 370, 387, 0, - 0, 386, 390, 384, 380, 416, 379, 383, 382, 385, - 404, 0, 0, 389, 399, 406, 409, 0, 393, 393, - 400, 429, 426, 421, 412, 405, 414, 417, 397, 435, - 420, 405, 420, 414, 422, 410, 419, 425, 417, 413, - 422, 431, 415, 419, 434, 427, 431, 464, 0, 440, - 429, 423, 440, 441, 0, 429, 441, 435, 445, 442, - 439, 440, 438, 0, 453, 0, 448, 440, 459, 447, - 0, 438, 458, 459, 449, 448, 457, 450, 458, 453, - - 468, 456, 484, 468, 470, 470, 463, 468, 478, 471, - 508, 0, 472, 470, 483, 482, 479, 0, 472, 478, - 478, 485, 0, 482, 484, 480, 479, 0, 495, 0, - 487, 482, 493, 0, 513, 514, 527, 489, 500, 0, - 488, 0, 533, 491, 0, 0, 530, 0, 507, 0, - 0, 496, 497, 0, 496, 503, 508, 0, 0, 513, - 515, 518, 507, 509, 504, 519, 520, 508, 539, 509, - 524, 513, 514, 513, 526, 522, 0, 530, 513, 528, - 535, 550, 0, 529, 530, 533, 534, 530, 544, 537, - 542, 570, 544, 549, 0, 561, 546, 552, 535, 552, - - 547, 543, 546, 550, 0, 536, 556, 557, 550, 550, - 548, 548, 565, 559, 564, 0, 0, 552, 550, 579, - 580, 591, 0, 578, 557, 582, 0, 569, 595, 571, - 572, 573, 0, 580, 567, 581, 575, 598, 581, 584, - 0, 0, 582, 586, 605, 589, 570, 0, 586, 0, - 615, 0, 0, 576, 593, 598, 0, 0, 598, 587, - 585, 599, 585, 0, 591, 0, 587, 592, 602, 602, - 605, 593, 599, 591, 0, 597, 0, 0, 598, 599, - 607, 614, 601, 616, 609, 619, 0, 619, 625, 626, - 627, 627, 628, 646, 620, 619, 614, 621, 621, 0, - - 631, 640, 0, 633, 628, 623, 0, 623, 641, 0, - 0, 629, 635, 640, 0, 634, 627, 635, 625, 655, - 646, 639, 645, 635, 650, 644, 640, 649, 646, 0, - 641, 0, 0, 648, 660, 663, 648, 659, 0, 676, - 671, 672, 673, 660, 670, 683, 670, 0, 668, 670, - 665, 0, 674, 658, 0, 680, 674, 659, 671, 674, - 0, 681, 668, 670, 0, 672, 0, 672, 0, 682, - 675, 688, 676, 681, 0, 687, 690, 679, 686, 0, - 0, 699, 721, 722, 723, 684, 694, 717, 0, 695, - 0, 0, 691, 712, 699, 0, 706, 0, 707, 0, - - 708, 0, 705, 696, 702, 712, 705, 714, 707, 718, - 698, 709, 705, 706, 733, 734, 735, 724, 725, 731, - 0, 713, 729, 717, 719, 0, 719, 0, 737, 726, - 727, 722, 739, 0, 0, 754, 727, 0, 737, 752, - 753, 754, 0, 760, 756, 733, 735, 0, 0, 0, - 740, 736, 752, 738, 738, 744, 735, 0, 776, 777, - 778, 762, 786, 0, 746, 747, 0, 762, 0, 759, - 786, 0, 780, 781, 782, 761, 791, 757, 0, 0, - 762, 763, 789, 790, 791, 776, 802, 0, 770, 773, - 0, 0, 0, 0, 797, 0, 781, 807, 770, 0, - - 0, 1336, 834 + 0, 0, 1343, 1344, 1344, 1344, 1321, 1344, 1335, 1344, + 1319, 65, 66, 64, 76, 78, 1344, 1344, 1318, 1317, + 1316, 49, 60, 71, 52, 64, 88, 102, 87, 103, + 0, 1276, 112, 114, 105, 46, 122, 1268, 133, 186, + 173, 122, 1273, 1281, 1259, 1344, 1344, 1344, 1344, 1344, + 1344, 1344, 1320, 195, 1344, 1344, 1344, 202, 245, 182, + 1344, 1344, 1344, 0, 64, 1269, 1281, 1275, 1271, 1276, + 1269, 1276, 1261, 24, 1261, 42, 93, 1265, 1272, 1255, + 208, 1251, 1265, 1252, 1257, 87, 149, 1266, 111, 1262, + 1248, 1261, 164, 1261, 219, 1248, 1247, 1243, 1246, 1264, + + 1238, 1238, 1251, 24, 1239, 1258, 0, 1233, 1237, 1226, + 111, 167, 96, 1265, 1245, 52, 1243, 1252, 1233, 1222, + 1226, 1237, 1237, 1223, 1222, 1214, 0, 157, 175, 1228, + 1235, 1222, 225, 136, 1223, 1244, 1231, 1212, 145, 1217, + 1220, 1214, 226, 1210, 1209, 1208, 180, 0, 0, 1236, + 1210, 181, 1205, 184, 1220, 1216, 1204, 1209, 1206, 1194, + 1344, 1344, 285, 290, 299, 305, 310, 1198, 1200, 1195, + 1197, 1202, 1209, 303, 1196, 1195, 1196, 1187, 1196, 1201, + 1192, 1189, 1190, 228, 1189, 1182, 1195, 203, 1183, 281, + 1191, 1178, 1170, 1185, 0, 1191, 1174, 1181, 1180, 1183, + + 1182, 1185, 1196, 1174, 1161, 1173, 1176, 254, 1166, 1168, + 245, 0, 1161, 1159, 1165, 1170, 1170, 1180, 1158, 1167, + 0, 1167, 1186, 305, 1160, 1162, 1161, 1151, 1150, 1183, + 1157, 1142, 1155, 1152, 1153, 224, 1138, 315, 1151, 1155, + 1137, 1139, 1144, 1131, 0, 1145, 1161, 1146, 1136, 1141, + 1144, 1135, 1125, 1129, 1134, 1127, 1138, 1125, 1133, 1132, + 270, 1126, 1120, 1113, 1127, 1130, 1117, 1124, 0, 1117, + 322, 1112, 1104, 1117, 1120, 1109, 1117, 1112, 1111, 1100, + 327, 1112, 1105, 1113, 1135, 1106, 1094, 1093, 1091, 1109, + 1108, 1095, 1102, 1101, 1092, 1084, 316, 372, 377, 386, + + 391, 396, 1084, 1091, 0, 1082, 1087, 1081, 1084, 1088, + 1095, 0, 1127, 1085, 1084, 1087, 1081, 1085, 1085, 0, + 1075, 1067, 0, 1085, 1074, 1067, 1071, 1065, 1072, 277, + 0, 1076, 1089, 0, 1059, 1072, 1063, 1062, 1061, 1054, + 1053, 1070, 0, 0, 1055, 1085, 1054, 1061, 1049, 1056, + 1045, 0, 1043, 0, 1058, 1081, 0, 1055, 1042, 0, + 1039, 1057, 1043, 1035, 1035, 1052, 1072, 0, 0, 1040, + 1031, 1056, 1031, 1029, 1029, 1026, 1033, 1028, 0, 1061, + 1075, 1025, 1022, 293, 1024, 1020, 1060, 1024, 1039, 1019, + 1014, 1030, 1013, 1017, 1014, 1018, 1021, 1016, 1005, 1006, + + 1003, 298, 0, 1009, 1019, 1002, 1005, 1014, 999, 998, + 995, 1009, 1008, 1006, 1002, 1008, 988, 1006, 987, 1000, + 0, 0, 999, 984, 985, 226, 988, 0, 366, 991, + 994, 981, 992, 976, 982, 993, 988, 1004, 0, 0, + 1004, 1014, 995, 964, 976, 968, 979, 967, 976, 970, + 0, 0, 970, 0, 975, 968, 0, 402, 413, 0, + 958, 989, 971, 977, 956, 960, 959, 0, 958, 0, + 953, 0, 968, 959, 966, 955, 962, 959, 958, 948, + 966, 947, 954, 938, 948, 941, 950, 941, 949, 947, + 946, 945, 944, 936, 288, 941, 929, 0, 0, 941, + + 926, 939, 0, 919, 930, 0, 931, 313, 918, 926, + 920, 925, 912, 920, 0, 942, 914, 0, 913, 922, + 911, 927, 910, 0, 925, 947, 923, 914, 0, 898, + 910, 906, 905, 914, 0, 915, 0, 911, 911, 911, + 0, 900, 0, 918, 905, 893, 900, 906, 894, 888, + 900, 903, 890, 884, 896, 0, 0, 913, 898, 895, + 885, 879, 878, 913, 0, 885, 887, 886, 0, 871, + 870, 874, 872, 873, 872, 879, 313, 881, 875, 878, + 861, 865, 873, 858, 871, 0, 887, 319, 865, 895, + 0, 867, 0, 864, 0, 851, 864, 0, 859, 0, + + 0, 899, 861, 0, 852, 851, 846, 851, 842, 0, + 847, 848, 857, 852, 833, 842, 841, 834, 857, 832, + 845, 395, 832, 0, 0, 843, 381, 838, 0, 0, + 837, 0, 840, 835, 842, 828, 265, 865, 0, 838, + 830, 818, 832, 829, 845, 829, 0, 0, 828, 829, + 817, 827, 828, 815, 802, 0, 819, 0, 831, 819, + 336, 804, 813, 820, 0, 805, 0, 810, 815, 388, + 810, 807, 827, 795, 0, 808, 0, 811, 798, 791, + 807, 789, 798, 789, 800, 0, 0, 798, 0, 794, + 0, 798, 0, 795, 799, 788, 0, 803, 33, 103, + + 139, 155, 177, 224, 287, 384, 309, 310, 325, 0, + 0, 327, 317, 331, 0, 0, 417, 344, 353, 392, + 382, 385, 377, 390, 0, 0, 390, 401, 394, 390, + 426, 389, 393, 388, 390, 409, 0, 0, 394, 405, + 412, 415, 0, 399, 399, 406, 435, 432, 427, 418, + 411, 420, 423, 403, 441, 426, 411, 426, 420, 428, + 416, 425, 431, 423, 419, 428, 437, 421, 425, 440, + 433, 437, 470, 0, 446, 435, 439, 430, 447, 448, + 0, 436, 448, 442, 452, 449, 447, 447, 445, 0, + 460, 0, 456, 447, 466, 454, 0, 445, 465, 467, + + 456, 456, 464, 457, 465, 460, 475, 463, 491, 476, + 477, 477, 470, 476, 485, 478, 515, 0, 479, 477, + 490, 489, 486, 0, 479, 485, 485, 492, 0, 489, + 491, 487, 486, 0, 502, 0, 494, 489, 500, 0, + 520, 521, 534, 496, 507, 0, 495, 0, 540, 498, + 0, 0, 537, 0, 514, 0, 0, 503, 504, 0, + 503, 510, 515, 0, 0, 520, 522, 525, 514, 516, + 511, 526, 527, 528, 516, 547, 517, 532, 521, 522, + 521, 534, 530, 0, 538, 521, 536, 543, 558, 0, + 537, 538, 541, 542, 538, 552, 545, 550, 578, 552, + + 557, 0, 569, 554, 560, 543, 560, 555, 551, 554, + 558, 0, 544, 564, 565, 558, 558, 556, 556, 573, + 567, 572, 0, 0, 560, 558, 587, 588, 599, 0, + 586, 565, 590, 0, 577, 603, 579, 580, 581, 0, + 588, 575, 589, 583, 606, 589, 592, 0, 0, 0, + 590, 594, 613, 597, 578, 0, 594, 0, 623, 0, + 0, 584, 601, 606, 0, 0, 606, 595, 593, 607, + 593, 0, 599, 0, 595, 600, 610, 610, 613, 601, + 607, 599, 0, 605, 0, 0, 606, 607, 615, 622, + 609, 624, 617, 627, 0, 627, 633, 634, 635, 635, + + 636, 654, 628, 627, 622, 629, 629, 0, 639, 648, + 0, 641, 636, 631, 0, 631, 649, 0, 0, 637, + 643, 648, 0, 642, 635, 643, 633, 663, 654, 647, + 653, 643, 658, 652, 648, 657, 654, 0, 649, 0, + 0, 656, 668, 671, 656, 667, 0, 684, 679, 680, + 681, 668, 678, 691, 678, 0, 676, 678, 673, 0, + 682, 666, 0, 688, 682, 667, 679, 682, 0, 689, + 676, 678, 0, 680, 0, 680, 0, 690, 683, 696, + 684, 689, 0, 695, 698, 687, 694, 0, 0, 707, + 729, 730, 731, 692, 702, 725, 0, 703, 0, 0, + + 699, 720, 707, 0, 714, 0, 715, 0, 716, 0, + 713, 704, 710, 720, 713, 722, 715, 726, 706, 717, + 713, 714, 741, 742, 743, 732, 733, 739, 0, 721, + 737, 725, 727, 0, 727, 0, 745, 734, 735, 730, + 747, 0, 0, 762, 735, 0, 745, 760, 761, 762, + 0, 768, 764, 741, 743, 0, 0, 0, 748, 744, + 760, 746, 746, 752, 743, 0, 784, 785, 786, 770, + 794, 0, 754, 755, 0, 770, 0, 767, 794, 0, + 788, 789, 790, 769, 799, 765, 0, 0, 770, 771, + 797, 798, 799, 784, 810, 0, 778, 781, 0, 0, + + 0, 0, 805, 0, 789, 815, 778, 0, 0, 1344, + 842 } ; -static yyconst flex_int16_t yy_def[1204] = +static yyconst flex_int16_t yy_def[1212] = { 0, - 1202, 1, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, - 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, - 1202, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1202, 1202, 1202, 1202, 1202, 1202, - 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, - 1202, 1202, 1202, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1202, 1202, 1202, 1202, - - 1202, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1202, 1202, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, - - 1203, 0, 1202 + 1210, 1, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1210, 1210, 1210, + + 1210, 1210, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1210, 1210, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + + 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 0, + 1210 } ; -static yyconst flex_int16_t yy_nxt[1410] = +static yyconst flex_int16_t yy_nxt[1418] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16, 16, 16, 16, 17, 18, 19, @@ -854,57 +856,57 @@ static yyconst flex_int16_t yy_nxt[1410] = 31, 31, 31, 31, 31, 31, 31, 31, 31, 44, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 45, 49, 53, 51, 54, 54, 54, 54, - 54, 226, 227, 55, 795, 50, 52, 56, 58, 178, + 54, 227, 228, 55, 797, 50, 52, 56, 58, 178, 59, 59, 59, 59, 59, 179, 57, 65, 66, 67, 73, 68, 181, 86, 60, 122, 69, 87, 182, 123, - 202, 74, 70, 71, 72, 88, 203, 75, 77, 118, + 242, 74, 70, 71, 72, 88, 243, 75, 77, 118, 76, 89, 78, 90, 168, 79, 80, 91, 169, 60, 92, 81, 82, 93, 83, 94, 100, 84, 106, 199, - 200, 85, 103, 95, 201, 96, 97, 104, 98, 237, + 200, 85, 103, 95, 201, 96, 97, 104, 98, 238, 183, 114, 119, 101, 99, 107, 120, 105, 184, 110, - 102, 115, 108, 111, 238, 116, 796, 112, 205, 124, - 233, 121, 113, 125, 117, 206, 126, 127, 234, 128, - 132, 156, 129, 157, 133, 130, 158, 148, 149, 797, - 166, 166, 271, 134, 167, 167, 167, 167, 167, 135, - - 136, 235, 255, 150, 256, 272, 236, 54, 54, 54, - 54, 54, 800, 210, 164, 164, 164, 164, 164, 211, - 151, 163, 801, 212, 152, 241, 253, 153, 165, 265, - 266, 242, 802, 154, 742, 137, 155, 138, 282, 283, - 139, 140, 743, 141, 142, 254, 163, 143, 144, 286, - 328, 145, 146, 165, 287, 58, 147, 59, 59, 59, - 59, 59, 188, 329, 289, 189, 190, 191, 192, 193, - 214, 60, 194, 803, 260, 402, 215, 261, 216, 290, - 276, 403, 262, 277, 320, 804, 325, 805, 217, 278, - 263, 321, 264, 297, 297, 326, 60, 298, 298, 298, - - 298, 298, 164, 164, 164, 164, 164, 300, 300, 349, - 350, 301, 301, 301, 301, 301, 299, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 308, 345, 376, - 379, 346, 811, 361, 480, 412, 633, 481, 413, 634, - 377, 299, 362, 309, 310, 543, 414, 363, 415, 426, - 364, 416, 427, 524, 525, 564, 762, 380, 428, 567, - 448, 565, 429, 449, 430, 431, 568, 544, 450, 543, - 569, 812, 451, 763, 452, 453, 623, 624, 454, 813, - 432, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 455, 455, 814, 815, 456, 456, 456, 456, 456, - - 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, - 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 690, 701, 728, 733, 691, 770, 702, 734, 798, 806, - 816, 807, 735, 729, 808, 817, 818, 819, 730, 820, - 821, 822, 823, 824, 809, 799, 810, 771, 825, 770, - 826, 827, 798, 828, 829, 830, 831, 832, 833, 834, + 102, 115, 108, 111, 239, 116, 798, 112, 206, 124, + 234, 121, 113, 125, 117, 207, 126, 127, 235, 128, + 132, 156, 129, 157, 133, 130, 158, 148, 149, 799, + 166, 166, 272, 134, 167, 167, 167, 167, 167, 135, + + 136, 266, 267, 150, 254, 273, 202, 54, 54, 54, + 54, 54, 203, 204, 164, 164, 164, 164, 164, 211, + 151, 163, 800, 255, 152, 212, 236, 153, 165, 213, + 256, 237, 257, 154, 290, 137, 155, 138, 283, 284, + 139, 140, 801, 141, 142, 287, 163, 143, 144, 291, + 288, 145, 146, 165, 326, 58, 147, 59, 59, 59, + 59, 59, 188, 327, 378, 189, 190, 191, 192, 193, + 215, 60, 194, 802, 261, 379, 216, 262, 217, 321, + 277, 347, 263, 278, 348, 568, 322, 747, 218, 279, + 264, 569, 265, 298, 298, 748, 60, 299, 299, 299, + + 299, 299, 164, 164, 164, 164, 164, 301, 301, 351, + 352, 302, 302, 302, 302, 302, 300, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 309, 381, 329, + 404, 363, 527, 528, 483, 405, 406, 484, 803, 546, + 364, 300, 330, 310, 311, 365, 415, 637, 366, 416, + 638, 429, 627, 628, 430, 382, 806, 417, 767, 418, + 431, 547, 419, 546, 432, 451, 433, 434, 452, 807, + 695, 706, 808, 453, 696, 768, 707, 454, 809, 455, + 456, 810, 435, 457, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 458, 458, 811, 817, 459, 459, + + 459, 459, 459, 302, 302, 302, 302, 302, 302, 302, + 302, 302, 302, 571, 459, 459, 459, 459, 459, 733, + 572, 775, 804, 818, 573, 459, 459, 459, 459, 459, + 734, 819, 738, 820, 821, 735, 739, 822, 823, 805, + 824, 740, 812, 776, 813, 775, 804, 814, 825, 826, + 827, 828, 829, 830, 831, 832, 833, 815, 834, 816, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, - 855, 856, 857, 858, 859, 860, 861, 865, 866, 862, - 867, 868, 869, 870, 871, 872, 873, 874, 875, 863, + 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, + 865, 866, 867, 871, 872, 868, 873, 874, 875, 876, - 876, 877, 878, 879, 864, 880, 881, 882, 883, 884, - 885, 861, 886, 887, 862, 888, 889, 890, 891, 892, - 893, 894, 895, 863, 896, 897, 898, 899, 864, 900, - 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, + 877, 878, 879, 880, 881, 869, 882, 883, 884, 885, + 870, 886, 887, 888, 889, 890, 891, 867, 892, 893, + 868, 894, 895, 896, 897, 898, 899, 900, 901, 869, + 902, 903, 904, 905, 870, 906, 907, 908, 909, 910, 911, 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, @@ -917,93 +919,94 @@ static yyconst flex_int16_t yy_nxt[1410] = 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, - 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1004, 1028, 1029, - 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, + 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, + 1031, 1032, 1033, 1034, 1035, 1012, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, - 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1053, 1077, 1078, - 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, - 1066, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, + 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, + 1080, 1081, 1082, 1083, 1084, 1061, 1085, 1086, 1087, 1088, + 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1074, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, - 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1123, - 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, + 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, + 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1131, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, - 1197, 1198, 1199, 1200, 1201, 64, 794, 793, 792, 791, + 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, + 1207, 1208, 1209, 64, 796, 795, 794, 793, 792, 791, 790, 789, 788, 787, 786, 785, 784, 783, 782, 781, - 780, 779, 778, 777, 776, 775, 774, 773, 772, 769, - 768, 767, 766, 765, 764, 761, 760, 759, 758, 757, - 756, 755, 754, 753, 752, 751, 750, 749, 748, 747, - 746, 745, 744, 741, 740, 739, 738, 737, 736, 732, - 731, 727, 726, 725, 724, 723, 722, 721, 720, 719, + 780, 779, 778, 777, 774, 773, 772, 771, 770, 769, + 766, 765, 764, 763, 762, 761, 760, 759, 758, 757, + 756, 755, 754, 753, 752, 751, 750, 749, 746, 745, + 744, 743, 742, 741, 737, 736, 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, 700, 699, 698, 697, - 696, 695, 694, 693, 692, 689, 688, 687, 686, 685, + 708, 705, 704, 703, 702, 701, 700, 699, 698, 697, + 694, 693, 692, 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, - 644, 643, 642, 641, 640, 639, 638, 637, 636, 635, - 632, 631, 630, 629, 628, 627, 626, 625, 622, 621, - 620, 619, 618, 617, 616, 615, 614, 613, 612, 611, + 644, 643, 642, 641, 640, 639, 636, 635, 634, 633, + 632, 631, 630, 629, 626, 625, 624, 623, 622, 621, + 620, 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, 582, 581, - 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, - 570, 566, 563, 562, 561, 560, 559, 558, 557, 556, - 555, 554, 553, 552, 551, 550, 549, 548, 547, 546, - 545, 542, 541, 540, 539, 538, 537, 536, 535, 534, - 533, 532, 531, 530, 529, 528, 527, 526, 523, 522, + 580, 579, 578, 577, 576, 575, 574, 570, 567, 566, + 565, 564, 563, 562, 561, 560, 559, 558, 557, 556, + 555, 554, 553, 552, 551, 550, 549, 548, 545, 544, + 543, 542, 541, 540, 539, 538, 537, 536, 535, 534, + 533, 532, 531, 530, 529, 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, - 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, + 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, 498, 497, 496, 495, 494, 493, 492, - 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, + 491, 490, 489, 488, 487, 486, 485, 482, 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, 461, 460, - 459, 458, 457, 447, 446, 445, 444, 443, 442, 441, - 440, 439, 438, 437, 436, 435, 434, 433, 425, 424, - 423, 422, 421, 420, 419, 418, 417, 411, 410, 409, - 408, 407, 406, 405, 404, 401, 400, 399, 398, 397, - 396, 395, 394, 393, 392, 391, 390, 389, 388, 387, - 386, 385, 384, 383, 382, 381, 378, 375, 374, 373, - - 372, 371, 370, 369, 368, 367, 366, 365, 360, 359, - 358, 357, 356, 355, 354, 353, 352, 351, 348, 347, - 344, 343, 342, 341, 340, 339, 338, 337, 336, 335, - 334, 333, 332, 331, 330, 327, 324, 323, 322, 319, - 318, 317, 316, 315, 314, 313, 312, 311, 307, 306, - 305, 304, 303, 302, 296, 295, 294, 293, 292, 291, - 288, 285, 284, 281, 280, 279, 275, 274, 273, 270, - 269, 268, 267, 259, 258, 257, 252, 251, 250, 249, - 248, 247, 246, 245, 244, 243, 240, 239, 232, 231, - 230, 229, 228, 225, 224, 223, 222, 221, 220, 219, - - 218, 213, 209, 208, 207, 204, 198, 197, 196, 195, - 187, 186, 185, 180, 177, 176, 175, 174, 173, 172, - 171, 170, 162, 161, 160, 159, 131, 109, 63, 62, - 61, 48, 47, 46, 1202, 3, 1202, 1202, 1202, 1202, - 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, - 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, - 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, - 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, - 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, - 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, - - 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202 + 450, 449, 448, 447, 446, 445, 444, 443, 442, 441, + 440, 439, 438, 437, 436, 428, 427, 426, 425, 424, + 423, 422, 421, 420, 414, 413, 412, 411, 410, 409, + 408, 407, 403, 402, 401, 400, 399, 398, 397, 396, + 395, 394, 393, 392, 391, 390, 389, 388, 387, 386, + + 385, 384, 383, 380, 377, 376, 375, 374, 373, 372, + 371, 370, 369, 368, 367, 362, 361, 360, 359, 358, + 357, 356, 355, 354, 353, 350, 349, 346, 345, 344, + 343, 342, 341, 340, 339, 338, 337, 336, 335, 334, + 333, 332, 331, 328, 325, 324, 323, 320, 319, 318, + 317, 316, 315, 314, 313, 312, 308, 307, 306, 305, + 304, 303, 297, 296, 295, 294, 293, 292, 289, 286, + 285, 282, 281, 280, 276, 275, 274, 271, 270, 269, + 268, 260, 259, 258, 253, 252, 251, 250, 249, 248, + 247, 246, 245, 244, 241, 240, 233, 232, 231, 230, + + 229, 226, 225, 224, 223, 222, 221, 220, 219, 214, + 210, 209, 208, 205, 198, 197, 196, 195, 187, 186, + 185, 180, 177, 176, 175, 174, 173, 172, 171, 170, + 162, 161, 160, 159, 131, 109, 63, 62, 61, 48, + 47, 46, 1210, 3, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210 } ; -static yyconst flex_int16_t yy_chk[1410] = +static yyconst flex_int16_t yy_chk[1418] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1013,153 +1016,154 @@ static yyconst flex_int16_t yy_chk[1410] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 14, 13, 14, 14, 14, 14, - 14, 104, 104, 15, 698, 12, 13, 15, 16, 74, + 14, 104, 104, 15, 699, 12, 13, 15, 16, 74, 16, 16, 16, 16, 16, 74, 15, 22, 22, 22, 23, 22, 76, 25, 16, 36, 22, 25, 76, 36, - 87, 23, 22, 22, 22, 25, 87, 23, 24, 35, + 116, 23, 22, 22, 22, 25, 116, 23, 24, 35, 23, 26, 24, 26, 65, 24, 24, 26, 65, 16, 26, 24, 24, 26, 24, 27, 28, 24, 30, 86, 86, 24, 29, 27, 86, 27, 27, 29, 27, 113, 77, 34, 35, 28, 27, 30, 35, 29, 77, 33, - 28, 34, 30, 33, 113, 34, 699, 33, 89, 37, + 28, 34, 30, 33, 113, 34, 700, 33, 89, 37, 111, 35, 33, 37, 34, 89, 37, 37, 111, 37, - 39, 42, 37, 42, 39, 37, 42, 41, 41, 700, + 39, 42, 37, 42, 39, 37, 42, 41, 41, 701, 60, 60, 139, 39, 60, 60, 60, 60, 60, 39, - 40, 112, 129, 41, 129, 139, 112, 54, 54, 54, - 54, 54, 702, 93, 58, 58, 58, 58, 58, 93, - 41, 54, 703, 93, 41, 116, 128, 41, 58, 134, - 134, 116, 704, 41, 633, 40, 41, 40, 147, 147, - 40, 40, 633, 40, 40, 128, 54, 40, 40, 152, - 190, 40, 40, 58, 152, 59, 40, 59, 59, 59, - 59, 59, 81, 190, 154, 81, 81, 81, 81, 81, - 95, 59, 81, 707, 133, 260, 95, 133, 95, 154, - 143, 260, 133, 143, 184, 708, 188, 709, 95, 143, - 133, 184, 133, 163, 163, 188, 59, 163, 163, 163, - - 163, 163, 164, 164, 164, 164, 164, 165, 165, 210, - 210, 165, 165, 165, 165, 165, 164, 166, 166, 166, - 166, 166, 167, 167, 167, 167, 167, 174, 207, 235, - 237, 207, 713, 223, 329, 270, 505, 329, 270, 505, - 235, 164, 223, 174, 174, 400, 270, 223, 270, 280, - 223, 270, 280, 382, 382, 423, 657, 237, 280, 426, - 296, 423, 280, 296, 280, 280, 426, 400, 296, 400, - 426, 714, 296, 657, 296, 296, 492, 492, 296, 715, - 280, 297, 297, 297, 297, 297, 298, 298, 298, 298, - 298, 299, 299, 716, 717, 299, 299, 299, 299, 299, - - 300, 300, 300, 300, 300, 301, 301, 301, 301, 301, - 455, 455, 455, 455, 455, 456, 456, 456, 456, 456, - 573, 584, 618, 623, 573, 666, 584, 623, 701, 712, - 718, 712, 623, 618, 712, 719, 722, 723, 618, 724, - 725, 726, 727, 728, 712, 701, 712, 666, 729, 666, - 730, 731, 701, 734, 735, 736, 737, 739, 740, 741, - 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, - 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, - 762, 763, 764, 765, 766, 767, 768, 770, 771, 768, - 772, 773, 774, 776, 777, 778, 779, 780, 781, 768, - - 782, 783, 785, 787, 768, 788, 789, 790, 792, 793, - 794, 768, 795, 796, 768, 797, 798, 799, 800, 801, - 802, 803, 804, 768, 805, 806, 807, 808, 768, 809, - 810, 811, 813, 814, 815, 816, 817, 819, 820, 821, - 822, 824, 825, 826, 827, 829, 831, 832, 833, 835, - 836, 837, 838, 839, 841, 843, 844, 847, 849, 852, - 853, 855, 856, 857, 860, 861, 862, 863, 864, 865, - 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, - 876, 878, 879, 880, 881, 882, 884, 885, 886, 887, - 888, 889, 890, 891, 892, 893, 894, 896, 897, 898, - - 899, 900, 901, 902, 903, 904, 906, 907, 908, 909, - 910, 911, 912, 913, 914, 915, 918, 919, 920, 921, - 922, 924, 925, 926, 928, 929, 930, 931, 932, 934, - 935, 936, 937, 938, 939, 940, 943, 944, 945, 946, - 947, 949, 951, 954, 955, 956, 959, 960, 961, 962, - 963, 965, 967, 968, 969, 970, 971, 938, 972, 973, - 974, 976, 979, 980, 981, 982, 983, 984, 985, 986, - 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, - 998, 999, 1001, 1002, 1004, 1005, 1006, 1008, 1009, 1012, - 1013, 1014, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, - - 1024, 1025, 1026, 1027, 1028, 1029, 1031, 1002, 1034, 1035, - 1036, 1037, 1038, 1040, 1041, 1042, 1043, 1044, 1045, 1046, - 1020, 1047, 1049, 1050, 1051, 1053, 1054, 1056, 1057, 1058, - 1059, 1060, 1062, 1063, 1064, 1066, 1068, 1070, 1071, 1072, - 1073, 1074, 1076, 1077, 1078, 1079, 1082, 1083, 1084, 1085, - 1086, 1087, 1088, 1090, 1093, 1094, 1095, 1097, 1099, 1101, - 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, - 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1122, 1094, - 1123, 1124, 1125, 1127, 1129, 1130, 1131, 1132, 1133, 1136, - 1137, 1139, 1140, 1141, 1142, 1144, 1145, 1146, 1147, 1151, - - 1152, 1153, 1154, 1155, 1156, 1157, 1159, 1160, 1161, 1162, - 1163, 1165, 1166, 1168, 1170, 1171, 1173, 1174, 1175, 1176, - 1177, 1178, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1189, - 1190, 1195, 1197, 1198, 1199, 1203, 697, 696, 695, 694, - 693, 691, 690, 689, 687, 685, 683, 680, 679, 678, - 677, 676, 675, 674, 673, 671, 669, 668, 667, 665, - 664, 662, 660, 659, 658, 656, 655, 653, 651, 650, - 649, 648, 647, 646, 645, 642, 641, 640, 639, 638, - 637, 636, 634, 632, 631, 630, 629, 627, 624, 622, - 619, 617, 616, 615, 614, 613, 612, 611, 610, 609, - - 608, 607, 605, 604, 603, 602, 601, 599, 598, 595, - 593, 592, 590, 588, 586, 585, 583, 581, 580, 579, - 578, 577, 576, 575, 574, 572, 571, 570, 569, 568, - 567, 566, 564, 563, 562, 560, 559, 558, 557, 556, - 555, 554, 551, 550, 549, 548, 547, 546, 545, 544, - 543, 542, 541, 539, 537, 536, 535, 533, 531, 530, - 529, 528, 527, 525, 524, 523, 522, 520, 519, 518, - 517, 516, 514, 513, 511, 510, 509, 508, 507, 506, - 504, 502, 501, 499, 498, 497, 494, 493, 491, 490, - 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, - - 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, - 468, 466, 464, 463, 462, 461, 460, 459, 458, 453, - 452, 450, 447, 446, 445, 444, 443, 442, 441, 440, - 439, 438, 435, 434, 433, 432, 431, 430, 429, 428, - 427, 424, 422, 421, 420, 417, 416, 415, 414, 413, - 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, - 402, 399, 398, 397, 396, 395, 394, 393, 392, 391, - 390, 389, 388, 387, 386, 385, 384, 383, 381, 380, - 379, 378, 376, 375, 374, 373, 372, 371, 370, 369, - 368, 365, 364, 363, 362, 361, 360, 359, 357, 356, - - 354, 353, 351, 349, 348, 347, 346, 345, 344, 343, - 341, 340, 339, 338, 337, 336, 335, 334, 332, 331, - 328, 327, 326, 325, 324, 323, 321, 320, 318, 317, - 316, 315, 314, 313, 312, 310, 309, 308, 307, 306, - 305, 303, 302, 295, 294, 293, 292, 291, 290, 289, - 288, 287, 286, 285, 284, 283, 282, 281, 279, 278, - 277, 276, 275, 274, 273, 272, 271, 269, 267, 266, - 265, 264, 263, 262, 261, 259, 258, 257, 256, 255, - 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, - 243, 242, 241, 240, 239, 238, 236, 234, 233, 232, - - 231, 230, 229, 228, 227, 226, 225, 224, 222, 221, - 219, 218, 217, 216, 215, 214, 213, 212, 209, 208, - 206, 205, 204, 203, 202, 201, 200, 199, 198, 197, - 196, 194, 193, 192, 191, 189, 187, 186, 185, 183, - 182, 181, 180, 179, 178, 177, 176, 175, 173, 172, - 171, 170, 169, 168, 160, 159, 158, 157, 156, 155, - 153, 151, 150, 146, 145, 144, 142, 141, 140, 138, - 137, 136, 135, 132, 131, 130, 126, 125, 124, 123, - 122, 121, 120, 119, 118, 117, 115, 114, 110, 109, - 108, 106, 105, 103, 102, 101, 100, 99, 98, 97, - - 96, 94, 92, 91, 90, 88, 85, 84, 83, 82, - 80, 79, 78, 75, 73, 72, 71, 70, 69, 68, - 67, 66, 53, 45, 44, 43, 38, 32, 21, 20, - 19, 11, 9, 7, 3, 1202, 1202, 1202, 1202, 1202, - 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, - 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, - 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, - 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, - 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, - 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, - - 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202 + 40, 134, 134, 41, 128, 139, 87, 54, 54, 54, + 54, 54, 87, 87, 58, 58, 58, 58, 58, 93, + 41, 54, 702, 128, 41, 93, 112, 41, 58, 93, + 129, 112, 129, 41, 154, 40, 41, 40, 147, 147, + 40, 40, 703, 40, 40, 152, 54, 40, 40, 154, + 152, 40, 40, 58, 188, 59, 40, 59, 59, 59, + 59, 59, 81, 188, 236, 81, 81, 81, 81, 81, + 95, 59, 81, 704, 133, 236, 95, 133, 95, 184, + 143, 208, 133, 143, 208, 426, 184, 637, 95, 143, + 133, 426, 133, 163, 163, 637, 59, 163, 163, 163, + + 163, 163, 164, 164, 164, 164, 164, 165, 165, 211, + 211, 165, 165, 165, 165, 165, 164, 166, 166, 166, + 166, 166, 167, 167, 167, 167, 167, 174, 238, 190, + 261, 224, 384, 384, 330, 261, 261, 330, 705, 402, + 224, 164, 190, 174, 174, 224, 271, 508, 224, 271, + 508, 281, 495, 495, 281, 238, 707, 271, 661, 271, + 281, 402, 271, 402, 281, 297, 281, 281, 297, 708, + 577, 588, 709, 297, 577, 661, 588, 297, 712, 297, + 297, 713, 281, 297, 298, 298, 298, 298, 298, 299, + 299, 299, 299, 299, 300, 300, 714, 718, 300, 300, + + 300, 300, 300, 301, 301, 301, 301, 301, 302, 302, + 302, 302, 302, 429, 458, 458, 458, 458, 458, 622, + 429, 670, 706, 719, 429, 459, 459, 459, 459, 459, + 622, 720, 627, 721, 722, 622, 627, 723, 724, 706, + 727, 627, 717, 670, 717, 670, 706, 717, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 717, 739, 717, + 740, 741, 742, 744, 745, 746, 747, 748, 749, 750, + 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, + 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, + 771, 772, 773, 775, 776, 773, 777, 778, 779, 780, + + 782, 783, 784, 785, 786, 773, 787, 788, 789, 791, + 773, 793, 794, 795, 796, 798, 799, 773, 800, 801, + 773, 802, 803, 804, 805, 806, 807, 808, 809, 773, + 810, 811, 812, 813, 773, 814, 815, 816, 817, 819, + 820, 821, 822, 823, 825, 826, 827, 828, 830, 831, + 832, 833, 835, 837, 838, 839, 841, 842, 843, 844, + 845, 847, 849, 850, 853, 855, 858, 859, 861, 862, + 863, 866, 867, 868, 869, 870, 871, 872, 873, 874, + 875, 876, 877, 878, 879, 880, 881, 882, 883, 885, + 886, 887, 888, 889, 891, 892, 893, 894, 895, 896, + + 897, 898, 899, 900, 901, 903, 904, 905, 906, 907, + 908, 909, 910, 911, 913, 914, 915, 916, 917, 918, + 919, 920, 921, 922, 925, 926, 927, 928, 929, 931, + 932, 933, 935, 936, 937, 938, 939, 941, 942, 943, + 944, 945, 946, 947, 951, 952, 953, 954, 955, 957, + 959, 962, 963, 964, 967, 968, 969, 970, 971, 973, + 975, 976, 977, 978, 979, 945, 980, 981, 982, 984, + 987, 988, 989, 990, 991, 992, 993, 994, 996, 997, + 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, + 1009, 1010, 1012, 1013, 1014, 1016, 1017, 1020, 1021, 1022, + + 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, + 1034, 1035, 1036, 1037, 1039, 1010, 1042, 1043, 1044, 1045, + 1046, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1028, 1055, + 1057, 1058, 1059, 1061, 1062, 1064, 1065, 1066, 1067, 1068, + 1070, 1071, 1072, 1074, 1076, 1078, 1079, 1080, 1081, 1082, + 1084, 1085, 1086, 1087, 1090, 1091, 1092, 1093, 1094, 1095, + 1096, 1098, 1101, 1102, 1103, 1105, 1107, 1109, 1111, 1112, + 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, + 1123, 1124, 1125, 1126, 1127, 1128, 1130, 1102, 1131, 1132, + 1133, 1135, 1137, 1138, 1139, 1140, 1141, 1144, 1145, 1147, + + 1148, 1149, 1150, 1152, 1153, 1154, 1155, 1159, 1160, 1161, + 1162, 1163, 1164, 1165, 1167, 1168, 1169, 1170, 1171, 1173, + 1174, 1176, 1178, 1179, 1181, 1182, 1183, 1184, 1185, 1186, + 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1197, 1198, 1203, + 1205, 1206, 1207, 1211, 698, 696, 695, 694, 692, 690, + 688, 685, 684, 683, 682, 681, 680, 679, 678, 676, + 674, 673, 672, 671, 669, 668, 666, 664, 663, 662, + 660, 659, 657, 655, 654, 653, 652, 651, 650, 649, + 646, 645, 644, 643, 642, 641, 640, 638, 636, 635, + 634, 633, 631, 628, 626, 623, 621, 620, 619, 618, + + 617, 616, 615, 614, 613, 612, 611, 609, 608, 607, + 606, 605, 603, 602, 599, 597, 596, 594, 592, 590, + 589, 587, 585, 584, 583, 582, 581, 580, 579, 578, + 576, 575, 574, 573, 572, 571, 570, 568, 567, 566, + 564, 563, 562, 561, 560, 559, 558, 555, 554, 553, + 552, 551, 550, 549, 548, 547, 546, 545, 544, 542, + 540, 539, 538, 536, 534, 533, 532, 531, 530, 528, + 527, 526, 525, 523, 522, 521, 520, 519, 517, 516, + 514, 513, 512, 511, 510, 509, 507, 505, 504, 502, + 501, 500, 497, 496, 494, 493, 492, 491, 490, 489, + + 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, + 478, 477, 476, 475, 474, 473, 471, 469, 467, 466, + 465, 464, 463, 462, 461, 456, 455, 453, 450, 449, + 448, 447, 446, 445, 444, 443, 442, 441, 438, 437, + 436, 435, 434, 433, 432, 431, 430, 427, 425, 424, + 423, 420, 419, 418, 417, 416, 415, 414, 413, 412, + 411, 410, 409, 408, 407, 406, 405, 404, 401, 400, + 399, 398, 397, 396, 395, 394, 393, 392, 391, 390, + 389, 388, 387, 386, 385, 383, 382, 381, 380, 378, + 377, 376, 375, 374, 373, 372, 371, 370, 367, 366, + + 365, 364, 363, 362, 361, 359, 358, 356, 355, 353, + 351, 350, 349, 348, 347, 346, 345, 342, 341, 340, + 339, 338, 337, 336, 335, 333, 332, 329, 328, 327, + 326, 325, 324, 322, 321, 319, 318, 317, 316, 315, + 314, 313, 311, 310, 309, 308, 307, 306, 304, 303, + 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, + 286, 285, 284, 283, 282, 280, 279, 278, 277, 276, + 275, 274, 273, 272, 270, 268, 267, 266, 265, 264, + 263, 262, 260, 259, 258, 257, 256, 255, 254, 253, + 252, 251, 250, 249, 248, 247, 246, 244, 243, 242, + + 241, 240, 239, 237, 235, 234, 233, 232, 231, 230, + 229, 228, 227, 226, 225, 223, 222, 220, 219, 218, + 217, 216, 215, 214, 213, 210, 209, 207, 206, 205, + 204, 203, 202, 201, 200, 199, 198, 197, 196, 194, + 193, 192, 191, 189, 187, 186, 185, 183, 182, 181, + 180, 179, 178, 177, 176, 175, 173, 172, 171, 170, + 169, 168, 160, 159, 158, 157, 156, 155, 153, 151, + 150, 146, 145, 144, 142, 141, 140, 138, 137, 136, + 135, 132, 131, 130, 126, 125, 124, 123, 122, 121, + 120, 119, 118, 117, 115, 114, 110, 109, 108, 106, + + 105, 103, 102, 101, 100, 99, 98, 97, 96, 94, + 92, 91, 90, 88, 85, 84, 83, 82, 80, 79, + 78, 75, 73, 72, 71, 70, 69, 68, 67, 66, + 53, 45, 44, 43, 38, 32, 21, 20, 19, 11, + 9, 7, 3, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + + 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, + 1210, 1210, 1210, 1210, 1210, 1210, 1210 } ; static yy_state_type yy_last_accepting_state; @@ -1239,7 +1243,7 @@ void skipline(void); #define YY_NO_UNISTD_H #endif -#line 1243 "Gmsh.yy.cpp" +#line 1247 "Gmsh.yy.cpp" #define INITIAL 0 @@ -1424,7 +1428,7 @@ YY_DECL #line 72 "Gmsh.l" -#line 1428 "Gmsh.yy.cpp" +#line 1432 "Gmsh.yy.cpp" if ( !(yy_init) ) { @@ -1477,13 +1481,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 >= 1203 ) + if ( yy_current_state >= 1211 ) 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] != 1336 ); + while ( yy_base[yy_current_state] != 1344 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1936,22 +1940,22 @@ return tDirName; case 86: YY_RULE_SETUP #line 163 "Gmsh.l" -return tDraw; +return tDisk; YY_BREAK case 87: YY_RULE_SETUP #line 164 "Gmsh.l" -return tSetChanged; +return tDraw; YY_BREAK case 88: YY_RULE_SETUP -#line 166 "Gmsh.l" -return tExp; +#line 165 "Gmsh.l" +return tSetChanged; YY_BREAK case 89: YY_RULE_SETUP #line 167 "Gmsh.l" -return tEllipse; +return tExp; YY_BREAK case 90: YY_RULE_SETUP @@ -1961,277 +1965,277 @@ return tEllipse; case 91: YY_RULE_SETUP #line 169 "Gmsh.l" -return tEllipsoid; +return tEllipse; YY_BREAK case 92: YY_RULE_SETUP #line 170 "Gmsh.l" -return tElse; +return tEllipsoid; YY_BREAK case 93: YY_RULE_SETUP #line 171 "Gmsh.l" -return tElseIf; +return tElse; YY_BREAK case 94: YY_RULE_SETUP #line 172 "Gmsh.l" -return tExtrude; +return tElseIf; YY_BREAK case 95: YY_RULE_SETUP #line 173 "Gmsh.l" -return tElliptic; +return tExtrude; YY_BREAK case 96: YY_RULE_SETUP #line 174 "Gmsh.l" -return tEndFor; +return tElliptic; YY_BREAK case 97: YY_RULE_SETUP #line 175 "Gmsh.l" -return tEndIf; +return tEndFor; YY_BREAK case 98: YY_RULE_SETUP #line 176 "Gmsh.l" -return tEuclidian; +return tEndIf; YY_BREAK case 99: YY_RULE_SETUP #line 177 "Gmsh.l" -return tError; +return tEuclidian; YY_BREAK case 100: YY_RULE_SETUP #line 178 "Gmsh.l" -return tExit; +return tError; YY_BREAK case 101: YY_RULE_SETUP #line 179 "Gmsh.l" -return tExists; +return tExit; YY_BREAK case 102: YY_RULE_SETUP -#line 181 "Gmsh.l" -return tFabs; +#line 180 "Gmsh.l" +return tExists; YY_BREAK case 103: YY_RULE_SETUP #line 182 "Gmsh.l" -return tField; +return tFabs; YY_BREAK case 104: YY_RULE_SETUP #line 183 "Gmsh.l" -return tFind; +return tField; YY_BREAK case 105: YY_RULE_SETUP #line 184 "Gmsh.l" -return tFileExists; +return tFind; YY_BREAK case 106: YY_RULE_SETUP #line 185 "Gmsh.l" -return tFixRelativePath; +return tFileExists; YY_BREAK case 107: YY_RULE_SETUP #line 186 "Gmsh.l" -return tFloor; +return tFixRelativePath; YY_BREAK case 108: YY_RULE_SETUP #line 187 "Gmsh.l" -return tFmod; +return tFloor; YY_BREAK case 109: YY_RULE_SETUP #line 188 "Gmsh.l" -return tFor; +return tFmod; YY_BREAK case 110: YY_RULE_SETUP #line 189 "Gmsh.l" -return tMacro; +return tFor; YY_BREAK case 111: YY_RULE_SETUP -#line 191 "Gmsh.l" -return tGetEnv; +#line 190 "Gmsh.l" +return tMacro; YY_BREAK case 112: YY_RULE_SETUP #line 192 "Gmsh.l" -return tGetString; +return tGetEnv; YY_BREAK case 113: YY_RULE_SETUP #line 193 "Gmsh.l" -return tGetNumber; +return tGetString; YY_BREAK case 114: YY_RULE_SETUP #line 194 "Gmsh.l" -return tGetValue; +return tGetNumber; YY_BREAK case 115: YY_RULE_SETUP #line 195 "Gmsh.l" -return tGetStringValue; +return tGetValue; YY_BREAK case 116: YY_RULE_SETUP #line 196 "Gmsh.l" -return tGMSH_MAJOR_VERSION; +return tGetStringValue; YY_BREAK case 117: YY_RULE_SETUP #line 197 "Gmsh.l" -return tGMSH_MINOR_VERSION; +return tGMSH_MAJOR_VERSION; YY_BREAK case 118: YY_RULE_SETUP #line 198 "Gmsh.l" -return tGMSH_PATCH_VERSION; +return tGMSH_MINOR_VERSION; YY_BREAK case 119: YY_RULE_SETUP #line 199 "Gmsh.l" -return tGmshExecutableName; +return tGMSH_PATCH_VERSION; YY_BREAK case 120: YY_RULE_SETUP -#line 201 "Gmsh.l" -return tHide; +#line 200 "Gmsh.l" +return tGmshExecutableName; YY_BREAK case 121: YY_RULE_SETUP #line 202 "Gmsh.l" -return tHole; +return tHide; YY_BREAK case 122: YY_RULE_SETUP #line 203 "Gmsh.l" -return tHomology; +return tHole; YY_BREAK case 123: YY_RULE_SETUP #line 204 "Gmsh.l" -return tHypot; +return tHomology; YY_BREAK case 124: YY_RULE_SETUP -#line 206 "Gmsh.l" -return tIn; +#line 205 "Gmsh.l" +return tHypot; YY_BREAK case 125: YY_RULE_SETUP #line 207 "Gmsh.l" -return tIf; +return tIn; YY_BREAK case 126: YY_RULE_SETUP #line 208 "Gmsh.l" -return tIntersect; +return tIf; YY_BREAK case 127: YY_RULE_SETUP #line 209 "Gmsh.l" -return tInterpolationScheme; +return tIntersect; YY_BREAK case 128: YY_RULE_SETUP -#line 211 "Gmsh.l" -return tNurbsKnots; +#line 210 "Gmsh.l" +return tInterpolationScheme; YY_BREAK case 129: YY_RULE_SETUP -#line 213 "Gmsh.l" -return tLength; +#line 212 "Gmsh.l" +return tNurbsKnots; YY_BREAK case 130: YY_RULE_SETUP #line 214 "Gmsh.l" -return tLine; +return tLength; YY_BREAK case 131: YY_RULE_SETUP #line 215 "Gmsh.l" -return tList; +return tLine; YY_BREAK case 132: YY_RULE_SETUP #line 216 "Gmsh.l" -return tListFromFile; +return tList; YY_BREAK case 133: YY_RULE_SETUP #line 217 "Gmsh.l" -return tLinSpace; +return tListFromFile; YY_BREAK case 134: YY_RULE_SETUP #line 218 "Gmsh.l" -return tLogSpace; +return tLinSpace; YY_BREAK case 135: YY_RULE_SETUP #line 219 "Gmsh.l" -return tLog; +return tLogSpace; YY_BREAK case 136: YY_RULE_SETUP #line 220 "Gmsh.l" -return tLog10; +return tLog; YY_BREAK case 137: YY_RULE_SETUP #line 221 "Gmsh.l" -return tLayers; +return tLog10; YY_BREAK case 138: YY_RULE_SETUP #line 222 "Gmsh.l" -return tLevelset; +return tLayers; YY_BREAK case 139: YY_RULE_SETUP -#line 224 "Gmsh.l" -return tMacro; +#line 223 "Gmsh.l" +return tLevelset; YY_BREAK case 140: YY_RULE_SETUP #line 225 "Gmsh.l" -return tMeshAlgorithm; +return tMacro; YY_BREAK case 141: YY_RULE_SETUP #line 226 "Gmsh.l" -return tModulo; +return tMeshAlgorithm; YY_BREAK case 142: YY_RULE_SETUP #line 227 "Gmsh.l" -return tMPI_Rank; +return tModulo; YY_BREAK case 143: YY_RULE_SETUP #line 228 "Gmsh.l" -return tMPI_Size; +return tMPI_Rank; YY_BREAK case 144: YY_RULE_SETUP #line 229 "Gmsh.l" -return tMemory; +return tMPI_Size; YY_BREAK case 145: YY_RULE_SETUP -#line 231 "Gmsh.l" -return tNameToString; +#line 230 "Gmsh.l" +return tMemory; YY_BREAK case 146: YY_RULE_SETUP @@ -2241,430 +2245,440 @@ return tNameToString; case 147: YY_RULE_SETUP #line 233 "Gmsh.l" -return tNewModel; +return tNameToString; YY_BREAK case 148: YY_RULE_SETUP #line 234 "Gmsh.l" -return tNurbs; +return tNewModel; YY_BREAK case 149: YY_RULE_SETUP -#line 236 "Gmsh.l" -return tOnelabAction; +#line 235 "Gmsh.l" +return tNurbs; YY_BREAK case 150: YY_RULE_SETUP #line 237 "Gmsh.l" -return tOnelabRun; +return tOnelabAction; YY_BREAK case 151: YY_RULE_SETUP #line 238 "Gmsh.l" -return tNurbsOrder; +return tOnelabRun; YY_BREAK case 152: YY_RULE_SETUP -#line 240 "Gmsh.l" -return tPeriodic; +#line 239 "Gmsh.l" +return tNurbsOrder; YY_BREAK case 153: YY_RULE_SETUP #line 241 "Gmsh.l" -return tPhysical; +return tPeriodic; YY_BREAK case 154: YY_RULE_SETUP #line 242 "Gmsh.l" -return tPi; +return tPhysical; YY_BREAK case 155: YY_RULE_SETUP #line 243 "Gmsh.l" -return tPlane; +return tPi; YY_BREAK case 156: YY_RULE_SETUP #line 244 "Gmsh.l" -return tPoint; +return tPlane; YY_BREAK case 157: YY_RULE_SETUP #line 245 "Gmsh.l" -return tParametric; +return tPoint; YY_BREAK case 158: YY_RULE_SETUP #line 246 "Gmsh.l" -return tPolarSphere; +return tParametric; YY_BREAK case 159: YY_RULE_SETUP #line 247 "Gmsh.l" -return tPrintf; +return tPolarSphere; YY_BREAK case 160: YY_RULE_SETUP #line 248 "Gmsh.l" -return tPlugin; +return tPrintf; YY_BREAK case 161: YY_RULE_SETUP -#line 250 "Gmsh.l" -return tQuadric; +#line 249 "Gmsh.l" +return tPlugin; YY_BREAK case 162: YY_RULE_SETUP #line 251 "Gmsh.l" -return tQuadTriAddVerts; +return tQuadric; YY_BREAK case 163: YY_RULE_SETUP #line 252 "Gmsh.l" -return tQuadTriNoNewVerts; +return tQuadTriAddVerts; YY_BREAK case 164: YY_RULE_SETUP #line 253 "Gmsh.l" -return tQuadTriDbl; +return tQuadTriNoNewVerts; YY_BREAK case 165: YY_RULE_SETUP #line 254 "Gmsh.l" -return tQuadTriSngl; +return tQuadTriDbl; YY_BREAK case 166: YY_RULE_SETUP -#line 256 "Gmsh.l" -return tRecombine; +#line 255 "Gmsh.l" +return tQuadTriSngl; YY_BREAK case 167: YY_RULE_SETUP #line 257 "Gmsh.l" -return tRecombLaterals; +return tRectangle; YY_BREAK case 168: YY_RULE_SETUP #line 258 "Gmsh.l" -return tRecursive; +return tRecombine; YY_BREAK case 169: YY_RULE_SETUP #line 259 "Gmsh.l" -return tRotate; +return tRecombLaterals; YY_BREAK case 170: YY_RULE_SETUP #line 260 "Gmsh.l" -return tRound; +return tRecursive; YY_BREAK case 171: YY_RULE_SETUP #line 261 "Gmsh.l" -return tRuled; +return tRotate; YY_BREAK case 172: YY_RULE_SETUP #line 262 "Gmsh.l" -return tRand; +return tRound; YY_BREAK case 173: YY_RULE_SETUP #line 263 "Gmsh.l" -return tRefineMesh; +return tRuled; YY_BREAK case 174: YY_RULE_SETUP #line 264 "Gmsh.l" -return tRelocateMesh; +return tRand; YY_BREAK case 175: YY_RULE_SETUP #line 265 "Gmsh.l" -return tReturn; +return tRefineMesh; YY_BREAK case 176: YY_RULE_SETUP #line 266 "Gmsh.l" -return tReverse; +return tRelocateMesh; YY_BREAK case 177: YY_RULE_SETUP -#line 268 "Gmsh.l" -return tScaleLast; +#line 267 "Gmsh.l" +return tReturn; YY_BREAK case 178: YY_RULE_SETUP -#line 269 "Gmsh.l" -return tSmoother; +#line 268 "Gmsh.l" +return tReverse; YY_BREAK case 179: YY_RULE_SETUP #line 270 "Gmsh.l" -return tShapeFromFile; +return tScaleLast; YY_BREAK case 180: YY_RULE_SETUP #line 271 "Gmsh.l" -return tSetFactory; +return tSmoother; YY_BREAK case 181: YY_RULE_SETUP #line 272 "Gmsh.l" -return tSetNumber; +return tShapeFromFile; YY_BREAK case 182: YY_RULE_SETUP #line 273 "Gmsh.l" -return tSetString; +return tSetFactory; YY_BREAK case 183: YY_RULE_SETUP #line 274 "Gmsh.l" -return tSetPartition; +return tSetNumber; YY_BREAK case 184: YY_RULE_SETUP #line 275 "Gmsh.l" -return tSqrt; +return tSetString; YY_BREAK case 185: YY_RULE_SETUP #line 276 "Gmsh.l" -return tSin; +return tSetPartition; YY_BREAK case 186: YY_RULE_SETUP #line 277 "Gmsh.l" -return tSinh; +return tSqrt; YY_BREAK case 187: YY_RULE_SETUP #line 278 "Gmsh.l" -return tSphere; +return tSin; YY_BREAK case 188: YY_RULE_SETUP #line 279 "Gmsh.l" -return tSpline; +return tSinh; YY_BREAK case 189: YY_RULE_SETUP #line 280 "Gmsh.l" -return tSplit; +return tSphere; YY_BREAK case 190: YY_RULE_SETUP #line 281 "Gmsh.l" -return tSurface; +return tSpline; YY_BREAK case 191: YY_RULE_SETUP #line 282 "Gmsh.l" -return tStr; +return tSplit; YY_BREAK case 192: YY_RULE_SETUP #line 283 "Gmsh.l" -return tStringToName; +return tSurface; YY_BREAK case 193: YY_RULE_SETUP #line 284 "Gmsh.l" -return tStringToName; +return tStr; YY_BREAK case 194: YY_RULE_SETUP #line 285 "Gmsh.l" -return tSprintf; +return tStringToName; YY_BREAK case 195: YY_RULE_SETUP #line 286 "Gmsh.l" -return tStrCat; +return tStringToName; YY_BREAK case 196: YY_RULE_SETUP #line 287 "Gmsh.l" -return tStrReplace; +return tSprintf; YY_BREAK case 197: YY_RULE_SETUP #line 288 "Gmsh.l" -return tStrPrefix; +return tStrCat; YY_BREAK case 198: YY_RULE_SETUP #line 289 "Gmsh.l" -return tStrRelative; +return tStrReplace; YY_BREAK case 199: YY_RULE_SETUP #line 290 "Gmsh.l" -return tStrFind; +return tStrPrefix; YY_BREAK case 200: YY_RULE_SETUP #line 291 "Gmsh.l" -return tStrCmp; +return tStrRelative; YY_BREAK case 201: YY_RULE_SETUP #line 292 "Gmsh.l" -return tStrChoice; +return tStrFind; YY_BREAK case 202: YY_RULE_SETUP #line 293 "Gmsh.l" -return tStrLen; +return tStrCmp; YY_BREAK case 203: YY_RULE_SETUP #line 294 "Gmsh.l" -return tStrSub; +return tStrChoice; YY_BREAK case 204: YY_RULE_SETUP #line 295 "Gmsh.l" -return tShow; +return tStrLen; YY_BREAK case 205: YY_RULE_SETUP #line 296 "Gmsh.l" -return tSymmetry; +return tStrSub; YY_BREAK case 206: YY_RULE_SETUP #line 297 "Gmsh.l" -return tSlide; +return tShow; YY_BREAK case 207: YY_RULE_SETUP #line 298 "Gmsh.l" -return tSyncModel; +return tSymmetry; YY_BREAK case 208: YY_RULE_SETUP -#line 300 "Gmsh.l" -return tText2D; +#line 299 "Gmsh.l" +return tSlide; YY_BREAK case 209: YY_RULE_SETUP -#line 301 "Gmsh.l" -return tText3D; +#line 300 "Gmsh.l" +return tSyncModel; YY_BREAK case 210: YY_RULE_SETUP #line 302 "Gmsh.l" -return tTestLevel; +return tText2D; YY_BREAK case 211: YY_RULE_SETUP #line 303 "Gmsh.l" -return tTextAttributes; +return tText3D; YY_BREAK case 212: YY_RULE_SETUP #line 304 "Gmsh.l" -return tThruSections; +return tTestLevel; YY_BREAK case 213: YY_RULE_SETUP #line 305 "Gmsh.l" -return tTime; +return tTextAttributes; YY_BREAK case 214: YY_RULE_SETUP #line 306 "Gmsh.l" -return tTransfinite; +return tThruSections; YY_BREAK case 215: YY_RULE_SETUP #line 307 "Gmsh.l" -return tTransfQuadTri; +return tTime; YY_BREAK case 216: YY_RULE_SETUP #line 308 "Gmsh.l" -return tTranslate; +return tTransfinite; YY_BREAK case 217: YY_RULE_SETUP #line 309 "Gmsh.l" -return tTanh; +return tTransfQuadTri; YY_BREAK case 218: YY_RULE_SETUP #line 310 "Gmsh.l" -return tTan; +return tTranslate; YY_BREAK case 219: YY_RULE_SETUP #line 311 "Gmsh.l" -return tToday; +return tTanh; YY_BREAK case 220: YY_RULE_SETUP #line 312 "Gmsh.l" -return tTotalMemory; +return tTan; YY_BREAK case 221: YY_RULE_SETUP -#line 314 "Gmsh.l" -return tUndefineConstant; +#line 313 "Gmsh.l" +return tToday; YY_BREAK case 222: YY_RULE_SETUP -#line 315 "Gmsh.l" -return tUpperCase; +#line 314 "Gmsh.l" +return tTotalMemory; YY_BREAK case 223: YY_RULE_SETUP #line 316 "Gmsh.l" -return tLowerCase; +return tUndefineConstant; YY_BREAK case 224: YY_RULE_SETUP #line 317 "Gmsh.l" -return tLowerCaseIn; +return tUpperCase; YY_BREAK case 225: YY_RULE_SETUP #line 318 "Gmsh.l" -return tUsing; +return tLowerCase; YY_BREAK case 226: YY_RULE_SETUP -#line 320 "Gmsh.l" -return tVolume; +#line 319 "Gmsh.l" +return tLowerCaseIn; YY_BREAK case 227: -#line 323 "Gmsh.l" +YY_RULE_SETUP +#line 320 "Gmsh.l" +return tUsing; + YY_BREAK case 228: -#line 324 "Gmsh.l" +YY_RULE_SETUP +#line 322 "Gmsh.l" +return tVolume; + YY_BREAK case 229: #line 325 "Gmsh.l" case 230: +#line 326 "Gmsh.l" +case 231: +#line 327 "Gmsh.l" +case 232: YY_RULE_SETUP -#line 325 "Gmsh.l" +#line 327 "Gmsh.l" { gmsh_yylval.d = atof((char *)gmsh_yytext); return tDOUBLE; } YY_BREAK -case 231: +case 233: YY_RULE_SETUP -#line 327 "Gmsh.l" +#line 329 "Gmsh.l" { gmsh_yylval.c = strsave((char*)gmsh_yytext); return tSTRING; } YY_BREAK -case 232: +case 234: YY_RULE_SETUP -#line 329 "Gmsh.l" +#line 331 "Gmsh.l" return gmsh_yytext[0]; YY_BREAK -case 233: +case 235: YY_RULE_SETUP -#line 331 "Gmsh.l" +#line 333 "Gmsh.l" ECHO; YY_BREAK -#line 2668 "Gmsh.yy.cpp" +#line 2682 "Gmsh.yy.cpp" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2956,7 +2970,7 @@ static int yy_get_next_buffer (void) 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 >= 1203 ) + if ( yy_current_state >= 1211 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2984,11 +2998,11 @@ static int yy_get_next_buffer (void) 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 >= 1203 ) + if ( yy_current_state >= 1211 ) 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 == 1202); + yy_is_jam = (yy_current_state == 1210); return yy_is_jam ? 0 : yy_current_state; } @@ -3661,7 +3675,7 @@ void gmsh_yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 331 "Gmsh.l" +#line 333 "Gmsh.l" diff --git a/benchmarks/boolean/simple.geo b/benchmarks/boolean/simple.geo new file mode 100644 index 0000000000000000000000000000000000000000..27e757daf5ec7822da9302e2026102bb4e3203ea --- /dev/null +++ b/benchmarks/boolean/simple.geo @@ -0,0 +1,16 @@ +SetFactory("OpenCASCADE"); + +Mesh.Algorithm = 6; +Mesh.CharacteristicLengthMin = 0.1; +Mesh.CharacteristicLengthMax = 0.1; + +Point(1) = {0,0,0}; +Point(2) = {1,0,0}; +Point(3) = {1,1,0}; +Point(4) = {0,1,0}; +Line(1) = {1,2}; +Line(2) = {2,3}; +Line(3) = {3,4}; +Line(4) = {4,1}; +Line Loop(1) = {1,2,3,4}; +Plane Surface(1) = {1}; diff --git a/benchmarks/boolean/simple2.geo b/benchmarks/boolean/simple2.geo new file mode 100644 index 0000000000000000000000000000000000000000..41774e4cd1574c44e55920cc3924ceea866b1411 --- /dev/null +++ b/benchmarks/boolean/simple2.geo @@ -0,0 +1,27 @@ +SetFactory("OpenCASCADE"); + +Mesh.Algorithm = 6; +Mesh.CharacteristicLengthMin = 0.1; +Mesh.CharacteristicLengthMax = 0.1; + +Point(1) = {0,0,0}; +Point(2) = {1,0,0}; +Point(3) = {1,1,0}; +Point(4) = {0,1,0}; +Line(1) = {1,2}; +Line(2) = {2,3}; +Line(3) = {3,4}; +Line(4) = {4,1}; +Line Loop(1) = {1,2,3,4}; + +Point(5) = {0.2,0.2,0}; +Point(6) = {0.5,0.2,0}; +Point(7) = {0.5,0.5,0}; +Point(8) = {0.2,0.5,0}; +Line(5) = {5,6}; +Line(6) = {6,7}; +Line(7) = {7,8}; +Line(8) = {8,5}; +Line Loop(2) = {5,6,7,8}; + +Plane Surface(1) = {1,2}; diff --git a/benchmarks/boolean/simple3.geo b/benchmarks/boolean/simple3.geo new file mode 100644 index 0000000000000000000000000000000000000000..a8307e818c4d1387c470668bede8435805934593 --- /dev/null +++ b/benchmarks/boolean/simple3.geo @@ -0,0 +1,30 @@ +SetFactory("OpenCASCADE"); + +Mesh.Algorithm = 6; +Mesh.CharacteristicLengthMin = 0.1; +Mesh.CharacteristicLengthMax = 0.1; + +Point(1) = {0,0,0}; +Point(2) = {1,0,0}; +Point(3) = {1,1,0}; +Point(4) = {0,1,0}; +Line(1) = {1,2}; +Line(2) = {2,3}; +Line(3) = {3,4}; +Line(4) = {4,1}; +Line Loop(1) = {1,2,3,4}; +Plane Surface(1) = {1}; + +Point(5) = {0.2,0.2,0}; +Point(6) = {0.5,0.2,0}; +Point(7) = {0.5,0.5,0}; +Point(8) = {0.2,0.5,0}; +Line(5) = {5,6}; +Line(6) = {6,7}; +Line(7) = {7,8}; +Line(8) = {8,5}; +Line Loop(2) = {5,6,7,8}; +Plane Surface(2) = {2}; + +Disk(3) = {0.6, 0.6, 0.5, 0.3}; +BooleanFragments{ Surface{1}; Delete; }{ Surface{2,3}; Delete; } diff --git a/benchmarks/boolean/simple4.geo b/benchmarks/boolean/simple4.geo new file mode 100644 index 0000000000000000000000000000000000000000..89cff3ef7a0e99de9b90c73d4e87b52a808c6f59 --- /dev/null +++ b/benchmarks/boolean/simple4.geo @@ -0,0 +1,37 @@ +SetFactory("OpenCASCADE"); + +Mesh.Algorithm = 6; +Mesh.CharacteristicLengthMin = 0.1; +Mesh.CharacteristicLengthMax = 0.1; + +Point(1) = {0,0,0}; +Point(2) = {1,0,0}; +Point(3) = {1,1,0}; +Point(4) = {0,1,0}; +Point(5) = {0.5,0.5,1}; +Line(1) = {1,2}; +Line(2) = {2,3}; +Line(3) = {3,4}; +Line(4) = {4,1}; +Line(5) = {1,5}; +Line(6) = {2,5}; +Line(7) = {3,5}; +Line(8) = {4,5}; +Line Loop(1) = {1,2,3,4}; +Line Loop(2) = {1,5,6}; +Line Loop(3) = {2,6,7}; +Line Loop(4) = {3,7,8}; +Line Loop(5) = {4,5,8}; +Plane Surface(1) = {1}; +Plane Surface(2) = {2}; +Plane Surface(3) = {3}; +Plane Surface(4) = {4}; +Plane Surface(5) = {5}; +Surface Loop(1) = {1,2,3,4,5}; +Volume(1) = {1}; + +Cylinder(2) = {0.5,0.5,-0.5, 0.5,0.5,1.5, 0.2}; +BooleanFragments{ Volume{1}; Delete; }{ Volume{2}; Delete; } + +// FIXME: need to delete surfaces 1:4, as they were bound to tags before the +// boolean operation