diff --git a/CMakeLists.txt b/CMakeLists.txt index 3d4a7f2a6478ad0dc980e3b4574eabc358e3c3b3..c5460e4b64c8b48fab4411759514a0e08c3a84cd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -81,7 +81,6 @@ opt(POPPLER "Enable Poppler for displaying PDF documents (experimental)" OFF) opt(QT "Enable dummy QT graphical interface proof-of-concept (experimental)" OFF) opt(REVOROPT "Enable Revoropt (used for CVT remeshing)" OFF) opt(SALOME "Enable Salome routines for CAD healing" ${DEFAULT}) -opt(SGEOM "Enable SGEOM interface to OCC (experimental)" OFF) opt(SLEPC "Enable SLEPc eigensolvers (required for conformal compounds)" ${DEFAULT}) opt(SOLVER "Enable built-in finite element solvers (required for compounds)" ${DEFAULT}) opt(TAUCS "Enable Taucs linear solver" ${DEFAULT}) @@ -1112,14 +1111,6 @@ if(ENABLE_OCC) # FoundationClasses # TKAdvTools -- not necessary? (and removed from OCC 6.8) TKMath TKernel) - if(ENABLE_SGEOM) - set(OCC_LIBS_REQUIRED ${OCC_LIBS_REQUIRED} - # For SGEOM - TKBin TKBinL TKBinTObj TKBinXCAF TKCAF TKCDF TKLCAF TKPLCAF TKMeshVS - TKNIS TKOpenGl TKPCAF TKPShape TKSTL TKService TKShapeSchema TKStdSchema - TKTObj TKV2d TKV3d TKVRML TKVoxel TKXCAF TKXCAFSchema TKXDEIGES TKXDESTEP - TKXMesh TKXSBase TKXml TKXmkL TKXmlTObj) - endif(ENABLE_SGEOM) list(LENGTH OCC_LIBS_REQUIRED NUM_OCC_LIBS_REQUIRED) set(OCC_LIBS) foreach(OCC ${OCC_LIBS_REQUIRED}) @@ -1156,19 +1147,12 @@ if(ENABLE_OCC) endif(NOT OCC_CONFIG_H) endif(OCC_INC) endif(NUM_OCC_LIBS EQUAL NUM_OCC_LIBS_REQUIRED) - if(HAVE_OCC) - if(ENABLE_SGEOM) - add_subdirectory(contrib/SGEOM) - include_directories(contrib/SGEOM) - add_definitions(-DSGEOMGEOMETRY) - set_config_option(HAVE_SGEOM "SGEOM") - elseif(ENABLE_SALOME) + if(HAVE_OCC AND ENABLE_SALOME) add_subdirectory(contrib/Salome) include_directories(contrib/Salome) add_definitions(-DOCCGEOMETRY) set_config_option(HAVE_SALOME "Salome") - endif(ENABLE_SGEOM) - endif(HAVE_OCC) + endif(HAVE_OCC AND ENABLE_SALOME) endif(ENABLE_OCC) if(ENABLE_ACIS) diff --git a/Geo/CMakeLists.txt b/Geo/CMakeLists.txt index d043c8275ceab83b88eac263516ea1b67df7119a..96b23701d5025b28d8c0359f7520b103da3e783f 100644 --- a/Geo/CMakeLists.txt +++ b/Geo/CMakeLists.txt @@ -30,7 +30,7 @@ set(SRC GModelIO_CGNS.cpp GModelIO_MED.cpp GModelIO_MESH.cpp GModelIO_STL.cpp GModelIO_PLY.cpp GModelIO_VRML.cpp GModelIO_UNV.cpp GModelIO_BDF.cpp GModelIO_IR3.cpp GModelIO_DIFF.cpp GModelIO_GEOM.cpp GModelIO_INP.cpp - GModelIO_MAIL.cpp GModelIO_P3D.cpp GModelIO_SGEOM.cpp GModelIO_CELUM.cpp + GModelIO_MAIL.cpp GModelIO_P3D.cpp GModelIO_CELUM.cpp GModelIO_ACTRAN.cpp GModelIO_SU2.cpp ExtrudeParams.cpp Geo.cpp diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp index 6886be01ea2d37876daee96b80b81fa1c6e61d17..2b9e9cec1a3fe3d4327e82a627de5df3905b30a4 100644 --- a/Geo/GModel.cpp +++ b/Geo/GModel.cpp @@ -66,8 +66,8 @@ GModel::GModel(std::string name) : _maxVertexNum(0), _maxElementNum(0), _checkPointedMaxVertexNum(0), _checkPointedMaxElementNum(0), _name(name), _visible(1), _octree(0), _geo_internals(0), - _occ_internals(0), _sgeom_internals(0), _acis_internals(0), - _fm_internals(0), _factory(0), _fields(0), _currentMeshEntity(0), + _occ_internals(0), _acis_internals(0), _fm_internals(0), + _factory(0), _fields(0), _currentMeshEntity(0), normals(0) { partitionSize[0] = 0; partitionSize[1] = 0; @@ -84,9 +84,7 @@ GModel::GModel(std::string name) _createOCCInternals(); -#if defined(HAVE_OCC) && defined(HAVE_SGEOM) - setFactory("SGEOM"); -#elif defined(HAVE_OCC) +#if defined(HAVE_OCC) setFactory("OpenCASCADE"); #else setFactory("Gmsh"); @@ -160,15 +158,7 @@ int GModel::setCurrent(GModel *m) void GModel::setFactory(std::string name) { if(_factory) delete _factory; - if(name == "SGEOM"){ -#if defined(HAVE_OCC) && defined(HAVE_SGEOM) - _factory = new SGEOMFactory(); -#else - Msg::Error("Missing OpenCASCADE or SGEOM support: using Gmsh GEO factory instead"); - _factory = new GeoFactory(); -#endif - } - else if(name == "OpenCASCADE"){ + if(name == "OpenCASCADE"){ #if defined(HAVE_OCC) _factory = new OCCFactory(); #else diff --git a/Geo/GModel.h b/Geo/GModel.h index b6632f36953aa089334ac91fe6d47d0647aba631..593d1a28b4cbd140ecd390fc1e41ebfb1e14a6f1 100644 --- a/Geo/GModel.h +++ b/Geo/GModel.h @@ -23,7 +23,6 @@ template <class scalar> class simpleFunction; class FM_Internals; class GEO_Internals; class OCC_Internals; -class SGEOM_Internals; class ACIS_Internals; class smooth_normals; class FieldManager; @@ -39,7 +38,6 @@ class GModel { private: friend class OCCFactory; - friend class SGEOMFactory; std::multimap<std::pair<std::vector<int>, std::vector<int> >, std::pair<std::string, std::vector<int> > > _homologyRequests; std::set<GRegion*, GEntityLessThan> _chainRegions; @@ -96,10 +94,6 @@ class GModel void _createOCCInternals(); void _deleteOCCInternals(); - // SGEOM model internal data - SGEOM_Internals *_sgeom_internals; - void _deleteSGEOMInternals(); - // ACIS model internal data ACIS_Internals *_acis_internals; void _deleteACISInternals(); @@ -216,7 +210,6 @@ class GModel // access internal CAD representations GEO_Internals *getGEOInternals(){ return _geo_internals; } OCC_Internals *getOCCInternals(){ return _occ_internals; } - SGEOM_Internals *getSGEOMInternals(){ return _sgeom_internals; } FM_Internals *getFMInternals() { return _fm_internals; } ACIS_Internals *getACISInternals(){ return _acis_internals; } diff --git a/Geo/GModelFactory.cpp b/Geo/GModelFactory.cpp index 0ac1b4b7083a261537dd17cae52c3cb61ad4282c..e010fe07f28f562ec9bfb37b363a5fb025837798 100644 --- a/Geo/GModelFactory.cpp +++ b/Geo/GModelFactory.cpp @@ -1516,57 +1516,4 @@ void OCCFactory::healGeometry(GModel *gm, double tolerance) gm->_occ_internals->buildGModel(gm); } -//Prepare SGEOM integration -#if defined(HAVE_SGEOM) && defined(HAVE_OCC) - -#include "SGEOMIncludes.h" - -GVertex* SGEOMFactory::addVertex(GModel *gm,double x, double y, double z, double lc) -{ - //if (!gm->_sgeom_internals) - // gm->_sgeom_internals = new SGEOM_Internals; - - //gp_Pnt aPnt; - //aPnt = gp_Pnt(x, y, z); - //BRepBuilderAPI_MakeVertex mkVertex(aPnt); - //TopoDS_Vertex occv = mkVertex.Vertex(); - - //return gm->_occ_internals->addVertexToModel(gm, occv); - - Msg::Error("addVertex not implemented yet for SGEOMFactory"); - return 0; -} - -GEdge* SGEOMFactory::addLine(GModel *gm,GVertex *v1, GVertex *v2) -{ - Msg::Error("addLine not implemented yet for SGEOMFactory"); - return 0; -} - -GFace* SGEOMFactory::addPlanarFace(GModel *gm, std::vector<std::vector<GEdge *> > edges) -{ - Msg::Error("addPlanarFace not implemented yet for SGEOMFactory"); - return 0; -} - -GFace* SGEOMFactory::addPlanarFace(GModel *gm, const std::vector<std::vector<GEdgeSigned> > &edges) -{ - Msg::Error("addPlanarFace with oriented edges not implemented yet for SGEOMFactory"); - return 0; -} - -GRegion* SGEOMFactory::addVolume(GModel *gm, std::vector<std::vector<GFace *> > faces) -{ - Msg::Error("addVolume not implemented yet for SGEOMFactory"); - return 0; -} - -void SGEOMFactory::healGeometry(GModel *gm, double tolerance) -{ - Msg::Error("healGeometry not implemented yet for SGEOMFactory"); - return 0; -} - -#endif - #endif diff --git a/Geo/GModelFactory.h b/Geo/GModelFactory.h index a0201c45efd6f8560788375553dcf9ccd9855fc7..e33af488d4ad8b9f5fda184306892bd8a03d961c 100644 --- a/Geo/GModelFactory.h +++ b/Geo/GModelFactory.h @@ -299,20 +299,4 @@ class OCCFactory : public GModelFactory { #endif -#if defined(HAVE_SGEOM) && defined(HAVE_OCC) - -class SGEOMFactory : public GModelFactory { - public: - SGEOMFactory(){} - GVertex *addVertex(GModel *gm,double x, double y, double z, double lc); - GEdge *addLine(GModel *gm,GVertex *v1, GVertex *v2); - GFace *addPlanarFace(GModel *gm, std::vector<std::vector<GEdge *> > edges); - GFace *addPlanarFace(GModel *gm, const std::vector<std::vector<GEdgeSigned> > &edges); - GRegion *addVolume(GModel *gm, std::vector<std::vector<GFace *> > faces); - void healGeometry(GModel *gm, double tolerance = -1.); -}; - -#endif - - #endif diff --git a/Geo/GModelIO_OCC.cpp b/Geo/GModelIO_OCC.cpp index c90c4f2c58b46794b18847dfffc3baff83e2ac22..f85fd598c17bfed3c309e7f016f79c86bfe9b7c2 100644 --- a/Geo/GModelIO_OCC.cpp +++ b/Geo/GModelIO_OCC.cpp @@ -34,6 +34,275 @@ #include <Geom_Circle.hxx> #include <Geom_TrimmedCurve.hxx> +int OCC_Internals::_getMaxTag(int dim) const +{ + TopTools_DataMapIteratorOfDataMapOfIntegerShape exp; + int ret = 0; + 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; + } + for(; exp.More(); exp.Next()) + ret = std::max(ret, exp.Key()); + return ret; +} + +void OCC_Internals::addVertex(int tag, double x, double y, double z) +{ + if(tag > 0 && _tagVertex.IsBound(tag)){ + Msg::Error("OCC vertex with tag %d already exists", tag); + return; + } + TopoDS_Vertex result; + try{ + gp_Pnt aPnt; + aPnt = gp_Pnt(x, y, z); + BRepBuilderAPI_MakeVertex mkVertex(aPnt); + result = mkVertex.Vertex(); + } + catch(Standard_Failure &err){ + Msg::Error("OCC %s", err.GetMessageString()); + return; + } + if(tag <= 0) tag = _getMaxTag(0) + 1; + bind(result, tag); +} + +void OCC_Internals::addCircleArc(int tag, int startTag, int centerTag, int endTag) +{ + if(tag > 0 && _tagEdge.IsBound(tag)){ + Msg::Error("OCC edge with tag %d already exists", tag); + return; + } + if(!_tagVertex.IsBound(startTag)){ + Msg::Error("Unknown OCC vertex with tag %d", startTag); + return; + } + if(!_tagVertex.IsBound(centerTag)){ + Msg::Error("Unknown OCC vertex with tag %d", centerTag); + return; + } + if(!_tagVertex.IsBound(endTag)){ + Msg::Error("Unknown OCC vertex with tag %d", endTag); + return; + } + + TopoDS_Edge result; + try{ + TopoDS_Vertex start = TopoDS::Vertex(_tagVertex.Find(startTag)); + TopoDS_Vertex center = TopoDS::Vertex(_tagVertex.Find(centerTag)); + TopoDS_Vertex end = TopoDS::Vertex(_tagVertex.Find(endTag)); + gp_Pnt aP1 = BRep_Tool::Pnt(start); + gp_Pnt aP2 = BRep_Tool::Pnt(center); + gp_Pnt aP3 = BRep_Tool::Pnt(end); + Standard_Real Radius = aP1.Distance(aP2); + gce_MakeCirc MC(aP2, gce_MakePln(aP1, aP2, aP3).Value(), Radius); + const gp_Circ &Circ = MC.Value(); + Standard_Real Alpha1 = ElCLib::Parameter(Circ, aP1); + Standard_Real Alpha2 = ElCLib::Parameter(Circ, aP3); + Handle(Geom_Circle) C = new Geom_Circle(Circ); + Handle(Geom_TrimmedCurve) arc = new Geom_TrimmedCurve(C, Alpha1, Alpha2, false); + result = BRepBuilderAPI_MakeEdge(arc, start, end).Edge(); + } + catch(Standard_Failure &err){ + Msg::Error("OCC %s", err.GetMessageString()); + return; + } + if(tag <= 0) tag = _getMaxTag(1) + 1; + bind(result, tag); +} + +void OCC_Internals::addSphere(int tag, double xc, double yc, double zc, double radius) +{ + if(tag > 0 && _tagSolid.IsBound(tag)){ + Msg::Error("OCC region with tag %d already exists", tag); + return; + } + + TopoDS_Solid result; + try{ + gp_Pnt aP(xc, yc, zc); + result = TopoDS::Solid(BRepPrimAPI_MakeSphere(aP, radius).Shape()); + } + catch(Standard_Failure &err){ + Msg::Error("OCC %s", err.GetMessageString()); + return; + } + if(tag <= 0) tag = _getMaxTag(3) + 1; + bind(result, tag); +} + +void OCC_Internals::addBlock(int tag, double x1, double y1, double z1, + double x2, double y2, double z2) +{ + if(tag > 0 && _tagSolid.IsBound(tag)){ + Msg::Error("OCC region with tag %d already exists", tag); + return; + } + + TopoDS_Solid result; + try{ + gp_Pnt P1(x1, y1, z1); + gp_Pnt P2(x2, y2, z2); + result = TopoDS::Solid(BRepPrimAPI_MakeBox(P1, P2).Shape()); + //BRepPrimAPI_MakeBox(P1, dx, dy, dz); + } + catch(Standard_Failure &err){ + Msg::Error("OCC %s", err.GetMessageString()); + return; + } + if(tag <= 0) tag = _getMaxTag(3) + 1; + bind(result, tag); +} + +void OCC_Internals::addCylinder(int tag, double x1, double y1, double z1, + double x2, double y2, double z2, double r) +{ + if(tag > 0 && _tagSolid.IsBound(tag)){ + Msg::Error("OCC region with tag %d already exists", tag); + return; + } + + const double H = sqrt((x2 - x1) * (x2 - x1) + + (y2 - y1) * (y2 - y1) + + (z2 - z1) * (z2 - z1)); + TopoDS_Solid result; + try{ + gp_Pnt aP(x1, y1, z1); + gp_Vec aV((x2 - x1) / H, (y2 - y1) / H, (z2 - z1) / H); + gp_Ax2 anAxes(aP, aV); + result = TopoDS::Solid(BRepPrimAPI_MakeCylinder(anAxes, r, H).Shape()); + } + catch(Standard_Failure &err){ + Msg::Error("OCC %s", err.GetMessageString()); + return; + } + if(tag <= 0) tag = _getMaxTag(3) + 1; + bind(result, tag); +} + +void OCC_Internals::addThruSections(int tag, std::vector<std::vector<int> > edgeTags) +{ + if(tag > 0 && _tagSolid.IsBound(tag)){ + Msg::Error("OCC region with tag %d already exists", tag); + return; + } + + TopoDS_Solid result; + try{ + BRepOffsetAPI_ThruSections aGenerator(Standard_True); // create solid + for (unsigned i = 0; i < edgeTags.size(); i++) { + BRepBuilderAPI_MakeWire wire_maker; + for (unsigned j = 0; j < edgeTags[i].size(); j++) { + if(!_tagEdge.IsBound(edgeTags[i][j])){ + Msg::Error("Unknown OCC edge with tag %d", edgeTags[i][j]); + return; + } + TopoDS_Edge edge = TopoDS::Edge(_tagEdge.Find(edgeTags[i][j])); + wire_maker.Add(edge); + } + aGenerator.AddWire(wire_maker.Wire()); + } + aGenerator.CheckCompatibility(Standard_False); + aGenerator.Build(); + result = TopoDS::Solid(aGenerator.Shape()); + } + catch(Standard_Failure &err){ + Msg::Error("OCC %s", err.GetMessageString()); + return; + } + if(tag <= 0) tag = _getMaxTag(3) + 1; + bind(result, tag); +} + +std::vector<int> OCC_Internals::applyBooleanOperator(int tag, + std::vector<int> shapeTags[4], + std::vector<int> toolTags[4], + BooleanOperator op, + bool removeShape, bool removeTool) +{ + std::vector<int> out; + + if(tag > 0 && _tagSolid.IsBound(tag)){ + Msg::Error("OCC region with tag %d already exists", tag); + return out; + } + + if(shapeTags[3].size() == 1 && toolTags[3].size() == 1){ + TopoDS_Shape result; + if(!_tagSolid.IsBound(shapeTags[3][0])){ + Msg::Error("Unknown OCC region with tag %d", shapeTags[3][0]); + return out; + } + if(!_tagSolid.IsBound(toolTags[3][0])){ + Msg::Error("Unknown OCC region with tag %d", toolTags[3][0]); + return out; + } + try{ + TopoDS_Solid shape = TopoDS::Solid(_tagSolid.Find(shapeTags[3][0])); + TopoDS_Solid tool = TopoDS::Solid(_tagSolid.Find(toolTags[3][0])); + switch(op){ + case OCC_Internals::Fuse : + { + BRepAlgoAPI_Fuse BO(shape, tool); + if(!BO.IsDone()) { + Msg::Error("Fuse operation cannot be performed"); + } + result = BO.Shape(); + } + break; + case OCC_Internals::Intersection : + { + BRepAlgoAPI_Common BO(shape, tool); + if(!BO.IsDone()) { + Msg::Error("Intersection operation cannot be performed"); + + } + result = BO.Shape(); + } + break; + case OCC_Internals::Cut : + default: + { + BRepAlgoAPI_Cut BO(shape, tool); + if(!BO.IsDone()) { + Msg::Error("Cut operation cannot be performed"); + } + result = BO.Shape(); + } + break; + } + if(removeShape) unbind(shape, shapeTags[3][0]); + if(removeTool) unbind(tool, toolTags[3][0]); + } + catch(Standard_Failure &err){ + Msg::Error("OCC %s", err.GetMessageString()); + return out; + } + 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); + out.push_back(t); + } + else if(first){ + bind(TopoDS::Solid(exp0.Current()), tag); + out.push_back(tag); + } + else + Msg::Error("Cannot bind multiple regions to single tag %d", tag); + } + } + else{ + Msg::Error("General boolean operation not implemented yet"); + } + return out; +} + void OCC_Internals::_addShapeToMaps(TopoDS_Shape shape) { // Solids @@ -185,191 +454,132 @@ void OCC_Internals::_addShapeToMaps(TopoDS_Shape shape) } } -void OCC_Internals::addVertex(int tag, double x, double y, double z) +void OCC_Internals::importOCCInternals(GModel *model) { - if(_tagVertex.IsBound(tag)){ - Msg::Error("OCC vertex with tag %d already exists", tag); - return; - } - TopoDS_Vertex result; - try{ - gp_Pnt aPnt; - aPnt = gp_Pnt(x, y, z); - BRepBuilderAPI_MakeVertex mkVertex(aPnt); - result = mkVertex.Vertex(); - } - catch(Standard_Failure &err){ - Msg::Error("OCC %s", err.GetMessageString()); - return; - } - bind(result, tag); -} + int vTagMax = std::max(model->getMaxElementaryNumber(0), _getMaxTag(0)); + int eTagMax = std::max(model->getMaxElementaryNumber(1), _getMaxTag(1)); + int fTagMax = std::max(model->getMaxElementaryNumber(2), _getMaxTag(2)); + int rTagMax = std::max(model->getMaxElementaryNumber(3), _getMaxTag(3)); -void OCC_Internals::addCircleArc(int tag, int startTag, int centerTag, int endTag) -{ - if(_tagEdge.IsBound(tag)){ - Msg::Error("OCC edge with tag %d already exists", tag); - return; - } - if(!_tagVertex.IsBound(startTag)){ - Msg::Error("Unknown OCC vertex with tag %d", startTag); - return; - } - if(!_tagVertex.IsBound(centerTag)){ - Msg::Error("Unknown OCC vertex with tag %d", centerTag); - return; - } - if(!_tagVertex.IsBound(endTag)){ - Msg::Error("Unknown OCC vertex with tag %d", endTag); - return; - } + _somap.Clear(); + _shmap.Clear(); + _fmap.Clear(); + _wmap.Clear(); + _emap.Clear(); + _vmap.Clear(); - TopoDS_Edge result; - try{ - TopoDS_Vertex start = TopoDS::Vertex(_tagVertex.Find(startTag)); - TopoDS_Vertex center = TopoDS::Vertex(_tagVertex.Find(centerTag)); - TopoDS_Vertex end = TopoDS::Vertex(_tagVertex.Find(endTag)); - gp_Pnt aP1 = BRep_Tool::Pnt(start); - gp_Pnt aP2 = BRep_Tool::Pnt(center); - gp_Pnt aP3 = BRep_Tool::Pnt(end); - Standard_Real Radius = aP1.Distance(aP2); - gce_MakeCirc MC(aP2, gce_MakePln(aP1, aP2, aP3).Value(), Radius); - const gp_Circ &Circ = MC.Value(); - Standard_Real Alpha1 = ElCLib::Parameter(Circ, aP1); - Standard_Real Alpha2 = ElCLib::Parameter(Circ, aP3); - Handle(Geom_Circle) C = new Geom_Circle(Circ); - Handle(Geom_TrimmedCurve) arc = new Geom_TrimmedCurve(C, Alpha1, Alpha2, false); - result = BRepBuilderAPI_MakeEdge(arc, start, end).Edge(); - } - catch(Standard_Failure &err){ - Msg::Error("OCC %s", err.GetMessageString()); - return; - } - bind(result, tag); -} + // iterate over all shapes with tags, and import them into the (sub)shape _maps + TopTools_DataMapIteratorOfDataMapOfIntegerShape exp0(_tagVertex); + for(; exp0.More(); exp0.Next()) _addShapeToMaps(exp0.Value()); + TopTools_DataMapIteratorOfDataMapOfIntegerShape exp1(_tagEdge); + for(; exp1.More(); exp1.Next()) _addShapeToMaps(exp1.Value()); + TopTools_DataMapIteratorOfDataMapOfIntegerShape exp2(_tagFace); + for(; exp2.More(); exp2.Next()) _addShapeToMaps(exp2.Value()); + TopTools_DataMapIteratorOfDataMapOfIntegerShape exp3(_tagSolid); + for(; exp3.More(); exp3.Next()) _addShapeToMaps(exp3.Value()); -void OCC_Internals::addSphere(int tag, double xc, double yc, double zc, double radius) -{ - if(_tagSolid.IsBound(tag)){ - Msg::Error("OCC region with tag %d already exists", tag); - return; - } + // import all shapes in _maps into the GModel, preserving all explicit tags - TopoDS_Solid result; - try{ - gp_Pnt aP(xc, yc, zc); - result = TopoDS::Solid(BRepPrimAPI_MakeSphere(aP, radius).Shape()); - } - catch(Standard_Failure &err){ - Msg::Error("OCC %s", err.GetMessageString()); - return; + for(int i = 1; i <= _vmap.Extent(); i++){ + TopoDS_Vertex vertex = TopoDS::Vertex(_vmap(i)); + if(!getOCCVertexByNativePtr(model, vertex)){ + int tag; + if(_vertexTag.IsBound(vertex)){ + tag = _vertexTag.Find(vertex); + } + else{ + tag = vTagMax + 1; + vTagMax++; + } + model->add(new OCCVertex(model, tag, vertex)); + } } - bind(result, tag); -} -void OCC_Internals::addThruSections(int tag, std::vector<std::vector<int> > edgeTags) -{ - if(_tagSolid.IsBound(tag)){ - Msg::Error("OCC region with tag %d already exists", tag); - return; + // building geom edges + for(int i = 1; i <= _emap.Extent(); i++){ + TopoDS_Edge edge = TopoDS::Edge(_emap(i)); + if(!getOCCEdgeByNativePtr(model, edge)){ + GVertex *v1 = getOCCVertexByNativePtr(model, TopExp::FirstVertex(edge)); + GVertex *v2 = getOCCVertexByNativePtr(model, TopExp::LastVertex(edge)); + int tag; + if(_edgeTag.IsBound(edge)){ + tag = _edgeTag.Find(edge); + } + else{ + tag = eTagMax + 1; + eTagMax++; + } + model->add(new OCCEdge(model, edge, tag, v1, v2)); + } } - TopoDS_Solid result; - try{ - BRepOffsetAPI_ThruSections aGenerator(Standard_True); // create solid - for (unsigned i = 0; i < edgeTags.size(); i++) { - BRepBuilderAPI_MakeWire wire_maker; - for (unsigned j = 0; j < edgeTags[i].size(); j++) { - if(!_tagEdge.IsBound(edgeTags[i][j])){ - Msg::Error("Unknown OCC edge with tag %d", edgeTags[i][j]); - return; - } - TopoDS_Edge edge = TopoDS::Edge(_tagEdge.Find(edgeTags[i][j])); - wire_maker.Add(edge); + // building geom faces + for(int i = 1; i <= _fmap.Extent(); i++){ + TopoDS_Face face = TopoDS::Face(_fmap(i)); + if(!getOCCFaceByNativePtr(model, face)){ + int tag; + if(_faceTag.IsBound(face)){ + tag = _faceTag.Find(face); } - aGenerator.AddWire(wire_maker.Wire()); + else{ + tag = fTagMax + 1; + fTagMax++; + } + model->add(new OCCFace(model, face, tag)); } - aGenerator.CheckCompatibility(Standard_False); - aGenerator.Build(); - result = TopoDS::Solid(aGenerator.Shape()); } - catch(Standard_Failure &err){ - Msg::Error("OCC %s", err.GetMessageString()); - return; + + // building geom regions + for(int i = 1; i <= _somap.Extent(); i++){ + TopoDS_Solid region = TopoDS::Solid(_somap(i)); + if(!getOCCRegionByNativePtr(model, region)){ + int tag; + if(_solidTag.IsBound(region)){ + tag = _solidTag(region); + } + else{ + tag = rTagMax + 1; + rTagMax++; + } + model->add(new OCCRegion(model, region, tag)); + } } - bind(result, tag); } -int OCC_Internals::_getMaxTag(int dim) const +int GModel::importOCCInternals() { - TopTools_DataMapIteratorOfDataMapOfIntegerShape exp; - int ret = 0; - 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; - } - for(; exp.More(); exp.Next()) - ret = std::max(ret, exp.Key()); - return ret; + _occ_internals->importOCCInternals(this); + return 1; } -void OCC_Internals::applyBooleanOperator(int tag, - std::vector<int> shapeTags[4], - std::vector<int> toolTags[4], - BooleanOperator op, - bool removeShape, bool removeTool) + +// FIXME ***************** old ************************ + +void addSimpleShapes(TopoDS_Shape theShape, TopTools_ListOfShape &theList) { - if(tag > 0 && _tagSolid.IsBound(tag)){ - Msg::Error("OCC region with tag %d already exists", tag); + if(theShape.ShapeType() != TopAbs_COMPOUND && + theShape.ShapeType() != TopAbs_COMPSOLID) { + theList.Append(theShape); return; } - if(shapeTags[3].size() == 1 && toolTags[3].size() == 1){ - TopoDS_Shape result; - if(!_tagSolid.IsBound(shapeTags[3][0])){ - Msg::Error("Unknown OCC region with tag %d", shapeTags[3][0]); - return; - } - if(!_tagSolid.IsBound(toolTags[3][0])){ - Msg::Error("Unknown OCC region with tag %d", toolTags[3][0]); - return; - } - try{ - TopoDS_Solid shape = TopoDS::Solid(_tagSolid.Find(shapeTags[3][0])); - TopoDS_Solid tool = TopoDS::Solid(_tagSolid.Find(toolTags[3][0])); - BRepAlgoAPI_Fuse BO(shape, tool); - if(!BO.IsDone()) { - Msg::Error("Fuse operation can not be performed on the given shapes"); + TopTools_MapOfShape mapShape; + TopoDS_Iterator It(theShape, Standard_True, Standard_True); + + for(; It.More(); It.Next()) { + TopoDS_Shape aShape_i = It.Value(); + if(mapShape.Add(aShape_i)) { + if(aShape_i.ShapeType() == TopAbs_COMPOUND || + aShape_i.ShapeType() == TopAbs_COMPSOLID) { + addSimpleShapes(aShape_i, theList); + } + else { + theList.Append(aShape_i); } - result = BO.Shape(); - if(removeShape) unbind(shape, shapeTags[3][0]); - if(removeTool) unbind(tool, toolTags[3][0]); - } - catch(Standard_Failure &err){ - Msg::Error("OCC %s", err.GetMessageString()); - return; - } - TopExp_Explorer exp0; - bool first = true; - for(exp0.Init(result, TopAbs_SOLID); exp0.More(); exp0.Next()){ - if(tag < 0) - bind(TopoDS::Solid(exp0.Current()), _getMaxTag(3) + 1); - else if(first) - bind(TopoDS::Solid(exp0.Current()), tag); - else - Msg::Error("Cannot bind multiple regions to single tag %d", tag); } } - else{ - Msg::Error("General boolean operation not implemented yet!"); - } } - -void addSimpleShapes(TopoDS_Shape theShape, TopTools_ListOfShape &theList); - void OCC_Internals::buildLists() { _somap.Clear(); @@ -989,128 +1199,6 @@ void OCC_Internals::buildGModel(GModel *model) } } -int GModel::importOCCInternals() -{ - _occ_internals->importOCCInternals(this); - return 1; -} - -void OCC_Internals::importOCCInternals(GModel *model) -{ - int vTagMax = std::max(model->getMaxElementaryNumber(0), _getMaxTag(0)); - int eTagMax = std::max(model->getMaxElementaryNumber(1), _getMaxTag(1)); - int fTagMax = std::max(model->getMaxElementaryNumber(2), _getMaxTag(2)); - int rTagMax = std::max(model->getMaxElementaryNumber(3), _getMaxTag(3)); - - _somap.Clear(); - _shmap.Clear(); - _fmap.Clear(); - _wmap.Clear(); - _emap.Clear(); - _vmap.Clear(); - - // iterate over all shapes with tags, and import them into the (sub)shape _maps - TopTools_DataMapIteratorOfDataMapOfIntegerShape exp0(_tagVertex); - for(; exp0.More(); exp0.Next()) _addShapeToMaps(exp0.Value()); - TopTools_DataMapIteratorOfDataMapOfIntegerShape exp1(_tagEdge); - for(; exp1.More(); exp1.Next()) _addShapeToMaps(exp1.Value()); - TopTools_DataMapIteratorOfDataMapOfIntegerShape exp2(_tagFace); - for(; exp2.More(); exp2.Next()) _addShapeToMaps(exp2.Value()); - TopTools_DataMapIteratorOfDataMapOfIntegerShape exp3(_tagSolid); - for(; exp3.More(); exp3.Next()) _addShapeToMaps(exp3.Value()); - - // import all shapes in _maps into the GModel, preserving all explicit tags - - for(int i = 1; i <= _vmap.Extent(); i++){ - TopoDS_Vertex vertex = TopoDS::Vertex(_vmap(i)); - if(!getOCCVertexByNativePtr(model, vertex)){ - int tag; - if(_vertexTag.IsBound(vertex)){ - tag = _vertexTag.Find(vertex); - } - else{ - tag = vTagMax + 1; - vTagMax++; - } - model->add(new OCCVertex(model, tag, vertex)); - } - } - - // building geom edges - for(int i = 1; i <= _emap.Extent(); i++){ - TopoDS_Edge edge = TopoDS::Edge(_emap(i)); - if(!getOCCEdgeByNativePtr(model, edge)){ - GVertex *v1 = getOCCVertexByNativePtr(model, TopExp::FirstVertex(edge)); - GVertex *v2 = getOCCVertexByNativePtr(model, TopExp::LastVertex(edge)); - int tag; - if(_edgeTag.IsBound(edge)){ - tag = _edgeTag.Find(edge); - } - else{ - tag = eTagMax + 1; - eTagMax++; - } - model->add(new OCCEdge(model, edge, tag, v1, v2)); - } - } - - // building geom faces - for(int i = 1; i <= _fmap.Extent(); i++){ - TopoDS_Face face = TopoDS::Face(_fmap(i)); - if(!getOCCFaceByNativePtr(model, face)){ - int tag; - if(_faceTag.IsBound(face)){ - tag = _faceTag.Find(face); - } - else{ - tag = fTagMax + 1; - fTagMax++; - } - model->add(new OCCFace(model, face, tag)); - } - } - - // building geom regions - for(int i = 1; i <= _somap.Extent(); i++){ - TopoDS_Solid region = TopoDS::Solid(_somap(i)); - if(!getOCCRegionByNativePtr(model, region)){ - int tag; - if(_solidTag.IsBound(region)){ - tag = _solidTag(region); - } - else{ - tag = rTagMax + 1; - rTagMax++; - } - model->add(new OCCRegion(model, region, tag)); - } - } -} - -void addSimpleShapes(TopoDS_Shape theShape, TopTools_ListOfShape &theList) -{ - if(theShape.ShapeType() != TopAbs_COMPOUND && - theShape.ShapeType() != TopAbs_COMPSOLID) { - theList.Append(theShape); - return; - } - - TopTools_MapOfShape mapShape; - TopoDS_Iterator It(theShape, Standard_True, Standard_True); - - for(; It.More(); It.Next()) { - TopoDS_Shape aShape_i = It.Value(); - if(mapShape.Add(aShape_i)) { - if(aShape_i.ShapeType() == TopAbs_COMPOUND || - aShape_i.ShapeType() == TopAbs_COMPSOLID) { - addSimpleShapes(aShape_i, theList); - } - else { - theList.Append(aShape_i); - } - } - } -} void OCC_Internals::applyBooleanOperator(TopoDS_Shape tool, const BooleanOperator &op) { diff --git a/Geo/GModelIO_OCC.h b/Geo/GModelIO_OCC.h index ba917d9ac6663247926cb846f4a282d46435673b..c55e4af82a1c9a093e413481a3f6c9240daef584 100644 --- a/Geo/GModelIO_OCC.h +++ b/Geo/GModelIO_OCC.h @@ -45,43 +45,23 @@ class OCC_Internals { void addVertex(int tag, double x, double y, double z); void addCircleArc(int tag, int startTag, int centerTag, int endTag); void addSphere(int tag, double xc, double yc, double zc, double radius); + void addBlock(int tag, double x1, double y1, double z1, + double x2, double y2, double z2); + void addCylinder(int tag, double x1, double y1, double z1, + double x2, double y2, double z2, double r); void addThruSections(int tag, std::vector<std::vector<int> > edgeTags); // apply boolean operation - void applyBooleanOperator(int tag, - std::vector<int> shapeTags[4], - std::vector<int> toolTags[4], - BooleanOperator op, - bool removeShape=true, bool removeTool=true); - - - // perform boolean operation on _shape, using tool - void applyBooleanOperator(TopoDS_Shape tool, const BooleanOperator &op); - - // import all the OCC shapes into the model + std::vector<int> applyBooleanOperator(int tag, + std::vector<int> shapeTags[4], + std::vector<int> toolTags[4], + BooleanOperator op, + bool removeShape=true, + bool removeTool=true); + + // import all the shapes into the model void importOCCInternals(GModel *model); - // manipulate _shape - TopoDS_Shape getShape () { return _shape; } - void buildLists(); - void buildShapeFromLists(TopoDS_Shape shape); - - void healGeometry(double tolerance, bool fixdegenerated, - bool fixsmalledges, bool fixspotstripfaces, - bool sewfaces, bool makesolids=false, - int connect=0, double scaling=0.0); - void fillet(std::vector<TopoDS_Edge> &shapes, double radius); - - - // I/O towards GModel - void buildShapeFromGModel(GModel*); - void buildGModel(GModel *gm); - void loadBREP(const char *); - void writeBREP(const char *); - void loadSTEP(const char *); - void writeSTEP(const char *); - void loadIGES(const char *); - void loadShape(const TopoDS_Shape *); void bind(TopoDS_Vertex vertex, int tag) { _vertexTag.Bind(vertex, tag); @@ -130,6 +110,33 @@ class OCC_Internals { GEdge *addEdgeToModel(GModel *model, TopoDS_Edge e); GFace *addFaceToModel(GModel *model, TopoDS_Face f); GRegion *addRegionToModel(GModel *model, TopoDS_Solid r); + + + // FIXME ************* OLD ************** + + // perform boolean operation on _shape, using tool + void applyBooleanOperator(TopoDS_Shape tool, const BooleanOperator &op); + + // manipulate _shape + TopoDS_Shape getShape () { return _shape; } + void buildLists(); + void buildShapeFromLists(TopoDS_Shape shape); + + void healGeometry(double tolerance, bool fixdegenerated, + bool fixsmalledges, bool fixspotstripfaces, + bool sewfaces, bool makesolids=false, + int connect=0, double scaling=0.0); + void fillet(std::vector<TopoDS_Edge> &shapes, double radius); + + // I/O towards GModel + void buildShapeFromGModel(GModel*); + void buildGModel(GModel *gm); + void loadBREP(const char *); + void writeBREP(const char *); + void loadSTEP(const char *); + void writeSTEP(const char *); + void loadIGES(const char *); + void loadShape(const TopoDS_Shape *); }; #else @@ -140,14 +147,19 @@ public: OCC_Internals(){} void addVertex(int tag, double x, double y, double z){} void addCircleArc(int tag, int tagStart, int tagCenter, int tagEnd){} - void addSphere(int tag, double xc, double yc, double zc, double radius){}; + void addSphere(int tag, double xc, double yc, double zc, double radius){}; + void addBlock(int tag, double x1, double y1, double z1, + double x2, double y2, double z2); + void addCylinder(int tag, double x1, double y1, double z1, + double x2, double y2, double z2, double r); void addThruSections(int tag, std::vector<std::vector<int> > tagEdges){} void importOCCInternals(GModel *model){} - void applyBooleanOperator(int tag, - std::vector<int> shapeTags[4], - std::vector<int> toolTags[4], - BooleanOperator op, - bool removeShape=true, bool removeTool=true){}; + std::vector<int> applyBooleanOperator(int tag, + std::vector<int> shapeTags[4], + std::vector<int> toolTags[4], + BooleanOperator op, + bool removeShape=true, + bool removeTool=true); }; #endif diff --git a/Geo/GModelIO_SGEOM.cpp b/Geo/GModelIO_SGEOM.cpp deleted file mode 100644 index 7b632bd66a59996bf7fd5e10177a1cd99f95ff24..0000000000000000000000000000000000000000 --- a/Geo/GModelIO_SGEOM.cpp +++ /dev/null @@ -1,1091 +0,0 @@ -// Gmsh - Copyright (C) 1997-2017 C. Geuzaine, J.-F. Remacle -// -// See the LICENSE.txt file for license information. Please report all -// bugs and problems to the public mailing list <gmsh@onelab.info>. - -#include "GmshConfig.h" -#include "GmshMessage.h" -#include "GModelIO_SGEOM.h" -#include "Context.h" -// #include "OCCVertex.h" -// #include "OCCEdge.h" -// #include "OCCFace.h" -// #include "OCCRegion.h" -#include "MElement.h" -#include "MLine.h" -#include "OpenFile.h" -// #include "OCC_Connect.h" - -#if defined(HAVE_SGEOM) && defined(HAVE_OCC) - -// #if defined(HAVE_SALOME) -// #include "Partition_Spliter.hxx" -// #endif - -// void addSimpleShapes(TopoDS_Shape theShape, TopTools_ListOfShape &theList); -// -// void SGEOM_Internals::buildLists() -// { -// somap.Clear(); -// shmap.Clear(); -// fmap.Clear(); -// wmap.Clear(); -// emap.Clear(); -// vmap.Clear(); -// addShapeToLists(shape); -// } -// -// void SGEOM_Internals::buildShapeFromLists(TopoDS_Shape _shape) -// { -// BRep_Builder B; -// TopoDS_Compound C; -// B.MakeCompound(C); -// -// TopTools_ListOfShape theList; -// addSimpleShapes(_shape, theList); -// TopTools_ListIteratorOfListOfShape itSub1(theList); -// for (; itSub1.More(); itSub1.Next()) B.Add(C, itSub1.Value()); -// -// for(int i = 1; i <= vmap.Extent(); i++) B.Add(C, vmap(i)); -// for(int i = 1; i <= emap.Extent(); i++) B.Add(C, emap(i)); -// for(int i = 1; i <= wmap.Extent(); i++) B.Add(C, wmap(i)); -// for(int i = 1; i <= fmap.Extent(); i++) B.Add(C, fmap(i)); -// for(int i = 1; i <= shmap.Extent(); i++) B.Add(C, shmap(i)); -// for(int i = 1; i <= somap.Extent(); i++) B.Add(C, somap(i)); -// shape = C; -// } -// -// void SGEOM_Internals::addShapeToLists(TopoDS_Shape _shape) -// { -// // Solids -// TopExp_Explorer exp0, exp1, exp2, exp3, exp4, exp5; -// for(exp0.Init(_shape, TopAbs_SOLID); exp0.More(); exp0.Next()){ -// TopoDS_Solid solid = TopoDS::Solid(exp0.Current()); -// if(somap.FindIndex(solid) < 1){ -// somap.Add(solid); -// -// for(exp1.Init(solid, TopAbs_SHELL); exp1.More(); exp1.Next()){ -// TopoDS_Shell shell = TopoDS::Shell(exp1.Current()); -// if(shmap.FindIndex(shell) < 1){ -// shmap.Add(shell); -// -// for(exp2.Init(shell, TopAbs_FACE); exp2.More(); exp2.Next()){ -// TopoDS_Face face = TopoDS::Face(exp2.Current()); -// if(fmap.FindIndex(face) < 1){ -// fmap.Add(face); -// -// for(exp3.Init(exp2.Current(), TopAbs_WIRE); exp3.More(); exp3.Next()){ -// TopoDS_Wire wire = TopoDS::Wire(exp3.Current()); -// if(wmap.FindIndex(wire) < 1){ -// wmap.Add(wire); -// -// for(exp4.Init(exp3.Current(), TopAbs_EDGE); exp4.More(); exp4.Next()){ -// TopoDS_Edge edge = TopoDS::Edge(exp4.Current()); -// if(emap.FindIndex(edge) < 1){ -// emap.Add(edge); -// -// for(exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next()){ -// TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current()); -// if(vmap.FindIndex(vertex) < 1) -// vmap.Add(vertex); -// } -// } -// } -// } -// } -// } -// } -// } -// } -// } -// } -// -// // Free Shells -// for(exp1.Init(exp0.Current(), TopAbs_SHELL, TopAbs_SOLID); exp1.More(); exp1.Next()){ -// TopoDS_Shape shell = exp1.Current(); -// if(shmap.FindIndex(shell) < 1){ -// shmap.Add(shell); -// -// for(exp2.Init(shell, TopAbs_FACE); exp2.More(); exp2.Next()){ -// TopoDS_Face face = TopoDS::Face(exp2.Current()); -// if(fmap.FindIndex(face) < 1){ -// fmap.Add(face); -// -// for(exp3.Init(exp2.Current(), TopAbs_WIRE); exp3.More(); exp3.Next()){ -// TopoDS_Wire wire = TopoDS::Wire(exp3.Current()); -// if(wmap.FindIndex(wire) < 1){ -// wmap.Add(wire); -// -// for(exp4.Init(exp3.Current(), TopAbs_EDGE); exp4.More(); exp4.Next()){ -// TopoDS_Edge edge = TopoDS::Edge(exp4.Current()); -// if(emap.FindIndex(edge) < 1){ -// emap.Add(edge); -// -// for(exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next()){ -// TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current()); -// if(vmap.FindIndex(vertex) < 1) -// vmap.Add(vertex); -// } -// } -// } -// } -// } -// } -// } -// } -// } -// -// // Free Faces -// for(exp2.Init(_shape, TopAbs_FACE, TopAbs_SHELL); exp2.More(); exp2.Next()){ -// TopoDS_Face face = TopoDS::Face(exp2.Current()); -// if(fmap.FindIndex(face) < 1){ -// fmap.Add(face); -// -// for(exp3.Init(exp2.Current(), TopAbs_WIRE); exp3.More(); exp3.Next()){ -// TopoDS_Wire wire = TopoDS::Wire(exp3.Current()); -// if(wmap.FindIndex(wire) < 1){ -// wmap.Add(wire); -// -// for(exp4.Init(exp3.Current(), TopAbs_EDGE); exp4.More(); exp4.Next()){ -// TopoDS_Edge edge = TopoDS::Edge(exp4.Current()); -// if(emap.FindIndex(edge) < 1){ -// emap.Add(edge); -// -// for(exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next()){ -// TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current()); -// if(vmap.FindIndex(vertex) < 1) -// vmap.Add(vertex); -// } -// } -// } -// } -// } -// } -// } -// -// // Free Wires -// for(exp3.Init(_shape, TopAbs_WIRE, TopAbs_FACE); exp3.More(); exp3.Next()){ -// TopoDS_Wire wire = TopoDS::Wire(exp3.Current()); -// if(wmap.FindIndex(wire) < 1){ -// wmap.Add(wire); -// -// for(exp4.Init(exp3.Current(), TopAbs_EDGE); exp4.More(); exp4.Next()){ -// TopoDS_Edge edge = TopoDS::Edge(exp4.Current()); -// if(emap.FindIndex(edge) < 1){ -// emap.Add(edge); -// -// for(exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next()){ -// TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current()); -// if(vmap.FindIndex(vertex) < 1) -// vmap.Add(vertex); -// } -// } -// } -// } -// } -// -// // Free Edges -// for(exp4.Init(_shape, TopAbs_EDGE, TopAbs_WIRE); exp4.More(); exp4.Next()){ -// TopoDS_Edge edge = TopoDS::Edge(exp4.Current()); -// if(emap.FindIndex(edge) < 1){ -// emap.Add(edge); -// -// for(exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next()){ -// TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current()); -// if(vmap.FindIndex(vertex) < 1) -// vmap.Add(vertex); -// } -// } -// } -// -// // Free Vertices -// for(exp5.Init(_shape, TopAbs_VERTEX, TopAbs_EDGE); exp5.More(); exp5.Next()){ -// TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current()); -// if(vmap.FindIndex(vertex) < 1) -// vmap.Add(vertex); -// } -// -// } -// -// void SGEOM_Internals::healGeometry(double tolerance, bool fixdegenerated, -// bool fixsmalledges, bool fixspotstripfaces, -// bool sewfaces, bool makesolids, bool connect) -// { -// if(!fixdegenerated && !fixsmalledges && !fixspotstripfaces && -// !sewfaces && !makesolids && !connect) return; -// -// Msg::Info("Starting geometry healing procedure (tolerance: %g)", tolerance); -// -// buildLists(); -// TopExp_Explorer exp0, exp1; -// int nrc = 0, nrcs = 0; -// int nrso = somap.Extent(), nrsh = shmap.Extent(), nrf = fmap.Extent(); -// int nrw = wmap.Extent(), nre = emap.Extent(), nrv = vmap.Extent(); -// for(exp0.Init(shape, TopAbs_COMPOUND); exp0.More(); exp0.Next()) nrc++; -// for(exp0.Init(shape, TopAbs_COMPSOLID); exp0.More(); exp0.Next()) nrcs++; -// -// double surfacecont = 0; -// for(exp0.Init(shape, TopAbs_FACE); exp0.More(); exp0.Next()){ -// TopoDS_Face face = TopoDS::Face(exp0.Current()); -// GProp_GProps system; -// BRepGProp::SurfaceProperties(face, system); -// surfacecont += system.Mass(); -// } -// -// if(fixdegenerated){ -// Msg::Info("- fix degenerated edges and faces"); -// -// { -// Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape; -// rebuild->Apply(shape); -// for(exp1.Init(shape, TopAbs_EDGE); exp1.More(); exp1.Next()){ -// TopoDS_Edge edge = TopoDS::Edge(exp1.Current()); -// if(BRep_Tool::Degenerated(edge)) -// rebuild->Remove(edge, false); -// } -// shape = rebuild->Apply(shape); -// } -// buildLists(); -// -// { -// Handle(ShapeFix_Face) sff; -// Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape; -// rebuild->Apply(shape); -// -// for(exp0.Init(shape, TopAbs_FACE); exp0.More(); exp0.Next()){ -// TopoDS_Face face = TopoDS::Face(exp0.Current()); -// -// sff = new ShapeFix_Face(face); -// sff->FixAddNaturalBoundMode() = Standard_True; -// sff->FixSmallAreaWireMode() = Standard_True; -// sff->Perform(); -// -// if(sff->Status(ShapeExtend_DONE1) || -// sff->Status(ShapeExtend_DONE2) || -// sff->Status(ShapeExtend_DONE3) || -// sff->Status(ShapeExtend_DONE4) || -// sff->Status(ShapeExtend_DONE5)) -// { -// Msg::Info(" repaired face %d", fmap.FindIndex(face)); -// if(sff->Status(ShapeExtend_DONE1)) -// Msg::Info(" (some wires are fixed)"); -// else if(sff->Status(ShapeExtend_DONE2)) -// Msg::Info(" (orientation of wires fixed)"); -// else if(sff->Status(ShapeExtend_DONE3)) -// Msg::Info(" (missing seam added)"); -// else if(sff->Status(ShapeExtend_DONE4)) -// Msg::Info(" (small area wire removed)"); -// else if(sff->Status(ShapeExtend_DONE5)) -// Msg::Info(" (natural bounds added)"); -// TopoDS_Face newface = sff->Face(); -// -// rebuild->Replace(face, newface, Standard_False); -// } -// } -// shape = rebuild->Apply(shape); -// } -// -// { -// Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape; -// rebuild->Apply(shape); -// for(exp1.Init(shape, TopAbs_EDGE); exp1.More(); exp1.Next()){ -// TopoDS_Edge edge = TopoDS::Edge(exp1.Current()); -// if(BRep_Tool::Degenerated(edge)) -// rebuild->Remove(edge, false); -// } -// shape = rebuild->Apply(shape); -// } -// } -// -// if(fixsmalledges){ -// Msg::Info("- fixing small edges"); -// -// Handle(ShapeFix_Wire) sfw; -// Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape; -// rebuild->Apply(shape); -// -// for(exp0.Init(shape, TopAbs_FACE); exp0.More(); exp0.Next()){ -// TopoDS_Face face = TopoDS::Face(exp0.Current()); -// -// for(exp1.Init(face, TopAbs_WIRE); exp1.More(); exp1.Next()){ -// TopoDS_Wire oldwire = TopoDS::Wire(exp1.Current()); -// sfw = new ShapeFix_Wire(oldwire, face ,tolerance); -// sfw->ModifyTopologyMode() = Standard_True; -// -// sfw->ClosedWireMode() = Standard_True; -// -// bool replace = false; -// replace = sfw->FixReorder() || replace; -// replace = sfw->FixConnected() || replace; -// -// if(sfw->FixSmall(Standard_False, tolerance) && -// ! (sfw->StatusSmall(ShapeExtend_FAIL1) || -// sfw->StatusSmall(ShapeExtend_FAIL2) || -// sfw->StatusSmall(ShapeExtend_FAIL3))){ -// Msg::Info(" fixed small edge in wire %d", wmap.FindIndex(oldwire)); -// replace = true; -// } -// else if(sfw->StatusSmall(ShapeExtend_FAIL1)) -// Msg::Warning("Failed to fix small edge in wire %d, edge cannot be checked " -// "(no 3d curve and no pcurve)", wmap.FindIndex(oldwire)); -// else if(sfw->StatusSmall(ShapeExtend_FAIL2)) -// Msg::Warning("Failed to fix small edge in wire %d, " -// "edge is null-length and has different vertives at begin and " -// "end, and lockvtx is True or ModifiyTopologyMode is False", -// wmap.FindIndex(oldwire)); -// else if(sfw->StatusSmall(ShapeExtend_FAIL3)) -// Msg::Warning("Failed to fix small edge in wire, CheckConnected has failed", -// wmap.FindIndex(oldwire)); -// -// replace = sfw->FixEdgeCurves() || replace; -// replace = sfw->FixDegenerated() || replace; -// replace = sfw->FixSelfIntersection() || replace; -// replace = sfw->FixLacking(Standard_True) || replace; -// if(replace){ -// TopoDS_Wire newwire = sfw->Wire(); -// rebuild->Replace(oldwire, newwire, Standard_False); -// } -// } -// } -// -// shape = rebuild->Apply(shape); -// -// { -// buildLists(); -// Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape; -// rebuild->Apply(shape); -// -// for(exp1.Init(shape, TopAbs_EDGE); exp1.More(); exp1.Next()){ -// TopoDS_Edge edge = TopoDS::Edge(exp1.Current()); -// if(vmap.FindIndex(TopExp::FirstVertex(edge)) == -// vmap.FindIndex(TopExp::LastVertex(edge))){ -// GProp_GProps system; -// BRepGProp::LinearProperties(edge, system); -// if(system.Mass() < tolerance){ -// Msg::Info(" removing degenerated edge %d from vertex %d to vertex %d", -// emap.FindIndex(edge), vmap.FindIndex(TopExp::FirstVertex(edge)), -// vmap.FindIndex(TopExp::LastVertex(edge))); -// rebuild->Remove(edge, false); -// } -// } -// } -// shape = rebuild->Apply(shape); -// } -// -// { -// Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape; -// rebuild->Apply(shape); -// for(exp1.Init(shape, TopAbs_EDGE); exp1.More(); exp1.Next()){ -// TopoDS_Edge edge = TopoDS::Edge(exp1.Current()); -// if(BRep_Tool::Degenerated(edge) ) -// rebuild->Remove(edge, false); -// } -// shape = rebuild->Apply(shape); -// } -// -// Handle(ShapeFix_Wireframe) sfwf = new ShapeFix_Wireframe; -// sfwf->SetPrecision(tolerance); -// sfwf->Load(shape); -// sfwf->ModeDropSmallEdges() = Standard_True; -// -// if(sfwf->FixWireGaps()){ -// Msg::Info("- fixing wire gaps"); -// if(sfwf->StatusWireGaps(ShapeExtend_OK)) -// Msg::Info(" no gaps found"); -// if(sfwf->StatusWireGaps(ShapeExtend_DONE1)) -// Msg::Info(" some 2D gaps fixed"); -// if(sfwf->StatusWireGaps(ShapeExtend_DONE2)) -// Msg::Info(" some 3D gaps fixed"); -// if(sfwf->StatusWireGaps(ShapeExtend_FAIL1)) -// Msg::Info(" failed to fix some 2D gaps"); -// if(sfwf->StatusWireGaps(ShapeExtend_FAIL2)) -// Msg::Info(" failed to fix some 3D gaps"); -// } -// -// sfwf->SetPrecision(tolerance); -// -// if(sfwf->FixSmallEdges()){ -// Msg::Info("- fixing wire frames"); -// if(sfwf->StatusSmallEdges(ShapeExtend_OK)) -// Msg::Info(" no small edges found"); -// if(sfwf->StatusSmallEdges(ShapeExtend_DONE1)) -// Msg::Info(" some small edges fixed"); -// if(sfwf->StatusSmallEdges(ShapeExtend_FAIL1)) -// Msg::Info(" failed to fix some small edges"); -// } -// -// shape = sfwf->Shape(); -// } -// -// if(fixspotstripfaces){ -// Msg::Info("- fixing spot and strip faces"); -// Handle(ShapeFix_FixSmallFace) sffsm = new ShapeFix_FixSmallFace(); -// sffsm->Init(shape); -// sffsm->SetPrecision(tolerance); -// sffsm->Perform(); -// -// shape = sffsm->FixShape(); -// } -// -// if(sewfaces){ -// Msg::Info("- sewing faces"); -// -// BRepOffsetAPI_Sewing sewedObj(tolerance); -// -// for(exp0.Init(shape, TopAbs_FACE); exp0.More(); exp0.Next()){ -// TopoDS_Face face = TopoDS::Face(exp0.Current()); -// sewedObj.Add(face); -// } -// -// sewedObj.Perform(); -// -// if(!sewedObj.SewedShape().IsNull()) -// shape = sewedObj.SewedShape(); -// else -// Msg::Info(" not possible"); -// } -// -// { -// Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape; -// rebuild->Apply(shape); -// for(exp1.Init(shape, TopAbs_EDGE); exp1.More(); exp1.Next()){ -// TopoDS_Edge edge = TopoDS::Edge(exp1.Current()); -// if(BRep_Tool::Degenerated(edge)) -// rebuild->Remove(edge, false); -// } -// shape = rebuild->Apply(shape); -// } -// -// if(makesolids){ -// Msg::Info("- making solids"); -// -// BRepBuilderAPI_MakeSolid ms; -// int count = 0; -// for(exp0.Init(shape, TopAbs_SHELL); exp0.More(); exp0.Next()){ -// count++; -// ms.Add(TopoDS::Shell(exp0.Current())); -// } -// -// if(!count){ -// Msg::Info(" not possible (no shells)"); -// } -// else{ -// BRepCheck_Analyzer ba(ms); -// if(ba.IsValid()){ -// Handle(ShapeFix_Shape) sfs = new ShapeFix_Shape; -// sfs->Init(ms); -// sfs->SetPrecision(tolerance); -// sfs->SetMaxTolerance(tolerance); -// sfs->Perform(); -// shape = sfs->Shape(); -// -// for(exp0.Init(shape, TopAbs_SOLID); exp0.More(); exp0.Next()){ -// TopoDS_Solid solid = TopoDS::Solid(exp0.Current()); -// TopoDS_Solid newsolid = solid; -// BRepLib::OrientClosedSolid(newsolid); -// Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape; -// // rebuild->Apply(shape); -// rebuild->Replace(solid, newsolid, Standard_False); -// TopoDS_Shape newshape = rebuild->Apply(shape, TopAbs_COMPSOLID);//, 1); -// // TopoDS_Shape newshape = rebuild->Apply(shape); -// shape = newshape; -// } -// } -// else -// Msg::Info(" not possible"); -// } -// } -// -// if(connect){ -// #if defined(HAVE_SALOME) -// Msg::Info("- cutting and connecting faces with Salome's Partition_Spliter"); -// TopExp_Explorer e2; -// Partition_Spliter ps; -// for(e2.Init(shape, TopAbs_SOLID); e2.More(); e2.Next()) -// ps.AddShape(e2.Current()); -// try{ -// ps.Compute(); -// shape = ps.Shape(); -// } -// catch(Standard_Failure &err){ -// Msg::Error("%s", err.GetMessageString()); -// } -// #else -// Msg::Info("- cutting and connecting faces with OCC_Connect"); -// OCC_Connect connect(1); -// for(TopExp_Explorer p(shape, TopAbs_SOLID); p.More(); p.Next()) -// connect.Add(p.Current()); -// connect.Connect(); -// shape = connect; -// #endif -// } -// -// double newsurfacecont = 0; -// for(exp0.Init(shape, TopAbs_FACE); exp0.More(); exp0.Next()){ -// TopoDS_Face face = TopoDS::Face(exp0.Current()); -// GProp_GProps system; -// BRepGProp::SurfaceProperties(face, system); -// newsurfacecont += system.Mass(); -// } -// -// buildLists(); -// int nnrc = 0, nnrcs = 0; -// int nnrso = somap.Extent(), nnrsh = shmap.Extent(), nnrf = fmap.Extent(); -// int nnrw = wmap.Extent(), nnre = emap.Extent(), nnrv = vmap.Extent(); -// for(exp0.Init(shape, TopAbs_COMPOUND); exp0.More(); exp0.Next()) nnrc++; -// for(exp0.Init(shape, TopAbs_COMPSOLID); exp0.More(); exp0.Next()) nnrcs++; -// -// Msg::Info("-----------------------------------"); -// Msg::Info("Compounds : %d (%d)", nnrc, nrc); -// Msg::Info("Composite solids : %d (%d)", nnrcs, nrcs); -// Msg::Info("Solids : %d (%d)", nnrso, nrso); -// Msg::Info("Shells : %d (%d)", nnrsh, nrsh); -// Msg::Info("Wires : %d (%d)", nnrw, nrw); -// Msg::Info("Faces : %d (%d)", nnrf, nrf); -// Msg::Info("Edges : %d (%d)", nnre, nre); -// Msg::Info("Vertices : %d (%d)", nnrv, nrv ); -// Msg::Info("Totol surface area : %g (%g)", newsurfacecont, surfacecont); -// Msg::Info("-----------------------------------"); -// } -// -// void SGEOM_Internals::loadBREP(const char *fn) -// { -// BRep_Builder aBuilder; -// BRepTools::Read(shape, (char*)fn, aBuilder); -// BRepTools::Clean(shape); -// healGeometry(CTX::instance()->geom.tolerance, -// CTX::instance()->geom.occFixDegenerated, -// CTX::instance()->geom.occFixSmallEdges, -// CTX::instance()->geom.occFixSmallFaces, -// CTX::instance()->geom.occSewFaces, -// false, -// CTX::instance()->geom.occConnectFaces); -// BRepTools::Clean(shape); -// buildLists(); -// } -// -// void SGEOM_Internals::writeBREP(const char *fn) -// { -// std::ofstream myFile; -// myFile.open(fn); -// try { -// BRepTools::Write(shape, myFile); -// } -// catch(Standard_Failure &err){ -// Msg::Error("%s", err.GetMessageString()); -// } -// myFile.close(); -// } -// -// void SGEOM_Internals::loadSTEP(const char *fn) -// { -// STEPControl_Reader reader; -// reader.ReadFile((char*)fn); -// reader.NbRootsForTransfer(); -// reader.TransferRoots(); -// shape = reader.OneShape(); -// BRepTools::Clean(shape); -// healGeometry(CTX::instance()->geom.tolerance, -// CTX::instance()->geom.occFixDegenerated, -// CTX::instance()->geom.occFixSmallEdges, -// CTX::instance()->geom.occFixSmallFaces, -// CTX::instance()->geom.occSewFaces, -// false, -// CTX::instance()->geom.occConnectFaces); -// BRepTools::Clean(shape); -// buildLists(); -// } -// -// void SGEOM_Internals::writeSTEP(const char *fn) -// { -// STEPControl_Writer writer; -// IFSelect_ReturnStatus status = writer.Transfer(shape, STEPControl_ManifoldSolidBrep); -// if(status == IFSelect_RetDone) -// status = writer.Write((char*)fn); -// } -// -// void SGEOM_Internals::loadIGES(const char *fn) -// { -// IGESControl_Reader reader; -// reader.ReadFile((char*)fn); -// reader.NbRootsForTransfer(); -// reader.TransferRoots(); -// shape = reader.OneShape(); -// BRepTools::Clean(shape); -// healGeometry(CTX::instance()->geom.tolerance, -// CTX::instance()->geom.occFixDegenerated, -// CTX::instance()->geom.occFixSmallEdges, -// CTX::instance()->geom.occFixSmallFaces, -// CTX::instance()->geom.occSewFaces, -// false, -// CTX::instance()->geom.occConnectFaces); -// BRepTools::Clean(shape); -// buildLists(); -// } -// -// void SGEOM_Internals::loadShape(const TopoDS_Shape *s) -// { -// shape = *s; -// BRepTools::Clean(shape); -// buildLists(); -// } -// -// GVertex *SGEOM_Internals::getOCCVertexByNativePtr(GModel *model, TopoDS_Vertex toFind) -// { -// if(gvNumCache.IsBound(toFind)) -// return model->getVertexByTag(gvNumCache.Find(toFind)); -// return 0; -// } -// -// GEdge *SGEOM_Internals::getOCCEdgeByNativePtr(GModel *model, TopoDS_Edge toFind) -// { -// if(geNumCache.IsBound(toFind)) -// return model->getEdgeByTag(geNumCache.Find(toFind)); -// return 0; -// } -// -// GFace *SGEOM_Internals::getOCCFaceByNativePtr(GModel *model, TopoDS_Face toFind) -// { -// if(gfNumCache.IsBound(toFind)) -// return model->getFaceByTag(gfNumCache.Find(toFind)); -// return 0; -// } -// -// GRegion *SGEOM_Internals::getOCCRegionByNativePtr(GModel *model, TopoDS_Solid toFind) -// { -// if(grNumCache.IsBound(toFind)) -// return model->getRegionByTag(grNumCache.Find(toFind)); -// return 0; -// } -// -// GVertex *SGEOM_Internals::addVertexToModel(GModel *model, TopoDS_Vertex vertex) -// { -// GVertex *gv = getOCCVertexByNativePtr(model, vertex); -// if(gv) return gv; -// addShapeToLists(vertex); -// buildShapeFromLists(vertex); -// buildGModel(model); -// return getOCCVertexByNativePtr(model, vertex); -// } -// -// GEdge *SGEOM_Internals::addEdgeToModel(GModel *model, TopoDS_Edge edge) -// { -// GEdge *ge = getOCCEdgeByNativePtr(model, edge); -// if(ge) return ge; -// addShapeToLists(edge); -// buildShapeFromLists(edge); -// buildGModel(model); -// return getOCCEdgeByNativePtr(model, edge); -// } -// -// GFace* SGEOM_Internals::addFaceToModel(GModel *model, TopoDS_Face face) -// { -// GFace *gf = getOCCFaceByNativePtr(model, face); -// if(gf) return gf; -// addShapeToLists(face); -// buildShapeFromLists(face); -// buildGModel(model); -// return getOCCFaceByNativePtr(model, face); -// } -// -// GRegion* SGEOM_Internals::addRegionToModel(GModel *model, TopoDS_Solid region) -// { -// GRegion *gr = getOCCRegionByNativePtr(model, region); -// if(gr) return gr; -// addShapeToLists(region); -// buildShapeFromLists(region); -// buildGModel(model); -// return getOCCRegionByNativePtr(model, region); -// } -// -// void SGEOM_Internals::buildGModel(GModel *model) -// { -// // building geom vertices -// int numv = model->getMaxElementaryNumber(0) + 1; -// for(int i = 1; i <= vmap.Extent(); i++){ -// TopoDS_Vertex vertex = TopoDS::Vertex(vmap(i)); -// if(!getOCCVertexByNativePtr(model, vertex)){ -// model->add(new OCCVertex(model, numv, vertex)); -// numv++; -// } -// } -// -// // building geom edges -// int nume = model->getMaxElementaryNumber(1) + 1; -// for(int i = 1; i <= emap.Extent(); i++){ -// int i1 = vmap.FindIndex(TopExp::FirstVertex(TopoDS::Edge(emap(i)))); -// int i2 = vmap.FindIndex(TopExp::LastVertex(TopoDS::Edge(emap(i)))); -// if(!getOCCEdgeByNativePtr(model, TopoDS::Edge(emap(i)))){ -// GVertex *v1 = getOCCVertexByNativePtr(model, TopoDS::Vertex(vmap(i1))); -// GVertex *v2 = getOCCVertexByNativePtr(model, TopoDS::Vertex(vmap(i2))); -// model->add(new OCCEdge(model, TopoDS::Edge(emap(i)), nume, v1, v2)); -// nume++; -// } -// } -// -// // building geom faces -// int numf = model->getMaxElementaryNumber(2) + 1; -// for(int i = 1; i <= fmap.Extent(); i++){ -// if(!getOCCFaceByNativePtr(model, TopoDS::Face(fmap(i)))){ -// model->add(new OCCFace(model, TopoDS::Face(fmap(i)), numf)); -// numf++; -// } -// } -// -// // building geom regions -// int numr = model->getMaxElementaryNumber(3) + 1; -// for(int i = 1; i <= somap.Extent(); i++){ -// if(!getOCCRegionByNativePtr(model, TopoDS::Solid(somap(i)))){ -// model->add(new OCCRegion(model, TopoDS::Solid(somap(i)), numr)); -// numr++; -// } -// } -// } -// -// void addSimpleShapes(TopoDS_Shape theShape, TopTools_ListOfShape &theList) -// { -// if(theShape.ShapeType() != TopAbs_COMPOUND && -// theShape.ShapeType() != TopAbs_COMPSOLID) { -// theList.Append(theShape); -// return; -// } -// -// TopTools_MapOfShape mapShape; -// TopoDS_Iterator It(theShape, Standard_True, Standard_True); -// -// for(; It.More(); It.Next()) { -// TopoDS_Shape aShape_i = It.Value(); -// if(mapShape.Add(aShape_i)) { -// if(aShape_i.ShapeType() == TopAbs_COMPOUND || -// aShape_i.ShapeType() == TopAbs_COMPSOLID) { -// addSimpleShapes(aShape_i, theList); -// } -// else { -// theList.Append(aShape_i); -// } -// } -// } -// } -// -// void SGEOM_Internals::applyBooleanOperator(TopoDS_Shape tool, const BooleanOperator &op) -// { -// if(tool.IsNull()) return; -// if(shape.IsNull()) shape = tool; -// else{ -// switch(op){ -// case SGEOM_Internals::Intersection : -// { -// TopoDS_Shape theNewShape; -// BRep_Builder B; -// TopoDS_Compound C; -// B.MakeCompound(C); -// TopTools_ListOfShape listShape1, listShape2; -// addSimpleShapes(shape, listShape1); -// addSimpleShapes(tool, listShape2); -// Standard_Boolean isCompound = -// (listShape1.Extent() > 1 || listShape2.Extent() > 1); -// -// TopTools_ListIteratorOfListOfShape itSub1(listShape1); -// for(; itSub1.More(); itSub1.Next()) { -// TopoDS_Shape aValue1 = itSub1.Value(); -// TopTools_ListIteratorOfListOfShape itSub2(listShape2); -// for(; itSub2.More(); itSub2.Next()) { -// TopoDS_Shape aValue2 = itSub2.Value(); -// BRepAlgoAPI_Common BO(aValue1, aValue2); -// if(!BO.IsDone()) { -// Msg::Error("Boolean Intersection Operator can not be performed"); -// } -// if(isCompound) { -// TopoDS_Shape aStepResult = BO.Shape(); -// if(aStepResult.ShapeType() == TopAbs_COMPOUND) { -// TopoDS_Iterator aCompIter(aStepResult); -// for(; aCompIter.More(); aCompIter.Next()) { -// B.Add(C, aCompIter.Value()); -// } -// } -// else { -// B.Add(C, aStepResult); -// } -// } -// else -// theNewShape = BO.Shape(); -// } -// } -// if(isCompound) { -// TopTools_ListOfShape listShapeC; -// addSimpleShapes(C, listShapeC); -// TopTools_ListIteratorOfListOfShape itSubC(listShapeC); -// //bool isOnlySolids = true; -// for(; itSubC.More(); itSubC.Next()) { -// TopoDS_Shape aValueC = itSubC.Value(); -// //if(aValueC.ShapeType() != TopAbs_SOLID) isOnlySolids = false; -// } -// // if(isOnlySolids) -// // theNewShape = GlueFaces(C, Precision::Confusion()); -// // else -// theNewShape = C; -// } -// shape = theNewShape; -// } -// break; -// case SGEOM_Internals::Cut : -// { -// TopoDS_Shape theNewShape; -// BRep_Builder B; -// TopoDS_Compound C; -// B.MakeCompound(C); -// -// TopTools_ListOfShape listShapes, listTools; -// addSimpleShapes(shape, listShapes); -// addSimpleShapes(tool, listTools); -// -// Standard_Boolean isCompound = (listShapes.Extent() > 1); -// -// TopTools_ListIteratorOfListOfShape itSub1(listShapes); -// for(; itSub1.More(); itSub1.Next()) { -// TopoDS_Shape aCut = itSub1.Value(); -// // tools -// TopTools_ListIteratorOfListOfShape itSub2(listTools); -// for(; itSub2.More(); itSub2.Next()) { -// TopoDS_Shape aTool = itSub2.Value(); -// BRepAlgoAPI_Cut BO(aCut, aTool); -// if(!BO.IsDone()) { -// Msg::Error("Cut operation can not be performed on the given shapes"); -// return; -// } -// aCut = BO.Shape(); -// } -// if(isCompound) { -// if(aCut.ShapeType() == TopAbs_COMPOUND) { -// TopoDS_Iterator aCompIter(aCut); -// for(; aCompIter.More(); aCompIter.Next()) { -// B.Add(C, aCompIter.Value()); -// } -// } -// else { -// B.Add(C, aCut); -// } -// } -// else -// theNewShape = aCut; -// } -// -// if(isCompound) { -// TopTools_ListOfShape listShapeC; -// addSimpleShapes(C, listShapeC); -// TopTools_ListIteratorOfListOfShape itSubC(listShapeC); -// //bool isOnlySolids = true; -// for(; itSubC.More(); itSubC.Next()) { -// TopoDS_Shape aValueC = itSubC.Value(); -// //if(aValueC.ShapeType() != TopAbs_SOLID) isOnlySolids = false; -// } -// // if(isOnlySolids) -// // theNewShape = GlueFaces(C, Precision::Confusion()); -// // else -// theNewShape = C; -// } -// shape = theNewShape; -// } -// break; -// case SGEOM_Internals::Fuse : -// { -// BRepAlgoAPI_Fuse BO(tool, shape); -// if(!BO.IsDone()) { -// Msg::Error("Fuse operation can not be performed on the given shapes"); -// } -// shape = BO.Shape(); -// } -// break; -// case SGEOM_Internals::Section : -// { -// TopoDS_Shape theNewShape; -// BRep_Builder B; -// TopoDS_Compound C; -// B.MakeCompound(C); -// -// TopTools_ListOfShape listShapes, listTools; -// addSimpleShapes(shape, listShapes); -// addSimpleShapes(tool, listTools); -// -// Standard_Boolean isCompound = (listShapes.Extent() > 1); -// TopTools_ListIteratorOfListOfShape itSub1(listShapes); -// for(; itSub1.More(); itSub1.Next()) { -// TopoDS_Shape aValue1 = itSub1.Value(); -// TopTools_ListIteratorOfListOfShape itSub2(listTools); -// for(; itSub2.More(); itSub2.Next()) { -// TopoDS_Shape aValue2 = itSub2.Value(); -// BRepAlgoAPI_Section BO(aValue1, aValue2, Standard_False); -// BO.Approximation(Standard_True); -// BO.Build(); -// if(!BO.IsDone()) { -// Msg::Error("Section operation can not be performed on the given shapes"); -// return; -// } -// if(isCompound) { -// TopoDS_Shape aStepResult = BO.Shape(); -// if(aStepResult.ShapeType() == TopAbs_COMPOUND) { -// TopoDS_Iterator aCompIter(aStepResult); -// for(; aCompIter.More(); aCompIter.Next()) { -// B.Add(C, aCompIter.Value()); -// } -// } -// else { -// B.Add(C, aStepResult); -// } -// } -// else -// theNewShape = BO.Shape(); -// } -// } -// if(isCompound) -// theNewShape = C; -// shape = theNewShape; -// } -// break; -// default : -// Msg::Error("Requested boolean operation not implemented"); -// break; -// } -// } -// } -// -// void SGEOM_Internals::fillet(std::vector<TopoDS_Edge> &edgesToFillet, -// double Radius) -// { -// // create a tool for fillet -// BRepFilletAPI_MakeFillet fill(shape); -// for(unsigned int i = 0; i < edgesToFillet.size(); ++i){ -// fill.Add(edgesToFillet[i]); -// } -// for(int i = 1; i <= fill.NbContours(); i++){ -// fill.SetRadius(Radius, i, 1); -// } -// fill.Build(); -// if(!fill.IsDone()) { -// Msg::Error("Fillet can't be computed on the given shape with the given radius"); -// return; -// } -// shape = fill.Shape(); -// -// if(shape.IsNull()) return; -// -// // Check shape validity -// BRepCheck_Analyzer ana(shape, false); -// if(!ana.IsValid()) { -// Msg::Error("Fillet algorithm have produced an invalid shape result"); -// } -// } -// -// void GModel::_deleteOCCInternals() -// { -// if(_occ_internals) delete _occ_internals; -// _occ_internals = 0; -// } -// -// int GModel::readOCCBREP(const std::string &fn) -// { -// _occ_internals = new SGEOM_Internals; -// _occ_internals->loadBREP(fn.c_str()); -// _occ_internals->buildGModel(this); -// snapVertices(); -// return 1; -// } -// -// int GModel::readOCCSTEP(const std::string &fn) -// { -// _occ_internals = new SGEOM_Internals; -// _occ_internals->loadSTEP(fn.c_str()); -// _occ_internals->buildGModel(this); -// //snapVertices(); -// return 1; -// } -// -// int GModel::readOCCIGES(const std::string &fn) -// { -// _occ_internals = new SGEOM_Internals; -// _occ_internals->loadIGES(fn.c_str()); -// _occ_internals->buildGModel(this); -// return 1; -// } -// -// int GModel::writeOCCBREP(const std::string &fn) -// { -// if(!_occ_internals){ -// Msg::Error("No OpenCASCADE model found"); -// return 0; -// } -// else -// _occ_internals->writeBREP(fn.c_str()); -// return 1; -// } -// -// int GModel::writeOCCSTEP(const std::string &fn) -// { -// if(!_occ_internals){ -// Msg::Error("No OpenCASCADE model found"); -// return 0; -// } -// else -// _occ_internals->writeSTEP(fn.c_str()); -// return 1; -// } -// -// int GModel::importOCCShape(const void *shape) -// { -// _occ_internals = new SGEOM_Internals; -// _occ_internals->loadShape((TopoDS_Shape*)shape); -// _occ_internals->buildGModel(this); -// snapVertices(); -// SetBoundingBox(); -// return 1; -// } -// -// #else -// -// void GModel::_deleteOCCInternals() -// { -// } -// -// int GModel::readOCCBREP(const std::string &fn) -// { -// Msg::Error("Gmsh must be compiled with Open CASCADE support to load '%s'", -// fn.c_str()); -// return 0; -// } -// -// int GModel::readOCCSTEP(const std::string &fn) -// { -// Msg::Error("Gmsh must be compiled with Open CASCADE support to load '%s'", -// fn.c_str()); -// return 0; -// } -// -// int GModel::readOCCIGES(const std::string &fn) -// { -// Msg::Error("Gmsh must be compiled with Open CASCADE support to load '%s'", -// fn.c_str()); -// return 0; -// } -// -// int GModel::writeOCCBREP(const std::string &fn) -// { -// Msg::Error("Gmsh must be compiled with Open CASCADE support to write '%s'", -// fn.c_str()); -// return 0; -// } -// -// int GModel::writeOCCSTEP(const std::string &fn) -// { -// Msg::Error("Gmsh must be compiled with Open CASCADE support to write '%s'", -// fn.c_str()); -// return 0; -// } -// -// int GModel::importOCCShape(const void *shape) -// { -// Msg::Error("Gmsh must be compiled with Open CASCADE support to import " -// "a TopoDS_Shape"); -// return 0; -// } - -#endif diff --git a/Geo/GModelIO_SGEOM.h b/Geo/GModelIO_SGEOM.h deleted file mode 100644 index 9e1e80ddff2fe93a6dc5d14dd23fd9da2c3d1006..0000000000000000000000000000000000000000 --- a/Geo/GModelIO_SGEOM.h +++ /dev/null @@ -1,63 +0,0 @@ -// Gmsh - Copyright (C) 1997-2017 C. Geuzaine, J.-F. Remacle -// -// See the LICENSE.txt file for license information. Please report all -// bugs and problems to the public mailing list <gmsh@onelab.info>. - -#ifndef _GMODELIO_SGEOM_H_ -#define _GMODELIO_SGEOM_H_ - -#include "GmshConfig.h" -#include "GModel.h" -#include "SGEOMIncludes.h" - -#if defined(HAVE_SGEOM) && defined(HAVE_OCC) -#include <vector> - -class SGEOM_Internals { - protected : - // // the shape - // TopoDS_Shape shape; - // // all the (sub) TopoDS_Shapes in 'shape' - // TopTools_IndexedMapOfShape fmap, emap, vmap, somap, shmap, wmap; - // // cache mapping TopoDS_Shapes to their corresponding GEntity tags - // TopTools_DataMapOfShapeInteger gvNumCache, geNumCache, gfNumCache, grNumCache; - public: - // enum BooleanOperator { Intersection, Cut, Section, Fuse }; - // OCC_Internals(){} - // TopoDS_Shape getShape () { return shape; } - // void buildLists(); - // void buildShapeFromLists(TopoDS_Shape _shape); - // void addShapeToLists(TopoDS_Shape shape); - // void healGeometry(double tolerance, bool fixdegenerated, - // bool fixsmalledges, bool fixspotstripfaces, - // bool sewfaces, bool makesolids=false, - // bool connect=false); - // void loadBREP(const char *); - // void writeBREP(const char *); - // void loadSTEP(const char *); - // void writeSTEP(const char *); - // void loadIGES(const char *); - // void loadShape(const TopoDS_Shape *); - // void buildGModel(GModel *gm); - // void bind(TopoDS_Vertex vertex, int num){ gvNumCache.Bind(vertex, num); } - // void bind(TopoDS_Edge edge, int num){ geNumCache.Bind(edge, num); } - // void bind(TopoDS_Face face, int num){ gfNumCache.Bind(face, num); } - // void bind(TopoDS_Solid solid, int num){ grNumCache.Bind(solid, num); } - // void unbind(TopoDS_Vertex vertex){ gvNumCache.UnBind(vertex); } - // void unbind(TopoDS_Edge edge){ geNumCache.UnBind(edge); } - // void unbind(TopoDS_Face face){ gfNumCache.UnBind(face); } - // void unbind(TopoDS_Solid solid){ grNumCache.UnBind(solid); } - // GVertex *getOCCVertexByNativePtr(GModel *model, TopoDS_Vertex toFind); - // GEdge *getOCCEdgeByNativePtr(GModel *model, TopoDS_Edge toFind); - // GFace *getOCCFaceByNativePtr(GModel *model, TopoDS_Face toFind); - // GRegion *getOCCRegionByNativePtr(GModel *model, TopoDS_Solid toFind); - // GVertex *addVertexToModel(GModel *model, TopoDS_Vertex v); - // GEdge *addEdgeToModel(GModel *model, TopoDS_Edge e); - // GFace *addFaceToModel(GModel *model, TopoDS_Face f); - // GRegion *addRegionToModel(GModel *model, TopoDS_Solid r); - // void fillet(std::vector<TopoDS_Edge> &shapes, double radius); - // void applyBooleanOperator(TopoDS_Shape tool, const BooleanOperator &op); -}; - -#endif -#endif diff --git a/Geo/SGEOMIncludes.h b/Geo/SGEOMIncludes.h deleted file mode 100644 index 6a6225febc7d492b1dd337b7534e50322fd7f514..0000000000000000000000000000000000000000 --- a/Geo/SGEOMIncludes.h +++ /dev/null @@ -1,337 +0,0 @@ -// Gmsh - Copyright (C) 1997-2017 C. Geuzaine, J.-F. Remacle -// -// See the LICENSE.txt file for license information. Please report all -// bugs and problems to the public mailing list <gmsh@onelab.info>. - -#ifndef _SGEOM_INCLUDES_ -#define _SGEOM_INCLUDES_ - -#include "GmshConfig.h" - -#if defined(HAVE_SGEOM) && defined(HAVE_OCC) - -#include <iostream> -using std::iostream; - -#if !defined(HAVE_NO_OCC_CONFIG_H) -#include <config.h> -#endif - -#include <Archimede_VolumeSection.hxx> -#include <Basics_OCCTVersion.hxx> -#include <Basics_Utils.hxx> -#include <BlockFix.hxx> -#include <BlockFix_BlockFixAPI.hxx> -#include <BlockFix_CheckTool.hxx> -#include <BlockFix_PeriodicSurfaceModifier.hxx> -#include <BlockFix_SphereSpaceModifier.hxx> -#include <BlockFix_UnionEdges.hxx> -#include <BlockFix_UnionFaces.hxx> -#include <GEOMAlgo_Algo.hxx> -#include <GEOMAlgo_Builder.hxx> -#include <GEOMAlgo_BuilderArea.hxx> -#include <GEOMAlgo_BuilderFace.hxx> -#include <GEOMAlgo_BuilderShape.hxx> -#include <GEOMAlgo_BuilderSolid.hxx> -#include <GEOMAlgo_BuilderTools.hxx> -#include <GEOMAlgo_Clsf.hxx> -#include <GEOMAlgo_ClsfBox.hxx> -#include <GEOMAlgo_ClsfSolid.hxx> -#include <GEOMAlgo_ClsfSurf.hxx> -#include <GEOMAlgo_CoupleOfShapes.hxx> -#include <GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape.hxx> -#include <GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger.hxx> -#include <GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape.hxx> -#include <GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape.hxx> -#include <GEOMAlgo_DataMapIteratorOfDataMapOfShapeMapOfShape.hxx> -#include <GEOMAlgo_DataMapIteratorOfDataMapOfShapePnt.hxx> -#include <GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal.hxx> -#include <GEOMAlgo_DataMapIteratorOfDataMapOfShapeShapeSet.hxx> -#include <GEOMAlgo_DataMapOfOrientedShapeShape.hxx> -#include <GEOMAlgo_DataMapOfPassKeyInteger.hxx> -#include <GEOMAlgo_DataMapOfPassKeyShapeShape.hxx> -#include <GEOMAlgo_DataMapOfRealListOfShape.hxx> -#include <GEOMAlgo_DataMapOfShapeMapOfShape.hxx> -#include <GEOMAlgo_DataMapOfShapePnt.hxx> -#include <GEOMAlgo_DataMapOfShapeReal.hxx> -#include <GEOMAlgo_DataMapOfShapeShapeSet.hxx> -#include <GEOMAlgo_FinderShapeOn.hxx> -#include <GEOMAlgo_FinderShapeOn1.hxx> -#include <GEOMAlgo_FinderShapeOn2.hxx> -#include <GEOMAlgo_FinderShapeOnQuad.hxx> -#include <GEOMAlgo_GetInPlace.hxx> -#include <GEOMAlgo_GlueAnalyser.hxx> -#include <GEOMAlgo_GlueDetector.hxx> -#include <GEOMAlgo_Gluer.hxx> -#include <GEOMAlgo_Gluer2.hxx> -#include <GEOMAlgo_GluerAlgo.hxx> -#include <GEOMAlgo_HAlgo.hxx> -#include <GEOMAlgo_IndexedDataMapOfIntegerShape.hxx> -#include <GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape.hxx> -#include <GEOMAlgo_IndexedDataMapOfShapeBox.hxx> -#include <GEOMAlgo_IndexedDataMapOfShapeShapeInfo.hxx> -#include <GEOMAlgo_IndexedDataMapOfShapeState.hxx> -#include <GEOMAlgo_KindOfBounds.hxx> -#include <GEOMAlgo_KindOfClosed.hxx> -#include <GEOMAlgo_KindOfName.hxx> -#include <GEOMAlgo_KindOfShape.hxx> -#include <GEOMAlgo_ListIteratorOfListOfCoupleOfShapes.hxx> -#include <GEOMAlgo_ListIteratorOfListOfPnt.hxx> -#include <GEOMAlgo_ListOfCoupleOfShapes.hxx> -#include <GEOMAlgo_ListOfPnt.hxx> -#include <GEOMAlgo_PWireEdgeSet.hxx> -#include <GEOMAlgo_PassKey.hxx> -#include <GEOMAlgo_PassKeyMapHasher.hxx> -#include <GEOMAlgo_PassKeyShape.hxx> -#include <GEOMAlgo_PassKeyShapeMapHasher.hxx> -#include <GEOMAlgo_ShapeAlgo.hxx> -#include <GEOMAlgo_ShapeInfo.hxx> -#include <GEOMAlgo_ShapeInfoFiller.hxx> -#include <GEOMAlgo_ShapeSet.hxx> -#include <GEOMAlgo_ShapeSolid.hxx> -#include <GEOMAlgo_ShellSolid.hxx> -#include <GEOMAlgo_SolidSolid.hxx> -#include <GEOMAlgo_Splitter.hxx> -#include <GEOMAlgo_State.hxx> -#include <GEOMAlgo_StateCollector.hxx> -#include <GEOMAlgo_SurfaceTools.hxx> -#include <GEOMAlgo_Tools.hxx> -#include <GEOMAlgo_Tools3D.hxx> -#include <GEOMAlgo_VertexSolid.hxx> -#include <GEOMAlgo_WESCorrector.hxx> -#include <GEOMAlgo_WESScaler.hxx> -#include <GEOMAlgo_WireEdgeSet.hxx> -#include <GEOMAlgo_WireSolid.hxx> -#include <GEOMAlgo_WireSplitter.hxx> -#include <GEOMImpl_3DSketcherDriver.hxx> -#include <GEOMImpl_ArcDriver.hxx> -#include <GEOMImpl_ArchimedeDriver.hxx> -#include <GEOMImpl_Block6Explorer.hxx> -#include <GEOMImpl_BlockDriver.hxx> -#include <GEOMImpl_BooleanDriver.hxx> -#include <GEOMImpl_BoxDriver.hxx> -#include <GEOMImpl_ChamferDriver.hxx> -#include <GEOMImpl_CircleDriver.hxx> -#include <GEOMImpl_ConeDriver.hxx> -#include <GEOMImpl_CopyDriver.hxx> -#include <GEOMImpl_CylinderDriver.hxx> -#include <GEOMImpl_DiskDriver.hxx> -#include <GEOMImpl_DividedDiskDriver.hxx> -#include <GEOMImpl_EllipseDriver.hxx> -#include <GEOMImpl_ExportDriver.hxx> -#include <GEOMImpl_FaceDriver.hxx> -#include <GEOMImpl_Fillet1d.hxx> -#include <GEOMImpl_Fillet1dDriver.hxx> -#include <GEOMImpl_Fillet2dDriver.hxx> -#include <GEOMImpl_FilletDriver.hxx> -#include <GEOMImpl_FillingDriver.hxx> -#include <GEOMImpl_Gen.hxx> -#include <GEOMImpl_GlueDriver.hxx> -#include <GEOMImpl_HealingDriver.hxx> -#include <GEOMImpl_I3DPrimOperations.hxx> -#include <GEOMImpl_I3DSketcher.hxx> -#include <GEOMImpl_IAdvancedOperations.hxx> -#include <GEOMImpl_IArc.hxx> -#include <GEOMImpl_IArchimede.hxx> -#include <GEOMImpl_IBasicOperations.hxx> -#include <GEOMImpl_IBlockTrsf.hxx> -#include <GEOMImpl_IBlocks.hxx> -#include <GEOMImpl_IBlocksOperations.hxx> -#include <GEOMImpl_IBoolean.hxx> -#include <GEOMImpl_IBooleanOperations.hxx> -#include <GEOMImpl_IBox.hxx> -#include <GEOMImpl_IChamfer.hxx> -#include <GEOMImpl_ICircle.hxx> -#include <GEOMImpl_ICone.hxx> -#include <GEOMImpl_ICopy.hxx> -#include <GEOMImpl_ICurvesOperations.hxx> -#include <GEOMImpl_ICylinder.hxx> -#include <GEOMImpl_IDisk.hxx> -#include <GEOMImpl_IDividedDisk.hxx> -#include <GEOMImpl_IEllipse.hxx> -#include <GEOMImpl_IFace.hxx> -#include <GEOMImpl_IFillet.hxx> -#include <GEOMImpl_IFillet1d.hxx> -#include <GEOMImpl_IFillet2d.hxx> -#include <GEOMImpl_IFilling.hxx> -#include <GEOMImpl_IGlue.hxx> -#include <GEOMImpl_IGroupOperations.hxx> -#include <GEOMImpl_IHealing.hxx> -#include <GEOMImpl_IHealingOperations.hxx> -#include <GEOMImpl_IImportExport.hxx> -#include <GEOMImpl_IInsertOperations.hxx> -#include <GEOMImpl_ILine.hxx> -#include <GEOMImpl_ILocalOperations.hxx> -#include <GEOMImpl_IMarker.hxx> -#include <GEOMImpl_IMeasure.hxx> -#include <GEOMImpl_IMeasureOperations.hxx> -#include <GEOMImpl_IMirror.hxx> -#include <GEOMImpl_IOffset.hxx> -#include <GEOMImpl_IPartition.hxx> -#include <GEOMImpl_IPipe.hxx> -#include <GEOMImpl_IPipeBiNormal.hxx> -#include <GEOMImpl_IPipeDiffSect.hxx> -#include <GEOMImpl_IPipePath.hxx> -#include <GEOMImpl_IPipeShellSect.hxx> -#include <GEOMImpl_IPipeTShape.hxx> -#include <GEOMImpl_IPlane.hxx> -#include <GEOMImpl_IPoint.hxx> -#include <GEOMImpl_IPolyline.hxx> -#include <GEOMImpl_IPosition.hxx> -#include <GEOMImpl_IPrism.hxx> -#include <GEOMImpl_IRevolution.hxx> -#include <GEOMImpl_IRotate.hxx> -#include <GEOMImpl_IScale.hxx> -#include <GEOMImpl_IShapes.hxx> -#include <GEOMImpl_IShapesOperations.hxx> -#include <GEOMImpl_ISketcher.hxx> -#include <GEOMImpl_ISphere.hxx> -#include <GEOMImpl_ISpline.hxx> -#include <GEOMImpl_IThruSections.hxx> -#include <GEOMImpl_ITorus.hxx> -#include <GEOMImpl_ITransformOperations.hxx> -#include <GEOMImpl_ITranslate.hxx> -#include <GEOMImpl_IVector.hxx> -#include <GEOMImpl_ImportDriver.hxx> -#include <GEOMImpl_LineDriver.hxx> -#include <GEOMImpl_MarkerDriver.hxx> -#include <GEOMImpl_MeasureDriver.hxx> -#include <GEOMImpl_MirrorDriver.hxx> -#include <GEOMImpl_OffsetDriver.hxx> -#include <GEOMImpl_PartitionDriver.hxx> -#include <GEOMImpl_PipeDriver.hxx> -#include <GEOMImpl_PipePathDriver.hxx> -#include <GEOMImpl_PipeTShapeDriver.hxx> -#include <GEOMImpl_PlaneDriver.hxx> -#include <GEOMImpl_PointDriver.hxx> -#include <GEOMImpl_PolylineDriver.hxx> -#include <GEOMImpl_PositionDriver.hxx> -#include <GEOMImpl_PrismDriver.hxx> -#include <GEOMImpl_ProjectionDriver.hxx> -#include <GEOMImpl_RevolutionDriver.hxx> -#include <GEOMImpl_RotateDriver.hxx> -#include <GEOMImpl_ScaleDriver.hxx> -#include <GEOMImpl_ShapeDriver.hxx> -#include <GEOMImpl_SketcherDriver.hxx> -#include <GEOMImpl_SphereDriver.hxx> -#include <GEOMImpl_SplineDriver.hxx> -#include <GEOMImpl_ThruSectionsDriver.hxx> -#include <GEOMImpl_TorusDriver.hxx> -#include <GEOMImpl_TranslateDriver.hxx> -#include <GEOMImpl_Types.hxx> -#include <GEOMImpl_VectorDriver.hxx> -#include <GEOMUtils.hxx> -#include <GEOM_Application.hxx> -#include <GEOM_Application.ixx> -#include <GEOM_Application.jxx> -#include <GEOM_DataMapIteratorOfDataMapOfAsciiStringTransient.hxx> -#include <GEOM_DataMapNodeOfDataMapOfAsciiStringTransient.hxx> -#include <GEOM_DataMapOfAsciiStringTransient.hxx> -#include <GEOM_Engine.hxx> -#include <GEOM_Function.hxx> -#include <GEOM_GEOMImpl.hxx> -#include <GEOM_IOperations.hxx> -#include <GEOM_ISubShape.hxx> -#include <GEOM_Object.hxx> -#include <GEOM_PythonDump.hxx> -#include <GEOM_Solver.hxx> -#include <GEOM_SubShapeDriver.hxx> -#include <GUID.txt> -#include <Handle_GEOM_Application.hxx> -#include <Handle_GEOM_DataMapNodeOfDataMapOfAsciiStringTransient.hxx> -#include <NMTDS_BndSphere.hxx> -#include <NMTDS_BndSphere.lxx> -#include <NMTDS_BndSphereTree.hxx> -#include <NMTDS_BoxBndTree.hxx> -#include <NMTDS_CArray1OfIndexRange.hxx> -#include <NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger.hxx> -#include <NMTDS_DataMapOfIntegerMapOfInteger.hxx> -#include <NMTDS_IndexRange.hxx> -#include <NMTDS_IndexedDataMapOfIntegerShape.hxx> -#include <NMTDS_IndexedDataMapOfShapeBndSphere.hxx> -#include <NMTDS_IndexedDataMapOfShapeBox.hxx> -#include <NMTDS_InterfPool.hxx> -#include <NMTDS_InterfType.hxx> -#include <NMTDS_Iterator.hxx> -#include <NMTDS_IteratorCheckerSI.hxx> -#include <NMTDS_ListIteratorOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx> -#include <NMTDS_ListIteratorOfListOfPair.hxx> -#include <NMTDS_ListIteratorOfListOfPairBoolean.hxx> -#include <NMTDS_ListIteratorOfListOfPassKey.hxx> -#include <NMTDS_ListIteratorOfListOfPassKeyBoolean.hxx> -#include <NMTDS_ListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx> -#include <NMTDS_ListOfPair.hxx> -#include <NMTDS_ListOfPairBoolean.hxx> -#include <NMTDS_ListOfPassKey.hxx> -#include <NMTDS_ListOfPassKeyBoolean.hxx> -#include <NMTDS_MapIteratorOfMapOfPairBoolean.hxx> -#include <NMTDS_MapIteratorOfMapOfPassKey.hxx> -#include <NMTDS_MapIteratorOfMapOfPassKeyBoolean.hxx> -#include <NMTDS_MapOfPairBoolean.hxx> -#include <NMTDS_MapOfPassKey.hxx> -#include <NMTDS_MapOfPassKeyBoolean.hxx> -#include <NMTDS_PInterfPool.hxx> -#include <NMTDS_PIterator.hxx> -#include <NMTDS_PShapesDataStructure.hxx> -#include <NMTDS_Pair.hxx> -#include <NMTDS_PairBoolean.hxx> -#include <NMTDS_PairMapHasher.hxx> -#include <NMTDS_PassKey.hxx> -#include <NMTDS_PassKeyBoolean.hxx> -#include <NMTDS_PassKeyMapHasher.hxx> -#include <NMTDS_PassKeyShape.hxx> -#include <NMTDS_PassKeyShapeMapHasher.hxx> -#include <NMTDS_ShapesDataStructure.hxx> -#include <NMTDS_Tools.hxx> -#include <NMTTools_CheckerSI.hxx> -#include <NMTTools_CommonBlock.hxx> -#include <NMTTools_CommonBlockAPI.hxx> -#include <NMTTools_CommonBlockPool.hxx> -#include <NMTTools_CoupleOfShape.hxx> -#include <NMTTools_DEProcessor.hxx> -#include <NMTTools_DataMapIteratorOfDataMapOfIntegerFaceInfo.hxx> -#include <NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock.hxx> -#include <NMTTools_DataMapOfIntegerFaceInfo.hxx> -#include <NMTTools_DataMapOfIntegerListOfPaveBlock.hxx> -#include <NMTTools_FaceInfo.hxx> -#include <NMTTools_FaceInfo.lxx> -#include <NMTTools_IndexedDataMapOfIndexedMapOfInteger.hxx> -#include <NMTTools_IndexedDataMapOfShapeIndexedMapOfShape.hxx> -#include <NMTTools_IndexedDataMapOfShapePaveBlock.hxx> -#include <NMTTools_ListIteratorOfListOfCommonBlock.hxx> -#include <NMTTools_ListIteratorOfListOfCoupleOfShape.hxx> -#include <NMTTools_ListOfCommonBlock.hxx> -#include <NMTTools_ListOfCoupleOfShape.hxx> -#include <NMTTools_MapIteratorOfMapOfPaveBlock.hxx> -#include <NMTTools_MapOfPaveBlock.hxx> -#include <NMTTools_PPaveFiller.hxx> -#include <NMTTools_PaveFiller.hxx> -#include <NMTTools_Tools.hxx> -#include <OpUtil.hxx> -#include <SALOME_Basics.hxx> -#include <SALOME_Utils.hxx> -#include <ShHealOper_ChangeOrientation.hxx> -#include <ShHealOper_CloseContour.hxx> -#include <ShHealOper_EdgeDivide.hxx> -#include <ShHealOper_FillHoles.hxx> -#include <ShHealOper_RemoveFace.hxx> -#include <ShHealOper_RemoveInternalWires.hxx> -#include <ShHealOper_Sewing.hxx> -#include <ShHealOper_ShapeProcess.hxx> -#include <ShHealOper_SpiltCurve2d.hxx> -#include <ShHealOper_SplitCurve2d.hxx> -#include <ShHealOper_SplitCurve3d.hxx> -#include <ShHealOper_Tool.hxx> -#include <Sketcher_Profile.hxx> -#include <Utils_ExceptHandlers.hxx> -#include <Utils_SALOME_Exception.hxx> -#include <utilities.h> - -#endif - -#if defined(WIN32) -#undef min -#undef max -#endif - -#endif diff --git a/Parser/Gmsh.l b/Parser/Gmsh.l index 09f7aa02a38aab12eb6d0051f1e4b9be1823076d..411d0706c5f5fc19972995b4a0da4b8e87a38b54 100644 --- a/Parser/Gmsh.l +++ b/Parser/Gmsh.l @@ -119,6 +119,7 @@ ArcTan2 return tAtan2; Betti return tBetti; Bezier return tBezier; +Block return tBlock; BSpline return tBSpline; BooleanUnion return tBooleanUnion; BooleanIntersection return tBooleanIntersection; @@ -132,6 +133,7 @@ CopyOptions return tCopyOptions; Coherence return tCoherence; Cohomology return tCohomology; Combine return tCombine; +Cone return tCone; Cosh return tCosh; Cos return tCos; Characteristic return tCharacteristic; @@ -147,6 +149,7 @@ CreateTopologyNoHoles return tCreateTopologyNoHoles; Cpu return tCpu; CurrentDirectory return tCurrentDirectory; CurrentDir return tCurrentDirectory; +Cylinder return tCylinder; DefineConstant return tDefineConstant; DefineNumber return tDefineNumber; @@ -161,6 +164,7 @@ SetChanged return tSetChanged; Exp return tExp; Ellipsis return tEllipse; Ellipse return tEllipse; +Ellipsoid return tEllipsoid; Else return tElse; ElseIf return tElseIf; Extrude return tExtrude; @@ -241,9 +245,9 @@ PolarSphere return tPolarSphere; Printf return tPrintf; Plugin return tPlugin; +Quadric return tQuadric; Quad[tT]ri[aA]dd[vV]erts return tQuadTriAddVerts; 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; diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index e8e6f044456654e518d95bc1ec2bd6d5d907bedf..76f4098a042f525167da05283d92ba38b92d6cb5 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -164,114 +164,119 @@ tSurface = 345, tSpline = 346, tVolume = 347, - tCharacteristic = 348, - tLength = 349, - tParametric = 350, - tElliptic = 351, - tRefineMesh = 352, - tAdaptMesh = 353, - tRelocateMesh = 354, - tSetFactory = 355, - tThruSections = 356, - tPlane = 357, - tRuled = 358, - tTransfinite = 359, - tComplex = 360, - tPhysical = 361, - tCompound = 362, - tPeriodic = 363, - tUsing = 364, - tPlugin = 365, - tDegenerated = 366, - tRecursive = 367, - tRotate = 368, - tTranslate = 369, - tSymmetry = 370, - tDilate = 371, - tExtrude = 372, - tLevelset = 373, - tAffine = 374, - tBooleanUnion = 375, - tBooleanIntersection = 376, - tBooleanSubtraction = 377, - tRecombine = 378, - tSmoother = 379, - tSplit = 380, - tDelete = 381, - tCoherence = 382, - tIntersect = 383, - tMeshAlgorithm = 384, - tReverse = 385, - tLayers = 386, - tScaleLast = 387, - tHole = 388, - tAlias = 389, - tAliasWithOptions = 390, - tCopyOptions = 391, - tQuadTriAddVerts = 392, - tQuadTriNoNewVerts = 393, - tQuadTriSngl = 394, - tQuadTriDbl = 395, - tRecombLaterals = 396, - tTransfQuadTri = 397, - tText2D = 398, - tText3D = 399, - tInterpolationScheme = 400, - tTime = 401, - tCombine = 402, - tBSpline = 403, - tBezier = 404, - tNurbs = 405, - tNurbsOrder = 406, - tNurbsKnots = 407, - tColor = 408, - tColorTable = 409, - tFor = 410, - tIn = 411, - tEndFor = 412, - tIf = 413, - tElseIf = 414, - tElse = 415, - tEndIf = 416, - tExit = 417, - tAbort = 418, - tField = 419, - tReturn = 420, - tCall = 421, - tSlide = 422, - tMacro = 423, - tShow = 424, - tHide = 425, - tGetValue = 426, - tGetStringValue = 427, - tGetEnv = 428, - tGetString = 429, - tGetNumber = 430, - tHomology = 431, - tCohomology = 432, - tBetti = 433, - tExists = 434, - tFileExists = 435, - tGMSH_MAJOR_VERSION = 436, - tGMSH_MINOR_VERSION = 437, - tGMSH_PATCH_VERSION = 438, - tGmshExecutableName = 439, - tSetPartition = 440, - tNameToString = 441, - tStringToName = 442, - tAFFECTDIVIDE = 443, - tAFFECTTIMES = 444, - tAFFECTMINUS = 445, - tAFFECTPLUS = 446, - tOR = 447, - tAND = 448, - tNOTEQUAL = 449, - tEQUAL = 450, - tGREATEROREQUAL = 451, - tLESSOREQUAL = 452, - UNARYPREC = 453, - tMINUSMINUS = 454, - tPLUSPLUS = 455 + tBlock = 348, + tCylinder = 349, + tCone = 350, + tEllipsoid = 351, + tQuadric = 352, + tCharacteristic = 353, + tLength = 354, + tParametric = 355, + tElliptic = 356, + tRefineMesh = 357, + tAdaptMesh = 358, + tRelocateMesh = 359, + tSetFactory = 360, + tThruSections = 361, + tPlane = 362, + tRuled = 363, + tTransfinite = 364, + tComplex = 365, + tPhysical = 366, + tCompound = 367, + tPeriodic = 368, + tUsing = 369, + tPlugin = 370, + tDegenerated = 371, + tRecursive = 372, + tRotate = 373, + tTranslate = 374, + tSymmetry = 375, + tDilate = 376, + tExtrude = 377, + tLevelset = 378, + tAffine = 379, + tBooleanUnion = 380, + tBooleanIntersection = 381, + tBooleanSubtraction = 382, + tRecombine = 383, + tSmoother = 384, + tSplit = 385, + tDelete = 386, + tCoherence = 387, + tIntersect = 388, + tMeshAlgorithm = 389, + tReverse = 390, + tLayers = 391, + tScaleLast = 392, + tHole = 393, + tAlias = 394, + tAliasWithOptions = 395, + tCopyOptions = 396, + tQuadTriAddVerts = 397, + tQuadTriNoNewVerts = 398, + tQuadTriSngl = 399, + tQuadTriDbl = 400, + tRecombLaterals = 401, + tTransfQuadTri = 402, + tText2D = 403, + tText3D = 404, + tInterpolationScheme = 405, + tTime = 406, + tCombine = 407, + tBSpline = 408, + tBezier = 409, + tNurbs = 410, + tNurbsOrder = 411, + tNurbsKnots = 412, + tColor = 413, + tColorTable = 414, + tFor = 415, + tIn = 416, + tEndFor = 417, + tIf = 418, + tElseIf = 419, + tElse = 420, + tEndIf = 421, + tExit = 422, + tAbort = 423, + tField = 424, + tReturn = 425, + tCall = 426, + tSlide = 427, + tMacro = 428, + tShow = 429, + tHide = 430, + tGetValue = 431, + tGetStringValue = 432, + tGetEnv = 433, + tGetString = 434, + tGetNumber = 435, + tHomology = 436, + tCohomology = 437, + tBetti = 438, + tExists = 439, + tFileExists = 440, + tGMSH_MAJOR_VERSION = 441, + tGMSH_MINOR_VERSION = 442, + tGMSH_PATCH_VERSION = 443, + tGmshExecutableName = 444, + tSetPartition = 445, + tNameToString = 446, + tStringToName = 447, + tAFFECTDIVIDE = 448, + tAFFECTTIMES = 449, + tAFFECTMINUS = 450, + tAFFECTPLUS = 451, + tOR = 452, + tAND = 453, + tNOTEQUAL = 454, + tEQUAL = 455, + tGREATEROREQUAL = 456, + tLESSOREQUAL = 457, + UNARYPREC = 458, + tMINUSMINUS = 459, + tPLUSPLUS = 460 }; #endif /* Tokens. */ @@ -365,114 +370,119 @@ #define tSurface 345 #define tSpline 346 #define tVolume 347 -#define tCharacteristic 348 -#define tLength 349 -#define tParametric 350 -#define tElliptic 351 -#define tRefineMesh 352 -#define tAdaptMesh 353 -#define tRelocateMesh 354 -#define tSetFactory 355 -#define tThruSections 356 -#define tPlane 357 -#define tRuled 358 -#define tTransfinite 359 -#define tComplex 360 -#define tPhysical 361 -#define tCompound 362 -#define tPeriodic 363 -#define tUsing 364 -#define tPlugin 365 -#define tDegenerated 366 -#define tRecursive 367 -#define tRotate 368 -#define tTranslate 369 -#define tSymmetry 370 -#define tDilate 371 -#define tExtrude 372 -#define tLevelset 373 -#define tAffine 374 -#define tBooleanUnion 375 -#define tBooleanIntersection 376 -#define tBooleanSubtraction 377 -#define tRecombine 378 -#define tSmoother 379 -#define tSplit 380 -#define tDelete 381 -#define tCoherence 382 -#define tIntersect 383 -#define tMeshAlgorithm 384 -#define tReverse 385 -#define tLayers 386 -#define tScaleLast 387 -#define tHole 388 -#define tAlias 389 -#define tAliasWithOptions 390 -#define tCopyOptions 391 -#define tQuadTriAddVerts 392 -#define tQuadTriNoNewVerts 393 -#define tQuadTriSngl 394 -#define tQuadTriDbl 395 -#define tRecombLaterals 396 -#define tTransfQuadTri 397 -#define tText2D 398 -#define tText3D 399 -#define tInterpolationScheme 400 -#define tTime 401 -#define tCombine 402 -#define tBSpline 403 -#define tBezier 404 -#define tNurbs 405 -#define tNurbsOrder 406 -#define tNurbsKnots 407 -#define tColor 408 -#define tColorTable 409 -#define tFor 410 -#define tIn 411 -#define tEndFor 412 -#define tIf 413 -#define tElseIf 414 -#define tElse 415 -#define tEndIf 416 -#define tExit 417 -#define tAbort 418 -#define tField 419 -#define tReturn 420 -#define tCall 421 -#define tSlide 422 -#define tMacro 423 -#define tShow 424 -#define tHide 425 -#define tGetValue 426 -#define tGetStringValue 427 -#define tGetEnv 428 -#define tGetString 429 -#define tGetNumber 430 -#define tHomology 431 -#define tCohomology 432 -#define tBetti 433 -#define tExists 434 -#define tFileExists 435 -#define tGMSH_MAJOR_VERSION 436 -#define tGMSH_MINOR_VERSION 437 -#define tGMSH_PATCH_VERSION 438 -#define tGmshExecutableName 439 -#define tSetPartition 440 -#define tNameToString 441 -#define tStringToName 442 -#define tAFFECTDIVIDE 443 -#define tAFFECTTIMES 444 -#define tAFFECTMINUS 445 -#define tAFFECTPLUS 446 -#define tOR 447 -#define tAND 448 -#define tNOTEQUAL 449 -#define tEQUAL 450 -#define tGREATEROREQUAL 451 -#define tLESSOREQUAL 452 -#define UNARYPREC 453 -#define tMINUSMINUS 454 -#define tPLUSPLUS 455 +#define tBlock 348 +#define tCylinder 349 +#define tCone 350 +#define tEllipsoid 351 +#define tQuadric 352 +#define tCharacteristic 353 +#define tLength 354 +#define tParametric 355 +#define tElliptic 356 +#define tRefineMesh 357 +#define tAdaptMesh 358 +#define tRelocateMesh 359 +#define tSetFactory 360 +#define tThruSections 361 +#define tPlane 362 +#define tRuled 363 +#define tTransfinite 364 +#define tComplex 365 +#define tPhysical 366 +#define tCompound 367 +#define tPeriodic 368 +#define tUsing 369 +#define tPlugin 370 +#define tDegenerated 371 +#define tRecursive 372 +#define tRotate 373 +#define tTranslate 374 +#define tSymmetry 375 +#define tDilate 376 +#define tExtrude 377 +#define tLevelset 378 +#define tAffine 379 +#define tBooleanUnion 380 +#define tBooleanIntersection 381 +#define tBooleanSubtraction 382 +#define tRecombine 383 +#define tSmoother 384 +#define tSplit 385 +#define tDelete 386 +#define tCoherence 387 +#define tIntersect 388 +#define tMeshAlgorithm 389 +#define tReverse 390 +#define tLayers 391 +#define tScaleLast 392 +#define tHole 393 +#define tAlias 394 +#define tAliasWithOptions 395 +#define tCopyOptions 396 +#define tQuadTriAddVerts 397 +#define tQuadTriNoNewVerts 398 +#define tQuadTriSngl 399 +#define tQuadTriDbl 400 +#define tRecombLaterals 401 +#define tTransfQuadTri 402 +#define tText2D 403 +#define tText3D 404 +#define tInterpolationScheme 405 +#define tTime 406 +#define tCombine 407 +#define tBSpline 408 +#define tBezier 409 +#define tNurbs 410 +#define tNurbsOrder 411 +#define tNurbsKnots 412 +#define tColor 413 +#define tColorTable 414 +#define tFor 415 +#define tIn 416 +#define tEndFor 417 +#define tIf 418 +#define tElseIf 419 +#define tElse 420 +#define tEndIf 421 +#define tExit 422 +#define tAbort 423 +#define tField 424 +#define tReturn 425 +#define tCall 426 +#define tSlide 427 +#define tMacro 428 +#define tShow 429 +#define tHide 430 +#define tGetValue 431 +#define tGetStringValue 432 +#define tGetEnv 433 +#define tGetString 434 +#define tGetNumber 435 +#define tHomology 436 +#define tCohomology 437 +#define tBetti 438 +#define tExists 439 +#define tFileExists 440 +#define tGMSH_MAJOR_VERSION 441 +#define tGMSH_MINOR_VERSION 442 +#define tGMSH_PATCH_VERSION 443 +#define tGmshExecutableName 444 +#define tSetPartition 445 +#define tNameToString 446 +#define tStringToName 447 +#define tAFFECTDIVIDE 448 +#define tAFFECTTIMES 449 +#define tAFFECTMINUS 450 +#define tAFFECTPLUS 451 +#define tOR 452 +#define tAND 453 +#define tNOTEQUAL 454 +#define tEQUAL 455 +#define tGREATEROREQUAL 456 +#define tLESSOREQUAL 457 +#define UNARYPREC 458 +#define tMINUSMINUS 459 +#define tPLUSPLUS 460 @@ -626,7 +636,7 @@ typedef union YYSTYPE List_T *l; } /* Line 193 of yacc.c. */ -#line 630 "Gmsh.tab.cpp" +#line 640 "Gmsh.tab.cpp" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -639,7 +649,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 643 "Gmsh.tab.cpp" +#line 653 "Gmsh.tab.cpp" #ifdef short # undef short @@ -854,20 +864,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 13306 +#define YYLAST 12955 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 221 +#define YYNTOKENS 226 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 104 +#define YYNNTS 105 /* YYNRULES -- Number of rules. */ -#define YYNRULES 575 +#define YYNRULES 582 /* YYNRULES -- Number of states. */ -#define YYNSTATES 2075 +#define YYNSTATES 2148 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 455 +#define YYMAXUTOK 460 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -878,16 +888,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, 206, 2, 216, 2, 205, 2, 2, - 211, 212, 203, 201, 217, 202, 215, 204, 2, 2, + 2, 2, 2, 211, 2, 221, 2, 210, 2, 2, + 216, 217, 208, 206, 222, 207, 220, 209, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 197, 2, 198, 192, 2, 2, 2, 2, 2, 2, + 202, 2, 203, 197, 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, 213, 2, 214, 210, 2, 2, 2, 2, 2, + 2, 218, 2, 219, 215, 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, 218, 2, 219, 220, 2, 2, 2, + 2, 2, 2, 223, 2, 224, 225, 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, @@ -919,8 +929,9 @@ static const yytype_uint8 yytranslate[] = 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 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, 193, 194, 195, - 196, 199, 200, 207, 208, 209 + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 198, 199, 200, 201, 204, 205, 212, 213, + 214 }; #if YYDEBUG @@ -930,463 +941,473 @@ static const yytype_uint16 yyprhs[] = { 0, 0, 3, 5, 8, 9, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, - 40, 42, 44, 46, 48, 50, 53, 59, 65, 73, - 81, 89, 99, 106, 113, 120, 129, 130, 133, 136, - 139, 142, 145, 147, 151, 153, 157, 158, 159, 170, - 172, 176, 177, 191, 193, 197, 198, 214, 223, 238, - 239, 246, 248, 250, 252, 254, 256, 258, 260, 262, - 264, 266, 268, 274, 280, 288, 296, 301, 305, 312, - 319, 327, 335, 342, 349, 359, 369, 376, 383, 391, - 399, 406, 413, 418, 427, 436, 446, 456, 466, 476, - 485, 494, 504, 514, 524, 534, 541, 551, 558, 568, - 574, 583, 592, 604, 611, 621, 627, 635, 645, 655, - 667, 675, 685, 695, 696, 698, 699, 703, 709, 710, - 720, 721, 733, 734, 746, 752, 753, 763, 764, 768, - 772, 778, 784, 785, 788, 792, 798, 802, 803, 806, - 810, 814, 818, 824, 826, 828, 832, 834, 836, 840, - 842, 844, 848, 850, 852, 856, 857, 863, 864, 867, - 873, 881, 890, 897, 905, 910, 918, 927, 936, 944, - 952, 964, 973, 978, 987, 996, 1005, 1015, 1019, 1024, - 1035, 1043, 1051, 1060, 1065, 1074, 1087, 1096, 1105, 1113, - 1123, 1128, 1137, 1146, 1152, 1164, 1170, 1180, 1190, 1195, - 1205, 1215, 1217, 1219, 1220, 1223, 1230, 1237, 1244, 1251, - 1260, 1271, 1286, 1303, 1316, 1325, 1334, 1341, 1356, 1361, - 1368, 1375, 1379, 1384, 1390, 1397, 1403, 1407, 1411, 1416, - 1422, 1427, 1433, 1437, 1443, 1451, 1459, 1463, 1471, 1475, - 1478, 1481, 1484, 1487, 1490, 1506, 1509, 1512, 1515, 1518, - 1521, 1538, 1550, 1557, 1566, 1575, 1586, 1588, 1591, 1594, - 1596, 1600, 1604, 1609, 1614, 1616, 1618, 1624, 1636, 1650, - 1651, 1659, 1660, 1674, 1675, 1691, 1692, 1699, 1708, 1717, - 1726, 1739, 1752, 1765, 1780, 1795, 1810, 1811, 1824, 1825, - 1838, 1839, 1852, 1853, 1870, 1871, 1888, 1889, 1906, 1907, - 1926, 1927, 1946, 1947, 1966, 1968, 1971, 1977, 1985, 1995, - 1998, 2001, 2005, 2008, 2012, 2015, 2019, 2022, 2026, 2029, - 2033, 2043, 2050, 2052, 2054, 2056, 2057, 2060, 2064, 2074, - 2075, 2079, 2080, 2082, 2083, 2086, 2087, 2090, 2091, 2094, - 2102, 2109, 2118, 2124, 2128, 2137, 2143, 2148, 2155, 2167, - 2179, 2198, 2217, 2230, 2243, 2256, 2267, 2278, 2289, 2300, - 2311, 2316, 2321, 2326, 2331, 2336, 2339, 2343, 2350, 2352, - 2354, 2356, 2359, 2365, 2373, 2384, 2386, 2390, 2393, 2396, - 2399, 2403, 2407, 2411, 2415, 2419, 2423, 2427, 2431, 2435, - 2439, 2443, 2447, 2451, 2455, 2461, 2466, 2471, 2476, 2481, - 2486, 2491, 2496, 2501, 2506, 2511, 2518, 2523, 2528, 2533, - 2538, 2543, 2548, 2553, 2560, 2567, 2574, 2579, 2581, 2583, - 2585, 2587, 2589, 2591, 2593, 2595, 2597, 2599, 2601, 2602, - 2609, 2614, 2621, 2623, 2628, 2633, 2638, 2643, 2648, 2653, - 2658, 2661, 2667, 2673, 2679, 2685, 2689, 2696, 2701, 2709, - 2716, 2723, 2730, 2735, 2742, 2747, 2749, 2752, 2755, 2759, - 2763, 2775, 2785, 2793, 2801, 2803, 2807, 2809, 2811, 2814, - 2818, 2823, 2829, 2831, 2833, 2836, 2840, 2844, 2850, 2855, - 2858, 2861, 2864, 2867, 2871, 2875, 2879, 2883, 2889, 2895, - 2901, 2907, 2924, 2941, 2958, 2975, 2977, 2979, 2981, 2985, - 2989, 2994, 2999, 3004, 3011, 3018, 3025, 3032, 3041, 3050, - 3055, 3070, 3072, 3074, 3078, 3082, 3092, 3100, 3102, 3108, - 3112, 3119, 3121, 3125, 3127, 3129, 3134, 3139, 3144, 3149, - 3153, 3160, 3162, 3167, 3169, 3171, 3173, 3178, 3185, 3190, - 3197, 3202, 3207, 3212, 3221, 3226, 3231, 3236, 3241, 3250, - 3259, 3266, 3271, 3278, 3283, 3285, 3290, 3295, 3296, 3303, - 3305, 3309, 3315, 3321, 3323, 3325 + 40, 42, 44, 46, 48, 50, 52, 55, 61, 67, + 75, 83, 91, 101, 108, 115, 122, 131, 132, 135, + 138, 141, 144, 147, 149, 153, 155, 159, 160, 161, + 172, 174, 178, 179, 193, 195, 199, 200, 216, 225, + 240, 241, 248, 250, 252, 254, 256, 258, 260, 262, + 264, 266, 268, 270, 276, 282, 290, 298, 303, 307, + 314, 321, 329, 337, 344, 351, 361, 371, 378, 385, + 393, 401, 408, 415, 420, 429, 438, 448, 458, 468, + 478, 487, 496, 506, 516, 526, 536, 543, 553, 560, + 570, 576, 585, 594, 606, 613, 623, 629, 637, 647, + 657, 669, 677, 687, 697, 698, 700, 701, 705, 711, + 712, 722, 723, 735, 736, 748, 754, 755, 765, 766, + 770, 774, 780, 786, 787, 790, 794, 800, 804, 805, + 808, 812, 816, 820, 826, 828, 830, 834, 836, 838, + 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, 1141, 1146, 1155, 1164, 1170, 1182, 1188, + 1198, 1208, 1213, 1223, 1233, 1235, 1237, 1238, 1241, 1248, + 1255, 1262, 1269, 1278, 1289, 1304, 1321, 1334, 1349, 1364, + 1379, 1394, 1403, 1412, 1419, 1424, 1431, 1438, 1442, 1447, + 1453, 1460, 1466, 1470, 1474, 1479, 1485, 1490, 1496, 1500, + 1506, 1514, 1522, 1526, 1534, 1538, 1541, 1544, 1547, 1550, + 1553, 1569, 1572, 1575, 1578, 1581, 1584, 1601, 1613, 1620, + 1629, 1638, 1649, 1651, 1654, 1657, 1659, 1663, 1667, 1672, + 1677, 1679, 1681, 1687, 1699, 1713, 1714, 1722, 1723, 1737, + 1738, 1754, 1755, 1762, 1771, 1780, 1789, 1802, 1815, 1828, + 1843, 1858, 1873, 1874, 1887, 1888, 1901, 1902, 1915, 1916, + 1933, 1934, 1951, 1952, 1969, 1970, 1989, 1990, 2009, 2010, + 2029, 2031, 2034, 2040, 2048, 2058, 2061, 2064, 2068, 2071, + 2075, 2078, 2082, 2085, 2089, 2092, 2096, 2106, 2113, 2115, + 2117, 2119, 2120, 2123, 2127, 2137, 2152, 2153, 2157, 2158, + 2160, 2161, 2164, 2165, 2168, 2169, 2172, 2180, 2187, 2196, + 2202, 2206, 2215, 2221, 2226, 2233, 2245, 2257, 2276, 2295, + 2308, 2321, 2334, 2345, 2356, 2367, 2378, 2389, 2394, 2399, + 2404, 2409, 2414, 2417, 2421, 2428, 2430, 2432, 2434, 2437, + 2443, 2451, 2462, 2464, 2468, 2471, 2474, 2477, 2481, 2485, + 2489, 2493, 2497, 2501, 2505, 2509, 2513, 2517, 2521, 2525, + 2529, 2533, 2539, 2544, 2549, 2554, 2559, 2564, 2569, 2574, + 2579, 2584, 2589, 2596, 2601, 2606, 2611, 2616, 2621, 2626, + 2631, 2638, 2645, 2652, 2657, 2659, 2661, 2663, 2665, 2667, + 2669, 2671, 2673, 2675, 2677, 2679, 2680, 2687, 2692, 2699, + 2701, 2706, 2711, 2716, 2721, 2726, 2731, 2736, 2739, 2745, + 2751, 2757, 2763, 2767, 2774, 2779, 2787, 2794, 2801, 2808, + 2813, 2820, 2825, 2827, 2830, 2833, 2837, 2841, 2853, 2863, + 2871, 2879, 2881, 2885, 2887, 2889, 2892, 2896, 2901, 2907, + 2909, 2911, 2914, 2918, 2922, 2928, 2933, 2936, 2939, 2942, + 2945, 2949, 2953, 2957, 2961, 2967, 2973, 2979, 2985, 3002, + 3019, 3036, 3053, 3055, 3057, 3059, 3063, 3067, 3072, 3077, + 3082, 3089, 3096, 3103, 3110, 3119, 3128, 3133, 3148, 3150, + 3152, 3156, 3160, 3170, 3178, 3180, 3186, 3190, 3197, 3199, + 3203, 3205, 3207, 3212, 3217, 3222, 3227, 3231, 3238, 3240, + 3245, 3247, 3249, 3251, 3256, 3263, 3268, 3275, 3280, 3285, + 3290, 3299, 3304, 3309, 3314, 3319, 3328, 3337, 3344, 3349, + 3356, 3361, 3363, 3368, 3373, 3374, 3381, 3383, 3387, 3393, + 3399, 3401, 3403 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 222, 0, -1, 223, -1, 1, 6, -1, -1, 223, - 224, -1, 227, -1, 226, -1, 247, -1, 266, -1, - 267, -1, 271, -1, 272, -1, 273, -1, 274, -1, - 278, -1, 296, -1, 302, -1, 303, -1, 277, -1, - 276, -1, 275, -1, 270, -1, 305, -1, 198, -1, - 198, 198, -1, 42, 211, 319, 212, 6, -1, 43, - 211, 319, 212, 6, -1, 42, 211, 319, 212, 225, - 319, 6, -1, 42, 211, 319, 217, 315, 212, 6, - -1, 43, 211, 319, 217, 315, 212, 6, -1, 42, - 211, 319, 217, 315, 212, 225, 319, 6, -1, 4, - 319, 218, 228, 219, 6, -1, 134, 4, 213, 306, - 214, 6, -1, 135, 4, 213, 306, 214, 6, -1, - 136, 4, 213, 306, 217, 306, 214, 6, -1, -1, - 228, 231, -1, 228, 235, -1, 228, 238, -1, 228, - 240, -1, 228, 241, -1, 306, -1, 229, 217, 306, - -1, 306, -1, 230, 217, 306, -1, -1, -1, 4, - 232, 211, 229, 212, 233, 218, 230, 219, 6, -1, - 319, -1, 234, 217, 319, -1, -1, 143, 211, 306, - 217, 306, 217, 306, 212, 236, 218, 234, 219, 6, - -1, 319, -1, 237, 217, 319, -1, -1, 144, 211, - 306, 217, 306, 217, 306, 217, 306, 212, 239, 218, - 237, 219, 6, -1, 145, 218, 311, 219, 218, 311, - 219, 6, -1, 145, 218, 311, 219, 218, 311, 219, - 218, 311, 219, 218, 311, 219, 6, -1, -1, 146, - 242, 218, 230, 219, 6, -1, 7, -1, 191, -1, - 190, -1, 189, -1, 188, -1, 209, -1, 208, -1, - 211, -1, 213, -1, 212, -1, 214, -1, 78, 213, - 249, 214, 6, -1, 79, 213, 254, 214, 6, -1, - 82, 245, 320, 217, 306, 246, 6, -1, 83, 245, - 324, 217, 320, 246, 6, -1, 324, 243, 312, 6, - -1, 324, 244, 6, -1, 4, 213, 214, 243, 312, - 6, -1, 323, 213, 214, 243, 312, 6, -1, 4, - 213, 306, 214, 243, 306, 6, -1, 323, 213, 306, - 214, 243, 306, 6, -1, 4, 213, 306, 214, 244, - 6, -1, 323, 213, 306, 214, 244, 6, -1, 4, - 245, 218, 315, 219, 246, 243, 312, 6, -1, 323, - 245, 218, 315, 219, 246, 243, 312, 6, -1, 4, - 211, 212, 243, 312, 6, -1, 323, 211, 212, 243, - 312, 6, -1, 4, 211, 306, 212, 243, 306, 6, - -1, 323, 211, 306, 212, 243, 306, 6, -1, 4, - 211, 306, 212, 244, 6, -1, 323, 211, 306, 212, - 244, 6, -1, 324, 7, 320, 6, -1, 4, 213, - 214, 7, 44, 245, 246, 6, -1, 323, 213, 214, - 7, 44, 245, 246, 6, -1, 4, 213, 214, 7, - 44, 245, 322, 246, 6, -1, 323, 213, 214, 7, - 44, 245, 322, 246, 6, -1, 4, 213, 214, 191, - 44, 245, 322, 246, 6, -1, 323, 213, 214, 191, - 44, 245, 322, 246, 6, -1, 4, 211, 212, 7, - 44, 245, 246, 6, -1, 323, 211, 212, 7, 44, - 245, 246, 6, -1, 4, 211, 212, 7, 44, 245, - 322, 246, 6, -1, 323, 211, 212, 7, 44, 245, - 322, 246, 6, -1, 4, 211, 212, 191, 44, 245, - 322, 246, 6, -1, 323, 211, 212, 191, 44, 245, - 322, 246, 6, -1, 4, 215, 4, 7, 320, 6, - -1, 4, 213, 306, 214, 215, 4, 7, 320, 6, - -1, 4, 215, 4, 243, 306, 6, -1, 4, 213, - 306, 214, 215, 4, 243, 306, 6, -1, 4, 215, - 4, 244, 6, -1, 4, 213, 306, 214, 215, 4, - 244, 6, -1, 4, 215, 153, 215, 4, 7, 316, - 6, -1, 4, 213, 306, 214, 215, 153, 215, 4, - 7, 316, 6, -1, 4, 215, 154, 7, 317, 6, - -1, 4, 213, 306, 214, 215, 154, 7, 317, 6, - -1, 4, 164, 7, 306, 6, -1, 164, 213, 306, - 214, 7, 4, 6, -1, 164, 213, 306, 214, 215, - 4, 7, 306, 6, -1, 164, 213, 306, 214, 215, - 4, 7, 320, 6, -1, 164, 213, 306, 214, 215, - 4, 7, 218, 315, 219, 6, -1, 164, 213, 306, - 214, 215, 4, 6, -1, 110, 211, 4, 212, 215, - 4, 7, 306, 6, -1, 110, 211, 4, 212, 215, - 4, 7, 320, 6, -1, -1, 217, -1, -1, 249, - 248, 324, -1, 249, 248, 324, 7, 306, -1, -1, - 249, 248, 324, 7, 218, 312, 250, 256, 219, -1, - -1, 249, 248, 324, 213, 214, 7, 218, 312, 251, - 256, 219, -1, -1, 249, 248, 324, 211, 212, 7, - 218, 312, 252, 256, 219, -1, 249, 248, 324, 7, - 320, -1, -1, 249, 248, 324, 7, 218, 320, 253, - 258, 219, -1, -1, 254, 248, 319, -1, 306, 7, - 320, -1, 255, 217, 306, 7, 320, -1, 314, 7, - 324, 211, 212, -1, -1, 256, 257, -1, 217, 4, - 312, -1, 217, 4, 218, 255, 219, -1, 217, 4, - 320, -1, -1, 258, 259, -1, 217, 4, 306, -1, - 217, 4, 320, -1, 217, 168, 320, -1, 217, 4, - 218, 322, 219, -1, 306, -1, 320, -1, 320, 217, - 306, -1, 306, -1, 320, -1, 320, 217, 306, -1, - 306, -1, 320, -1, 320, 217, 306, -1, 306, -1, - 320, -1, 320, 217, 306, -1, -1, 156, 88, 218, - 306, 219, -1, -1, 102, 309, -1, 100, 211, 319, - 212, 6, -1, 84, 211, 306, 212, 7, 309, 6, - -1, 106, 84, 211, 260, 212, 243, 312, 6, -1, - 93, 94, 312, 7, 306, 6, -1, 87, 211, 306, - 212, 7, 312, 6, -1, 111, 87, 312, 6, -1, - 91, 211, 306, 212, 7, 312, 6, -1, 85, 211, - 306, 212, 7, 312, 265, 6, -1, 86, 211, 306, - 212, 7, 312, 265, 6, -1, 148, 211, 306, 212, - 7, 312, 6, -1, 149, 211, 306, 212, 7, 312, - 6, -1, 150, 211, 306, 212, 7, 312, 152, 312, - 151, 306, 6, -1, 87, 4, 211, 306, 212, 7, - 312, 6, -1, 107, 87, 312, 6, -1, 107, 87, - 211, 306, 212, 7, 312, 6, -1, 106, 87, 211, - 261, 212, 243, 312, 6, -1, 102, 90, 211, 306, - 212, 7, 312, 6, -1, 103, 90, 211, 306, 212, - 7, 312, 264, 6, -1, 12, 13, 6, -1, 13, - 90, 306, 6, -1, 95, 90, 211, 306, 212, 7, - 5, 5, 5, 6, -1, 88, 211, 306, 212, 7, - 312, 6, -1, 89, 211, 306, 212, 7, 312, 6, - -1, 90, 4, 211, 306, 212, 7, 312, 6, -1, - 107, 90, 312, 6, -1, 107, 90, 211, 306, 212, - 7, 312, 6, -1, 107, 90, 211, 306, 212, 7, - 312, 4, 218, 311, 219, 6, -1, 106, 90, 211, - 262, 212, 243, 312, 6, -1, 105, 92, 211, 306, - 212, 7, 312, 6, -1, 92, 211, 306, 212, 7, - 312, 6, -1, 101, 211, 306, 212, 7, 218, 311, - 219, 6, -1, 107, 92, 312, 6, -1, 107, 92, - 211, 306, 212, 7, 312, 6, -1, 106, 92, 211, - 263, 212, 243, 312, 6, -1, 114, 309, 218, 268, - 219, -1, 113, 218, 309, 217, 309, 217, 306, 219, - 218, 268, 219, -1, 115, 309, 218, 268, 219, -1, - 116, 218, 309, 217, 306, 219, 218, 268, 219, -1, - 116, 218, 309, 217, 309, 219, 218, 268, 219, -1, - 4, 218, 268, 219, -1, 128, 87, 218, 315, 219, - 90, 218, 306, 219, -1, 125, 87, 211, 306, 212, - 218, 315, 219, 6, -1, 269, -1, 267, -1, -1, - 269, 266, -1, 269, 84, 218, 315, 219, 6, -1, - 269, 87, 218, 315, 219, 6, -1, 269, 90, 218, - 315, 219, 6, -1, 269, 92, 218, 315, 219, 6, - -1, 118, 102, 211, 306, 212, 7, 312, 6, -1, - 118, 84, 211, 306, 212, 7, 218, 311, 219, 6, - -1, 118, 102, 211, 306, 212, 7, 218, 309, 217, - 309, 217, 315, 219, 6, -1, 118, 102, 211, 306, - 212, 7, 218, 309, 217, 309, 217, 309, 217, 315, - 219, 6, -1, 118, 88, 211, 306, 212, 7, 218, - 309, 217, 315, 219, 6, -1, 118, 4, 211, 306, - 212, 7, 312, 6, -1, 118, 4, 211, 306, 212, - 7, 5, 6, -1, 118, 4, 218, 306, 219, 6, - -1, 118, 4, 211, 306, 212, 7, 218, 309, 217, - 309, 217, 315, 219, 6, -1, 126, 218, 269, 219, - -1, 126, 164, 213, 306, 214, 6, -1, 126, 4, - 213, 306, 214, 6, -1, 126, 324, 6, -1, 126, - 4, 4, 6, -1, 153, 316, 218, 269, 219, -1, - 112, 153, 316, 218, 269, 219, -1, 185, 306, 218, - 269, 219, -1, 169, 5, 6, -1, 170, 5, 6, - -1, 169, 218, 269, 219, -1, 112, 169, 218, 269, - 219, -1, 170, 218, 269, 219, -1, 112, 170, 218, - 269, 219, -1, 4, 320, 6, -1, 71, 211, 322, - 212, 6, -1, 4, 4, 213, 306, 214, 319, 6, - -1, 4, 4, 4, 213, 306, 214, 6, -1, 4, - 306, 6, -1, 110, 211, 4, 212, 215, 4, 6, - -1, 147, 4, 6, -1, 162, 6, -1, 163, 6, - -1, 68, 6, -1, 69, 6, -1, 62, 6, -1, - 62, 218, 306, 217, 306, 217, 306, 217, 306, 217, - 306, 217, 306, 219, 6, -1, 63, 6, -1, 64, - 6, -1, 75, 6, -1, 76, 6, -1, 97, 6, - -1, 98, 218, 315, 219, 218, 315, 219, 218, 311, - 219, 218, 306, 217, 306, 219, 6, -1, 167, 211, - 218, 315, 219, 217, 320, 217, 320, 212, 6, -1, - 155, 211, 306, 8, 306, 212, -1, 155, 211, 306, - 8, 306, 8, 306, 212, -1, 155, 4, 156, 218, - 306, 8, 306, 219, -1, 155, 4, 156, 218, 306, - 8, 306, 8, 306, 219, -1, 157, -1, 168, 4, - -1, 168, 320, -1, 165, -1, 166, 324, 6, -1, - 166, 320, 6, -1, 158, 211, 306, 212, -1, 159, - 211, 306, 212, -1, 160, -1, 161, -1, 117, 309, - 218, 269, 219, -1, 117, 218, 309, 217, 309, 217, - 306, 219, 218, 269, 219, -1, 117, 218, 309, 217, - 309, 217, 309, 217, 306, 219, 218, 269, 219, -1, - -1, 117, 309, 218, 269, 279, 292, 219, -1, -1, - 117, 218, 309, 217, 309, 217, 306, 219, 218, 269, - 280, 292, 219, -1, -1, 117, 218, 309, 217, 309, - 217, 309, 217, 306, 219, 218, 269, 281, 292, 219, - -1, -1, 117, 218, 269, 282, 292, 219, -1, 117, - 84, 218, 306, 217, 309, 219, 6, -1, 117, 87, - 218, 306, 217, 309, 219, 6, -1, 117, 90, 218, - 306, 217, 309, 219, 6, -1, 117, 84, 218, 306, - 217, 309, 217, 309, 217, 306, 219, 6, -1, 117, - 87, 218, 306, 217, 309, 217, 309, 217, 306, 219, - 6, -1, 117, 90, 218, 306, 217, 309, 217, 309, - 217, 306, 219, 6, -1, 117, 84, 218, 306, 217, - 309, 217, 309, 217, 309, 217, 306, 219, 6, -1, - 117, 87, 218, 306, 217, 309, 217, 309, 217, 309, - 217, 306, 219, 6, -1, 117, 90, 218, 306, 217, - 309, 217, 309, 217, 309, 217, 306, 219, 6, -1, - -1, 117, 84, 218, 306, 217, 309, 219, 283, 218, - 292, 219, 6, -1, -1, 117, 87, 218, 306, 217, - 309, 219, 284, 218, 292, 219, 6, -1, -1, 117, - 90, 218, 306, 217, 309, 219, 285, 218, 292, 219, - 6, -1, -1, 117, 84, 218, 306, 217, 309, 217, - 309, 217, 306, 219, 286, 218, 292, 219, 6, -1, - -1, 117, 87, 218, 306, 217, 309, 217, 309, 217, - 306, 219, 287, 218, 292, 219, 6, -1, -1, 117, - 90, 218, 306, 217, 309, 217, 309, 217, 306, 219, - 288, 218, 292, 219, 6, -1, -1, 117, 84, 218, - 306, 217, 309, 217, 309, 217, 309, 217, 306, 219, - 289, 218, 292, 219, 6, -1, -1, 117, 87, 218, - 306, 217, 309, 217, 309, 217, 309, 217, 306, 219, - 290, 218, 292, 219, 6, -1, -1, 117, 90, 218, - 306, 217, 309, 217, 309, 217, 309, 217, 306, 219, - 291, 218, 292, 219, 6, -1, 293, -1, 292, 293, - -1, 131, 218, 306, 219, 6, -1, 131, 218, 312, - 217, 312, 219, 6, -1, 131, 218, 312, 217, 312, - 217, 312, 219, 6, -1, 132, 6, -1, 123, 6, - -1, 123, 306, 6, -1, 139, 6, -1, 139, 141, - 6, -1, 140, 6, -1, 140, 141, 6, -1, 137, - 6, -1, 137, 141, 6, -1, 138, 6, -1, 138, - 141, 6, -1, 133, 211, 306, 212, 7, 312, 109, - 306, 6, -1, 109, 4, 213, 306, 214, 6, -1, - 120, -1, 121, -1, 122, -1, -1, 126, 6, -1, - 126, 306, 6, -1, 294, 218, 269, 295, 219, 218, - 269, 295, 219, -1, -1, 109, 4, 306, -1, -1, - 4, -1, -1, 7, 312, -1, -1, 7, 306, -1, - -1, 119, 312, -1, 104, 87, 313, 7, 306, 297, - 6, -1, 104, 90, 313, 299, 298, 6, -1, 96, - 90, 218, 306, 219, 7, 312, 6, -1, 104, 92, - 313, 299, 6, -1, 142, 313, 6, -1, 129, 90, - 218, 315, 219, 7, 306, 6, -1, 123, 90, 313, - 300, 6, -1, 123, 92, 313, 6, -1, 124, 90, - 312, 7, 306, 6, -1, 108, 87, 218, 315, 219, - 7, 218, 315, 219, 301, 6, -1, 108, 90, 218, - 315, 219, 7, 218, 315, 219, 301, 6, -1, 108, - 87, 218, 315, 219, 7, 218, 315, 219, 113, 218, - 309, 217, 309, 217, 306, 219, 6, -1, 108, 90, - 218, 315, 219, 7, 218, 315, 219, 113, 218, 309, - 217, 309, 217, 306, 219, 6, -1, 108, 87, 218, - 315, 219, 7, 218, 315, 219, 114, 309, 6, -1, - 108, 90, 218, 315, 219, 7, 218, 315, 219, 114, - 309, 6, -1, 108, 90, 306, 218, 315, 219, 7, - 306, 218, 315, 219, 6, -1, 84, 218, 315, 219, - 156, 90, 218, 306, 219, 6, -1, 87, 218, 315, - 219, 156, 90, 218, 306, 219, 6, -1, 84, 218, - 315, 219, 156, 92, 218, 306, 219, 6, -1, 87, - 218, 315, 219, 156, 92, 218, 306, 219, 6, -1, - 90, 218, 315, 219, 156, 92, 218, 306, 219, 6, - -1, 130, 90, 313, 6, -1, 130, 87, 313, 6, - -1, 99, 84, 313, 6, -1, 99, 87, 313, 6, - -1, 99, 90, 313, 6, -1, 127, 6, -1, 127, - 4, 6, -1, 127, 84, 218, 315, 219, 6, -1, - 176, -1, 177, -1, 178, -1, 304, 6, -1, 304, - 218, 312, 219, 6, -1, 304, 218, 312, 217, 312, - 219, 6, -1, 304, 211, 312, 212, 218, 312, 217, - 312, 219, 6, -1, 307, -1, 211, 306, 212, -1, - 202, 306, -1, 201, 306, -1, 206, 306, -1, 306, - 202, 306, -1, 306, 201, 306, -1, 306, 203, 306, - -1, 306, 204, 306, -1, 306, 205, 306, -1, 306, - 210, 306, -1, 306, 197, 306, -1, 306, 198, 306, - -1, 306, 200, 306, -1, 306, 199, 306, -1, 306, - 196, 306, -1, 306, 195, 306, -1, 306, 194, 306, - -1, 306, 193, 306, -1, 306, 192, 306, 8, 306, - -1, 15, 245, 306, 246, -1, 16, 245, 306, 246, - -1, 17, 245, 306, 246, -1, 18, 245, 306, 246, - -1, 19, 245, 306, 246, -1, 20, 245, 306, 246, - -1, 21, 245, 306, 246, -1, 22, 245, 306, 246, - -1, 23, 245, 306, 246, -1, 25, 245, 306, 246, - -1, 26, 245, 306, 217, 306, 246, -1, 27, 245, - 306, 246, -1, 28, 245, 306, 246, -1, 29, 245, - 306, 246, -1, 30, 245, 306, 246, -1, 31, 245, - 306, 246, -1, 32, 245, 306, 246, -1, 33, 245, - 306, 246, -1, 34, 245, 306, 217, 306, 246, -1, - 35, 245, 306, 217, 306, 246, -1, 36, 245, 306, - 217, 306, 246, -1, 24, 245, 306, 246, -1, 3, - -1, 9, -1, 14, -1, 10, -1, 11, -1, 181, - -1, 182, -1, 183, -1, 72, -1, 73, -1, 74, - -1, -1, 80, 245, 306, 308, 256, 246, -1, 175, - 245, 319, 246, -1, 175, 245, 319, 217, 306, 246, - -1, 324, -1, 4, 213, 306, 214, -1, 4, 211, - 306, 212, -1, 323, 213, 306, 214, -1, 323, 211, - 306, 212, -1, 179, 211, 324, 212, -1, 180, 211, - 320, 212, -1, 216, 324, 245, 246, -1, 324, 244, - -1, 4, 213, 306, 214, 244, -1, 4, 211, 306, - 212, 244, -1, 323, 213, 306, 214, 244, -1, 323, - 211, 306, 212, 244, -1, 4, 215, 4, -1, 4, - 213, 306, 214, 215, 4, -1, 4, 215, 4, 244, - -1, 4, 213, 306, 214, 215, 4, 244, -1, 171, - 211, 319, 217, 306, 212, -1, 54, 211, 312, 217, - 312, 212, -1, 55, 245, 319, 217, 319, 246, -1, - 53, 245, 319, 246, -1, 56, 245, 319, 217, 319, - 246, -1, 61, 211, 322, 212, -1, 310, -1, 202, - 309, -1, 201, 309, -1, 309, 202, 309, -1, 309, - 201, 309, -1, 218, 306, 217, 306, 217, 306, 217, - 306, 217, 306, 219, -1, 218, 306, 217, 306, 217, - 306, 217, 306, 219, -1, 218, 306, 217, 306, 217, - 306, 219, -1, 211, 306, 217, 306, 217, 306, 212, - -1, 312, -1, 311, 217, 312, -1, 306, -1, 314, - -1, 218, 219, -1, 218, 315, 219, -1, 202, 218, - 315, 219, -1, 306, 203, 218, 315, 219, -1, 312, - -1, 5, -1, 202, 314, -1, 306, 203, 314, -1, - 306, 8, 306, -1, 306, 8, 306, 8, 306, -1, - 84, 218, 306, 219, -1, 84, 5, -1, 87, 5, - -1, 90, 5, -1, 92, 5, -1, 106, 84, 5, - -1, 106, 87, 5, -1, 106, 90, 5, -1, 106, - 92, 5, -1, 106, 84, 218, 315, 219, -1, 106, - 87, 218, 315, 219, -1, 106, 90, 218, 315, 219, - -1, 106, 92, 218, 315, 219, -1, 84, 156, 62, - 218, 306, 217, 306, 217, 306, 217, 306, 217, 306, - 217, 306, 219, -1, 87, 156, 62, 218, 306, 217, - 306, 217, 306, 217, 306, 217, 306, 217, 306, 219, - -1, 90, 156, 62, 218, 306, 217, 306, 217, 306, - 217, 306, 217, 306, 217, 306, 219, -1, 92, 156, - 62, 218, 306, 217, 306, 217, 306, 217, 306, 217, - 306, 217, 306, 219, -1, 267, -1, 278, -1, 296, - -1, 4, 245, 246, -1, 323, 245, 246, -1, 37, - 213, 324, 214, -1, 37, 213, 314, 214, -1, 37, - 211, 314, 212, -1, 37, 213, 218, 315, 219, 214, - -1, 37, 211, 218, 315, 219, 212, -1, 4, 245, - 218, 315, 219, 246, -1, 323, 245, 218, 315, 219, - 246, -1, 38, 245, 306, 217, 306, 217, 306, 246, - -1, 39, 245, 306, 217, 306, 217, 306, 246, -1, - 40, 245, 319, 246, -1, 41, 245, 306, 217, 306, - 217, 306, 217, 306, 217, 306, 217, 306, 246, -1, - 306, -1, 314, -1, 315, 217, 306, -1, 315, 217, - 314, -1, 218, 306, 217, 306, 217, 306, 217, 306, - 219, -1, 218, 306, 217, 306, 217, 306, 219, -1, - 324, -1, 4, 215, 153, 215, 4, -1, 218, 318, - 219, -1, 4, 213, 306, 214, 215, 154, -1, 316, - -1, 318, 217, 316, -1, 320, -1, 324, -1, 4, - 213, 306, 214, -1, 323, 213, 306, 214, -1, 4, - 211, 306, 212, -1, 323, 211, 306, 212, -1, 4, - 215, 4, -1, 4, 213, 306, 214, 215, 4, -1, - 5, -1, 186, 213, 324, 214, -1, 65, -1, 184, - -1, 70, -1, 173, 211, 319, 212, -1, 172, 211, - 319, 217, 319, 212, -1, 174, 245, 319, 246, -1, - 174, 245, 319, 217, 319, 246, -1, 46, 245, 322, - 246, -1, 47, 211, 319, 212, -1, 48, 211, 319, - 212, -1, 49, 211, 319, 217, 319, 217, 319, 212, - -1, 44, 245, 322, 246, -1, 58, 245, 319, 246, - -1, 59, 245, 319, 246, -1, 60, 245, 319, 246, - -1, 57, 245, 306, 217, 319, 217, 319, 246, -1, - 52, 245, 319, 217, 306, 217, 306, 246, -1, 52, - 245, 319, 217, 306, 246, -1, 45, 245, 319, 246, - -1, 45, 245, 319, 217, 315, 246, -1, 66, 245, - 319, 246, -1, 67, -1, 51, 245, 319, 246, -1, - 50, 245, 319, 246, -1, -1, 81, 245, 320, 321, - 258, 246, -1, 319, -1, 322, 217, 319, -1, 4, - 220, 218, 306, 219, -1, 323, 220, 218, 306, 219, - -1, 4, -1, 323, -1, 187, 213, 319, 214, -1 + 227, 0, -1, 228, -1, 1, 6, -1, -1, 228, + 229, -1, 232, -1, 231, -1, 252, -1, 271, -1, + 272, -1, 276, -1, 277, -1, 278, -1, 279, -1, + 283, -1, 301, -1, 302, -1, 308, -1, 309, -1, + 282, -1, 281, -1, 280, -1, 275, -1, 311, -1, + 203, -1, 203, 203, -1, 42, 216, 325, 217, 6, + -1, 43, 216, 325, 217, 6, -1, 42, 216, 325, + 217, 230, 325, 6, -1, 42, 216, 325, 222, 321, + 217, 6, -1, 43, 216, 325, 222, 321, 217, 6, + -1, 42, 216, 325, 222, 321, 217, 230, 325, 6, + -1, 4, 325, 223, 233, 224, 6, -1, 139, 4, + 218, 312, 219, 6, -1, 140, 4, 218, 312, 219, + 6, -1, 141, 4, 218, 312, 222, 312, 219, 6, + -1, -1, 233, 236, -1, 233, 240, -1, 233, 243, + -1, 233, 245, -1, 233, 246, -1, 312, -1, 234, + 222, 312, -1, 312, -1, 235, 222, 312, -1, -1, + -1, 4, 237, 216, 234, 217, 238, 223, 235, 224, + 6, -1, 325, -1, 239, 222, 325, -1, -1, 148, + 216, 312, 222, 312, 222, 312, 217, 241, 223, 239, + 224, 6, -1, 325, -1, 242, 222, 325, -1, -1, + 149, 216, 312, 222, 312, 222, 312, 222, 312, 217, + 244, 223, 242, 224, 6, -1, 150, 223, 317, 224, + 223, 317, 224, 6, -1, 150, 223, 317, 224, 223, + 317, 224, 223, 317, 224, 223, 317, 224, 6, -1, + -1, 151, 247, 223, 235, 224, 6, -1, 7, -1, + 196, -1, 195, -1, 194, -1, 193, -1, 214, -1, + 213, -1, 216, -1, 218, -1, 217, -1, 219, -1, + 78, 218, 254, 219, 6, -1, 79, 218, 259, 219, + 6, -1, 82, 250, 326, 222, 312, 251, 6, -1, + 83, 250, 330, 222, 326, 251, 6, -1, 330, 248, + 318, 6, -1, 330, 249, 6, -1, 4, 218, 219, + 248, 318, 6, -1, 329, 218, 219, 248, 318, 6, + -1, 4, 218, 312, 219, 248, 312, 6, -1, 329, + 218, 312, 219, 248, 312, 6, -1, 4, 218, 312, + 219, 249, 6, -1, 329, 218, 312, 219, 249, 6, + -1, 4, 250, 223, 321, 224, 251, 248, 318, 6, + -1, 329, 250, 223, 321, 224, 251, 248, 318, 6, + -1, 4, 216, 217, 248, 318, 6, -1, 329, 216, + 217, 248, 318, 6, -1, 4, 216, 312, 217, 248, + 312, 6, -1, 329, 216, 312, 217, 248, 312, 6, + -1, 4, 216, 312, 217, 249, 6, -1, 329, 216, + 312, 217, 249, 6, -1, 330, 7, 326, 6, -1, + 4, 218, 219, 7, 44, 250, 251, 6, -1, 329, + 218, 219, 7, 44, 250, 251, 6, -1, 4, 218, + 219, 7, 44, 250, 328, 251, 6, -1, 329, 218, + 219, 7, 44, 250, 328, 251, 6, -1, 4, 218, + 219, 196, 44, 250, 328, 251, 6, -1, 329, 218, + 219, 196, 44, 250, 328, 251, 6, -1, 4, 216, + 217, 7, 44, 250, 251, 6, -1, 329, 216, 217, + 7, 44, 250, 251, 6, -1, 4, 216, 217, 7, + 44, 250, 328, 251, 6, -1, 329, 216, 217, 7, + 44, 250, 328, 251, 6, -1, 4, 216, 217, 196, + 44, 250, 328, 251, 6, -1, 329, 216, 217, 196, + 44, 250, 328, 251, 6, -1, 4, 220, 4, 7, + 326, 6, -1, 4, 218, 312, 219, 220, 4, 7, + 326, 6, -1, 4, 220, 4, 248, 312, 6, -1, + 4, 218, 312, 219, 220, 4, 248, 312, 6, -1, + 4, 220, 4, 249, 6, -1, 4, 218, 312, 219, + 220, 4, 249, 6, -1, 4, 220, 158, 220, 4, + 7, 322, 6, -1, 4, 218, 312, 219, 220, 158, + 220, 4, 7, 322, 6, -1, 4, 220, 159, 7, + 323, 6, -1, 4, 218, 312, 219, 220, 159, 7, + 323, 6, -1, 4, 169, 7, 312, 6, -1, 169, + 218, 312, 219, 7, 4, 6, -1, 169, 218, 312, + 219, 220, 4, 7, 312, 6, -1, 169, 218, 312, + 219, 220, 4, 7, 326, 6, -1, 169, 218, 312, + 219, 220, 4, 7, 223, 321, 224, 6, -1, 169, + 218, 312, 219, 220, 4, 6, -1, 115, 216, 4, + 217, 220, 4, 7, 312, 6, -1, 115, 216, 4, + 217, 220, 4, 7, 326, 6, -1, -1, 222, -1, + -1, 254, 253, 330, -1, 254, 253, 330, 7, 312, + -1, -1, 254, 253, 330, 7, 223, 318, 255, 261, + 224, -1, -1, 254, 253, 330, 218, 219, 7, 223, + 318, 256, 261, 224, -1, -1, 254, 253, 330, 216, + 217, 7, 223, 318, 257, 261, 224, -1, 254, 253, + 330, 7, 326, -1, -1, 254, 253, 330, 7, 223, + 326, 258, 263, 224, -1, -1, 259, 253, 325, -1, + 312, 7, 326, -1, 260, 222, 312, 7, 326, -1, + 320, 7, 330, 216, 217, -1, -1, 261, 262, -1, + 222, 4, 318, -1, 222, 4, 223, 260, 224, -1, + 222, 4, 326, -1, -1, 263, 264, -1, 222, 4, + 312, -1, 222, 4, 326, -1, 222, 173, 326, -1, + 222, 4, 223, 328, 224, -1, 312, -1, 326, -1, + 326, 222, 312, -1, 312, -1, 326, -1, 326, 222, + 312, -1, 312, -1, 326, -1, 326, 222, 312, -1, + 312, -1, 326, -1, 326, 222, 312, -1, -1, 161, + 88, 223, 312, 224, -1, -1, 107, 315, -1, 105, + 216, 325, 217, 6, -1, 84, 216, 312, 217, 7, + 315, 6, -1, 111, 84, 216, 265, 217, 248, 318, + 6, -1, 98, 99, 318, 7, 312, 6, -1, 87, + 216, 312, 217, 7, 318, 6, -1, 116, 87, 318, + 6, -1, 91, 216, 312, 217, 7, 318, 6, -1, + 85, 216, 312, 217, 7, 318, 270, 6, -1, 86, + 216, 312, 217, 7, 318, 270, 6, -1, 153, 216, + 312, 217, 7, 318, 6, -1, 154, 216, 312, 217, + 7, 318, 6, -1, 155, 216, 312, 217, 7, 318, + 157, 318, 156, 312, 6, -1, 87, 4, 216, 312, + 217, 7, 318, 6, -1, 112, 87, 318, 6, -1, + 112, 87, 216, 312, 217, 7, 318, 6, -1, 111, + 87, 216, 266, 217, 248, 318, 6, -1, 107, 90, + 216, 312, 217, 7, 318, 6, -1, 108, 90, 216, + 312, 217, 7, 318, 269, 6, -1, 12, 13, 6, + -1, 13, 90, 312, 6, -1, 100, 90, 216, 312, + 217, 7, 5, 5, 5, 6, -1, 88, 216, 312, + 217, 7, 318, 6, -1, 89, 216, 312, 217, 7, + 318, 6, -1, 93, 216, 312, 217, 7, 318, 6, + -1, 94, 216, 312, 217, 7, 318, 6, -1, 90, + 4, 216, 312, 217, 7, 318, 6, -1, 112, 90, + 318, 6, -1, 112, 90, 216, 312, 217, 7, 318, + 6, -1, 112, 90, 216, 312, 217, 7, 318, 4, + 223, 317, 224, 6, -1, 111, 90, 216, 267, 217, + 248, 318, 6, -1, 110, 92, 216, 312, 217, 7, + 318, 6, -1, 92, 216, 312, 217, 7, 318, 6, + -1, 106, 216, 312, 217, 7, 223, 317, 224, 6, + -1, 112, 92, 318, 6, -1, 112, 92, 216, 312, + 217, 7, 318, 6, -1, 111, 92, 216, 268, 217, + 248, 318, 6, -1, 119, 315, 223, 273, 224, -1, + 118, 223, 315, 222, 315, 222, 312, 224, 223, 273, + 224, -1, 120, 315, 223, 273, 224, -1, 121, 223, + 315, 222, 312, 224, 223, 273, 224, -1, 121, 223, + 315, 222, 315, 224, 223, 273, 224, -1, 4, 223, + 273, 224, -1, 133, 87, 223, 321, 224, 90, 223, + 312, 224, -1, 130, 87, 216, 312, 217, 223, 321, + 224, 6, -1, 274, -1, 272, -1, -1, 274, 271, + -1, 274, 84, 223, 321, 224, 6, -1, 274, 87, + 223, 321, 224, 6, -1, 274, 90, 223, 321, 224, + 6, -1, 274, 92, 223, 321, 224, 6, -1, 123, + 107, 216, 312, 217, 7, 318, 6, -1, 123, 84, + 216, 312, 217, 7, 223, 317, 224, 6, -1, 123, + 107, 216, 312, 217, 7, 223, 315, 222, 315, 222, + 321, 224, 6, -1, 123, 107, 216, 312, 217, 7, + 223, 315, 222, 315, 222, 315, 222, 321, 224, 6, + -1, 123, 88, 216, 312, 217, 7, 223, 315, 222, + 321, 224, 6, -1, 123, 94, 216, 312, 217, 7, + 223, 315, 222, 315, 222, 321, 224, 6, -1, 123, + 95, 216, 312, 217, 7, 223, 315, 222, 315, 222, + 321, 224, 6, -1, 123, 96, 216, 312, 217, 7, + 223, 315, 222, 315, 222, 321, 224, 6, -1, 123, + 97, 216, 312, 217, 7, 223, 315, 222, 315, 222, + 321, 224, 6, -1, 123, 4, 216, 312, 217, 7, + 318, 6, -1, 123, 4, 216, 312, 217, 7, 5, + 6, -1, 123, 4, 223, 312, 224, 6, -1, 131, + 223, 274, 224, -1, 131, 169, 218, 312, 219, 6, + -1, 131, 4, 218, 312, 219, 6, -1, 131, 330, + 6, -1, 131, 4, 4, 6, -1, 158, 322, 223, + 274, 224, -1, 117, 158, 322, 223, 274, 224, -1, + 190, 312, 223, 274, 224, -1, 174, 5, 6, -1, + 175, 5, 6, -1, 174, 223, 274, 224, -1, 117, + 174, 223, 274, 224, -1, 175, 223, 274, 224, -1, + 117, 175, 223, 274, 224, -1, 4, 326, 6, -1, + 71, 216, 328, 217, 6, -1, 4, 4, 218, 312, + 219, 325, 6, -1, 4, 4, 4, 218, 312, 219, + 6, -1, 4, 312, 6, -1, 115, 216, 4, 217, + 220, 4, 6, -1, 152, 4, 6, -1, 167, 6, + -1, 168, 6, -1, 68, 6, -1, 69, 6, -1, + 62, 6, -1, 62, 223, 312, 222, 312, 222, 312, + 222, 312, 222, 312, 222, 312, 224, 6, -1, 63, + 6, -1, 64, 6, -1, 75, 6, -1, 76, 6, + -1, 102, 6, -1, 103, 223, 321, 224, 223, 321, + 224, 223, 317, 224, 223, 312, 222, 312, 224, 6, + -1, 172, 216, 223, 321, 224, 222, 326, 222, 326, + 217, 6, -1, 160, 216, 312, 8, 312, 217, -1, + 160, 216, 312, 8, 312, 8, 312, 217, -1, 160, + 4, 161, 223, 312, 8, 312, 224, -1, 160, 4, + 161, 223, 312, 8, 312, 8, 312, 224, -1, 162, + -1, 173, 4, -1, 173, 326, -1, 170, -1, 171, + 330, 6, -1, 171, 326, 6, -1, 163, 216, 312, + 217, -1, 164, 216, 312, 217, -1, 165, -1, 166, + -1, 122, 315, 223, 274, 224, -1, 122, 223, 315, + 222, 315, 222, 312, 224, 223, 274, 224, -1, 122, + 223, 315, 222, 315, 222, 315, 222, 312, 224, 223, + 274, 224, -1, -1, 122, 315, 223, 274, 284, 297, + 224, -1, -1, 122, 223, 315, 222, 315, 222, 312, + 224, 223, 274, 285, 297, 224, -1, -1, 122, 223, + 315, 222, 315, 222, 315, 222, 312, 224, 223, 274, + 286, 297, 224, -1, -1, 122, 223, 274, 287, 297, + 224, -1, 122, 84, 223, 312, 222, 315, 224, 6, + -1, 122, 87, 223, 312, 222, 315, 224, 6, -1, + 122, 90, 223, 312, 222, 315, 224, 6, -1, 122, + 84, 223, 312, 222, 315, 222, 315, 222, 312, 224, + 6, -1, 122, 87, 223, 312, 222, 315, 222, 315, + 222, 312, 224, 6, -1, 122, 90, 223, 312, 222, + 315, 222, 315, 222, 312, 224, 6, -1, 122, 84, + 223, 312, 222, 315, 222, 315, 222, 315, 222, 312, + 224, 6, -1, 122, 87, 223, 312, 222, 315, 222, + 315, 222, 315, 222, 312, 224, 6, -1, 122, 90, + 223, 312, 222, 315, 222, 315, 222, 315, 222, 312, + 224, 6, -1, -1, 122, 84, 223, 312, 222, 315, + 224, 288, 223, 297, 224, 6, -1, -1, 122, 87, + 223, 312, 222, 315, 224, 289, 223, 297, 224, 6, + -1, -1, 122, 90, 223, 312, 222, 315, 224, 290, + 223, 297, 224, 6, -1, -1, 122, 84, 223, 312, + 222, 315, 222, 315, 222, 312, 224, 291, 223, 297, + 224, 6, -1, -1, 122, 87, 223, 312, 222, 315, + 222, 315, 222, 312, 224, 292, 223, 297, 224, 6, + -1, -1, 122, 90, 223, 312, 222, 315, 222, 315, + 222, 312, 224, 293, 223, 297, 224, 6, -1, -1, + 122, 84, 223, 312, 222, 315, 222, 315, 222, 315, + 222, 312, 224, 294, 223, 297, 224, 6, -1, -1, + 122, 87, 223, 312, 222, 315, 222, 315, 222, 315, + 222, 312, 224, 295, 223, 297, 224, 6, -1, -1, + 122, 90, 223, 312, 222, 315, 222, 315, 222, 315, + 222, 312, 224, 296, 223, 297, 224, 6, -1, 298, + -1, 297, 298, -1, 136, 223, 312, 224, 6, -1, + 136, 223, 318, 222, 318, 224, 6, -1, 136, 223, + 318, 222, 318, 222, 318, 224, 6, -1, 137, 6, + -1, 128, 6, -1, 128, 312, 6, -1, 144, 6, + -1, 144, 146, 6, -1, 145, 6, -1, 145, 146, + 6, -1, 142, 6, -1, 142, 146, 6, -1, 143, + 6, -1, 143, 146, 6, -1, 138, 216, 312, 217, + 7, 318, 114, 312, 6, -1, 114, 4, 218, 312, + 219, 6, -1, 125, -1, 126, -1, 127, -1, -1, + 131, 6, -1, 131, 312, 6, -1, 299, 223, 274, + 300, 224, 223, 274, 300, 224, -1, 299, 216, 312, + 217, 7, 223, 274, 300, 224, 223, 274, 300, 224, + 6, -1, -1, 114, 4, 312, -1, -1, 4, -1, + -1, 7, 318, -1, -1, 7, 312, -1, -1, 124, + 318, -1, 109, 87, 319, 7, 312, 303, 6, -1, + 109, 90, 319, 305, 304, 6, -1, 101, 90, 223, + 312, 224, 7, 318, 6, -1, 109, 92, 319, 305, + 6, -1, 147, 319, 6, -1, 134, 90, 223, 321, + 224, 7, 312, 6, -1, 128, 90, 319, 306, 6, + -1, 128, 92, 319, 6, -1, 129, 90, 318, 7, + 312, 6, -1, 113, 87, 223, 321, 224, 7, 223, + 321, 224, 307, 6, -1, 113, 90, 223, 321, 224, + 7, 223, 321, 224, 307, 6, -1, 113, 87, 223, + 321, 224, 7, 223, 321, 224, 118, 223, 315, 222, + 315, 222, 312, 224, 6, -1, 113, 90, 223, 321, + 224, 7, 223, 321, 224, 118, 223, 315, 222, 315, + 222, 312, 224, 6, -1, 113, 87, 223, 321, 224, + 7, 223, 321, 224, 119, 315, 6, -1, 113, 90, + 223, 321, 224, 7, 223, 321, 224, 119, 315, 6, + -1, 113, 90, 312, 223, 321, 224, 7, 312, 223, + 321, 224, 6, -1, 84, 223, 321, 224, 161, 90, + 223, 312, 224, 6, -1, 87, 223, 321, 224, 161, + 90, 223, 312, 224, 6, -1, 84, 223, 321, 224, + 161, 92, 223, 312, 224, 6, -1, 87, 223, 321, + 224, 161, 92, 223, 312, 224, 6, -1, 90, 223, + 321, 224, 161, 92, 223, 312, 224, 6, -1, 135, + 90, 319, 6, -1, 135, 87, 319, 6, -1, 104, + 84, 319, 6, -1, 104, 87, 319, 6, -1, 104, + 90, 319, 6, -1, 132, 6, -1, 132, 4, 6, + -1, 132, 84, 223, 321, 224, 6, -1, 181, -1, + 182, -1, 183, -1, 310, 6, -1, 310, 223, 318, + 224, 6, -1, 310, 223, 318, 222, 318, 224, 6, + -1, 310, 216, 318, 217, 223, 318, 222, 318, 224, + 6, -1, 313, -1, 216, 312, 217, -1, 207, 312, + -1, 206, 312, -1, 211, 312, -1, 312, 207, 312, + -1, 312, 206, 312, -1, 312, 208, 312, -1, 312, + 209, 312, -1, 312, 210, 312, -1, 312, 215, 312, + -1, 312, 202, 312, -1, 312, 203, 312, -1, 312, + 205, 312, -1, 312, 204, 312, -1, 312, 201, 312, + -1, 312, 200, 312, -1, 312, 199, 312, -1, 312, + 198, 312, -1, 312, 197, 312, 8, 312, -1, 15, + 250, 312, 251, -1, 16, 250, 312, 251, -1, 17, + 250, 312, 251, -1, 18, 250, 312, 251, -1, 19, + 250, 312, 251, -1, 20, 250, 312, 251, -1, 21, + 250, 312, 251, -1, 22, 250, 312, 251, -1, 23, + 250, 312, 251, -1, 25, 250, 312, 251, -1, 26, + 250, 312, 222, 312, 251, -1, 27, 250, 312, 251, + -1, 28, 250, 312, 251, -1, 29, 250, 312, 251, + -1, 30, 250, 312, 251, -1, 31, 250, 312, 251, + -1, 32, 250, 312, 251, -1, 33, 250, 312, 251, + -1, 34, 250, 312, 222, 312, 251, -1, 35, 250, + 312, 222, 312, 251, -1, 36, 250, 312, 222, 312, + 251, -1, 24, 250, 312, 251, -1, 3, -1, 9, + -1, 14, -1, 10, -1, 11, -1, 186, -1, 187, + -1, 188, -1, 72, -1, 73, -1, 74, -1, -1, + 80, 250, 312, 314, 261, 251, -1, 180, 250, 325, + 251, -1, 180, 250, 325, 222, 312, 251, -1, 330, + -1, 4, 218, 312, 219, -1, 4, 216, 312, 217, + -1, 329, 218, 312, 219, -1, 329, 216, 312, 217, + -1, 184, 216, 330, 217, -1, 185, 216, 326, 217, + -1, 221, 330, 250, 251, -1, 330, 249, -1, 4, + 218, 312, 219, 249, -1, 4, 216, 312, 217, 249, + -1, 329, 218, 312, 219, 249, -1, 329, 216, 312, + 217, 249, -1, 4, 220, 4, -1, 4, 218, 312, + 219, 220, 4, -1, 4, 220, 4, 249, -1, 4, + 218, 312, 219, 220, 4, 249, -1, 176, 216, 325, + 222, 312, 217, -1, 54, 216, 318, 222, 318, 217, + -1, 55, 250, 325, 222, 325, 251, -1, 53, 250, + 325, 251, -1, 56, 250, 325, 222, 325, 251, -1, + 61, 216, 328, 217, -1, 316, -1, 207, 315, -1, + 206, 315, -1, 315, 207, 315, -1, 315, 206, 315, + -1, 223, 312, 222, 312, 222, 312, 222, 312, 222, + 312, 224, -1, 223, 312, 222, 312, 222, 312, 222, + 312, 224, -1, 223, 312, 222, 312, 222, 312, 224, + -1, 216, 312, 222, 312, 222, 312, 217, -1, 318, + -1, 317, 222, 318, -1, 312, -1, 320, -1, 223, + 224, -1, 223, 321, 224, -1, 207, 223, 321, 224, + -1, 312, 208, 223, 321, 224, -1, 318, -1, 5, + -1, 207, 320, -1, 312, 208, 320, -1, 312, 8, + 312, -1, 312, 8, 312, 8, 312, -1, 84, 223, + 312, 224, -1, 84, 5, -1, 87, 5, -1, 90, + 5, -1, 92, 5, -1, 111, 84, 5, -1, 111, + 87, 5, -1, 111, 90, 5, -1, 111, 92, 5, + -1, 111, 84, 223, 321, 224, -1, 111, 87, 223, + 321, 224, -1, 111, 90, 223, 321, 224, -1, 111, + 92, 223, 321, 224, -1, 84, 161, 62, 223, 312, + 222, 312, 222, 312, 222, 312, 222, 312, 222, 312, + 224, -1, 87, 161, 62, 223, 312, 222, 312, 222, + 312, 222, 312, 222, 312, 222, 312, 224, -1, 90, + 161, 62, 223, 312, 222, 312, 222, 312, 222, 312, + 222, 312, 222, 312, 224, -1, 92, 161, 62, 223, + 312, 222, 312, 222, 312, 222, 312, 222, 312, 222, + 312, 224, -1, 272, -1, 283, -1, 301, -1, 4, + 250, 251, -1, 329, 250, 251, -1, 37, 218, 330, + 219, -1, 37, 218, 320, 219, -1, 37, 216, 320, + 217, -1, 37, 218, 223, 321, 224, 219, -1, 37, + 216, 223, 321, 224, 217, -1, 4, 250, 223, 321, + 224, 251, -1, 329, 250, 223, 321, 224, 251, -1, + 38, 250, 312, 222, 312, 222, 312, 251, -1, 39, + 250, 312, 222, 312, 222, 312, 251, -1, 40, 250, + 325, 251, -1, 41, 250, 312, 222, 312, 222, 312, + 222, 312, 222, 312, 222, 312, 251, -1, 312, -1, + 320, -1, 321, 222, 312, -1, 321, 222, 320, -1, + 223, 312, 222, 312, 222, 312, 222, 312, 224, -1, + 223, 312, 222, 312, 222, 312, 224, -1, 330, -1, + 4, 220, 158, 220, 4, -1, 223, 324, 224, -1, + 4, 218, 312, 219, 220, 159, -1, 322, -1, 324, + 222, 322, -1, 326, -1, 330, -1, 4, 218, 312, + 219, -1, 329, 218, 312, 219, -1, 4, 216, 312, + 217, -1, 329, 216, 312, 217, -1, 4, 220, 4, + -1, 4, 218, 312, 219, 220, 4, -1, 5, -1, + 191, 218, 330, 219, -1, 65, -1, 189, -1, 70, + -1, 178, 216, 325, 217, -1, 177, 216, 325, 222, + 325, 217, -1, 179, 250, 325, 251, -1, 179, 250, + 325, 222, 325, 251, -1, 46, 250, 328, 251, -1, + 47, 216, 325, 217, -1, 48, 216, 325, 217, -1, + 49, 216, 325, 222, 325, 222, 325, 217, -1, 44, + 250, 328, 251, -1, 58, 250, 325, 251, -1, 59, + 250, 325, 251, -1, 60, 250, 325, 251, -1, 57, + 250, 312, 222, 325, 222, 325, 251, -1, 52, 250, + 325, 222, 312, 222, 312, 251, -1, 52, 250, 325, + 222, 312, 251, -1, 45, 250, 325, 251, -1, 45, + 250, 325, 222, 321, 251, -1, 66, 250, 325, 251, + -1, 67, -1, 51, 250, 325, 251, -1, 50, 250, + 325, 251, -1, -1, 81, 250, 326, 327, 263, 251, + -1, 325, -1, 328, 222, 325, -1, 4, 225, 223, + 312, 224, -1, 329, 225, 223, 312, 224, -1, 4, + -1, 329, -1, 192, 218, 325, 219, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 207, 207, 208, 213, 215, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 240, 244, 251, 256, 261, 275, - 288, 301, 329, 343, 356, 369, 388, 393, 394, 395, - 396, 397, 401, 403, 408, 410, 416, 520, 415, 538, - 545, 556, 555, 573, 580, 591, 590, 607, 624, 647, - 646, 660, 661, 662, 663, 664, 668, 669, 675, 675, - 676, 676, 682, 683, 684, 689, 695, 757, 774, 803, - 832, 837, 842, 847, 852, 859, 869, 898, 927, 932, - 937, 942, 950, 959, 965, 971, 984, 997, 1012, 1029, - 1035, 1041, 1054, 1067, 1082, 1099, 1105, 1114, 1132, 1150, - 1159, 1171, 1176, 1184, 1204, 1227, 1238, 1246, 1268, 1291, - 1329, 1350, 1362, 1376, 1376, 1378, 1380, 1389, 1399, 1398, - 1419, 1418, 1437, 1436, 1454, 1464, 1463, 1477, 1479, 1487, - 1493, 1498, 1524, 1525, 1529, 1540, 1555, 1565, 1566, 1571, - 1579, 1588, 1596, 1614, 1618, 1624, 1632, 1636, 1642, 1650, - 1654, 1660, 1668, 1672, 1678, 1687, 1690, 1703, 1706, 1714, - 1722, 1750, 1793, 1816, 1834, 1855, 1873, 1913, 1943, 1961, - 1979, 2006, 2025, 2030, 2048, 2094, 2112, 2151, 2157, 2163, - 2170, 2211, 2237, 2254, 2258, 2277, 2311, 2358, 2376, 2393, - 2422, 2426, 2442, 2490, 2495, 2500, 2505, 2510, 2515, 2538, - 2544, 2555, 2556, 2561, 2564, 2568, 2597, 2626, 2655, 2689, - 2710, 2736, 2757, 2779, 2799, 2911, 2930, 2968, 3077, 3086, - 3092, 3107, 3135, 3152, 3161, 3175, 3189, 3195, 3201, 3210, - 3219, 3228, 3242, 3304, 3322, 3339, 3354, 3383, 3395, 3419, - 3423, 3428, 3436, 3441, 3447, 3452, 3458, 3466, 3470, 3474, - 3479, 3539, 3555, 3572, 3589, 3611, 3633, 3668, 3676, 3684, - 3690, 3697, 3704, 3724, 3750, 3762, 3774, 3782, 3790, 3799, - 3798, 3813, 3812, 3827, 3826, 3841, 3840, 3854, 3861, 3868, - 3875, 3882, 3889, 3896, 3903, 3910, 3918, 3917, 3931, 3930, - 3944, 3943, 3957, 3956, 3970, 3969, 3983, 3982, 3996, 3995, - 4009, 4008, 4022, 4021, 4038, 4041, 4047, 4059, 4079, 4103, - 4107, 4111, 4115, 4119, 4123, 4129, 4135, 4139, 4143, 4147, - 4151, 4170, 4183, 4184, 4185, 4189, 4190, 4191, 4194, 4216, - 4219, 4235, 4238, 4255, 4258, 4264, 4267, 4274, 4277, 4284, - 4340, 4410, 4415, 4482, 4518, 4526, 4569, 4608, 4628, 4660, - 4687, 4713, 4739, 4765, 4791, 4813, 4841, 4869, 4897, 4925, - 4953, 4992, 5031, 5052, 5073, 5100, 5104, 5114, 5149, 5150, - 5151, 5155, 5161, 5173, 5191, 5219, 5220, 5221, 5222, 5223, - 5224, 5225, 5226, 5227, 5234, 5235, 5236, 5237, 5238, 5239, - 5240, 5241, 5242, 5243, 5244, 5245, 5246, 5247, 5248, 5249, - 5250, 5251, 5252, 5253, 5254, 5255, 5256, 5257, 5258, 5259, - 5260, 5261, 5262, 5263, 5264, 5265, 5266, 5275, 5276, 5277, - 5278, 5279, 5280, 5281, 5282, 5283, 5284, 5285, 5290, 5289, - 5297, 5302, 5307, 5324, 5342, 5360, 5378, 5396, 5401, 5407, - 5422, 5441, 5461, 5481, 5501, 5524, 5529, 5534, 5544, 5554, - 5559, 5570, 5579, 5584, 5589, 5616, 5620, 5624, 5628, 5632, - 5639, 5643, 5647, 5651, 5658, 5663, 5670, 5675, 5679, 5684, - 5688, 5696, 5707, 5711, 5723, 5731, 5739, 5746, 5756, 5785, - 5789, 5793, 5797, 5801, 5805, 5809, 5813, 5817, 5846, 5875, - 5904, 5933, 5946, 5959, 5972, 5985, 5995, 6005, 6015, 6027, - 6040, 6052, 6056, 6060, 6064, 6068, 6086, 6104, 6112, 6120, - 6149, 6162, 6167, 6171, 6175, 6187, 6191, 6203, 6220, 6230, - 6234, 6249, 6254, 6261, 6265, 6278, 6292, 6306, 6320, 6334, - 6342, 6353, 6357, 6361, 6369, 6375, 6381, 6389, 6397, 6404, - 6412, 6427, 6441, 6455, 6467, 6483, 6492, 6501, 6511, 6522, - 6530, 6538, 6542, 6561, 6568, 6574, 6581, 6589, 6588, 6601, - 6606, 6612, 6621, 6634, 6637, 6641 + 0, 208, 208, 209, 214, 216, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 242, 246, 253, 258, 263, + 277, 290, 303, 331, 345, 358, 371, 390, 395, 396, + 397, 398, 399, 403, 405, 410, 412, 418, 522, 417, + 540, 547, 558, 557, 575, 582, 593, 592, 609, 626, + 649, 648, 662, 663, 664, 665, 666, 670, 671, 677, + 677, 678, 678, 684, 685, 686, 691, 697, 759, 776, + 805, 834, 839, 844, 849, 854, 861, 871, 900, 929, + 934, 939, 944, 952, 961, 967, 973, 986, 999, 1014, + 1031, 1037, 1043, 1056, 1069, 1084, 1101, 1107, 1116, 1134, + 1152, 1161, 1173, 1178, 1186, 1206, 1229, 1240, 1248, 1270, + 1293, 1331, 1352, 1364, 1378, 1378, 1380, 1382, 1391, 1401, + 1400, 1421, 1420, 1439, 1438, 1456, 1466, 1465, 1479, 1481, + 1489, 1495, 1500, 1526, 1527, 1531, 1542, 1557, 1567, 1568, + 1573, 1581, 1590, 1598, 1616, 1620, 1626, 1634, 1638, 1644, + 1652, 1656, 1662, 1670, 1674, 1680, 1689, 1692, 1705, 1708, + 1716, 1724, 1752, 1795, 1818, 1836, 1857, 1875, 1915, 1945, + 1963, 1981, 2008, 2027, 2032, 2050, 2096, 2114, 2153, 2159, + 2165, 2172, 2213, 2239, 2263, 2288, 2305, 2309, 2328, 2362, + 2409, 2427, 2444, 2473, 2477, 2493, 2541, 2546, 2551, 2556, + 2561, 2566, 2589, 2595, 2606, 2607, 2612, 2615, 2619, 2648, + 2677, 2706, 2740, 2762, 2788, 2810, 2833, 2854, 2910, 2934, + 2959, 2985, 3098, 3117, 3160, 3169, 3175, 3190, 3218, 3235, + 3244, 3258, 3272, 3278, 3284, 3293, 3302, 3311, 3325, 3387, + 3405, 3422, 3437, 3466, 3478, 3502, 3506, 3511, 3519, 3524, + 3530, 3535, 3541, 3549, 3553, 3557, 3562, 3622, 3638, 3655, + 3672, 3694, 3716, 3751, 3759, 3767, 3773, 3780, 3787, 3807, + 3833, 3845, 3857, 3865, 3873, 3882, 3881, 3896, 3895, 3910, + 3909, 3924, 3923, 3937, 3944, 3951, 3958, 3965, 3972, 3979, + 3986, 3993, 4001, 4000, 4014, 4013, 4027, 4026, 4040, 4039, + 4053, 4052, 4066, 4065, 4079, 4078, 4092, 4091, 4105, 4104, + 4121, 4124, 4130, 4142, 4162, 4186, 4190, 4194, 4198, 4202, + 4206, 4212, 4218, 4222, 4226, 4230, 4234, 4253, 4266, 4267, + 4268, 4272, 4273, 4274, 4277, 4298, 4318, 4321, 4337, 4340, + 4357, 4360, 4366, 4369, 4376, 4379, 4386, 4442, 4512, 4517, + 4584, 4620, 4628, 4671, 4710, 4730, 4762, 4789, 4815, 4841, + 4867, 4893, 4915, 4943, 4971, 4999, 5027, 5055, 5094, 5133, + 5154, 5175, 5202, 5206, 5216, 5251, 5252, 5253, 5257, 5263, + 5275, 5293, 5321, 5322, 5323, 5324, 5325, 5326, 5327, 5328, + 5329, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, + 5345, 5346, 5347, 5348, 5349, 5350, 5351, 5352, 5353, 5354, + 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 5363, 5364, + 5365, 5366, 5367, 5368, 5377, 5378, 5379, 5380, 5381, 5382, + 5383, 5384, 5385, 5386, 5387, 5392, 5391, 5399, 5404, 5409, + 5426, 5444, 5462, 5480, 5498, 5503, 5509, 5524, 5543, 5563, + 5583, 5603, 5626, 5631, 5636, 5646, 5656, 5661, 5672, 5681, + 5686, 5691, 5718, 5722, 5726, 5730, 5734, 5741, 5745, 5749, + 5753, 5760, 5765, 5772, 5777, 5781, 5786, 5790, 5798, 5809, + 5813, 5825, 5833, 5841, 5848, 5858, 5887, 5891, 5895, 5899, + 5903, 5907, 5911, 5915, 5919, 5948, 5977, 6006, 6035, 6048, + 6061, 6074, 6087, 6097, 6107, 6117, 6129, 6142, 6154, 6158, + 6162, 6166, 6170, 6188, 6206, 6214, 6222, 6251, 6264, 6269, + 6273, 6277, 6289, 6293, 6305, 6322, 6332, 6336, 6351, 6356, + 6363, 6367, 6380, 6394, 6408, 6422, 6436, 6444, 6455, 6459, + 6463, 6471, 6477, 6483, 6491, 6499, 6506, 6514, 6529, 6543, + 6557, 6569, 6585, 6594, 6603, 6613, 6624, 6632, 6640, 6644, + 6663, 6670, 6676, 6683, 6691, 6690, 6703, 6708, 6714, 6723, + 6736, 6739, 6743 }; #endif @@ -1411,48 +1432,49 @@ static const char *const yytname[] = "tCreateTopologyNoHoles", "tDistanceFunction", "tDefineConstant", "tUndefineConstant", "tDefineNumber", "tDefineString", "tSetNumber", "tSetString", "tPoint", "tCircle", "tEllipse", "tLine", "tSphere", - "tPolarSphere", "tSurface", "tSpline", "tVolume", "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", "tBooleanSubtraction", - "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", + "tPolarSphere", "tSurface", "tSpline", "tVolume", "tBlock", "tCylinder", + "tCone", "tEllipsoid", "tQuadric", "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", "tBooleanSubtraction", "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", "TransfiniteType", "TransfiniteArrangement", - "TransfiniteCorners", "RecombineAngle", "PeriodicTransform", - "Constraints", "Coherence", "HomologyCommand", "Homology", "FExpr", - "FExpr_Single", "@23", "VExpr", "VExpr_Single", + "BooleanOption", "Boolean", "BooleanShape", "TransfiniteType", + "TransfiniteArrangement", "TransfiniteCorners", "RecombineAngle", + "PeriodicTransform", "Constraints", "Coherence", "HomologyCommand", + "Homology", "FExpr", "FExpr_Single", "@23", "VExpr", "VExpr_Single", "RecursiveListOfListOfDouble", "ListOfDouble", "ListOfDoubleOrAll", "FExpr_Multi", "RecursiveListOfDouble", "ColorExpr", "ListOfColor", "RecursiveListOfColor", "StringExprVar", "StringExpr", "@24", @@ -1484,74 +1506,75 @@ static const yytype_uint16 yytoknum[] = 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 63, 447, 448, 449, 450, 60, 62, 451, - 452, 43, 45, 42, 47, 37, 33, 453, 454, 455, - 94, 40, 41, 91, 93, 46, 35, 44, 123, 125, - 126 + 445, 446, 447, 448, 449, 450, 451, 63, 452, 453, + 454, 455, 60, 62, 456, 457, 43, 45, 42, 47, + 37, 33, 458, 459, 460, 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, 221, 222, 222, 223, 223, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 225, 225, 226, 226, 226, 226, - 226, 226, 227, 227, 227, 227, 228, 228, 228, 228, - 228, 228, 229, 229, 230, 230, 232, 233, 231, 234, - 234, 236, 235, 237, 237, 239, 238, 240, 240, 242, - 241, 243, 243, 243, 243, 243, 244, 244, 245, 245, - 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 248, 248, 249, 249, 249, 250, 249, - 251, 249, 252, 249, 249, 253, 249, 254, 254, 255, - 255, 255, 256, 256, 257, 257, 257, 258, 258, 259, - 259, 259, 259, 260, 260, 260, 261, 261, 261, 262, - 262, 262, 263, 263, 263, 264, 264, 265, 265, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 267, 267, 267, 267, 267, 267, 267, - 267, 268, 268, 269, 269, 269, 269, 269, 269, 270, - 270, 270, 270, 270, 270, 270, 270, 270, 271, 271, - 271, 271, 271, 272, 272, 273, 274, 274, 274, 274, + 0, 226, 227, 227, 228, 228, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 230, 230, 231, 231, 231, + 231, 231, 231, 232, 232, 232, 232, 233, 233, 233, + 233, 233, 233, 234, 234, 235, 235, 237, 238, 236, + 239, 239, 241, 240, 242, 242, 244, 243, 245, 245, + 247, 246, 248, 248, 248, 248, 248, 249, 249, 250, + 250, 251, 251, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 253, 253, 254, 254, 254, 255, + 254, 256, 254, 257, 254, 254, 258, 254, 259, 259, + 260, 260, 260, 261, 261, 262, 262, 262, 263, 263, + 264, 264, 264, 264, 265, 265, 265, 266, 266, 266, + 267, 267, 267, 268, 268, 268, 269, 269, 270, 270, + 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, + 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, + 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, + 271, 271, 271, 271, 271, 271, 272, 272, 272, 272, + 272, 272, 272, 272, 273, 273, 274, 274, 274, 274, 274, 274, 275, 275, 275, 275, 275, 275, 275, 275, - 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, - 275, 276, 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 278, 278, 278, 279, - 278, 280, 278, 281, 278, 282, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 283, 278, 284, 278, - 285, 278, 286, 278, 287, 278, 288, 278, 289, 278, - 290, 278, 291, 278, 292, 292, 293, 293, 293, 293, - 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, - 293, 293, 294, 294, 294, 295, 295, 295, 296, 297, - 297, 298, 298, 299, 299, 300, 300, 301, 301, 302, - 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, - 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, - 302, 302, 302, 302, 302, 303, 303, 303, 304, 304, - 304, 305, 305, 305, 305, 306, 306, 306, 306, 306, - 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, - 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, - 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, - 306, 306, 306, 306, 306, 306, 306, 307, 307, 307, - 307, 307, 307, 307, 307, 307, 307, 307, 308, 307, - 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, - 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, - 307, 307, 307, 307, 307, 309, 309, 309, 309, 309, - 310, 310, 310, 310, 311, 311, 312, 312, 312, 312, - 312, 312, 313, 313, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 315, 315, 315, 315, 316, 316, 316, 316, 317, - 317, 318, 318, 319, 319, 319, 319, 319, 319, 319, + 275, 275, 275, 275, 276, 276, 276, 276, 276, 277, + 277, 278, 279, 279, 279, 279, 279, 279, 280, 280, + 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 280, 280, 280, 280, 280, 281, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 283, 283, 283, 284, 283, 285, 283, 286, + 283, 287, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 288, 283, 289, 283, 290, 283, 291, 283, + 292, 283, 293, 283, 294, 283, 295, 283, 296, 283, + 297, 297, 298, 298, 298, 298, 298, 298, 298, 298, + 298, 298, 298, 298, 298, 298, 298, 298, 299, 299, + 299, 300, 300, 300, 301, 302, 303, 303, 304, 304, + 305, 305, 306, 306, 307, 307, 308, 308, 308, 308, + 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, + 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, + 308, 308, 309, 309, 309, 310, 310, 310, 311, 311, + 311, 311, 312, 312, 312, 312, 312, 312, 312, 312, + 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, + 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, + 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, + 312, 312, 312, 312, 313, 313, 313, 313, 313, 313, + 313, 313, 313, 313, 313, 314, 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, 315, 315, 315, 315, 315, 316, 316, 316, + 316, 317, 317, 318, 318, 318, 318, 318, 318, 319, 319, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 321, 320, 322, - 322, 323, 323, 324, 324, 324 + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 321, 321, + 321, 321, 322, 322, 322, 322, 323, 323, 324, 324, + 325, 325, 325, 325, 325, 325, 325, 325, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 327, 326, 328, 328, 329, 329, + 330, 330, 330 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1559,62 +1582,63 @@ static const yytype_uint8 yyr2[] = { 0, 2, 1, 2, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 5, 5, 7, 7, - 7, 9, 6, 6, 6, 8, 0, 2, 2, 2, - 2, 2, 1, 3, 1, 3, 0, 0, 10, 1, - 3, 0, 13, 1, 3, 0, 15, 8, 14, 0, - 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 5, 5, 7, 7, 4, 3, 6, 6, - 7, 7, 6, 6, 9, 9, 6, 6, 7, 7, - 6, 6, 4, 8, 8, 9, 9, 9, 9, 8, - 8, 9, 9, 9, 9, 6, 9, 6, 9, 5, - 8, 8, 11, 6, 9, 5, 7, 9, 9, 11, - 7, 9, 9, 0, 1, 0, 3, 5, 0, 9, - 0, 11, 0, 11, 5, 0, 9, 0, 3, 3, - 5, 5, 0, 2, 3, 5, 3, 0, 2, 3, - 3, 3, 5, 1, 1, 3, 1, 1, 3, 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, 8, 4, 8, 12, 8, 8, 7, 9, - 4, 8, 8, 5, 11, 5, 9, 9, 4, 9, - 9, 1, 1, 0, 2, 6, 6, 6, 6, 8, - 10, 14, 16, 12, 8, 8, 6, 14, 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, 0, 2, 3, 9, 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, + 1, 1, 1, 1, 1, 1, 2, 5, 5, 7, + 7, 7, 9, 6, 6, 6, 8, 0, 2, 2, + 2, 2, 2, 1, 3, 1, 3, 0, 0, 10, + 1, 3, 0, 13, 1, 3, 0, 15, 8, 14, + 0, 6, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 5, 5, 7, 7, 4, 3, 6, + 6, 7, 7, 6, 6, 9, 9, 6, 6, 7, + 7, 6, 6, 4, 8, 8, 9, 9, 9, 9, + 8, 8, 9, 9, 9, 9, 6, 9, 6, 9, + 5, 8, 8, 11, 6, 9, 5, 7, 9, 9, + 11, 7, 9, 9, 0, 1, 0, 3, 5, 0, + 9, 0, 11, 0, 11, 5, 0, 9, 0, 3, + 3, 5, 5, 0, 2, 3, 5, 3, 0, 2, + 3, 3, 3, 5, 1, 1, 3, 1, 1, 3, + 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, 9, 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, 0, 2, 3, 9, 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, 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 + 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 @@ -1622,3350 +1646,3301 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 0, 0, 2, 3, 1, 573, 0, 0, 0, + 0, 0, 0, 2, 3, 1, 580, 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, 332, 333, 334, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 338, 339, + 340, 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, 385, 386, 387, 0, 0, 5, 7, + 6, 8, 9, 10, 23, 11, 12, 13, 14, 22, + 21, 20, 15, 0, 16, 17, 18, 19, 0, 24, + 581, 0, 434, 580, 548, 435, 437, 438, 436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 266, 0, 0, - 274, 275, 0, 0, 0, 269, 0, 0, 0, 0, - 0, 378, 379, 380, 0, 0, 5, 7, 6, 8, - 9, 10, 22, 11, 12, 13, 14, 21, 20, 19, - 15, 0, 16, 17, 18, 0, 23, 574, 0, 427, - 573, 541, 428, 430, 431, 429, 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, 550, + 0, 571, 552, 442, 443, 444, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 439, 440, 441, 551, + 0, 0, 0, 0, 69, 70, 0, 0, 216, 0, + 0, 0, 392, 0, 540, 581, 449, 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, 0, 543, 0, 564, 545, - 435, 436, 437, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 432, 433, 434, 544, 0, 0, 0, - 0, 68, 69, 0, 0, 213, 0, 0, 0, 385, - 0, 533, 574, 442, 0, 0, 0, 0, 253, 0, - 255, 256, 251, 252, 0, 257, 258, 125, 137, 68, - 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, + 0, 0, 0, 0, 265, 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, 472, 0, 0, + 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 580, 0, 216, + 581, 0, 0, 382, 0, 0, 0, 0, 0, 0, + 0, 0, 580, 490, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 512, 513, 0, + 514, 483, 489, 0, 484, 581, 449, 0, 0, 0, + 0, 580, 0, 0, 534, 0, 0, 0, 0, 255, + 256, 0, 580, 0, 0, 0, 273, 274, 0, 216, + 0, 216, 580, 0, 581, 0, 0, 216, 388, 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, 465, 0, 0, 0, 0, 0, 213, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 573, 0, - 213, 574, 0, 0, 375, 0, 0, 0, 0, 0, - 0, 0, 0, 573, 483, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 505, 506, - 507, 476, 482, 0, 477, 574, 442, 0, 0, 0, - 0, 573, 0, 0, 527, 0, 0, 0, 0, 249, - 250, 0, 573, 0, 0, 0, 267, 268, 0, 213, - 0, 213, 573, 0, 574, 0, 213, 381, 0, 0, - 68, 69, 0, 0, 61, 65, 64, 63, 62, 67, - 66, 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, + 395, 394, 396, 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, 457, 188, 0, + 580, 0, 540, 581, 541, 0, 0, 576, 0, 124, + 124, 0, 0, 0, 0, 528, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 388, - 387, 389, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 212, 0, 211, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 36, 242, 0, 0, 450, 187, 0, 573, - 0, 533, 574, 534, 0, 0, 569, 0, 123, 123, - 0, 0, 0, 0, 521, 522, 0, 0, 0, 0, + 0, 0, 0, 350, 350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 216, 216, 0, 474, 473, 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, 352, 0, 0, 0, 0, 0, 0, 0, + 237, 383, 0, 0, 0, 0, 0, 0, 0, 0, + 69, 70, 0, 0, 0, 0, 0, 0, 0, 0, + 496, 0, 0, 497, 0, 498, 0, 499, 0, 0, + 0, 0, 0, 0, 394, 491, 0, 485, 0, 0, + 0, 360, 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, 341, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 78, 0, 0, 0, 462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 343, 343, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, - 213, 0, 467, 466, 0, 0, 0, 0, 213, 213, - 0, 0, 0, 0, 0, 0, 0, 285, 0, 213, - 0, 0, 0, 0, 0, 345, 0, 0, 0, 0, - 0, 0, 0, 231, 376, 0, 0, 0, 0, 0, - 0, 0, 0, 68, 69, 0, 0, 0, 0, 0, - 0, 0, 0, 489, 0, 0, 490, 0, 491, 0, - 492, 0, 0, 0, 0, 0, 0, 387, 484, 0, - 478, 0, 0, 0, 353, 68, 69, 0, 248, 0, - 0, 0, 0, 0, 213, 0, 0, 0, 0, 0, - 271, 270, 0, 236, 0, 237, 0, 0, 0, 213, - 0, 0, 0, 335, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 77, 0, 0, 0, 455, 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, 445, 574, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, + 63, 0, 393, 62, 63, 0, 0, 62, 0, 0, + 0, 0, 0, 211, 0, 0, 0, 0, 217, 0, + 0, 0, 410, 409, 408, 407, 403, 404, 406, 405, + 398, 397, 399, 400, 401, 402, 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, - 438, 567, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 61, 62, 0, 386, 61, 62, 0, 0, 61, - 0, 0, 0, 0, 0, 208, 0, 0, 0, 0, - 214, 0, 0, 0, 403, 402, 401, 400, 396, 397, - 399, 398, 391, 390, 392, 393, 394, 395, 0, 0, - 0, 188, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 379, 380, 381, 0, 0, 0, 0, 0, 0, 348, + 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, 476, 475, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 285, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 363, 0, 0, 238, 0, 0, + 234, 0, 0, 0, 378, 377, 0, 0, 0, 0, + 0, 462, 71, 72, 0, 515, 0, 0, 0, 0, + 0, 449, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 500, 0, 501, 0, 502, 0, 503, 0, 0, + 393, 486, 493, 0, 399, 492, 0, 0, 0, 516, + 0, 0, 0, 0, 0, 0, 0, 0, 278, 279, + 0, 0, 244, 246, 0, 582, 0, 0, 0, 0, + 0, 0, 62, 63, 0, 0, 62, 63, 0, 0, + 0, 0, 93, 77, 0, 451, 450, 464, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 433, 421, 0, + 423, 424, 425, 426, 427, 428, 429, 0, 0, 0, + 561, 0, 568, 557, 558, 559, 0, 573, 572, 0, + 469, 0, 0, 0, 0, 562, 563, 564, 471, 570, + 143, 148, 116, 0, 0, 553, 0, 555, 0, 447, + 454, 455, 549, 0, 0, 0, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 110, 0, 0, + 0, 0, 456, 0, 0, 0, 0, 578, 0, 0, + 47, 0, 0, 0, 60, 0, 38, 39, 40, 41, + 42, 453, 452, 0, 0, 546, 27, 25, 0, 0, + 0, 0, 28, 0, 0, 249, 577, 73, 127, 74, + 139, 0, 0, 0, 530, 531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 372, 373, 374, 0, 0, 0, 0, 0, 0, 341, - 0, 0, 0, 153, 154, 0, 156, 157, 0, 159, - 160, 0, 162, 163, 0, 182, 0, 193, 0, 200, - 0, 0, 0, 0, 174, 213, 0, 0, 0, 0, - 0, 469, 468, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 279, 0, 0, 0, 0, 0, 0, 0, - 356, 0, 0, 232, 0, 0, 228, 0, 0, 0, - 371, 370, 0, 0, 0, 0, 0, 455, 70, 71, - 0, 508, 0, 0, 0, 0, 0, 442, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 493, 0, 494, - 0, 495, 0, 496, 0, 0, 386, 479, 486, 0, - 392, 485, 0, 0, 0, 509, 0, 0, 0, 0, - 0, 0, 0, 0, 272, 273, 0, 0, 238, 240, - 0, 575, 0, 0, 0, 0, 0, 61, 62, 0, - 0, 61, 62, 0, 0, 0, 0, 92, 76, 0, - 444, 443, 457, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 426, 414, 0, 416, 417, 418, 419, 420, - 421, 422, 0, 0, 0, 554, 0, 561, 550, 551, - 552, 0, 566, 565, 0, 462, 0, 0, 0, 0, - 555, 556, 557, 464, 563, 142, 147, 115, 0, 0, - 546, 0, 548, 0, 440, 447, 448, 542, 0, 0, - 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 109, 0, 0, 0, 0, 449, 0, 0, - 0, 0, 571, 0, 0, 46, 0, 0, 0, 59, - 0, 37, 38, 39, 40, 41, 446, 445, 0, 0, - 539, 26, 24, 0, 0, 0, 0, 27, 0, 0, - 243, 570, 72, 126, 73, 138, 0, 0, 0, 523, - 524, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 169, 0, 0, - 0, 339, 344, 342, 0, 352, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 386, 386, 386, 0, 0, - 0, 0, 0, 239, 241, 0, 0, 0, 203, 205, + 0, 0, 0, 0, 170, 0, 0, 0, 346, 351, + 349, 0, 359, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 393, 393, 393, 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, 0, 0, 0, 314, 0, 276, 0, 0, - 0, 0, 0, 0, 346, 355, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 444, 443, 0, 0, - 512, 0, 511, 510, 0, 0, 519, 0, 0, 488, - 0, 0, 0, 0, 0, 0, 0, 480, 0, 0, - 446, 445, 0, 0, 0, 0, 0, 0, 233, 0, - 0, 0, 0, 0, 235, 336, 0, 0, 0, 0, - 382, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 572, 0, 0, 452, 0, 451, 0, 0, 0, + 0, 0, 320, 0, 282, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 353, 362, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 451, 450, 0, + 0, 519, 0, 518, 517, 0, 0, 526, 0, 0, + 495, 0, 0, 0, 0, 0, 0, 0, 487, 0, + 0, 453, 452, 0, 0, 0, 0, 0, 0, 239, + 0, 0, 0, 0, 0, 241, 0, 342, 0, 0, + 0, 0, 389, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 579, 0, 0, 459, 0, 458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 86, 0, 90, - 0, 0, 78, 0, 0, 0, 0, 82, 105, 107, - 0, 0, 531, 0, 113, 0, 0, 0, 0, 0, - 404, 0, 0, 0, 0, 0, 32, 454, 453, 537, - 535, 25, 0, 0, 538, 536, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 167, 167, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 0, - 0, 0, 0, 0, 0, 0, 0, 350, 0, 0, - 155, 0, 158, 0, 161, 0, 164, 0, 0, 0, - 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 320, 0, 0, 319, 0, 326, - 0, 328, 0, 322, 0, 324, 0, 286, 315, 0, - 0, 0, 226, 0, 0, 0, 357, 0, 230, 229, - 377, 0, 0, 33, 34, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 497, 498, 499, - 500, 487, 481, 0, 0, 0, 0, 528, 0, 0, - 0, 262, 0, 0, 0, 337, 213, 0, 0, 0, - 0, 87, 0, 91, 0, 0, 79, 0, 83, 0, - 245, 456, 244, 415, 423, 424, 425, 562, 0, 0, - 560, 460, 461, 463, 0, 0, 439, 143, 0, 568, - 148, 459, 547, 549, 441, 0, 0, 0, 88, 0, - 0, 0, 61, 0, 0, 0, 0, 80, 0, 0, - 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 474, 0, 0, 28, 29, 0, 30, 0, 0, - 127, 134, 0, 0, 74, 75, 170, 0, 0, 0, - 0, 0, 0, 173, 0, 0, 190, 191, 0, 0, - 175, 198, 0, 0, 0, 0, 0, 165, 0, 349, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 0, 91, 0, 0, 79, 0, 0, 0, 0, 83, + 106, 108, 0, 0, 538, 0, 114, 0, 0, 0, + 0, 0, 411, 0, 0, 0, 0, 0, 33, 461, + 460, 544, 542, 26, 0, 0, 545, 543, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 168, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 247, 0, 0, 0, 0, 213, 213, 0, 296, - 0, 298, 0, 300, 0, 321, 476, 0, 0, 327, - 329, 323, 325, 0, 0, 280, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 456, 515, 514, - 513, 0, 0, 0, 0, 0, 0, 0, 516, 178, - 179, 0, 0, 0, 0, 116, 120, 0, 0, 335, - 0, 383, 0, 0, 0, 89, 0, 0, 0, 81, - 0, 458, 0, 0, 0, 0, 0, 0, 99, 0, - 0, 93, 0, 0, 0, 0, 110, 0, 0, 111, - 0, 532, 215, 216, 217, 218, 0, 0, 42, 0, - 0, 0, 0, 0, 44, 540, 0, 0, 128, 135, - 0, 0, 0, 0, 168, 176, 177, 181, 0, 0, - 192, 0, 0, 351, 0, 0, 185, 0, 0, 340, - 197, 171, 184, 196, 202, 183, 0, 194, 201, 0, - 0, 0, 0, 0, 0, 473, 0, 472, 0, 0, - 0, 287, 0, 0, 288, 0, 0, 289, 0, 0, - 0, 0, 0, 0, 0, 225, 0, 0, 224, 0, - 0, 0, 219, 0, 0, 354, 35, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 526, 0, 264, 263, - 0, 0, 0, 0, 0, 0, 100, 0, 0, 94, - 0, 0, 0, 553, 559, 558, 0, 144, 146, 0, - 149, 150, 151, 101, 103, 95, 97, 106, 108, 0, - 114, 0, 84, 47, 0, 0, 0, 475, 0, 0, - 0, 31, 0, 142, 147, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 199, 0, 186, 0, 347, 347, - 0, 121, 122, 213, 0, 206, 207, 0, 0, 0, - 0, 0, 0, 0, 316, 0, 0, 213, 0, 0, - 0, 0, 0, 210, 209, 517, 518, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 117, 118, 0, 338, - 0, 102, 104, 96, 98, 85, 0, 521, 522, 0, - 0, 530, 0, 43, 0, 0, 0, 45, 60, 0, - 0, 0, 132, 130, 365, 367, 366, 368, 369, 189, + 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, + 0, 357, 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, 364, 0, 236, 235, 384, 0, + 0, 34, 35, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 504, 505, 506, 507, 494, + 488, 0, 0, 0, 0, 535, 0, 0, 0, 268, + 0, 0, 0, 216, 343, 216, 0, 0, 0, 0, + 88, 0, 92, 0, 0, 80, 0, 84, 0, 251, + 463, 250, 422, 430, 431, 432, 569, 0, 0, 567, + 467, 468, 470, 0, 0, 446, 144, 0, 575, 149, + 466, 554, 556, 448, 0, 0, 0, 89, 0, 0, + 0, 62, 0, 0, 0, 0, 81, 0, 0, 0, + 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 481, 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, 0, 0, 166, 0, + 356, 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, 483, 0, 0, + 333, 335, 329, 331, 0, 0, 286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 471, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 331, 0, 0, 0, 281, 0, 0, - 220, 0, 0, 0, 0, 0, 0, 0, 0, 525, - 265, 0, 0, 384, 0, 145, 0, 0, 152, 112, - 0, 0, 0, 0, 0, 129, 136, 142, 142, 0, - 0, 0, 0, 0, 348, 358, 0, 0, 359, 0, - 204, 0, 302, 0, 0, 304, 0, 0, 306, 0, - 0, 0, 317, 0, 277, 0, 213, 0, 0, 0, - 0, 0, 0, 0, 0, 180, 119, 261, 0, 139, - 0, 0, 51, 0, 57, 0, 0, 0, 0, 0, - 166, 195, 0, 362, 0, 363, 364, 470, 290, 0, - 0, 297, 291, 0, 0, 299, 292, 0, 0, 301, - 0, 0, 0, 283, 0, 223, 0, 0, 0, 0, + 0, 463, 522, 521, 520, 0, 0, 0, 0, 0, + 0, 0, 523, 179, 180, 0, 0, 0, 0, 117, + 121, 0, 0, 341, 341, 0, 390, 0, 0, 0, + 90, 0, 0, 0, 82, 0, 465, 0, 0, 0, + 0, 0, 0, 100, 0, 0, 94, 0, 0, 0, + 0, 111, 0, 0, 112, 0, 539, 218, 219, 220, + 221, 0, 0, 43, 0, 0, 0, 0, 0, 45, + 547, 0, 0, 129, 136, 0, 0, 0, 0, 169, + 177, 178, 182, 0, 0, 195, 0, 0, 358, 0, + 0, 186, 0, 0, 347, 200, 172, 185, 199, 205, + 184, 0, 197, 204, 0, 0, 0, 0, 0, 0, + 480, 0, 479, 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, 361, 36, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 533, 0, 270, 269, 0, 0, + 0, 0, 0, 0, 0, 101, 0, 0, 95, 0, + 0, 0, 560, 566, 565, 0, 145, 147, 0, 150, + 151, 152, 102, 104, 96, 98, 107, 109, 0, 115, + 0, 85, 48, 0, 0, 0, 482, 0, 0, 0, + 32, 0, 143, 148, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 202, 0, 187, 0, 354, 354, 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, 524, 525, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, + 0, 0, 344, 0, 103, 105, 97, 99, 86, 0, + 528, 529, 0, 0, 537, 0, 44, 0, 0, 0, + 46, 61, 0, 0, 0, 133, 131, 372, 374, 373, + 375, 376, 190, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 478, 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, 532, 271, 0, 0, 216, + 391, 0, 146, 0, 0, 153, 113, 0, 0, 0, + 0, 0, 130, 137, 143, 143, 0, 0, 0, 0, + 0, 355, 365, 0, 0, 366, 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, 341, 0, + 140, 0, 0, 52, 0, 58, 0, 0, 0, 0, + 0, 167, 198, 0, 369, 0, 370, 371, 477, 296, + 0, 0, 303, 297, 0, 0, 305, 298, 0, 0, + 307, 0, 0, 0, 289, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 133, 131, 0, 0, 0, 0, 308, 0, 310, 0, - 312, 318, 330, 282, 278, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 140, 141, 48, 0, 55, 0, - 0, 0, 0, 0, 0, 293, 0, 0, 294, 0, - 0, 295, 0, 0, 227, 0, 221, 0, 0, 0, - 0, 0, 0, 49, 0, 0, 254, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 284, 0, 520, 0, - 0, 0, 0, 0, 0, 0, 0, 260, 0, 0, - 303, 0, 305, 0, 307, 0, 222, 0, 0, 0, - 0, 50, 52, 0, 53, 0, 0, 0, 0, 0, - 0, 501, 502, 503, 504, 0, 0, 58, 360, 361, - 309, 311, 313, 54, 56 + 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, 345, 0, 50, 0, 0, 260, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 290, + 0, 527, 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, 508, 509, 510, 511, 0, 0, + 59, 367, 368, 315, 317, 319, 55, 57 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 2, 3, 96, 1033, 97, 98, 738, 1587, 1593, - 1021, 1241, 1792, 2012, 1022, 1956, 2053, 1023, 2014, 1024, - 1025, 1245, 371, 466, 197, 861, 99, 756, 478, 1723, - 1868, 1867, 1724, 479, 1786, 1209, 1407, 1210, 1410, 792, - 795, 798, 801, 1618, 1460, 720, 318, 442, 443, 102, - 103, 104, 105, 106, 107, 108, 109, 319, 1118, 1895, - 1975, 830, 1642, 1645, 1648, 1929, 1933, 1937, 1996, 1999, - 2002, 1114, 1115, 111, 913, 320, 1286, 1074, 789, 839, - 1816, 113, 114, 115, 116, 321, 199, 975, 533, 272, - 1440, 322, 323, 324, 601, 333, 1006, 1233, 476, 471, - 976, 477, 354, 326 + -1, 2, 3, 98, 1058, 99, 100, 756, 1632, 1638, + 1046, 1273, 1845, 2085, 1047, 2021, 2126, 1048, 2087, 1049, + 1050, 1277, 382, 477, 200, 885, 101, 774, 489, 1772, + 1925, 1924, 1773, 490, 1839, 1241, 1446, 1242, 1449, 812, + 815, 818, 821, 1663, 1499, 738, 327, 453, 454, 104, + 105, 106, 107, 108, 109, 110, 111, 328, 1145, 1952, + 2040, 850, 1687, 1690, 1693, 1990, 1994, 1998, 2065, 2068, + 2071, 1141, 1142, 329, 938, 330, 115, 1320, 1101, 809, + 863, 1869, 116, 117, 118, 119, 331, 202, 1000, 546, + 277, 1479, 332, 333, 334, 618, 343, 1031, 1265, 487, + 482, 1001, 488, 364, 336 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -1697 +#define YYPACT_NINF -1757 static const yytype_int16 yypact[] = { - 9922, 102, 42, 10061, -1697, -1697, 4431, 51, -59, -159, - -94, 47, 137, 147, 162, 168, -79, 181, 204, 10, - 55, 113, 113, -142, 61, 65, 18, 79, 92, 30, - 123, 155, 228, 290, 327, 342, 206, 435, 219, 303, - 374, 450, 700, 451, 404, 721, 110, 336, 464, -69, - 339, -76, -76, 347, 395, 36, -1697, -1697, -1697, 298, - 504, 512, 14, 62, 528, 542, 302, 608, 631, 635, - 6020, 643, 425, 441, 446, 25, 56, -1697, 452, 453, - -1697, -1697, 670, 679, 466, -1697, 8620, 483, 6115, 38, - 39, -1697, -1697, -1697, 9776, 486, -1697, -1697, -1697, -1697, - -1697, -1697, -1697, -1697, -1697, -1697, -1697, -1697, -1697, -1697, - -1697, 488, -1697, -1697, -1697, 17, -1697, -109, 111, -1697, - 7, -1697, -1697, -1697, -1697, -1697, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 524, 531, 537, 113, 113, 113, 113, 538, 113, - 113, 113, 113, 113, 113, 541, -1697, 113, -1697, -1697, - -1697, -1697, -1697, 113, 113, 725, 546, 551, 561, 113, - 113, 573, 577, -1697, -1697, -1697, -1697, 597, 9776, 9776, - 9776, 8948, 9015, 16, 9, 473, 604, 605, 521, -1697, - 620, 826, 431, 136, 833, 9776, 10208, 10208, -1697, 9776, - -1697, -1697, -1697, -1697, 10208, -1697, -1697, -1697, -1697, -1697, - -1697, 6316, 9, 9776, 8744, 9776, 9776, 636, 9776, 8744, - 9776, 9776, 644, 8744, 9776, 9776, 6440, 645, 653, -1697, - 8744, 6020, 6020, 6020, 10208, 9776, 649, 665, 6020, 6020, - 6020, 671, 677, 682, 685, 692, 6650, 6860, 7070, 681, - 2061, 910, 6440, 25, 704, 733, -76, -76, -76, 9776, - 9776, -145, -1697, -140, -76, 756, 765, 782, 4203, -96, - -82, 706, 723, 745, 6020, 6020, 6440, 750, 4, 790, - -1697, 792, 1007, 1020, -1697, 817, 821, 830, 6020, 6020, - 843, 844, 852, 543, -1697, 226, 113, 113, 113, 113, - -4, 19, 20, 21, 699, 7280, 9776, 4884, -1697, -1697, - -1697, 4094, -1697, 1054, -1697, 445, 132, 1055, 9776, 9776, - 9776, -174, 9776, 886, -1697, 912, 9776, 9776, 9776, -1697, - -1697, 9776, 858, 1084, 1102, 914, -1697, -1697, 1137, -1697, - 1138, -1697, 616, 10288, 525, 10208, -1697, -1697, 6440, 6440, - 9224, 9291, 941, 952, 6316, -1697, -1697, -1697, -1697, -1697, - -1697, 6440, 1161, 963, 9776, 9776, 1173, 9776, 9776, 9776, - 9776, 9776, 9776, 9776, 9776, 9776, 9776, 9776, 9776, 9776, - 9776, 9776, 9776, 9776, 9776, 9776, 9776, 9776, 9776, 10208, - 10208, 10208, 10208, 10208, 10208, 10208, 10208, 10208, 10208, 6440, - 10208, 10208, 9776, 10208, 10208, 10208, 10208, 10208, 9776, 6316, - 9776, 10208, 10208, 10208, 10208, 10208, 9, 6316, 9, 996, - 996, 996, 103, 12193, 120, 9462, 127, 992, 1204, 113, - 1011, -1697, 1018, 5367, 9776, 8744, -1697, 9776, 9776, 9776, - 9776, 9776, 9776, 9776, 9776, 9776, 9776, 9776, 9776, 9776, - 9776, 9776, -1697, -1697, 9776, 9776, -1697, -1697, 926, 622, - -137, -1697, 526, -1697, -122, 4680, -1697, -114, 224, 312, - 1025, 1026, 12214, 8744, 4129, -1697, 130, 12235, 12256, 9776, - 12277, 259, 12298, 12319, 9776, 273, 12340, 12361, 1252, 9776, - 9776, 552, 1254, 1258, 1272, 1071, 12382, 9776, 9776, 1290, - 1291, 1291, 9776, 8540, 8540, 8540, 8540, 9776, 1293, 9776, - 1296, 9776, 1297, 8744, 8744, 10315, 1097, 1299, 1092, -1697, - -1697, -62, -1697, -1697, 10421, 10447, -76, -76, 473, 473, - -51, 9776, 9776, 9776, 4203, 4203, 9776, 5367, -38, -1697, - 9776, 9776, 9776, 9776, 9776, 1304, 1308, 1309, 9776, 1311, - 9776, 9776, 1318, -1697, -1697, 8744, 8744, 8744, 1313, 1316, - 9776, 9776, 9776, 9776, 9776, 1319, 491, 7490, 7700, 9776, - 9776, 10208, 9776, -1697, 1253, 9776, -1697, 1262, -1697, 1263, - -1697, 1265, 40, 44, 45, 46, 8744, 996, -1697, 12403, - -1697, 559, 9776, 7910, -1697, 9776, 9776, 632, -1697, 12424, - 12445, 12466, 1176, 10473, -1697, 1115, 4155, 12487, 12508, 11825, - -1697, -1697, 8744, -1697, 1479, -1697, 1732, 9776, 9776, -1697, - 9776, 9776, 1133, 5151, 1153, 651, 188, 12529, 195, 11848, - 9776, 8744, 1360, 1361, -1697, 9776, 12550, 11871, 218, 5728, - 5728, 5728, 5728, 5728, 5728, 5728, 5728, 5728, 5728, 5728, - 10499, 5728, 5728, 5728, 5728, 5728, 5728, 5728, 10525, 10551, - 10577, 637, 652, 637, 1156, 1158, 1154, 409, 409, 1155, - 409, 1157, 1162, 1163, 10603, 409, 409, 409, -55, 409, - 13096, -1697, 953, 1179, 1180, 1166, 666, 673, 1186, 1188, - 1198, 1329, 1331, 6440, 142, 1370, 1371, 6440, 89, 6316, - 9776, 1410, 1413, 33, 409, -1697, -70, 31, 34, -13, - -1697, 2574, 655, 4327, 1189, 1140, 794, 794, 614, 614, - 614, 614, 230, 230, 996, 996, 996, 996, 15, 12571, - 11894, -1697, 9776, 9776, 1422, 27, 8744, 9776, 9776, 1424, - 8744, 9776, 1425, 10208, 1426, -1697, 9, 1428, 10208, 9776, - 6316, 1421, 8744, 8744, 1279, 1429, 1431, 12592, 1432, 1284, - 1434, 1437, 12613, 1289, 1440, 1442, 9776, 12634, 6377, 1232, - -1697, -1697, -1697, 1445, 1462, 12655, 12676, 9776, 6440, 1467, - 1468, 12697, 1261, 13096, 1255, 1264, 13096, 1267, 1266, 13096, - 1276, 1268, 13096, 1277, 12718, -1697, 12739, -1697, 12760, -1697, - 689, 690, 8744, 1274, -1697, -1697, 2599, 2994, -76, 9776, - 9776, -1697, -1697, 1256, 1280, 4203, 10629, 10655, 10681, 10395, - 905, -76, 3045, 12781, 6587, 12802, 12823, 12844, 9776, 1471, - -1697, 9776, 12865, -1697, 11917, 11940, -1697, 696, 712, 716, - -1697, -1697, 11963, 11986, 10707, 12886, 12009, 132, -1697, -1697, - 8744, -1697, 8744, 4129, 1269, 8744, 1281, 257, 10733, 10759, - 409, 10785, 1278, 6797, 1282, 1283, 1285, -1697, 8744, -1697, - 8744, -1697, 8744, -1697, 8744, 722, -1697, -1697, 4353, 8744, - 996, -1697, 12907, 12032, 8744, -1697, 1472, 1491, 1495, 1294, - 9776, 3241, 9776, 9776, -1697, -1697, -2, 726, -1697, -1697, - 3462, -1697, 9500, 1286, 1288, 6440, 1498, 1469, 1475, 6440, - 142, 1477, 1478, 6440, 142, 7007, 730, -1697, -1697, 12055, - 275, 1036, -1697, -1697, -1697, -1697, -1697, -1697, -1697, -1697, - -1697, -1697, -1697, -1697, 9776, -1697, -1697, -1697, -1697, -1697, - -1697, -1697, 9776, 9776, 9776, -1697, 8744, -1697, -1697, -1697, - -1697, 10208, -1697, -1697, 9776, -1697, 6440, 10208, 10208, 10208, - -1697, -1697, -1697, -1697, -1697, -1697, -1697, -1697, 9776, 10208, - -1697, 10208, -1697, 9776, -1697, -1697, -1697, -1697, 113, 113, - 1504, -1697, 9776, 1505, 113, 113, 1506, 35, 9776, 1517, - 1518, 1159, -1697, 1519, 1312, 25, 1521, -1697, 8744, 8744, - 8744, 8744, -1697, 409, 9776, -1697, 1317, 1320, 1314, -1697, - 1524, -1697, -1697, -1697, -1697, -1697, 478, 489, 12928, 12078, - -1697, -1697, 1335, 10208, 153, 12949, 12101, -1697, 157, 10811, - -1697, -1697, -1697, 58, -1697, -1697, 5728, 409, -76, 4129, - -1697, 618, 6440, 6440, 1529, 6440, 848, 6440, 6440, 1532, - 1448, 6440, 6440, 1260, 1534, 1538, 8744, -1697, 1328, 1546, - 1547, 4587, -1697, -1697, 1549, -1697, 1551, 279, 9776, 279, - 9776, 279, 9776, 279, 9776, 1552, 1554, 1566, 1569, 1571, - 731, 1579, 3529, -1697, -1697, -18, 10837, 10863, -1697, -1697, - 7217, -131, -76, -76, -76, 1583, 9572, 1338, 1586, 1385, - 24, 26, 41, 49, -46, -1697, -8, -1697, 905, 1593, - 1595, 1600, 1602, 1605, 13096, -1697, 1664, 1384, 1613, 1614, - 1615, 1541, 1619, 1626, 1630, 9776, 132, -23, 735, 738, - -1697, 743, -1697, -1697, 9776, 9776, -1697, 9776, 9776, -1697, - 9776, 9776, 9776, 753, 754, 758, 762, -1697, 9776, 763, - 132, 132, 769, 6440, 6440, 6440, 1633, 10889, -1697, 4839, - 602, 1634, 1636, 1427, -1697, -1697, 1801, 1423, 6440, 1420, - -1697, 113, 113, 1637, 9776, 1643, 113, 113, 1644, 9776, - 1649, -1697, 409, 1652, -1697, 1638, -1697, 1654, 5728, 5728, - 5728, 5728, 680, 1444, 10369, 1450, 409, 409, 1446, 688, - 713, 12970, 1452, 409, 5728, 1134, 10208, -1697, 1841, -1697, - 1134, 10208, -1697, 173, 1451, 1665, 2023, -1697, -1697, -1697, - 25, 9776, -1697, 802, -1697, 805, 810, 814, 815, 279, - 13096, 1470, 9776, 9776, 6440, 1460, -1697, -1697, -1697, -1697, - 1464, -1697, 1674, 52, -1697, -1697, 1676, 9776, 5527, 1474, - 1473, 1677, 1678, 6, 1476, 1481, 1587, 1587, 6440, 1682, - 1482, 1483, 1684, 1685, 6440, 1484, 1686, 1689, -1697, 1698, - 6440, 834, 6440, 6440, 6440, 1701, 1702, -1697, 6440, 6440, - 13096, 6440, 13096, 6440, 13096, 6440, 13096, 6440, 6440, 6440, - 1489, 1492, 1704, 209, -1697, 9776, 9776, 9776, 1494, 1496, - -120, -89, -86, 1503, -1697, 2121, 6440, -1697, 9776, -1697, - 1703, -1697, 1711, -1697, 1713, -1697, 1714, -1697, -1697, 4203, - 522, 6230, -1697, 1507, 1508, 8120, -1697, 8744, -1697, -1697, - -1697, 1509, 9776, -1697, -1697, 12124, 1717, 409, 1512, 1514, - 10915, 10941, 10967, 10993, 11019, 11045, 11071, -1697, -1697, -1697, - -1697, 13096, -1697, 409, 1723, 1724, 1581, -1697, 9776, 9776, - 9776, -1697, 1725, 565, 6316, -1697, -1697, 1522, 1729, 1134, - 10208, -1697, 2199, -1697, 1134, 10208, -1697, 2243, -1697, 279, - -1697, 493, -1697, -1697, -1697, -1697, -1697, -1697, 10208, 9776, - -1697, -1697, -1697, -1697, 10208, 1734, -1697, -1697, 13, -1697, - -1697, -1697, -1697, -1697, -1697, 1730, 637, 637, -1697, 1737, - 637, 637, 6316, 9776, 1744, 1752, 33, -1697, 1751, 12147, - 25, -1697, 1753, 1754, 1780, 1781, 6440, 9776, 11097, 11123, - 847, -1697, 9776, 1784, -1697, -1697, 10208, -1697, 11149, 5101, - 13096, -1697, 1786, 1793, -1697, -1697, -1697, 9776, 9776, -76, - 1795, 1797, 1798, -1697, 9776, 9776, -1697, -1697, 1799, 9776, - -1697, -1697, 1805, 1800, 1608, 850, 1807, 1655, 9776, -1697, - 1823, 1824, 1830, 1835, 1839, 1842, 1068, 1843, 8744, 8744, - 9776, -1697, 8540, 7427, 12991, 2439, 473, 473, -76, 1844, - -76, 1845, -76, 1847, 9776, -1697, 253, 1629, 13012, -1697, - -1697, -1697, -1697, 7637, 104, -1697, 1864, 4650, 1865, 6440, - -76, 4650, 1866, 856, 9776, 2384, 1867, 132, -1697, -1697, - -1697, 9776, 9776, 9776, 9776, 9776, 9776, 9776, -1697, -1697, - -1697, 6440, 5559, 305, 13033, -1697, -1697, 5600, 1659, 5151, - 6440, -1697, 1871, 637, 637, -1697, 1872, 637, 637, -1697, - 6440, -1697, 1667, 5728, 409, 5317, 5810, 6316, -1697, 1877, - 1878, -1697, 1879, 1880, 1881, 2472, -1697, 1883, 1882, -1697, - 1680, -1697, -1697, -1697, -1697, -1697, 1885, 306, 13096, 9776, - 9776, 6440, 1675, 860, 13096, -1697, 1886, 9776, -1697, -1697, - 1683, 1690, 7847, 8057, 389, -1697, -1697, -1697, 8267, 8434, - -1697, 8681, 1895, -1697, 6440, 1896, -1697, 1821, 1904, 13096, - -1697, -1697, -1697, -1697, -1697, -1697, 1695, -1697, -1697, 872, - 888, 10342, 3046, 1908, 1697, -1697, 9776, -1697, 1699, 1700, - 126, -1697, 1705, 156, -1697, 1707, 192, -1697, 1708, 12170, - 1910, 6440, 1913, 1709, 9776, -1697, 8330, 214, -1697, 892, - 227, 258, -1697, 1911, 8795, -1697, -1697, 5728, 5728, 11175, - 11201, 11227, 11253, 11279, 1770, 9776, -1697, 9776, -1697, -1697, - 8744, 3329, 1916, 6316, 1710, 1712, -1697, 1922, 1924, -1697, - 1926, 1927, 1928, -1697, -1697, -1697, 4884, -1697, -1697, 10208, - 13096, -1697, -1697, -1697, -1697, -1697, -1697, -1697, -1697, 25, - -1697, 1782, -1697, -1697, 9776, 11305, 11331, -1697, 6440, 9776, - 1929, -1697, 11357, -1697, -1697, 6440, 6440, 1931, 1933, 1934, - 1939, 1940, 1941, 896, -1697, 1735, -1697, 6440, 615, 739, - 8744, -1697, -1697, 473, 5700, -1697, -1697, 4203, 905, 4203, - 905, 4203, 905, 1942, -1697, 897, 6440, -1697, 8862, -76, - 1944, 8744, -76, -1697, -1697, -1697, -1697, 9776, 9776, 9776, - 9776, 9776, 9776, 8905, 8973, 918, -1697, -1697, 1740, -1697, - 1948, -1697, -1697, -1697, -1697, -1697, 923, 3952, 1949, 949, - 1951, -1697, 1741, 13096, 9776, 9776, 954, 13096, -1697, 9776, - 955, 970, -1697, -1697, -1697, -1697, -1697, -1697, -1697, -1697, - 1743, 9776, 971, 1746, -76, 6440, 1952, 1749, -76, 1956, - 986, 1736, 9776, -1697, 9071, 311, 642, 9138, 315, 878, - 9181, 368, 1093, -1697, 6440, 1962, 1861, 3834, 1763, 375, - -1697, 1002, 378, 11383, 11409, 11435, 11461, 11487, 3694, -1697, - -1697, 1976, 1977, -1697, 9776, -1697, 6316, 9, -1697, -1697, - 9776, 13054, 11513, 48, 11539, -1697, -1697, -1697, -1697, 9776, - 9249, 1980, -76, 73, -1697, -1697, -76, 83, -1697, 1981, - -1697, 9347, 1982, 9776, 1983, 1984, 9776, 1985, 2001, 9776, - 2002, 1790, -1697, 9776, -1697, 905, -1697, 8744, 2004, 8330, - 9776, 9776, 9776, 9776, 9776, -1697, -1697, -1697, 3973, -1697, - 1802, 1021, -1697, 9776, -1697, 6440, 9776, 1030, 1033, 11565, - -1697, -1697, 403, -1697, 407, -1697, -1697, -1697, -1697, 1796, - 9419, -1697, -1697, 1804, 9525, -1697, -1697, 1806, 9623, -1697, - 2009, 3911, 1130, 5860, 1038, -1697, 424, 1039, 11591, 11617, - 11643, 11669, 11695, 6316, 1808, 2010, 1809, 13075, 1056, 9665, - -1697, -1697, 9776, -76, -76, 905, 2011, 905, 2012, 905, - 2013, -1697, -1697, -1697, -1697, 905, 2017, 8744, 2019, 9776, - 9776, 9776, 9776, 9776, -1697, -1697, -1697, 10208, -1697, 1810, - 2020, 9693, 426, 432, 1411, -1697, 1813, 1466, -1697, 1829, - 1485, -1697, 1831, 1536, -1697, 1057, -1697, 5728, 11721, 11747, - 11773, 11799, 1065, -1697, 1832, 6440, -1697, 2042, 9776, 9776, - 2046, 905, 2047, 905, 2048, 905, -1697, 2049, -1697, 9776, - 9776, 9776, 9776, 10208, 2052, 10208, 1070, -1697, 10098, 10126, - -1697, 1609, -1697, 1766, -1697, 1840, -1697, 10154, 10204, 10232, - 10260, -1697, -1697, 1074, -1697, 2054, 2055, 2060, 2062, 2063, - 2067, -1697, -1697, -1697, -1697, 10208, 2092, -1697, -1697, -1697, - -1697, -1697, -1697, -1697, -1697 + 10038, 70, 64, 10182, -1757, -1757, 4486, 18, 63, -156, + -114, 59, 109, 143, 177, 192, -11, 217, 279, 85, + 93, -173, -173, -89, 102, 116, 54, 135, 145, 31, + 188, 204, 234, 245, 223, 186, 296, 387, 247, 499, + 324, 332, 422, 488, 263, 469, 844, 660, 244, 369, + 507, -107, 390, -136, -136, 418, 503, 35, -1757, -1757, + -1757, 80, 542, 548, 26, 36, 557, 605, 348, 712, + 721, 738, 6327, 745, 513, 544, 550, 25, 37, -1757, + 560, 594, -1757, -1757, 857, 874, 484, -1757, 7933, 668, + 8363, 43, 50, -1757, -1757, -1757, 9887, 670, -1757, -1757, + -1757, -1757, -1757, -1757, -1757, -1757, -1757, -1757, -1757, -1757, + -1757, -1757, -1757, -71, -1757, -1757, -1757, -1757, 3, -1757, + -70, 101, -1757, 16, -1757, -1757, -1757, -1757, -1757, -173, + -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, + -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, + -173, -173, -173, -173, 675, 681, 686, -173, -173, -173, + -173, 691, -173, -173, -173, -173, -173, -173, 711, -1757, + -173, -1757, -1757, -1757, -1757, -1757, -173, -173, 923, 717, + 723, 732, -173, -173, 754, 777, -1757, -1757, -1757, -1757, + 741, 9887, 9887, 9887, 2542, 3105, 23, 21, 424, 740, + 776, 300, -1757, 787, 1005, -51, -34, 1008, 9887, 8148, + 8148, -1757, 9887, -1757, -1757, -1757, -1757, 8148, -1757, -1757, + -1757, -1757, -1757, -1757, 4705, 21, 9887, 9116, 9887, 9887, + 799, 9887, 9116, 9887, 9887, 809, 9116, 9887, 9887, 9887, + 9887, 6757, 813, 814, -1757, 9116, 6327, 6327, 6327, 8148, + 9887, 822, 845, 6327, 6327, 6327, 846, 860, 865, 866, + 871, 6972, 7187, 7402, 900, 1207, 1016, 6757, 25, 901, + 913, -136, -136, -136, 9887, 9887, -101, -1757, -82, -136, + 914, 927, 954, 1805, -63, -57, 887, 895, 939, 962, + 974, 989, 993, 6327, 6327, 6757, 1003, 10, 875, -1757, + 892, 1214, 1241, -1757, 1046, 1089, 1098, 6327, 6327, 1039, + 1057, 1099, 688, -1757, -104, -173, -173, -173, -173, 39, + 14, 27, 29, 859, 7617, 9887, 5165, -1757, -1757, 1155, + -1757, 2465, -1757, 1329, -1757, 260, 213, 1339, 9887, 9887, + 9887, -85, 9887, 1156, -1757, 1203, 9887, 9887, 9887, -1757, + -1757, 9887, 1143, 1370, 1374, 1159, -1757, -1757, 1378, -1757, + 1379, -1757, 156, 4618, 519, 8148, 9887, -1757, -1757, 6757, + 6757, 9325, 9392, 1163, 1166, 4705, -1757, -1757, -1757, -1757, + -1757, -1757, 6757, 1384, 1188, 9887, 9887, 1396, 9887, 9887, + 9887, 9887, 9887, 9887, 9887, 9887, 9887, 9887, 9887, 9887, + 9887, 9887, 9887, 9887, 9887, 9887, 9887, 9887, 9887, 9887, + 8148, 8148, 8148, 8148, 8148, 8148, 8148, 8148, 8148, 8148, + 6757, 8148, 8148, 9887, 8148, 8148, 8148, 8148, 8148, 9887, + 4705, 9887, 8148, 8148, 8148, 8148, 8148, 21, 4705, 21, + 1192, 1192, 1192, 15, 11690, 195, 9079, 114, 1189, 1401, + -173, 1187, -1757, 1193, 5444, 9887, 9116, -1757, 9887, 9887, + 9887, 9887, 9887, 9887, 9887, 9887, 9887, 9887, 9887, 9887, + 9887, 9887, 9887, -1757, -1757, 9887, 9887, -1757, -1757, 399, + 696, 341, -1757, 539, -1757, 474, 9234, -1757, 545, 273, + 304, 1190, 1200, 11711, 9116, 2759, -1757, 170, 11732, 11753, + 9887, 11774, 215, 11795, 11816, 9887, 289, 11837, 11858, 11879, + 11900, 1404, 9887, 9887, 308, 1418, 1419, 1420, 1210, 11921, + 9887, 9887, 1422, 1424, 1424, 9887, 8907, 8907, 8907, 8907, + 9887, 1426, 9887, 1429, 9887, 1430, 9116, 9116, 8848, 1220, + 1432, 1216, -1757, -1757, -49, -1757, -1757, 9276, 9351, -136, + -136, 424, 424, -30, 9887, 9887, 9887, 1805, 1805, 9887, + 5444, 158, -1757, 9887, 9887, 9887, 9887, 9887, 9887, 9887, + 9887, 9887, 1434, 1437, 1438, 9887, 1440, 9887, 9887, 1041, + -1757, -1757, 9116, 9116, 9116, 1444, 1445, 9887, 9887, 9887, + 9887, 9887, 1448, 336, 7832, 8047, 9887, 9887, 8148, 9887, + -1757, 1382, 9887, -1757, 1397, -1757, 1398, -1757, 1403, 51, + 52, 57, 58, 9116, 1192, -1757, 11942, -1757, 430, 9887, + 8262, -1757, 9887, 9887, 460, -1757, 11963, 11984, 12005, 1300, + 9448, -1757, 1246, 2825, 12026, 12047, 11322, -1757, -1757, 9116, + -1757, 3388, -1757, 4628, 9887, 9887, -1757, 9887, 9887, 1251, + 12068, 4317, 1254, 431, 205, 12089, 286, 11345, 9887, 9116, + 1468, 1469, -1757, 9887, 12110, 11368, 183, 6025, 6025, 6025, + 6025, 6025, 6025, 6025, 6025, 6025, 6025, 6025, 9520, 6025, + 6025, 6025, 6025, 6025, 6025, 6025, 9562, 9631, 9729, -118, + 151, -118, 1259, 1261, 1255, 495, 495, 1257, 495, 1258, + 1264, 1265, 9771, 495, 495, 495, 585, 495, 12740, -1757, + 582, 1267, 1268, 1266, 553, 725, 1275, 1276, 1262, 1450, + 1451, 6757, 164, 1452, 1453, 6757, 106, 4705, 9887, 1492, + 1496, 33, 495, -1757, -38, 55, 34, -32, -1757, 3750, + 663, 2873, 1830, 2570, 863, 863, 658, 658, 658, 658, + 667, 667, 1192, 1192, 1192, 1192, 13, 12131, 11391, -1757, + 9887, 9887, 1497, 17, 9116, 9887, 9887, 1498, 9116, 9887, + 1499, 8148, 1500, -1757, 21, 1501, 8148, 9887, 4705, 1495, + 9116, 9116, 1342, 1504, 1506, 12152, 1507, 1347, 1510, 1511, + 12173, 1358, 1513, 1514, 1515, 1517, 9887, 12194, 3825, 1302, + -1757, -1757, -1757, 1522, 1523, 12215, 12236, 9887, 6757, 1525, + 1526, 12257, 1316, 12740, 1312, 1321, 12740, 1317, 1324, 12740, + 1320, 1327, 12740, 1323, 12278, -1757, 12299, -1757, 12320, -1757, + 674, 698, 9116, 1328, -1757, -1757, 6162, 6377, -136, 9887, + 9887, -1757, -1757, 1326, 1330, 1805, 9797, 9825, 10178, 9167, + 562, -136, 6592, 12341, 3902, 12362, 12383, 12404, 12425, 12446, + 12467, 12488, 9887, 1541, -1757, 9887, 12509, -1757, 11414, 11437, + -1757, 749, 752, 753, -1757, -1757, 11460, 11483, 10204, 12530, + 11506, 213, -1757, -1757, 9116, -1757, 9116, 2759, 1334, 9116, + 1333, 275, 10230, 10256, 495, 10282, 1332, 3942, 1337, 1338, + 1344, -1757, 9116, -1757, 9116, -1757, 9116, -1757, 9116, 757, + -1757, -1757, 2990, 9116, 1192, -1757, 12551, 11529, 9116, -1757, + 1546, 1561, 1562, 1350, 9887, 6807, 9887, 9887, -1757, -1757, + 11, 763, -1757, -1757, 7022, -1757, 1564, 9606, 1349, 1353, + 6757, 1571, 1534, 1535, 6757, 164, 1536, 1537, 6757, 164, + 4013, 770, -1757, -1757, 11552, 270, 1870, -1757, -1757, -1757, + -1757, -1757, -1757, -1757, -1757, -1757, -1757, -1757, -1757, 9887, + -1757, -1757, -1757, -1757, -1757, -1757, -1757, 9887, 9887, 9887, + -1757, 9116, -1757, -1757, -1757, -1757, 8148, -1757, -1757, 9887, + -1757, 6757, 8148, 8148, 8148, -1757, -1757, -1757, -1757, -1757, + -1757, -1757, -1757, 9887, 8148, -1757, 8148, -1757, 9887, -1757, + -1757, -1757, -1757, -173, -173, 1578, -1757, 9887, 1579, -173, + -173, 1580, 45, 9887, 1581, 1583, 616, -1757, 1584, 1372, + 25, 1587, -1757, 9116, 9116, 9116, 9116, -1757, 495, 9887, + -1757, 1380, 1381, 1371, -1757, 1589, -1757, -1757, -1757, -1757, + -1757, 410, 437, 12572, 11575, -1757, -1757, 1395, 8148, 586, + 12593, 11598, -1757, 615, 10308, -1757, -1757, -1757, 68, -1757, + -1757, 6025, 495, -136, 2759, -1757, 908, 6757, 6757, 1593, + 6757, 912, 6757, 6757, 1594, 1512, 6757, 6757, 6757, 6757, + 842, 1596, 1598, 9116, -1757, 1383, 1601, 1602, 3232, -1757, + -1757, 1604, -1757, 1605, 453, 9887, 453, 9887, 453, 9887, + 453, 9887, 1606, 1616, 1617, 1618, 1619, 784, 1607, 7237, + -1757, -1757, 265, 10334, 10360, -1757, -1757, 4164, -124, -136, + -136, -136, 1627, 9678, 1409, 1632, 1423, 40, 41, 47, + 75, 716, -1757, 268, -1757, 562, 1634, 1636, 1639, 1640, + 1641, 1642, 1643, 1645, 1648, 12740, -1757, 966, 1431, 1637, + 1651, 1652, 1585, 1666, 1668, 1670, 9887, 213, -141, 785, + 797, -1757, 804, -1757, -1757, 9887, 9887, -1757, 9887, 9887, + -1757, 9887, 9887, 9887, 834, 870, 876, 877, -1757, 9887, + 880, 213, 213, 884, 6757, 6757, 6757, 1691, 10386, -1757, + 3165, 367, 1694, 1695, 1472, -1757, 1477, -1757, 1462, 1478, + 6757, 1479, -1757, -173, -173, 1698, 9887, 1714, -173, -173, + 1720, 9887, 1723, -1757, 495, 1724, -1757, 1727, -1757, 1726, + 6025, 6025, 6025, 6025, 733, 1516, 9053, 1519, 495, 495, + 1518, 743, 747, 12614, 1520, 495, 6025, 1570, 8148, -1757, + 1482, -1757, 1570, 8148, -1757, 189, 1521, 1736, 1647, -1757, + -1757, -1757, 25, 9887, -1757, 888, -1757, 894, 920, 921, + 932, 453, 12740, 1528, 9887, 9887, 6757, 1527, -1757, -1757, + -1757, -1757, 1531, -1757, 1728, 22, -1757, -1757, 1740, 9887, + 5824, 1539, 1533, 1747, 1748, 9, 1540, 1542, 1626, 1626, + 6757, 1751, 1544, 1545, 1752, 1754, 6757, 1550, 1763, 1768, + 1769, 1770, -1757, 1772, 6757, 938, 6757, 6757, 6757, 1775, + 1774, -1757, 6757, 6757, 12740, 6757, 12740, 6757, 12740, 6757, + 12740, 6757, 6757, 6757, 1558, 1559, 1778, 726, -1757, 9887, + 9887, 9887, 1567, 1572, -129, -96, -68, 1586, -1757, 1690, + 6757, -1757, 9887, -1757, 1790, -1757, 1791, -1757, 1797, -1757, + 1799, -1757, -1757, 1805, 781, 6542, -1757, 1588, 1590, 1595, + 1620, 1644, 1646, 8477, -1757, 9116, -1757, -1757, -1757, 1649, + 9887, -1757, -1757, 11621, 1803, 495, 1600, 1591, 10412, 10438, + 10464, 10490, 10516, 10542, 10568, -1757, -1757, -1757, -1757, 12740, + -1757, 495, 1806, 1857, 1707, -1757, 9887, 9887, 9887, -1757, + 1862, 793, 4705, -1757, -1757, -1757, 1654, 1864, 1570, 8148, + -1757, 1760, -1757, 1570, 8148, -1757, 1972, -1757, 453, -1757, + 471, -1757, -1757, -1757, -1757, -1757, -1757, 8148, 9887, -1757, + -1757, -1757, -1757, 8148, 1867, -1757, -1757, 99, -1757, -1757, + -1757, -1757, -1757, -1757, 1875, -118, -118, -1757, 1876, -118, + -118, 4705, 9887, 1877, 1869, 33, -1757, 1895, 11644, 25, + -1757, 1896, 1897, 1898, 1900, 6757, 9887, 10594, 10620, 960, + -1757, 9887, 1903, -1757, -1757, 8148, -1757, 10646, 5394, 12740, + -1757, 1901, 1902, -1757, -1757, -1757, 9887, 9887, -136, 1904, + 1906, 1907, -1757, 9887, 9887, -1757, -1757, 1917, 9887, -1757, + -1757, -1757, -1757, 1919, 1920, 1702, 961, 1925, 1771, 9887, + -1757, 1927, 1928, 1932, 1933, 1935, 1936, 1182, 1937, 9116, + 9116, 9887, -1757, 8907, 4371, 12635, 3329, 424, 424, -136, + 1939, -136, 1940, -136, 1941, 9887, -1757, 139, 1749, 12656, + -1757, -1757, -1757, -1757, 4590, 340, -1757, 1942, 1943, 6757, + -136, -136, -136, -136, -136, 4903, 1944, 965, 9887, 1992, + 1968, 213, -1757, -1757, -1757, 9887, 9887, 9887, 9887, 9887, + 9887, 9887, -1757, -1757, -1757, 6757, 3368, 465, 12677, -1757, + -1757, 5897, 1755, 4317, 4317, 6757, -1757, 1973, -118, -118, + -1757, 1974, -118, -118, -1757, 6757, -1757, 1765, 6025, 495, + 5609, 6112, 4705, -1757, 1977, 1978, -1757, 1981, 1982, 1993, + 2115, -1757, 1997, 2001, -1757, 1788, -1757, -1757, -1757, -1757, + -1757, 2003, 628, 12740, 9887, 9887, 6757, 1787, 975, 12740, + -1757, 2008, 9887, -1757, -1757, 1792, 1794, 4656, 4802, 664, + -1757, -1757, -1757, 4840, 4933, -1757, 5064, 2013, -1757, 6757, + 2014, -1757, 1931, 2016, 12740, -1757, -1757, -1757, -1757, -1757, + -1757, 1800, -1757, -1757, 976, 984, 9016, 2160, 2019, 1804, + -1757, 9887, -1757, 1817, 1819, 405, -1757, 1821, 409, -1757, + 1823, 412, -1757, 1827, 11667, 2045, 6757, 2047, 1829, 9887, + -1757, -1757, 990, 423, 436, 475, 481, 486, 8692, 514, + -1757, 2049, 5120, -1757, -1757, 6025, 6025, 10672, 10698, 10724, + 10750, 10776, 1908, 9887, -1757, 9887, -1757, -1757, 9116, 2427, + 2050, 4705, 1833, 1834, 1836, -1757, 2057, 2059, -1757, 2060, + 2061, 2062, -1757, -1757, -1757, 5165, -1757, -1757, 8148, 12740, + -1757, -1757, -1757, -1757, -1757, -1757, -1757, -1757, 25, -1757, + 1910, -1757, -1757, 9887, 10802, 10828, -1757, 6757, 9887, 2064, + -1757, 10854, -1757, -1757, 6757, 6757, 2070, 2071, 2072, 2073, + 2074, 2075, 991, -1757, 1866, -1757, 6757, 206, 502, 9116, + -1757, -1757, 424, 3711, -1757, -1757, 1805, 562, 1805, 562, + 1805, 562, 2081, -1757, 1024, 6757, -1757, 5293, 2085, 9116, + -136, -136, -136, -136, -136, -1757, -1757, -1757, -1757, 9887, + 9887, 9887, 9887, 9887, 9887, 5508, 5546, 1030, -1757, -1757, + 1878, 1871, -1757, 2090, -1757, -1757, -1757, -1757, -1757, 1031, + 1151, 2091, 1034, 2093, -1757, 1874, 12740, 9887, 9887, 1042, + 12740, -1757, 9887, 1048, 1052, -1757, -1757, -1757, -1757, -1757, + -1757, -1757, -1757, 1879, 9887, 1062, 1881, -136, 6757, 2094, + 1887, -136, 2095, 1066, 1891, 9887, -1757, 5782, 517, 977, + 5854, 521, 1157, 5997, 524, 1195, -1757, 6757, 2116, 2009, + 7452, 1905, -1757, 1067, 534, 547, 552, 587, 589, 10880, + 10906, 10932, 10958, 10984, 2491, -1757, -1757, 2118, 2120, -1757, + -1757, 9887, -1757, 4705, 21, -1757, -1757, 9887, 12698, 11010, + 60, 11036, -1757, -1757, -1757, -1757, 9887, 6226, 2121, -136, + 82, -1757, -1757, -136, 110, -1757, 2125, -1757, 6441, 2126, + 9887, 2127, 2128, 9887, 2131, 2133, 9887, 2134, 1918, -1757, + 9887, -1757, 562, -1757, 2135, 9116, 9116, 9116, 9116, 8692, + 9887, 9887, 9887, 9887, 9887, -1757, -1757, -1757, 4317, 1509, + -1757, 1930, 1074, -1757, 9887, -1757, 6757, 9887, 1082, 1083, + 11062, -1757, -1757, 621, -1757, 627, -1757, -1757, -1757, -1757, + 1921, 6656, -1757, -1757, 1924, 6871, -1757, -1757, 1926, 7086, + -1757, 2137, 2725, 1260, 7667, -1757, 1086, 1094, 1103, 1112, + 629, 1119, 11088, 11114, 11140, 11166, 11192, 1929, 4705, 1934, + 2142, 1938, 12719, 1122, 7301, -1757, -1757, 9887, -136, -136, + 562, 2144, 562, 2146, 562, 2150, -1757, -1757, -1757, -1757, + 562, 2151, 2152, 2154, 2156, 9116, 2158, 9887, 9887, 9887, + 9887, 9887, 2159, -1757, -1757, -1757, 8148, -1757, 1960, 2161, + 7516, 633, 650, 1319, -1757, 1961, 1421, -1757, 1962, 1656, + -1757, 1963, 1858, -1757, -1757, -1757, -1757, 1141, -1757, 6025, + 11218, 11244, 11270, 11296, -1757, 1145, -1757, 1965, 6757, -1757, + 2197, 9887, 9887, 2202, 562, 2204, 562, 2206, 562, -1757, + 2207, -1757, 9887, 9887, 9887, 9887, 8148, 2208, 8148, 1149, + -1757, 8376, 8414, -1757, 2283, -1757, 2378, -1757, 2685, -1757, + 8591, 8629, 8792, 8820, -1757, -1757, 1153, -1757, 2209, 2210, + 2211, 2215, 2217, 2218, -1757, -1757, -1757, -1757, 8148, 2219, + -1757, -1757, -1757, -1757, -1757, -1757, -1757, -1757 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -1697, -1697, -1697, -1697, 846, -1697, -1697, -1697, -1697, 207, - -1697, -1697, -1697, -1697, -1697, -1697, -1697, -1697, -1697, -1697, - -1697, -1697, -313, -90, 1635, 3378, -1697, 1621, -1697, -1697, - -1697, -1697, -1697, -1697, -1697, -1696, -1697, 377, -1697, -1697, - -1697, -1697, -1697, -1697, 835, 2100, 11, -529, -242, -1697, - -1697, -1697, -1697, -1697, -1697, -1697, -1697, 2101, -1697, -1697, - -1697, -1697, -1697, -1697, -1697, -1697, -1697, -1697, -1697, -1697, - -1697, -1102, -1099, -1697, 556, 2103, -1697, -1697, 1596, -1697, - 369, -1697, -1697, -1697, -1697, 1969, -1697, -1697, 93, -1697, - -1275, 2529, 318, 2421, 3131, -261, 683, -1697, 131, 68, - -1697, -395, -3, 267 + -1757, -1757, -1757, -1757, 944, -1757, -1757, -1757, -1757, 313, + -1757, -1757, -1757, -1757, -1757, -1757, -1757, -1757, -1757, -1757, + -1757, -1757, -393, 12, 4151, 3383, -1757, 1742, -1757, -1757, + -1757, -1757, -1757, -1757, -1757, -1756, -1757, 461, -1757, -1757, + -1757, -1757, -1757, -1757, 934, 2232, -1, -541, -275, -1757, + -1757, -1757, -1757, -1757, -1757, -1757, -1757, 2233, -1757, -1757, + -1757, -1757, -1757, -1757, -1757, -1757, -1757, -1757, -1757, -1757, + -1757, -1140, -1134, 2234, -1581, 2235, -1757, -1757, -1757, 1715, + -1757, 452, -1757, -1757, -1757, -1757, 1880, -1757, -1757, 1456, + -1757, -1290, 2573, -157, 3102, 3357, -267, 778, -1757, 103, + 111, -1757, -406, -3, 30 }; /* 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 -541 +#define YYTABLE_NINF -548 static const yytype_int16 yytable[] = { - 117, 583, 528, 202, 671, 1171, 673, 1475, 559, 823, - 824, 373, 1456, 342, 101, 1328, 1330, 1566, 288, 1015, - 436, 688, 227, 357, 586, 588, 590, 1800, 372, 331, - 1319, 205, 1321, 1031, 232, 227, 547, 1004, 232, 1223, - 280, 612, 5, 348, 350, 877, 196, 1323, 562, 879, - 881, 883, 206, 208, 1914, 1325, 536, 537, 1445, 291, - 335, 536, 537, 1105, 204, 1258, 293, 325, 294, 223, - 536, 537, 291, 538, 201, 745, 224, 1106, 539, 1923, - 746, 536, 537, 291, 263, 1107, 1108, 1109, 1309, 1925, - 749, 1110, 1111, 1112, 1113, 750, 991, 1498, 752, 1499, - 264, 265, 360, 753, 361, 536, 537, 624, 4, 626, - 701, 362, 536, 537, 633, 536, 537, 207, 364, 703, - 281, 707, 549, 710, 282, 267, 268, 705, 1500, 550, - 1501, 1502, 214, 1503, 709, 269, 551, 200, 283, 536, - 537, 223, 270, 210, 271, 273, 295, 279, 1008, 991, - 536, 537, 584, 211, 343, 818, 347, 973, 1016, 1017, - 1018, 1019, 753, 536, 537, 1320, 825, 1322, 212, 437, - 438, 1917, 1918, 1327, 213, 587, 589, 591, 289, 831, - 1422, 1567, 1324, 536, 537, 369, 370, 215, 1224, 1225, - 1326, 291, 1346, 536, 537, 917, 95, 259, 235, 1305, - 260, 95, 921, 472, 472, 1011, 441, 536, 537, 1329, - 216, 472, 95, 1172, 585, 1491, 1492, 560, 374, 291, - 375, 325, 376, 217, 196, 1032, 325, 196, 358, 228, - 325, 1328, 290, 325, 1020, 359, 229, 325, 325, 325, - 325, 472, 228, 332, 1659, 325, 325, 325, 233, 1009, - 1032, 1005, 1010, 325, 325, 325, 349, 351, 878, 325, - 291, 602, 880, 882, 884, 209, 1915, 336, 218, 1259, - 118, 1260, 225, 203, 536, 537, 226, 365, 366, 367, - 368, 325, 325, 325, 536, 537, 991, 816, 817, 480, - 230, 365, 366, 367, 702, 325, 325, 369, 370, 365, - 366, 367, 368, 231, 997, 536, 537, 832, 365, 366, - 367, 706, 325, 1677, 325, 365, 366, 367, 368, 369, - 370, 1654, 236, 919, 219, 923, 220, 536, 537, 292, - 365, 366, 367, 368, 234, 369, 370, 470, 474, 1733, - 369, 370, 334, 1747, 369, 370, 711, 763, 239, 764, - 369, 370, 472, 344, -534, 325, 325, 536, 537, 531, - 532, 365, 366, 367, 368, 1253, 235, 540, 325, 1256, - 763, 548, 901, 1749, 763, 505, 365, 366, 367, 918, - 237, 369, 370, 365, 366, 367, 922, 910, 284, 298, - 285, 992, 299, 536, 537, 998, 472, 472, 472, 472, - 472, 472, 472, 472, 472, 472, 325, 472, 472, 1751, - 472, 472, 472, 472, 472, 536, 537, 238, 472, 472, - 472, 472, 472, 291, 240, 291, 369, 370, 536, 537, - 244, 1759, 642, 458, 459, 460, -539, 577, 754, 578, - 461, 755, 325, 1796, 1761, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 603, 459, 460, 536, - 537, 439, 1812, 461, 246, 369, 370, 365, 366, 367, - 368, 1143, 1650, 473, 473, 1762, 763, 440, 769, 275, - 325, 473, 276, 369, 370, 277, 632, 691, 252, 481, - 763, 253, 773, -537, 254, 699, 255, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 473, 536, 537, 245, 461, 536, 537, 1713, 241, - 325, 325, 242, 1714, 1678, 243, 757, 446, 1883, 755, - 334, 672, 1886, 674, 675, 676, 677, 678, 679, 680, - 247, 682, 683, 251, 685, 686, 687, 261, 689, 441, - 441, 262, 693, 694, 695, 696, 697, 266, 932, 502, - 503, 504, 325, 325, 325, 274, 509, 510, 511, 536, - 537, 1546, 1547, 1092, 325, 325, 536, 537, 472, 536, - 537, 794, 797, 800, 803, 1889, 50, 51, 52, 53, - 536, 537, 1897, 325, 286, 1899, 267, 268, 61, 287, - 325, 64, 555, 556, 536, 537, 269, 1184, 536, 537, - 1370, 1189, 300, 278, 993, 296, 568, 569, 999, 325, - 1963, 858, 473, 859, 1964, 536, 537, 536, 537, 821, - 822, 1105, 297, 536, 537, 301, 328, 532, 325, 302, - 1958, 1977, 464, 2018, 465, 1106, 1826, 327, 1829, 2019, - 1832, 362, 329, 1107, 1108, 1109, 605, 330, 606, 1110, - 1111, 1112, 1113, 337, 338, 362, 473, 473, 473, 473, - 473, 473, 473, 473, 473, 473, 339, 473, 473, 341, - 473, 473, 473, 473, 473, 340, 369, 370, 473, 473, - 473, 473, 473, 698, 345, 700, -538, 369, 370, 355, - 325, 369, 370, 858, 325, 859, 356, -536, 1264, 860, - 1265, -540, 870, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 1328, 1813, 1814, - 1328, 461, 420, 1328, 1815, 402, 630, 747, 631, 748, - 2036, 1515, 403, 325, 1232, 362, 362, 325, 404, 409, - 472, 1105, 416, 291, 573, 472, 574, 421, 575, 325, - 325, 195, 422, 196, 1289, 1106, 1291, 932, 1293, 763, - 1295, 779, 423, 1107, 1108, 1109, 763, 1000, 887, 1110, - 1111, 1112, 1113, 592, 426, 325, 593, 248, 427, 594, - 249, 595, 250, 1942, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 256, 325, - 428, 257, 461, 258, 1371, 456, 457, 458, 459, 460, - 1416, 1417, 444, 445, 461, 1420, 1421, 627, 1047, 628, - 1185, 575, 463, 742, 1190, 743, 196, 744, 462, 467, - 1194, 1196, 196, 1328, 858, 867, 859, 489, 473, 858, - 894, 859, 1817, 1818, 753, 494, 499, 325, 1815, 325, - 507, 1884, 325, 1994, 858, 1997, 859, 2000, 915, 956, - 916, 500, 763, 2003, 1013, 325, 508, 325, 858, 325, - 859, 325, 512, 981, 1041, 858, 325, 859, 513, 1045, - 983, 325, 858, 514, 859, 1328, 515, 763, 1328, 523, - 858, 1328, 859, 516, 1328, 1405, 763, 763, 1088, 1089, - 1423, 1095, 325, 763, 526, 1130, 325, 552, 1101, 2041, - 325, 2043, 529, 2045, 1116, 858, 1436, 859, 472, 763, - 1408, 1131, 741, 763, 553, 1132, 1247, 1248, 1270, 763, - 1271, 1157, 1328, 763, 1328, 1173, 1328, 763, 763, 1192, - 1302, 530, 763, 325, 1347, 763, 554, 1348, 472, 977, - 763, 558, 1349, 325, 472, 472, 472, 1638, 1639, 1428, - 763, 763, 1357, 1358, 541, 763, 472, 1359, 472, 763, - 763, 1360, 1362, 542, 1553, 1554, 763, 1105, 1363, 1557, - 1558, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 543, 1106, 291, 561, 461, 325, 325, 325, 325, 1107, - 1108, 1109, 362, 563, 1105, 1110, 1111, 1112, 1113, 1430, - 473, 1431, 763, 1043, 1432, 473, 564, 763, 1106, 1433, - 472, 763, 763, 1434, 1435, 565, 1107, 1108, 1109, 566, - 469, 121, 1110, 1111, 1112, 1113, 1194, 1196, 567, 325, - 325, 763, 325, 1474, 325, 325, 570, 571, 325, 325, - 604, 608, 1197, 325, 1591, 572, 1592, 1591, 615, 1615, - 1247, 1248, 1626, 763, 1627, 1663, 1560, 1719, 196, 1720, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 763, - 620, 1738, 1203, 161, 162, 163, 164, 1887, 1206, 1207, - 1208, 166, 167, 168, 614, 763, 169, 1739, 621, 1591, - 1212, 1760, 1213, 1591, 1834, 1810, 1835, 174, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 622, 1424, 1549, 763, 461, 1851, 469, 121, - 1854, 1263, 1855, 623, 625, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 640, - 325, 325, 325, 461, 1252, 1229, 753, 644, 1858, 1581, - 641, 1591, 1405, 1863, 1865, 325, 645, 648, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 1408, 1591, 1866, - 1871, 161, 162, 163, 164, 1310, 1311, 1312, 473, 166, - 167, 168, 1105, 763, 169, 1879, 461, 712, 177, 178, - 179, 713, 472, 472, 1821, 174, 1106, 472, 472, 763, - 186, 1898, 187, 95, 1107, 1108, 1109, 291, 473, 195, - 1110, 1111, 1112, 1113, 473, 473, 473, 715, 1719, 1105, - 1955, 325, 759, 760, 369, 370, 473, 1405, 473, 1960, - 1405, 1195, 1961, 1106, -535, 763, 763, 1976, 1978, 776, - 780, 1107, 1108, 1109, 781, 325, 1278, 1110, 1111, 1112, - 1113, 325, 334, 1591, 763, 1989, 2027, 325, 782, 325, - 325, 325, 2033, 783, 2034, 325, 325, 1591, 325, 2055, - 325, 2065, 325, 2066, 325, 325, 325, 787, 788, 805, - 473, 1561, 807, 809, 1789, 814, 177, 178, 179, 813, - 815, 838, 1890, 325, 840, 872, 841, 843, 186, 850, - 187, 95, 851, 857, 874, 875, 1451, 876, 325, 899, - 7, 8, 325, 902, 325, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 858, 911, 859, 1973, - 461, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 914, 927, 928, 959, 461, - 960, 961, 964, 988, 966, 989, 472, 472, 980, 967, - 968, 472, 472, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 472, 978, 979, 985, 461, - 986, 472, 716, 24, 25, 717, 27, 28, 718, 30, - 719, 32, 987, 33, 994, 995, 1002, 1003, 38, 39, - 40, 41, 1514, 43, 44, 45, 1030, 291, 1048, 48, - 1037, 1040, 1042, 325, 1044, 1051, 1052, 1561, 1053, 1055, - 1056, 1057, 1548, 472, 1058, 1060, 325, 1061, 1790, 1062, - 1066, 1067, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 72, 73, 74, 1068, - 461, 1073, 1078, 1077, 1075, 1098, 1079, 1125, 1081, 1163, - 1083, 1140, 473, 473, 1080, 325, 325, 473, 473, 1091, - 1574, 7, 8, 1082, 1084, 1142, 1148, 334, 1164, 1099, - 1150, 1151, 1165, 1152, 1180, 1177, 1178, 441, 441, 1166, - 1217, 1219, 1222, 1181, 325, 1837, 325, 1599, 325, 1182, - 1105, 1186, 1187, 1227, 1228, 1231, 1230, 1234, 1242, 1562, - 1246, 1243, 1244, 1251, 1106, 1564, 1268, 846, 325, 1274, - 1275, 1279, 1107, 1108, 1109, 1280, 1282, 325, 1110, 1111, - 1112, 1113, 1604, 1283, 1284, 1287, 1316, 325, 1288, 1297, - 1633, 1298, 325, 716, 24, 25, 717, 27, 28, 718, - 30, 719, 32, 1299, 33, 1105, 1300, 1596, 1301, 38, - 39, 40, 41, 1303, 43, 44, 45, 1313, 325, 1106, - 48, 1640, 1317, 1643, 1105, 1646, 1318, 1107, 1108, 1109, - 1331, 1332, 1337, 1110, 1111, 1112, 1113, 1333, 1106, 1334, - 1657, 325, 1335, 1660, 1661, 1682, 1107, 1108, 1109, 1338, - 1339, 1340, 1110, 1111, 1112, 1113, 1342, 72, 73, 74, - 2020, 1341, 1343, 1698, 1701, 1702, 1344, 1367, 1372, 1378, - 1373, 1376, 1391, 1381, 1374, 1105, 473, 473, 325, 1383, - 1386, 473, 473, 325, 1943, 1388, 221, 222, 1390, 1106, - 1392, 1398, 1401, 1404, 1412, 473, 1425, 1107, 1108, 1109, - 1336, 473, 1426, 1110, 1111, 1112, 1113, 325, 1442, 1443, - 1444, 1437, 1447, 1454, 1455, 2022, 1452, 1453, 1463, 1459, - 1466, 1467, 1470, 325, 1457, 1471, 472, 334, 908, 1458, - 1464, 1465, 1469, 1472, 2024, 1478, 291, 1488, 1479, 1509, - 1489, 1490, 1496, 473, 1497, 325, 1504, 1510, 1105, 1511, - 1512, 1527, 325, 325, 1529, 1519, 1520, 1524, 1530, 1539, - 1540, 1545, 1106, 1541, 325, 1551, 1568, 325, 1565, 1550, - 1107, 1108, 1109, 1571, 7, 8, 1110, 1111, 1112, 1113, - 1576, 1778, 363, 325, 441, 2026, 1577, 1579, 325, 1582, - 1583, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 401, 1584, 1585, 1595, 405, - 406, 407, 408, 1600, 410, 411, 412, 413, 414, 415, - 1601, 1605, 417, 1606, 1607, 1610, 1613, 1375, 418, 419, - 1612, 1617, 325, 1616, 424, 425, 716, 24, 25, 717, - 27, 28, 718, 30, 719, 32, 1614, 33, 2058, 1620, - 1621, 325, 38, 39, 40, 41, 1622, 43, 44, 45, - 1825, 1623, 1828, 48, 1831, 1624, 1651, 1418, 1625, 1628, - 1641, 1644, 1839, 1647, 291, 1842, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 1655, 1658, 1662, 1666, 461, 1105, 1683, 1686, 1689, 1693, - 72, 73, 74, 1703, 1704, 1705, 1706, 1707, 1710, 1106, - 1709, 1712, 1721, 1718, 325, 1711, 325, 1107, 1108, 1109, - 1732, 1725, 1734, 1110, 1111, 1112, 1113, 1873, 1726, 1735, - 1736, 1877, 325, 1737, 1742, 1743, 1754, 1763, 1745, 1746, - 1756, 1772, 1777, 1748, 1909, 1750, 1752, 1757, 1781, 1779, - 1782, 1780, 1783, 1784, 1785, 1798, 1791, 1804, 576, 1805, - 1806, 579, 580, 581, 582, 1807, 1808, 1809, 1833, 1105, - 1840, 909, 1852, 1811, 1853, 1880, 1857, 1859, 1875, 1860, - 607, 1869, 1878, 1106, 1872, 1922, 473, 1876, 1892, 1924, - 1893, 1107, 1108, 1109, 325, 198, 334, 1110, 1111, 1112, - 1113, 1896, 1906, 1907, 472, 2059, 1921, 1926, 1928, 1931, - 1932, 1935, 1946, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 1936, 1939, 1940, - 1945, 461, 325, 1954, 1965, 1971, 1986, 1995, 1998, 2001, - 1985, 1984, 1967, 2004, 1969, 2006, 2016, 1987, 2015, 1427, - 472, 2021, 472, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 2023, 2037, 2025, - 2035, 461, 2040, 2042, 2044, 2046, 1992, 1993, 2052, 2060, - 2067, 2068, 472, 353, 119, 352, 2069, 1911, 2070, 2071, - 122, 123, 124, 2072, 714, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 2074, 1446, - 758, 1801, 1461, 100, 110, 1684, 112, 790, 1819, 1578, - 0, 0, 0, 0, 157, 158, 159, 160, 2013, 0, - 0, 0, 165, 0, 1910, 0, 0, 1505, 0, 0, - 0, 0, 0, 170, 171, 172, 0, 0, 0, 0, - 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 429, 430, 431, - 433, 435, 0, 0, 2051, 0, 2054, 0, 0, 0, - 0, 0, 0, 0, 468, 0, 0, 0, 475, 0, + 120, 541, 103, 205, 689, 1364, 691, 1362, 560, 368, + 843, 844, 1732, 1733, 576, 1495, 1853, 1040, 1202, 603, + 384, 706, 719, 1056, 579, 352, 1516, 447, 1484, 341, + 297, 207, 605, 121, 607, 235, 206, 1029, 235, 285, + 302, 345, 303, 222, 600, 223, 1353, 1355, 358, 1255, + 721, 268, 725, 1357, 728, 360, 901, 903, 230, 230, + 209, 300, 905, 907, 5, 211, 1975, 269, 270, 335, + 272, 273, 380, 381, 300, 1290, 4, 549, 550, 1384, + 274, 1359, 549, 550, 641, 300, 643, 275, 1984, 515, + 516, 517, 651, 1539, 301, 1540, 522, 523, 524, 882, + 1343, 883, 210, 1611, 771, 549, 550, 344, 375, 203, + 549, 550, 594, 1016, 595, 213, 1986, 204, 354, 286, + 304, 727, 551, 287, 549, 550, 1541, 226, 1542, 288, + 289, 290, 291, 383, 227, 629, 572, 573, 549, 550, + 199, 552, 292, 549, 550, 366, 371, 619, 372, 214, + 585, 586, 367, 208, 1543, 373, 1544, 549, 550, 563, + 562, 1041, 1042, 1043, 1044, 475, 564, 476, 1978, 1979, + 293, 1016, 294, 838, 373, 604, 549, 550, 226, 380, + 381, 448, 449, 215, 238, 1033, 1354, 1356, 606, -541, + 608, 1036, 845, 1358, 300, 298, 1461, 452, 216, 353, + 601, 357, 723, 1256, 1257, 217, 483, 483, 376, 377, + 378, 720, 942, 97, 483, 549, 550, 97, 97, 369, + 1057, 1360, 300, 218, 335, 1057, 370, 450, 577, 335, + 1362, 1203, 385, 335, 386, 199, 387, 1045, 335, 484, + 484, 199, 335, 335, 335, 335, 483, 484, 342, 299, + 335, 335, 335, 346, 236, 492, 1030, 1035, 335, 335, + 335, 944, 602, 948, 335, 300, 359, 836, 837, 1702, + 231, 231, 1612, 361, 902, 904, 242, 232, 1034, 484, + 906, 908, 212, 1976, 1291, 219, 1292, 852, 549, 550, + 335, 335, 335, 946, 376, 377, 378, 379, 344, 376, + 377, 378, 379, 220, 335, 335, 457, 376, 377, 378, + 379, 221, 481, 485, 380, 381, 549, 550, 228, 380, + 381, 335, 241, 335, 1866, 1867, 1022, 380, 381, 1017, + 1868, 264, 229, 1023, 265, 491, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 620, 470, 471, + 253, 233, 518, 254, 472, 255, 925, 376, 377, 378, + 379, 234, 483, 1695, 549, 550, 335, 335, 882, 1782, + 883, 934, 644, 981, 645, 1408, 592, 380, 381, 335, + 851, 199, 376, 377, 378, 379, 243, 2017, 376, 377, + 378, 724, 781, 244, 782, 484, 380, 381, 376, 377, + 378, 943, 380, 381, 237, 759, -546, 483, 483, 483, + 483, 483, 483, 483, 483, 483, 483, 335, 483, 483, + 238, 483, 483, 483, 483, 483, 380, 381, 451, 483, + 483, 483, 483, 483, 300, 307, 300, 781, 308, 787, + 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, + 239, 484, 484, 335, 484, 484, 484, 484, 484, 729, + 1016, 240, 484, 484, 484, 484, 484, 716, 649, 718, + 245, 549, 550, 1725, 549, 550, 622, 1849, 623, 376, + 377, 378, 947, 380, 381, 373, 660, 1339, 380, 381, + 1363, 335, 772, -544, 1174, 773, 1865, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 781, 251, 791, 690, 472, 692, 693, 694, 695, + 696, 697, 698, 775, 700, 701, 773, 703, 704, 705, + 781, 707, 799, 335, 335, 711, 712, 713, 714, 715, + 249, 709, 52, 53, 54, 55, 549, 550, 250, 717, + 452, 452, 1216, 882, 63, 883, 1221, 66, 763, 884, + 1119, 256, 1699, 764, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 252, 335, + 335, 335, 472, 246, 1409, 266, 247, 280, 1002, 248, + 281, 335, 335, 282, 267, 483, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 335, 549, 550, 271, 472, 549, 550, 335, 549, 550, + 1870, 1871, 1261, 380, 381, 891, 1868, 1796, 484, 549, + 550, 1798, 295, -545, 1800, 296, 335, 814, 817, 820, + 823, 279, 549, 550, 305, 1809, 376, 377, 378, 379, + 380, 381, 781, 940, 911, 941, 335, 1879, 1810, 1882, + -543, 1885, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 1132, 882, 957, 883, + 472, 549, 550, 918, 380, 381, 2023, 549, 550, 1726, + 1133, 767, 549, 550, -547, 306, 768, 1811, 1134, 1135, + 1136, 894, 351, 1812, 1137, 1138, 1139, 1140, 1813, 272, + 273, 1323, 882, 1325, 883, 1327, 309, 1329, 335, 274, + 549, 550, 335, 549, 550, 310, 283, 549, 550, 338, + 549, 550, 1532, 1533, 1018, 647, 1814, 648, 1024, 1940, + 549, 550, 311, 1943, 373, 1362, 1946, 261, 1362, 337, + 262, 1362, 263, 549, 550, 765, 1955, 766, 549, 550, + 339, 335, 770, 1264, 373, 335, 340, 771, 483, 1956, + 882, 300, 883, 483, 1957, 1006, 347, 335, 335, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 549, 550, 549, 550, 472, 2109, 1590, + 1591, 484, 998, 1285, 1068, 335, 484, 771, 781, 1958, + 348, 1959, 2003, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 549, 550, 335, + 1132, 472, 1288, 549, 550, 549, 550, 781, 1025, 549, + 550, 1455, 1456, 2028, 1133, 1762, 1459, 1460, 1312, 2029, + 1763, 2045, 1134, 1135, 1136, 2091, 549, 550, 1137, 1138, + 1139, 1140, 1462, 349, 467, 468, 469, 470, 471, 1362, + 549, 550, 2092, 472, 1066, 469, 470, 471, 1475, 1070, + 350, 335, 472, 335, 355, 781, 335, 1038, 365, 1072, + 2063, 413, 2066, 957, 2069, 1132, 781, 414, 1115, 335, + 2072, 335, 415, 335, 590, 335, 591, 420, 592, 1133, + 335, 198, 760, 199, 761, 335, 762, 1134, 1135, 1136, + 781, 199, 1116, 1137, 1138, 1139, 1140, 427, 257, 1362, + 431, 258, 1362, 432, 259, 1362, 260, 335, 1362, 433, + 1361, 335, 882, 609, 883, 335, 610, 1008, 434, 611, + 882, 612, 883, 483, 2114, 781, 2116, 1217, 2118, 439, + 882, 1222, 883, 455, 882, 1444, 883, 1226, 1228, 1447, + 437, 781, 1374, 1161, 781, 781, 1162, 1163, 335, 781, + 1362, 1188, 1362, 483, 1362, 781, 484, 1204, 335, 483, + 483, 483, 781, 438, 1224, 1467, 1683, 1684, 1296, 456, + 1297, 483, 1302, 483, 1303, 1556, 781, 781, 1336, 1385, + 473, 474, 1598, 1599, 478, 500, 484, 1602, 1603, 781, + 539, 1386, 484, 484, 484, 505, 781, 300, 1387, 512, + 335, 335, 335, 335, 484, 1605, 484, 513, 520, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 7, 8, 483, 781, 472, 1395, 1229, + 344, 521, 525, 1279, 1280, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 335, 335, 526, 335, 472, 335, + 335, 527, 528, 335, 335, 335, 335, 529, 484, 1235, + 335, 1132, 781, 578, 1396, 1238, 1239, 1240, 781, 781, + 1397, 1398, 781, 565, 1400, 1133, 781, 1244, 1401, 1245, + 1469, 566, 1470, 1134, 1135, 1136, 781, 373, 1471, 1137, + 1138, 1139, 1140, 536, 542, 734, 24, 25, 735, 27, + 28, 736, 30, 737, 32, 33, 543, 554, 1593, 34, + 1594, 35, 781, 781, 1472, 1473, 40, 41, 42, 43, + 555, 45, 46, 47, 781, 567, 1474, 50, 1913, 619, + 781, 1284, 1515, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 556, 568, 1226, + 1228, 472, 1636, 1636, 1637, 1660, 1671, 781, 1672, 1711, + 569, 335, 335, 335, 74, 75, 76, 1768, 781, 1769, + 1787, 1941, 1626, 1279, 1280, 570, 781, 335, 1788, 571, + 122, 362, 1636, 1636, 1808, 1863, 125, 126, 127, 575, + 580, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 483, 483, 1887, 581, 1888, 483, + 483, 1874, 781, 1911, 1907, 1912, 771, 587, 1915, 300, + 160, 161, 162, 163, 1636, 870, 1920, 1463, 168, 582, + 1444, 1132, 1922, 335, 1447, 588, 1923, 484, 484, 173, + 174, 175, 484, 484, 1636, 1133, 1928, 176, 781, 781, + 1936, 1954, 344, 1134, 1135, 1136, 1768, 335, 2020, 1137, + 1138, 1139, 1140, 335, 1444, 1444, 2025, 2026, 781, 1132, + 2041, 335, 583, 335, 335, 335, 781, 589, 2042, 335, + 335, 584, 335, 1133, 335, 781, 335, 2043, 335, 335, + 335, 1134, 1135, 1136, 781, 621, 2044, 1137, 1138, 1139, + 1140, 781, 1842, 2046, 1636, 625, 2058, 335, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 780, + 470, 471, 335, 781, 632, 2100, 472, 2106, 199, 2107, + 335, 1636, 335, 2128, 1132, 2138, 637, 2139, 367, 631, + 638, 1944, 639, 179, 640, 642, 658, 183, 1133, 659, + 662, 184, 185, 186, 187, 188, 1134, 1135, 1136, 97, + 666, 1490, 1137, 1138, 1139, 1140, 663, 472, 731, 730, + 198, 796, 777, 191, 192, 483, 483, 733, 193, 1947, + 483, 483, 778, 325, 800, 801, 802, 803, 197, 807, + 537, 808, 825, 1132, 483, 827, 829, 833, 834, 835, + 483, 862, 1606, 864, 896, 865, 867, 1133, 484, 484, + 874, 875, 881, 484, 484, 1134, 1135, 1136, 923, 898, + 899, 1137, 1138, 1139, 1140, 900, 300, 484, 1414, 926, + 935, 939, 335, 484, 952, 953, 984, 986, 985, 989, + 991, 1012, 483, 1005, 2038, 335, 992, 993, 1457, 1003, + 1004, 1843, 1010, 1011, 1013, 1014, 1019, 1020, 1027, 344, + 1028, 1055, 1073, 1076, 1062, 1065, 1067, 1069, 1081, 276, + 278, 1077, 284, 1078, 1080, 484, 2018, 1082, 1083, 1085, + 1086, 1087, 1088, 1592, 1089, 1093, 335, 335, 1094, 1100, + 1095, 1890, 1102, 1104, 1105, 1132, 452, 452, 1106, 1107, + 1607, 1108, 1109, 2093, 1110, 1111, 1609, 1156, 1118, 1133, + 1125, 1171, 1173, 1194, 1126, 1179, 335, 1134, 1135, 1136, + 1181, 1182, 335, 1137, 1138, 1139, 1140, 1183, 1195, 1196, + 1197, 1206, 1619, 1209, 480, 124, 1210, 1212, 1213, 1214, + 1218, 1219, 335, 1606, 1249, 1251, 1254, 1259, 1641, 1260, + 1263, 1262, 335, 1266, 1276, 1278, 1274, 1275, 1283, 1644, + 1300, 1306, 335, 1313, 1307, 1314, 1316, 335, 1317, 1318, + 1321, 1337, 1322, 1331, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 1332, 1333, 1334, 1335, 164, 165, 166, + 167, 1347, 1350, 335, 1968, 169, 170, 171, 1351, 1352, + 172, 1365, 1366, 1376, 1678, 2095, 1367, 1368, 1369, 1370, + 1371, 177, 1372, 1466, 1375, 1373, 335, 1377, 1378, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 1380, 1381, 1379, 1382, 472, 2004, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 335, 1412, 1405, 1546, 472, 1410, 1411, + 1413, 1415, 1730, 1417, 1420, 335, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 1422, 1747, 1750, 1751, 472, 335, 1425, 544, 545, 1427, + 1429, 1430, 1431, 1498, 1483, 553, 1440, 1451, 1437, 561, + 1443, 1464, 335, 1465, 1476, 483, 1486, 180, 181, 182, + 1481, 1482, 1492, 1493, 1494, 300, 1491, 1502, 1505, 189, + 1506, 190, 97, 1496, 335, 1497, 1600, 1503, 1504, 1509, + 1132, 335, 335, 1508, 1510, 1511, 1512, 1513, 484, 1519, + 1520, 1529, 1530, 335, 1133, 1531, 335, 882, 344, 883, + 1537, 452, 1134, 1135, 1136, 1538, 1550, 1551, 1137, 1138, + 1139, 1140, 335, 1552, 1545, 1553, 335, 1571, 122, 362, + 1574, 1559, 1583, 1560, 125, 126, 127, 1573, 1561, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 1830, 1562, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 160, 161, + 162, 163, 472, 1584, 1585, 335, 168, 1563, 1589, 1564, + 1596, 1610, 1568, 1622, 480, 124, 1595, 173, 174, 175, + 2097, 1613, 1616, 1621, 335, 176, 201, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 1624, 1627, 1628, 1629, 472, 1630, 1640, 1645, 1646, + 1650, 300, 1651, 1652, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 1655, 1657, 1659, 1658, 164, 165, 166, + 167, 1661, 1662, 1665, 1666, 169, 170, 171, 1667, 1668, + 172, 1669, 1670, 1673, 1971, 1686, 1689, 1692, 1700, 1701, + 1710, 177, 335, 335, 335, 335, 335, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 1696, 1132, 335, 1714, 472, 363, 1731, 1604, 1735, + 1738, 179, 1742, 1752, 1753, 183, 1133, 1754, 1755, 184, + 185, 186, 187, 188, 1134, 1135, 1136, 97, 1713, 1756, + 1137, 1138, 1139, 1140, 1758, 841, 842, 1759, 1760, 1761, + 1767, 557, 558, 545, 1770, 1774, 193, 1775, 1781, 1784, + 1783, 559, 1785, 1786, 1970, 1791, 197, 1792, 275, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 1794, 335, 1795, 1797, 472, 1799, 180, 181, 182, + 1801, 1803, 1806, 483, 1805, 1815, 1829, 1831, 1832, 189, + 1833, 190, 97, 1834, 1824, 1835, 1836, 1837, 1838, 1844, + 1851, 440, 441, 442, 444, 446, 1857, 1858, 1859, 1860, + 1861, 1862, 2099, 380, 381, 335, 484, 1886, 479, 1864, + 1227, 1892, 486, -542, 1909, 1908, 1910, 1917, 1914, 1916, + 1932, 1935, 1926, 483, 1929, 483, 493, 495, 498, 499, + 1933, 501, 495, 503, 504, 1937, 495, 507, 508, 509, + 510, 1757, 1949, 1950, 1966, 495, 1967, 1982, 1953, 2053, + 519, 1987, 1989, 1992, 1993, 483, 484, 1996, 484, 1997, + 2000, 2005, 2001, 2036, 2030, 538, 2019, 2032, 2055, 2034, + 2064, 2054, 2067, 2052, 547, 548, 2070, 2073, 2074, 2086, + 2075, 2056, 2076, 548, 2078, 2084, 1790, 2089, 484, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 2088, 2094, 2096, 2098, 472, 2108, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 2110, 614, 616, 495, 472, 2113, 2124, + 2115, 2127, 2117, 2119, 2125, 2140, 2141, 2142, 626, 627, + 628, 2143, 630, 2144, 2145, 2147, 633, 634, 635, 1485, + 1972, 636, 776, 1500, 1854, 102, 112, 113, 114, 810, + 1872, 2146, 0, 1623, 0, 0, 650, 0, 0, 0, + 0, 655, 657, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 664, 665, 0, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 0, 0, 0, 0, 1122, 0, 0, 0, 0, 0, + 0, 1128, 0, 702, 0, 0, 0, 1143, 0, 708, + 0, 710, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 0, 0, 0, 0, + 472, 0, 0, 0, 0, 739, 495, 0, 741, 742, + 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 0, 0, 757, 758, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 614, 472, 0, 0, 0, 0, + 785, 0, 0, 0, 0, 790, 0, 0, 0, 0, + 0, 0, 797, 798, 0, 0, 0, 1132, 0, 0, + 805, 806, 0, 0, 0, 811, 813, 816, 819, 822, + 824, 1133, 826, 0, 828, 0, 495, 495, 0, 1134, + 1135, 1136, 0, 0, 0, 1137, 1138, 1139, 1140, 0, + 0, 0, 0, 1828, 846, 847, 848, 440, 441, 849, + 0, 0, 0, 853, 854, 855, 856, 857, 858, 859, + 860, 861, 0, 0, 0, 866, 0, 868, 869, 0, + 0, 0, 495, 495, 495, 0, 0, 876, 877, 878, + 879, 880, 0, 619, 887, 887, 892, 893, 0, 895, + 0, 0, 897, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1132, 495, 0, 0, 0, 1965, 0, 912, + 914, 0, 916, 917, 0, 0, 1133, 2131, 0, 0, + 0, 0, 0, 0, 1134, 1135, 1136, 0, 0, 495, + 1137, 1138, 1139, 1140, 879, 880, 0, 916, 917, 1295, + 0, 0, 0, 0, 0, 0, 0, 0, 950, 495, + 0, 0, 0, 954, 0, 122, 362, 0, 0, 0, + 0, 125, 126, 127, 0, 0, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 0, + 0, 0, 0, 0, 0, 1344, 1345, 1346, 0, 0, + 0, 0, 0, 0, 0, 160, 161, 162, 163, 0, + 0, 0, 2132, 168, 0, 0, 0, 0, 1026, 0, + 0, 0, 0, 0, 173, 174, 175, 0, 0, 0, + 0, 0, 176, 0, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 0, 0, + 1053, 1054, 472, 0, 495, 1060, 1061, 0, 495, 1064, + 0, 0, 0, 0, 0, 0, 0, 1071, 0, 0, + 914, 1074, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 620, 470, 471, 1090, 0, 0, 0, + 472, 0, 0, 0, 0, 0, 0, 1098, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 0, 0, 0, 0, 472, 0, 0, 0, + 0, 0, 495, 0, 0, 0, 0, 0, 179, 1123, + 1124, 0, 183, 0, 0, 1127, 184, 185, 186, 187, + 188, 2037, 0, 0, 97, 0, 0, 0, 0, 0, + 0, 0, 1155, 0, 0, 1157, 0, 0, 191, 192, + 0, 0, 0, 193, 0, 0, 0, 0, 325, 443, + 0, 0, 0, 197, 495, 0, 495, 619, 0, 495, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 495, 0, 495, 472, 495, 0, 495, 0, + 0, 0, 0, 495, 0, 0, 0, 0, 495, 1132, + 0, 0, 0, 0, 1198, 0, 1200, 1201, 0, 0, + 0, 0, 0, 1133, 511, 0, 0, 1208, 0, 1555, + 0, 1134, 1135, 1136, 0, 0, 0, 1137, 1138, 1139, + 1140, 0, 0, 927, 531, 533, 535, 0, 0, 0, + 540, 0, 0, 0, 0, 0, 0, 0, 0, 1230, + 0, 0, 0, 0, 0, 0, 0, 1231, 1232, 1233, + 0, 495, 0, 0, 0, 0, 0, 0, 574, 1236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 482, 484, 487, 488, 2073, 490, 484, 492, - 493, 0, 484, 496, 497, 1555, 0, 0, 0, 484, - 0, 0, 0, 0, 506, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 525, - 0, 0, 176, 461, 0, 0, 180, 0, 534, 535, - 181, 182, 183, 184, 185, 0, 0, 535, 95, 1559, - 0, 0, 0, 0, 473, 0, 0, 0, 0, 0, - 0, 0, 188, 189, 0, 0, 0, 190, 0, 0, - 0, 0, 316, 0, 0, 0, 0, 194, 0, 524, - 0, 0, 0, 0, 597, 599, 484, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 609, 610, 611, - 473, 613, 473, 0, 0, 616, 617, 618, 0, 0, - 619, 0, 0, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 0, 0, 637, - 639, 461, 473, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 646, 647, 0, 649, 650, 651, 652, - 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, - 663, 664, 665, 666, 667, 668, 669, 670, 0, 0, + 0, 1039, 0, 1243, 0, 0, 0, 0, 1246, 0, + 0, 0, 0, 0, 0, 0, 0, 1250, 0, 0, + 0, 0, 0, 1258, 0, 0, 0, 0, 0, 2133, + 0, 0, 0, 495, 495, 495, 495, 0, 0, 1272, + 0, 0, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 0, 0, 0, 0, + 472, 0, 652, 653, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1649, 661, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 780, 470, 471, + 0, 0, 0, 495, 472, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1324, 0, 1326, 0, 1328, + 0, 1330, 0, 699, 0, 1685, 0, 1688, 1189, 1691, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 684, 0, 0, 0, 0, 0, 690, 0, 692, - 1665, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 0, 0, 0, 0, 461, - 0, 0, 0, 721, 484, 0, 723, 724, 725, 726, - 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, - 737, 0, 0, 739, 740, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 0, 0, 597, 461, 0, 0, 0, 0, 767, 0, - 0, 0, 0, 772, 0, 0, 0, 0, 777, 778, - 0, 0, 0, 0, 0, 0, 785, 786, 1708, 0, - 0, 791, 793, 796, 799, 802, 804, 0, 806, 0, - 808, 0, 484, 484, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1349, 0, 0, 1703, 1704, 1705, 1706, + 1707, 1709, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 0, 0, 0, 0, + 472, 0, 0, 0, 0, 0, 1383, 0, 0, 0, + 0, 0, 0, 0, 0, 1388, 1389, 0, 1390, 1391, + 0, 1392, 1393, 1394, 0, 0, 0, 0, 0, 1399, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 0, 0, 0, 0, 472, 0, + 0, 0, 0, 0, 0, 0, 1421, 0, 0, 0, + 0, 1426, 0, 0, 0, 0, 0, 0, 122, 362, + 0, 0, 0, 0, 125, 126, 127, 0, 0, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 0, 1468, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1477, 1478, 0, 0, 160, 161, + 162, 163, 0, 0, 0, 0, 168, 0, 0, 1487, + 1489, 0, 0, 1407, 0, 0, 0, 173, 174, 175, + 0, 0, 0, 0, 0, 176, 0, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 0, 472, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1534, + 1535, 1536, 0, 0, 0, 0, 0, 0, 0, 0, + 1547, 0, 1549, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1554, 0, 0, 0, 0, 0, 0, + 0, 0, 1878, 0, 1881, 495, 1884, 0, 0, 0, + 1569, 0, 0, 0, 0, 0, 1894, 1895, 1896, 1897, + 1898, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 179, 0, 0, 0, 183, 1586, 1587, 1588, 184, + 185, 186, 187, 188, 1015, 0, 0, 97, 1021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 826, 827, 828, 429, 430, 829, 0, 0, 0, 833, - 834, 835, 836, 837, 0, 0, 0, 842, 0, 844, - 845, 0, 0, 0, 484, 484, 484, 0, 0, 852, - 853, 854, 855, 856, 0, 0, 863, 863, 868, 869, - 0, 871, 0, 0, 873, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 484, 0, 0, 0, 0, - 0, 888, 890, 0, 892, 893, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 0, 484, 0, 0, 461, 0, 855, 856, 0, 892, - 893, 0, 0, 0, 0, 0, 0, 0, 0, 925, - 484, 7, 8, 0, 929, 0, 0, 0, 0, 0, - 0, 0, 0, 1215, 1216, 0, 0, 0, 0, 1220, - 1221, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 485, 0, 0, 0, 461, - 485, 0, 0, 0, 485, 0, 1636, 0, 1637, 0, - 0, 485, 0, 0, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 0, 1001, - 0, 0, 461, 716, 24, 25, 717, 27, 28, 718, - 30, 719, 32, 0, 33, 0, 0, 0, 0, 38, - 39, 40, 41, 0, 43, 44, 45, 0, 0, 0, - 48, 1028, 1029, 0, 0, 484, 1035, 1036, 0, 484, - 1039, 0, 0, 0, 0, 0, 0, 0, 1046, 0, - 0, 890, 1049, 0, 0, 0, 598, 0, 485, 0, - 0, 0, 0, 0, 0, 1063, 0, 72, 73, 74, - 0, 0, 0, 0, 0, 0, 1071, 0, 0, 0, - 0, 0, 0, 0, 0, 498, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 0, 484, 0, 0, 461, 518, 520, 522, 1096, 1097, - 0, 527, 0, 1012, 1100, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1124, 0, 0, - 1126, 0, 0, 0, 0, 557, 1379, 1380, 1093, 0, - 0, 1384, 1385, 0, 0, 0, 0, 0, 0, 484, - 0, 484, 0, 0, 484, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 484, 0, 484, - 0, 484, 0, 484, 0, 0, 0, 0, 484, 0, - 0, 0, 0, 484, 0, 0, 485, 0, 0, 1167, - 0, 1169, 1170, 0, 0, 0, 0, 0, 0, 0, - 0, 1176, 0, 0, 0, 0, 0, 634, 635, 0, + 0, 191, 192, 0, 0, 0, 193, 0, 1608, 0, + 0, 325, 0, 1930, 445, 0, 197, 1934, 0, 496, + 0, 0, 0, 0, 496, 0, 0, 0, 496, 0, + 0, 0, 1620, 0, 0, 0, 1319, 496, 0, 0, + 0, 0, 0, 0, 0, 0, 1633, 0, 0, 0, + 0, 1639, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 1647, 1648, 0, 0, + 472, 1099, 0, 1653, 1654, 1983, 0, 0, 1656, 1985, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1664, + 7, 8, 0, 0, 0, 0, 0, 0, 0, 495, + 495, 1676, 0, 1677, 0, 2010, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1694, 615, 0, 496, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 0, 495, 0, 472, 1712, 0, + 0, 0, 0, 0, 0, 1715, 1716, 1717, 1718, 1719, + 1720, 1721, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1729, 734, 24, 25, 735, 27, 28, 736, 30, + 737, 32, 33, 0, 2061, 2062, 34, 0, 35, 0, + 0, 1749, 0, 40, 41, 42, 43, 0, 45, 46, + 47, 0, 0, 0, 50, 0, 0, 0, 0, 0, + 0, 0, 0, 1211, 1764, 1765, 0, 1215, 0, 0, + 0, 1220, 1771, 0, 0, 0, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 0, 74, 75, 76, 472, 0, 0, 0, 0, 0, + 0, 1681, 0, 1682, 0, 0, 0, 0, 496, 0, + 0, 1793, 0, 0, 1237, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 1807, + 0, 0, 0, 472, 497, 0, 0, 0, 614, 502, + 1723, 0, 1724, 506, 0, 0, 615, 0, 0, 0, + 0, 0, 514, 1825, 0, 1826, 0, 0, 495, 0, + 0, 0, 932, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1840, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 496, 496, + 0, 0, 0, 1846, 0, 0, 0, 0, 1850, 0, + 1298, 1299, 0, 1301, 0, 1304, 1305, 0, 0, 1308, + 1309, 1310, 1311, 0, 0, 0, 0, 0, 0, 495, + 0, 0, 0, 0, 0, 0, 1877, 0, 1880, 0, + 1883, 0, 0, 0, 496, 496, 496, 0, 0, 495, + 0, 0, 0, 0, 0, 0, 888, 890, 0, 1899, + 1900, 1901, 1902, 1903, 1904, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 496, 0, 0, 0, 0, + 0, 0, 915, 0, 0, 0, 0, 1918, 1919, 0, + 0, 0, 1921, 0, 0, 0, 0, 0, 0, 0, + 0, 496, 0, 0, 1927, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1938, 0, 0, 0, 0, + 0, 496, 0, 0, 0, 0, 0, 1402, 1403, 1404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 643, 0, 0, 0, 598, 0, 0, 0, 0, 0, - 0, 0, 0, 1198, 0, 0, 0, 0, 0, 0, - 0, 1199, 1200, 1201, 0, 484, 0, 0, 0, 0, - 0, 0, 0, 1204, 0, 0, 0, 0, 681, 0, - 0, 0, 0, 0, 485, 485, 0, 1211, 0, 0, - 0, 0, 1214, 0, 0, 0, 0, 0, 0, 0, - 0, 1218, 0, 0, 0, 0, 0, 1226, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 484, 484, 484, - 484, 0, 0, 1240, 0, 0, 485, 485, 485, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 864, 866, - 0, 0, 0, 0, 0, 0, 7, 8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 485, 0, 0, - 0, 0, 0, 0, 891, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 484, 0, 0, 0, 0, - 0, 0, 0, 485, 0, 0, 0, 1290, 0, 1292, - 0, 1294, 1741, 1296, 0, 0, 0, 7, 8, 0, - 0, 0, 485, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1315, 0, 0, 716, 24, - 25, 717, 27, 28, 718, 30, 719, 32, 0, 33, - 0, 0, 0, 0, 38, 39, 40, 41, 0, 43, - 44, 45, 0, 0, 1345, 48, 0, 0, 0, 0, - 0, 0, 0, 1350, 1351, 0, 1352, 1353, 0, 1354, - 1355, 1356, 0, 0, 0, 0, 0, 1361, 0, 716, - 24, 25, 717, 27, 28, 718, 30, 719, 32, 0, - 33, 0, 72, 73, 74, 38, 39, 40, 41, 0, - 43, 44, 45, 1382, 0, 0, 48, 0, 1387, 0, - 0, 0, 0, 0, 0, 0, 0, 485, 0, 0, - 0, 485, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 891, 1050, 0, 0, 0, 0, 0, - 0, 0, 0, 72, 73, 74, 0, 0, 0, 0, - 1429, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1438, 1439, 1094, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1448, 1450, 0, 0, - 0, 0, 990, 485, 0, 0, 996, 0, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 0, 7, 8, 0, 461, 0, 0, 0, - 0, 0, 0, 0, 1117, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1493, 1494, 1495, 0, 0, 0, - 0, 485, 0, 485, 0, 1506, 485, 1508, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1513, 485, - 0, 485, 0, 485, 0, 485, 484, 0, 0, 0, - 485, 1525, 0, 0, 0, 485, 0, 1072, 0, 0, - 0, 0, 0, 0, 0, 716, 24, 25, 717, 27, - 28, 718, 30, 719, 32, 1776, 33, 1542, 1543, 1544, - 0, 38, 39, 40, 41, 0, 43, 44, 45, 0, - 0, 0, 48, 0, 0, 486, 0, 0, 0, 0, - 491, 0, 0, 0, 495, 0, 0, 0, 1563, 0, - 0, 501, 0, 0, 0, 0, 0, 485, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, - 73, 74, 1575, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1588, 0, 0, 0, - 0, 1594, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1602, 1603, 0, 485, - 485, 485, 485, 1608, 1609, 0, 0, 0, 1611, 0, - 0, 0, 0, 0, 1179, 0, 0, 1619, 1183, 0, - 0, 0, 1188, 0, 0, 0, 0, 484, 484, 1631, - 1168, 1632, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1649, 7, 8, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 484, 485, 0, 0, - 484, 0, 0, 1664, 0, 1205, 0, 0, 0, 0, - 1667, 1668, 1669, 1670, 1671, 1672, 1673, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1681, 0, 0, 0, - 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 1700, 0, 0, 0, 461, - 0, 7, 8, 0, 0, 0, 716, 24, 25, 717, - 27, 28, 718, 30, 719, 32, 0, 33, 1715, 1716, - 0, 0, 38, 39, 40, 41, 1722, 43, 44, 45, - 0, 0, 0, 48, 0, 0, 722, 0, 0, 0, - 0, 1266, 1267, 0, 1269, 0, 1272, 1273, 0, 0, - 1276, 1277, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1744, 0, 0, 0, 0, - 72, 73, 74, 716, 24, 25, 717, 27, 28, 718, - 30, 719, 32, 1758, 33, 597, 0, 0, 0, 38, - 39, 40, 41, 0, 43, 44, 45, 0, 0, 0, - 48, 0, 0, 0, 1773, 0, 1774, 0, 0, 484, - 0, 0, 0, 0, 810, 811, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1787, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 72, 73, 74, - 0, 1174, 0, 1793, 0, 0, 0, 0, 1797, 0, - 0, 0, 1364, 1365, 1366, 0, 847, 848, 849, 0, - 1905, 0, 0, 0, 0, 0, 0, 1377, 0, 484, - 0, 0, 0, 0, 0, 0, 1824, 0, 1827, 0, - 1830, 0, 0, 0, 0, 0, 0, 885, 0, 0, - 484, 0, 0, 0, 0, 0, 1843, 1844, 1845, 1846, - 1847, 1848, 0, 0, 0, 0, 0, 0, 1304, 0, - 0, 0, 0, 907, 0, 0, 0, 0, 485, 0, - 0, 0, 0, 1861, 1862, 0, 0, 0, 1864, 0, - 0, 0, 926, 1441, 0, 0, 0, 0, 0, 0, - 1870, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1881, 0, 0, 0, 0, 0, 1462, 0, 0, - 0, 0, 0, 1468, 0, 0, 0, 0, 0, 1473, - 0, 1441, 1476, 1477, 0, 0, 0, 1480, 1481, 0, - 1482, 0, 1483, 1908, 1484, 0, 1485, 1486, 1487, 1594, - 0, 0, 0, 0, 0, 0, 0, 0, 1919, 0, - 0, 0, 0, 0, 0, 1507, 7, 8, 0, 0, - 0, 0, 1930, 0, 0, 1934, 0, 0, 1938, 0, - 1518, 0, 1941, 0, 1522, 0, 484, 0, 484, 1948, - 1949, 1950, 1951, 1952, 0, 0, 0, 1034, 0, 0, - 0, 1038, 1957, 0, 0, 1959, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 0, 0, 0, 0, 461, 0, 0, 0, 0, 485, - 485, 0, 0, 0, 0, 0, 0, 1972, 716, 24, - 25, 717, 27, 28, 718, 30, 719, 32, 0, 33, - 0, 1991, 0, 0, 38, 39, 40, 41, 485, 43, - 44, 45, 485, 1090, 0, 48, 484, 0, 2007, 2008, - 2009, 2010, 2011, 0, 0, 0, 0, 0, 0, 1856, - 602, 0, 0, 0, 0, 1586, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1598, 0, - 1953, 0, 72, 73, 74, 895, 0, 2038, 2039, 0, - 0, 1138, 0, 1139, 0, 0, 1141, 0, 2047, 2048, - 2049, 2050, 0, 0, 0, 0, 0, 0, 0, 1153, - 0, 1154, 0, 1155, 0, 1156, 0, 0, 0, 0, - 1159, 0, 0, 0, 0, 1162, 0, 933, 934, 935, - 936, 937, 938, 939, 940, 941, 942, 943, 0, 945, - 946, 947, 948, 949, 950, 951, 0, 0, 1441, 955, - 957, 958, 0, 1894, 0, 962, 963, 0, 965, 0, - 0, 0, 0, 970, 971, 972, 0, 974, 0, 0, - 1674, 0, 0, 0, 982, 984, 0, 598, 0, 1685, - 0, 0, 0, 0, 0, 0, 0, 1202, 0, 1692, - 0, 0, 1007, 0, 1697, 0, 0, 0, 0, 0, - 0, 485, 602, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 1788, 0, 0, - 1717, 461, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 602, 0, 1235, - 1236, 1237, 1238, 1441, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 762, 459, 460, 0, 0, - 0, 485, 461, 903, 0, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 1755, 0, 485, 461, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1281, 0, 0, - 0, 0, 0, 0, 0, 0, 119, 352, 0, 0, - 0, 0, 122, 123, 124, 0, 0, 125, 126, 127, + 0, 0, 0, 1416, 0, 0, 0, 0, 0, 0, + 0, 1969, 0, 0, 0, 0, 0, 1639, 0, 0, + 0, 0, 0, 0, 0, 0, 1980, 0, 0, 0, + 0, 0, 0, 740, 0, 0, 0, 0, 0, 0, + 1991, 0, 0, 1995, 0, 0, 1999, 0, 0, 0, + 2002, 0, 0, 0, 0, 495, 495, 495, 495, 495, + 2012, 2013, 2014, 2015, 2016, 0, 0, 0, 0, 1480, + 0, 0, 0, 0, 2022, 0, 0, 2024, 0, 0, + 0, 0, 0, 0, 0, 0, 496, 0, 0, 0, + 496, 0, 0, 1501, 0, 0, 0, 0, 0, 1507, + 0, 0, 915, 1075, 0, 0, 0, 1514, 0, 1480, + 1517, 1518, 0, 830, 831, 1521, 1522, 0, 1523, 0, + 1524, 0, 1525, 0, 1526, 1527, 1528, 2060, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 0, 1548, 0, 495, 472, 2079, 2080, 2081, + 2082, 2083, 0, 1875, 496, 1876, 0, 0, 1558, 871, + 872, 873, 0, 0, 0, 0, 1566, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 0, 472, 0, 0, 0, 0, + 909, 2111, 2112, 0, 1037, 0, 0, 0, 0, 0, + 0, 0, 2120, 2121, 2122, 2123, 496, 0, 496, 0, + 0, 496, 0, 0, 0, 0, 931, 0, 0, 0, + 0, 0, 0, 0, 496, 0, 496, 919, 496, 0, + 496, 0, 0, 0, 0, 496, 951, 0, 0, 0, + 496, 0, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 0, 0, 0, 0, + 472, 0, 0, 0, 0, 0, 0, 0, 1631, 1092, + 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, + 968, 1643, 970, 971, 972, 973, 974, 975, 976, 0, + 0, 0, 980, 982, 983, 0, 0, 0, 987, 988, + 0, 990, 0, 496, 0, 0, 995, 996, 997, 0, + 999, 0, 0, 0, 0, 0, 0, 1007, 1009, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 0, 1032, 0, 472, 0, 0, + 0, 1059, 0, 0, 0, 1063, 1147, 0, 0, 0, + 0, 0, 1480, 0, 0, 496, 496, 496, 496, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 0, 0, 0, 472, 1722, 0, + 0, 0, 0, 0, 0, 0, 1180, 0, 1734, 0, + 0, 0, 224, 225, 0, 0, 0, 0, 1741, 0, + 0, 0, 0, 1746, 0, 0, 0, 0, 0, 1117, + 0, 0, 0, 0, 0, 496, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1766, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 0, 0, 0, 0, 472, 0, + 0, 0, 1480, 0, 0, 0, 0, 1223, 0, 0, + 0, 1169, 0, 1170, 0, 0, 1172, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1184, + 0, 1185, 0, 1186, 0, 1187, 0, 0, 0, 1804, + 1190, 374, 0, 0, 0, 1193, 0, 1177, 0, 0, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 0, 0, 0, 416, 417, + 418, 419, 0, 421, 422, 423, 424, 425, 426, 0, + 0, 428, 0, 0, 0, 0, 0, 429, 430, 7, + 8, 0, 0, 435, 436, 0, 0, 0, 1234, 0, + 1480, 0, 0, 0, 0, 0, 0, 1855, 1856, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1480, + 0, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 0, 0, 0, 1889, 472, + 0, 0, 0, 0, 0, 0, 0, 0, 1342, 0, + 1267, 1268, 1269, 1270, 0, 0, 0, 0, 0, 0, + 0, 734, 24, 25, 735, 27, 28, 736, 30, 737, + 32, 33, 0, 0, 0, 34, 0, 35, 0, 0, + 0, 1271, 40, 41, 42, 43, 0, 45, 46, 47, + 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, + 0, 1931, 0, 0, 0, 0, 0, 0, 937, 0, + 1315, 0, 0, 0, 1293, 1294, 0, 0, 0, 0, + 1948, 0, 0, 593, 0, 0, 596, 597, 598, 599, + 74, 75, 76, 0, 0, 0, 0, 496, 0, 0, + 0, 0, 0, 0, 0, 0, 624, 0, 0, 122, + 123, 124, 0, 0, 0, 125, 126, 127, 0, 0, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 0, 0, 0, 0, 0, 0, 0, 1441, 1146, 0, - 0, 0, 0, 0, 1802, 1803, 157, 158, 159, 160, - 0, 0, 0, 0, 165, 0, 1441, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 171, 172, 0, 0, - 0, 0, 0, 173, 0, 1836, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 603, 459, 460, - 0, 0, 0, 0, 461, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 485, 0, - 485, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 762, 459, 460, 1014, 0, 0, 0, 461, - 0, 0, 0, 0, 1874, 0, 0, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 1158, 0, 1891, 0, 461, 0, 0, 0, 0, - 0, 0, 0, 0, 176, 0, 0, 0, 180, 0, - 0, 0, 181, 182, 183, 184, 185, 0, 0, 0, - 95, 1239, 0, 0, 0, 0, 0, 0, 485, 0, - 0, 0, 0, 0, 544, 545, 0, 0, 0, 190, - 0, 0, 0, 0, 546, 0, 0, 0, 0, 194, - 0, 270, 0, 0, 1261, 1262, 0, 0, 0, 0, - 0, 0, 0, 0, 119, 120, 121, 0, 0, 0, - 122, 123, 124, 0, 1441, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 1523, 0, - 0, 0, 0, 0, 0, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 0, 0, 0, 166, 167, 168, 0, - 0, 169, 0, 170, 171, 172, 0, 0, 0, 0, - 0, 173, 174, 0, 0, 0, 0, 0, 0, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 1441, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 0, 0, 0, 461, 0, 0, 0, 0, 0, 0, - 1389, 0, 0, 0, 0, 0, 1393, 1394, 1395, 1396, - 1397, 0, 1400, 0, 1402, 1403, 0, 1406, 1409, 0, - 0, 1413, 1414, 1415, 0, 175, 0, 0, 1419, 0, - 0, 0, 176, 177, 178, 179, 180, 0, 0, 0, - 181, 182, 183, 184, 185, 186, 0, 187, 95, 1629, - 1630, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 188, 189, 0, 0, 0, 190, 0, 0, - 0, 0, 191, 0, 192, 0, 193, 194, 0, 195, - 0, 196, 0, 119, 303, 0, 0, 0, 0, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 305, 306, 307, - 308, 309, 0, 0, 0, 0, 1285, 0, 0, 0, - 0, 0, 0, 157, 158, 159, 160, 0, 0, 0, - 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 171, 172, 1528, 0, 0, 0, 0, - 173, 0, 0, 0, 310, 0, 0, 311, 0, 0, - 312, 1538, 313, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 314, 1552, 0, 0, - 0, 0, 1556, 50, 51, 52, 53, 54, 0, 0, - 56, 57, 58, 0, 0, 61, 0, 0, 64, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 1569, 1570, 0, 461, 1572, 1573, + 148, 149, 150, 0, 0, 0, 0, 0, 0, 0, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 0, 1480, + 0, 169, 170, 171, 0, 0, 172, 0, 173, 174, + 175, 0, 0, 0, 0, 0, 176, 177, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 0, 0, 0, 0, 472, 0, 0, 0, + 0, 0, 0, 0, 0, 1679, 0, 0, 0, 0, + 0, 732, 0, 0, 0, 0, 0, 1428, 0, 0, + 0, 0, 0, 1432, 1433, 1434, 1435, 1436, 0, 1439, + 0, 1441, 1442, 0, 1445, 1448, 0, 0, 1452, 1453, + 1454, 496, 496, 0, 0, 1458, 0, 0, 0, 0, + 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, + 0, 1480, 179, 180, 181, 182, 183, 496, 0, 0, + 184, 185, 186, 187, 188, 189, 0, 190, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1775, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 176, 0, 0, 0, 180, 0, 0, 0, 181, - 182, 183, 184, 185, 0, 0, 0, 95, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1369, 0, 0, - 0, 544, 1656, 0, 0, 0, 190, 0, 0, 0, - 0, 546, 0, 0, 0, 0, 194, 0, 270, 600, - 0, 1820, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 0, 119, 303, 0, - 461, 0, 1841, 122, 123, 124, 0, 751, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 305, 306, 307, 308, 309, 0, 0, 0, 0, - 0, 1687, 1688, 0, 0, 1690, 1691, 157, 158, 159, - 160, 1694, 1695, 0, 0, 165, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 171, 172, 0, - 0, 0, 0, 0, 173, 0, 0, 0, 310, 0, - 0, 311, 0, 0, 312, 0, 313, 0, 0, 0, + 0, 0, 191, 192, 0, 0, 0, 193, 0, 0, + 0, 0, 194, 0, 195, 0, 196, 197, 0, 198, + 124, 199, 734, 24, 25, 735, 27, 28, 736, 30, + 737, 32, 33, 0, 0, 0, 34, 0, 35, 0, + 0, 0, 1567, 40, 41, 42, 43, 0, 45, 46, + 47, 0, 0, 0, 50, 0, 0, 0, 0, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 0, 0, + 0, 0, 164, 165, 166, 167, 0, 0, 1572, 0, + 169, 170, 171, 0, 0, 172, 0, 0, 0, 0, + 0, 74, 75, 76, 1582, 0, 177, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 1597, 0, 0, 0, 472, 1601, 0, 0, 0, + 615, 0, 0, 0, 1698, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, + 496, 0, 0, 472, 0, 0, 0, 0, 1614, 1615, + 0, 646, 1617, 1618, 0, 0, 0, 1841, 0, 0, + 0, 0, 933, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 0, 0, + 0, 472, 0, 0, 0, 0, 0, 0, 0, 0, + 1776, 0, 180, 181, 182, 0, 1674, 1675, 0, 0, + 0, 496, 0, 0, 189, 0, 190, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 122, 312, 0, 0, + 0, 496, 125, 126, 127, 0, 0, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 314, 315, 316, 317, 318, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 160, 161, 162, 163, + 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 173, 174, 175, 0, 0, + 0, 1736, 1737, 176, 0, 1739, 1740, 319, 0, 0, + 320, 1743, 1744, 321, 0, 322, 0, 0, 0, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 323, 0, 0, 472, 0, 0, + 0, 52, 53, 54, 55, 56, 1777, 0, 58, 59, + 60, 0, 0, 63, 0, 0, 66, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 0, 472, 0, 496, 496, 496, + 496, 496, 0, 0, 1778, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, + 0, 0, 0, 183, 0, 1827, 0, 184, 185, 186, + 187, 188, 0, 0, 0, 97, 0, 0, 1817, 1818, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 557, + 1708, 0, 0, 0, 193, 0, 0, 0, 0, 559, + 0, 0, 0, 0, 197, 0, 275, 617, 0, 0, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 0, 0, 1873, 496, 472, 0, + 0, 0, 0, 0, 0, 0, 0, 1779, 0, 0, + 0, 0, 0, 0, 1247, 1248, 1893, 0, 122, 312, + 1252, 1253, 0, 0, 125, 126, 127, 0, 0, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 314, 315, 316, 317, 318, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, + 162, 163, 0, 0, 0, 0, 168, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 173, 174, 175, + 0, 0, 0, 0, 0, 176, 0, 0, 0, 319, + 0, 0, 320, 0, 0, 321, 0, 322, 0, 0, + 0, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 0, 323, 0, 0, 472, + 0, 0, 0, 52, 53, 54, 55, 56, 1780, 0, + 58, 59, 60, 0, 0, 63, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 314, 0, 0, 0, 0, 0, 0, 50, 51, 52, - 53, 54, 0, 0, 56, 57, 58, 0, 0, 61, - 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1944, 0, - 1947, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 1765, 1766, 0, 0, 461, - 0, 0, 0, 0, 0, 176, 0, 0, 0, 180, - 0, 0, 0, 181, 182, 183, 184, 185, 0, 0, - 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 188, 483, 0, 0, 0, - 190, 0, 0, 0, 0, 316, 0, 0, 0, 0, - 194, 0, 0, 600, 119, 303, 121, 0, 2005, 0, - 122, 123, 124, 0, 0, 125, 126, 127, 128, 129, + 0, 0, 2006, 2007, 2008, 2009, 2011, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 0, 472, 0, 0, 0, 0, + 0, 179, 0, 0, 1816, 183, 0, 0, 0, 184, + 185, 186, 187, 188, 0, 0, 0, 97, 0, 0, + 0, 0, 0, 0, 1418, 1419, 0, 0, 0, 1423, + 1424, 191, 494, 0, 0, 0, 193, 0, 0, 0, + 0, 325, 0, 0, 0, 0, 197, 0, 0, 617, + 0, 0, 0, 0, 0, 0, 0, 122, 312, 124, + 0, 0, 2077, 125, 126, 127, 0, 0, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 305, 306, - 307, 308, 309, 0, 0, 148, 149, 150, 151, 152, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 314, 315, 316, 317, 318, 0, 0, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 7, 8, 0, 166, 167, 168, 0, - 0, 169, 0, 170, 171, 172, 0, 0, 0, 0, - 0, 173, 174, 0, 0, 310, 0, 0, 311, 0, - 0, 312, 0, 313, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, - 0, 0, 0, 0, 50, 51, 52, 53, 54, 0, - 0, 56, 57, 58, 0, 0, 61, 0, 0, 64, - 0, 0, 0, 0, 0, 716, 24, 25, 717, 27, - 28, 718, 30, 719, 32, 0, 33, 0, 0, 0, - 0, 38, 39, 40, 41, 0, 43, 44, 45, 0, - 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 176, 177, 178, 179, 180, 912, 0, 0, - 181, 182, 183, 184, 185, 186, 0, 187, 95, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, - 73, 74, 188, 315, 0, 0, 0, 190, 0, 0, - 0, 0, 316, 0, 0, 0, 0, 194, 0, 317, - 119, 303, 121, 0, 0, 0, 122, 123, 124, 0, - 0, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 305, 306, 307, 308, 309, 0, - 0, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 7, - 8, 0, 166, 167, 168, 2028, 0, 169, 0, 170, - 171, 172, 0, 0, 0, 0, 0, 173, 174, 0, - 0, 310, 0, 0, 311, 0, 0, 312, 0, 313, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, - 50, 51, 52, 53, 54, 0, 0, 56, 57, 58, - 0, 0, 61, 0, 0, 64, 0, 0, 0, 0, - 0, 716, 24, 25, 717, 27, 28, 718, 30, 719, - 32, 0, 33, 0, 0, 0, 0, 38, 39, 40, - 41, 0, 43, 44, 45, 0, 0, 0, 48, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 176, 177, - 178, 179, 180, 0, 0, 0, 181, 182, 183, 184, - 185, 186, 0, 187, 95, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 72, 73, 74, 188, 315, - 0, 0, 0, 190, 0, 0, 0, 0, 316, 0, - 119, 352, 121, 194, 0, 1696, 122, 123, 124, 0, - 0, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 0, 0, 0, 0, 0, 0, - 0, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 0, - 0, 0, 166, 167, 168, 0, 0, 169, 0, 170, - 171, 172, 0, 119, 352, 121, 0, 173, 174, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 0, 0, 0, - 0, 0, 0, 0, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 0, 0, 0, 166, 167, 168, 0, 0, - 169, 0, 170, 171, 172, 0, 0, 0, 0, 0, - 173, 174, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 176, 177, - 178, 179, 180, 0, 0, 0, 181, 182, 183, 184, - 185, 186, 0, 187, 95, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 188, 189, - 0, 0, 0, 190, 0, 0, 0, 0, 316, 0, - 0, 0, 0, 194, 0, 1449, 0, 0, 0, 0, - 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 0, 0, 0, 0, 461, - 0, 176, 177, 178, 179, 180, 1675, 0, 1676, 181, - 182, 183, 184, 185, 186, 0, 187, 95, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 189, 0, 0, 0, 190, 0, 0, 0, - 0, 316, 0, 119, 352, 121, 194, 0, 1680, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 0, 0, 0, - 0, 0, 0, 0, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 7, 8, 0, 166, 167, 168, 0, 0, - 169, 0, 170, 171, 172, 0, 0, 0, 0, 0, - 173, 174, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 0, 0, 0, 0, - 461, 0, 0, 0, 0, 0, 0, 1822, 0, 1823, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 0, 0, 0, 0, 461, 0, - 858, 0, 859, 0, 716, 24, 25, 717, 27, 28, - 718, 30, 719, 32, 0, 33, 0, 0, 0, 0, - 38, 39, 40, 41, 0, 43, 44, 45, 0, 0, - 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 176, 177, 178, 179, 180, 0, 0, 0, 181, - 182, 183, 184, 185, 186, 0, 187, 95, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 72, 73, - 74, 188, 189, 0, 0, 0, 190, 0, 0, 0, - 0, 316, 0, 119, 303, 304, 194, 0, 1699, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 305, 306, 307, - 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 158, 159, 160, 0, 0, 1974, - 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 171, 172, 0, 0, 0, 0, 0, - 173, 0, 0, 0, 310, 0, 0, 311, 0, 0, - 312, 0, 313, 0, 0, 0, 0, 0, 0, 346, - 121, 0, 0, 0, 0, 0, 314, 0, 0, 0, - 0, 0, 0, 50, 51, 52, 53, 54, 0, 0, - 56, 57, 58, 0, 0, 61, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 0, 0, - 0, 0, 161, 162, 163, 164, 0, 0, 0, 0, - 166, 167, 168, 0, 0, 169, 0, 0, 0, 0, - 0, 176, 0, 0, 0, 180, 174, 0, 0, 181, - 182, 183, 184, 185, 0, 0, 0, 95, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 315, 0, 0, 0, 190, 0, 0, 0, - 0, 316, 0, 119, 303, 1516, 194, 0, 317, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 305, 306, 307, - 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 158, 159, 160, 177, 178, 179, - 0, 165, 0, 0, 0, 0, 0, 0, 0, 186, - 0, 187, 170, 171, 172, 0, 0, 0, 0, 0, - 173, 0, 0, 0, 310, 0, 0, 311, 0, 0, - 312, 121, 313, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, - 0, 0, 0, 50, 51, 52, 53, 54, 0, 0, - 56, 57, 58, 0, 0, 61, 0, 0, 64, 0, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 0, - 0, 0, 0, 161, 162, 163, 164, 0, 0, 0, - 0, 166, 167, 168, 0, 0, 169, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 174, 0, 0, - 0, 176, 0, 0, 0, 180, 0, 0, 0, 181, - 182, 183, 184, 185, 0, 0, 0, 95, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 315, 0, 0, 0, 190, 0, 0, 0, - 0, 316, 0, 119, 303, 0, 194, 0, 1517, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 305, 306, 307, - 308, 309, 0, 0, 0, 0, 0, 0, 177, 178, - 179, 0, 0, 157, 158, 159, 160, 0, 0, 0, - 186, 165, 187, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 171, 172, 0, 0, 0, 0, 0, - 173, 0, 0, 0, 310, 0, 0, 311, 0, 0, - 312, 0, 313, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, - 0, 0, 0, 50, 51, 52, 53, 54, 0, 0, - 56, 57, 58, 0, 0, 61, 0, 0, 64, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 0, 0, 1065, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 176, 0, 0, 0, 180, 0, 0, 0, 181, - 182, 183, 184, 185, 0, 0, 0, 95, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 315, 0, 0, 0, 190, 0, 0, 0, - 0, 316, 0, 119, 303, 0, 194, 0, 317, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 305, 306, 307, - 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 158, 159, 160, 0, 0, 0, - 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 171, 172, 0, 0, 0, 0, 0, - 173, 0, 0, 0, 310, 0, 0, 311, 0, 0, - 312, 0, 313, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, - 0, 0, 0, 50, 51, 52, 53, 54, 0, 0, - 56, 57, 58, 0, 0, 61, 0, 0, 64, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 0, 0, 1120, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 176, 0, 0, 0, 180, 0, 0, 0, 181, - 182, 183, 184, 185, 0, 0, 0, 95, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 315, 0, 0, 0, 190, 0, 0, 0, - 0, 517, 0, 119, 303, 0, 194, 0, 317, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 305, 306, 307, - 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 158, 159, 160, 0, 0, 0, - 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 171, 172, 0, 0, 0, 0, 0, - 173, 0, 0, 0, 310, 0, 0, 311, 0, 0, - 312, 0, 313, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, - 0, 0, 0, 50, 51, 52, 53, 54, 0, 0, - 56, 57, 58, 0, 0, 61, 0, 0, 64, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 0, 0, 1149, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 176, 0, 0, 0, 180, 0, 0, 0, 181, - 182, 183, 184, 185, 0, 0, 0, 95, 0, 0, + 163, 164, 165, 166, 167, 168, 7, 8, 0, 169, + 170, 171, 2101, 0, 172, 0, 173, 174, 175, 0, + 0, 0, 0, 0, 176, 177, 0, 0, 319, 0, + 0, 320, 0, 0, 321, 0, 322, 0, 0, 0, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 0, 323, 0, 0, 472, 0, + 0, 0, 52, 53, 54, 55, 56, 1891, 0, 58, + 59, 60, 0, 0, 63, 0, 0, 66, 734, 24, + 25, 735, 27, 28, 736, 30, 737, 32, 33, 0, + 0, 0, 34, 0, 35, 0, 0, 0, 0, 40, + 41, 42, 43, 0, 45, 46, 47, 0, 0, 0, + 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 179, 180, 181, 182, 183, 0, 0, 0, 184, 185, + 186, 187, 188, 189, 0, 190, 97, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 74, 75, 76, + 191, 324, 0, 0, 0, 193, 0, 0, 0, 0, + 325, 0, 122, 312, 124, 197, 0, 326, 125, 126, + 127, 0, 0, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 314, 315, 316, 317, + 318, 0, 0, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 0, 0, 0, 169, 170, 171, 0, 0, 172, + 0, 173, 174, 175, 0, 0, 0, 0, 0, 176, + 177, 0, 0, 319, 0, 0, 320, 0, 0, 321, + 0, 322, 0, 0, 0, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, + 323, 0, 0, 472, 0, 0, 0, 52, 53, 54, + 55, 56, 1905, 0, 58, 59, 60, 0, 0, 63, + 0, 0, 66, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 0, 0, + 0, 472, 0, 0, 0, 0, 0, 0, 0, 0, + 1906, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 179, 180, 181, 182, 183, + 0, 0, 0, 184, 185, 186, 187, 188, 189, 0, + 190, 97, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 191, 324, 0, 0, 0, + 193, 0, 0, 0, 0, 325, 0, 122, 362, 124, + 197, 0, 1745, 125, 126, 127, 0, 0, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 0, 0, 0, 0, 0, 0, 0, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 0, 0, 0, 169, + 170, 171, 0, 0, 172, 0, 173, 174, 175, 0, + 122, 362, 124, 0, 176, 177, 125, 126, 127, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 0, 0, 0, 0, 0, 0, + 0, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 0, + 0, 0, 169, 170, 171, 0, 0, 172, 0, 173, + 174, 175, 0, 0, 0, 0, 0, 176, 177, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 0, 0, 0, 472, 0, 0, + 179, 180, 181, 182, 183, 0, 1939, 0, 184, 185, + 186, 187, 188, 189, 0, 190, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 315, 0, 0, 0, 190, 0, 0, 0, - 0, 519, 0, 119, 303, 0, 194, 0, 317, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 305, 306, 307, - 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 158, 159, 160, 0, 0, 0, - 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 171, 172, 0, 0, 0, 0, 0, - 173, 0, 0, 0, 310, 0, 0, 311, 0, 0, - 312, 0, 313, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, - 0, 0, 0, 50, 51, 52, 53, 54, 0, 0, - 56, 57, 58, 0, 0, 61, 0, 0, 64, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 0, 0, 1191, 0, 0, 0, + 191, 192, 0, 0, 0, 193, 0, 0, 0, 0, + 325, 0, 0, 0, 0, 197, 0, 1488, 0, 0, + 0, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 0, 0, 0, 0, 472, + 0, 0, 0, 179, 180, 181, 182, 183, 1942, 0, + 0, 184, 185, 186, 187, 188, 189, 0, 190, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 176, 0, 0, 0, 180, 0, 0, 0, 181, - 182, 183, 184, 185, 0, 0, 0, 95, 0, 0, + 0, 0, 0, 191, 192, 0, 0, 0, 193, 0, + 0, 0, 0, 325, 0, 122, 362, 124, 197, 0, + 1728, 125, 126, 127, 0, 0, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 0, + 0, 0, 0, 0, 0, 0, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 7, 8, 0, 169, 170, 171, + 0, 0, 172, 0, 173, 174, 175, 0, 0, 0, + 0, 0, 176, 177, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 0, 0, + 0, 0, 472, 0, 0, 0, 0, 0, 0, 0, + 0, 1945, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 0, 0, 0, 0, + 472, 0, 882, 0, 883, 0, 734, 24, 25, 735, + 27, 28, 736, 30, 737, 32, 33, 0, 0, 0, + 34, 0, 35, 0, 0, 0, 0, 40, 41, 42, + 43, 0, 45, 46, 47, 0, 0, 0, 50, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 179, 180, + 181, 182, 183, 0, 0, 0, 184, 185, 186, 187, + 188, 189, 0, 190, 97, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 74, 75, 76, 191, 192, + 0, 0, 0, 193, 0, 0, 0, 0, 325, 0, + 122, 312, 313, 197, 0, 1748, 125, 126, 127, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 314, 315, 316, 317, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 315, 0, 0, 0, 190, 0, 0, 0, - 0, 521, 0, 119, 303, 0, 194, 0, 317, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 305, 306, 307, - 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 158, 159, 160, 0, 0, 0, - 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 171, 172, 0, 0, 0, 0, 0, - 173, 0, 0, 0, 310, 0, 0, 311, 0, 0, - 312, 0, 313, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, - 0, 0, 0, 50, 51, 52, 53, 54, 0, 0, - 56, 57, 58, 0, 0, 61, 0, 0, 64, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 0, 0, 1308, 0, 0, 0, + 160, 161, 162, 163, 0, 0, 1120, 0, 168, 7, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 173, + 174, 175, 0, 0, 0, 0, 0, 176, 0, 0, + 0, 319, 0, 0, 320, 0, 0, 321, 0, 322, + 0, 0, 0, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 323, 0, + 0, 472, 0, 0, 0, 52, 53, 54, 55, 56, + 1981, 0, 58, 59, 60, 0, 0, 63, 0, 0, + 66, 734, 24, 25, 735, 27, 28, 736, 30, 737, + 32, 33, 0, 0, 0, 34, 0, 35, 0, 0, + 0, 0, 40, 41, 42, 43, 0, 45, 46, 47, + 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 179, 0, 0, 0, 183, 0, 0, + 0, 184, 185, 186, 187, 188, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 176, 0, 0, 0, 180, 0, 0, 0, 181, - 182, 183, 184, 185, 0, 0, 0, 95, 0, 0, + 74, 75, 76, 191, 324, 0, 0, 0, 193, 0, + 0, 0, 0, 325, 0, 122, 312, 1557, 197, 0, + 326, 125, 126, 127, 0, 0, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 314, + 315, 316, 317, 318, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 160, 161, 162, 163, 0, + 0, 1121, 0, 168, 7, 8, 0, 0, 0, 0, + 0, 0, 0, 0, 173, 174, 175, 0, 0, 0, + 0, 0, 176, 0, 0, 0, 319, 0, 0, 320, + 0, 0, 321, 0, 322, 0, 0, 0, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 0, 323, 0, 0, 472, 0, 0, 0, + 52, 53, 54, 55, 56, 1988, 0, 58, 59, 60, + 0, 0, 63, 0, 0, 66, 734, 24, 25, 735, + 27, 28, 736, 30, 737, 32, 33, 0, 0, 0, + 34, 0, 35, 0, 0, 0, 0, 40, 41, 42, + 43, 0, 45, 46, 47, 0, 0, 0, 50, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, + 0, 0, 183, 0, 0, 0, 184, 185, 186, 187, + 188, 0, 0, 0, 97, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 74, 75, 76, 191, 324, + 0, 0, 0, 193, 0, 0, 0, 0, 325, 0, + 122, 312, 0, 197, 0, 326, 125, 126, 127, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 314, 315, 316, 317, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 483, 0, 0, 0, 190, 0, 0, 0, - 0, 316, 0, 119, 303, 0, 194, 0, 596, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 305, 306, 307, - 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 158, 159, 160, 0, 0, 0, - 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 171, 172, 0, 0, 0, 0, 0, - 173, 0, 0, 0, 310, 0, 0, 311, 0, 0, - 312, 0, 313, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, - 0, 0, 0, 50, 51, 52, 53, 54, 0, 0, - 56, 57, 58, 0, 0, 61, 0, 0, 64, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 0, 0, 1634, 0, 0, 0, + 160, 161, 162, 163, 0, 0, 1144, 0, 168, 7, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 173, + 174, 175, 0, 0, 0, 0, 0, 176, 0, 0, + 0, 319, 0, 0, 320, 0, 0, 321, 0, 322, + 0, 0, 0, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 323, 0, + 0, 472, 0, 0, 0, 52, 53, 54, 55, 56, + 2031, 0, 58, 59, 60, 0, 0, 63, 0, 0, + 66, 734, 24, 25, 735, 27, 28, 736, 30, 737, + 32, 33, 0, 0, 0, 34, 0, 35, 0, 0, + 0, 0, 40, 41, 42, 43, 0, 45, 46, 47, + 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 179, 0, 0, 0, 183, 0, 0, + 0, 184, 185, 186, 187, 188, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 176, 0, 0, 0, 180, 0, 0, 0, 181, - 182, 183, 184, 185, 0, 0, 0, 95, 0, 0, + 74, 75, 76, 191, 324, 0, 0, 0, 193, 0, + 0, 0, 0, 325, 0, 122, 312, 0, 197, 0, + 326, 125, 126, 127, 0, 0, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 314, + 315, 316, 317, 318, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 160, 161, 162, 163, 0, + 0, 1199, 0, 168, 7, 8, 0, 0, 0, 0, + 0, 0, 0, 0, 173, 174, 175, 0, 0, 0, + 0, 0, 176, 0, 0, 0, 319, 0, 0, 320, + 0, 0, 321, 0, 322, 0, 0, 0, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 0, 323, 0, 0, 472, 0, 0, 0, + 52, 53, 54, 55, 56, 2033, 0, 58, 59, 60, + 0, 0, 63, 0, 0, 66, 734, 24, 25, 735, + 27, 28, 736, 30, 737, 32, 33, 0, 0, 0, + 34, 0, 35, 0, 0, 0, 0, 40, 41, 42, + 43, 0, 45, 46, 47, 0, 0, 0, 50, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, + 0, 0, 183, 0, 0, 0, 184, 185, 186, 187, + 188, 0, 0, 0, 97, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 74, 75, 76, 191, 324, + 0, 0, 0, 193, 0, 0, 0, 0, 530, 0, + 122, 312, 0, 197, 0, 326, 125, 126, 127, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 314, 315, 316, 317, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 483, 0, 0, 0, 190, 0, 0, 0, - 0, 316, 0, 119, 303, 0, 194, 0, 862, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 305, 306, 307, - 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 158, 159, 160, 0, 0, 0, - 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 171, 172, 0, 0, 0, 0, 0, - 173, 0, 0, 0, 310, 0, 0, 311, 0, 0, - 312, 0, 313, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, - 0, 0, 0, 50, 51, 52, 53, 54, 0, 0, - 56, 57, 58, 0, 0, 61, 0, 0, 64, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 0, 0, 1653, 0, 0, 0, + 160, 161, 162, 163, 0, 0, 1205, 0, 168, 7, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 173, + 174, 175, 0, 0, 0, 0, 0, 176, 0, 0, + 0, 319, 0, 0, 320, 0, 0, 321, 0, 322, + 0, 0, 0, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 323, 0, + 0, 472, 0, 0, 0, 52, 53, 54, 55, 56, + 2035, 0, 58, 59, 60, 0, 0, 63, 0, 0, + 66, 734, 24, 25, 735, 27, 28, 736, 30, 737, + 32, 33, 0, 0, 0, 34, 0, 35, 0, 0, + 0, 0, 40, 41, 42, 43, 0, 45, 46, 47, + 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 179, 0, 0, 0, 183, 0, 0, + 0, 184, 185, 186, 187, 188, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 176, 0, 0, 0, 180, 0, 0, 0, 181, - 182, 183, 184, 185, 0, 0, 0, 95, 0, 0, + 74, 75, 76, 191, 324, 0, 0, 0, 193, 0, + 0, 0, 0, 532, 0, 122, 312, 0, 197, 0, + 326, 125, 126, 127, 0, 0, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 314, + 315, 316, 317, 318, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 160, 161, 162, 163, 0, + 0, 1338, 0, 168, 7, 8, 0, 0, 0, 0, + 0, 0, 0, 0, 173, 174, 175, 0, 0, 0, + 0, 0, 176, 0, 0, 0, 319, 0, 0, 320, + 0, 0, 321, 0, 322, 0, 0, 0, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 0, 323, 0, 0, 472, 0, 0, 0, + 52, 53, 54, 55, 56, 2059, 0, 58, 59, 60, + 0, 0, 63, 0, 0, 66, 734, 24, 25, 735, + 27, 28, 736, 30, 737, 32, 33, 0, 0, 0, + 34, 0, 35, 0, 0, 0, 0, 40, 41, 42, + 43, 0, 45, 46, 47, 0, 0, 0, 50, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, + 0, 0, 183, 0, 0, 0, 184, 185, 186, 187, + 188, 0, 0, 0, 97, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 74, 75, 76, 191, 324, + 0, 0, 0, 193, 0, 0, 0, 0, 534, 0, + 122, 312, 0, 197, 0, 326, 125, 126, 127, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 314, 315, 316, 317, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 483, 0, 0, 0, 190, 0, 0, 0, - 0, 316, 0, 119, 303, 0, 194, 0, 865, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 305, 306, 307, - 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 158, 159, 160, 0, 0, 0, - 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 171, 172, 0, 0, 0, 0, 0, - 173, 0, 0, 0, 310, 0, 0, 311, 0, 0, - 312, 0, 313, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, - 0, 0, 0, 50, 51, 52, 53, 54, 0, 0, - 56, 57, 58, 0, 0, 61, 0, 0, 64, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 0, 0, 1727, 0, 0, 0, + 160, 161, 162, 163, 0, 0, 1951, 0, 168, 7, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 173, + 174, 175, 0, 0, 0, 0, 0, 176, 0, 0, + 0, 319, 0, 0, 320, 0, 0, 321, 0, 322, + 0, 0, 0, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 323, 0, + 0, 472, 0, 0, 0, 52, 53, 54, 55, 56, + 2090, 0, 58, 59, 60, 0, 0, 63, 0, 0, + 66, 734, 24, 25, 735, 27, 28, 736, 30, 737, + 32, 33, 0, 0, 0, 34, 0, 35, 0, 0, + 0, 0, 40, 41, 42, 43, 0, 45, 46, 47, + 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 179, 0, 0, 0, 183, 0, 0, + 0, 184, 185, 186, 187, 188, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 176, 0, 0, 0, 180, 0, 0, 0, 181, - 182, 183, 184, 185, 0, 0, 0, 95, 0, 0, + 74, 75, 76, 191, 494, 0, 0, 0, 193, 0, + 0, 0, 0, 325, 0, 122, 312, 0, 197, 0, + 613, 125, 126, 127, 0, 0, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 314, + 315, 316, 317, 318, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 160, 161, 162, 163, 0, + 0, 2039, 0, 168, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 173, 174, 175, 0, 0, 0, + 0, 0, 176, 0, 0, 0, 319, 0, 0, 320, + 0, 0, 321, 0, 322, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 352, 124, 0, + 0, 0, 0, 323, 0, 0, 0, 0, 0, 0, + 52, 53, 54, 55, 56, 0, 0, 58, 59, 60, + 0, 0, 63, 0, 0, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 0, 0, 0, 0, + 164, 165, 166, 167, 0, 0, 0, 0, 169, 170, + 171, 0, 0, 172, 0, 0, 0, 0, 179, 0, + 0, 0, 183, 0, 177, 0, 184, 185, 186, 187, + 188, 0, 0, 0, 97, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 191, 494, + 0, 0, 0, 193, 0, 0, 0, 0, 325, 0, + 122, 312, 0, 197, 0, 886, 125, 126, 127, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 314, 315, 316, 317, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 483, 0, 0, 0, 190, 0, 0, 0, - 0, 316, 0, 119, 303, 0, 194, 0, 889, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 305, 306, 307, - 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 158, 159, 160, 0, 0, 0, - 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 171, 172, 0, 0, 0, 0, 0, - 173, 0, 0, 0, 310, 0, 0, 311, 0, 0, - 312, 0, 313, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, - 0, 0, 0, 50, 51, 52, 53, 54, 0, 0, - 56, 57, 58, 0, 0, 61, 0, 0, 64, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 0, 0, 1728, 0, 0, 0, + 160, 161, 162, 163, 0, 0, 0, 0, 168, 0, + 180, 181, 182, 0, 0, 0, 0, 0, 0, 173, + 174, 175, 189, 0, 190, 97, 0, 176, 0, 0, + 0, 319, 0, 0, 320, 0, 0, 321, 0, 322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 176, 0, 0, 0, 180, 0, 0, 0, 181, - 182, 183, 184, 185, 0, 0, 0, 95, 0, 0, + 0, 0, 480, 124, 0, 0, 0, 0, 323, 0, + 0, 0, 0, 0, 0, 52, 53, 54, 55, 56, + 0, 0, 58, 59, 60, 0, 0, 63, 0, 0, + 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 0, 0, 0, 0, 164, 165, 166, 167, 0, + 0, 0, 0, 169, 170, 171, 0, 0, 172, 0, + 0, 0, 0, 179, 0, 0, 0, 183, 0, 177, + 0, 184, 185, 186, 187, 188, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 315, 0, 0, 0, 190, 0, 0, 0, - 0, 316, 0, 119, 303, 0, 194, 0, 1521, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 305, 306, 307, - 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 158, 159, 160, 0, 0, 0, - 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 171, 172, 0, 0, 0, 0, 0, - 173, 0, 0, 0, 310, 0, 0, 311, 0, 0, - 312, 0, 313, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, - 0, 0, 0, 50, 51, 52, 53, 54, 0, 0, - 56, 57, 58, 0, 0, 61, 0, 0, 64, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 0, 0, 1729, 0, 0, 0, + 0, 0, 0, 191, 494, 0, 0, 0, 193, 0, + 0, 0, 0, 325, 0, 122, 312, 0, 197, 0, + 889, 125, 126, 127, 0, 0, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 314, + 315, 316, 317, 318, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 160, 161, 162, 163, 0, + 0, 0, 0, 168, 0, 180, 181, 182, 0, 0, + 0, 0, 0, 0, 173, 174, 175, 189, 0, 190, + 97, 0, 176, 0, 0, 0, 319, 0, 0, 320, + 0, 0, 321, 0, 322, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 356, 124, 0, + 0, 0, 0, 323, 0, 0, 0, 0, 0, 0, + 52, 53, 54, 55, 56, 0, 0, 58, 59, 60, + 0, 0, 63, 0, 0, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 0, 0, 0, 0, + 164, 165, 166, 167, 0, 0, 0, 0, 169, 170, + 171, 0, 0, 172, 0, 0, 0, 0, 179, 0, + 0, 0, 183, 0, 177, 0, 184, 185, 186, 187, + 188, 0, 0, 0, 97, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 191, 494, + 0, 0, 0, 193, 0, 0, 0, 0, 325, 0, + 122, 312, 0, 197, 0, 913, 125, 126, 127, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 314, 315, 316, 317, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 176, 0, 0, 0, 180, 0, 0, 0, 181, - 182, 183, 184, 185, 0, 0, 0, 95, 0, 0, + 160, 161, 162, 163, 0, 0, 0, 0, 168, 0, + 180, 181, 182, 0, 0, 0, 0, 0, 0, 173, + 174, 175, 189, 0, 190, 0, 0, 176, 0, 0, + 0, 319, 0, 0, 320, 0, 0, 321, 0, 322, + 0, 0, 0, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 323, 0, + 0, 472, 0, 0, 0, 52, 53, 54, 55, 56, + 2129, 0, 58, 59, 60, 0, 0, 63, 0, 0, + 66, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 0, 0, 0, 0, 472, + 0, 0, 0, 0, 0, 0, 0, 0, 2130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 544, 1656, 0, 0, 0, 190, 0, 0, 0, - 0, 546, 0, 119, 352, 121, 194, 0, 270, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 0, 0, 0, - 0, 0, 0, 0, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 0, 0, 0, 166, 167, 168, 0, 0, - 169, 0, 170, 171, 172, 0, 0, 0, 0, 0, - 173, 174, 0, 0, 342, 121, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 0, 0, 0, 0, 461, 0, 0, 0, 0, 0, - 0, 0, 0, 1730, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 0, 0, 0, 0, 161, 162, 163, - 164, 0, 0, 0, 0, 166, 167, 168, 0, 0, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 176, 177, 178, 179, 180, 0, 0, 0, 181, - 182, 183, 184, 185, 186, 0, 187, 95, 0, 0, + 0, 0, 0, 179, 0, 0, 0, 183, 0, 0, + 0, 184, 185, 186, 187, 188, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 189, 0, 0, 0, 190, 119, 303, 0, - 0, 316, 0, 122, 123, 124, 194, 0, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 0, 0, 0, 191, 324, 0, 0, 0, 193, 0, + 0, 0, 0, 325, 0, 122, 312, 0, 197, 0, + 1565, 125, 126, 127, 0, 0, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 314, + 315, 316, 317, 318, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 160, 161, 162, 163, 0, + 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 173, 174, 175, 0, 0, 0, + 0, 0, 176, 0, 0, 0, 319, 0, 0, 320, + 0, 0, 321, 0, 322, 0, 0, 0, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 0, 323, 0, 0, 472, 0, 0, 0, + 52, 53, 54, 55, 56, 2134, 0, 58, 59, 60, + 0, 0, 63, 0, 0, 66, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 0, 0, 0, 0, 472, 0, 0, 0, 0, 0, + 0, 0, 0, 2135, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, + 0, 0, 183, 0, 0, 0, 184, 185, 186, 187, + 188, 0, 0, 0, 97, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 557, 1708, + 0, 0, 0, 193, 0, 0, 0, 0, 559, 0, + 122, 362, 124, 197, 0, 275, 125, 126, 127, 0, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 305, 306, 307, 308, 309, 0, 0, 0, 0, - 0, 0, 177, 178, 179, 0, 0, 157, 158, 159, - 160, 0, 0, 0, 186, 165, 187, 95, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 171, 172, 0, - 0, 0, 0, 0, 173, 0, 0, 0, 310, 0, - 0, 311, 0, 0, 312, 0, 313, 0, 0, 0, + 147, 148, 149, 150, 0, 0, 0, 0, 0, 0, + 0, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 0, + 0, 0, 169, 170, 171, 0, 0, 172, 0, 173, + 174, 175, 0, 0, 0, 0, 0, 176, 177, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 0, 0, 0, 472, 0, 0, + 0, 0, 0, 0, 0, 0, 2136, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 0, 472, 0, 0, 0, 0, + 0, 0, 0, 0, 2137, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, + 0, 0, 0, 472, 0, 0, 0, 0, 0, 0, + 0, 832, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 179, 180, 181, 182, 183, 0, 0, + 0, 184, 185, 186, 187, 188, 189, 0, 190, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 314, 0, 0, 0, 0, 0, 0, 50, 51, 52, - 53, 54, 0, 0, 56, 57, 58, 0, 0, 61, - 0, 0, 64, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 0, 0, 0, - 0, 461, 0, 0, 0, 0, 0, 0, 0, 0, - 1731, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 176, 0, 0, 0, 180, - 0, 0, 0, 181, 182, 183, 184, 185, 0, 0, - 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 188, 483, 0, 0, 0, - 190, 119, 352, 0, 0, 316, 0, 122, 123, 124, - 194, 0, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 0, 0, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 157, 158, 159, 160, 461, 0, 0, 0, 165, - 0, 0, 0, 0, 1764, 0, 0, 0, 119, 352, - 170, 171, 172, 0, 122, 123, 124, 0, 173, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 0, 0, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 157, 158, - 159, 160, 461, 0, 0, 0, 165, 0, 0, 0, - 0, 1838, 0, 0, 0, 0, 0, 170, 171, 172, - 0, 0, 0, 0, 0, 173, 0, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 0, 0, 176, - 0, 0, 0, 180, 1849, 0, 0, 181, 182, 183, - 184, 185, 0, 0, 0, 95, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, - 189, 0, 0, 0, 190, 0, 0, 0, 0, 316, - 432, 0, 0, 0, 194, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 0, 0, 0, 461, 0, 0, 176, 0, 0, 0, - 180, 0, 1850, 0, 181, 182, 183, 184, 185, 0, - 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 188, 189, 0, 0, - 0, 190, 0, 0, 0, 0, 316, 119, 352, 434, - 0, 194, 0, 122, 123, 124, 0, 0, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 0, 0, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 157, 158, 159, - 160, 461, 0, 0, 0, 165, 0, 0, 0, 0, - 1882, 0, 0, 0, 119, 352, 170, 171, 172, 0, - 122, 123, 124, 0, 173, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 0, 0, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 157, 158, 159, 160, 461, 0, - 0, 0, 165, 0, 0, 0, 0, 1885, 0, 0, - 0, 0, 0, 170, 171, 172, 0, 0, 0, 0, - 0, 173, 0, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 0, 0, 0, - 0, 461, 0, 0, 0, 176, 0, 0, 0, 180, - 1888, 0, 0, 181, 182, 183, 184, 185, 0, 0, - 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 188, 189, 0, 0, 0, - 190, 0, 0, 0, 0, 316, 636, 0, 0, 0, - 194, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 0, 0, 0, 0, 461, - 0, 0, 176, 0, 0, 0, 180, 0, 1920, 0, - 181, 182, 183, 184, 185, 0, 0, 0, 95, 0, + 0, 0, 0, 191, 192, 0, 0, 0, 193, 122, + 312, 0, 0, 325, 0, 125, 126, 127, 197, 0, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 314, 315, 316, 317, 318, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, + 161, 162, 163, 0, 0, 0, 0, 168, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 173, 174, + 175, 0, 0, 0, 0, 0, 176, 0, 0, 0, + 319, 0, 0, 320, 0, 0, 321, 0, 322, 0, + 0, 0, 0, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 323, 0, 0, + 0, 472, 0, 0, 52, 53, 54, 55, 56, 1789, + 0, 58, 59, 60, 0, 0, 63, 0, 0, 66, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 0, 0, 0, 0, 472, 0, + 882, 0, 883, 0, 0, 1438, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 0, 0, 179, 0, 472, 0, 183, 0, 726, 0, + 184, 185, 186, 187, 188, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 188, 189, 0, 0, 0, 190, 0, 0, - 0, 0, 316, 119, 352, 638, 1175, 194, 0, 122, - 123, 124, 0, 0, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 0, 0, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 157, 158, 159, 160, 461, 0, 0, - 0, 165, 0, 0, 0, 0, 1927, 0, 0, 0, - 0, 0, 170, 171, 172, 119, 352, 0, 1314, 0, - 173, 122, 123, 124, 0, 0, 125, 126, 127, 128, + 0, 0, 191, 494, 0, 0, 0, 193, 122, 362, + 0, 0, 325, 0, 125, 126, 127, 197, 0, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 0, - 0, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 157, 158, 159, 160, 461, - 0, 0, 0, 165, 0, 0, 0, 0, 1966, 0, - 0, 0, 0, 0, 170, 171, 172, 0, 0, 0, - 0, 0, 173, 0, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 0, 0, - 0, 176, 461, 0, 0, 180, 708, 0, 0, 181, - 182, 183, 184, 185, 0, 0, 0, 95, 0, 0, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 0, 0, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 160, 161, + 162, 163, 472, 0, 910, 0, 168, 0, 0, 839, + 0, 0, 0, 0, 0, 122, 362, 173, 174, 175, + 0, 125, 126, 127, 0, 176, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 0, + 0, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 160, 161, 162, 163, 472, + 0, 0, 0, 168, 0, 0, 769, 0, 0, 0, + 0, 0, 0, 0, 173, 174, 175, 0, 0, 0, + 0, 0, 176, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 0, 0, + 0, 472, 0, 0, 0, 0, 0, 0, 839, 0, + 0, 179, 0, 0, 0, 183, 0, 0, 0, 184, + 185, 186, 187, 188, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 189, 0, 0, 0, 190, 0, 0, 0, - 0, 316, 0, 0, 0, 0, 194, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 0, 0, 0, - 0, 0, 0, 176, 1968, 0, 0, 180, 0, 0, - 0, 181, 182, 183, 184, 185, 0, 0, 0, 95, + 0, 191, 192, 0, 0, 0, 193, 0, 0, 0, + 0, 325, 654, 0, 0, 0, 197, 0, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 0, 0, 0, 0, 472, 0, 179, 0, + 0, 0, 183, 840, 0, 0, 184, 185, 186, 187, + 188, 0, 0, 0, 97, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, + 0, 0, 0, 193, 0, 0, 0, 0, 325, 122, + 362, 656, 1207, 197, 0, 125, 126, 127, 0, 0, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 0, 0, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 160, + 161, 162, 163, 472, 0, 0, 0, 168, 0, 0, + 924, 0, 0, 0, 0, 0, 0, 0, 173, 174, + 175, 122, 362, 0, 1348, 0, 176, 125, 126, 127, + 0, 0, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 0, 0, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 160, 161, 162, 163, 472, 0, 0, 0, 168, + 0, 0, 969, 0, 0, 0, 0, 0, 0, 0, + 173, 174, 175, 0, 0, 0, 0, 0, 176, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 0, 0, 0, 472, 0, 0, + 0, 0, 179, 0, 977, 0, 183, 0, 0, 0, + 184, 185, 186, 187, 188, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 188, 189, 0, 0, 0, 190, 119, - 352, 0, 0, 316, 0, 122, 123, 124, 194, 0, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 0, 0, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 157, - 158, 159, 160, 461, 0, 0, 0, 165, 0, 0, - 0, 0, 1970, 0, 0, 0, 0, 0, 170, 171, - 172, 0, 0, 0, 0, 0, 173, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 0, 0, 0, - 0, 0, 0, 0, 1990, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 0, 0, 0, 461, 0, 0, 0, 0, 0, 0, - 0, 0, 2017, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -4, 1, 0, 0, -4, 0, 0, 0, - 0, 0, 0, 0, -4, -4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, - 0, 180, 0, 0, 0, 181, 182, 183, 184, 185, - 0, 0, 0, 95, -4, -4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 188, 189, 0, - 0, 0, 190, 0, -4, -4, -4, 316, 0, 0, - -4, -4, 194, -4, 0, 0, 0, -4, -4, 0, - -4, -4, 0, 0, -4, -4, -4, -4, -4, -4, - -4, -4, -4, -4, -4, -4, 0, -4, -4, -4, + 0, 0, 191, 192, 0, 0, 0, 193, 0, 0, + 0, 0, 325, 0, 0, 0, 0, 197, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 0, 0, 0, 0, 472, 0, 0, 0, + 0, 0, 0, 978, 179, 0, 0, 0, 183, 0, + 0, 0, 184, 185, 186, 187, 188, 0, 0, 0, + 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 191, 192, 0, 0, 0, 193, + 122, 362, 0, 0, 325, 0, 125, 126, 127, 197, + 0, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 0, 0, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 160, 161, 162, 163, 472, 0, 0, 0, 168, 0, + 0, 979, 0, 0, 0, 0, 0, 0, 0, 173, + 174, 175, 0, 0, 0, 0, 0, 176, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 0, 0, 0, 0, 472, 0, 0, 0, + 0, 0, 0, 994, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 0, 0, + 0, 0, 472, 0, 0, 0, 0, 0, 0, 1129, + 0, 0, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 0, 0, -4, 1, + 472, 0, -4, 0, 0, 0, 0, 1130, 0, 0, + -4, -4, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 179, 0, 0, 0, 183, 0, 0, + 0, 184, 185, 186, 187, 188, 0, 0, 0, 97, + -4, -4, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 191, 192, 0, 0, 0, 193, 0, + -4, -4, -4, 325, 0, 0, -4, -4, 197, -4, + 0, 0, 0, -4, -4, 0, -4, -4, 0, 0, -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, 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, 0, 0, 0, -4, 0, -4, -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, 0, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 0, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 0, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 0, 0, 0, 67, 68, 69, 0, 0, - 0, 0, 0, 70, 0, 0, 0, 0, 71, 72, - 73, 74, 469, 121, 75, 0, 76, 0, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 0, 0, 0, 0, 0, 91, 92, 93, - 0, 0, 0, 0, 0, 0, 94, 0, 95, 0, - 0, 0, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 0, 0, 0, 0, 161, 162, 163, 164, 0, - 0, 0, 0, 166, 167, 168, 0, 0, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 0, 0, 0, 0, 461, 0, - 0, 0, 0, 0, 0, 0, 0, 2056, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 0, 0, 0, 0, 461, 0, 0, 0, - 0, 0, 0, 0, 0, 2057, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 0, 0, 0, 0, 461, 0, 0, 0, 0, 0, - 0, 0, 0, 2061, 0, 0, 0, 0, 0, 0, - 177, 178, 179, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 186, 0, 187, 95, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 0, 0, 0, 0, 461, 0, 0, 0, 0, 0, - 0, 0, 0, 2062, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 0, 0, - 0, 0, 461, 0, 0, 0, 0, 0, 0, 0, - 0, 2063, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 0, 0, 0, 0, - 461, 0, 0, 0, 0, 0, 0, 0, 0, 2064, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 0, 0, 0, 0, 461, 0, - 0, 0, 0, 0, 0, 0, 629, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 0, 0, 0, - 0, 0, 0, 812, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 0, 0, - 0, 0, 461, 0, 0, 0, 0, 0, 0, 0, - 1740, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 0, 0, 0, 0, 461, - 0, 858, 0, 859, 0, 0, 1399, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 886, 0, 0, - 0, 0, 819, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 0, 0, 0, - 0, 461, 0, 0, 0, 0, 0, 0, 819, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 820, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 0, 0, 0, 461, 0, 0, 0, 0, 0, 0, - 900, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 0, 0, 0, 0, 461, - 0, 0, 0, 0, 0, 0, 944, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 0, 0, 0, - 0, 0, 952, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 0, 0, 0, - 0, 461, 0, 0, 0, 0, 0, 0, 953, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 954, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 0, 0, 0, 461, 0, 0, 0, 0, 0, 0, - 969, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 0, 0, 0, 0, 461, - 0, 0, 0, 0, 0, 0, 1102, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 0, 0, 0, - 0, 0, 1103, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 0, 0, 0, - 0, 461, 0, 0, 0, 0, 0, 0, 1104, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 1135, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 0, 0, 0, 461, 0, 0, 0, 0, 0, 0, - 1144, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 0, 0, 0, 0, 461, - 0, 0, 0, 0, 0, 0, 1145, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 0, 0, 0, - 0, 0, 1147, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 0, 0, 0, - 0, 461, 0, 0, 0, 0, 0, 0, 1257, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 1306, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 0, 0, 0, 461, 0, 0, 0, 0, 0, 0, - 1307, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 0, 0, 0, 0, 461, - 0, 0, 0, 0, 0, 0, 1368, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 0, 0, 0, - 0, 0, 1531, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 0, 0, 0, - 0, 461, 0, 0, 0, 0, 0, 0, 1532, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 1533, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 0, 0, 0, 461, 0, 0, 0, 0, 0, 0, - 1534, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 0, 0, 0, 0, 461, - 0, 0, 0, 0, 0, 0, 1535, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 0, 0, 0, - 0, 0, 1536, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 0, 0, 0, - 0, 461, 0, 0, 0, 0, 0, 0, 1537, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 1589, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 0, 0, 0, 461, 0, 0, 0, 0, 0, 0, - 1590, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 0, 0, 0, 0, 461, - 0, 0, 0, 0, 0, 0, 1597, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 0, 0, 0, - 0, 0, 1767, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 0, 0, 0, - 0, 461, 0, 0, 0, 0, 0, 0, 1768, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 1769, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 0, 0, 0, 461, 0, 0, 0, 0, 0, 0, - 1770, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 0, 0, 0, 0, 461, - 0, 0, 0, 0, 0, 0, 1771, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 0, 0, 0, - 0, 0, 1794, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 0, 0, 0, - 0, 461, 0, 0, 0, 0, 0, 0, 1795, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 1799, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 0, 0, 0, 461, 0, 0, 0, 0, 0, 0, - 1900, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 0, 0, 0, 0, 461, - 0, 0, 0, 0, 0, 0, 1901, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 0, 0, 0, - 0, 0, 1902, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 0, 0, 0, - 0, 461, 0, 0, 0, 0, 0, 0, 1903, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 1904, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 0, 0, 0, 461, 0, 0, 0, 0, 0, 0, - 1913, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 0, 0, 0, 0, 461, - 0, 0, 0, 0, 0, 0, 1916, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 0, 0, 0, - 0, 0, 1962, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 0, 0, 0, - 0, 461, 0, 0, 0, 0, 0, 0, 1979, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 1980, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 0, 0, 0, 461, 0, 0, 0, 0, 0, 0, - 1981, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 0, 0, 0, 0, 461, - 0, 0, 0, 0, 0, 0, 1982, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 0, 0, 0, - 0, 0, 1983, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 0, 0, 0, - 0, 461, 0, 0, 0, 0, 0, 0, 2029, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 0, 0, 0, 2030, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 0, 0, 0, 461, 0, 0, 0, 0, 0, 0, - 2031, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 0, 0, 0, 0, 461, - 0, 0, 0, 0, 0, 0, 2032, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 0, 0, 906, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 0, 0, 0, 0, 461, 0, - 0, 0, 924, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 0, 0, 0, - 0, 461, 0, 0, 0, 931, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 0, 0, 0, 0, 461, 0, 0, 0, 1027, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 1128, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 0, 0, 0, 0, - 461, 0, 0, 0, 1129, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 0, 0, 0, 461, 0, 0, 0, 1133, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 0, 0, 0, 0, 461, 0, 0, 0, - 1134, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 0, 0, 0, 0, 461, - 0, 0, 0, 1137, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 0, 0, - 0, 0, 461, 0, 0, 0, 1161, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 0, 0, 1193, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 0, 0, 0, 0, 461, 0, - 0, 0, 1250, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 0, 0, 0, - 0, 461, 0, 0, 0, 1255, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 0, 0, 0, 0, 461, 0, 0, 0, 1526, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 0, - 0, 1580, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 0, 0, 0, 0, - 461, 0, 0, 0, 1753, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 0, 0, 0, 461, 0, 704, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 0, 0, 0, 0, 461, 0, 761, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 765, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 0, 0, 0, 0, 461, 0, 766, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 768, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 0, 0, 0, 0, 461, 0, - 770, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 0, 0, 0, 0, 461, - 0, 771, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 0, 0, 0, 0, - 461, 0, 774, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 0, 0, 0, - 0, 461, 0, 775, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 0, 0, - 0, 0, 461, 0, 784, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 0, 0, 0, 461, 0, 886, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 0, 0, 0, 0, 461, 0, 896, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 897, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 0, 0, 0, 0, 461, 0, 898, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 904, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 0, 0, 0, 0, 461, 0, - 905, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 0, 0, 0, 0, 461, - 0, 920, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 0, 0, 0, 0, - 461, 0, 930, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 0, 0, 0, - 0, 461, 0, 1026, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 0, 0, - 0, 0, 461, 0, 1054, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 0, 0, 0, 461, 0, 1059, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 0, 0, 0, 0, 461, 0, 1064, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 1069, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 0, 0, 0, 0, 461, 0, 1070, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 1076, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 0, 0, 0, 0, 461, 0, - 1085, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 0, 0, 0, 0, 461, - 0, 1086, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 0, 0, 0, 0, - 461, 0, 1087, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 0, 0, 0, - 0, 461, 0, 1119, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 0, 0, - 0, 0, 461, 0, 1121, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 0, 0, 0, 461, 0, 1122, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 0, 0, 0, 0, 461, 0, 1123, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 1127, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 0, 0, 0, 0, 461, 0, 1136, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 0, 0, 0, 0, 461, 0, 1160, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 0, 0, 0, 0, 461, 0, - 1249, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 0, 0, 0, 0, 461, - 0, 1254, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 0, 0, 0, 0, - 461, 0, 1411, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 0, 0, 0, - 0, 461, 0, 1635, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 0, 0, - 0, 0, 461, 0, 1652, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 0, - 0, 0, 0, 461, 0, 1679, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 0, 0, 0, 0, 461, 0, 1912, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 0, 0, 0, 0, 461, 0, 1988, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 0, 0, 0, 0, 461 + -4, -4, 0, -4, -4, -4, -4, -4, -4, -4, + -4, -4, 0, -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, 0, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 0, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 0, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 0, 0, + 0, 69, 70, 71, 0, 0, 0, 0, 0, 72, + 0, 0, 0, 0, 73, 74, 75, 76, 0, 0, + 77, 0, 78, 0, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 0, 0, + 0, 0, 0, 93, 94, 95, 0, 0, 0, 0, + 0, 0, 96, 0, 97, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, + 0, 0, 0, 472, 0, 0, 0, 0, 0, 0, + 1131, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 0, 0, 0, 0, 472, + 0, 0, 0, 0, 0, 0, 1166, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 0, 472, 0, 0, 0, 0, + 0, 0, 1175, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 0, 0, + 0, 472, 0, 0, 0, 0, 0, 0, 1176, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 0, 0, 0, 472, 0, 0, + 0, 0, 0, 0, 1178, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, + 0, 0, 0, 472, 0, 0, 0, 0, 0, 0, + 1289, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 0, 0, 0, 0, 472, + 0, 0, 0, 0, 0, 0, 1340, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 0, 472, 0, 0, 0, 0, + 0, 0, 1341, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 0, 0, + 0, 472, 0, 0, 0, 0, 0, 0, 1406, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 0, 0, 0, 472, 0, 0, + 0, 0, 0, 0, 1575, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, + 0, 0, 0, 472, 0, 0, 0, 0, 0, 0, + 1576, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 0, 0, 0, 0, 472, + 0, 0, 0, 0, 0, 0, 1577, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 0, 472, 0, 0, 0, 0, + 0, 0, 1578, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 0, 0, + 0, 472, 0, 0, 0, 0, 0, 0, 1579, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 0, 0, 0, 472, 0, 0, + 0, 0, 0, 0, 1580, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, + 0, 0, 0, 472, 0, 0, 0, 0, 0, 0, + 1581, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 0, 0, 0, 0, 472, + 0, 0, 0, 0, 0, 0, 1634, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 0, 472, 0, 0, 0, 0, + 0, 0, 1635, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 0, 0, + 0, 472, 0, 0, 0, 0, 0, 0, 1642, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 0, 0, 0, 472, 0, 0, + 0, 0, 0, 0, 1819, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, + 0, 0, 0, 472, 0, 0, 0, 0, 0, 0, + 1820, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 0, 0, 0, 0, 472, + 0, 0, 0, 0, 0, 0, 1821, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 0, 472, 0, 0, 0, 0, + 0, 0, 1822, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 0, 0, + 0, 472, 0, 0, 0, 0, 0, 0, 1823, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 0, 0, 0, 472, 0, 0, + 0, 0, 0, 0, 1847, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, + 0, 0, 0, 472, 0, 0, 0, 0, 0, 0, + 1848, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 0, 0, 0, 0, 472, + 0, 0, 0, 0, 0, 0, 1852, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 0, 472, 0, 0, 0, 0, + 0, 0, 1960, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 0, 0, + 0, 472, 0, 0, 0, 0, 0, 0, 1961, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 0, 0, 0, 472, 0, 0, + 0, 0, 0, 0, 1962, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, + 0, 0, 0, 472, 0, 0, 0, 0, 0, 0, + 1963, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 0, 0, 0, 0, 472, + 0, 0, 0, 0, 0, 0, 1964, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 0, 472, 0, 0, 0, 0, + 0, 0, 1974, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 0, 0, + 0, 472, 0, 0, 0, 0, 0, 0, 1977, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 0, 0, 0, 472, 0, 0, + 0, 0, 0, 0, 2027, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, + 0, 0, 0, 472, 0, 0, 0, 0, 0, 0, + 2047, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 0, 0, 0, 0, 472, + 0, 0, 0, 0, 0, 0, 2048, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 0, 472, 0, 0, 0, 0, + 0, 0, 2049, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 0, 0, + 0, 472, 0, 0, 0, 0, 0, 0, 2050, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 0, 0, 0, 472, 0, 0, + 0, 0, 0, 0, 2051, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, + 0, 0, 0, 472, 0, 0, 0, 0, 0, 0, + 2102, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 0, 0, 0, 0, 472, + 0, 0, 0, 0, 0, 0, 2103, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 0, 472, 0, 0, 0, 0, + 0, 0, 2104, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 0, 0, + 0, 472, 0, 0, 0, 0, 0, 0, 2105, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 0, 0, 0, 472, 0, 0, + 0, 930, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 0, 0, 0, 0, + 472, 0, 0, 0, 949, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, + 0, 0, 0, 472, 0, 0, 0, 956, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 0, 0, 0, 0, 472, 0, 0, 0, + 1052, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 0, 0, 0, 0, 472, + 0, 0, 0, 1159, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 0, 0, + 0, 0, 472, 0, 0, 0, 1160, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 0, 472, 0, 0, 0, 1164, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 0, 0, 0, 0, 472, 0, + 0, 0, 1165, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 0, 0, + 0, 472, 0, 0, 0, 1168, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 0, 0, 0, 0, 472, 0, 0, 0, 1192, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 0, 0, 0, 472, 0, 0, + 0, 1225, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 0, 0, 0, 0, + 472, 0, 0, 0, 1282, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, + 0, 0, 0, 472, 0, 0, 0, 1287, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 0, 0, 0, 0, 472, 0, 0, 0, + 1570, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 0, 0, 0, 0, 472, + 0, 0, 0, 1625, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 0, 0, + 0, 0, 472, 0, 0, 0, 1802, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 0, 472, 0, 722, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 0, 0, 0, 0, 472, 0, 779, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 0, 0, 0, 472, 0, 783, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 0, 0, 0, 0, 472, 0, + 784, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 0, 0, 0, 0, 472, + 0, 786, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 0, 0, 0, 0, + 472, 0, 788, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 0, 0, + 0, 472, 0, 789, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 0, 0, + 0, 0, 472, 0, 792, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, + 0, 0, 0, 472, 0, 793, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 0, 0, 0, 0, 472, 0, 794, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 0, 472, 0, 795, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 0, 0, 0, 0, 472, 0, 804, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 0, 0, 0, 472, 0, 910, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 0, 0, 0, 0, 472, 0, + 920, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 0, 0, 0, 0, 472, + 0, 921, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 0, 0, 0, 0, + 472, 0, 922, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 0, 0, + 0, 472, 0, 928, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 0, 0, + 0, 0, 472, 0, 929, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, + 0, 0, 0, 472, 0, 936, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 0, 0, 0, 0, 472, 0, 945, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 0, 472, 0, 955, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 0, 0, 0, 0, 472, 0, 1051, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 0, 0, 0, 472, 0, 1079, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 0, 0, 0, 0, 472, 0, + 1084, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 0, 0, 0, 0, 472, + 0, 1091, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 0, 0, 0, 0, + 472, 0, 1096, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 0, 0, + 0, 472, 0, 1097, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 0, 0, + 0, 0, 472, 0, 1103, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, + 0, 0, 0, 472, 0, 1112, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 0, 0, 0, 0, 472, 0, 1113, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 0, 472, 0, 1114, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 0, 0, 0, 0, 472, 0, 1146, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 0, 0, 0, 472, 0, 1148, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 0, 0, 0, 0, 472, 0, + 1149, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 0, 0, 0, 0, 472, + 0, 1150, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 0, 0, 0, 0, + 472, 0, 1151, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 0, 0, + 0, 472, 0, 1152, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 0, 0, + 0, 0, 472, 0, 1153, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, + 0, 0, 0, 472, 0, 1154, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 0, 0, 0, 0, 472, 0, 1158, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 0, 472, 0, 1167, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 0, 0, 0, 0, 472, 0, 1191, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 0, 0, 0, 0, 472, 0, 1281, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 0, 0, 0, 0, 472, 0, + 1286, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 0, 0, 0, 0, 472, + 0, 1450, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 0, 0, 0, 0, + 472, 0, 1680, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 0, 0, 0, + 0, 472, 0, 1697, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 0, 0, + 0, 0, 472, 0, 1727, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 0, + 0, 0, 0, 472, 0, 1973, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 0, 0, 0, 0, 472, 0, 2057, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 0, 0, 0, 0, 472 }; static const yytype_int16 yycheck[] = { - 3, 5, 263, 6, 399, 7, 401, 1282, 4, 538, - 539, 4, 6, 4, 3, 1114, 1118, 4, 4, 4, - 4, 416, 4, 6, 5, 5, 5, 1723, 118, 4, - 6, 90, 6, 6, 4, 4, 278, 4, 4, 4, - 4, 215, 0, 5, 5, 5, 220, 6, 290, 5, - 5, 5, 211, 6, 6, 6, 201, 202, 6, 62, - 4, 201, 202, 109, 13, 7, 4, 70, 6, 211, - 201, 202, 75, 218, 6, 212, 218, 123, 218, 6, - 217, 201, 202, 86, 153, 131, 132, 133, 219, 6, - 212, 137, 138, 139, 140, 217, 7, 217, 212, 219, - 169, 170, 211, 217, 213, 201, 202, 349, 6, 351, - 7, 220, 201, 202, 356, 201, 202, 211, 7, 432, - 84, 434, 218, 436, 88, 201, 202, 7, 217, 211, - 219, 217, 211, 219, 7, 211, 218, 6, 102, 201, - 202, 211, 218, 6, 51, 52, 84, 54, 218, 7, - 201, 202, 156, 6, 86, 217, 88, 212, 143, 144, - 145, 146, 217, 201, 202, 141, 217, 141, 6, 153, - 154, 1867, 1868, 219, 6, 156, 156, 156, 164, 217, - 7, 168, 141, 201, 202, 208, 209, 6, 153, 154, - 141, 194, 215, 201, 202, 7, 187, 87, 211, 217, - 90, 187, 7, 206, 207, 218, 195, 201, 202, 217, - 6, 214, 187, 215, 218, 6, 7, 213, 211, 222, - 213, 224, 215, 213, 220, 198, 229, 220, 211, 211, - 233, 1330, 218, 236, 219, 218, 218, 240, 241, 242, - 243, 244, 211, 218, 1519, 248, 249, 250, 218, 218, - 198, 218, 218, 256, 257, 258, 218, 218, 218, 262, - 263, 8, 218, 218, 218, 218, 218, 211, 213, 211, - 3, 213, 211, 6, 201, 202, 211, 188, 189, 190, - 191, 284, 285, 286, 201, 202, 7, 529, 530, 221, - 211, 188, 189, 190, 191, 298, 299, 208, 209, 188, - 189, 190, 191, 211, 215, 201, 202, 549, 188, 189, - 190, 191, 315, 8, 317, 188, 189, 190, 191, 208, - 209, 217, 94, 636, 211, 638, 213, 201, 202, 62, - 188, 189, 190, 191, 211, 208, 209, 206, 207, 1614, - 208, 209, 75, 217, 208, 209, 436, 217, 6, 219, - 208, 209, 355, 86, 218, 358, 359, 201, 202, 266, - 267, 188, 189, 190, 191, 212, 211, 274, 371, 212, - 217, 278, 614, 217, 217, 244, 188, 189, 190, 191, - 90, 208, 209, 188, 189, 190, 191, 629, 90, 87, - 92, 704, 90, 201, 202, 708, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 217, - 413, 414, 415, 416, 417, 201, 202, 90, 421, 422, - 423, 424, 425, 426, 218, 428, 208, 209, 201, 202, - 211, 217, 364, 203, 204, 205, 218, 211, 214, 213, - 210, 217, 445, 1718, 217, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 201, - 202, 194, 1737, 210, 90, 208, 209, 188, 189, 190, - 191, 214, 219, 206, 207, 217, 217, 4, 219, 84, - 483, 214, 87, 208, 209, 90, 355, 419, 84, 222, - 217, 87, 219, 218, 90, 427, 92, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 244, 201, 202, 211, 210, 201, 202, 212, 84, - 523, 524, 87, 217, 219, 90, 214, 6, 217, 217, - 263, 400, 217, 402, 403, 404, 405, 406, 407, 408, - 90, 410, 411, 92, 413, 414, 415, 211, 417, 538, - 539, 87, 421, 422, 423, 424, 425, 218, 648, 241, - 242, 243, 565, 566, 567, 218, 248, 249, 250, 201, - 202, 6, 7, 815, 577, 578, 201, 202, 581, 201, - 202, 513, 514, 515, 516, 217, 113, 114, 115, 116, - 201, 202, 217, 596, 90, 217, 201, 202, 125, 87, - 603, 128, 284, 285, 201, 202, 211, 920, 201, 202, - 8, 924, 4, 218, 704, 87, 298, 299, 708, 622, - 217, 212, 355, 214, 217, 201, 202, 201, 202, 536, - 537, 109, 90, 201, 202, 4, 211, 544, 641, 4, - 1915, 217, 211, 217, 213, 123, 1748, 4, 1750, 217, - 1752, 220, 211, 131, 132, 133, 211, 211, 213, 137, - 138, 139, 140, 211, 211, 220, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 6, 410, 411, 213, - 413, 414, 415, 416, 417, 6, 208, 209, 421, 422, - 423, 424, 425, 426, 211, 428, 218, 208, 209, 213, - 703, 208, 209, 212, 707, 214, 218, 218, 90, 218, - 92, 218, 581, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 1826, 113, 114, - 1829, 210, 7, 1832, 119, 211, 211, 211, 213, 213, - 2015, 219, 211, 746, 1005, 220, 220, 750, 211, 211, - 753, 109, 211, 756, 211, 758, 213, 211, 215, 762, - 763, 218, 211, 220, 1077, 123, 1079, 857, 1081, 217, - 1083, 219, 211, 131, 132, 133, 217, 709, 219, 137, - 138, 139, 140, 84, 211, 788, 87, 87, 211, 90, - 90, 92, 92, 1895, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 87, 812, - 213, 90, 210, 92, 212, 201, 202, 203, 204, 205, - 1215, 1216, 218, 218, 210, 1220, 1221, 211, 760, 213, - 920, 215, 6, 211, 924, 213, 220, 215, 218, 6, - 930, 931, 220, 1942, 212, 578, 214, 211, 581, 212, - 218, 214, 113, 114, 217, 211, 211, 860, 119, 862, - 211, 219, 865, 1965, 212, 1967, 214, 1969, 217, 217, - 219, 218, 217, 1975, 219, 878, 211, 880, 212, 882, - 214, 884, 211, 217, 753, 212, 889, 214, 211, 758, - 217, 894, 212, 211, 214, 1994, 211, 217, 1997, 218, - 212, 2000, 214, 211, 2003, 217, 217, 217, 219, 219, - 1223, 818, 915, 217, 4, 219, 919, 211, 825, 2021, - 923, 2023, 218, 2025, 831, 212, 1239, 214, 931, 217, - 217, 219, 6, 217, 211, 219, 1026, 1027, 90, 217, - 92, 219, 2041, 217, 2043, 219, 2045, 217, 217, 219, - 219, 218, 217, 956, 219, 217, 211, 219, 961, 6, - 217, 211, 219, 966, 967, 968, 969, 1496, 1497, 1230, - 217, 217, 219, 219, 218, 217, 979, 219, 981, 217, - 217, 219, 219, 218, 1379, 1380, 217, 109, 219, 1384, - 1385, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 218, 123, 1005, 213, 210, 1008, 1009, 1010, 1011, 131, - 132, 133, 220, 6, 109, 137, 138, 139, 140, 217, - 753, 219, 217, 756, 219, 758, 6, 217, 123, 219, - 1033, 217, 217, 219, 219, 218, 131, 132, 133, 218, - 4, 5, 137, 138, 139, 140, 1136, 1137, 218, 1052, - 1053, 217, 1055, 219, 1057, 1058, 213, 213, 1061, 1062, - 6, 6, 931, 1066, 217, 213, 219, 217, 156, 219, - 1160, 1161, 4, 217, 6, 219, 1389, 217, 220, 219, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 217, - 6, 219, 961, 57, 58, 59, 60, 219, 967, 968, - 969, 65, 66, 67, 218, 217, 70, 219, 6, 217, - 979, 219, 981, 217, 217, 219, 219, 81, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 218, 1223, 1376, 217, 210, 219, 4, 5, - 217, 1048, 219, 6, 6, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 218, - 1163, 1164, 1165, 210, 1033, 6, 217, 6, 219, 1430, - 218, 217, 217, 219, 219, 1178, 213, 4, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 217, 217, 219, - 219, 57, 58, 59, 60, 1102, 1103, 1104, 931, 65, - 66, 67, 109, 217, 70, 219, 210, 215, 172, 173, - 174, 7, 1215, 1216, 1743, 81, 123, 1220, 1221, 217, - 184, 219, 186, 187, 131, 132, 133, 1230, 961, 218, - 137, 138, 139, 140, 967, 968, 969, 219, 217, 109, - 219, 1244, 217, 217, 208, 209, 979, 217, 981, 219, - 217, 215, 219, 123, 218, 217, 217, 219, 219, 7, - 6, 131, 132, 133, 6, 1268, 6, 137, 138, 139, - 140, 1274, 1005, 217, 217, 219, 219, 1280, 6, 1282, - 1283, 1284, 217, 212, 219, 1288, 1289, 217, 1291, 219, - 1293, 217, 1295, 219, 1297, 1298, 1299, 7, 7, 6, - 1033, 1391, 6, 6, 1699, 6, 172, 173, 174, 212, - 218, 7, 219, 1316, 6, 62, 7, 6, 184, 6, - 186, 187, 6, 4, 62, 62, 1258, 62, 1331, 153, - 12, 13, 1335, 218, 1337, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 212, 214, 214, 219, - 210, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 212, 6, 6, 212, 210, - 212, 217, 217, 44, 217, 44, 1379, 1380, 212, 217, - 217, 1384, 1385, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 1398, 217, 217, 212, 210, - 212, 1404, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 214, 95, 44, 44, 6, 4, 100, 101, - 102, 103, 1329, 105, 106, 107, 4, 1430, 7, 111, - 6, 6, 6, 1436, 6, 156, 7, 1527, 7, 7, - 156, 7, 1374, 1446, 7, 156, 1449, 7, 1709, 7, - 218, 6, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 148, 149, 150, 7, - 210, 4, 217, 212, 6, 219, 212, 6, 212, 7, - 212, 212, 1215, 1216, 217, 1488, 1489, 1220, 1221, 215, - 1422, 12, 13, 217, 217, 214, 218, 1230, 7, 219, - 218, 218, 7, 218, 6, 219, 218, 1496, 1497, 215, - 6, 6, 6, 44, 1517, 1757, 1519, 1449, 1521, 44, - 109, 44, 44, 6, 6, 213, 7, 6, 211, 1398, - 6, 211, 218, 198, 123, 1404, 7, 219, 1541, 7, - 92, 7, 131, 132, 133, 7, 218, 1550, 137, 138, - 139, 140, 1459, 7, 7, 6, 218, 1560, 7, 7, - 1492, 7, 1565, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 7, 95, 109, 7, 1446, 7, 100, - 101, 102, 103, 4, 105, 106, 107, 4, 1591, 123, - 111, 1498, 6, 1500, 109, 1502, 211, 131, 132, 133, - 7, 6, 218, 137, 138, 139, 140, 7, 123, 7, - 1517, 1614, 7, 1520, 1521, 1547, 131, 132, 133, 6, - 6, 6, 137, 138, 139, 140, 7, 148, 149, 150, - 219, 90, 6, 1565, 1566, 1567, 6, 4, 4, 219, - 4, 218, 4, 6, 217, 109, 1379, 1380, 1651, 6, - 6, 1384, 1385, 1656, 1896, 6, 21, 22, 6, 123, - 6, 217, 212, 217, 212, 1398, 215, 131, 132, 133, - 6, 1404, 7, 137, 138, 139, 140, 1680, 218, 215, - 6, 211, 6, 6, 6, 219, 212, 214, 6, 102, - 6, 6, 6, 1696, 218, 6, 1699, 1430, 219, 218, - 218, 218, 218, 5, 219, 4, 1709, 218, 6, 6, - 218, 7, 218, 1446, 218, 1718, 213, 6, 109, 6, - 6, 4, 1725, 1726, 212, 218, 218, 218, 214, 6, - 6, 6, 123, 152, 1737, 6, 6, 1740, 4, 217, - 131, 132, 133, 6, 12, 13, 137, 138, 139, 140, - 6, 1683, 117, 1756, 1743, 219, 4, 6, 1761, 6, - 6, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 6, 6, 4, 154, - 155, 156, 157, 7, 159, 160, 161, 162, 163, 164, - 7, 6, 167, 6, 6, 6, 6, 6, 173, 174, - 5, 156, 1815, 6, 179, 180, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 218, 95, 219, 6, - 6, 1834, 100, 101, 102, 103, 6, 105, 106, 107, - 1747, 6, 1749, 111, 1751, 6, 217, 6, 6, 6, - 6, 6, 1759, 6, 1857, 1762, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 6, 6, 6, 6, 210, 109, 217, 6, 6, 212, - 148, 149, 150, 6, 6, 6, 6, 6, 6, 123, - 7, 6, 6, 218, 1897, 215, 1899, 131, 132, 133, - 5, 218, 6, 137, 138, 139, 140, 1814, 218, 88, - 6, 1818, 1915, 218, 6, 218, 6, 6, 219, 219, - 7, 151, 6, 218, 1856, 218, 218, 218, 6, 219, - 6, 219, 6, 6, 6, 6, 154, 6, 303, 6, - 6, 306, 307, 308, 309, 6, 6, 6, 6, 109, - 6, 219, 212, 218, 6, 219, 7, 6, 6, 218, - 325, 218, 6, 123, 218, 1872, 1699, 218, 6, 1876, - 109, 131, 132, 133, 1977, 6, 1709, 137, 138, 139, - 140, 218, 6, 6, 1987, 219, 6, 6, 6, 6, - 6, 6, 1899, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 6, 6, 219, - 6, 210, 2015, 211, 218, 6, 6, 6, 6, 6, - 212, 1953, 218, 6, 218, 6, 6, 218, 218, 6, - 2033, 218, 2035, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 218, 6, 218, - 218, 210, 6, 6, 6, 6, 1963, 1964, 6, 219, - 6, 6, 2065, 94, 3, 4, 6, 1860, 6, 6, - 9, 10, 11, 6, 439, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 6, 1253, - 479, 1724, 1267, 3, 3, 1549, 3, 511, 1739, 1426, - -1, -1, -1, -1, 53, 54, 55, 56, 1987, -1, - -1, -1, 61, -1, 1857, -1, -1, 6, -1, -1, - -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, - -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 188, 189, 190, - 191, 192, -1, -1, 2033, -1, 2035, -1, -1, -1, - -1, -1, -1, -1, 205, -1, -1, -1, 209, -1, + 3, 268, 3, 6, 410, 1145, 412, 1141, 283, 6, + 551, 552, 1593, 1594, 4, 6, 1772, 4, 7, 5, + 4, 427, 7, 6, 299, 4, 1316, 4, 6, 4, + 4, 13, 5, 3, 5, 4, 6, 4, 4, 4, + 4, 4, 6, 216, 5, 218, 6, 6, 5, 4, + 443, 158, 445, 6, 447, 5, 5, 5, 4, 4, + 216, 64, 5, 5, 0, 6, 6, 174, 175, 72, + 206, 207, 213, 214, 77, 7, 6, 206, 207, 220, + 216, 6, 206, 207, 359, 88, 361, 223, 6, 246, + 247, 248, 367, 222, 64, 224, 253, 254, 255, 217, + 224, 219, 216, 4, 222, 206, 207, 77, 7, 6, + 206, 207, 216, 7, 218, 6, 6, 6, 88, 84, + 84, 7, 223, 88, 206, 207, 222, 216, 224, 94, + 95, 96, 97, 121, 223, 220, 293, 294, 206, 207, + 225, 223, 107, 206, 207, 216, 216, 8, 218, 6, + 307, 308, 223, 90, 222, 225, 224, 206, 207, 216, + 223, 148, 149, 150, 151, 216, 223, 218, 1924, 1925, + 90, 7, 92, 222, 225, 161, 206, 207, 216, 213, + 214, 158, 159, 6, 216, 223, 146, 146, 161, 223, + 161, 223, 222, 146, 197, 169, 7, 198, 6, 88, + 161, 90, 7, 158, 159, 216, 209, 210, 193, 194, + 195, 196, 7, 192, 217, 206, 207, 192, 192, 216, + 203, 146, 225, 6, 227, 203, 223, 197, 218, 232, + 1364, 220, 216, 236, 218, 225, 220, 224, 241, 209, + 210, 225, 245, 246, 247, 248, 249, 217, 223, 223, + 253, 254, 255, 216, 223, 225, 223, 223, 261, 262, + 263, 654, 223, 656, 267, 268, 223, 542, 543, 1559, + 216, 216, 173, 223, 223, 223, 90, 223, 223, 249, + 223, 223, 223, 223, 216, 6, 218, 562, 206, 207, + 293, 294, 295, 7, 193, 194, 195, 196, 268, 193, + 194, 195, 196, 218, 307, 308, 6, 193, 194, 195, + 196, 218, 209, 210, 213, 214, 206, 207, 216, 213, + 214, 324, 99, 326, 118, 119, 220, 213, 214, 722, + 124, 87, 216, 726, 90, 224, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 87, 216, 249, 90, 215, 92, 631, 193, 194, 195, + 196, 216, 365, 224, 206, 207, 369, 370, 217, 1659, + 219, 646, 216, 222, 218, 8, 220, 213, 214, 382, + 222, 225, 193, 194, 195, 196, 90, 1968, 193, 194, + 195, 196, 222, 6, 224, 365, 213, 214, 193, 194, + 195, 196, 213, 214, 216, 6, 223, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 216, 424, 425, 426, 427, 428, 213, 214, 4, 432, + 433, 434, 435, 436, 437, 87, 439, 222, 90, 224, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 216, 421, 422, 456, 424, 425, 426, 427, 428, 447, + 7, 216, 432, 433, 434, 435, 436, 437, 365, 439, + 223, 206, 207, 8, 206, 207, 216, 1767, 218, 193, + 194, 195, 196, 213, 214, 225, 375, 222, 213, 214, + 222, 494, 219, 223, 219, 222, 1786, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 222, 90, 224, 411, 215, 413, 414, 415, 416, + 417, 418, 419, 219, 421, 422, 222, 424, 425, 426, + 222, 428, 224, 536, 537, 432, 433, 434, 435, 436, + 216, 430, 118, 119, 120, 121, 206, 207, 216, 438, + 551, 552, 945, 217, 130, 219, 949, 133, 217, 223, + 835, 92, 222, 222, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 90, 582, + 583, 584, 215, 84, 217, 216, 87, 84, 6, 90, + 87, 594, 595, 90, 87, 598, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 613, 206, 207, 223, 215, 206, 207, 620, 206, 207, + 118, 119, 6, 213, 214, 595, 124, 222, 598, 206, + 207, 222, 90, 223, 222, 87, 639, 526, 527, 528, + 529, 223, 206, 207, 87, 222, 193, 194, 195, 196, + 213, 214, 222, 222, 224, 224, 659, 1797, 222, 1799, + 223, 1801, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 114, 217, 666, 219, + 215, 206, 207, 223, 213, 214, 1976, 206, 207, 224, + 128, 217, 206, 207, 223, 90, 222, 222, 136, 137, + 138, 598, 218, 222, 142, 143, 144, 145, 222, 206, + 207, 1104, 217, 1106, 219, 1108, 4, 1110, 721, 216, + 206, 207, 725, 206, 207, 4, 223, 206, 207, 216, + 206, 207, 6, 7, 722, 216, 222, 218, 726, 222, + 206, 207, 4, 222, 225, 1879, 222, 87, 1882, 4, + 90, 1885, 92, 206, 207, 216, 222, 218, 206, 207, + 216, 764, 217, 1030, 225, 768, 216, 222, 771, 222, + 217, 774, 219, 776, 222, 222, 216, 780, 781, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 206, 207, 206, 207, 215, 2088, 6, + 7, 771, 217, 217, 774, 808, 776, 222, 222, 222, + 216, 222, 1952, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 206, 207, 832, + 114, 215, 217, 206, 207, 206, 207, 222, 727, 206, + 207, 1247, 1248, 222, 128, 217, 1252, 1253, 6, 222, + 222, 222, 136, 137, 138, 222, 206, 207, 142, 143, + 144, 145, 1255, 6, 206, 207, 208, 209, 210, 2003, + 206, 207, 222, 215, 771, 208, 209, 210, 1271, 776, + 6, 884, 215, 886, 216, 222, 889, 224, 218, 778, + 2030, 216, 2032, 881, 2034, 114, 222, 216, 224, 902, + 2040, 904, 216, 906, 216, 908, 218, 216, 220, 128, + 913, 223, 216, 225, 218, 918, 220, 136, 137, 138, + 222, 225, 224, 142, 143, 144, 145, 216, 84, 2063, + 7, 87, 2066, 216, 90, 2069, 92, 940, 2072, 216, + 224, 944, 217, 84, 219, 948, 87, 222, 216, 90, + 217, 92, 219, 956, 2094, 222, 2096, 945, 2098, 218, + 217, 949, 219, 223, 217, 222, 219, 955, 956, 222, + 216, 222, 6, 224, 222, 222, 224, 224, 981, 222, + 2114, 224, 2116, 986, 2118, 222, 956, 224, 991, 992, + 993, 994, 222, 216, 224, 1262, 1537, 1538, 90, 223, + 92, 1004, 90, 1006, 92, 224, 222, 222, 224, 224, + 223, 6, 1418, 1419, 6, 216, 986, 1423, 1424, 222, + 4, 224, 992, 993, 994, 216, 222, 1030, 224, 216, + 1033, 1034, 1035, 1036, 1004, 1428, 1006, 223, 216, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 12, 13, 1058, 222, 215, 224, 956, + 1030, 216, 216, 1051, 1052, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 1077, 1078, 216, 1080, 215, 1082, + 1083, 216, 216, 1086, 1087, 1088, 1089, 216, 1058, 986, + 1093, 114, 222, 218, 224, 992, 993, 994, 222, 222, + 224, 224, 222, 216, 224, 128, 222, 1004, 224, 1006, + 222, 216, 224, 136, 137, 138, 222, 225, 224, 142, + 143, 144, 145, 223, 223, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 223, 223, 1413, 98, + 1415, 100, 222, 222, 224, 224, 105, 106, 107, 108, + 223, 110, 111, 112, 222, 216, 224, 116, 7, 8, + 222, 1058, 224, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 223, 216, 1167, + 1168, 215, 222, 222, 224, 224, 4, 222, 6, 224, + 216, 1194, 1195, 1196, 153, 154, 155, 222, 222, 224, + 224, 224, 1469, 1191, 1192, 216, 222, 1210, 224, 216, + 3, 4, 222, 222, 224, 224, 9, 10, 11, 216, + 6, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 1247, 1248, 222, 6, 224, 1252, + 1253, 1792, 222, 222, 224, 224, 222, 218, 224, 1262, + 53, 54, 55, 56, 222, 224, 224, 1255, 61, 223, + 222, 114, 224, 1276, 222, 218, 224, 1247, 1248, 72, + 73, 74, 1252, 1253, 222, 128, 224, 80, 222, 222, + 224, 224, 1262, 136, 137, 138, 222, 1300, 224, 142, + 143, 144, 145, 1306, 222, 222, 224, 224, 222, 114, + 224, 1314, 223, 1316, 1317, 1318, 222, 218, 224, 1322, + 1323, 223, 1325, 128, 1327, 222, 1329, 224, 1331, 1332, + 1333, 136, 137, 138, 222, 6, 224, 142, 143, 144, + 145, 222, 1748, 224, 222, 6, 224, 1350, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 1365, 222, 161, 224, 215, 222, 225, 224, + 1373, 222, 1375, 224, 114, 222, 6, 224, 223, 223, + 6, 224, 223, 176, 6, 6, 223, 180, 128, 223, + 6, 184, 185, 186, 187, 188, 136, 137, 138, 192, + 4, 1290, 142, 143, 144, 145, 218, 215, 7, 220, + 223, 7, 222, 206, 207, 1418, 1419, 224, 211, 224, + 1423, 1424, 222, 216, 6, 6, 6, 217, 221, 7, + 223, 7, 6, 114, 1437, 6, 6, 217, 6, 223, + 1443, 7, 1430, 6, 62, 7, 6, 128, 1418, 1419, + 6, 6, 4, 1423, 1424, 136, 137, 138, 158, 62, + 62, 142, 143, 144, 145, 62, 1469, 1437, 6, 223, + 219, 217, 1475, 1443, 6, 6, 217, 222, 217, 222, + 222, 219, 1485, 217, 224, 1488, 222, 222, 6, 222, + 222, 1758, 217, 217, 44, 44, 44, 44, 6, 1469, + 4, 4, 7, 161, 6, 6, 6, 6, 161, 53, + 54, 7, 56, 7, 7, 1485, 7, 7, 7, 161, + 7, 7, 7, 1412, 7, 223, 1529, 1530, 6, 4, + 7, 1806, 6, 217, 222, 114, 1537, 1538, 217, 222, + 1437, 217, 222, 224, 217, 222, 1443, 6, 220, 128, + 224, 217, 219, 7, 224, 223, 1559, 136, 137, 138, + 223, 223, 1565, 142, 143, 144, 145, 223, 7, 7, + 220, 7, 1461, 224, 4, 5, 223, 6, 44, 44, + 44, 44, 1585, 1571, 6, 6, 6, 6, 1485, 6, + 218, 7, 1595, 6, 223, 6, 216, 216, 203, 1488, + 7, 7, 1605, 7, 92, 7, 223, 1610, 7, 7, + 6, 4, 7, 7, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 7, 7, 7, 7, 57, 58, 59, + 60, 4, 223, 1636, 1909, 65, 66, 67, 6, 216, + 70, 7, 6, 6, 1533, 224, 7, 7, 7, 7, + 7, 81, 7, 6, 223, 7, 1659, 6, 6, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 7, 6, 90, 6, 215, 1953, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 1696, 222, 4, 6, 215, 4, 4, + 223, 223, 1591, 224, 6, 1708, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 6, 1610, 1611, 1612, 215, 1728, 6, 271, 272, 6, + 6, 4, 6, 107, 6, 279, 217, 217, 222, 283, + 222, 220, 1745, 7, 216, 1748, 6, 177, 178, 179, + 223, 220, 219, 6, 6, 1758, 217, 6, 6, 189, + 6, 191, 192, 223, 1767, 223, 6, 223, 223, 6, + 114, 1774, 1775, 223, 6, 6, 6, 5, 1748, 4, + 6, 223, 223, 1786, 128, 7, 1789, 217, 1758, 219, + 223, 1792, 136, 137, 138, 223, 6, 6, 142, 143, + 144, 145, 1805, 6, 218, 6, 1809, 4, 3, 4, + 219, 223, 6, 223, 9, 10, 11, 217, 223, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 1731, 223, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 53, 54, + 55, 56, 215, 6, 157, 1868, 61, 223, 6, 223, + 6, 4, 223, 4, 4, 5, 222, 72, 73, 74, + 224, 6, 6, 6, 1887, 80, 6, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 6, 6, 6, 6, 215, 6, 4, 7, 7, + 6, 1914, 6, 6, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 6, 5, 223, 6, 57, 58, 59, + 60, 6, 161, 6, 6, 65, 66, 67, 6, 6, + 70, 6, 6, 6, 1914, 6, 6, 6, 6, 6, + 6, 81, 1955, 1956, 1957, 1958, 1959, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 222, 114, 1976, 6, 215, 96, 222, 6, 6, + 6, 176, 217, 6, 6, 180, 128, 6, 6, 184, + 185, 186, 187, 188, 136, 137, 138, 192, 6, 6, + 142, 143, 144, 145, 7, 549, 550, 6, 220, 6, + 223, 206, 207, 557, 6, 223, 211, 223, 5, 88, + 6, 216, 6, 223, 1913, 6, 221, 223, 223, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 224, 2045, 224, 223, 215, 223, 177, 178, 179, + 223, 6, 223, 2056, 7, 6, 6, 224, 224, 189, + 224, 191, 192, 6, 156, 6, 6, 6, 6, 159, + 6, 191, 192, 193, 194, 195, 6, 6, 6, 6, + 6, 6, 224, 213, 214, 2088, 2056, 6, 208, 223, + 220, 6, 212, 223, 223, 217, 6, 223, 7, 6, + 6, 6, 223, 2106, 223, 2108, 226, 227, 228, 229, + 223, 231, 232, 233, 234, 224, 236, 237, 238, 239, + 240, 6, 6, 114, 6, 245, 6, 6, 223, 2018, + 250, 6, 6, 6, 6, 2138, 2106, 6, 2108, 6, + 6, 6, 224, 6, 223, 265, 216, 223, 6, 223, + 6, 217, 6, 224, 274, 275, 6, 6, 6, 2056, + 6, 223, 6, 283, 6, 6, 6, 6, 2138, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 223, 223, 223, 223, 215, 223, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 6, 324, 325, 326, 215, 6, 2106, + 6, 2108, 6, 6, 6, 6, 6, 6, 338, 339, + 340, 6, 342, 6, 6, 6, 346, 347, 348, 1285, + 1917, 351, 490, 1299, 1773, 3, 3, 3, 3, 524, + 1788, 2138, -1, 1465, -1, -1, 366, -1, -1, -1, + -1, 371, 372, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 385, 386, -1, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + -1, -1, -1, -1, 838, -1, -1, -1, -1, -1, + -1, 845, -1, 423, -1, -1, -1, 851, -1, 429, + -1, 431, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, -1, -1, -1, -1, + 215, -1, -1, -1, -1, 455, 456, -1, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, -1, -1, 475, 476, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, 494, 215, -1, -1, -1, -1, + 500, -1, -1, -1, -1, 505, -1, -1, -1, -1, + -1, -1, 512, 513, -1, -1, -1, 114, -1, -1, + 520, 521, -1, -1, -1, 525, 526, 527, 528, 529, + 530, 128, 532, -1, 534, -1, 536, 537, -1, 136, + 137, 138, -1, -1, -1, 142, 143, 144, 145, -1, + -1, -1, -1, 6, 554, 555, 556, 557, 558, 559, + -1, -1, -1, 563, 564, 565, 566, 567, 568, 569, + 570, 571, -1, -1, -1, 575, -1, 577, 578, -1, + -1, -1, 582, 583, 584, -1, -1, 587, 588, 589, + 590, 591, -1, 8, 594, 595, 596, 597, -1, 599, + -1, -1, 602, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 114, 613, -1, -1, -1, 6, -1, 619, + 620, -1, 622, 623, -1, -1, 128, 224, -1, -1, + -1, -1, -1, -1, 136, 137, 138, -1, -1, 639, + 142, 143, 144, 145, 644, 645, -1, 647, 648, 1073, + -1, -1, -1, -1, -1, -1, -1, -1, 658, 659, + -1, -1, -1, 663, -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, -1, 1129, 1130, 1131, -1, -1, + -1, -1, -1, -1, -1, 53, 54, 55, 56, -1, + -1, -1, 224, 61, -1, -1, -1, -1, 728, -1, + -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, + -1, -1, 80, -1, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, -1, -1, + 760, 761, 215, -1, 764, 765, 766, -1, 768, 769, + -1, -1, -1, -1, -1, -1, -1, 777, -1, -1, + 780, 781, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 796, -1, -1, -1, + 215, -1, -1, -1, -1, -1, -1, 807, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, -1, -1, -1, -1, 215, -1, -1, -1, + -1, -1, 832, -1, -1, -1, -1, -1, 176, 839, + 840, -1, 180, -1, -1, 845, 184, 185, 186, 187, + 188, 6, -1, -1, 192, -1, -1, -1, -1, -1, + -1, -1, 862, -1, -1, 865, -1, -1, 206, 207, + -1, -1, -1, 211, -1, -1, -1, -1, 216, 217, + -1, -1, -1, 221, 884, -1, 886, 8, -1, 889, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, 902, -1, 904, 215, 906, -1, 908, -1, + -1, -1, -1, 913, -1, -1, -1, -1, 918, 114, + -1, -1, -1, -1, 924, -1, 926, 927, -1, -1, + -1, -1, -1, 128, 241, -1, -1, 937, -1, 1363, + -1, 136, 137, 138, -1, -1, -1, 142, 143, 144, + 145, -1, -1, 8, 261, 262, 263, -1, -1, -1, + 267, -1, -1, -1, -1, -1, -1, -1, -1, 969, + -1, -1, -1, -1, -1, -1, -1, 977, 978, 979, + -1, 981, -1, -1, -1, -1, -1, -1, 295, 989, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 8, -1, 1003, -1, -1, -1, -1, 1008, -1, + -1, -1, -1, -1, -1, -1, -1, 1017, -1, -1, + -1, -1, -1, 1023, -1, -1, -1, -1, -1, 224, + -1, -1, -1, 1033, 1034, 1035, 1036, -1, -1, 1039, + -1, -1, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, -1, -1, -1, -1, + 215, -1, 369, 370, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1498, 382, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + -1, -1, -1, 1093, 215, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1105, -1, 1107, -1, 1109, + -1, 1111, -1, 420, -1, 1539, -1, 1541, 8, 1543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 223, 224, 225, 226, 2065, 228, 229, 230, - 231, -1, 233, 234, 235, 6, -1, -1, -1, 240, - -1, -1, -1, -1, 245, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 260, - -1, -1, 171, 210, -1, -1, 175, -1, 269, 270, - 179, 180, 181, 182, 183, -1, -1, 278, 187, 6, - -1, -1, -1, -1, 1987, -1, -1, -1, -1, -1, - -1, -1, 201, 202, -1, -1, -1, 206, -1, -1, - -1, -1, 211, -1, -1, -1, -1, 216, -1, 218, - -1, -1, -1, -1, 315, 316, 317, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 328, 329, 330, - 2033, 332, 2035, -1, -1, 336, 337, 338, -1, -1, - 341, -1, -1, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, -1, 360, - 361, 210, 2065, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 374, 375, -1, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, -1, -1, + -1, -1, -1, 1133, -1, -1, 1560, 1561, 1562, 1563, + 1564, 1565, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, -1, -1, -1, -1, + 215, -1, -1, -1, -1, -1, 1166, -1, -1, -1, + -1, -1, -1, -1, -1, 1175, 1176, -1, 1178, 1179, + -1, 1181, 1182, 1183, -1, -1, -1, -1, -1, 1189, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, -1, -1, -1, -1, 215, -1, + -1, -1, -1, -1, -1, -1, 1216, -1, -1, -1, + -1, 1221, -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, -1, 1263, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1274, 1275, -1, -1, 53, 54, + 55, 56, -1, -1, -1, -1, 61, -1, -1, 1289, + 1290, -1, -1, 8, -1, -1, -1, 72, 73, 74, + -1, -1, -1, -1, -1, 80, -1, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, -1, 215, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1339, + 1340, 1341, -1, -1, -1, -1, -1, -1, -1, -1, + 1350, -1, 1352, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1363, -1, -1, -1, -1, -1, -1, + -1, -1, 1796, -1, 1798, 1375, 1800, -1, -1, -1, + 1380, -1, -1, -1, -1, -1, 1810, 1811, 1812, 1813, + 1814, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 176, -1, -1, -1, 180, 1406, 1407, 1408, 184, + 185, 186, 187, 188, 721, -1, -1, 192, 725, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 412, -1, -1, -1, -1, -1, 418, -1, 420, - 6, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, -1, -1, -1, 210, - -1, -1, -1, 444, 445, -1, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, -1, -1, 464, 465, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - -1, -1, 483, 210, -1, -1, -1, -1, 489, -1, - -1, -1, -1, 494, -1, -1, -1, -1, 499, 500, - -1, -1, -1, -1, -1, -1, 507, 508, 6, -1, - -1, 512, 513, 514, 515, 516, 517, -1, 519, -1, - 521, -1, 523, 524, -1, -1, -1, -1, -1, -1, + -1, 206, 207, -1, -1, -1, 211, -1, 1438, -1, + -1, 216, -1, 1867, 219, -1, 221, 1871, -1, 227, + -1, -1, -1, -1, 232, -1, -1, -1, 236, -1, + -1, -1, 1462, -1, -1, -1, 114, 245, -1, -1, + -1, -1, -1, -1, -1, -1, 1476, -1, -1, -1, + -1, 1481, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 1496, 1497, -1, -1, + 215, 808, -1, 1503, 1504, 1929, -1, -1, 1508, 1933, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1519, + 12, 13, -1, -1, -1, -1, -1, -1, -1, 1529, + 1530, 1531, -1, 1533, -1, 1959, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1545, 324, -1, 326, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, -1, 1565, -1, 215, 1568, -1, + -1, -1, -1, -1, -1, 1575, 1576, 1577, 1578, 1579, + 1580, 1581, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1591, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, -1, 2028, 2029, 98, -1, 100, -1, + -1, 1611, -1, 105, 106, 107, 108, -1, 110, 111, + 112, -1, -1, -1, 116, -1, -1, -1, -1, -1, + -1, -1, -1, 940, 1634, 1635, -1, 944, -1, -1, + -1, 948, 1642, -1, -1, -1, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + -1, 153, 154, 155, 215, -1, -1, -1, -1, -1, + -1, 222, -1, 224, -1, -1, -1, -1, 456, -1, + -1, 1681, -1, -1, 991, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 1699, + -1, -1, -1, 215, 227, -1, -1, -1, 1708, 232, + 222, -1, 224, 236, -1, -1, 494, -1, -1, -1, + -1, -1, 245, 1723, -1, 1725, -1, -1, 1728, -1, + -1, -1, 224, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1745, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 536, 537, + -1, -1, -1, 1763, -1, -1, -1, -1, 1768, -1, + 1077, 1078, -1, 1080, -1, 1082, 1083, -1, -1, 1086, + 1087, 1088, 1089, -1, -1, -1, -1, -1, -1, 1789, + -1, -1, -1, -1, -1, -1, 1796, -1, 1798, -1, + 1800, -1, -1, -1, 582, 583, 584, -1, -1, 1809, + -1, -1, -1, -1, -1, -1, 594, 595, -1, 1819, + 1820, 1821, 1822, 1823, 1824, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 613, -1, -1, -1, -1, + -1, -1, 620, -1, -1, -1, -1, 1847, 1848, -1, + -1, -1, 1852, -1, -1, -1, -1, -1, -1, -1, + -1, 639, -1, -1, 1864, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1875, -1, -1, -1, -1, + -1, 659, -1, -1, -1, -1, -1, 1194, 1195, 1196, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 541, 542, 543, 544, 545, 546, -1, -1, -1, 550, - 551, 552, 553, 554, -1, -1, -1, 558, -1, 560, - 561, -1, -1, -1, 565, 566, 567, -1, -1, 570, - 571, 572, 573, 574, -1, -1, 577, 578, 579, 580, - -1, 582, -1, -1, 585, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 596, -1, -1, -1, -1, - -1, 602, 603, -1, 605, 606, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - -1, 622, -1, -1, 210, -1, 627, 628, -1, 630, - 631, -1, -1, -1, -1, -1, -1, -1, -1, 640, - 641, 12, 13, -1, 645, -1, -1, -1, -1, -1, - -1, -1, -1, 988, 989, -1, -1, -1, -1, 994, - 995, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 224, -1, -1, -1, 210, - 229, -1, -1, -1, 233, -1, 217, -1, 219, -1, - -1, 240, -1, -1, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, -1, 710, - -1, -1, 210, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, -1, 95, -1, -1, -1, -1, 100, - 101, 102, 103, -1, 105, 106, 107, -1, -1, -1, - 111, 742, 743, -1, -1, 746, 747, 748, -1, 750, - 751, -1, -1, -1, -1, -1, -1, -1, 759, -1, - -1, 762, 763, -1, -1, -1, 315, -1, 317, -1, - -1, -1, -1, -1, -1, 776, -1, 148, 149, 150, - -1, -1, -1, -1, -1, -1, 787, -1, -1, -1, - -1, -1, -1, -1, -1, 236, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - -1, 812, -1, -1, 210, 256, 257, 258, 819, 820, - -1, 262, -1, 219, 825, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 838, -1, -1, - 841, -1, -1, -1, -1, 286, 1181, 1182, 219, -1, - -1, 1186, 1187, -1, -1, -1, -1, -1, -1, 860, - -1, 862, -1, -1, 865, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 878, -1, 880, - -1, 882, -1, 884, -1, -1, -1, -1, 889, -1, - -1, -1, -1, 894, -1, -1, 445, -1, -1, 900, - -1, 902, 903, -1, -1, -1, -1, -1, -1, -1, - -1, 912, -1, -1, -1, -1, -1, 358, 359, -1, + -1, -1, -1, 1210, -1, -1, -1, -1, -1, -1, + -1, 1911, -1, -1, -1, -1, -1, 1917, -1, -1, + -1, -1, -1, -1, -1, -1, 1926, -1, -1, -1, + -1, -1, -1, 456, -1, -1, -1, -1, -1, -1, + 1940, -1, -1, 1943, -1, -1, 1946, -1, -1, -1, + 1950, -1, -1, -1, -1, 1955, 1956, 1957, 1958, 1959, + 1960, 1961, 1962, 1963, 1964, -1, -1, -1, -1, 1276, + -1, -1, -1, -1, 1974, -1, -1, 1977, -1, -1, + -1, -1, -1, -1, -1, -1, 764, -1, -1, -1, + 768, -1, -1, 1300, -1, -1, -1, -1, -1, 1306, + -1, -1, 780, 781, -1, -1, -1, 1314, -1, 1316, + 1317, 1318, -1, 536, 537, 1322, 1323, -1, 1325, -1, + 1327, -1, 1329, -1, 1331, 1332, 1333, 2027, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, -1, 1350, -1, 2045, 215, 2047, 2048, 2049, + 2050, 2051, -1, 222, 832, 224, -1, -1, 1365, 582, + 583, 584, -1, -1, -1, -1, 1373, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, -1, 215, -1, -1, -1, -1, + 613, 2091, 2092, -1, 224, -1, -1, -1, -1, -1, + -1, -1, 2102, 2103, 2104, 2105, 884, -1, 886, -1, + -1, 889, -1, -1, -1, -1, 639, -1, -1, -1, + -1, -1, -1, -1, 902, -1, 904, 624, 906, -1, + 908, -1, -1, -1, -1, 913, 659, -1, -1, -1, + 918, -1, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, -1, -1, -1, -1, + 215, -1, -1, -1, -1, -1, -1, -1, 1475, 224, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 1488, 679, 680, 681, 682, 683, 684, 685, -1, + -1, -1, 689, 690, 691, -1, -1, -1, 695, 696, + -1, 698, -1, 981, -1, -1, 703, 704, 705, -1, + 707, -1, -1, -1, -1, -1, -1, 714, 715, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, -1, 732, -1, 215, -1, -1, + -1, 764, -1, -1, -1, 768, 224, -1, -1, -1, + -1, -1, 1559, -1, -1, 1033, 1034, 1035, 1036, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, -1, -1, -1, 215, 1585, -1, + -1, -1, -1, -1, -1, -1, 224, -1, 1595, -1, + -1, -1, 21, 22, -1, -1, -1, -1, 1605, -1, + -1, -1, -1, 1610, -1, -1, -1, -1, -1, 832, + -1, -1, -1, -1, -1, 1093, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1636, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, -1, -1, -1, -1, 215, -1, + -1, -1, 1659, -1, -1, -1, -1, 224, -1, -1, + -1, 884, -1, 886, -1, -1, 889, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 902, + -1, 904, -1, 906, -1, 908, -1, -1, -1, 1696, + 913, 120, -1, -1, -1, 918, -1, 894, -1, -1, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, -1, -1, -1, 157, 158, + 159, 160, -1, 162, 163, 164, 165, 166, 167, -1, + -1, 170, -1, -1, -1, -1, -1, 176, 177, 12, + 13, -1, -1, 182, 183, -1, -1, -1, 981, -1, + 1767, -1, -1, -1, -1, -1, -1, 1774, 1775, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1786, + -1, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, -1, -1, -1, 1805, 215, + -1, -1, -1, -1, -1, -1, -1, -1, 224, -1, + 1033, 1034, 1035, 1036, -1, -1, -1, -1, -1, -1, + -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, -1, -1, -1, 98, -1, 100, -1, -1, + -1, 1038, 105, 106, 107, 108, -1, 110, 111, 112, + -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, + -1, 1868, -1, -1, -1, -1, -1, -1, 131, -1, + 1093, -1, -1, -1, 1071, 1072, -1, -1, -1, -1, + 1887, -1, -1, 312, -1, -1, 315, 316, 317, 318, + 153, 154, 155, -1, -1, -1, -1, 1375, -1, -1, + -1, -1, -1, -1, -1, -1, 335, -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, -1, -1, -1, -1, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, -1, 1976, + -1, 65, 66, 67, -1, -1, 70, -1, 72, 73, + 74, -1, -1, -1, -1, -1, 80, 81, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, -1, -1, -1, -1, 215, -1, -1, -1, + -1, -1, -1, -1, -1, 224, -1, -1, -1, -1, + -1, 450, -1, -1, -1, -1, -1, 1224, -1, -1, + -1, -1, -1, 1230, 1231, 1232, 1233, 1234, -1, 1236, + -1, 1238, 1239, -1, 1241, 1242, -1, -1, 1245, 1246, + 1247, 1529, 1530, -1, -1, 1252, -1, -1, -1, -1, + 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 169, -1, -1, -1, -1, + -1, 2088, 176, 177, 178, 179, 180, 1565, -1, -1, + 184, 185, 186, 187, 188, 189, -1, 191, 192, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 371, -1, -1, -1, 483, -1, -1, -1, -1, -1, - -1, -1, -1, 944, -1, -1, -1, -1, -1, -1, - -1, 952, 953, 954, -1, 956, -1, -1, -1, -1, - -1, -1, -1, 964, -1, -1, -1, -1, 409, -1, - -1, -1, -1, -1, 523, 524, -1, 978, -1, -1, - -1, -1, 983, -1, -1, -1, -1, -1, -1, -1, - -1, 992, -1, -1, -1, -1, -1, 998, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1008, 1009, 1010, - 1011, -1, -1, 1014, -1, -1, 565, 566, 567, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 577, 578, - -1, -1, -1, -1, -1, -1, 12, 13, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 596, -1, -1, - -1, -1, -1, -1, 603, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1066, -1, -1, -1, -1, - -1, -1, -1, 622, -1, -1, -1, 1078, -1, 1080, - -1, 1082, 6, 1084, -1, -1, -1, 12, 13, -1, - -1, -1, 641, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1106, -1, -1, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, - -1, -1, -1, -1, 100, 101, 102, 103, -1, 105, - 106, 107, -1, -1, 1135, 111, -1, -1, -1, -1, - -1, -1, -1, 1144, 1145, -1, 1147, 1148, -1, 1150, - 1151, 1152, -1, -1, -1, -1, -1, 1158, -1, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, - 95, -1, 148, 149, 150, 100, 101, 102, 103, -1, - 105, 106, 107, 1184, -1, -1, 111, -1, 1189, -1, - -1, -1, -1, -1, -1, -1, -1, 746, -1, -1, - -1, 750, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 762, 763, -1, -1, -1, -1, -1, - -1, -1, -1, 148, 149, 150, -1, -1, -1, -1, - 1231, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1242, 1243, 219, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1257, 1258, -1, -1, - -1, -1, 703, 812, -1, -1, 707, -1, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, -1, 12, 13, -1, 210, -1, -1, -1, - -1, -1, -1, -1, 219, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1305, 1306, 1307, -1, -1, -1, - -1, 860, -1, 862, -1, 1316, 865, 1318, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1329, 878, - -1, 880, -1, 882, -1, 884, 1337, -1, -1, -1, - 889, 1342, -1, -1, -1, 894, -1, 788, -1, -1, - -1, -1, -1, -1, -1, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 6, 95, 1368, 1369, 1370, - -1, 100, 101, 102, 103, -1, 105, 106, 107, -1, - -1, -1, 111, -1, -1, 224, -1, -1, -1, -1, - 229, -1, -1, -1, 233, -1, -1, -1, 1399, -1, - -1, 240, -1, -1, -1, -1, -1, 956, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 148, - 149, 150, 1423, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1437, -1, -1, -1, - -1, 1442, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1457, 1458, -1, 1008, - 1009, 1010, 1011, 1464, 1465, -1, -1, -1, 1469, -1, - -1, -1, -1, -1, 915, -1, -1, 1478, 919, -1, - -1, -1, 923, -1, -1, -1, -1, 1488, 1489, 1490, - 219, 1492, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1504, 12, 13, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1517, 1066, -1, -1, - 1521, -1, -1, 1524, -1, 966, -1, -1, -1, -1, - 1531, 1532, 1533, 1534, 1535, 1536, 1537, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1547, -1, -1, -1, - -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 1566, -1, -1, -1, 210, - -1, 12, 13, -1, -1, -1, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, -1, 95, 1589, 1590, - -1, -1, 100, 101, 102, 103, 1597, 105, 106, 107, - -1, -1, -1, 111, -1, -1, 445, -1, -1, -1, - -1, 1052, 1053, -1, 1055, -1, 1057, 1058, -1, -1, - 1061, 1062, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1636, -1, -1, -1, -1, - 148, 149, 150, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 1654, 95, 1656, -1, -1, -1, 100, - 101, 102, 103, -1, 105, 106, 107, -1, -1, -1, - 111, -1, -1, -1, 1675, -1, 1677, -1, -1, 1680, - -1, -1, -1, -1, 523, 524, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1696, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 148, 149, 150, - -1, 219, -1, 1714, -1, -1, -1, -1, 1719, -1, - -1, -1, 1163, 1164, 1165, -1, 565, 566, 567, -1, - 6, -1, -1, -1, -1, -1, -1, 1178, -1, 1740, - -1, -1, -1, -1, -1, -1, 1747, -1, 1749, -1, - 1751, -1, -1, -1, -1, -1, -1, 596, -1, -1, - 1761, -1, -1, -1, -1, -1, 1767, 1768, 1769, 1770, - 1771, 1772, -1, -1, -1, -1, -1, -1, 219, -1, - -1, -1, -1, 622, -1, -1, -1, -1, 1337, -1, - -1, -1, -1, 1794, 1795, -1, -1, -1, 1799, -1, - -1, -1, 641, 1244, -1, -1, -1, -1, -1, -1, - 1811, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1822, -1, -1, -1, -1, -1, 1268, -1, -1, - -1, -1, -1, 1274, -1, -1, -1, -1, -1, 1280, - -1, 1282, 1283, 1284, -1, -1, -1, 1288, 1289, -1, - 1291, -1, 1293, 1854, 1295, -1, 1297, 1298, 1299, 1860, - -1, -1, -1, -1, -1, -1, -1, -1, 1869, -1, - -1, -1, -1, -1, -1, 1316, 12, 13, -1, -1, - -1, -1, 1883, -1, -1, 1886, -1, -1, 1889, -1, - 1331, -1, 1893, -1, 1335, -1, 1897, -1, 1899, 1900, - 1901, 1902, 1903, 1904, -1, -1, -1, 746, -1, -1, - -1, 750, 1913, -1, -1, 1916, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - -1, -1, -1, -1, 210, -1, -1, -1, -1, 1488, - 1489, -1, -1, -1, -1, -1, -1, 6, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, -1, 95, - -1, 1962, -1, -1, 100, 101, 102, 103, 1517, 105, - 106, 107, 1521, 812, -1, 111, 1977, -1, 1979, 1980, - 1981, 1982, 1983, -1, -1, -1, -1, -1, -1, 7, - 8, -1, -1, -1, -1, 1436, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1449, -1, - 7, -1, 148, 149, 150, 607, -1, 2018, 2019, -1, - -1, 860, -1, 862, -1, -1, 865, -1, 2029, 2030, - 2031, 2032, -1, -1, -1, -1, -1, -1, -1, 878, - -1, 880, -1, 882, -1, 884, -1, -1, -1, -1, - 889, -1, -1, -1, -1, 894, -1, 649, 650, 651, - 652, 653, 654, 655, 656, 657, 658, 659, -1, 661, - 662, 663, 664, 665, 666, 667, -1, -1, 1519, 671, - 672, 673, -1, 219, -1, 677, 678, -1, 680, -1, - -1, -1, -1, 685, 686, 687, -1, 689, -1, -1, - 1541, -1, -1, -1, 696, 697, -1, 1656, -1, 1550, - -1, -1, -1, -1, -1, -1, -1, 956, -1, 1560, - -1, -1, 714, -1, 1565, -1, -1, -1, -1, -1, - -1, 1680, 8, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 1696, -1, -1, - 1591, 210, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 8, -1, 1008, - 1009, 1010, 1011, 1614, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, -1, -1, - -1, 1740, 210, 8, -1, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - 1651, -1, 1761, 210, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1066, -1, -1, + -1, -1, 206, 207, -1, -1, -1, 211, -1, -1, + -1, -1, 216, -1, 218, -1, 220, 221, -1, 223, + 5, 225, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, -1, -1, -1, 98, -1, 100, -1, + -1, -1, 1375, 105, 106, 107, 108, -1, 110, 111, + 112, -1, -1, -1, 116, -1, -1, -1, -1, 44, + 45, 46, 47, 48, 49, 50, 51, 52, -1, -1, + -1, -1, 57, 58, 59, 60, -1, -1, 1385, -1, + 65, 66, 67, -1, -1, 70, -1, -1, -1, -1, + -1, 153, 154, 155, 1401, -1, 81, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 1418, -1, -1, -1, 215, 1423, -1, -1, -1, + 1708, -1, -1, -1, 224, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, -1, + 1728, -1, -1, 215, -1, -1, -1, -1, 1455, 1456, + -1, 223, 1459, 1460, -1, -1, -1, 1745, -1, -1, + -1, -1, 224, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, -1, -1, + -1, 215, -1, -1, -1, -1, -1, -1, -1, -1, + 224, -1, 177, 178, 179, -1, 1529, 1530, -1, -1, + -1, 1789, -1, -1, 189, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, -1, -1, - -1, -1, 9, 10, 11, -1, -1, 14, 15, 16, + -1, 1809, 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, 1718, 870, -1, - -1, -1, -1, -1, 1725, 1726, 53, 54, 55, 56, - -1, -1, -1, -1, 61, -1, 1737, -1, -1, -1, + 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, 1756, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - -1, -1, -1, -1, 210, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1897, -1, - 1899, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 8, -1, -1, -1, 210, - -1, -1, -1, -1, 1815, -1, -1, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 8, -1, 1834, -1, 210, -1, -1, -1, -1, - -1, -1, -1, -1, 171, -1, -1, -1, 175, -1, - -1, -1, 179, 180, 181, 182, 183, -1, -1, -1, - 187, 1013, -1, -1, -1, -1, -1, -1, 1977, -1, - -1, -1, -1, -1, 201, 202, -1, -1, -1, 206, - -1, -1, -1, -1, 211, -1, -1, -1, -1, 216, - -1, 218, -1, -1, 1046, 1047, -1, -1, -1, -1, - -1, -1, -1, -1, 3, 4, 5, -1, -1, -1, - 9, 10, 11, -1, 1915, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 1337, -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, -1, -1, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, 2015, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - -1, -1, -1, 210, -1, -1, -1, -1, -1, -1, - 1192, -1, -1, -1, -1, -1, 1198, 1199, 1200, 1201, - 1202, -1, 1204, -1, 1206, 1207, -1, 1209, 1210, -1, - -1, 1213, 1214, 1215, -1, 164, -1, -1, 1220, -1, - -1, -1, 171, 172, 173, 174, 175, -1, -1, -1, - 179, 180, 181, 182, 183, 184, -1, 186, 187, 1488, - 1489, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 201, 202, -1, -1, -1, 206, -1, -1, - -1, -1, 211, -1, 213, -1, 215, 216, -1, 218, - -1, 220, -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, 109, -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, 1347, -1, -1, -1, -1, - 80, -1, -1, -1, 84, -1, -1, 87, -1, -1, - 90, 1363, 92, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 106, 1379, -1, -1, - -1, -1, 1384, 113, 114, 115, 116, 117, -1, -1, - 120, 121, 122, -1, -1, 125, -1, -1, 128, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, 1416, 1417, -1, 210, 1420, 1421, + -1, 1598, 1599, 80, -1, 1602, 1603, 84, -1, -1, + 87, 1608, 1609, 90, -1, 92, -1, -1, -1, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, 111, -1, -1, 215, -1, -1, + -1, 118, 119, 120, 121, 122, 224, -1, 125, 126, + 127, -1, -1, 130, -1, -1, 133, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, -1, 215, -1, 1955, 1956, 1957, + 1958, 1959, -1, -1, 224, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 176, + -1, -1, -1, 180, -1, 1728, -1, 184, 185, 186, + 187, 188, -1, -1, -1, 192, -1, -1, 1715, 1716, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 206, + 207, -1, -1, -1, 211, -1, -1, -1, -1, 216, + -1, -1, -1, -1, 221, -1, 223, 224, -1, -1, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, -1, -1, 1789, 2045, 215, -1, + -1, -1, -1, -1, -1, -1, -1, 224, -1, -1, + -1, -1, -1, -1, 1013, 1014, 1809, -1, 3, 4, + 1019, 1020, -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, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, -1, 111, -1, -1, 215, + -1, -1, -1, 118, 119, 120, 121, 122, 224, -1, + 125, 126, 127, -1, -1, 130, -1, -1, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1680, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 171, -1, -1, -1, 175, -1, -1, -1, 179, - 180, 181, 182, 183, -1, -1, -1, 187, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, - -1, 201, 202, -1, -1, -1, 206, -1, -1, -1, - -1, 211, -1, -1, -1, -1, 216, -1, 218, 219, - -1, 1740, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, -1, 3, 4, -1, - 210, -1, 1761, 9, 10, 11, -1, 217, 14, 15, + -1, -1, 1955, 1956, 1957, 1958, 1959, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, -1, 215, -1, -1, -1, -1, + -1, 176, -1, -1, 224, 180, -1, -1, -1, 184, + 185, 186, 187, 188, -1, -1, -1, 192, -1, -1, + -1, -1, -1, -1, 1213, 1214, -1, -1, -1, 1218, + 1219, 206, 207, -1, -1, -1, 211, -1, -1, -1, + -1, 216, -1, -1, -1, -1, 221, -1, -1, 224, + -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, + -1, -1, 2045, 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, 1553, 1554, -1, -1, 1557, 1558, 53, 54, 55, - 56, 1563, 1564, -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, + 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, 12, 13, -1, 65, + 66, 67, 2079, -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, -1, -1, -1, -1, -1, -1, -1, -1, - 106, -1, -1, -1, -1, -1, -1, 113, 114, 115, - 116, 117, -1, -1, 120, 121, 122, -1, -1, 125, - -1, -1, 128, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1897, -1, - 1899, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 1667, 1668, -1, -1, 210, - -1, -1, -1, -1, -1, 171, -1, -1, -1, 175, - -1, -1, -1, 179, 180, 181, 182, 183, -1, -1, - -1, 187, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 201, 202, -1, -1, -1, - 206, -1, -1, -1, -1, 211, -1, -1, -1, -1, - 216, -1, -1, 219, 3, 4, 5, -1, 1977, -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, 12, 13, -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, -1, - -1, -1, -1, -1, -1, -1, -1, 106, -1, -1, - -1, -1, -1, -1, 113, 114, 115, 116, 117, -1, - -1, 120, 121, 122, -1, -1, 125, -1, -1, 128, - -1, -1, -1, -1, -1, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, -1, 95, -1, -1, -1, - -1, 100, 101, 102, 103, -1, 105, 106, 107, -1, - -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 171, 172, 173, 174, 175, 126, -1, -1, - 179, 180, 181, 182, 183, 184, -1, 186, 187, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 148, - 149, 150, 201, 202, -1, -1, -1, 206, -1, -1, - -1, -1, 211, -1, -1, -1, -1, 216, -1, 218, - 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, 12, - 13, -1, 65, 66, 67, 2007, -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, -1, -1, -1, -1, -1, - -1, -1, -1, 106, -1, -1, -1, -1, -1, -1, - 113, 114, 115, 116, 117, -1, -1, 120, 121, 122, - -1, -1, 125, -1, -1, 128, -1, -1, -1, -1, - -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, -1, 95, -1, -1, -1, -1, 100, 101, 102, - 103, -1, 105, 106, 107, -1, -1, -1, 111, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 171, 172, - 173, 174, 175, -1, -1, -1, 179, 180, 181, 182, - 183, 184, -1, 186, 187, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 148, 149, 150, 201, 202, - -1, -1, -1, 206, -1, -1, -1, -1, 211, -1, - 3, 4, 5, 216, -1, 218, 9, 10, 11, -1, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, -1, 111, -1, -1, 215, -1, + -1, -1, 118, 119, 120, 121, 122, 224, -1, 125, + 126, 127, -1, -1, 130, -1, -1, 133, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, + -1, -1, 98, -1, 100, -1, -1, -1, -1, 105, + 106, 107, 108, -1, 110, 111, 112, -1, -1, -1, + 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 176, 177, 178, 179, 180, -1, -1, -1, 184, 185, + 186, 187, 188, 189, -1, 191, 192, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 153, 154, 155, + 206, 207, -1, -1, -1, 211, -1, -1, -1, -1, + 216, -1, 3, 4, 5, 221, -1, 223, 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, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, -1, + 111, -1, -1, 215, -1, -1, -1, 118, 119, 120, + 121, 122, 224, -1, 125, 126, 127, -1, -1, 130, + -1, -1, 133, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, -1, -1, + -1, 215, -1, -1, -1, -1, -1, -1, -1, -1, + 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 176, 177, 178, 179, 180, + -1, -1, -1, 184, 185, 186, 187, 188, 189, -1, + 191, 192, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 206, 207, -1, -1, -1, + 211, -1, -1, -1, -1, 216, -1, 3, 4, 5, + 221, -1, 223, 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, 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, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 171, 172, - 173, 174, 175, -1, -1, -1, 179, 180, 181, 182, - 183, 184, -1, 186, 187, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 201, 202, - -1, -1, -1, 206, -1, -1, -1, -1, 211, -1, - -1, -1, -1, 216, -1, 218, -1, -1, -1, -1, - -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, -1, -1, -1, 210, - -1, 171, 172, 173, 174, 175, 217, -1, 219, 179, - 180, 181, 182, 183, 184, -1, 186, 187, -1, -1, + 73, 74, -1, -1, -1, -1, -1, 80, 81, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, -1, -1, -1, 215, -1, -1, + 176, 177, 178, 179, 180, -1, 224, -1, 184, 185, + 186, 187, 188, 189, -1, 191, 192, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 201, 202, -1, -1, -1, 206, -1, -1, -1, - -1, 211, -1, 3, 4, 5, 216, -1, 218, 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, -1, 65, 66, 67, -1, -1, - 70, -1, 72, 73, 74, -1, -1, -1, -1, -1, - 80, 81, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, -1, -1, -1, -1, - 210, -1, -1, -1, -1, -1, -1, 217, -1, 219, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, -1, -1, -1, -1, 210, -1, - 212, -1, 214, -1, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, -1, 95, -1, -1, -1, -1, - 100, 101, 102, 103, -1, 105, 106, 107, -1, -1, - -1, 111, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 171, 172, 173, 174, 175, -1, -1, -1, 179, - 180, 181, 182, 183, 184, -1, 186, 187, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 148, 149, - 150, 201, 202, -1, -1, -1, 206, -1, -1, -1, - -1, 211, -1, 3, 4, 5, 216, -1, 218, 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, 219, - -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, -1, 4, - 5, -1, -1, -1, -1, -1, 106, -1, -1, -1, - -1, -1, -1, 113, 114, 115, 116, 117, -1, -1, - 120, 121, 122, -1, -1, 125, -1, -1, 128, -1, - -1, -1, -1, -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, 171, -1, -1, -1, 175, 81, -1, -1, 179, - 180, 181, 182, 183, -1, -1, -1, 187, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 201, 202, -1, -1, -1, 206, -1, -1, -1, - -1, 211, -1, 3, 4, 5, 216, -1, 218, 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, 172, 173, 174, - -1, 61, -1, -1, -1, -1, -1, -1, -1, 184, - -1, 186, 72, 73, 74, -1, -1, -1, -1, -1, - 80, -1, -1, -1, 84, -1, -1, 87, -1, -1, - 90, 5, 92, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 106, -1, -1, -1, - -1, -1, -1, 113, 114, 115, 116, 117, -1, -1, - 120, 121, 122, -1, -1, 125, -1, -1, 128, -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, 171, -1, -1, -1, 175, -1, -1, -1, 179, - 180, 181, 182, 183, -1, -1, -1, 187, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 201, 202, -1, -1, -1, 206, -1, -1, -1, - -1, 211, -1, 3, 4, -1, 216, -1, 218, 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, 172, 173, - 174, -1, -1, 53, 54, 55, 56, -1, -1, -1, - 184, 61, 186, -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, -1, -1, - -1, -1, -1, -1, -1, -1, 106, -1, -1, -1, - -1, -1, -1, 113, 114, 115, 116, 117, -1, -1, - 120, 121, 122, -1, -1, 125, -1, -1, 128, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, -1, -1, 219, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 171, -1, -1, -1, 175, -1, -1, -1, 179, - 180, 181, 182, 183, -1, -1, -1, 187, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 201, 202, -1, -1, -1, 206, -1, -1, -1, - -1, 211, -1, 3, 4, -1, 216, -1, 218, 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, -1, -1, - -1, -1, -1, -1, -1, -1, 106, -1, -1, -1, - -1, -1, -1, 113, 114, 115, 116, 117, -1, -1, - 120, 121, 122, -1, -1, 125, -1, -1, 128, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, -1, -1, 219, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 171, -1, -1, -1, 175, -1, -1, -1, 179, - 180, 181, 182, 183, -1, -1, -1, 187, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 201, 202, -1, -1, -1, 206, -1, -1, -1, - -1, 211, -1, 3, 4, -1, 216, -1, 218, 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, -1, -1, - -1, -1, -1, -1, -1, -1, 106, -1, -1, -1, - -1, -1, -1, 113, 114, 115, 116, 117, -1, -1, - 120, 121, 122, -1, -1, 125, -1, -1, 128, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, -1, -1, 219, -1, -1, -1, + 206, 207, -1, -1, -1, 211, -1, -1, -1, -1, + 216, -1, -1, -1, -1, 221, -1, 223, -1, -1, + -1, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, -1, -1, -1, -1, 215, + -1, -1, -1, 176, 177, 178, 179, 180, 224, -1, + -1, 184, 185, 186, 187, 188, 189, -1, 191, 192, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 171, -1, -1, -1, 175, -1, -1, -1, 179, - 180, 181, 182, 183, -1, -1, -1, 187, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 201, 202, -1, -1, -1, 206, -1, -1, -1, - -1, 211, -1, 3, 4, -1, 216, -1, 218, 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, -1, -1, - -1, -1, -1, -1, -1, -1, 106, -1, -1, -1, - -1, -1, -1, 113, 114, 115, 116, 117, -1, -1, - 120, 121, 122, -1, -1, 125, -1, -1, 128, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, -1, -1, 219, -1, -1, -1, + -1, -1, -1, 206, 207, -1, -1, -1, 211, -1, + -1, -1, -1, 216, -1, 3, 4, 5, 221, -1, + 223, 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, -1, 65, 66, 67, + -1, -1, 70, -1, 72, 73, 74, -1, -1, -1, + -1, -1, 80, 81, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, -1, -1, + -1, -1, 215, -1, -1, -1, -1, -1, -1, -1, + -1, 224, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, -1, -1, -1, -1, + 215, -1, 217, -1, 219, -1, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, + 98, -1, 100, -1, -1, -1, -1, 105, 106, 107, + 108, -1, 110, 111, 112, -1, -1, -1, 116, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 176, 177, + 178, 179, 180, -1, -1, -1, 184, 185, 186, 187, + 188, 189, -1, 191, 192, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 153, 154, 155, 206, 207, + -1, -1, -1, 211, -1, -1, -1, -1, 216, -1, + 3, 4, 5, 221, -1, 223, 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, - -1, 171, -1, -1, -1, 175, -1, -1, -1, 179, - 180, 181, 182, 183, -1, -1, -1, 187, -1, -1, + 53, 54, 55, 56, -1, -1, 224, -1, 61, 12, + 13, -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, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, 111, -1, + -1, 215, -1, -1, -1, 118, 119, 120, 121, 122, + 224, -1, 125, 126, 127, -1, -1, 130, -1, -1, + 133, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, -1, -1, -1, 98, -1, 100, -1, -1, + -1, -1, 105, 106, 107, 108, -1, 110, 111, 112, + -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 176, -1, -1, -1, 180, -1, -1, + -1, 184, 185, 186, 187, 188, -1, -1, -1, 192, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 201, 202, -1, -1, -1, 206, -1, -1, -1, - -1, 211, -1, 3, 4, -1, 216, -1, 218, 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, -1, -1, - -1, -1, -1, -1, -1, -1, 106, -1, -1, -1, - -1, -1, -1, 113, 114, 115, 116, 117, -1, -1, - 120, 121, 122, -1, -1, 125, -1, -1, 128, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, -1, -1, 219, -1, -1, -1, + 153, 154, 155, 206, 207, -1, -1, -1, 211, -1, + -1, -1, -1, 216, -1, 3, 4, 5, 221, -1, + 223, 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, 224, -1, 61, 12, 13, -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, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, -1, 111, -1, -1, 215, -1, -1, -1, + 118, 119, 120, 121, 122, 224, -1, 125, 126, 127, + -1, -1, 130, -1, -1, 133, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, + 98, -1, 100, -1, -1, -1, -1, 105, 106, 107, + 108, -1, 110, 111, 112, -1, -1, -1, 116, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 176, -1, + -1, -1, 180, -1, -1, -1, 184, 185, 186, 187, + 188, -1, -1, -1, 192, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 153, 154, 155, 206, 207, + -1, -1, -1, 211, -1, -1, -1, -1, 216, -1, + 3, 4, -1, 221, -1, 223, 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, - -1, 171, -1, -1, -1, 175, -1, -1, -1, 179, - 180, 181, 182, 183, -1, -1, -1, 187, -1, -1, + 53, 54, 55, 56, -1, -1, 224, -1, 61, 12, + 13, -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, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, 111, -1, + -1, 215, -1, -1, -1, 118, 119, 120, 121, 122, + 224, -1, 125, 126, 127, -1, -1, 130, -1, -1, + 133, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, -1, -1, -1, 98, -1, 100, -1, -1, + -1, -1, 105, 106, 107, 108, -1, 110, 111, 112, + -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 176, -1, -1, -1, 180, -1, -1, + -1, 184, 185, 186, 187, 188, -1, -1, -1, 192, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 201, 202, -1, -1, -1, 206, -1, -1, -1, - -1, 211, -1, 3, 4, -1, 216, -1, 218, 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, -1, -1, - -1, -1, -1, -1, -1, -1, 106, -1, -1, -1, - -1, -1, -1, 113, 114, 115, 116, 117, -1, -1, - 120, 121, 122, -1, -1, 125, -1, -1, 128, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, -1, -1, 219, -1, -1, -1, + 153, 154, 155, 206, 207, -1, -1, -1, 211, -1, + -1, -1, -1, 216, -1, 3, 4, -1, 221, -1, + 223, 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, 224, -1, 61, 12, 13, -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, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, -1, 111, -1, -1, 215, -1, -1, -1, + 118, 119, 120, 121, 122, 224, -1, 125, 126, 127, + -1, -1, 130, -1, -1, 133, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, + 98, -1, 100, -1, -1, -1, -1, 105, 106, 107, + 108, -1, 110, 111, 112, -1, -1, -1, 116, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 176, -1, + -1, -1, 180, -1, -1, -1, 184, 185, 186, 187, + 188, -1, -1, -1, 192, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 153, 154, 155, 206, 207, + -1, -1, -1, 211, -1, -1, -1, -1, 216, -1, + 3, 4, -1, 221, -1, 223, 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, - -1, 171, -1, -1, -1, 175, -1, -1, -1, 179, - 180, 181, 182, 183, -1, -1, -1, 187, -1, -1, + 53, 54, 55, 56, -1, -1, 224, -1, 61, 12, + 13, -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, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, 111, -1, + -1, 215, -1, -1, -1, 118, 119, 120, 121, 122, + 224, -1, 125, 126, 127, -1, -1, 130, -1, -1, + 133, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, -1, -1, -1, 98, -1, 100, -1, -1, + -1, -1, 105, 106, 107, 108, -1, 110, 111, 112, + -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 176, -1, -1, -1, 180, -1, -1, + -1, 184, 185, 186, 187, 188, -1, -1, -1, 192, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 201, 202, -1, -1, -1, 206, -1, -1, -1, - -1, 211, -1, 3, 4, -1, 216, -1, 218, 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, -1, -1, - -1, -1, -1, -1, -1, -1, 106, -1, -1, -1, - -1, -1, -1, 113, 114, 115, 116, 117, -1, -1, - 120, 121, 122, -1, -1, 125, -1, -1, 128, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, -1, -1, 219, -1, -1, -1, + 153, 154, 155, 206, 207, -1, -1, -1, 211, -1, + -1, -1, -1, 216, -1, 3, 4, -1, 221, -1, + 223, 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, 224, -1, 61, 12, 13, -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, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, -1, 111, -1, -1, 215, -1, -1, -1, + 118, 119, 120, 121, 122, 224, -1, 125, 126, 127, + -1, -1, 130, -1, -1, 133, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, + 98, -1, 100, -1, -1, -1, -1, 105, 106, 107, + 108, -1, 110, 111, 112, -1, -1, -1, 116, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 176, -1, + -1, -1, 180, -1, -1, -1, 184, 185, 186, 187, + 188, -1, -1, -1, 192, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 153, 154, 155, 206, 207, + -1, -1, -1, 211, -1, -1, -1, -1, 216, -1, + 3, 4, -1, 221, -1, 223, 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, - -1, 171, -1, -1, -1, 175, -1, -1, -1, 179, - 180, 181, 182, 183, -1, -1, -1, 187, -1, -1, + 53, 54, 55, 56, -1, -1, 224, -1, 61, 12, + 13, -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, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, 111, -1, + -1, 215, -1, -1, -1, 118, 119, 120, 121, 122, + 224, -1, 125, 126, 127, -1, -1, 130, -1, -1, + 133, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, -1, -1, -1, 98, -1, 100, -1, -1, + -1, -1, 105, 106, 107, 108, -1, 110, 111, 112, + -1, -1, -1, 116, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 176, -1, -1, -1, 180, -1, -1, + -1, 184, 185, 186, 187, 188, -1, -1, -1, 192, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 201, 202, -1, -1, -1, 206, -1, -1, -1, - -1, 211, -1, 3, 4, -1, 216, -1, 218, 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, -1, -1, - -1, -1, -1, -1, -1, -1, 106, -1, -1, -1, - -1, -1, -1, 113, 114, 115, 116, 117, -1, -1, - 120, 121, 122, -1, -1, 125, -1, -1, 128, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, -1, -1, 219, -1, -1, -1, + 153, 154, 155, 206, 207, -1, -1, -1, 211, -1, + -1, -1, -1, 216, -1, 3, 4, -1, 221, -1, + 223, 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, 224, -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, + -1, -1, -1, -1, -1, -1, -1, 4, 5, -1, + -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, + 118, 119, 120, 121, 122, -1, -1, 125, 126, 127, + -1, -1, 130, -1, -1, 133, -1, -1, -1, -1, + -1, -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, 176, -1, + -1, -1, 180, -1, 81, -1, 184, 185, 186, 187, + 188, -1, -1, -1, 192, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 206, 207, + -1, -1, -1, 211, -1, -1, -1, -1, 216, -1, + 3, 4, -1, 221, -1, 223, 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, - -1, 171, -1, -1, -1, 175, -1, -1, -1, 179, - 180, 181, 182, 183, -1, -1, -1, 187, -1, -1, + 53, 54, 55, 56, -1, -1, -1, -1, 61, -1, + 177, 178, 179, -1, -1, -1, -1, -1, -1, 72, + 73, 74, 189, -1, 191, 192, -1, 80, -1, -1, + -1, 84, -1, -1, 87, -1, -1, 90, -1, 92, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 201, 202, -1, -1, -1, 206, -1, -1, -1, - -1, 211, -1, 3, 4, -1, 216, -1, 218, 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, -1, -1, - -1, -1, -1, -1, -1, -1, 106, -1, -1, -1, - -1, -1, -1, 113, 114, 115, 116, 117, -1, -1, - 120, 121, 122, -1, -1, 125, -1, -1, 128, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, -1, -1, 219, -1, -1, -1, + -1, -1, 4, 5, -1, -1, -1, -1, 111, -1, + -1, -1, -1, -1, -1, 118, 119, 120, 121, 122, + -1, -1, 125, 126, 127, -1, -1, 130, -1, -1, + 133, -1, -1, -1, -1, -1, -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, 176, -1, -1, -1, 180, -1, 81, + -1, 184, 185, 186, 187, 188, -1, -1, -1, 192, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 171, -1, -1, -1, 175, -1, -1, -1, 179, - 180, 181, 182, 183, -1, -1, -1, 187, -1, -1, + -1, -1, -1, 206, 207, -1, -1, -1, 211, -1, + -1, -1, -1, 216, -1, 3, 4, -1, 221, -1, + 223, 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, 177, 178, 179, -1, -1, + -1, -1, -1, -1, 72, 73, 74, 189, -1, 191, + 192, -1, 80, -1, -1, -1, 84, -1, -1, 87, + -1, -1, 90, -1, 92, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4, 5, -1, + -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, + 118, 119, 120, 121, 122, -1, -1, 125, 126, 127, + -1, -1, 130, -1, -1, 133, -1, -1, -1, -1, + -1, -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, 176, -1, + -1, -1, 180, -1, 81, -1, 184, 185, 186, 187, + 188, -1, -1, -1, 192, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 206, 207, + -1, -1, -1, 211, -1, -1, -1, -1, 216, -1, + 3, 4, -1, 221, -1, 223, 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, - -1, 201, 202, -1, -1, -1, 206, -1, -1, -1, - -1, 211, -1, 3, 4, -1, 216, -1, 218, 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, -1, -1, - -1, -1, -1, -1, -1, -1, 106, -1, -1, -1, - -1, -1, -1, 113, 114, 115, 116, 117, -1, -1, - 120, 121, 122, -1, -1, 125, -1, -1, 128, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, -1, -1, 219, -1, -1, -1, + 53, 54, 55, 56, -1, -1, -1, -1, 61, -1, + 177, 178, 179, -1, -1, -1, -1, -1, -1, 72, + 73, 74, 189, -1, 191, -1, -1, 80, -1, -1, + -1, 84, -1, -1, 87, -1, -1, 90, -1, 92, + -1, -1, -1, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, 111, -1, + -1, 215, -1, -1, -1, 118, 119, 120, 121, 122, + 224, -1, 125, 126, 127, -1, -1, 130, -1, -1, + 133, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, -1, -1, -1, -1, 215, + -1, -1, -1, -1, -1, -1, -1, -1, 224, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 171, -1, -1, -1, 175, -1, -1, -1, 179, - 180, 181, 182, 183, -1, -1, -1, 187, -1, -1, + -1, -1, -1, 176, -1, -1, -1, 180, -1, -1, + -1, 184, 185, 186, 187, 188, -1, -1, -1, 192, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 201, 202, -1, -1, -1, 206, -1, -1, -1, - -1, 211, -1, 3, 4, 5, 216, -1, 218, 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, 4, 5, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - -1, -1, -1, -1, 210, -1, -1, -1, -1, -1, - -1, -1, -1, 219, -1, -1, -1, -1, -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, - -1, 81, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 171, 172, 173, 174, 175, -1, -1, -1, 179, - 180, 181, 182, 183, 184, -1, 186, 187, -1, -1, + -1, -1, -1, 206, 207, -1, -1, -1, 211, -1, + -1, -1, -1, 216, -1, 3, 4, -1, 221, -1, + 223, 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, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, -1, 111, -1, -1, 215, -1, -1, -1, + 118, 119, 120, 121, 122, 224, -1, 125, 126, 127, + -1, -1, 130, -1, -1, 133, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + -1, -1, -1, -1, 215, -1, -1, -1, -1, -1, + -1, -1, -1, 224, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 176, -1, + -1, -1, 180, -1, -1, -1, 184, 185, 186, 187, + 188, -1, -1, -1, 192, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 206, 207, + -1, -1, -1, 211, -1, -1, -1, -1, 216, -1, + 3, 4, 5, 221, -1, 223, 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, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, -1, -1, -1, 215, -1, -1, + -1, -1, -1, -1, -1, -1, 224, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, -1, 215, -1, -1, -1, -1, + -1, -1, -1, -1, 224, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, -1, + -1, -1, -1, 215, -1, -1, -1, -1, -1, -1, + -1, 223, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 176, 177, 178, 179, 180, -1, -1, + -1, 184, 185, 186, 187, 188, 189, -1, 191, 192, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 201, 202, -1, -1, -1, 206, 3, 4, -1, - -1, 211, -1, 9, 10, 11, 216, -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, 172, 173, 174, -1, -1, 53, 54, 55, - 56, -1, -1, -1, 184, 61, 186, 187, -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, -1, 206, 207, -1, -1, -1, 211, 3, + 4, -1, -1, 216, -1, 9, 10, 11, 221, -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, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 111, -1, -1, + -1, 215, -1, -1, 118, 119, 120, 121, 122, 223, + -1, 125, 126, 127, -1, -1, 130, -1, -1, 133, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, -1, -1, -1, -1, 215, -1, + 217, -1, 219, -1, -1, 222, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + -1, -1, 176, -1, 215, -1, 180, -1, 219, -1, + 184, 185, 186, 187, 188, -1, -1, -1, 192, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 106, -1, -1, -1, -1, -1, -1, 113, 114, 115, - 116, 117, -1, -1, 120, 121, 122, -1, -1, 125, - -1, -1, 128, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, -1, -1, - -1, 210, -1, -1, -1, -1, -1, -1, -1, -1, - 219, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 171, -1, -1, -1, 175, - -1, -1, -1, 179, 180, 181, 182, 183, -1, -1, - -1, 187, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 201, 202, -1, -1, -1, - 206, 3, 4, -1, -1, 211, -1, 9, 10, 11, - 216, -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, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 53, 54, 55, 56, 210, -1, -1, -1, 61, - -1, -1, -1, -1, 219, -1, -1, -1, 3, 4, - 72, 73, 74, -1, 9, 10, 11, -1, 80, 14, + -1, -1, 206, 207, -1, -1, -1, 211, 3, 4, + -1, -1, 216, -1, 9, 10, 11, 221, -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, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 53, 54, - 55, 56, 210, -1, -1, -1, 61, -1, -1, -1, - -1, 219, -1, -1, -1, -1, -1, 72, 73, 74, - -1, -1, -1, -1, -1, 80, -1, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, -1, -1, 171, - -1, -1, -1, 175, 219, -1, -1, 179, 180, 181, - 182, 183, -1, -1, -1, 187, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 201, - 202, -1, -1, -1, 206, -1, -1, -1, -1, 211, - 212, -1, -1, -1, 216, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - -1, -1, -1, 210, -1, -1, 171, -1, -1, -1, - 175, -1, 219, -1, 179, 180, 181, 182, 183, -1, - -1, -1, 187, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 201, 202, -1, -1, - -1, 206, -1, -1, -1, -1, 211, 3, 4, 214, - -1, 216, -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, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 53, 54, 55, - 56, 210, -1, -1, -1, 61, -1, -1, -1, -1, - 219, -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, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 53, 54, 55, 56, 210, -1, - -1, -1, 61, -1, -1, -1, -1, 219, -1, -1, - -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, - -1, 80, -1, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, -1, -1, - -1, 210, -1, -1, -1, 171, -1, -1, -1, 175, - 219, -1, -1, 179, 180, 181, 182, 183, -1, -1, - -1, 187, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 201, 202, -1, -1, -1, - 206, -1, -1, -1, -1, 211, 212, -1, -1, -1, - 216, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, -1, -1, -1, 210, - -1, -1, 171, -1, -1, -1, 175, -1, 219, -1, - 179, 180, 181, 182, 183, -1, -1, -1, 187, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 201, 202, -1, -1, -1, 206, -1, -1, - -1, -1, 211, 3, 4, 214, 6, 216, -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, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 53, 54, 55, 56, 210, -1, -1, - -1, 61, -1, -1, -1, -1, 219, -1, -1, -1, - -1, -1, 72, 73, 74, 3, 4, -1, 6, -1, - 80, 9, 10, 11, -1, -1, 14, 15, 16, 17, + 35, 36, -1, -1, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 53, 54, + 55, 56, 215, -1, 217, -1, 61, -1, -1, 222, + -1, -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, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 53, 54, 55, 56, 210, - -1, -1, -1, 61, -1, -1, -1, -1, 219, -1, + -1, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 53, 54, 55, 56, 215, + -1, -1, -1, 61, -1, -1, 222, -1, -1, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, - -1, -1, 80, -1, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, -1, -1, - -1, 171, 210, -1, -1, 175, 214, -1, -1, 179, - 180, 181, 182, 183, -1, -1, -1, 187, -1, -1, + -1, -1, 80, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, -1, -1, + -1, 215, -1, -1, -1, -1, -1, -1, 222, -1, + -1, 176, -1, -1, -1, 180, -1, -1, -1, 184, + 185, 186, 187, 188, -1, -1, -1, 192, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 201, 202, -1, -1, -1, 206, -1, -1, -1, - -1, 211, -1, -1, -1, -1, 216, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, -1, -1, -1, - -1, -1, -1, 171, 219, -1, -1, 175, -1, -1, - -1, 179, 180, 181, 182, 183, -1, -1, -1, 187, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 201, 202, -1, -1, -1, 206, 3, - 4, -1, -1, 211, -1, 9, 10, 11, 216, -1, + -1, 206, 207, -1, -1, -1, 211, -1, -1, -1, + -1, 216, 217, -1, -1, -1, 221, -1, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, -1, -1, -1, -1, 215, -1, 176, -1, + -1, -1, 180, 222, -1, -1, 184, 185, 186, 187, + 188, -1, -1, -1, 192, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 206, 207, + -1, -1, -1, 211, -1, -1, -1, -1, 216, 3, + 4, 219, 6, 221, -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, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 53, - 54, 55, 56, 210, -1, -1, -1, 61, -1, -1, - -1, -1, 219, -1, -1, -1, -1, -1, 72, 73, - 74, -1, -1, -1, -1, -1, 80, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, -1, -1, -1, - -1, -1, -1, -1, 219, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - -1, -1, -1, 210, -1, -1, -1, -1, -1, -1, - -1, -1, 219, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 0, 1, -1, -1, 4, -1, -1, -1, - -1, -1, -1, -1, 12, 13, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 171, -1, -1, - -1, 175, -1, -1, -1, 179, 180, 181, 182, 183, - -1, -1, -1, 187, 42, 43, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 201, 202, -1, - -1, -1, 206, -1, 62, 63, 64, 211, -1, -1, - 68, 69, 216, 71, -1, -1, -1, 75, 76, -1, - 78, 79, -1, -1, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, -1, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, - 118, -1, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, 134, 135, 136, -1, - -1, -1, -1, -1, 142, 4, -1, -1, -1, 147, - 148, 149, 150, 12, 13, 153, -1, 155, -1, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, -1, -1, -1, -1, -1, 176, 177, - 178, -1, -1, 42, 43, -1, -1, 185, -1, 187, + 34, 35, 36, -1, -1, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 53, + 54, 55, 56, 215, -1, -1, -1, 61, -1, -1, + 222, -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, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 53, 54, 55, 56, 215, -1, -1, -1, 61, + -1, -1, 222, -1, -1, -1, -1, -1, -1, -1, + 72, 73, 74, -1, -1, -1, -1, -1, 80, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, -1, -1, -1, 215, -1, -1, + -1, -1, 176, -1, 222, -1, 180, -1, -1, -1, + 184, 185, 186, 187, 188, -1, -1, -1, 192, -1, -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, -1, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, - -1, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, -1, -1, -1, 134, 135, 136, -1, -1, - -1, -1, -1, 142, -1, -1, -1, -1, 147, 148, - 149, 150, 4, 5, 153, -1, 155, -1, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, -1, -1, -1, -1, -1, 176, 177, 178, - -1, -1, -1, -1, -1, -1, 185, -1, 187, -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, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, -1, -1, -1, -1, 210, -1, - -1, -1, -1, -1, -1, -1, -1, 219, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, -1, -1, -1, -1, 210, -1, -1, -1, - -1, -1, -1, -1, -1, 219, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - -1, -1, -1, -1, 210, -1, -1, -1, -1, -1, - -1, -1, -1, 219, -1, -1, -1, -1, -1, -1, - 172, 173, 174, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 184, -1, 186, 187, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - -1, -1, -1, -1, 210, -1, -1, -1, -1, -1, - -1, -1, -1, 219, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, -1, -1, - -1, -1, 210, -1, -1, -1, -1, -1, -1, -1, - -1, 219, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, -1, -1, -1, -1, - 210, -1, -1, -1, -1, -1, -1, -1, -1, 219, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, -1, -1, -1, -1, 210, -1, - -1, -1, -1, -1, -1, -1, 218, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, -1, -1, -1, - -1, -1, -1, 218, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, -1, -1, - -1, -1, 210, -1, -1, -1, -1, -1, -1, -1, - 218, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, -1, -1, -1, 210, - -1, 212, -1, 214, -1, -1, 217, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, 212, -1, -1, - -1, -1, 217, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, -1, -1, - -1, 210, -1, -1, -1, -1, -1, -1, 217, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, 217, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - -1, -1, -1, 210, -1, -1, -1, -1, -1, -1, - 217, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, -1, -1, -1, 210, - -1, -1, -1, -1, -1, -1, 217, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, -1, -1, -1, - -1, -1, 217, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, -1, -1, - -1, 210, -1, -1, -1, -1, -1, -1, 217, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, 217, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - -1, -1, -1, 210, -1, -1, -1, -1, -1, -1, - 217, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, -1, -1, -1, 210, - -1, -1, -1, -1, -1, -1, 217, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, -1, -1, -1, - -1, -1, 217, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, -1, -1, - -1, 210, -1, -1, -1, -1, -1, -1, 217, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, 217, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - -1, -1, -1, 210, -1, -1, -1, -1, -1, -1, - 217, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, -1, -1, -1, 210, - -1, -1, -1, -1, -1, -1, 217, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, -1, -1, -1, - -1, -1, 217, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, -1, -1, - -1, 210, -1, -1, -1, -1, -1, -1, 217, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, 217, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - -1, -1, -1, 210, -1, -1, -1, -1, -1, -1, - 217, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, -1, -1, -1, 210, - -1, -1, -1, -1, -1, -1, 217, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, -1, -1, -1, - -1, -1, 217, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, -1, -1, - -1, 210, -1, -1, -1, -1, -1, -1, 217, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, 217, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - -1, -1, -1, 210, -1, -1, -1, -1, -1, -1, - 217, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, -1, -1, -1, 210, - -1, -1, -1, -1, -1, -1, 217, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, -1, -1, -1, - -1, -1, 217, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, -1, -1, - -1, 210, -1, -1, -1, -1, -1, -1, 217, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, 217, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - -1, -1, -1, 210, -1, -1, -1, -1, -1, -1, - 217, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, -1, -1, -1, 210, - -1, -1, -1, -1, -1, -1, 217, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, -1, -1, -1, - -1, -1, 217, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, -1, -1, - -1, 210, -1, -1, -1, -1, -1, -1, 217, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, 217, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - -1, -1, -1, 210, -1, -1, -1, -1, -1, -1, - 217, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, -1, -1, -1, 210, - -1, -1, -1, -1, -1, -1, 217, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, -1, -1, -1, - -1, -1, 217, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, -1, -1, - -1, 210, -1, -1, -1, -1, -1, -1, 217, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, 217, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - -1, -1, -1, 210, -1, -1, -1, -1, -1, -1, - 217, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, -1, -1, -1, 210, - -1, -1, -1, -1, -1, -1, 217, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, -1, -1, -1, - -1, -1, 217, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, -1, -1, - -1, 210, -1, -1, -1, -1, -1, -1, 217, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, 217, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - -1, -1, -1, 210, -1, -1, -1, -1, -1, -1, - 217, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, -1, -1, -1, 210, - -1, -1, -1, -1, -1, -1, 217, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, -1, -1, -1, - -1, -1, 217, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, -1, -1, - -1, 210, -1, -1, -1, -1, -1, -1, 217, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, 217, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - -1, -1, -1, 210, -1, -1, -1, -1, -1, -1, - 217, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, -1, -1, -1, 210, - -1, -1, -1, -1, -1, -1, 217, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, -1, -1, -1, - -1, -1, 217, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, -1, -1, - -1, 210, -1, -1, -1, -1, -1, -1, 217, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, 217, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - -1, -1, -1, 210, -1, -1, -1, -1, -1, -1, - 217, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, -1, -1, -1, 210, - -1, -1, -1, -1, -1, -1, 217, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, -1, -1, 214, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, -1, -1, -1, -1, 210, -1, - -1, -1, 214, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, -1, -1, - -1, 210, -1, -1, -1, 214, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - -1, -1, -1, -1, 210, -1, -1, -1, 214, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, 214, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, -1, -1, -1, -1, - 210, -1, -1, -1, 214, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - -1, -1, -1, 210, -1, -1, -1, 214, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, -1, -1, -1, -1, 210, -1, -1, -1, - 214, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, -1, -1, -1, 210, - -1, -1, -1, 214, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, -1, -1, - -1, -1, 210, -1, -1, -1, 214, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, -1, -1, 214, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, -1, -1, -1, -1, 210, -1, - -1, -1, 214, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, -1, -1, - -1, 210, -1, -1, -1, 214, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - -1, -1, -1, -1, 210, -1, -1, -1, 214, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, -1, - -1, 214, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, -1, -1, -1, -1, - 210, -1, -1, -1, 214, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - -1, -1, -1, 210, -1, 212, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - -1, -1, -1, -1, 210, -1, 212, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, 212, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, -1, -1, -1, -1, 210, -1, 212, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, 212, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, -1, -1, -1, -1, 210, -1, - 212, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, -1, -1, -1, 210, - -1, 212, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, -1, -1, -1, -1, - 210, -1, 212, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, -1, -1, - -1, 210, -1, 212, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, -1, -1, - -1, -1, 210, -1, 212, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - -1, -1, -1, 210, -1, 212, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - -1, -1, -1, -1, 210, -1, 212, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, 212, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, -1, -1, -1, -1, 210, -1, 212, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, 212, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, -1, -1, -1, -1, 210, -1, - 212, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, -1, -1, -1, 210, - -1, 212, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, -1, -1, -1, -1, - 210, -1, 212, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, -1, -1, - -1, 210, -1, 212, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, -1, -1, - -1, -1, 210, -1, 212, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - -1, -1, -1, 210, -1, 212, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - -1, -1, -1, -1, 210, -1, 212, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, 212, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, -1, -1, -1, -1, 210, -1, 212, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, 212, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, -1, -1, -1, -1, 210, -1, - 212, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, -1, -1, -1, 210, - -1, 212, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, -1, -1, -1, -1, - 210, -1, 212, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, -1, -1, - -1, 210, -1, 212, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, -1, -1, - -1, -1, 210, -1, 212, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - -1, -1, -1, 210, -1, 212, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - -1, -1, -1, -1, 210, -1, 212, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, 212, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, -1, -1, -1, -1, 210, -1, 212, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, -1, -1, 210, -1, 212, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, -1, -1, -1, -1, 210, -1, - 212, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, -1, -1, -1, 210, - -1, 212, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, -1, -1, -1, -1, - 210, -1, 212, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, -1, -1, - -1, 210, -1, 212, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, -1, -1, - -1, -1, 210, -1, 212, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - -1, -1, -1, 210, -1, 212, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - -1, -1, -1, -1, 210, -1, 212, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, -1, -1, 210, -1, 212, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, -1, -1, -1, -1, 210 + -1, -1, 206, 207, -1, -1, -1, 211, -1, -1, + -1, -1, 216, -1, -1, -1, -1, 221, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, -1, -1, -1, -1, 215, -1, -1, -1, + -1, -1, -1, 222, 176, -1, -1, -1, 180, -1, + -1, -1, 184, 185, 186, 187, 188, -1, -1, -1, + 192, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 206, 207, -1, -1, -1, 211, + 3, 4, -1, -1, 216, -1, 9, 10, 11, 221, + -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, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 53, 54, 55, 56, 215, -1, -1, -1, 61, -1, + -1, 222, -1, -1, -1, -1, -1, -1, -1, 72, + 73, 74, -1, -1, -1, -1, -1, 80, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, -1, -1, -1, -1, 215, -1, -1, -1, + -1, -1, -1, 222, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, -1, -1, + -1, -1, 215, -1, -1, -1, -1, -1, -1, 222, + -1, -1, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, -1, -1, 0, 1, + 215, -1, 4, -1, -1, -1, -1, 222, -1, -1, + 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 176, -1, -1, -1, 180, -1, -1, + -1, 184, 185, 186, 187, 188, -1, -1, -1, 192, + 42, 43, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 206, 207, -1, -1, -1, 211, -1, + 62, 63, 64, 216, -1, -1, 68, 69, 221, 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, -1, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, -1, 115, 116, 117, 118, 119, 120, 121, + 122, 123, -1, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, -1, -1, -1, 139, 140, 141, + -1, -1, -1, -1, -1, 147, 4, -1, -1, -1, + 152, 153, 154, 155, 12, 13, 158, -1, 160, -1, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, -1, -1, -1, -1, -1, 181, + 182, 183, -1, -1, 42, 43, -1, -1, 190, -1, + 192, -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, -1, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, -1, 115, 116, 117, + 118, 119, 120, 121, 122, 123, -1, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, -1, -1, + -1, 139, 140, 141, -1, -1, -1, -1, -1, 147, + -1, -1, -1, -1, 152, 153, 154, 155, -1, -1, + 158, -1, 160, -1, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, -1, -1, + -1, -1, -1, 181, 182, 183, -1, -1, -1, -1, + -1, -1, 190, -1, 192, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, -1, + -1, -1, -1, 215, -1, -1, -1, -1, -1, -1, + 222, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, -1, -1, -1, -1, 215, + -1, -1, -1, -1, -1, -1, 222, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, -1, 215, -1, -1, -1, -1, + -1, -1, 222, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, -1, -1, + -1, 215, -1, -1, -1, -1, -1, -1, 222, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, -1, -1, -1, 215, -1, -1, + -1, -1, -1, -1, 222, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, -1, + -1, -1, -1, 215, -1, -1, -1, -1, -1, -1, + 222, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, -1, -1, -1, -1, 215, + -1, -1, -1, -1, -1, -1, 222, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, -1, 215, -1, -1, -1, -1, + -1, -1, 222, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, -1, -1, + -1, 215, -1, -1, -1, -1, -1, -1, 222, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, -1, -1, -1, 215, -1, -1, + -1, -1, -1, -1, 222, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, -1, + -1, -1, -1, 215, -1, -1, -1, -1, -1, -1, + 222, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, -1, -1, -1, -1, 215, + -1, -1, -1, -1, -1, -1, 222, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, -1, 215, -1, -1, -1, -1, + -1, -1, 222, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, -1, -1, + -1, 215, -1, -1, -1, -1, -1, -1, 222, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, -1, -1, -1, 215, -1, -1, + -1, -1, -1, -1, 222, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, -1, + -1, -1, -1, 215, -1, -1, -1, -1, -1, -1, + 222, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, -1, -1, -1, -1, 215, + -1, -1, -1, -1, -1, -1, 222, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, -1, 215, -1, -1, -1, -1, + -1, -1, 222, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, -1, -1, + -1, 215, -1, -1, -1, -1, -1, -1, 222, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, -1, -1, -1, 215, -1, -1, + -1, -1, -1, -1, 222, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, -1, + -1, -1, -1, 215, -1, -1, -1, -1, -1, -1, + 222, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, -1, -1, -1, -1, 215, + -1, -1, -1, -1, -1, -1, 222, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, -1, 215, -1, -1, -1, -1, + -1, -1, 222, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, -1, -1, + -1, 215, -1, -1, -1, -1, -1, -1, 222, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, -1, -1, -1, 215, -1, -1, + -1, -1, -1, -1, 222, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, -1, + -1, -1, -1, 215, -1, -1, -1, -1, -1, -1, + 222, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, -1, -1, -1, -1, 215, + -1, -1, -1, -1, -1, -1, 222, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, -1, 215, -1, -1, -1, -1, + -1, -1, 222, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, -1, -1, + -1, 215, -1, -1, -1, -1, -1, -1, 222, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, -1, -1, -1, 215, -1, -1, + -1, -1, -1, -1, 222, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, -1, + -1, -1, -1, 215, -1, -1, -1, -1, -1, -1, + 222, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, -1, -1, -1, -1, 215, + -1, -1, -1, -1, -1, -1, 222, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, -1, 215, -1, -1, -1, -1, + -1, -1, 222, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, -1, -1, + -1, 215, -1, -1, -1, -1, -1, -1, 222, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, -1, -1, -1, 215, -1, -1, + -1, -1, -1, -1, 222, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, -1, + -1, -1, -1, 215, -1, -1, -1, -1, -1, -1, + 222, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, -1, -1, -1, -1, 215, + -1, -1, -1, -1, -1, -1, 222, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, -1, 215, -1, -1, -1, -1, + -1, -1, 222, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, -1, -1, + -1, 215, -1, -1, -1, -1, -1, -1, 222, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, -1, -1, -1, 215, -1, -1, + -1, -1, -1, -1, 222, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, -1, + -1, -1, -1, 215, -1, -1, -1, -1, -1, -1, + 222, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, -1, -1, -1, -1, 215, + -1, -1, -1, -1, -1, -1, 222, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, -1, 215, -1, -1, -1, -1, + -1, -1, 222, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, -1, -1, + -1, 215, -1, -1, -1, -1, -1, -1, 222, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, -1, -1, -1, 215, -1, -1, + -1, 219, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, -1, -1, -1, -1, + 215, -1, -1, -1, 219, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, -1, + -1, -1, -1, 215, -1, -1, -1, 219, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, -1, -1, -1, -1, 215, -1, -1, -1, + 219, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, -1, -1, -1, -1, 215, + -1, -1, -1, 219, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, -1, -1, + -1, -1, 215, -1, -1, -1, 219, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, -1, 215, -1, -1, -1, 219, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, -1, -1, -1, -1, 215, -1, + -1, -1, 219, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, -1, -1, + -1, 215, -1, -1, -1, 219, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + -1, -1, -1, -1, 215, -1, -1, -1, 219, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, -1, -1, -1, 215, -1, -1, + -1, 219, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, -1, -1, -1, -1, + 215, -1, -1, -1, 219, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, -1, + -1, -1, -1, 215, -1, -1, -1, 219, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, -1, -1, -1, -1, 215, -1, -1, -1, + 219, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, -1, -1, -1, -1, 215, + -1, -1, -1, 219, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, -1, -1, + -1, -1, 215, -1, -1, -1, 219, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, -1, 215, -1, 217, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, -1, -1, -1, -1, 215, -1, 217, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, -1, -1, -1, 215, -1, 217, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, -1, -1, -1, -1, 215, -1, + 217, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, -1, -1, -1, -1, 215, + -1, 217, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, -1, -1, -1, -1, + 215, -1, 217, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, -1, -1, + -1, 215, -1, 217, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, -1, -1, + -1, -1, 215, -1, 217, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, -1, + -1, -1, -1, 215, -1, 217, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + -1, -1, -1, -1, 215, -1, 217, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, -1, 215, -1, 217, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, -1, -1, -1, -1, 215, -1, 217, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, -1, -1, -1, 215, -1, 217, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, -1, -1, -1, -1, 215, -1, + 217, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, -1, -1, -1, -1, 215, + -1, 217, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, -1, -1, -1, -1, + 215, -1, 217, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, -1, -1, + -1, 215, -1, 217, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, -1, -1, + -1, -1, 215, -1, 217, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, -1, + -1, -1, -1, 215, -1, 217, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + -1, -1, -1, -1, 215, -1, 217, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, -1, 215, -1, 217, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, -1, -1, -1, -1, 215, -1, 217, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, -1, -1, -1, 215, -1, 217, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, -1, -1, -1, -1, 215, -1, + 217, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, -1, -1, -1, -1, 215, + -1, 217, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, -1, -1, -1, -1, + 215, -1, 217, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, -1, -1, + -1, 215, -1, 217, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, -1, -1, + -1, -1, 215, -1, 217, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, -1, + -1, -1, -1, 215, -1, 217, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + -1, -1, -1, -1, 215, -1, 217, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, -1, 215, -1, 217, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, -1, -1, -1, -1, 215, -1, 217, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, -1, -1, -1, 215, -1, 217, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, -1, -1, -1, -1, 215, -1, + 217, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, -1, -1, -1, -1, 215, + -1, 217, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, -1, -1, -1, -1, + 215, -1, 217, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, -1, -1, + -1, 215, -1, 217, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, -1, -1, + -1, -1, 215, -1, 217, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, -1, + -1, -1, -1, 215, -1, 217, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + -1, -1, -1, -1, 215, -1, 217, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, -1, 215, -1, 217, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, -1, -1, -1, -1, 215, -1, 217, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, -1, -1, -1, -1, 215, -1, 217, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, -1, -1, -1, -1, 215, -1, + 217, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, -1, -1, -1, -1, 215, + -1, 217, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, -1, -1, -1, -1, + 215, -1, 217, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, -1, -1, -1, + -1, 215, -1, 217, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, -1, -1, + -1, -1, 215, -1, 217, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, -1, + -1, -1, -1, 215, -1, 217, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + -1, -1, -1, -1, 215, -1, 217, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, -1, -1, -1, -1, 215 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { - 0, 1, 222, 223, 6, 0, 4, 12, 13, 42, + 0, 1, 227, 228, 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, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 134, 135, 136, - 142, 147, 148, 149, 150, 153, 155, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 176, 177, 178, 185, 187, 224, 226, 227, 247, - 266, 267, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 294, 296, 302, 303, 304, 305, 323, 324, 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, 164, 171, 172, 173, 174, - 175, 179, 180, 181, 182, 183, 184, 186, 201, 202, - 206, 211, 213, 215, 216, 218, 220, 245, 306, 307, - 319, 320, 323, 324, 13, 90, 211, 211, 6, 218, - 6, 6, 6, 6, 211, 6, 6, 213, 213, 211, - 213, 245, 245, 211, 218, 211, 211, 4, 211, 218, - 211, 211, 4, 218, 211, 211, 94, 90, 90, 6, - 218, 84, 87, 90, 211, 211, 90, 90, 87, 90, - 92, 92, 84, 87, 90, 92, 87, 90, 92, 87, - 90, 211, 87, 153, 169, 170, 218, 201, 202, 211, - 218, 309, 310, 309, 218, 84, 87, 90, 218, 309, - 4, 84, 88, 102, 90, 92, 90, 87, 4, 164, - 218, 323, 324, 4, 6, 84, 87, 90, 87, 90, - 4, 4, 4, 4, 5, 37, 38, 39, 40, 41, - 84, 87, 90, 92, 106, 202, 211, 218, 267, 278, - 296, 306, 312, 313, 314, 323, 324, 4, 211, 211, - 211, 4, 218, 316, 324, 4, 211, 211, 211, 6, - 6, 213, 4, 320, 324, 211, 4, 320, 5, 218, - 5, 218, 4, 306, 323, 213, 218, 6, 211, 218, - 211, 213, 220, 245, 7, 188, 189, 190, 191, 208, - 209, 243, 244, 4, 211, 213, 215, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 211, 211, 211, 245, 245, 245, 245, 211, - 245, 245, 245, 245, 245, 245, 211, 245, 245, 245, - 7, 211, 211, 211, 245, 245, 211, 211, 213, 306, - 306, 306, 212, 306, 214, 306, 4, 153, 154, 324, - 4, 267, 268, 269, 218, 218, 6, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 210, 218, 6, 211, 213, 244, 6, 306, 4, - 319, 320, 323, 324, 319, 306, 319, 322, 249, 254, - 320, 324, 306, 202, 306, 314, 315, 306, 306, 211, - 306, 315, 306, 306, 211, 315, 306, 306, 312, 211, - 218, 315, 313, 313, 313, 319, 306, 211, 211, 313, - 313, 313, 211, 211, 211, 211, 211, 211, 312, 211, - 312, 211, 312, 218, 218, 306, 4, 312, 316, 218, - 218, 309, 309, 309, 306, 306, 201, 202, 218, 218, - 309, 218, 218, 218, 201, 202, 211, 269, 309, 218, - 211, 218, 211, 211, 211, 313, 313, 312, 211, 4, - 213, 213, 269, 6, 6, 218, 218, 218, 313, 313, - 213, 213, 213, 211, 213, 215, 245, 211, 213, 245, - 245, 245, 245, 5, 156, 218, 5, 156, 5, 156, - 5, 156, 84, 87, 90, 92, 218, 306, 314, 306, - 219, 315, 8, 203, 6, 211, 213, 245, 6, 306, - 306, 306, 215, 306, 218, 156, 306, 306, 306, 306, - 6, 6, 218, 6, 269, 6, 269, 211, 213, 218, - 211, 213, 319, 269, 312, 312, 212, 306, 214, 306, - 218, 218, 320, 312, 6, 213, 306, 306, 4, 306, - 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, - 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, - 306, 322, 319, 322, 319, 319, 319, 319, 319, 319, - 319, 312, 319, 319, 306, 319, 319, 319, 322, 319, - 306, 320, 306, 319, 319, 319, 319, 319, 324, 320, - 324, 7, 191, 243, 212, 7, 191, 243, 214, 7, - 243, 244, 215, 7, 245, 219, 84, 87, 90, 92, - 266, 306, 315, 306, 306, 306, 306, 306, 306, 306, - 306, 306, 306, 306, 306, 306, 306, 306, 228, 306, - 306, 6, 211, 213, 215, 212, 217, 211, 213, 212, - 217, 217, 212, 217, 214, 217, 248, 214, 248, 217, - 217, 212, 203, 217, 219, 212, 212, 306, 212, 219, - 212, 212, 306, 219, 212, 212, 7, 306, 306, 219, - 6, 6, 6, 212, 212, 306, 306, 7, 7, 299, - 299, 306, 260, 306, 320, 261, 306, 320, 262, 306, - 320, 263, 306, 320, 306, 6, 306, 6, 306, 6, - 315, 315, 218, 212, 6, 218, 269, 269, 217, 217, - 217, 309, 309, 268, 268, 217, 306, 306, 306, 306, - 282, 217, 269, 306, 306, 306, 306, 306, 7, 300, - 6, 7, 306, 6, 306, 306, 219, 315, 315, 315, - 6, 6, 306, 306, 306, 306, 306, 4, 212, 214, - 218, 246, 218, 306, 314, 218, 314, 324, 306, 306, - 319, 306, 62, 306, 62, 62, 62, 5, 218, 5, - 218, 5, 218, 5, 218, 315, 212, 219, 306, 218, - 306, 314, 306, 306, 218, 246, 212, 212, 212, 153, - 217, 269, 218, 8, 212, 212, 214, 315, 219, 219, - 269, 214, 126, 295, 212, 217, 219, 7, 191, 243, - 212, 7, 191, 243, 214, 306, 315, 6, 6, 306, - 212, 214, 244, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 217, 246, 246, 246, 246, 246, - 246, 246, 217, 217, 217, 246, 217, 246, 246, 212, - 212, 217, 246, 246, 217, 246, 217, 217, 217, 217, - 246, 246, 246, 212, 246, 308, 321, 6, 217, 217, - 212, 217, 246, 217, 246, 212, 212, 214, 44, 44, - 312, 7, 243, 244, 44, 44, 312, 215, 243, 244, - 320, 306, 6, 4, 4, 218, 317, 246, 218, 218, - 218, 218, 219, 219, 8, 4, 143, 144, 145, 146, - 219, 231, 235, 238, 240, 241, 212, 214, 306, 306, - 4, 6, 198, 225, 315, 306, 306, 6, 315, 306, - 6, 319, 6, 324, 6, 319, 306, 320, 7, 306, - 314, 156, 7, 7, 212, 7, 156, 7, 7, 212, - 156, 7, 7, 306, 212, 219, 218, 6, 7, 212, - 212, 306, 312, 4, 298, 6, 212, 212, 217, 212, - 217, 212, 217, 212, 217, 212, 212, 212, 219, 219, - 315, 215, 269, 219, 219, 309, 306, 306, 219, 219, - 306, 309, 217, 217, 217, 109, 123, 131, 132, 133, - 137, 138, 139, 140, 292, 293, 309, 219, 279, 212, - 219, 212, 212, 212, 306, 6, 306, 212, 214, 214, - 219, 219, 219, 214, 214, 217, 212, 214, 315, 315, - 212, 315, 214, 214, 217, 217, 246, 217, 218, 219, - 218, 218, 218, 315, 315, 315, 315, 219, 8, 315, - 212, 214, 315, 7, 7, 7, 215, 306, 219, 306, - 306, 7, 215, 219, 219, 6, 306, 219, 218, 312, - 6, 44, 44, 312, 243, 244, 44, 44, 312, 243, - 244, 219, 219, 214, 244, 215, 244, 319, 306, 306, - 306, 306, 315, 319, 306, 312, 319, 319, 319, 256, - 258, 306, 319, 319, 306, 245, 245, 6, 306, 6, - 245, 245, 6, 4, 153, 154, 306, 6, 6, 6, - 7, 213, 316, 318, 6, 315, 315, 315, 315, 246, - 306, 232, 211, 211, 218, 242, 6, 244, 244, 212, - 214, 198, 319, 212, 212, 214, 212, 217, 7, 211, - 213, 246, 246, 309, 90, 92, 312, 312, 7, 312, - 90, 92, 312, 312, 7, 92, 312, 312, 6, 7, - 7, 315, 218, 7, 7, 109, 297, 6, 7, 243, - 306, 243, 306, 243, 306, 243, 306, 7, 7, 7, - 7, 7, 219, 4, 219, 217, 217, 217, 219, 219, - 309, 309, 309, 4, 6, 306, 218, 6, 211, 6, - 141, 6, 141, 6, 141, 6, 141, 219, 293, 217, - 292, 7, 6, 7, 7, 7, 6, 218, 6, 6, - 6, 90, 7, 6, 6, 306, 215, 219, 219, 219, - 306, 306, 306, 306, 306, 306, 306, 219, 219, 219, - 219, 306, 219, 219, 312, 312, 312, 4, 217, 8, - 8, 212, 4, 4, 217, 6, 218, 312, 219, 245, - 245, 6, 306, 6, 245, 245, 6, 306, 6, 246, - 6, 4, 6, 246, 246, 246, 246, 246, 217, 217, - 246, 212, 246, 246, 217, 217, 246, 257, 217, 246, - 259, 212, 212, 246, 246, 246, 322, 322, 6, 246, - 322, 322, 7, 243, 244, 215, 7, 6, 316, 306, - 217, 219, 219, 219, 219, 219, 243, 211, 306, 306, - 311, 312, 218, 215, 6, 6, 225, 6, 306, 218, - 306, 320, 212, 214, 6, 6, 6, 218, 218, 102, - 265, 265, 312, 6, 218, 218, 6, 6, 312, 218, - 6, 6, 5, 312, 219, 311, 312, 312, 4, 6, - 312, 312, 312, 312, 312, 312, 312, 312, 218, 218, - 7, 6, 7, 306, 306, 306, 218, 218, 217, 219, - 217, 219, 217, 219, 213, 6, 306, 312, 306, 6, - 6, 6, 6, 306, 309, 219, 5, 218, 312, 218, - 218, 218, 312, 315, 218, 306, 214, 4, 246, 212, - 214, 217, 217, 217, 217, 217, 217, 217, 246, 6, - 6, 152, 306, 306, 306, 6, 6, 7, 320, 269, - 217, 6, 246, 322, 322, 6, 246, 322, 322, 6, - 243, 244, 319, 306, 319, 4, 4, 168, 6, 246, - 246, 6, 246, 246, 320, 306, 6, 4, 317, 6, - 214, 316, 6, 6, 6, 6, 312, 229, 306, 217, - 217, 217, 219, 230, 306, 4, 319, 217, 312, 320, - 7, 7, 306, 306, 309, 6, 6, 6, 306, 306, - 6, 306, 5, 6, 218, 219, 6, 156, 264, 306, - 6, 6, 6, 6, 6, 6, 4, 6, 6, 315, - 315, 306, 306, 320, 219, 212, 217, 219, 268, 268, - 309, 6, 283, 309, 6, 284, 309, 6, 285, 306, - 219, 217, 212, 219, 217, 6, 202, 309, 6, 311, - 309, 309, 6, 219, 306, 6, 6, 306, 306, 306, - 306, 306, 306, 306, 312, 217, 219, 8, 219, 212, - 218, 306, 320, 217, 295, 312, 6, 246, 246, 6, - 246, 246, 312, 212, 246, 246, 218, 312, 320, 218, - 306, 320, 320, 6, 6, 6, 6, 6, 6, 7, - 6, 215, 6, 212, 217, 306, 306, 312, 218, 217, - 219, 6, 306, 250, 253, 218, 218, 219, 219, 219, - 219, 219, 5, 311, 6, 88, 6, 218, 219, 219, - 218, 6, 6, 218, 306, 219, 219, 217, 218, 217, - 218, 217, 218, 214, 6, 312, 7, 218, 306, 217, - 219, 217, 217, 6, 219, 246, 246, 217, 217, 217, - 217, 217, 151, 306, 306, 315, 6, 6, 320, 219, - 219, 6, 6, 6, 6, 6, 255, 306, 314, 322, - 316, 154, 233, 306, 217, 217, 311, 306, 6, 217, - 256, 258, 312, 312, 6, 6, 6, 6, 6, 6, - 219, 218, 311, 113, 114, 119, 301, 113, 114, 301, - 315, 268, 217, 219, 306, 309, 292, 306, 309, 292, - 306, 309, 292, 6, 217, 219, 312, 269, 219, 309, - 6, 315, 309, 306, 306, 306, 306, 306, 306, 219, - 219, 219, 212, 6, 217, 219, 7, 7, 219, 6, - 218, 306, 306, 219, 306, 219, 219, 252, 251, 218, - 306, 219, 218, 309, 312, 6, 218, 309, 6, 219, - 219, 306, 219, 217, 219, 219, 217, 219, 219, 217, - 219, 312, 6, 109, 219, 280, 218, 217, 219, 217, - 217, 217, 217, 217, 217, 6, 6, 6, 306, 320, - 324, 230, 212, 217, 6, 218, 217, 256, 256, 306, - 219, 6, 309, 6, 309, 6, 6, 219, 6, 286, - 306, 6, 6, 287, 306, 6, 6, 288, 306, 6, - 219, 306, 292, 269, 315, 6, 309, 315, 306, 306, - 306, 306, 306, 7, 211, 219, 236, 306, 311, 306, - 219, 219, 217, 217, 217, 218, 219, 218, 219, 218, - 219, 6, 6, 219, 219, 281, 219, 217, 219, 217, - 217, 217, 217, 217, 320, 212, 6, 218, 212, 219, - 219, 306, 309, 309, 292, 6, 289, 292, 6, 290, - 292, 6, 291, 292, 6, 315, 6, 306, 306, 306, - 306, 306, 234, 319, 239, 218, 6, 219, 217, 217, - 219, 218, 219, 218, 219, 218, 219, 219, 246, 217, - 217, 217, 217, 217, 219, 218, 311, 6, 306, 306, - 6, 292, 6, 292, 6, 292, 6, 306, 306, 306, - 306, 319, 6, 237, 319, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 219, 217, 219, 6, 6, 6, - 6, 6, 6, 319, 6 + 91, 92, 93, 94, 98, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 139, + 140, 141, 147, 152, 153, 154, 155, 158, 160, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 181, 182, 183, 190, 192, 229, 231, + 232, 252, 271, 272, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 299, 301, 302, 308, 309, 310, 311, + 329, 330, 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, 169, 176, + 177, 178, 179, 180, 184, 185, 186, 187, 188, 189, + 191, 206, 207, 211, 216, 218, 220, 221, 223, 225, + 250, 312, 313, 325, 326, 329, 330, 13, 90, 216, + 216, 6, 223, 6, 6, 6, 6, 216, 6, 6, + 218, 218, 216, 218, 250, 250, 216, 223, 216, 216, + 4, 216, 223, 216, 216, 4, 223, 216, 216, 216, + 216, 99, 90, 90, 6, 223, 84, 87, 90, 216, + 216, 90, 90, 87, 90, 92, 92, 84, 87, 90, + 92, 87, 90, 92, 87, 90, 216, 87, 158, 174, + 175, 223, 206, 207, 216, 223, 315, 316, 315, 223, + 84, 87, 90, 223, 315, 4, 84, 88, 94, 95, + 96, 97, 107, 90, 92, 90, 87, 4, 169, 223, + 329, 330, 4, 6, 84, 87, 90, 87, 90, 4, + 4, 4, 4, 5, 37, 38, 39, 40, 41, 84, + 87, 90, 92, 111, 207, 216, 223, 272, 283, 299, + 301, 312, 318, 319, 320, 329, 330, 4, 216, 216, + 216, 4, 223, 322, 330, 4, 216, 216, 216, 6, + 6, 218, 4, 326, 330, 216, 4, 326, 5, 223, + 5, 223, 4, 312, 329, 218, 216, 223, 6, 216, + 223, 216, 218, 225, 250, 7, 193, 194, 195, 196, + 213, 214, 248, 249, 4, 216, 218, 220, 250, 250, + 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, + 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, + 250, 250, 250, 216, 216, 216, 250, 250, 250, 250, + 216, 250, 250, 250, 250, 250, 250, 216, 250, 250, + 250, 7, 216, 216, 216, 250, 250, 216, 216, 218, + 312, 312, 312, 217, 312, 219, 312, 4, 158, 159, + 330, 4, 272, 273, 274, 223, 223, 6, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 215, 223, 6, 216, 218, 249, 6, 312, + 4, 325, 326, 329, 330, 325, 312, 325, 328, 254, + 259, 326, 330, 312, 207, 312, 320, 321, 312, 312, + 216, 312, 321, 312, 312, 216, 321, 312, 312, 312, + 312, 318, 216, 223, 321, 319, 319, 319, 325, 312, + 216, 216, 319, 319, 319, 216, 216, 216, 216, 216, + 216, 318, 216, 318, 216, 318, 223, 223, 312, 4, + 318, 322, 223, 223, 315, 315, 315, 312, 312, 206, + 207, 223, 223, 315, 223, 223, 223, 206, 207, 216, + 274, 315, 223, 216, 223, 216, 216, 216, 216, 216, + 216, 216, 319, 319, 318, 216, 4, 218, 218, 274, + 6, 6, 223, 223, 223, 319, 319, 218, 218, 218, + 216, 218, 220, 250, 216, 218, 250, 250, 250, 250, + 5, 161, 223, 5, 161, 5, 161, 5, 161, 84, + 87, 90, 92, 223, 312, 320, 312, 224, 321, 8, + 208, 6, 216, 218, 250, 6, 312, 312, 312, 220, + 312, 223, 161, 312, 312, 312, 312, 6, 6, 223, + 6, 274, 6, 274, 216, 218, 223, 216, 218, 325, + 312, 274, 318, 318, 217, 312, 219, 312, 223, 223, + 326, 318, 6, 218, 312, 312, 4, 312, 312, 312, + 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, + 312, 312, 312, 312, 312, 312, 312, 312, 312, 328, + 325, 328, 325, 325, 325, 325, 325, 325, 325, 318, + 325, 325, 312, 325, 325, 325, 328, 325, 312, 326, + 312, 325, 325, 325, 325, 325, 330, 326, 330, 7, + 196, 248, 217, 7, 196, 248, 219, 7, 248, 249, + 220, 7, 250, 224, 84, 87, 90, 92, 271, 312, + 321, 312, 312, 312, 312, 312, 312, 312, 312, 312, + 312, 312, 312, 312, 312, 312, 233, 312, 312, 6, + 216, 218, 220, 217, 222, 216, 218, 217, 222, 222, + 217, 222, 219, 222, 253, 219, 253, 222, 222, 217, + 208, 222, 224, 217, 217, 312, 217, 224, 217, 217, + 312, 224, 217, 217, 217, 217, 7, 312, 312, 224, + 6, 6, 6, 217, 217, 312, 312, 7, 7, 305, + 305, 312, 265, 312, 326, 266, 312, 326, 267, 312, + 326, 268, 312, 326, 312, 6, 312, 6, 312, 6, + 321, 321, 223, 217, 6, 223, 274, 274, 222, 222, + 222, 315, 315, 273, 273, 222, 312, 312, 312, 312, + 287, 222, 274, 312, 312, 312, 312, 312, 312, 312, + 312, 312, 7, 306, 6, 7, 312, 6, 312, 312, + 224, 321, 321, 321, 6, 6, 312, 312, 312, 312, + 312, 4, 217, 219, 223, 251, 223, 312, 320, 223, + 320, 330, 312, 312, 325, 312, 62, 312, 62, 62, + 62, 5, 223, 5, 223, 5, 223, 5, 223, 321, + 217, 224, 312, 223, 312, 320, 312, 312, 223, 251, + 217, 217, 217, 158, 222, 274, 223, 8, 217, 217, + 219, 321, 224, 224, 274, 219, 217, 131, 300, 217, + 222, 224, 7, 196, 248, 217, 7, 196, 248, 219, + 312, 321, 6, 6, 312, 217, 219, 249, 251, 251, + 251, 251, 251, 251, 251, 251, 251, 251, 251, 222, + 251, 251, 251, 251, 251, 251, 251, 222, 222, 222, + 251, 222, 251, 251, 217, 217, 222, 251, 251, 222, + 251, 222, 222, 222, 222, 251, 251, 251, 217, 251, + 314, 327, 6, 222, 222, 217, 222, 251, 222, 251, + 217, 217, 219, 44, 44, 318, 7, 248, 249, 44, + 44, 318, 220, 248, 249, 326, 312, 6, 4, 4, + 223, 323, 251, 223, 223, 223, 223, 224, 224, 8, + 4, 148, 149, 150, 151, 224, 236, 240, 243, 245, + 246, 217, 219, 312, 312, 4, 6, 203, 230, 321, + 312, 312, 6, 321, 312, 6, 325, 6, 330, 6, + 325, 312, 326, 7, 312, 320, 161, 7, 7, 217, + 7, 161, 7, 7, 217, 161, 7, 7, 7, 7, + 312, 217, 224, 223, 6, 7, 217, 217, 312, 318, + 4, 304, 6, 217, 217, 222, 217, 222, 217, 222, + 217, 222, 217, 217, 217, 224, 224, 321, 220, 274, + 224, 224, 315, 312, 312, 224, 224, 312, 315, 222, + 222, 222, 114, 128, 136, 137, 138, 142, 143, 144, + 145, 297, 298, 315, 224, 284, 217, 224, 217, 217, + 217, 217, 217, 217, 217, 312, 6, 312, 217, 219, + 219, 224, 224, 224, 219, 219, 222, 217, 219, 321, + 321, 217, 321, 219, 219, 222, 222, 251, 222, 223, + 224, 223, 223, 223, 321, 321, 321, 321, 224, 8, + 321, 217, 219, 321, 7, 7, 7, 220, 312, 224, + 312, 312, 7, 220, 224, 224, 7, 6, 312, 224, + 223, 318, 6, 44, 44, 318, 248, 249, 44, 44, + 318, 248, 249, 224, 224, 219, 249, 220, 249, 325, + 312, 312, 312, 312, 321, 325, 312, 318, 325, 325, + 325, 261, 263, 312, 325, 325, 312, 250, 250, 6, + 312, 6, 250, 250, 6, 4, 158, 159, 312, 6, + 6, 6, 7, 218, 322, 324, 6, 321, 321, 321, + 321, 251, 312, 237, 216, 216, 223, 247, 6, 249, + 249, 217, 219, 203, 325, 217, 217, 219, 217, 222, + 7, 216, 218, 251, 251, 315, 90, 92, 318, 318, + 7, 318, 90, 92, 318, 318, 7, 92, 318, 318, + 318, 318, 6, 7, 7, 321, 223, 7, 7, 114, + 303, 6, 7, 248, 312, 248, 312, 248, 312, 248, + 312, 7, 7, 7, 7, 7, 224, 4, 224, 222, + 222, 222, 224, 224, 315, 315, 315, 4, 6, 312, + 223, 6, 216, 6, 146, 6, 146, 6, 146, 6, + 146, 224, 298, 222, 297, 7, 6, 7, 7, 7, + 7, 7, 7, 7, 6, 223, 6, 6, 6, 90, + 7, 6, 6, 312, 220, 224, 224, 224, 312, 312, + 312, 312, 312, 312, 312, 224, 224, 224, 224, 312, + 224, 224, 318, 318, 318, 4, 222, 8, 8, 217, + 4, 4, 222, 223, 6, 223, 318, 224, 250, 250, + 6, 312, 6, 250, 250, 6, 312, 6, 251, 6, + 4, 6, 251, 251, 251, 251, 251, 222, 222, 251, + 217, 251, 251, 222, 222, 251, 262, 222, 251, 264, + 217, 217, 251, 251, 251, 328, 328, 6, 251, 328, + 328, 7, 248, 249, 220, 7, 6, 322, 312, 222, + 224, 224, 224, 224, 224, 248, 216, 312, 312, 317, + 318, 223, 220, 6, 6, 230, 6, 312, 223, 312, + 326, 217, 219, 6, 6, 6, 223, 223, 107, 270, + 270, 318, 6, 223, 223, 6, 6, 318, 223, 6, + 6, 6, 6, 5, 318, 224, 317, 318, 318, 4, + 6, 318, 318, 318, 318, 318, 318, 318, 318, 223, + 223, 7, 6, 7, 312, 312, 312, 223, 223, 222, + 224, 222, 224, 222, 224, 218, 6, 312, 318, 312, + 6, 6, 6, 6, 312, 315, 224, 5, 318, 223, + 223, 223, 223, 223, 223, 223, 318, 321, 223, 312, + 219, 4, 251, 217, 219, 222, 222, 222, 222, 222, + 222, 222, 251, 6, 6, 157, 312, 312, 312, 6, + 6, 7, 326, 274, 274, 222, 6, 251, 328, 328, + 6, 251, 328, 328, 6, 248, 249, 325, 312, 325, + 4, 4, 173, 6, 251, 251, 6, 251, 251, 326, + 312, 6, 4, 323, 6, 219, 322, 6, 6, 6, + 6, 318, 234, 312, 222, 222, 222, 224, 235, 312, + 4, 325, 222, 318, 326, 7, 7, 312, 312, 315, + 6, 6, 6, 312, 312, 6, 312, 5, 6, 223, + 224, 6, 161, 269, 312, 6, 6, 6, 6, 6, + 6, 4, 6, 6, 321, 321, 312, 312, 326, 224, + 217, 222, 224, 273, 273, 315, 6, 288, 315, 6, + 289, 315, 6, 290, 312, 224, 222, 217, 224, 222, + 6, 6, 317, 315, 315, 315, 315, 315, 207, 315, + 6, 224, 312, 6, 6, 312, 312, 312, 312, 312, + 312, 312, 318, 222, 224, 8, 224, 217, 223, 312, + 326, 222, 300, 300, 318, 6, 251, 251, 6, 251, + 251, 318, 217, 251, 251, 223, 318, 326, 223, 312, + 326, 326, 6, 6, 6, 6, 6, 6, 7, 6, + 220, 6, 217, 222, 312, 312, 318, 223, 222, 224, + 6, 312, 255, 258, 223, 223, 224, 224, 224, 224, + 224, 5, 317, 6, 88, 6, 223, 224, 224, 223, + 6, 6, 223, 312, 224, 224, 222, 223, 222, 223, + 222, 223, 219, 6, 318, 7, 223, 312, 224, 222, + 222, 222, 222, 222, 222, 6, 224, 251, 251, 222, + 222, 222, 222, 222, 156, 312, 312, 321, 6, 6, + 326, 224, 224, 224, 6, 6, 6, 6, 6, 260, + 312, 320, 328, 322, 159, 238, 312, 222, 222, 317, + 312, 6, 222, 261, 263, 318, 318, 6, 6, 6, + 6, 6, 6, 224, 223, 317, 118, 119, 124, 307, + 118, 119, 307, 321, 273, 222, 224, 312, 315, 297, + 312, 315, 297, 312, 315, 297, 6, 222, 224, 318, + 274, 224, 6, 321, 315, 315, 315, 315, 315, 312, + 312, 312, 312, 312, 312, 224, 224, 224, 217, 223, + 6, 222, 224, 7, 7, 224, 6, 223, 312, 312, + 224, 312, 224, 224, 257, 256, 223, 312, 224, 223, + 315, 318, 6, 223, 315, 6, 224, 224, 312, 224, + 222, 224, 224, 222, 224, 224, 222, 224, 318, 6, + 114, 224, 285, 223, 224, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 222, 6, 6, 6, 274, 312, + 326, 330, 235, 217, 222, 6, 223, 222, 261, 261, + 312, 224, 6, 315, 6, 315, 6, 6, 224, 6, + 291, 312, 6, 6, 292, 312, 6, 6, 293, 312, + 6, 224, 312, 297, 274, 6, 321, 321, 321, 321, + 315, 321, 312, 312, 312, 312, 312, 300, 7, 216, + 224, 241, 312, 317, 312, 224, 224, 222, 222, 222, + 223, 224, 223, 224, 223, 224, 6, 6, 224, 224, + 286, 224, 224, 224, 224, 222, 224, 222, 222, 222, + 222, 222, 224, 326, 217, 6, 223, 217, 224, 224, + 312, 315, 315, 297, 6, 294, 297, 6, 295, 297, + 6, 296, 297, 6, 6, 6, 6, 321, 6, 312, + 312, 312, 312, 312, 6, 239, 325, 244, 223, 6, + 224, 222, 222, 224, 223, 224, 223, 224, 223, 224, + 224, 251, 222, 222, 222, 222, 222, 224, 223, 317, + 6, 312, 312, 6, 297, 6, 297, 6, 297, 6, + 312, 312, 312, 312, 325, 6, 242, 325, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 222, 224, + 6, 6, 6, 6, 6, 6, 325, 6 }; #define yyerrok (yyerrstatus = 0) @@ -5780,132 +5755,137 @@ yyreduce: switch (yyn) { case 3: -#line 208 "Gmsh.y" +#line 209 "Gmsh.y" { yyerrok; return 1; ;} break; case 6: -#line 219 "Gmsh.y" +#line 220 "Gmsh.y" { return 1; ;} break; case 7: -#line 220 "Gmsh.y" +#line 221 "Gmsh.y" { return 1; ;} break; case 8: -#line 221 "Gmsh.y" +#line 222 "Gmsh.y" { return 1; ;} break; case 9: -#line 222 "Gmsh.y" +#line 223 "Gmsh.y" { return 1; ;} break; case 10: -#line 223 "Gmsh.y" +#line 224 "Gmsh.y" { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} break; case 11: -#line 224 "Gmsh.y" +#line 225 "Gmsh.y" { return 1; ;} break; case 12: -#line 225 "Gmsh.y" +#line 226 "Gmsh.y" { return 1; ;} break; case 13: -#line 226 "Gmsh.y" +#line 227 "Gmsh.y" { return 1; ;} break; case 14: -#line 227 "Gmsh.y" +#line 228 "Gmsh.y" { return 1; ;} break; case 15: -#line 228 "Gmsh.y" +#line 229 "Gmsh.y" { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} break; case 16: -#line 229 "Gmsh.y" +#line 230 "Gmsh.y" { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} break; case 17: -#line 230 "Gmsh.y" +#line 231 "Gmsh.y" { return 1; ;} break; case 18: -#line 231 "Gmsh.y" +#line 232 "Gmsh.y" { return 1; ;} break; case 19: -#line 232 "Gmsh.y" +#line 233 "Gmsh.y" { return 1; ;} break; case 20: -#line 233 "Gmsh.y" +#line 234 "Gmsh.y" { return 1; ;} break; case 21: -#line 234 "Gmsh.y" +#line 235 "Gmsh.y" { return 1; ;} break; case 22: -#line 235 "Gmsh.y" +#line 236 "Gmsh.y" { return 1; ;} break; case 23: -#line 236 "Gmsh.y" +#line 237 "Gmsh.y" { return 1; ;} break; case 24: -#line 241 "Gmsh.y" +#line 238 "Gmsh.y" + { return 1; ;} + break; + + case 25: +#line 243 "Gmsh.y" { (yyval.c) = (char*)"w"; ;} break; - case 25: -#line 245 "Gmsh.y" + case 26: +#line 247 "Gmsh.y" { (yyval.c) = (char*)"a"; ;} break; - case 26: -#line 252 "Gmsh.y" + case 27: +#line 254 "Gmsh.y" { Msg::Direct((yyvsp[(3) - (5)].c)); Free((yyvsp[(3) - (5)].c)); ;} break; - case 27: -#line 257 "Gmsh.y" + case 28: +#line 259 "Gmsh.y" { Msg::Error((yyvsp[(3) - (5)].c)); Free((yyvsp[(3) - (5)].c)); ;} break; - case 28: -#line 262 "Gmsh.y" + case 29: +#line 264 "Gmsh.y" { std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(6) - (7)].c)); FILE *fp = Fopen(tmp.c_str(), (yyvsp[(5) - (7)].c)); @@ -5921,8 +5901,8 @@ yyreduce: ;} break; - case 29: -#line 276 "Gmsh.y" + case 30: +#line 278 "Gmsh.y" { char tmpstring[5000]; int i = PrintListOfDouble((yyvsp[(3) - (7)].c), (yyvsp[(5) - (7)].l), tmpstring); @@ -5937,8 +5917,8 @@ yyreduce: ;} break; - case 30: -#line 289 "Gmsh.y" + case 31: +#line 291 "Gmsh.y" { char tmpstring[5000]; int i = PrintListOfDouble((yyvsp[(3) - (7)].c), (yyvsp[(5) - (7)].l), tmpstring); @@ -5953,8 +5933,8 @@ yyreduce: ;} break; - case 31: -#line 302 "Gmsh.y" + case 32: +#line 304 "Gmsh.y" { char tmpstring[5000]; int i = PrintListOfDouble((yyvsp[(3) - (9)].c), (yyvsp[(5) - (9)].l), tmpstring); @@ -5979,8 +5959,8 @@ yyreduce: ;} break; - case 32: -#line 330 "Gmsh.y" + case 33: +#line 332 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(1) - (6)].c), "View") && ViewData->finalize()){ @@ -5996,8 +5976,8 @@ yyreduce: ;} break; - case 33: -#line 344 "Gmsh.y" + case 34: +#line 346 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -6012,8 +5992,8 @@ yyreduce: ;} break; - case 34: -#line 357 "Gmsh.y" + case 35: +#line 359 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -6028,8 +6008,8 @@ yyreduce: ;} break; - case 35: -#line 370 "Gmsh.y" + case 36: +#line 372 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (8)].c), "View")){ @@ -6046,8 +6026,8 @@ yyreduce: ;} break; - case 36: -#line 388 "Gmsh.y" + case 37: +#line 390 "Gmsh.y" { #if defined(HAVE_POST) ViewData = new PViewDataList(); @@ -6055,28 +6035,28 @@ yyreduce: ;} break; - case 42: -#line 402 "Gmsh.y" - { ViewCoord.push_back((yyvsp[(1) - (1)].d)); ;} - break; - case 43: #line 404 "Gmsh.y" - { ViewCoord.push_back((yyvsp[(3) - (3)].d)); ;} + { ViewCoord.push_back((yyvsp[(1) - (1)].d)); ;} break; case 44: -#line 409 "Gmsh.y" - { if(ViewValueList) ViewValueList->push_back((yyvsp[(1) - (1)].d)); ;} +#line 406 "Gmsh.y" + { ViewCoord.push_back((yyvsp[(3) - (3)].d)); ;} break; case 45: #line 411 "Gmsh.y" - { if(ViewValueList) ViewValueList->push_back((yyvsp[(3) - (3)].d)); ;} + { if(ViewValueList) ViewValueList->push_back((yyvsp[(1) - (1)].d)); ;} break; case 46: -#line 416 "Gmsh.y" +#line 413 "Gmsh.y" + { if(ViewValueList) ViewValueList->push_back((yyvsp[(3) - (3)].d)); ;} + break; + + case 47: +#line 418 "Gmsh.y" { #if defined(HAVE_POST) if(!strncmp((yyvsp[(1) - (1)].c), "SP", 2)){ @@ -6182,8 +6162,8 @@ yyreduce: ;} break; - case 47: -#line 520 "Gmsh.y" + case 48: +#line 522 "Gmsh.y" { #if defined(HAVE_POST) if(ViewValueList){ @@ -6195,8 +6175,8 @@ yyreduce: ;} break; - case 48: -#line 530 "Gmsh.y" + case 49: +#line 532 "Gmsh.y" { #if defined(HAVE_POST) if(ViewValueList) (*ViewNumList)++; @@ -6204,8 +6184,8 @@ yyreduce: ;} break; - case 49: -#line 539 "Gmsh.y" + case 50: +#line 541 "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]); @@ -6214,8 +6194,8 @@ yyreduce: ;} break; - case 50: -#line 546 "Gmsh.y" + case 51: +#line 548 "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]); @@ -6224,8 +6204,8 @@ yyreduce: ;} break; - case 51: -#line 556 "Gmsh.y" + case 52: +#line 558 "Gmsh.y" { #if defined(HAVE_POST) ViewData->T2D.push_back((yyvsp[(3) - (8)].d)); @@ -6236,8 +6216,8 @@ yyreduce: ;} break; - case 52: -#line 565 "Gmsh.y" + case 53: +#line 567 "Gmsh.y" { #if defined(HAVE_POST) ViewData->NbT2++; @@ -6245,8 +6225,8 @@ yyreduce: ;} break; - case 53: -#line 574 "Gmsh.y" + case 54: +#line 576 "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]); @@ -6255,8 +6235,8 @@ yyreduce: ;} break; - case 54: -#line 581 "Gmsh.y" + case 55: +#line 583 "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]); @@ -6265,8 +6245,8 @@ yyreduce: ;} break; - case 55: -#line 591 "Gmsh.y" + case 56: +#line 593 "Gmsh.y" { #if defined(HAVE_POST) ViewData->T3D.push_back((yyvsp[(3) - (10)].d)); ViewData->T3D.push_back((yyvsp[(5) - (10)].d)); @@ -6276,8 +6256,8 @@ yyreduce: ;} break; - case 56: -#line 599 "Gmsh.y" + case 57: +#line 601 "Gmsh.y" { #if defined(HAVE_POST) ViewData->NbT3++; @@ -6285,8 +6265,8 @@ yyreduce: ;} break; - case 57: -#line 609 "Gmsh.y" + case 58: +#line 611 "Gmsh.y" { #if defined(HAVE_POST) int type = @@ -6304,8 +6284,8 @@ yyreduce: ;} break; - case 58: -#line 628 "Gmsh.y" + case 59: +#line 630 "Gmsh.y" { #if defined(HAVE_POST) int type = @@ -6323,8 +6303,8 @@ yyreduce: ;} break; - case 59: -#line 647 "Gmsh.y" + case 60: +#line 649 "Gmsh.y" { #if defined(HAVE_POST) ViewValueList = &ViewData->Time; @@ -6332,77 +6312,77 @@ yyreduce: ;} break; - case 60: -#line 653 "Gmsh.y" + case 61: +#line 655 "Gmsh.y" { ;} break; - case 61: -#line 660 "Gmsh.y" + case 62: +#line 662 "Gmsh.y" { (yyval.i) = 0; ;} break; - case 62: -#line 661 "Gmsh.y" + case 63: +#line 663 "Gmsh.y" { (yyval.i) = 1; ;} break; - case 63: -#line 662 "Gmsh.y" + case 64: +#line 664 "Gmsh.y" { (yyval.i) = 2; ;} break; - case 64: -#line 663 "Gmsh.y" + case 65: +#line 665 "Gmsh.y" { (yyval.i) = 3; ;} break; - case 65: -#line 664 "Gmsh.y" + case 66: +#line 666 "Gmsh.y" { (yyval.i) = 4; ;} break; - case 66: -#line 668 "Gmsh.y" + case 67: +#line 670 "Gmsh.y" { (yyval.i) = 1; ;} break; - case 67: -#line 669 "Gmsh.y" + case 68: +#line 671 "Gmsh.y" { (yyval.i) = -1; ;} break; - case 68: -#line 675 "Gmsh.y" + case 69: +#line 677 "Gmsh.y" { (yyval.c) = (char*)"("; ;} break; - case 69: -#line 675 "Gmsh.y" + case 70: +#line 677 "Gmsh.y" { (yyval.c) = (char*)"["; ;} break; - case 70: -#line 676 "Gmsh.y" + case 71: +#line 678 "Gmsh.y" { (yyval.c) = (char*)")"; ;} break; - case 71: -#line 676 "Gmsh.y" + case 72: +#line 678 "Gmsh.y" { (yyval.c) = (char*)"]"; ;} break; - case 74: -#line 685 "Gmsh.y" + case 75: +#line 687 "Gmsh.y" { Msg::SetOnelabNumber((yyvsp[(3) - (7)].c), (yyvsp[(5) - (7)].d)); Free((yyvsp[(3) - (7)].c)); ;} break; - case 75: -#line 690 "Gmsh.y" + case 76: +#line 692 "Gmsh.y" { Msg::SetOnelabString((yyvsp[(3) - (7)].c), (yyvsp[(5) - (7)].c)); Free((yyvsp[(3) - (7)].c)); @@ -6410,8 +6390,8 @@ yyreduce: ;} break; - case 76: -#line 696 "Gmsh.y" + case 77: +#line 698 "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)); @@ -6475,8 +6455,8 @@ yyreduce: ;} break; - case 77: -#line 758 "Gmsh.y" + case 78: +#line 760 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (3)].c)); @@ -6493,8 +6473,8 @@ yyreduce: ;} break; - case 78: -#line 775 "Gmsh.y" + case 79: +#line 777 "Gmsh.y" { gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (6)].c)]); s.list = true; @@ -6525,8 +6505,8 @@ yyreduce: ;} break; - case 79: -#line 804 "Gmsh.y" + case 80: +#line 806 "Gmsh.y" { gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (6)].c)]); s.list = true; @@ -6557,40 +6537,40 @@ yyreduce: ;} break; - case 80: -#line 833 "Gmsh.y" + case 81: +#line 835 "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)); ;} break; - case 81: -#line 838 "Gmsh.y" + case 82: +#line 840 "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)); ;} break; - case 82: -#line 843 "Gmsh.y" + case 83: +#line 845 "Gmsh.y" { incrementVariable((yyvsp[(1) - (6)].c), (yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].i)); Free((yyvsp[(1) - (6)].c)); ;} break; - case 83: -#line 848 "Gmsh.y" + case 84: +#line 850 "Gmsh.y" { incrementVariable((yyvsp[(1) - (6)].c), (yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].i)); Free((yyvsp[(1) - (6)].c)); ;} break; - case 84: -#line 853 "Gmsh.y" + case 85: +#line 855 "Gmsh.y" { assignVariables((yyvsp[(1) - (9)].c), (yyvsp[(4) - (9)].l), (yyvsp[(7) - (9)].i), (yyvsp[(8) - (9)].l)); Free((yyvsp[(1) - (9)].c)); @@ -6599,8 +6579,8 @@ yyreduce: ;} break; - case 85: -#line 860 "Gmsh.y" + case 86: +#line 862 "Gmsh.y" { assignVariables((yyvsp[(1) - (9)].c), (yyvsp[(4) - (9)].l), (yyvsp[(7) - (9)].i), (yyvsp[(8) - (9)].l)); Free((yyvsp[(1) - (9)].c)); @@ -6609,8 +6589,8 @@ yyreduce: ;} break; - case 86: -#line 870 "Gmsh.y" + case 87: +#line 872 "Gmsh.y" { gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (6)].c)]); s.list = true; @@ -6641,8 +6621,8 @@ yyreduce: ;} break; - case 87: -#line 899 "Gmsh.y" + case 88: +#line 901 "Gmsh.y" { gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (6)].c)]); s.list = true; @@ -6673,40 +6653,40 @@ yyreduce: ;} break; - case 88: -#line 928 "Gmsh.y" + case 89: +#line 930 "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)); ;} break; - case 89: -#line 933 "Gmsh.y" + case 90: +#line 935 "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)); ;} break; - case 90: -#line 938 "Gmsh.y" + case 91: +#line 940 "Gmsh.y" { incrementVariable((yyvsp[(1) - (6)].c), (yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].i)); Free((yyvsp[(1) - (6)].c)); ;} break; - case 91: -#line 943 "Gmsh.y" + case 92: +#line 945 "Gmsh.y" { incrementVariable((yyvsp[(1) - (6)].c), (yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].i)); Free((yyvsp[(1) - (6)].c)); ;} break; - case 92: -#line 951 "Gmsh.y" + case 93: +#line 953 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (4)].c)] = std::vector<std::string>(1, (yyvsp[(3) - (4)].c)); Free((yyvsp[(1) - (4)].c)); @@ -6714,24 +6694,24 @@ yyreduce: ;} break; - case 93: -#line 960 "Gmsh.y" + case 94: +#line 962 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (8)].c)] = std::vector<std::string>(); Free((yyvsp[(1) - (8)].c)); ;} break; - case 94: -#line 966 "Gmsh.y" + case 95: +#line 968 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (8)].c)] = std::vector<std::string>(); Free((yyvsp[(1) - (8)].c)); ;} break; - case 95: -#line 972 "Gmsh.y" + case 96: +#line 974 "Gmsh.y" { std::vector<std::string> s; for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -6745,8 +6725,8 @@ yyreduce: ;} break; - case 96: -#line 985 "Gmsh.y" + case 97: +#line 987 "Gmsh.y" { std::vector<std::string> s; for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -6760,8 +6740,8 @@ yyreduce: ;} break; - case 97: -#line 998 "Gmsh.y" + case 98: +#line 1000 "Gmsh.y" { if(gmsh_yystringsymbols.count((yyvsp[(1) - (9)].c))){ for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -6777,8 +6757,8 @@ yyreduce: ;} break; - case 98: -#line 1013 "Gmsh.y" + case 99: +#line 1015 "Gmsh.y" { if(gmsh_yystringsymbols.count((yyvsp[(1) - (9)].c))){ for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -6794,24 +6774,24 @@ yyreduce: ;} break; - case 99: -#line 1030 "Gmsh.y" + case 100: +#line 1032 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (8)].c)] = std::vector<std::string>(); Free((yyvsp[(1) - (8)].c)); ;} break; - case 100: -#line 1036 "Gmsh.y" + case 101: +#line 1038 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (8)].c)] = std::vector<std::string>(); Free((yyvsp[(1) - (8)].c)); ;} break; - case 101: -#line 1042 "Gmsh.y" + case 102: +#line 1044 "Gmsh.y" { std::vector<std::string> s; for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -6825,8 +6805,8 @@ yyreduce: ;} break; - case 102: -#line 1055 "Gmsh.y" + case 103: +#line 1057 "Gmsh.y" { std::vector<std::string> s; for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -6840,8 +6820,8 @@ yyreduce: ;} break; - case 103: -#line 1068 "Gmsh.y" + case 104: +#line 1070 "Gmsh.y" { if(gmsh_yystringsymbols.count((yyvsp[(1) - (9)].c))){ for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -6857,8 +6837,8 @@ yyreduce: ;} break; - case 104: -#line 1083 "Gmsh.y" + case 105: +#line 1085 "Gmsh.y" { if(gmsh_yystringsymbols.count((yyvsp[(1) - (9)].c))){ for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -6874,8 +6854,8 @@ yyreduce: ;} break; - case 105: -#line 1100 "Gmsh.y" + case 106: +#line 1102 "Gmsh.y" { std::string tmp((yyvsp[(5) - (6)].c)); StringOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), tmp); @@ -6883,8 +6863,8 @@ yyreduce: ;} break; - case 106: -#line 1106 "Gmsh.y" + case 107: +#line 1108 "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); @@ -6892,8 +6872,8 @@ yyreduce: ;} break; - case 107: -#line 1115 "Gmsh.y" + case 108: +#line 1117 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), d)){ @@ -6913,8 +6893,8 @@ yyreduce: ;} break; - case 108: -#line 1133 "Gmsh.y" + case 109: +#line 1135 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), d)){ @@ -6934,8 +6914,8 @@ yyreduce: ;} break; - case 109: -#line 1151 "Gmsh.y" + case 110: +#line 1153 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(3) - (5)].c), d)){ @@ -6946,8 +6926,8 @@ yyreduce: ;} break; - case 110: -#line 1160 "Gmsh.y" + case 111: +#line 1162 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (8)].c), (int)(yyvsp[(3) - (8)].d), (yyvsp[(6) - (8)].c), d)){ @@ -6958,24 +6938,24 @@ yyreduce: ;} break; - case 111: -#line 1172 "Gmsh.y" + case 112: +#line 1174 "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)); ;} break; - case 112: -#line 1177 "Gmsh.y" + case 113: +#line 1179 "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)); ;} break; - case 113: -#line 1185 "Gmsh.y" + case 114: +#line 1187 "Gmsh.y" { GmshColorTable *ct = GetColorTable(0); if(!ct) @@ -6997,8 +6977,8 @@ yyreduce: ;} break; - case 114: -#line 1205 "Gmsh.y" + case 115: +#line 1207 "Gmsh.y" { GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (9)].d)); if(!ct) @@ -7020,8 +7000,8 @@ yyreduce: ;} break; - case 115: -#line 1228 "Gmsh.y" + case 116: +#line 1230 "Gmsh.y" { #if defined(HAVE_MESH) if(!strcmp((yyvsp[(1) - (5)].c),"Background")) @@ -7034,8 +7014,8 @@ yyreduce: ;} break; - case 116: -#line 1239 "Gmsh.y" + case 117: +#line 1241 "Gmsh.y" { #if defined(HAVE_MESH) if(!GModel::current()->getFields()->newField((int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c))) @@ -7045,8 +7025,8 @@ yyreduce: ;} break; - case 117: -#line 1247 "Gmsh.y" + case 118: +#line 1249 "Gmsh.y" { #if defined(HAVE_MESH) Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (9)].d)); @@ -7070,8 +7050,8 @@ yyreduce: ;} break; - case 118: -#line 1269 "Gmsh.y" + case 119: +#line 1271 "Gmsh.y" { #if defined(HAVE_MESH) Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (9)].d)); @@ -7096,8 +7076,8 @@ yyreduce: ;} break; - case 119: -#line 1292 "Gmsh.y" + case 120: +#line 1294 "Gmsh.y" { #if defined(HAVE_MESH) Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (11)].d)); @@ -7137,8 +7117,8 @@ yyreduce: ;} break; - case 120: -#line 1330 "Gmsh.y" + case 121: +#line 1332 "Gmsh.y" { #if defined(HAVE_MESH) Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (7)].d)); @@ -7158,8 +7138,8 @@ yyreduce: ;} break; - case 121: -#line 1351 "Gmsh.y" + case 122: +#line 1353 "Gmsh.y" { #if defined(HAVE_PLUGINS) try { @@ -7173,8 +7153,8 @@ yyreduce: ;} break; - case 122: -#line 1363 "Gmsh.y" + case 123: +#line 1365 "Gmsh.y" { #if defined(HAVE_PLUGINS) try { @@ -7188,8 +7168,8 @@ yyreduce: ;} break; - case 126: -#line 1381 "Gmsh.y" + case 127: +#line 1383 "Gmsh.y" { std::string key((yyvsp[(3) - (3)].c)); std::vector<double> val(1, 0.); @@ -7200,8 +7180,8 @@ yyreduce: ;} break; - case 127: -#line 1390 "Gmsh.y" + case 128: +#line 1392 "Gmsh.y" { std::string key((yyvsp[(3) - (5)].c)); std::vector<double> val(1, (yyvsp[(5) - (5)].d)); @@ -7212,13 +7192,13 @@ yyreduce: ;} break; - case 128: -#line 1399 "Gmsh.y" + case 129: +#line 1401 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; - case 129: -#line 1401 "Gmsh.y" + case 130: +#line 1403 "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)); @@ -7238,13 +7218,13 @@ yyreduce: ;} break; - case 130: -#line 1419 "Gmsh.y" + case 131: +#line 1421 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; - case 131: -#line 1421 "Gmsh.y" + case 132: +#line 1423 "Gmsh.y" { std::string key((yyvsp[(3) - (11)].c)); std::vector<double> val; @@ -7262,13 +7242,13 @@ yyreduce: ;} break; - case 132: -#line 1437 "Gmsh.y" + case 133: +#line 1439 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; - case 133: -#line 1439 "Gmsh.y" + case 134: +#line 1441 "Gmsh.y" { std::string key((yyvsp[(3) - (11)].c)); std::vector<double> val; @@ -7286,8 +7266,8 @@ yyreduce: ;} break; - case 134: -#line 1455 "Gmsh.y" + case 135: +#line 1457 "Gmsh.y" { std::string key((yyvsp[(3) - (5)].c)), val((yyvsp[(5) - (5)].c)); if(!gmsh_yystringsymbols.count(key)){ @@ -7298,13 +7278,13 @@ yyreduce: ;} break; - case 135: -#line 1464 "Gmsh.y" + case 136: +#line 1466 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; - case 136: -#line 1466 "Gmsh.y" + case 137: +#line 1468 "Gmsh.y" { std::string key((yyvsp[(3) - (9)].c)), val((yyvsp[(6) - (9)].c)); if(!gmsh_yysymbols.count(key)){ @@ -7316,8 +7296,8 @@ yyreduce: ;} break; - case 138: -#line 1480 "Gmsh.y" + case 139: +#line 1482 "Gmsh.y" { std::string name((yyvsp[(3) - (3)].c)); Msg::UndefineOnelabParameter(name); @@ -7325,8 +7305,8 @@ yyreduce: ;} break; - case 139: -#line 1488 "Gmsh.y" + case 140: +#line 1490 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(doubleXstring)); doubleXstring v = {(yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].c)}; @@ -7334,16 +7314,16 @@ yyreduce: ;} break; - case 140: -#line 1494 "Gmsh.y" + case 141: +#line 1496 "Gmsh.y" { doubleXstring v = {(yyvsp[(3) - (5)].d), (yyvsp[(5) - (5)].c)}; List_Add((yyval.l), &v); ;} break; - case 141: -#line 1499 "Gmsh.y" + case 142: +#line 1501 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(doubleXstring)); int n = List_Nbr((yyvsp[(1) - (5)].l)); @@ -7369,8 +7349,8 @@ yyreduce: ;} break; - case 144: -#line 1530 "Gmsh.y" + case 145: +#line 1532 "Gmsh.y" { std::string key((yyvsp[(2) - (3)].c)); for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ @@ -7383,8 +7363,8 @@ yyreduce: ;} break; - case 145: -#line 1541 "Gmsh.y" + case 146: +#line 1543 "Gmsh.y" { std::string key((yyvsp[(2) - (5)].c)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -7400,8 +7380,8 @@ yyreduce: ;} break; - case 146: -#line 1556 "Gmsh.y" + case 147: +#line 1558 "Gmsh.y" { std::string key((yyvsp[(2) - (3)].c)); std::string val((yyvsp[(3) - (3)].c)); @@ -7411,8 +7391,8 @@ yyreduce: ;} break; - case 149: -#line 1572 "Gmsh.y" + case 150: +#line 1574 "Gmsh.y" { std::string key((yyvsp[(2) - (3)].c)); double val = (yyvsp[(3) - (3)].d); @@ -7421,8 +7401,8 @@ yyreduce: ;} break; - case 150: -#line 1580 "Gmsh.y" + case 151: +#line 1582 "Gmsh.y" { std::string key((yyvsp[(2) - (3)].c)); std::string val((yyvsp[(3) - (3)].c)); @@ -7432,8 +7412,8 @@ yyreduce: ;} break; - case 151: -#line 1589 "Gmsh.y" + case 152: +#line 1591 "Gmsh.y" { std::string key("Macro"); std::string val((yyvsp[(3) - (3)].c)); @@ -7442,8 +7422,8 @@ yyreduce: ;} break; - case 152: -#line 1597 "Gmsh.y" + case 153: +#line 1599 "Gmsh.y" { std::string key((yyvsp[(2) - (5)].c)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -7458,15 +7438,15 @@ yyreduce: ;} break; - case 153: -#line 1615 "Gmsh.y" + case 154: +#line 1617 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); ;} break; - case 154: -#line 1619 "Gmsh.y" + case 155: +#line 1621 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName (std::string((yyvsp[(1) - (1)].c)), 0, ++GModel::current()->getGEOInternals()->MaxPhysicalNum); @@ -7474,23 +7454,23 @@ yyreduce: ;} break; - case 155: -#line 1625 "Gmsh.y" + case 156: +#line 1627 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName(std::string((yyvsp[(1) - (3)].c)), 0, (yyvsp[(3) - (3)].d)); Free((yyvsp[(1) - (3)].c)); ;} break; - case 156: -#line 1633 "Gmsh.y" + case 157: +#line 1635 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); ;} break; - case 157: -#line 1637 "Gmsh.y" + case 158: +#line 1639 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName (std::string((yyvsp[(1) - (1)].c)), 1, ++GModel::current()->getGEOInternals()->MaxPhysicalNum); @@ -7498,23 +7478,23 @@ yyreduce: ;} break; - case 158: -#line 1643 "Gmsh.y" + case 159: +#line 1645 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName(std::string((yyvsp[(1) - (3)].c)), 1, (yyvsp[(3) - (3)].d)); Free((yyvsp[(1) - (3)].c)); ;} break; - case 159: -#line 1651 "Gmsh.y" + case 160: +#line 1653 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); ;} break; - case 160: -#line 1655 "Gmsh.y" + case 161: +#line 1657 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName (std::string((yyvsp[(1) - (1)].c)), 2, ++GModel::current()->getGEOInternals()->MaxPhysicalNum); @@ -7522,23 +7502,23 @@ yyreduce: ;} break; - case 161: -#line 1661 "Gmsh.y" + case 162: +#line 1663 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName(std::string((yyvsp[(1) - (3)].c)), 2, (yyvsp[(3) - (3)].d)); Free((yyvsp[(1) - (3)].c)); ;} break; - case 162: -#line 1669 "Gmsh.y" + case 163: +#line 1671 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); ;} break; - case 163: -#line 1673 "Gmsh.y" + case 164: +#line 1675 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName (std::string((yyvsp[(1) - (1)].c)), 3, ++GModel::current()->getGEOInternals()->MaxPhysicalNum); @@ -7546,23 +7526,23 @@ yyreduce: ;} break; - case 164: -#line 1679 "Gmsh.y" + case 165: +#line 1681 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName(std::string((yyvsp[(1) - (3)].c)), 3, (yyvsp[(3) - (3)].d)); Free((yyvsp[(1) - (3)].c)); ;} break; - case 165: -#line 1687 "Gmsh.y" + case 166: +#line 1689 "Gmsh.y" { (yyval.l) = 0; ;} break; - case 166: -#line 1691 "Gmsh.y" + case 167: +#line 1693 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(Vertex*)); Vertex *v = FindPoint((int)(yyvsp[(4) - (5)].d)); @@ -7574,30 +7554,30 @@ yyreduce: ;} break; - case 167: -#line 1703 "Gmsh.y" + case 168: +#line 1705 "Gmsh.y" { for(int i = 0; i < 4; i++) (yyval.v)[i] = 0.; ;} break; - case 168: -#line 1707 "Gmsh.y" + case 169: +#line 1709 "Gmsh.y" { for(int i = 0; i < 4; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; - case 169: -#line 1715 "Gmsh.y" + case 170: +#line 1717 "Gmsh.y" { factory = (yyvsp[(3) - (5)].c); Free((yyvsp[(3) - (5)].c)); ;} break; - case 170: -#line 1723 "Gmsh.y" + case 171: +#line 1725 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindPoint(num)){ @@ -7619,16 +7599,16 @@ yyreduce: else v = Create_Vertex(num, x, y, myGmshSurface, lc); Tree_Add(GModel::current()->getGEOInternals()->Points, &v); - AddToTemporaryBoundingBox(v->Pos.X, v->Pos.Y, v->Pos.Z); } + AddToTemporaryBoundingBox(x, y, z); } (yyval.s).Type = MSH_POINT; (yyval.s).Num = num; ;} break; - case 171: -#line 1751 "Gmsh.y" + case 172: +#line 1753 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); int op = (yyvsp[(6) - (8)].i); @@ -7673,8 +7653,8 @@ yyreduce: ;} break; - case 172: -#line 1794 "Gmsh.y" + case 173: +#line 1796 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -7696,8 +7676,8 @@ yyreduce: ;} break; - case 173: -#line 1817 "Gmsh.y" + case 174: +#line 1819 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -7717,8 +7697,8 @@ yyreduce: ;} break; - case 174: -#line 1835 "Gmsh.y" + case 175: +#line 1837 "Gmsh.y" { for (int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ double dnum; @@ -7741,8 +7721,8 @@ yyreduce: ;} break; - case 175: -#line 1856 "Gmsh.y" + case 176: +#line 1858 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -7762,8 +7742,8 @@ yyreduce: ;} break; - case 176: -#line 1874 "Gmsh.y" + case 177: +#line 1876 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); if(FindCurve(num)){ @@ -7805,8 +7785,8 @@ yyreduce: ;} break; - case 177: -#line 1914 "Gmsh.y" + case 178: +#line 1916 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); if(FindCurve(num)){ @@ -7838,8 +7818,8 @@ yyreduce: ;} break; - case 178: -#line 1944 "Gmsh.y" + case 179: +#line 1946 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -7859,8 +7839,8 @@ yyreduce: ;} break; - case 179: -#line 1962 "Gmsh.y" + case 180: +#line 1964 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -7880,8 +7860,8 @@ yyreduce: ;} break; - case 180: -#line 1981 "Gmsh.y" + case 181: +#line 1983 "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))){ @@ -7909,8 +7889,8 @@ yyreduce: ;} break; - case 181: -#line 2007 "Gmsh.y" + case 182: +#line 2009 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindEdgeLoop(num)){ @@ -7930,15 +7910,15 @@ yyreduce: ;} break; - case 182: -#line 2026 "Gmsh.y" + case 183: +#line 2028 "Gmsh.y" { GModel::current()->getGEOInternals()->addCompoundMesh ( 1 , (yyvsp[(3) - (4)].l) ); ;} break; - case 183: -#line 2031 "Gmsh.y" + case 184: +#line 2033 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindCurve(num)){ @@ -7958,8 +7938,8 @@ yyreduce: ;} break; - case 184: -#line 2049 "Gmsh.y" + case 185: +#line 2051 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); int op = (yyvsp[(6) - (8)].i); @@ -8004,8 +7984,8 @@ yyreduce: ;} break; - case 185: -#line 2095 "Gmsh.y" + case 186: +#line 2097 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindSurface(num)){ @@ -8025,8 +8005,8 @@ yyreduce: ;} break; - case 186: -#line 2113 "Gmsh.y" + case 187: +#line 2115 "Gmsh.y" { int num = (int)(yyvsp[(4) - (9)].d), type = 0; if(FindSurface(num)){ @@ -8067,8 +8047,8 @@ yyreduce: ;} break; - case 187: -#line 2152 "Gmsh.y" + case 188: +#line 2154 "Gmsh.y" { myGmshSurface = 0; (yyval.s).Type = 0; @@ -8076,8 +8056,8 @@ yyreduce: ;} break; - case 188: -#line 2158 "Gmsh.y" + case 189: +#line 2160 "Gmsh.y" { myGmshSurface = gmshSurface::getSurface((int)(yyvsp[(3) - (4)].d)); (yyval.s).Type = 0; @@ -8085,8 +8065,8 @@ yyreduce: ;} break; - case 189: -#line 2164 "Gmsh.y" + case 190: +#line 2166 "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)); @@ -8095,8 +8075,8 @@ yyreduce: ;} break; - case 190: -#line 2171 "Gmsh.y" + case 191: +#line 2173 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(List_Nbr((yyvsp[(6) - (7)].l)) == 4){ // solid sphere (volume) @@ -8108,7 +8088,7 @@ yyreduce: GModel::current()->getOCCInternals()->addSphere(num, x, y, z, r); } else{ - yymsg(0, "Sphere only available in OpenCASCADE factory"); + yymsg(0, "Sphere only available with OpenCASCADE factory"); } (yyval.s).Type = MSH_VOLUME; } @@ -8139,8 +8119,8 @@ yyreduce: ;} break; - case 191: -#line 2212 "Gmsh.y" + case 192: +#line 2214 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if (List_Nbr((yyvsp[(6) - (7)].l)) != 2){ @@ -8168,8 +8148,63 @@ yyreduce: ;} break; - case 192: -#line 2238 "Gmsh.y" + case 193: +#line 2240 "Gmsh.y" + { + int num = (int)(yyvsp[(3) - (7)].d); + if(List_Nbr((yyvsp[(6) - (7)].l)) == 6){ + 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 z1; List_Read((yyvsp[(6) - (7)].l), 2, &z1); + double x2; List_Read((yyvsp[(6) - (7)].l), 3, &x2); + double y2; List_Read((yyvsp[(6) - (7)].l), 4, &y2); + double z2; List_Read((yyvsp[(6) - (7)].l), 5, &z2); + GModel::current()->getOCCInternals()->addBlock(num, x1, y1, z1, x2, y2, z2); + } + else{ + yymsg(0, "Block only available with OpenCASCADE factory"); + } + } + else{ + yymsg(0, "Block has to be defined using 2 points"); + } + List_Delete((yyvsp[(6) - (7)].l)); + (yyval.s).Type = MSH_VOLUME; + (yyval.s).Num = num; + ;} + break; + + case 194: +#line 2264 "Gmsh.y" + { + int num = (int)(yyvsp[(3) - (7)].d); + if(List_Nbr((yyvsp[(6) - (7)].l)) == 7){ + 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 z1; List_Read((yyvsp[(6) - (7)].l), 2, &z1); + double x2; List_Read((yyvsp[(6) - (7)].l), 3, &x2); + double y2; List_Read((yyvsp[(6) - (7)].l), 4, &y2); + double z2; List_Read((yyvsp[(6) - (7)].l), 5, &z2); + double r; List_Read((yyvsp[(6) - (7)].l), 6, &r); + GModel::current()->getOCCInternals()->addCylinder(num, x1, y1, z1, x2, y2, z2, r); + } + else{ + yymsg(0, "Cylinder only available with OpenCASCADE factory"); + } + } + else{ + yymsg(0, "Cylinder has to be defined using 2 points and a radius"); + } + List_Delete((yyvsp[(6) - (7)].l)); + (yyval.s).Type = MSH_VOLUME; + (yyval.s).Num = num; + ;} + break; + + case 195: +#line 2289 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindSurfaceLoop(num)){ @@ -8188,15 +8223,15 @@ yyreduce: ;} break; - case 193: -#line 2255 "Gmsh.y" + case 196: +#line 2306 "Gmsh.y" { GModel::current()->getGEOInternals()->addCompoundMesh ( 2 , (yyvsp[(3) - (4)].l) ); ;} break; - case 194: -#line 2259 "Gmsh.y" + case 197: +#line 2310 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindSurface(num)){ @@ -8217,8 +8252,8 @@ yyreduce: ;} break; - case 195: -#line 2279 "Gmsh.y" + case 198: +#line 2330 "Gmsh.y" { int num = (int)(yyvsp[(4) - (12)].d); if(FindSurface(num)){ @@ -8253,8 +8288,8 @@ yyreduce: ;} break; - case 196: -#line 2312 "Gmsh.y" + case 199: +#line 2363 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); int op = (yyvsp[(6) - (8)].i); @@ -8299,8 +8334,8 @@ yyreduce: ;} break; - case 197: -#line 2359 "Gmsh.y" + case 200: +#line 2410 "Gmsh.y" { yymsg(0, "'Complex Volume' command is deprecated: use 'Volume' instead"); int num = (int)(yyvsp[(4) - (8)].d); @@ -8320,8 +8355,8 @@ yyreduce: ;} break; - case 198: -#line 2377 "Gmsh.y" + case 201: +#line 2428 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindVolume(num)){ @@ -8340,8 +8375,8 @@ yyreduce: ;} break; - case 199: -#line 2394 "Gmsh.y" + case 202: +#line 2445 "Gmsh.y" { int num = (int)(yyvsp[(3) - (9)].d); if(FindVolume(num)){ @@ -8361,7 +8396,7 @@ yyreduce: GModel::current()->getOCCInternals()->addThruSections(num, edges); } else{ - yymsg(0, "ThruSections only available in OpenCASCADE factory"); + yymsg(0, "ThruSections only available with OpenCASCADE factory"); } } for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++) @@ -8372,15 +8407,15 @@ yyreduce: ;} break; - case 200: -#line 2423 "Gmsh.y" + case 203: +#line 2474 "Gmsh.y" { GModel::current()->getGEOInternals()->addCompoundMesh ( 3 , (yyvsp[(3) - (4)].l) ); ;} break; - case 201: -#line 2427 "Gmsh.y" + case 204: +#line 2478 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindVolume(num)){ @@ -8398,8 +8433,8 @@ yyreduce: ;} break; - case 202: -#line 2443 "Gmsh.y" + case 205: +#line 2494 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); int op = (yyvsp[(6) - (8)].i); @@ -8444,48 +8479,48 @@ yyreduce: ;} break; - case 203: -#line 2491 "Gmsh.y" + case 206: +#line 2542 "Gmsh.y" { TranslateShapes((yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], (yyvsp[(4) - (5)].l)); (yyval.l) = (yyvsp[(4) - (5)].l); ;} break; - case 204: -#line 2496 "Gmsh.y" + case 207: +#line 2547 "Gmsh.y" { RotateShapes((yyvsp[(3) - (11)].v)[0], (yyvsp[(3) - (11)].v)[1], (yyvsp[(3) - (11)].v)[2], (yyvsp[(5) - (11)].v)[0], (yyvsp[(5) - (11)].v)[1], (yyvsp[(5) - (11)].v)[2], (yyvsp[(7) - (11)].d), (yyvsp[(10) - (11)].l)); (yyval.l) = (yyvsp[(10) - (11)].l); ;} break; - case 205: -#line 2501 "Gmsh.y" + case 208: +#line 2552 "Gmsh.y" { SymmetryShapes((yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], (yyvsp[(2) - (5)].v)[3], (yyvsp[(4) - (5)].l)); (yyval.l) = (yyvsp[(4) - (5)].l); ;} break; - case 206: -#line 2506 "Gmsh.y" + case 209: +#line 2557 "Gmsh.y" { DilatShapes((yyvsp[(3) - (9)].v)[0], (yyvsp[(3) - (9)].v)[1], (yyvsp[(3) - (9)].v)[2], (yyvsp[(5) - (9)].d), (yyvsp[(5) - (9)].d), (yyvsp[(5) - (9)].d), (yyvsp[(8) - (9)].l)); (yyval.l) = (yyvsp[(8) - (9)].l); ;} break; - case 207: -#line 2511 "Gmsh.y" + case 210: +#line 2562 "Gmsh.y" { DilatShapes((yyvsp[(3) - (9)].v)[0], (yyvsp[(3) - (9)].v)[1], (yyvsp[(3) - (9)].v)[2], (yyvsp[(5) - (9)].v)[0], (yyvsp[(5) - (9)].v)[1], (yyvsp[(5) - (9)].v)[2], (yyvsp[(8) - (9)].l)); (yyval.l) = (yyvsp[(8) - (9)].l); ;} break; - case 208: -#line 2516 "Gmsh.y" + case 211: +#line 2567 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); if(!strcmp((yyvsp[(1) - (4)].c), "Duplicata")){ @@ -8510,8 +8545,8 @@ yyreduce: ;} break; - case 209: -#line 2539 "Gmsh.y" + case 212: +#line 2590 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); IntersectCurvesWithSurface((yyvsp[(4) - (9)].l), (int)(yyvsp[(8) - (9)].d), (yyval.l)); @@ -8519,8 +8554,8 @@ yyreduce: ;} break; - case 210: -#line 2545 "Gmsh.y" + case 213: +#line 2596 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape*)); List_T *tmp = ListOfDouble2ListOfInt((yyvsp[(7) - (9)].l)); @@ -8530,32 +8565,32 @@ yyreduce: ;} break; - case 211: -#line 2555 "Gmsh.y" + case 214: +#line 2606 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 212: -#line 2556 "Gmsh.y" + case 215: +#line 2607 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 213: -#line 2561 "Gmsh.y" + case 216: +#line 2612 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); ;} break; - case 214: -#line 2565 "Gmsh.y" + case 217: +#line 2616 "Gmsh.y" { List_Add((yyval.l), &(yyvsp[(2) - (2)].s)); ;} break; - case 215: -#line 2569 "Gmsh.y" + case 218: +#line 2620 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -8586,8 +8621,8 @@ yyreduce: ;} break; - case 216: -#line 2598 "Gmsh.y" + case 219: +#line 2649 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -8618,8 +8653,8 @@ yyreduce: ;} break; - case 217: -#line 2627 "Gmsh.y" + case 220: +#line 2678 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -8650,8 +8685,8 @@ yyreduce: ;} break; - case 218: -#line 2656 "Gmsh.y" + case 221: +#line 2707 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -8682,8 +8717,8 @@ yyreduce: ;} break; - case 219: -#line 2690 "Gmsh.y" + case 222: +#line 2741 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(7) - (8)].l)) == 4){ @@ -8702,12 +8737,13 @@ yyreduce: } else yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (8)].d)); + List_Delete((yyvsp[(7) - (8)].l)); #endif ;} break; - case 220: -#line 2711 "Gmsh.y" + case 223: +#line 2763 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) int t = (int)(yyvsp[(4) - (10)].d); @@ -8735,8 +8771,8 @@ yyreduce: ;} break; - case 221: -#line 2738 "Gmsh.y" + case 224: +#line 2790 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(12) - (14)].l)) == 0){ @@ -8754,12 +8790,13 @@ yyreduce: } else yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (14)].d)); + List_Delete((yyvsp[(12) - (14)].l)); #endif ;} break; - case 222: -#line 2759 "Gmsh.y" + case 225: +#line 2812 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(14) - (16)].l)) == 0){ @@ -8778,12 +8815,13 @@ yyreduce: } else yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (16)].d)); + List_Delete((yyvsp[(14) - (16)].l)); #endif ;} break; - case 223: -#line 2780 "Gmsh.y" + case 226: +#line 2834 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(10) - (12)].l)) == 1){ @@ -8801,12 +8839,152 @@ yyreduce: } else yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (12)].d)); + List_Delete((yyvsp[(10) - (12)].l)); #endif ;} break; - case 224: -#line 2800 "Gmsh.y" + case 227: +#line 2856 "Gmsh.y" + { +#if defined(HAVE_DINTEGRATION) + if(List_Nbr((yyvsp[(12) - (14)].l)) == 1){ + int t = (int)(yyvsp[(4) - (14)].d); + if(FindLevelSet(t)){ + yymsg(0, "Levelset %d already exists", t); + } + else { + double d; + List_Read((yyvsp[(12) - (14)].l), 0, &d); + double pt[3] = {(yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2]}; + double dir[3] = {(yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2]}; + gLevelset *ls = new gLevelsetGenCylinder(pt, dir, d, t); + LevelSet *l = Create_LevelSet(ls->getTag(), ls); + Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); + } + } + else if(List_Nbr((yyvsp[(12) - (14)].l)) == 2){ + int t = (int)(yyvsp[(4) - (14)].d); + if(FindLevelSet(t)){ + yymsg(0, "Levelset %d already exists", t); + } + else { + double d[2]; + for(int i = 0; i < 2; i++) + List_Read((yyvsp[(12) - (14)].l), i, &d[i]); + double pt[3] = {(yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2]}; + double dir[3] = {(yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2]}; + gLevelset *ls = new gLevelsetCylinder(pt, dir, d[0], d[1], t); + LevelSet *l = Create_LevelSet(ls->getTag(), ls); + Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); + } + } + else if(List_Nbr((yyvsp[(12) - (14)].l)) == 3){ + int t = (int)(yyvsp[(4) - (14)].d); + if(FindLevelSet(t)){ + yymsg(0, "Levelset %d already exists", t); + } + else { + double d[3]; + for(int i = 0; i < 3; i++) + List_Read((yyvsp[(12) - (14)].l), i, &d[i]); + double pt[3] = {(yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2]}; + double dir[3] = {(yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2]}; + gLevelset *ls = new gLevelsetCylinder(pt, dir, d[0], d[1], d[2], t); + LevelSet *l = Create_LevelSet(ls->getTag(), ls); + Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); + } + } + else + yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (14)].d)); + List_Delete((yyvsp[(12) - (14)].l)); +#endif + ;} + break; + + case 228: +#line 2912 "Gmsh.y" + { +#if defined(HAVE_DINTEGRATION) + if(List_Nbr((yyvsp[(12) - (14)].l)) == 1){ + int t = (int)(yyvsp[(4) - (14)].d); + if(FindLevelSet(t)){ + yymsg(0, "Levelset %d already exists", t); + } + else { + double d; + List_Read((yyvsp[(12) - (14)].l), 0, &d); + double pt[3] = {(yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2]}; + double dir[3] = {(yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2]}; + gLevelset *ls = new gLevelsetCone(pt, dir, d, t); + LevelSet *l = Create_LevelSet(ls->getTag(), ls); + Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); + } + } + else + yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (14)].d)); + List_Delete((yyvsp[(12) - (14)].l)); +#endif + ;} + break; + + case 229: +#line 2936 "Gmsh.y" + { +#if defined(HAVE_DINTEGRATION) + if(List_Nbr((yyvsp[(12) - (14)].l)) == 3){ + int t = (int)(yyvsp[(4) - (14)].d); + if(FindLevelSet(t)){ + yymsg(0, "Levelset %d already exists", t); + } + else { + double d[3]; + for(int i = 0; i < 3; i++) + List_Read((yyvsp[(12) - (14)].l), i, &d[i]); + double pt[3] = {(yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2]}; + double dir[3] = {(yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2]}; + gLevelset *ls = new gLevelsetEllipsoid(pt, dir, d[0], d[1], d[2], t); + LevelSet *l = Create_LevelSet(ls->getTag(), ls); + Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); + } + } + else + yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (14)].d)); + List_Delete((yyvsp[(12) - (14)].l)); +#endif + ;} + break; + + case 230: +#line 2961 "Gmsh.y" + { +#if defined(HAVE_DINTEGRATION) + if(List_Nbr((yyvsp[(12) - (14)].l)) == 5){ + int t = (int)(yyvsp[(4) - (14)].d); + if(FindLevelSet(t)){ + yymsg(0, "Levelset %d already exists", t); + } + else { + double d[5]; + for(int i = 0; i < 5; i++) + List_Read((yyvsp[(12) - (14)].l), i, &d[i]); + double pt[3] = {(yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2]}; + double dir[3] = {(yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2]}; + gLevelset *ls = new gLevelsetGeneralQuadric(pt, dir, d[0], d[1], + d[2], d[3], d[4], t); + LevelSet *l = Create_LevelSet(ls->getTag(), ls); + Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); + } + } + else + yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (14)].d)); + List_Delete((yyvsp[(12) - (14)].l)); +#endif + ;} + break; + + case 231: +#line 2986 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (8)].c), "Union")){ @@ -8916,12 +9094,13 @@ yyreduce: else yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (8)].d)); Free((yyvsp[(2) - (8)].c)); + List_Delete((yyvsp[(7) - (8)].l)); #endif ;} break; - case 225: -#line 2912 "Gmsh.y" + case 232: +#line 3099 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (8)].c), "MathEval")){ @@ -8942,8 +9121,8 @@ yyreduce: ;} break; - case 226: -#line 2931 "Gmsh.y" + case 233: +#line 3118 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (6)].c), "CutMesh")){ @@ -8971,126 +9150,20 @@ yyreduce: GModel *GM = GModel::current(); if(FindLevelSet(t)){ GM->buildCutGModel(FindLevelSet(t)->ls, false, true); - GM->setVisibility(0); - } - else - yymsg(0, "Unknown levelset (%d)", t); - } - else - yymsg(0, "Wrong levelset definition"); - Free((yyvsp[(2) - (6)].c)); -#endif - ;} - break; - - case 227: -#line 2970 "Gmsh.y" - { -#if defined(HAVE_DINTEGRATION) - if(!strcmp((yyvsp[(2) - (14)].c), "Cylinder") && List_Nbr((yyvsp[(12) - (14)].l)) == 1){ - int t = (int)(yyvsp[(4) - (14)].d); - if(FindLevelSet(t)){ - yymsg(0, "Levelset %d already exists", t); - } - else { - double d; - List_Read((yyvsp[(12) - (14)].l), 0, &d); - double pt[3] = {(yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2]}; - double dir[3] = {(yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2]}; - gLevelset *ls = new gLevelsetGenCylinder(pt, dir, d, t); - LevelSet *l = Create_LevelSet(ls->getTag(), ls); - Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); - } - } - else if(!strcmp((yyvsp[(2) - (14)].c), "Cone") && List_Nbr((yyvsp[(12) - (14)].l)) == 1){ - int t = (int)(yyvsp[(4) - (14)].d); - if(FindLevelSet(t)){ - yymsg(0, "Levelset %d already exists", t); - } - else { - double d; - List_Read((yyvsp[(12) - (14)].l), 0, &d); - double pt[3] = {(yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2]}; - double dir[3] = {(yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2]}; - gLevelset *ls = new gLevelsetCone(pt, dir, d, t); - LevelSet *l = Create_LevelSet(ls->getTag(), ls); - Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); - } - } - else if(!strcmp((yyvsp[(2) - (14)].c), "Cylinder") && List_Nbr((yyvsp[(12) - (14)].l)) == 2){ - int t = (int)(yyvsp[(4) - (14)].d); - if(FindLevelSet(t)){ - yymsg(0, "Levelset %d already exists", t); - } - else { - double d[2]; - for(int i = 0; i < 2; i++) - List_Read((yyvsp[(12) - (14)].l), i, &d[i]); - double pt[3] = {(yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2]}; - double dir[3] = {(yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2]}; - gLevelset *ls = new gLevelsetCylinder(pt, dir, d[0], d[1], t); - LevelSet *l = Create_LevelSet(ls->getTag(), ls); - Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); - } - } - else if(!strcmp((yyvsp[(2) - (14)].c), "Cylinder") && List_Nbr((yyvsp[(12) - (14)].l)) == 3){ - int t = (int)(yyvsp[(4) - (14)].d); - if(FindLevelSet(t)){ - yymsg(0, "Levelset %d already exists", t); - } - else { - double d[3]; - for(int i = 0; i < 3; i++) - List_Read((yyvsp[(12) - (14)].l), i, &d[i]); - double pt[3] = {(yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2]}; - double dir[3] = {(yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2]}; - gLevelset *ls = new gLevelsetCylinder(pt, dir, d[0], d[1], d[2], t); - LevelSet *l = Create_LevelSet(ls->getTag(), ls); - Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); - } - } - else if(!strcmp((yyvsp[(2) - (14)].c), "Ellipsoid") && List_Nbr((yyvsp[(12) - (14)].l)) == 3){ - int t = (int)(yyvsp[(4) - (14)].d); - if(FindLevelSet(t)){ - yymsg(0, "Levelset %d already exists", t); - } - else { - double d[3]; - for(int i = 0; i < 3; i++) - List_Read((yyvsp[(12) - (14)].l), i, &d[i]); - double pt[3] = {(yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2]}; - double dir[3] = {(yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2]}; - gLevelset *ls = new gLevelsetEllipsoid(pt, dir, d[0], d[1], d[2], t); - LevelSet *l = Create_LevelSet(ls->getTag(), ls); - Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); - } - } - else if(!strcmp((yyvsp[(2) - (14)].c), "Quadric") && List_Nbr((yyvsp[(12) - (14)].l)) == 5){ - int t = (int)(yyvsp[(4) - (14)].d); - if(FindLevelSet(t)){ - yymsg(0, "Levelset %d already exists", t); - } - else { - double d[5]; - for(int i = 0; i < 5; i++) - List_Read((yyvsp[(12) - (14)].l), i, &d[i]); - double pt[3] = {(yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2]}; - double dir[3] = {(yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2]}; - gLevelset *ls = new gLevelsetGeneralQuadric(pt, dir, d[0], d[1], - d[2], d[3], d[4], t); - LevelSet *l = Create_LevelSet(ls->getTag(), ls); - Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); + GM->setVisibility(0); } + else + yymsg(0, "Unknown levelset (%d)", t); } else - yymsg(0, "Wrong levelset definition (%d)", (yyvsp[(4) - (14)].d)); - Free((yyvsp[(2) - (14)].c)); + yymsg(0, "Wrong levelset definition"); + Free((yyvsp[(2) - (6)].c)); #endif ;} break; - case 228: -#line 3078 "Gmsh.y" + case 234: +#line 3161 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -9101,8 +9174,8 @@ yyreduce: ;} break; - case 229: -#line 3087 "Gmsh.y" + case 235: +#line 3170 "Gmsh.y" { #if defined(HAVE_MESH) GModel::current()->getFields()->deleteField((int)(yyvsp[(4) - (6)].d)); @@ -9110,8 +9183,8 @@ yyreduce: ;} break; - case 230: -#line 3093 "Gmsh.y" + case 236: +#line 3176 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -9128,8 +9201,8 @@ yyreduce: ;} break; - case 231: -#line 3108 "Gmsh.y" + case 237: +#line 3191 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Meshes") || !strcmp((yyvsp[(2) - (3)].c), "All")){ ClearProject(); @@ -9159,8 +9232,8 @@ yyreduce: ;} break; - case 232: -#line 3136 "Gmsh.y" + case 238: +#line 3219 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (4)].c), "Empty") && !strcmp((yyvsp[(3) - (4)].c), "Views")){ @@ -9174,8 +9247,8 @@ yyreduce: ;} break; - case 233: -#line 3153 "Gmsh.y" + case 239: +#line 3236 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -9186,8 +9259,8 @@ yyreduce: ;} break; - case 234: -#line 3162 "Gmsh.y" + case 240: +#line 3245 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(5) - (6)].l)); i++){ Shape TheShape; @@ -9198,8 +9271,8 @@ yyreduce: ;} break; - case 235: -#line 3176 "Gmsh.y" + case 241: +#line 3259 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -9210,8 +9283,8 @@ yyreduce: ;} break; - case 236: -#line 3190 "Gmsh.y" + case 242: +#line 3273 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 1, false); @@ -9219,8 +9292,8 @@ yyreduce: ;} break; - case 237: -#line 3196 "Gmsh.y" + case 243: +#line 3279 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 0, false); @@ -9228,8 +9301,8 @@ yyreduce: ;} break; - case 238: -#line 3202 "Gmsh.y" + case 244: +#line 3285 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -9240,8 +9313,8 @@ yyreduce: ;} break; - case 239: -#line 3211 "Gmsh.y" + case 245: +#line 3294 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -9252,8 +9325,8 @@ yyreduce: ;} break; - case 240: -#line 3220 "Gmsh.y" + case 246: +#line 3303 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -9264,8 +9337,8 @@ yyreduce: ;} break; - case 241: -#line 3229 "Gmsh.y" + case 247: +#line 3312 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -9276,8 +9349,8 @@ yyreduce: ;} break; - case 242: -#line 3243 "Gmsh.y" + case 248: +#line 3326 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Include")){ std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(2) - (3)].c)); @@ -9341,8 +9414,8 @@ yyreduce: ;} break; - case 243: -#line 3305 "Gmsh.y" + case 249: +#line 3388 "Gmsh.y" { int n = List_Nbr((yyvsp[(3) - (5)].l)); if(n == 1){ @@ -9362,8 +9435,8 @@ yyreduce: ;} break; - case 244: -#line 3323 "Gmsh.y" + case 250: +#line 3406 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(1) - (7)].c), "Save") && !strcmp((yyvsp[(2) - (7)].c), "View")){ @@ -9382,8 +9455,8 @@ yyreduce: ;} break; - case 245: -#line 3340 "Gmsh.y" + case 251: +#line 3423 "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")){ @@ -9400,8 +9473,8 @@ yyreduce: ;} break; - case 246: -#line 3355 "Gmsh.y" + case 252: +#line 3438 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Sleep")){ SleepInSeconds((yyvsp[(2) - (3)].d)); @@ -9432,8 +9505,8 @@ yyreduce: ;} break; - case 247: -#line 3384 "Gmsh.y" + case 253: +#line 3467 "Gmsh.y" { #if defined(HAVE_PLUGINS) try { @@ -9447,8 +9520,8 @@ yyreduce: ;} break; - case 248: -#line 3396 "Gmsh.y" + case 254: +#line 3479 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (3)].c), "ElementsFromAllViews")) @@ -9474,23 +9547,23 @@ yyreduce: ;} break; - case 249: -#line 3420 "Gmsh.y" + case 255: +#line 3503 "Gmsh.y" { Msg::Exit(0); ;} break; - case 250: -#line 3424 "Gmsh.y" + case 256: +#line 3507 "Gmsh.y" { gmsh_yyerrorstate = 999; // this will be checked when yyparse returns YYABORT; ;} break; - case 251: -#line 3429 "Gmsh.y" + case 257: +#line 3512 "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 @@ -9500,16 +9573,16 @@ yyreduce: ;} break; - case 252: -#line 3437 "Gmsh.y" + case 258: +#line 3520 "Gmsh.y" { new GModel(); GModel::current(GModel::list.size() - 1); ;} break; - case 253: -#line 3442 "Gmsh.y" + case 259: +#line 3525 "Gmsh.y" { CTX::instance()->forcedBBox = 0; GModel::current()->importGEOInternals(); @@ -9517,16 +9590,16 @@ yyreduce: ;} break; - case 254: -#line 3448 "Gmsh.y" + case 260: +#line 3531 "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 255: -#line 3453 "Gmsh.y" + case 261: +#line 3536 "Gmsh.y" { #if defined(HAVE_OPENGL) drawContext::global()->draw(); @@ -9534,8 +9607,8 @@ yyreduce: ;} break; - case 256: -#line 3459 "Gmsh.y" + case 262: +#line 3542 "Gmsh.y" { #if defined(HAVE_OPENGL) CTX::instance()->mesh.changed = ENT_ALL; @@ -9545,30 +9618,30 @@ yyreduce: ;} break; - case 257: -#line 3467 "Gmsh.y" + case 263: +#line 3550 "Gmsh.y" { GModel::current()->createTopologyFromMesh(); ;} break; - case 258: -#line 3471 "Gmsh.y" + case 264: +#line 3554 "Gmsh.y" { GModel::current()->createTopologyFromMesh(1); ;} break; - case 259: -#line 3475 "Gmsh.y" + case 265: +#line 3558 "Gmsh.y" { GModel::current()->importGEOInternals(); GModel::current()->refineMesh(CTX::instance()->mesh.secondOrderLinear); ;} break; - case 260: -#line 3481 "Gmsh.y" + case 266: +#line 3564 "Gmsh.y" { int lock = CTX::instance()->lock; CTX::instance()->lock = 0; @@ -9624,8 +9697,8 @@ yyreduce: ;} break; - case 261: -#line 3540 "Gmsh.y" + case 267: +#line 3623 "Gmsh.y" { #if defined(HAVE_POPPLER) std::vector<int> is; @@ -9639,8 +9712,8 @@ yyreduce: ;} break; - case 262: -#line 3556 "Gmsh.y" + case 268: +#line 3639 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (6)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (6)].d); @@ -9659,8 +9732,8 @@ yyreduce: ;} break; - case 263: -#line 3573 "Gmsh.y" + case 269: +#line 3656 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (8)].d); @@ -9679,8 +9752,8 @@ yyreduce: ;} break; - case 264: -#line 3590 "Gmsh.y" + case 270: +#line 3673 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (8)].d); @@ -9704,8 +9777,8 @@ yyreduce: ;} break; - case 265: -#line 3612 "Gmsh.y" + case 271: +#line 3695 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (10)].d); @@ -9729,8 +9802,8 @@ yyreduce: ;} break; - case 266: -#line 3634 "Gmsh.y" + case 272: +#line 3717 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(0, "Invalid For/EndFor loop"); @@ -9767,8 +9840,8 @@ yyreduce: ;} break; - case 267: -#line 3669 "Gmsh.y" + case 273: +#line 3752 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction (std::string((yyvsp[(2) - (2)].c)), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -9778,8 +9851,8 @@ yyreduce: ;} break; - case 268: -#line 3677 "Gmsh.y" + case 274: +#line 3760 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction (std::string((yyvsp[(2) - (2)].c)), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -9789,8 +9862,8 @@ yyreduce: ;} break; - case 269: -#line 3685 "Gmsh.y" + case 275: +#line 3768 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction (&gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -9798,8 +9871,8 @@ yyreduce: ;} break; - case 270: -#line 3691 "Gmsh.y" + case 276: +#line 3774 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction (std::string((yyvsp[(2) - (3)].c)), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -9808,8 +9881,8 @@ yyreduce: ;} break; - case 271: -#line 3698 "Gmsh.y" + case 277: +#line 3781 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction (std::string((yyvsp[(2) - (3)].c)), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -9818,8 +9891,8 @@ yyreduce: ;} break; - case 272: -#line 3705 "Gmsh.y" + case 278: +#line 3788 "Gmsh.y" { ImbricatedTest++; if(ImbricatedTest > MAX_RECUR_TESTS-1){ @@ -9841,8 +9914,8 @@ yyreduce: ;} break; - case 273: -#line 3725 "Gmsh.y" + case 279: +#line 3808 "Gmsh.y" { if(ImbricatedTest > 0){ if (statusImbricatedTests[ImbricatedTest]){ @@ -9870,8 +9943,8 @@ yyreduce: ;} break; - case 274: -#line 3751 "Gmsh.y" + case 280: +#line 3834 "Gmsh.y" { if(ImbricatedTest > 0){ if(statusImbricatedTests[ImbricatedTest]){ @@ -9885,8 +9958,8 @@ yyreduce: ;} break; - case 275: -#line 3763 "Gmsh.y" + case 281: +#line 3846 "Gmsh.y" { ImbricatedTest--; if(ImbricatedTest < 0) @@ -9894,8 +9967,8 @@ yyreduce: ;} break; - case 276: -#line 3775 "Gmsh.y" + case 282: +#line 3858 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (5)].l), @@ -9905,8 +9978,8 @@ yyreduce: ;} break; - case 277: -#line 3783 "Gmsh.y" + case 283: +#line 3866 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (11)].l), @@ -9916,8 +9989,8 @@ yyreduce: ;} break; - case 278: -#line 3791 "Gmsh.y" + case 284: +#line 3874 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (13)].l), @@ -9927,8 +10000,8 @@ yyreduce: ;} break; - case 279: -#line 3799 "Gmsh.y" + case 285: +#line 3882 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -9936,8 +10009,8 @@ yyreduce: ;} break; - case 280: -#line 3805 "Gmsh.y" + case 286: +#line 3888 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (7)].l), @@ -9947,8 +10020,8 @@ yyreduce: ;} break; - case 281: -#line 3813 "Gmsh.y" + case 287: +#line 3896 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -9956,8 +10029,8 @@ yyreduce: ;} break; - case 282: -#line 3819 "Gmsh.y" + case 288: +#line 3902 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (13)].l), @@ -9967,8 +10040,8 @@ yyreduce: ;} break; - case 283: -#line 3827 "Gmsh.y" + case 289: +#line 3910 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -9976,8 +10049,8 @@ yyreduce: ;} break; - case 284: -#line 3833 "Gmsh.y" + case 290: +#line 3916 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (15)].l), @@ -9987,8 +10060,8 @@ yyreduce: ;} break; - case 285: -#line 3841 "Gmsh.y" + case 291: +#line 3924 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -9996,8 +10069,8 @@ yyreduce: ;} break; - case 286: -#line 3847 "Gmsh.y" + case 292: +#line 3930 "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., @@ -10006,8 +10079,8 @@ yyreduce: ;} break; - case 287: -#line 3855 "Gmsh.y" + case 293: +#line 3938 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (8)].d), @@ -10016,8 +10089,8 @@ yyreduce: ;} break; - case 288: -#line 3862 "Gmsh.y" + case 294: +#line 3945 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (8)].d), @@ -10026,8 +10099,8 @@ yyreduce: ;} break; - case 289: -#line 3869 "Gmsh.y" + case 295: +#line 3952 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (8)].d), @@ -10036,8 +10109,8 @@ yyreduce: ;} break; - case 290: -#line 3876 "Gmsh.y" + case 296: +#line 3959 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -10046,8 +10119,8 @@ yyreduce: ;} break; - case 291: -#line 3883 "Gmsh.y" + case 297: +#line 3966 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -10056,8 +10129,8 @@ yyreduce: ;} break; - case 292: -#line 3890 "Gmsh.y" + case 298: +#line 3973 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -10066,8 +10139,8 @@ yyreduce: ;} break; - case 293: -#line 3897 "Gmsh.y" + case 299: +#line 3980 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (14)].d), @@ -10076,8 +10149,8 @@ yyreduce: ;} break; - case 294: -#line 3904 "Gmsh.y" + case 300: +#line 3987 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (14)].d), @@ -10086,8 +10159,8 @@ yyreduce: ;} break; - case 295: -#line 3911 "Gmsh.y" + case 301: +#line 3994 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (14)].d), @@ -10096,8 +10169,8 @@ yyreduce: ;} break; - case 296: -#line 3918 "Gmsh.y" + case 302: +#line 4001 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10105,8 +10178,8 @@ yyreduce: ;} break; - case 297: -#line 3924 "Gmsh.y" + case 303: +#line 4007 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -10115,8 +10188,8 @@ yyreduce: ;} break; - case 298: -#line 3931 "Gmsh.y" + case 304: +#line 4014 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10124,8 +10197,8 @@ yyreduce: ;} break; - case 299: -#line 3937 "Gmsh.y" + case 305: +#line 4020 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -10134,8 +10207,8 @@ yyreduce: ;} break; - case 300: -#line 3944 "Gmsh.y" + case 306: +#line 4027 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10143,8 +10216,8 @@ yyreduce: ;} break; - case 301: -#line 3950 "Gmsh.y" + case 307: +#line 4033 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -10153,8 +10226,8 @@ yyreduce: ;} break; - case 302: -#line 3957 "Gmsh.y" + case 308: +#line 4040 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10162,8 +10235,8 @@ yyreduce: ;} break; - case 303: -#line 3963 "Gmsh.y" + case 309: +#line 4046 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (16)].d), @@ -10172,8 +10245,8 @@ yyreduce: ;} break; - case 304: -#line 3970 "Gmsh.y" + case 310: +#line 4053 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10181,8 +10254,8 @@ yyreduce: ;} break; - case 305: -#line 3976 "Gmsh.y" + case 311: +#line 4059 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (16)].d), @@ -10191,8 +10264,8 @@ yyreduce: ;} break; - case 306: -#line 3983 "Gmsh.y" + case 312: +#line 4066 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10200,8 +10273,8 @@ yyreduce: ;} break; - case 307: -#line 3989 "Gmsh.y" + case 313: +#line 4072 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (16)].d), @@ -10210,8 +10283,8 @@ yyreduce: ;} break; - case 308: -#line 3996 "Gmsh.y" + case 314: +#line 4079 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10219,8 +10292,8 @@ yyreduce: ;} break; - case 309: -#line 4002 "Gmsh.y" + case 315: +#line 4085 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (18)].d), @@ -10229,8 +10302,8 @@ yyreduce: ;} break; - case 310: -#line 4009 "Gmsh.y" + case 316: +#line 4092 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10238,8 +10311,8 @@ yyreduce: ;} break; - case 311: -#line 4015 "Gmsh.y" + case 317: +#line 4098 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (18)].d), @@ -10248,8 +10321,8 @@ yyreduce: ;} break; - case 312: -#line 4022 "Gmsh.y" + case 318: +#line 4105 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10257,8 +10330,8 @@ yyreduce: ;} break; - case 313: -#line 4028 "Gmsh.y" + case 319: +#line 4111 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (18)].d), @@ -10267,20 +10340,20 @@ yyreduce: ;} break; - case 314: -#line 4039 "Gmsh.y" + case 320: +#line 4122 "Gmsh.y" { ;} break; - case 315: -#line 4042 "Gmsh.y" + case 321: +#line 4125 "Gmsh.y" { ;} break; - case 316: -#line 4048 "Gmsh.y" + case 322: +#line 4131 "Gmsh.y" { int n = (int)fabs((yyvsp[(3) - (5)].d)); if(n){ // we accept n==0 to easily disable layers @@ -10294,8 +10367,8 @@ yyreduce: ;} break; - case 317: -#line 4060 "Gmsh.y" + case 323: +#line 4143 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (7)].l)); @@ -10317,8 +10390,8 @@ yyreduce: ;} break; - case 318: -#line 4080 "Gmsh.y" + case 324: +#line 4163 "Gmsh.y" { yymsg(0, "Explicit region numbers in layers are deprecated"); extr.mesh.ExtrudeMesh = true; @@ -10343,43 +10416,43 @@ yyreduce: ;} break; - case 319: -#line 4104 "Gmsh.y" + case 325: +#line 4187 "Gmsh.y" { extr.mesh.ScaleLast = true; ;} break; - case 320: -#line 4108 "Gmsh.y" + case 326: +#line 4191 "Gmsh.y" { extr.mesh.Recombine = true; ;} break; - case 321: -#line 4112 "Gmsh.y" + case 327: +#line 4195 "Gmsh.y" { extr.mesh.Recombine = (yyvsp[(2) - (3)].d) ? true : false; ;} break; - case 322: -#line 4116 "Gmsh.y" + case 328: +#line 4199 "Gmsh.y" { yymsg(0, "Keyword 'QuadTriSngl' deprecated. Use 'QuadTriNoNewVerts' instead."); ;} break; - case 323: -#line 4120 "Gmsh.y" + case 329: +#line 4203 "Gmsh.y" { yymsg(0, "Keyword 'QuadTriSngl' deprecated. Use 'QuadTriNoNewVerts' instead."); ;} break; - case 324: -#line 4124 "Gmsh.y" + case 330: +#line 4207 "Gmsh.y" { yymsg(0, "Method 'QuadTriDbl' deprecated. Use 'QuadTriAddVerts' instead, " "which has no requirement for the number of extrusion layers and meshes " @@ -10387,8 +10460,8 @@ yyreduce: ;} break; - case 325: -#line 4130 "Gmsh.y" + case 331: +#line 4213 "Gmsh.y" { yymsg(0, "Method 'QuadTriDbl' deprecated. Use 'QuadTriAddVerts' instead, " "which has no requirement for the number of extrusion layers and meshes " @@ -10396,36 +10469,36 @@ yyreduce: ;} break; - case 326: -#line 4136 "Gmsh.y" + case 332: +#line 4219 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_ADDVERTS_1; ;} break; - case 327: -#line 4140 "Gmsh.y" + case 333: +#line 4223 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_ADDVERTS_1_RECOMB; ;} break; - case 328: -#line 4144 "Gmsh.y" + case 334: +#line 4227 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_NOVERTS_1; ;} break; - case 329: -#line 4148 "Gmsh.y" + case 335: +#line 4231 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_NOVERTS_1_RECOMB; ;} break; - case 330: -#line 4152 "Gmsh.y" + case 336: +#line 4235 "Gmsh.y" { int num = (int)(yyvsp[(3) - (9)].d); if(FindSurface(num)){ @@ -10446,8 +10519,8 @@ yyreduce: ;} break; - case 331: -#line 4171 "Gmsh.y" + case 337: +#line 4254 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (6)].c), "Index")) extr.mesh.BoundaryLayerIndex = (yyvsp[(4) - (6)].d); @@ -10457,38 +10530,38 @@ yyreduce: ;} break; - case 332: -#line 4183 "Gmsh.y" + case 338: +#line 4266 "Gmsh.y" { (yyval.i) = OCC_Internals::Fuse; ;} break; - case 333: -#line 4184 "Gmsh.y" + case 339: +#line 4267 "Gmsh.y" { (yyval.i) = OCC_Internals::Intersection; ;} break; - case 334: -#line 4185 "Gmsh.y" + case 340: +#line 4268 "Gmsh.y" { (yyval.i) = OCC_Internals::Cut; ;} break; - case 335: -#line 4189 "Gmsh.y" + case 341: +#line 4272 "Gmsh.y" { (yyval.i) = 0; ;} break; - case 336: -#line 4190 "Gmsh.y" + case 342: +#line 4273 "Gmsh.y" { (yyval.i) = 1; ;} break; - case 337: -#line 4191 "Gmsh.y" + case 343: +#line 4274 "Gmsh.y" { (yyval.i) = (yyvsp[(2) - (3)].d); ;} break; - case 338: -#line 4195 "Gmsh.y" + case 344: +#line 4278 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ @@ -10500,23 +10573,42 @@ yyreduce: Shape s; List_Read((yyvsp[(7) - (9)].l), i, &s); tool[3].push_back(s.Num); } GModel::current()->getOCCInternals()->applyBooleanOperator - (-1, shape, tool, (OCC_Internals::BooleanOperator)(yyvsp[(1) - (9)].i), (yyvsp[(4) - (9)].i), (yyvsp[(8) - (9)].i)); - // FIXME add to returned list of shapes + (-1, shape, tool, (OCC_Internals::BooleanOperator)(yyvsp[(1) - (9)].i), (yyvsp[(4) - (9)].i), (yyvsp[(8) - (9)].i)); + // FIXME add to returned list of shapes + } + List_Delete((yyvsp[(3) - (9)].l)); + List_Delete((yyvsp[(7) - (9)].l)); + ;} + break; + + case 345: +#line 4299 "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); + } + 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); + } + GModel::current()->getOCCInternals()->applyBooleanOperator + ((int)(yyvsp[(3) - (14)].d), shape, tool, (OCC_Internals::BooleanOperator)(yyvsp[(1) - (14)].i), (yyvsp[(8) - (14)].i), (yyvsp[(12) - (14)].i)); } - List_Delete((yyvsp[(3) - (9)].l)); - List_Delete((yyvsp[(7) - (9)].l)); + List_Delete((yyvsp[(7) - (14)].l)); + List_Delete((yyvsp[(11) - (14)].l)); ;} break; - case 339: -#line 4216 "Gmsh.y" + case 346: +#line 4318 "Gmsh.y" { (yyval.v)[0] = (yyval.v)[1] = 1.; ;} break; - case 340: -#line 4220 "Gmsh.y" + case 347: +#line 4322 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power")) (yyval.v)[0] = 1.; @@ -10531,15 +10623,15 @@ yyreduce: ;} break; - case 341: -#line 4235 "Gmsh.y" + case 348: +#line 4337 "Gmsh.y" { (yyval.i) = -1; // left ;} break; - case 342: -#line 4239 "Gmsh.y" + case 349: +#line 4341 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "Right")) (yyval.i) = 1; @@ -10555,50 +10647,50 @@ yyreduce: ;} break; - case 343: -#line 4255 "Gmsh.y" + case 350: +#line 4357 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; - case 344: -#line 4259 "Gmsh.y" + case 351: +#line 4361 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; - case 345: -#line 4264 "Gmsh.y" + case 352: +#line 4366 "Gmsh.y" { (yyval.i) = 45; ;} break; - case 346: -#line 4268 "Gmsh.y" + case 353: +#line 4370 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(2) - (2)].d); ;} break; - case 347: -#line 4274 "Gmsh.y" + case 354: +#line 4376 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; - case 348: -#line 4278 "Gmsh.y" + case 355: +#line 4380 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; - case 349: -#line 4285 "Gmsh.y" + case 356: +#line 4387 "Gmsh.y" { int type = (int)(yyvsp[(6) - (7)].v)[0]; double coef = fabs((yyvsp[(6) - (7)].v)[1]); @@ -10656,8 +10748,8 @@ yyreduce: ;} break; - case 350: -#line 4341 "Gmsh.y" + case 357: +#line 4443 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (6)].l)); if(k != 0 && k != 3 && k != 4){ @@ -10729,16 +10821,16 @@ yyreduce: ;} break; - case 351: -#line 4411 "Gmsh.y" + case 358: +#line 4513 "Gmsh.y" { yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete((yyvsp[(7) - (8)].l)); ;} break; - case 352: -#line 4416 "Gmsh.y" + case 359: +#line 4518 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (5)].l)); if(k != 0 && k != 6 && k != 8){ @@ -10807,8 +10899,8 @@ yyreduce: ;} break; - case 353: -#line 4483 "Gmsh.y" + case 360: +#line 4585 "Gmsh.y" { if(!(yyvsp[(2) - (3)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Volumes); @@ -10846,8 +10938,8 @@ yyreduce: ;} break; - case 354: -#line 4519 "Gmsh.y" + case 361: +#line 4621 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (8)].l)); i++){ double d; @@ -10857,8 +10949,8 @@ yyreduce: ;} break; - case 355: -#line 4527 "Gmsh.y" + case 362: +#line 4629 "Gmsh.y" { if(!(yyvsp[(3) - (5)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -10903,8 +10995,8 @@ yyreduce: ;} break; - case 356: -#line 4570 "Gmsh.y" + case 363: +#line 4672 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Volumes); @@ -10945,8 +11037,8 @@ yyreduce: ;} break; - case 357: -#line 4609 "Gmsh.y" + case 364: +#line 4711 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -10968,8 +11060,8 @@ yyreduce: ;} break; - case 358: -#line 4630 "Gmsh.y" + case 365: +#line 4732 "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 " @@ -11002,8 +11094,8 @@ yyreduce: ;} break; - case 359: -#line 4662 "Gmsh.y" + case 366: +#line 4764 "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 " @@ -11031,8 +11123,8 @@ yyreduce: ;} break; - case 360: -#line 4689 "Gmsh.y" + case 367: +#line 4791 "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 " @@ -11059,8 +11151,8 @@ yyreduce: ;} break; - case 361: -#line 4715 "Gmsh.y" + case 368: +#line 4817 "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 " @@ -11087,8 +11179,8 @@ yyreduce: ;} break; - case 362: -#line 4741 "Gmsh.y" + case 369: +#line 4843 "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 " @@ -11115,8 +11207,8 @@ yyreduce: ;} break; - case 363: -#line 4767 "Gmsh.y" + case 370: +#line 4869 "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 " @@ -11143,8 +11235,8 @@ yyreduce: ;} break; - case 364: -#line 4793 "Gmsh.y" + case 371: +#line 4895 "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 " @@ -11167,8 +11259,8 @@ yyreduce: ;} break; - case 365: -#line 4814 "Gmsh.y" + case 372: +#line 4916 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -11198,8 +11290,8 @@ yyreduce: ;} break; - case 366: -#line 4842 "Gmsh.y" + case 373: +#line 4944 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -11229,8 +11321,8 @@ yyreduce: ;} break; - case 367: -#line 4870 "Gmsh.y" + case 374: +#line 4972 "Gmsh.y" { Volume *v = FindVolume((int)(yyvsp[(8) - (10)].d)); if(v){ @@ -11260,8 +11352,8 @@ yyreduce: ;} break; - case 368: -#line 4898 "Gmsh.y" + case 375: +#line 5000 "Gmsh.y" { Volume *v = FindVolume((int)(yyvsp[(8) - (10)].d)); if(v){ @@ -11291,8 +11383,8 @@ yyreduce: ;} break; - case 369: -#line 4926 "Gmsh.y" + case 376: +#line 5028 "Gmsh.y" { Volume *v = FindVolume((int)(yyvsp[(8) - (10)].d)); if(v){ @@ -11322,8 +11414,8 @@ yyreduce: ;} break; - case 370: -#line 4954 "Gmsh.y" + case 377: +#line 5056 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -11364,8 +11456,8 @@ yyreduce: ;} break; - case 371: -#line 4993 "Gmsh.y" + case 378: +#line 5095 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Curves); @@ -11406,8 +11498,8 @@ yyreduce: ;} break; - case 372: -#line 5032 "Gmsh.y" + case 379: +#line 5134 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::viter it = GModel::current()->firstVertex(); @@ -11430,8 +11522,8 @@ yyreduce: ;} break; - case 373: -#line 5053 "Gmsh.y" + case 380: +#line 5155 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::eiter it = GModel::current()->firstEdge(); @@ -11454,8 +11546,8 @@ yyreduce: ;} break; - case 374: -#line 5074 "Gmsh.y" + case 381: +#line 5176 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::fiter it = GModel::current()->firstFace(); @@ -11478,15 +11570,15 @@ yyreduce: ;} break; - case 375: -#line 5101 "Gmsh.y" + case 382: +#line 5203 "Gmsh.y" { ReplaceAllDuplicates(); ;} break; - case 376: -#line 5105 "Gmsh.y" + case 383: +#line 5207 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Geometry")) ReplaceAllDuplicates(); @@ -11498,8 +11590,8 @@ yyreduce: ;} break; - case 377: -#line 5115 "Gmsh.y" + case 384: +#line 5217 "Gmsh.y" { if(List_Nbr((yyvsp[(4) - (6)].l)) >= 2){ double d; @@ -11531,23 +11623,23 @@ yyreduce: ;} break; - case 378: -#line 5149 "Gmsh.y" + case 385: +#line 5251 "Gmsh.y" { (yyval.c) = (char*)"Homology"; ;} break; - case 379: -#line 5150 "Gmsh.y" + case 386: +#line 5252 "Gmsh.y" { (yyval.c) = (char*)"Cohomology"; ;} break; - case 380: -#line 5151 "Gmsh.y" + case 387: +#line 5253 "Gmsh.y" { (yyval.c) = (char*)"Betti"; ;} break; - case 381: -#line 5156 "Gmsh.y" + case 388: +#line 5258 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < 4; i++) dim.push_back(i); @@ -11555,8 +11647,8 @@ yyreduce: ;} break; - case 382: -#line 5162 "Gmsh.y" + case 389: +#line 5264 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(3) - (5)].l)); i++){ @@ -11570,8 +11662,8 @@ yyreduce: ;} break; - case 383: -#line 5174 "Gmsh.y" + case 390: +#line 5276 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(3) - (7)].l)); i++){ @@ -11591,8 +11683,8 @@ yyreduce: ;} break; - case 384: -#line 5192 "Gmsh.y" + case 391: +#line 5294 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(6) - (10)].l)); i++){ @@ -11617,48 +11709,48 @@ yyreduce: ;} break; - case 385: -#line 5219 "Gmsh.y" + case 392: +#line 5321 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; - case 386: -#line 5220 "Gmsh.y" + case 393: +#line 5322 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (3)].d); ;} break; - case 387: -#line 5221 "Gmsh.y" + case 394: +#line 5323 "Gmsh.y" { (yyval.d) = -(yyvsp[(2) - (2)].d); ;} break; - case 388: -#line 5222 "Gmsh.y" + case 395: +#line 5324 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; - case 389: -#line 5223 "Gmsh.y" + case 396: +#line 5325 "Gmsh.y" { (yyval.d) = !(yyvsp[(2) - (2)].d); ;} break; - case 390: -#line 5224 "Gmsh.y" + case 397: +#line 5326 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;} break; - case 391: -#line 5225 "Gmsh.y" + case 398: +#line 5327 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;} break; - case 392: -#line 5226 "Gmsh.y" + case 399: +#line 5328 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;} break; - case 393: -#line 5228 "Gmsh.y" + case 400: +#line 5330 "Gmsh.y" { if(!(yyvsp[(3) - (3)].d)) yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); @@ -11667,233 +11759,233 @@ yyreduce: ;} break; - case 394: -#line 5234 "Gmsh.y" + case 401: +#line 5336 "Gmsh.y" { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} break; - case 395: -#line 5235 "Gmsh.y" + case 402: +#line 5337 "Gmsh.y" { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} break; - case 396: -#line 5236 "Gmsh.y" + case 403: +#line 5338 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} break; - case 397: -#line 5237 "Gmsh.y" + case 404: +#line 5339 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} break; - case 398: -#line 5238 "Gmsh.y" + case 405: +#line 5340 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} break; - case 399: -#line 5239 "Gmsh.y" + case 406: +#line 5341 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} break; - case 400: -#line 5240 "Gmsh.y" + case 407: +#line 5342 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} break; - case 401: -#line 5241 "Gmsh.y" + case 408: +#line 5343 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} break; - case 402: -#line 5242 "Gmsh.y" + case 409: +#line 5344 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} break; - case 403: -#line 5243 "Gmsh.y" + case 410: +#line 5345 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} break; - case 404: -#line 5244 "Gmsh.y" + case 411: +#line 5346 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} break; - case 405: -#line 5245 "Gmsh.y" + case 412: +#line 5347 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; - case 406: -#line 5246 "Gmsh.y" + case 413: +#line 5348 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; - case 407: -#line 5247 "Gmsh.y" + case 414: +#line 5349 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; - case 408: -#line 5248 "Gmsh.y" + case 415: +#line 5350 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; - case 409: -#line 5249 "Gmsh.y" + case 416: +#line 5351 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; - case 410: -#line 5250 "Gmsh.y" + case 417: +#line 5352 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; - case 411: -#line 5251 "Gmsh.y" + case 418: +#line 5353 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; - case 412: -#line 5252 "Gmsh.y" + case 419: +#line 5354 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; - case 413: -#line 5253 "Gmsh.y" + case 420: +#line 5355 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; - case 414: -#line 5254 "Gmsh.y" + case 421: +#line 5356 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; - case 415: -#line 5255 "Gmsh.y" + case 422: +#line 5357 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; - case 416: -#line 5256 "Gmsh.y" + case 423: +#line 5358 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; - case 417: -#line 5257 "Gmsh.y" + case 424: +#line 5359 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; - case 418: -#line 5258 "Gmsh.y" + case 425: +#line 5360 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; - case 419: -#line 5259 "Gmsh.y" + case 426: +#line 5361 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; - case 420: -#line 5260 "Gmsh.y" + case 427: +#line 5362 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; - case 421: -#line 5261 "Gmsh.y" + case 428: +#line 5363 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; - case 422: -#line 5262 "Gmsh.y" + case 429: +#line 5364 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d) + 0.5); ;} break; - case 423: -#line 5263 "Gmsh.y" + case 430: +#line 5365 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 424: -#line 5264 "Gmsh.y" + case 431: +#line 5366 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 425: -#line 5265 "Gmsh.y" + case 432: +#line 5367 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; - case 426: -#line 5266 "Gmsh.y" + case 433: +#line 5368 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; - case 427: -#line 5275 "Gmsh.y" + case 434: +#line 5377 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; - case 428: -#line 5276 "Gmsh.y" + case 435: +#line 5378 "Gmsh.y" { (yyval.d) = 3.141592653589793; ;} break; - case 429: -#line 5277 "Gmsh.y" + case 436: +#line 5379 "Gmsh.y" { (yyval.d) = (double)ImbricatedTest; ;} break; - case 430: -#line 5278 "Gmsh.y" + case 437: +#line 5380 "Gmsh.y" { (yyval.d) = Msg::GetCommRank(); ;} break; - case 431: -#line 5279 "Gmsh.y" + case 438: +#line 5381 "Gmsh.y" { (yyval.d) = Msg::GetCommSize(); ;} break; - case 432: -#line 5280 "Gmsh.y" + case 439: +#line 5382 "Gmsh.y" { (yyval.d) = GetGmshMajorVersion(); ;} break; - case 433: -#line 5281 "Gmsh.y" + case 440: +#line 5383 "Gmsh.y" { (yyval.d) = GetGmshMinorVersion(); ;} break; - case 434: -#line 5282 "Gmsh.y" + case 441: +#line 5384 "Gmsh.y" { (yyval.d) = GetGmshPatchVersion(); ;} break; - case 435: -#line 5283 "Gmsh.y" + case 442: +#line 5385 "Gmsh.y" { (yyval.d) = Cpu(); ;} break; - case 436: -#line 5284 "Gmsh.y" + case 443: +#line 5386 "Gmsh.y" { (yyval.d) = GetMemoryUsage()/1024./1024.; ;} break; - case 437: -#line 5285 "Gmsh.y" + case 444: +#line 5387 "Gmsh.y" { (yyval.d) = TotalRam(); ;} break; - case 438: -#line 5290 "Gmsh.y" + case 445: +#line 5392 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; - case 439: -#line 5292 "Gmsh.y" + case 446: +#line 5394 "Gmsh.y" { std::vector<double> val(1, (yyvsp[(3) - (6)].d)); Msg::ExchangeOnelabParameter("", val, floatOptions, charOptions); @@ -11901,24 +11993,24 @@ yyreduce: ;} break; - case 440: -#line 5298 "Gmsh.y" + case 447: +#line 5400 "Gmsh.y" { (yyval.d) = Msg::GetOnelabNumber((yyvsp[(3) - (4)].c)); Free((yyvsp[(3) - (4)].c)); ;} break; - case 441: -#line 5303 "Gmsh.y" + case 448: +#line 5405 "Gmsh.y" { (yyval.d) = Msg::GetOnelabNumber((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); ;} break; - case 442: -#line 5308 "Gmsh.y" + case 449: +#line 5410 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c)); @@ -11937,8 +12029,8 @@ yyreduce: ;} break; - case 443: -#line 5325 "Gmsh.y" + case 450: +#line 5427 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -11958,8 +12050,8 @@ yyreduce: ;} break; - case 444: -#line 5343 "Gmsh.y" + case 451: +#line 5445 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -11979,8 +12071,8 @@ yyreduce: ;} break; - case 445: -#line 5361 "Gmsh.y" + case 452: +#line 5463 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -12000,8 +12092,8 @@ yyreduce: ;} break; - case 446: -#line 5379 "Gmsh.y" + case 453: +#line 5481 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -12021,16 +12113,16 @@ yyreduce: ;} break; - case 447: -#line 5397 "Gmsh.y" + case 454: +#line 5499 "Gmsh.y" { (yyval.d) = gmsh_yysymbols.count((yyvsp[(3) - (4)].c)); Free((yyvsp[(3) - (4)].c)); ;} break; - case 448: -#line 5402 "Gmsh.y" + case 455: +#line 5504 "Gmsh.y" { std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(3) - (4)].c)); (yyval.d) = !StatFile(tmp); @@ -12038,8 +12130,8 @@ yyreduce: ;} break; - case 449: -#line 5408 "Gmsh.y" + case 456: +#line 5510 "Gmsh.y" { if(gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){ gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(2) - (4)].c)]); @@ -12056,8 +12148,8 @@ yyreduce: ;} break; - case 450: -#line 5423 "Gmsh.y" + case 457: +#line 5525 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c)); @@ -12078,8 +12170,8 @@ yyreduce: ;} break; - case 451: -#line 5442 "Gmsh.y" + case 458: +#line 5544 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -12101,8 +12193,8 @@ yyreduce: ;} break; - case 452: -#line 5462 "Gmsh.y" + case 459: +#line 5564 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -12124,8 +12216,8 @@ yyreduce: ;} break; - case 453: -#line 5482 "Gmsh.y" + case 460: +#line 5584 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -12147,8 +12239,8 @@ yyreduce: ;} break; - case 454: -#line 5502 "Gmsh.y" + case 461: +#line 5604 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -12170,24 +12262,24 @@ yyreduce: ;} break; - case 455: -#line 5525 "Gmsh.y" + case 462: +#line 5627 "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 456: -#line 5530 "Gmsh.y" + case 463: +#line 5632 "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 457: -#line 5535 "Gmsh.y" + case 464: +#line 5637 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){ @@ -12199,8 +12291,8 @@ yyreduce: ;} break; - case 458: -#line 5545 "Gmsh.y" + case 465: +#line 5647 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){ @@ -12212,16 +12304,16 @@ yyreduce: ;} break; - case 459: -#line 5555 "Gmsh.y" + case 466: +#line 5657 "Gmsh.y" { (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); ;} break; - case 460: -#line 5560 "Gmsh.y" + case 467: +#line 5662 "Gmsh.y" { int matches = 0; for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ @@ -12234,8 +12326,8 @@ yyreduce: ;} break; - case 461: -#line 5571 "Gmsh.y" + case 468: +#line 5673 "Gmsh.y" { std::string s((yyvsp[(3) - (6)].c)), substr((yyvsp[(5) - (6)].c)); if(s.find(substr) != std::string::npos) @@ -12246,24 +12338,24 @@ yyreduce: ;} break; - case 462: -#line 5580 "Gmsh.y" + case 469: +#line 5682 "Gmsh.y" { (yyval.d) = strlen((yyvsp[(3) - (4)].c)); Free((yyvsp[(3) - (4)].c)); ;} break; - case 463: -#line 5585 "Gmsh.y" + case 470: +#line 5687 "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 464: -#line 5590 "Gmsh.y" + case 471: +#line 5692 "Gmsh.y" { int align = 0, font = 0, fontsize = CTX::instance()->glFontSize; if(List_Nbr((yyvsp[(3) - (4)].l)) % 2){ @@ -12289,116 +12381,116 @@ yyreduce: ;} break; - case 465: -#line 5617 "Gmsh.y" + case 472: +#line 5719 "Gmsh.y" { memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double)); ;} break; - case 466: -#line 5621 "Gmsh.y" + case 473: +#line 5723 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i]; ;} break; - case 467: -#line 5625 "Gmsh.y" + case 474: +#line 5727 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; - case 468: -#line 5629 "Gmsh.y" + case 475: +#line 5731 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i]; ;} break; - case 469: -#line 5633 "Gmsh.y" + case 476: +#line 5735 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i]; ;} break; - case 470: -#line 5640 "Gmsh.y" + case 477: +#line 5742 "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 471: -#line 5644 "Gmsh.y" + case 478: +#line 5746 "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 472: -#line 5648 "Gmsh.y" + case 479: +#line 5750 "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 473: -#line 5652 "Gmsh.y" + case 480: +#line 5754 "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 474: -#line 5659 "Gmsh.y" + case 481: +#line 5761 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(List_T*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].l))); ;} break; - case 475: -#line 5664 "Gmsh.y" + case 482: +#line 5766 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].l))); ;} break; - case 476: -#line 5671 "Gmsh.y" + case 483: +#line 5773 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); ;} break; - case 477: -#line 5676 "Gmsh.y" + case 484: +#line 5778 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 478: -#line 5680 "Gmsh.y" + case 485: +#line 5782 "Gmsh.y" { // creates an empty list (yyval.l) = List_Create(2, 1, sizeof(double)); ;} break; - case 479: -#line 5685 "Gmsh.y" + case 486: +#line 5787 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; - case 480: -#line 5689 "Gmsh.y" + case 487: +#line 5791 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -12408,8 +12500,8 @@ yyreduce: ;} break; - case 481: -#line 5697 "Gmsh.y" + case 488: +#line 5799 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (5)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -12419,15 +12511,15 @@ yyreduce: ;} break; - case 482: -#line 5708 "Gmsh.y" + case 489: +#line 5810 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 483: -#line 5712 "Gmsh.y" + case 490: +#line 5814 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all")) (yyval.l) = 0; @@ -12438,8 +12530,8 @@ yyreduce: ;} break; - case 484: -#line 5724 "Gmsh.y" + case 491: +#line 5826 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -12449,8 +12541,8 @@ yyreduce: ;} break; - case 485: -#line 5732 "Gmsh.y" + case 492: +#line 5834 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (3)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -12460,8 +12552,8 @@ yyreduce: ;} break; - case 486: -#line 5740 "Gmsh.y" + case 493: +#line 5842 "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)); @@ -12470,8 +12562,8 @@ yyreduce: ;} break; - case 487: -#line 5747 "Gmsh.y" + case 494: +#line 5849 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!(yyvsp[(5) - (5)].d)){ //|| ($1 < $3 && $5 < 0) || ($1 > $3 && $5 > 0) @@ -12483,8 +12575,8 @@ yyreduce: ;} break; - case 488: -#line 5757 "Gmsh.y" + case 495: +#line 5859 "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 @@ -12515,64 +12607,64 @@ yyreduce: ;} break; - case 489: -#line 5786 "Gmsh.y" + case 496: +#line 5888 "Gmsh.y" { (yyval.l) = GetAllElementaryEntityNumbers(0); ;} break; - case 490: -#line 5790 "Gmsh.y" + case 497: +#line 5892 "Gmsh.y" { (yyval.l) = GetAllElementaryEntityNumbers(1); ;} break; - case 491: -#line 5794 "Gmsh.y" + case 498: +#line 5896 "Gmsh.y" { (yyval.l) = GetAllElementaryEntityNumbers(2); ;} break; - case 492: -#line 5798 "Gmsh.y" + case 499: +#line 5900 "Gmsh.y" { (yyval.l) = GetAllElementaryEntityNumbers(3); ;} break; - case 493: -#line 5802 "Gmsh.y" + case 500: +#line 5904 "Gmsh.y" { (yyval.l) = GetAllPhysicalEntityNumbers(0); ;} break; - case 494: -#line 5806 "Gmsh.y" + case 501: +#line 5908 "Gmsh.y" { (yyval.l) = GetAllPhysicalEntityNumbers(1); ;} break; - case 495: -#line 5810 "Gmsh.y" + case 502: +#line 5912 "Gmsh.y" { (yyval.l) = GetAllPhysicalEntityNumbers(2); ;} break; - case 496: -#line 5814 "Gmsh.y" + case 503: +#line 5916 "Gmsh.y" { (yyval.l) = GetAllPhysicalEntityNumbers(3); ;} break; - case 497: -#line 5818 "Gmsh.y" + case 504: +#line 5920 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -12603,8 +12695,8 @@ yyreduce: ;} break; - case 498: -#line 5847 "Gmsh.y" + case 505: +#line 5949 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -12635,8 +12727,8 @@ yyreduce: ;} break; - case 499: -#line 5876 "Gmsh.y" + case 506: +#line 5978 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -12667,8 +12759,8 @@ yyreduce: ;} break; - case 500: -#line 5905 "Gmsh.y" + case 507: +#line 6007 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -12699,8 +12791,8 @@ yyreduce: ;} break; - case 501: -#line 5935 "Gmsh.y" + case 508: +#line 6037 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); GModel::current()->importGEOInternals(); @@ -12714,8 +12806,8 @@ yyreduce: ;} break; - case 502: -#line 5948 "Gmsh.y" + case 509: +#line 6050 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); GModel::current()->importGEOInternals(); @@ -12729,8 +12821,8 @@ yyreduce: ;} break; - case 503: -#line 5961 "Gmsh.y" + case 510: +#line 6063 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); GModel::current()->importGEOInternals(); @@ -12744,8 +12836,8 @@ yyreduce: ;} break; - case 504: -#line 5974 "Gmsh.y" + case 511: +#line 6076 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); GModel::current()->importGEOInternals(); @@ -12759,8 +12851,8 @@ yyreduce: ;} break; - case 505: -#line 5986 "Gmsh.y" + case 512: +#line 6088 "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++){ @@ -12772,8 +12864,8 @@ yyreduce: ;} break; - case 506: -#line 5996 "Gmsh.y" + case 513: +#line 6098 "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++){ @@ -12785,8 +12877,8 @@ yyreduce: ;} break; - case 507: -#line 6006 "Gmsh.y" + case 514: +#line 6108 "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++){ @@ -12798,8 +12890,8 @@ yyreduce: ;} break; - case 508: -#line 6016 "Gmsh.y" + case 515: +#line 6118 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -12813,8 +12905,8 @@ yyreduce: ;} break; - case 509: -#line 6028 "Gmsh.y" + case 516: +#line 6130 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -12828,8 +12920,8 @@ yyreduce: ;} break; - case 510: -#line 6041 "Gmsh.y" + case 517: +#line 6143 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(3) - (4)].c))) @@ -12843,36 +12935,36 @@ yyreduce: ;} break; - case 511: -#line 6053 "Gmsh.y" + case 518: +#line 6155 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); ;} break; - case 512: -#line 6057 "Gmsh.y" + case 519: +#line 6159 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); ;} break; - case 513: -#line 6061 "Gmsh.y" + case 520: +#line 6163 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (6)].l); ;} break; - case 514: -#line 6065 "Gmsh.y" + case 521: +#line 6167 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (6)].l); ;} break; - case 515: -#line 6069 "Gmsh.y" + case 522: +#line 6171 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -12892,8 +12984,8 @@ yyreduce: ;} break; - case 516: -#line 6087 "Gmsh.y" + case 523: +#line 6189 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -12913,8 +13005,8 @@ yyreduce: ;} break; - case 517: -#line 6105 "Gmsh.y" + case 524: +#line 6207 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(double)); for(int i = 0; i < (int)(yyvsp[(7) - (8)].d); i++) { @@ -12924,8 +13016,8 @@ yyreduce: ;} break; - case 518: -#line 6113 "Gmsh.y" + case 525: +#line 6215 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(double)); for(int i = 0; i < (int)(yyvsp[(7) - (8)].d); i++) { @@ -12935,8 +13027,8 @@ yyreduce: ;} break; - case 519: -#line 6121 "Gmsh.y" + case 526: +#line 6223 "Gmsh.y" { Msg::Barrier(); FILE *File; @@ -12967,8 +13059,8 @@ yyreduce: ;} break; - case 520: -#line 6150 "Gmsh.y" + case 527: +#line 6252 "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); @@ -12980,30 +13072,30 @@ yyreduce: ;} break; - case 521: -#line 6163 "Gmsh.y" + case 528: +#line 6265 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); ;} break; - case 522: -#line 6168 "Gmsh.y" + case 529: +#line 6270 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 523: -#line 6172 "Gmsh.y" + case 530: +#line 6274 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].d))); ;} break; - case 524: -#line 6176 "Gmsh.y" + case 531: +#line 6278 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ double d; @@ -13014,22 +13106,22 @@ yyreduce: ;} break; - case 525: -#line 6188 "Gmsh.y" + case 532: +#line 6290 "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 526: -#line 6192 "Gmsh.y" + case 533: +#line 6294 "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 527: -#line 6204 "Gmsh.y" + case 534: +#line 6306 "Gmsh.y" { int flag = 0; if(gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){ @@ -13048,8 +13140,8 @@ yyreduce: ;} break; - case 528: -#line 6221 "Gmsh.y" + case 535: +#line 6323 "Gmsh.y" { unsigned int val = 0; ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val); @@ -13058,15 +13150,15 @@ yyreduce: ;} break; - case 529: -#line 6231 "Gmsh.y" + case 536: +#line 6333 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; - case 530: -#line 6235 "Gmsh.y" + case 537: +#line 6337 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (6)].d)); @@ -13080,30 +13172,30 @@ yyreduce: ;} break; - case 531: -#line 6250 "Gmsh.y" + case 538: +#line 6352 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); List_Add((yyval.l), &((yyvsp[(1) - (1)].u))); ;} break; - case 532: -#line 6255 "Gmsh.y" + case 539: +#line 6357 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].u))); ;} break; - case 533: -#line 6262 "Gmsh.y" + case 540: +#line 6364 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 534: -#line 6266 "Gmsh.y" + case 541: +#line 6368 "Gmsh.y" { std::string val; if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))) @@ -13118,8 +13210,8 @@ yyreduce: ;} break; - case 535: -#line 6279 "Gmsh.y" + case 542: +#line 6381 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -13135,8 +13227,8 @@ yyreduce: ;} break; - case 536: -#line 6293 "Gmsh.y" + case 543: +#line 6395 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -13152,8 +13244,8 @@ yyreduce: ;} break; - case 537: -#line 6307 "Gmsh.y" + case 544: +#line 6409 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -13169,8 +13261,8 @@ yyreduce: ;} break; - case 538: -#line 6321 "Gmsh.y" + case 545: +#line 6423 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -13186,8 +13278,8 @@ yyreduce: ;} break; - case 539: -#line 6335 "Gmsh.y" + case 546: +#line 6437 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), out); @@ -13197,8 +13289,8 @@ yyreduce: ;} break; - case 540: -#line 6343 "Gmsh.y" + case 547: +#line 6445 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), out); @@ -13208,22 +13300,22 @@ yyreduce: ;} break; - case 541: -#line 6354 "Gmsh.y" + case 548: +#line 6456 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 542: -#line 6358 "Gmsh.y" + case 549: +#line 6460 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; - case 543: -#line 6362 "Gmsh.y" + case 550: +#line 6464 "Gmsh.y" { (yyval.c) = (char *)Malloc(32 * sizeof(char)); time_t now; @@ -13233,8 +13325,8 @@ yyreduce: ;} break; - case 544: -#line 6370 "Gmsh.y" + case 551: +#line 6472 "Gmsh.y" { std::string exe = Msg::GetExecutableName(); (yyval.c) = (char *)Malloc(exe.size() + 1); @@ -13242,8 +13334,8 @@ yyreduce: ;} break; - case 545: -#line 6376 "Gmsh.y" + case 552: +#line 6478 "Gmsh.y" { std::string action = Msg::GetOnelabAction(); (yyval.c) = (char *)Malloc(action.size() + 1); @@ -13251,8 +13343,8 @@ yyreduce: ;} break; - case 546: -#line 6382 "Gmsh.y" + case 553: +#line 6484 "Gmsh.y" { const char *env = GetEnvironmentVar((yyvsp[(3) - (4)].c)); if(!env) env = ""; @@ -13262,8 +13354,8 @@ yyreduce: ;} break; - case 547: -#line 6390 "Gmsh.y" + case 554: +#line 6492 "Gmsh.y" { std::string s = Msg::GetString((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -13273,8 +13365,8 @@ yyreduce: ;} break; - case 548: -#line 6398 "Gmsh.y" + case 555: +#line 6500 "Gmsh.y" { std::string s = Msg::GetOnelabString((yyvsp[(3) - (4)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -13283,8 +13375,8 @@ yyreduce: ;} break; - case 549: -#line 6405 "Gmsh.y" + case 556: +#line 6507 "Gmsh.y" { std::string s = Msg::GetOnelabString((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -13294,8 +13386,8 @@ yyreduce: ;} break; - case 550: -#line 6413 "Gmsh.y" + case 557: +#line 6515 "Gmsh.y" { int size = 1; for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++) @@ -13312,8 +13404,8 @@ yyreduce: ;} break; - case 551: -#line 6428 "Gmsh.y" + case 558: +#line 6530 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -13329,8 +13421,8 @@ yyreduce: ;} break; - case 552: -#line 6442 "Gmsh.y" + case 559: +#line 6544 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -13346,8 +13438,8 @@ yyreduce: ;} break; - case 553: -#line 6456 "Gmsh.y" + case 560: +#line 6558 "Gmsh.y" { std::string input = (yyvsp[(3) - (8)].c); std::string substr_old = (yyvsp[(5) - (8)].c); @@ -13361,8 +13453,8 @@ yyreduce: ;} break; - case 554: -#line 6468 "Gmsh.y" + case 561: +#line 6570 "Gmsh.y" { int size = 1; for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++) @@ -13380,8 +13472,8 @@ yyreduce: ;} break; - case 555: -#line 6484 "Gmsh.y" + case 562: +#line 6586 "Gmsh.y" { int i = 0; while ((yyvsp[(3) - (4)].c)[i]) { @@ -13392,8 +13484,8 @@ yyreduce: ;} break; - case 556: -#line 6493 "Gmsh.y" + case 563: +#line 6595 "Gmsh.y" { int i = 0; while ((yyvsp[(3) - (4)].c)[i]) { @@ -13404,8 +13496,8 @@ yyreduce: ;} break; - case 557: -#line 6502 "Gmsh.y" + case 564: +#line 6604 "Gmsh.y" { int i = 0; while ((yyvsp[(3) - (4)].c)[i]) { @@ -13417,8 +13509,8 @@ yyreduce: ;} break; - case 558: -#line 6512 "Gmsh.y" + case 565: +#line 6614 "Gmsh.y" { if((yyvsp[(3) - (8)].d)){ (yyval.c) = (yyvsp[(5) - (8)].c); @@ -13431,8 +13523,8 @@ yyreduce: ;} break; - case 559: -#line 6523 "Gmsh.y" + case 566: +#line 6625 "Gmsh.y" { std::string in = (yyvsp[(3) - (8)].c); std::string out = in.substr((int)(yyvsp[(5) - (8)].d), (int)(yyvsp[(7) - (8)].d)); @@ -13442,8 +13534,8 @@ yyreduce: ;} break; - case 560: -#line 6531 "Gmsh.y" + case 567: +#line 6633 "Gmsh.y" { std::string in = (yyvsp[(3) - (6)].c); std::string out = in.substr((int)(yyvsp[(5) - (6)].d), std::string::npos); @@ -13453,15 +13545,15 @@ yyreduce: ;} break; - case 561: -#line 6539 "Gmsh.y" + case 568: +#line 6641 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; - case 562: -#line 6543 "Gmsh.y" + case 569: +#line 6645 "Gmsh.y" { char tmpstring[5000]; int i = PrintListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring); @@ -13482,8 +13574,8 @@ yyreduce: ;} break; - case 563: -#line 6562 "Gmsh.y" + case 570: +#line 6664 "Gmsh.y" { std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(3) - (4)].c)); (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -13492,8 +13584,8 @@ yyreduce: ;} break; - case 564: -#line 6569 "Gmsh.y" + case 571: +#line 6671 "Gmsh.y" { std::string tmp = SplitFileName(GetAbsolutePath(gmsh_yyname))[0]; (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -13501,8 +13593,8 @@ yyreduce: ;} break; - case 565: -#line 6575 "Gmsh.y" + case 572: +#line 6677 "Gmsh.y" { std::string tmp = SplitFileName((yyvsp[(3) - (4)].c))[0]; (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -13511,8 +13603,8 @@ yyreduce: ;} break; - case 566: -#line 6582 "Gmsh.y" + case 573: +#line 6684 "Gmsh.y" { std::string tmp = GetAbsolutePath((yyvsp[(3) - (4)].c)); (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -13521,13 +13613,13 @@ yyreduce: ;} break; - case 567: -#line 6589 "Gmsh.y" + case 574: +#line 6691 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; - case 568: -#line 6591 "Gmsh.y" + case 575: +#line 6693 "Gmsh.y" { std::string val((yyvsp[(3) - (6)].c)); Msg::ExchangeOnelabParameter("", val, floatOptions, charOptions); @@ -13537,21 +13629,21 @@ yyreduce: ;} break; - case 569: -#line 6602 "Gmsh.y" + case 576: +#line 6704 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(char*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].c))); ;} break; - case 570: -#line 6607 "Gmsh.y" + case 577: +#line 6709 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].c))); ;} break; - case 571: -#line 6613 "Gmsh.y" + case 578: +#line 6715 "Gmsh.y" { char tmpstr[256]; sprintf(tmpstr, "_%d", (int)(yyvsp[(4) - (5)].d)); @@ -13561,8 +13653,8 @@ yyreduce: ;} break; - case 572: -#line 6622 "Gmsh.y" + case 579: +#line 6724 "Gmsh.y" { char tmpstr[256]; sprintf(tmpstr, "_%d", (int)(yyvsp[(4) - (5)].d)); @@ -13572,24 +13664,24 @@ yyreduce: ;} break; - case 573: -#line 6635 "Gmsh.y" + case 580: +#line 6737 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 574: -#line 6638 "Gmsh.y" + case 581: +#line 6740 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 575: -#line 6642 "Gmsh.y" + case 582: +#line 6744 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; /* Line 1267 of yacc.c. */ -#line 13593 "Gmsh.tab.cpp" +#line 13685 "Gmsh.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -13803,7 +13895,7 @@ yyreturn: } -#line 6645 "Gmsh.y" +#line 6747 "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 c693a68af861e3d2149a9e4065b72374fe8703f6..76f278da5b37d7c647dd950afa5b7464a95d1af1 100644 --- a/Parser/Gmsh.tab.hpp +++ b/Parser/Gmsh.tab.hpp @@ -129,114 +129,119 @@ tSurface = 345, tSpline = 346, tVolume = 347, - tCharacteristic = 348, - tLength = 349, - tParametric = 350, - tElliptic = 351, - tRefineMesh = 352, - tAdaptMesh = 353, - tRelocateMesh = 354, - tSetFactory = 355, - tThruSections = 356, - tPlane = 357, - tRuled = 358, - tTransfinite = 359, - tComplex = 360, - tPhysical = 361, - tCompound = 362, - tPeriodic = 363, - tUsing = 364, - tPlugin = 365, - tDegenerated = 366, - tRecursive = 367, - tRotate = 368, - tTranslate = 369, - tSymmetry = 370, - tDilate = 371, - tExtrude = 372, - tLevelset = 373, - tAffine = 374, - tBooleanUnion = 375, - tBooleanIntersection = 376, - tBooleanSubtraction = 377, - tRecombine = 378, - tSmoother = 379, - tSplit = 380, - tDelete = 381, - tCoherence = 382, - tIntersect = 383, - tMeshAlgorithm = 384, - tReverse = 385, - tLayers = 386, - tScaleLast = 387, - tHole = 388, - tAlias = 389, - tAliasWithOptions = 390, - tCopyOptions = 391, - tQuadTriAddVerts = 392, - tQuadTriNoNewVerts = 393, - tQuadTriSngl = 394, - tQuadTriDbl = 395, - tRecombLaterals = 396, - tTransfQuadTri = 397, - tText2D = 398, - tText3D = 399, - tInterpolationScheme = 400, - tTime = 401, - tCombine = 402, - tBSpline = 403, - tBezier = 404, - tNurbs = 405, - tNurbsOrder = 406, - tNurbsKnots = 407, - tColor = 408, - tColorTable = 409, - tFor = 410, - tIn = 411, - tEndFor = 412, - tIf = 413, - tElseIf = 414, - tElse = 415, - tEndIf = 416, - tExit = 417, - tAbort = 418, - tField = 419, - tReturn = 420, - tCall = 421, - tSlide = 422, - tMacro = 423, - tShow = 424, - tHide = 425, - tGetValue = 426, - tGetStringValue = 427, - tGetEnv = 428, - tGetString = 429, - tGetNumber = 430, - tHomology = 431, - tCohomology = 432, - tBetti = 433, - tExists = 434, - tFileExists = 435, - tGMSH_MAJOR_VERSION = 436, - tGMSH_MINOR_VERSION = 437, - tGMSH_PATCH_VERSION = 438, - tGmshExecutableName = 439, - tSetPartition = 440, - tNameToString = 441, - tStringToName = 442, - tAFFECTDIVIDE = 443, - tAFFECTTIMES = 444, - tAFFECTMINUS = 445, - tAFFECTPLUS = 446, - tOR = 447, - tAND = 448, - tNOTEQUAL = 449, - tEQUAL = 450, - tGREATEROREQUAL = 451, - tLESSOREQUAL = 452, - UNARYPREC = 453, - tMINUSMINUS = 454, - tPLUSPLUS = 455 + tBlock = 348, + tCylinder = 349, + tCone = 350, + tEllipsoid = 351, + tQuadric = 352, + tCharacteristic = 353, + tLength = 354, + tParametric = 355, + tElliptic = 356, + tRefineMesh = 357, + tAdaptMesh = 358, + tRelocateMesh = 359, + tSetFactory = 360, + tThruSections = 361, + tPlane = 362, + tRuled = 363, + tTransfinite = 364, + tComplex = 365, + tPhysical = 366, + tCompound = 367, + tPeriodic = 368, + tUsing = 369, + tPlugin = 370, + tDegenerated = 371, + tRecursive = 372, + tRotate = 373, + tTranslate = 374, + tSymmetry = 375, + tDilate = 376, + tExtrude = 377, + tLevelset = 378, + tAffine = 379, + tBooleanUnion = 380, + tBooleanIntersection = 381, + tBooleanSubtraction = 382, + tRecombine = 383, + tSmoother = 384, + tSplit = 385, + tDelete = 386, + tCoherence = 387, + tIntersect = 388, + tMeshAlgorithm = 389, + tReverse = 390, + tLayers = 391, + tScaleLast = 392, + tHole = 393, + tAlias = 394, + tAliasWithOptions = 395, + tCopyOptions = 396, + tQuadTriAddVerts = 397, + tQuadTriNoNewVerts = 398, + tQuadTriSngl = 399, + tQuadTriDbl = 400, + tRecombLaterals = 401, + tTransfQuadTri = 402, + tText2D = 403, + tText3D = 404, + tInterpolationScheme = 405, + tTime = 406, + tCombine = 407, + tBSpline = 408, + tBezier = 409, + tNurbs = 410, + tNurbsOrder = 411, + tNurbsKnots = 412, + tColor = 413, + tColorTable = 414, + tFor = 415, + tIn = 416, + tEndFor = 417, + tIf = 418, + tElseIf = 419, + tElse = 420, + tEndIf = 421, + tExit = 422, + tAbort = 423, + tField = 424, + tReturn = 425, + tCall = 426, + tSlide = 427, + tMacro = 428, + tShow = 429, + tHide = 430, + tGetValue = 431, + tGetStringValue = 432, + tGetEnv = 433, + tGetString = 434, + tGetNumber = 435, + tHomology = 436, + tCohomology = 437, + tBetti = 438, + tExists = 439, + tFileExists = 440, + tGMSH_MAJOR_VERSION = 441, + tGMSH_MINOR_VERSION = 442, + tGMSH_PATCH_VERSION = 443, + tGmshExecutableName = 444, + tSetPartition = 445, + tNameToString = 446, + tStringToName = 447, + tAFFECTDIVIDE = 448, + tAFFECTTIMES = 449, + tAFFECTMINUS = 450, + tAFFECTPLUS = 451, + tOR = 452, + tAND = 453, + tNOTEQUAL = 454, + tEQUAL = 455, + tGREATEROREQUAL = 456, + tLESSOREQUAL = 457, + UNARYPREC = 458, + tMINUSMINUS = 459, + tPLUSPLUS = 460 }; #endif /* Tokens. */ @@ -330,114 +335,119 @@ #define tSurface 345 #define tSpline 346 #define tVolume 347 -#define tCharacteristic 348 -#define tLength 349 -#define tParametric 350 -#define tElliptic 351 -#define tRefineMesh 352 -#define tAdaptMesh 353 -#define tRelocateMesh 354 -#define tSetFactory 355 -#define tThruSections 356 -#define tPlane 357 -#define tRuled 358 -#define tTransfinite 359 -#define tComplex 360 -#define tPhysical 361 -#define tCompound 362 -#define tPeriodic 363 -#define tUsing 364 -#define tPlugin 365 -#define tDegenerated 366 -#define tRecursive 367 -#define tRotate 368 -#define tTranslate 369 -#define tSymmetry 370 -#define tDilate 371 -#define tExtrude 372 -#define tLevelset 373 -#define tAffine 374 -#define tBooleanUnion 375 -#define tBooleanIntersection 376 -#define tBooleanSubtraction 377 -#define tRecombine 378 -#define tSmoother 379 -#define tSplit 380 -#define tDelete 381 -#define tCoherence 382 -#define tIntersect 383 -#define tMeshAlgorithm 384 -#define tReverse 385 -#define tLayers 386 -#define tScaleLast 387 -#define tHole 388 -#define tAlias 389 -#define tAliasWithOptions 390 -#define tCopyOptions 391 -#define tQuadTriAddVerts 392 -#define tQuadTriNoNewVerts 393 -#define tQuadTriSngl 394 -#define tQuadTriDbl 395 -#define tRecombLaterals 396 -#define tTransfQuadTri 397 -#define tText2D 398 -#define tText3D 399 -#define tInterpolationScheme 400 -#define tTime 401 -#define tCombine 402 -#define tBSpline 403 -#define tBezier 404 -#define tNurbs 405 -#define tNurbsOrder 406 -#define tNurbsKnots 407 -#define tColor 408 -#define tColorTable 409 -#define tFor 410 -#define tIn 411 -#define tEndFor 412 -#define tIf 413 -#define tElseIf 414 -#define tElse 415 -#define tEndIf 416 -#define tExit 417 -#define tAbort 418 -#define tField 419 -#define tReturn 420 -#define tCall 421 -#define tSlide 422 -#define tMacro 423 -#define tShow 424 -#define tHide 425 -#define tGetValue 426 -#define tGetStringValue 427 -#define tGetEnv 428 -#define tGetString 429 -#define tGetNumber 430 -#define tHomology 431 -#define tCohomology 432 -#define tBetti 433 -#define tExists 434 -#define tFileExists 435 -#define tGMSH_MAJOR_VERSION 436 -#define tGMSH_MINOR_VERSION 437 -#define tGMSH_PATCH_VERSION 438 -#define tGmshExecutableName 439 -#define tSetPartition 440 -#define tNameToString 441 -#define tStringToName 442 -#define tAFFECTDIVIDE 443 -#define tAFFECTTIMES 444 -#define tAFFECTMINUS 445 -#define tAFFECTPLUS 446 -#define tOR 447 -#define tAND 448 -#define tNOTEQUAL 449 -#define tEQUAL 450 -#define tGREATEROREQUAL 451 -#define tLESSOREQUAL 452 -#define UNARYPREC 453 -#define tMINUSMINUS 454 -#define tPLUSPLUS 455 +#define tBlock 348 +#define tCylinder 349 +#define tCone 350 +#define tEllipsoid 351 +#define tQuadric 352 +#define tCharacteristic 353 +#define tLength 354 +#define tParametric 355 +#define tElliptic 356 +#define tRefineMesh 357 +#define tAdaptMesh 358 +#define tRelocateMesh 359 +#define tSetFactory 360 +#define tThruSections 361 +#define tPlane 362 +#define tRuled 363 +#define tTransfinite 364 +#define tComplex 365 +#define tPhysical 366 +#define tCompound 367 +#define tPeriodic 368 +#define tUsing 369 +#define tPlugin 370 +#define tDegenerated 371 +#define tRecursive 372 +#define tRotate 373 +#define tTranslate 374 +#define tSymmetry 375 +#define tDilate 376 +#define tExtrude 377 +#define tLevelset 378 +#define tAffine 379 +#define tBooleanUnion 380 +#define tBooleanIntersection 381 +#define tBooleanSubtraction 382 +#define tRecombine 383 +#define tSmoother 384 +#define tSplit 385 +#define tDelete 386 +#define tCoherence 387 +#define tIntersect 388 +#define tMeshAlgorithm 389 +#define tReverse 390 +#define tLayers 391 +#define tScaleLast 392 +#define tHole 393 +#define tAlias 394 +#define tAliasWithOptions 395 +#define tCopyOptions 396 +#define tQuadTriAddVerts 397 +#define tQuadTriNoNewVerts 398 +#define tQuadTriSngl 399 +#define tQuadTriDbl 400 +#define tRecombLaterals 401 +#define tTransfQuadTri 402 +#define tText2D 403 +#define tText3D 404 +#define tInterpolationScheme 405 +#define tTime 406 +#define tCombine 407 +#define tBSpline 408 +#define tBezier 409 +#define tNurbs 410 +#define tNurbsOrder 411 +#define tNurbsKnots 412 +#define tColor 413 +#define tColorTable 414 +#define tFor 415 +#define tIn 416 +#define tEndFor 417 +#define tIf 418 +#define tElseIf 419 +#define tElse 420 +#define tEndIf 421 +#define tExit 422 +#define tAbort 423 +#define tField 424 +#define tReturn 425 +#define tCall 426 +#define tSlide 427 +#define tMacro 428 +#define tShow 429 +#define tHide 430 +#define tGetValue 431 +#define tGetStringValue 432 +#define tGetEnv 433 +#define tGetString 434 +#define tGetNumber 435 +#define tHomology 436 +#define tCohomology 437 +#define tBetti 438 +#define tExists 439 +#define tFileExists 440 +#define tGMSH_MAJOR_VERSION 441 +#define tGMSH_MINOR_VERSION 442 +#define tGMSH_PATCH_VERSION 443 +#define tGmshExecutableName 444 +#define tSetPartition 445 +#define tNameToString 446 +#define tStringToName 447 +#define tAFFECTDIVIDE 448 +#define tAFFECTTIMES 449 +#define tAFFECTMINUS 450 +#define tAFFECTPLUS 451 +#define tOR 452 +#define tAND 453 +#define tNOTEQUAL 454 +#define tEQUAL 455 +#define tGREATEROREQUAL 456 +#define tLESSOREQUAL 457 +#define UNARYPREC 458 +#define tMINUSMINUS 459 +#define tPLUSPLUS 460 @@ -455,7 +465,7 @@ typedef union YYSTYPE List_T *l; } /* Line 1529 of yacc.c. */ -#line 459 "Gmsh.tab.hpp" +#line 469 "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 0d606c483a12a866b179b8a4a2629b49b0fc6b24..f193e3a4548163d0bd7761dff7700c3b5a4a31c3 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -143,6 +143,7 @@ struct doubleXstring{ %token tDistanceFunction tDefineConstant tUndefineConstant %token tDefineNumber tDefineString tSetNumber tSetString %token tPoint tCircle tEllipse tLine tSphere tPolarSphere tSurface tSpline tVolume +%token tBlock tCylinder tCone tEllipsoid tQuadric %token tCharacteristic tLength tParametric tElliptic tRefineMesh tAdaptMesh %token tRelocateMesh tSetFactory tThruSections %token tPlane tRuled tTransfinite tComplex tPhysical tCompound tPeriodic @@ -227,6 +228,7 @@ GeoFormatItem : | Visibility { return 1; } | Extrude { List_Delete($1); return 1; } | Boolean { List_Delete($1); return 1; } + | BooleanShape{ return 1; } | Constraints { return 1; } | Coherence { return 1; } | Loop { return 1; } @@ -1741,8 +1743,8 @@ Shape : else v = Create_Vertex(num, x, y, myGmshSurface, lc); Tree_Add(GModel::current()->getGEOInternals()->Points, &v); - AddToTemporaryBoundingBox(v->Pos.X, v->Pos.Y, v->Pos.Z); } + AddToTemporaryBoundingBox(x, y, z); } $$.Type = MSH_POINT; $$.Num = num; @@ -2179,7 +2181,7 @@ Shape : GModel::current()->getOCCInternals()->addSphere(num, x, y, z, r); } else{ - yymsg(0, "Sphere only available in OpenCASCADE factory"); + yymsg(0, "Sphere only available with OpenCASCADE factory"); } $$.Type = MSH_VOLUME; } @@ -2234,6 +2236,55 @@ Shape : $$.Type = 0; $$.Num = num; } + | tBlock '(' FExpr ')' tAFFECT ListOfDouble tEND + { + int num = (int)$3; + if(List_Nbr($6) == 6){ + if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ + double x1; List_Read($6, 0, &x1); + double y1; List_Read($6, 1, &y1); + double z1; List_Read($6, 2, &z1); + double x2; List_Read($6, 3, &x2); + double y2; List_Read($6, 4, &y2); + double z2; List_Read($6, 5, &z2); + GModel::current()->getOCCInternals()->addBlock(num, x1, y1, z1, x2, y2, z2); + } + else{ + yymsg(0, "Block only available with OpenCASCADE factory"); + } + } + else{ + yymsg(0, "Block has to be defined using 2 points"); + } + List_Delete($6); + $$.Type = MSH_VOLUME; + $$.Num = num; + } + | tCylinder '(' FExpr ')' tAFFECT ListOfDouble tEND + { + int num = (int)$3; + if(List_Nbr($6) == 7){ + if(factory == "OpenCASCADE" && GModel::current()->getOCCInternals()){ + double x1; List_Read($6, 0, &x1); + double y1; List_Read($6, 1, &y1); + double z1; List_Read($6, 2, &z1); + double x2; List_Read($6, 3, &x2); + double y2; List_Read($6, 4, &y2); + double z2; List_Read($6, 5, &z2); + double r; List_Read($6, 6, &r); + GModel::current()->getOCCInternals()->addCylinder(num, x1, y1, z1, x2, y2, z2, r); + } + else{ + yymsg(0, "Cylinder only available with OpenCASCADE factory"); + } + } + else{ + yymsg(0, "Cylinder has to be defined using 2 points and a radius"); + } + List_Delete($6); + $$.Type = MSH_VOLUME; + $$.Num = num; + } | tSurface tSTRING '(' FExpr ')' tAFFECT ListOfDouble tEND { int num = (int)$4; @@ -2410,7 +2461,7 @@ Shape : GModel::current()->getOCCInternals()->addThruSections(num, edges); } else{ - yymsg(0, "ThruSections only available in OpenCASCADE factory"); + yymsg(0, "ThruSections only available with OpenCASCADE factory"); } } for(int i = 0; i < List_Nbr($7); i++) @@ -2705,6 +2756,7 @@ LevelSet : } else yymsg(0, "Wrong levelset definition (%d)", $4); + List_Delete($7); #endif } | tLevelset tPoint '(' FExpr ')' tAFFECT '{' RecursiveListOfListOfDouble '}' tEND @@ -2752,6 +2804,7 @@ LevelSet : } else yymsg(0, "Wrong levelset definition (%d)", $4); + List_Delete($12); #endif } | tLevelset tPlane '(' FExpr ')' tAFFECT '{' VExpr ',' VExpr ',' VExpr ',' @@ -2774,6 +2827,7 @@ LevelSet : } else yymsg(0, "Wrong levelset definition (%d)", $4); + List_Delete($14); #endif } | tLevelset tSphere '(' FExpr ')' tAFFECT '{' VExpr ',' RecursiveListOfDouble '}' tEND @@ -2794,6 +2848,138 @@ LevelSet : } else yymsg(0, "Wrong levelset definition (%d)", $4); + List_Delete($10); +#endif + } + | tLevelset tCylinder '(' FExpr ')' tAFFECT '{' VExpr ',' VExpr ',' + RecursiveListOfDouble '}' tEND + { +#if defined(HAVE_DINTEGRATION) + if(List_Nbr($12) == 1){ + int t = (int)$4; + if(FindLevelSet(t)){ + yymsg(0, "Levelset %d already exists", t); + } + else { + double d; + List_Read($12, 0, &d); + double pt[3] = {$8[0], $8[1], $8[2]}; + double dir[3] = {$10[0], $10[1], $10[2]}; + gLevelset *ls = new gLevelsetGenCylinder(pt, dir, d, t); + LevelSet *l = Create_LevelSet(ls->getTag(), ls); + Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); + } + } + else if(List_Nbr($12) == 2){ + int t = (int)$4; + if(FindLevelSet(t)){ + yymsg(0, "Levelset %d already exists", t); + } + else { + double d[2]; + for(int i = 0; i < 2; i++) + List_Read($12, i, &d[i]); + double pt[3] = {$8[0], $8[1], $8[2]}; + double dir[3] = {$10[0], $10[1], $10[2]}; + gLevelset *ls = new gLevelsetCylinder(pt, dir, d[0], d[1], t); + LevelSet *l = Create_LevelSet(ls->getTag(), ls); + Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); + } + } + else if(List_Nbr($12) == 3){ + int t = (int)$4; + if(FindLevelSet(t)){ + yymsg(0, "Levelset %d already exists", t); + } + else { + double d[3]; + for(int i = 0; i < 3; i++) + List_Read($12, i, &d[i]); + double pt[3] = {$8[0], $8[1], $8[2]}; + double dir[3] = {$10[0], $10[1], $10[2]}; + gLevelset *ls = new gLevelsetCylinder(pt, dir, d[0], d[1], d[2], t); + LevelSet *l = Create_LevelSet(ls->getTag(), ls); + Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); + } + } + else + yymsg(0, "Wrong levelset definition (%d)", $4); + List_Delete($12); +#endif + } + | tLevelset tCone '(' FExpr ')' tAFFECT '{' VExpr ',' VExpr ',' + RecursiveListOfDouble '}' tEND + { +#if defined(HAVE_DINTEGRATION) + if(List_Nbr($12) == 1){ + int t = (int)$4; + if(FindLevelSet(t)){ + yymsg(0, "Levelset %d already exists", t); + } + else { + double d; + List_Read($12, 0, &d); + double pt[3] = {$8[0], $8[1], $8[2]}; + double dir[3] = {$10[0], $10[1], $10[2]}; + gLevelset *ls = new gLevelsetCone(pt, dir, d, t); + LevelSet *l = Create_LevelSet(ls->getTag(), ls); + Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); + } + } + else + yymsg(0, "Wrong levelset definition (%d)", $4); + List_Delete($12); +#endif + } + | tLevelset tEllipsoid '(' FExpr ')' tAFFECT '{' VExpr ',' VExpr ',' + RecursiveListOfDouble '}' tEND + { +#if defined(HAVE_DINTEGRATION) + if(List_Nbr($12) == 3){ + int t = (int)$4; + if(FindLevelSet(t)){ + yymsg(0, "Levelset %d already exists", t); + } + else { + double d[3]; + for(int i = 0; i < 3; i++) + List_Read($12, i, &d[i]); + double pt[3] = {$8[0], $8[1], $8[2]}; + double dir[3] = {$10[0], $10[1], $10[2]}; + gLevelset *ls = new gLevelsetEllipsoid(pt, dir, d[0], d[1], d[2], t); + LevelSet *l = Create_LevelSet(ls->getTag(), ls); + Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); + } + } + else + yymsg(0, "Wrong levelset definition (%d)", $4); + List_Delete($12); +#endif + } + | tLevelset tQuadric '(' FExpr ')' tAFFECT '{' VExpr ',' VExpr ',' + RecursiveListOfDouble '}' tEND + { +#if defined(HAVE_DINTEGRATION) + if(List_Nbr($12) == 5){ + int t = (int)$4; + if(FindLevelSet(t)){ + yymsg(0, "Levelset %d already exists", t); + } + else { + double d[5]; + for(int i = 0; i < 5; i++) + List_Read($12, i, &d[i]); + double pt[3] = {$8[0], $8[1], $8[2]}; + double dir[3] = {$10[0], $10[1], $10[2]}; + gLevelset *ls = new gLevelsetGeneralQuadric(pt, dir, d[0], d[1], + d[2], d[3], d[4], t); + LevelSet *l = Create_LevelSet(ls->getTag(), ls); + Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); + } + } + else + yymsg(0, "Wrong levelset definition (%d)", $4); + List_Delete($12); #endif } | tLevelset tSTRING '(' FExpr ')' tAFFECT ListOfDouble tEND @@ -2906,6 +3092,7 @@ LevelSet : else yymsg(0, "Wrong levelset definition (%d)", $4); Free($2); + List_Delete($7); #endif } | tLevelset tSTRING '(' FExpr ')' tAFFECT tBIGSTR tEND @@ -2963,110 +3150,6 @@ LevelSet : else yymsg(0, "Wrong levelset definition"); Free($2); -#endif - } - | tLevelset tSTRING '(' FExpr ')' tAFFECT '{' VExpr ',' VExpr ',' - RecursiveListOfDouble '}' tEND - { -#if defined(HAVE_DINTEGRATION) - if(!strcmp($2, "Cylinder") && List_Nbr($12) == 1){ - int t = (int)$4; - if(FindLevelSet(t)){ - yymsg(0, "Levelset %d already exists", t); - } - else { - double d; - List_Read($12, 0, &d); - double pt[3] = {$8[0], $8[1], $8[2]}; - double dir[3] = {$10[0], $10[1], $10[2]}; - gLevelset *ls = new gLevelsetGenCylinder(pt, dir, d, t); - LevelSet *l = Create_LevelSet(ls->getTag(), ls); - Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); - } - } - else if(!strcmp($2, "Cone") && List_Nbr($12) == 1){ - int t = (int)$4; - if(FindLevelSet(t)){ - yymsg(0, "Levelset %d already exists", t); - } - else { - double d; - List_Read($12, 0, &d); - double pt[3] = {$8[0], $8[1], $8[2]}; - double dir[3] = {$10[0], $10[1], $10[2]}; - gLevelset *ls = new gLevelsetCone(pt, dir, d, t); - LevelSet *l = Create_LevelSet(ls->getTag(), ls); - Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); - } - } - else if(!strcmp($2, "Cylinder") && List_Nbr($12) == 2){ - int t = (int)$4; - if(FindLevelSet(t)){ - yymsg(0, "Levelset %d already exists", t); - } - else { - double d[2]; - for(int i = 0; i < 2; i++) - List_Read($12, i, &d[i]); - double pt[3] = {$8[0], $8[1], $8[2]}; - double dir[3] = {$10[0], $10[1], $10[2]}; - gLevelset *ls = new gLevelsetCylinder(pt, dir, d[0], d[1], t); - LevelSet *l = Create_LevelSet(ls->getTag(), ls); - Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); - } - } - else if(!strcmp($2, "Cylinder") && List_Nbr($12) == 3){ - int t = (int)$4; - if(FindLevelSet(t)){ - yymsg(0, "Levelset %d already exists", t); - } - else { - double d[3]; - for(int i = 0; i < 3; i++) - List_Read($12, i, &d[i]); - double pt[3] = {$8[0], $8[1], $8[2]}; - double dir[3] = {$10[0], $10[1], $10[2]}; - gLevelset *ls = new gLevelsetCylinder(pt, dir, d[0], d[1], d[2], t); - LevelSet *l = Create_LevelSet(ls->getTag(), ls); - Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); - } - } - else if(!strcmp($2, "Ellipsoid") && List_Nbr($12) == 3){ - int t = (int)$4; - if(FindLevelSet(t)){ - yymsg(0, "Levelset %d already exists", t); - } - else { - double d[3]; - for(int i = 0; i < 3; i++) - List_Read($12, i, &d[i]); - double pt[3] = {$8[0], $8[1], $8[2]}; - double dir[3] = {$10[0], $10[1], $10[2]}; - gLevelset *ls = new gLevelsetEllipsoid(pt, dir, d[0], d[1], d[2], t); - LevelSet *l = Create_LevelSet(ls->getTag(), ls); - Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); - } - } - else if(!strcmp($2, "Quadric") && List_Nbr($12) == 5){ - int t = (int)$4; - if(FindLevelSet(t)){ - yymsg(0, "Levelset %d already exists", t); - } - else { - double d[5]; - for(int i = 0; i < 5; i++) - List_Read($12, i, &d[i]); - double pt[3] = {$8[0], $8[1], $8[2]}; - double dir[3] = {$10[0], $10[1], $10[2]}; - gLevelset *ls = new gLevelsetGeneralQuadric(pt, dir, d[0], d[1], - d[2], d[3], d[4], t); - LevelSet *l = Create_LevelSet(ls->getTag(), ls); - Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); - } - } - else - yymsg(0, "Wrong levelset definition (%d)", $4); - Free($2); #endif } ; @@ -4209,6 +4292,25 @@ Boolean : List_Delete($3); List_Delete($7); } +; + +BooleanShape : + BooleanOperator '(' FExpr ')' tAFFECT '{' ListOfShapes BooleanOption '}' '{' ListOfShapes BooleanOption '}' tEND + { + 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); + } + for(int i = 0; i < List_Nbr($11); i++){ + Shape s; List_Read($11, i, &s); tool[3].push_back(s.Num); + } + GModel::current()->getOCCInternals()->applyBooleanOperator + ((int)$3, shape, tool, (OCC_Internals::BooleanOperator)$1, $8, $12); + } + List_Delete($7); + List_Delete($11); + } // M E S H I N G C O N S T R A I N T S ( T R A N S F I N I T E , . . . ) diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index 02d897df3d30d619233ade724ffb279440bcf29a..f971ce5104d3697b57db66d2109e2f1b1f28acc2 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 225 -#define YY_END_OF_BUFFER 226 +#define YY_NUM_RULES 230 +#define YY_END_OF_BUFFER 231 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -389,135 +389,137 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1158] = +static yyconst flex_int16_t yy_accept[1177] = { 0, - 0, 0, 226, 224, 1, 1, 224, 5, 224, 6, - 224, 224, 224, 224, 224, 219, 21, 2, 224, 16, - 224, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 224, 28, 24, 19, 25, 17, - 26, 18, 0, 221, 3, 4, 20, 220, 219, 0, - 29, 27, 30, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - - 223, 223, 223, 223, 119, 118, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 148, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 200, 201, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 23, 22, - 0, 220, 0, 0, 222, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 60, - 71, 223, 223, 223, 223, 223, 223, 223, 223, 223, - - 223, 223, 223, 223, 223, 83, 223, 223, 223, 223, - 223, 223, 223, 223, 103, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 129, 223, 223, 223, 223, 223, 223, 140, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 185, 223, 223, 223, 177, 223, 223, 223, - 223, 223, 223, 183, 223, 223, 223, 223, 210, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 0, 221, 0, 0, 220, 223, 223, 33, 223, 223, - - 223, 223, 223, 223, 39, 41, 223, 223, 223, 223, - 223, 68, 223, 223, 53, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 59, 223, 223, 223, 223, 223, - 223, 223, 81, 223, 86, 223, 223, 223, 223, 223, - 94, 223, 96, 223, 223, 98, 223, 223, 102, 223, - 223, 223, 223, 223, 223, 223, 114, 115, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 124, 125, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 165, 223, 223, 223, 223, 223, 223, 223, 223, - - 223, 223, 223, 223, 223, 223, 223, 196, 178, 223, - 223, 223, 223, 223, 176, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 205, 209, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 10, 15, 9, - 8, 223, 12, 14, 0, 220, 31, 223, 223, 223, - 37, 223, 223, 223, 43, 223, 45, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 63, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 91, 93, 223, 223, 223, 97, 223, 223, - 101, 223, 223, 223, 223, 223, 223, 223, 223, 117, - - 223, 223, 122, 223, 223, 223, 223, 223, 130, 223, - 223, 223, 223, 133, 223, 223, 223, 223, 223, 142, - 223, 145, 223, 223, 223, 149, 223, 150, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 163, 164, - 223, 223, 223, 223, 223, 223, 198, 223, 223, 223, - 181, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 211, 223, 223, - 223, 223, 217, 223, 11, 223, 13, 223, 223, 35, - 223, 36, 40, 42, 223, 46, 223, 223, 223, 223, - 223, 54, 223, 223, 223, 223, 223, 223, 223, 223, - - 223, 223, 223, 223, 77, 79, 223, 223, 223, 87, - 90, 223, 95, 223, 223, 223, 223, 223, 223, 105, - 223, 223, 223, 223, 223, 223, 223, 131, 123, 223, - 223, 223, 223, 223, 223, 223, 138, 223, 135, 223, - 223, 223, 223, 223, 223, 154, 223, 153, 223, 223, - 223, 223, 223, 168, 223, 162, 223, 223, 223, 223, - 223, 223, 223, 179, 180, 223, 187, 223, 192, 223, - 194, 223, 223, 223, 195, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 218, 7, 223, - 223, 223, 44, 47, 223, 223, 223, 223, 223, 223, - - 223, 223, 58, 62, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 80, 85, 223, 223, 223, 88, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 169, 223, 223, 223, 223, 223, - 223, 223, 186, 223, 191, 223, 223, 223, 223, 182, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 52, 223, - 223, 223, 223, 223, 65, 223, 223, 223, 223, 223, - - 223, 223, 223, 84, 89, 223, 223, 223, 104, 223, - 223, 223, 223, 223, 108, 223, 116, 223, 223, 132, - 127, 223, 128, 223, 136, 137, 223, 223, 141, 223, - 223, 223, 146, 147, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 171, 223, 223, 223, 223, 223, 197, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 34, 223, - 223, 223, 223, 223, 223, 223, 56, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 92, 223, 223, - 223, 223, 223, 107, 106, 223, 223, 120, 223, 215, - - 223, 223, 223, 144, 223, 223, 223, 223, 223, 223, - 223, 159, 161, 223, 223, 223, 223, 223, 173, 223, - 174, 193, 189, 223, 223, 223, 199, 202, 223, 223, - 223, 223, 223, 208, 223, 214, 223, 223, 223, 223, - 223, 223, 67, 223, 57, 64, 223, 223, 223, 73, - 223, 223, 223, 223, 99, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 151, 223, 223, - 157, 223, 223, 223, 166, 223, 223, 82, 172, 223, - 223, 188, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 51, 223, 66, 55, 223, 223, - - 223, 223, 223, 78, 223, 223, 223, 223, 223, 223, - 223, 223, 216, 223, 223, 223, 152, 223, 223, 158, - 223, 223, 223, 223, 190, 223, 223, 223, 212, 223, - 206, 223, 32, 223, 223, 223, 48, 223, 223, 223, - 223, 75, 76, 223, 223, 223, 223, 223, 223, 223, - 126, 223, 139, 143, 223, 223, 223, 167, 223, 175, - 184, 223, 204, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 134, - 223, 223, 223, 223, 223, 207, 223, 223, 223, 223, - 61, 69, 223, 74, 223, 223, 223, 223, 109, 223, - - 223, 223, 223, 160, 170, 203, 223, 223, 223, 223, - 223, 223, 100, 223, 223, 223, 223, 223, 155, 223, - 223, 38, 223, 223, 223, 72, 223, 223, 223, 223, - 223, 223, 213, 223, 223, 223, 223, 223, 223, 223, - 223, 156, 223, 50, 223, 110, 111, 112, 113, 223, - 49, 223, 223, 223, 121, 70, 0 + 0, 0, 231, 229, 1, 1, 229, 5, 229, 6, + 229, 229, 229, 229, 229, 224, 21, 2, 229, 16, + 229, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 229, 28, 24, 19, 25, 17, + 26, 18, 0, 226, 3, 4, 20, 225, 224, 0, + 29, 27, 30, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + + 228, 228, 228, 228, 228, 228, 123, 122, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 152, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 205, 206, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 23, 22, 0, 225, 0, 0, 227, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 62, 73, 228, 228, 228, 228, 228, + + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 86, 228, 228, 228, 228, 228, 228, 228, 228, 107, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 133, 228, 228, 228, + 228, 228, 228, 144, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 190, 228, 228, + 228, 182, 228, 228, 228, 228, 228, 228, 188, 228, + 228, 228, 228, 215, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 0, 226, 0, 0, 225, + + 228, 228, 33, 228, 228, 228, 228, 228, 228, 39, + 41, 228, 228, 228, 228, 228, 228, 70, 228, 228, + 54, 228, 228, 228, 228, 228, 228, 228, 60, 228, + 228, 61, 228, 228, 228, 228, 228, 228, 228, 228, + 84, 228, 90, 228, 228, 228, 228, 228, 98, 228, + 100, 228, 228, 102, 228, 228, 106, 228, 228, 228, + 228, 228, 228, 228, 118, 119, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 128, 129, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 170, + + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 201, 183, 228, 228, 228, + 228, 228, 181, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 210, 214, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 10, 15, 9, 8, 228, + 12, 14, 0, 225, 31, 228, 228, 228, 37, 228, + 228, 228, 43, 228, 45, 228, 47, 228, 228, 228, + 228, 228, 228, 228, 228, 65, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 95, 97, 228, 228, 228, 101, 228, 228, + + 105, 228, 228, 228, 228, 228, 228, 228, 228, 121, + 228, 228, 126, 228, 228, 228, 228, 228, 134, 228, + 228, 228, 228, 137, 228, 228, 228, 228, 228, 146, + 228, 149, 228, 228, 228, 153, 228, 154, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 168, + 169, 228, 228, 228, 228, 228, 228, 203, 228, 228, + 228, 186, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 216, 228, + 228, 228, 228, 222, 228, 11, 228, 13, 228, 228, + 35, 228, 36, 40, 42, 228, 46, 228, 228, 228, + + 228, 228, 55, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 80, 82, 228, 228, + 228, 91, 94, 228, 99, 228, 228, 228, 228, 228, + 228, 109, 228, 228, 228, 228, 228, 228, 228, 135, + 127, 228, 228, 228, 228, 228, 228, 228, 142, 228, + 139, 228, 228, 228, 228, 228, 228, 158, 228, 157, + 228, 228, 228, 228, 228, 228, 173, 228, 167, 228, + 228, 228, 228, 228, 228, 228, 184, 185, 228, 192, + 228, 197, 228, 199, 228, 228, 228, 200, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + + 223, 7, 228, 228, 228, 44, 48, 228, 228, 228, + 228, 228, 228, 228, 228, 59, 64, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 83, 88, 228, + 228, 228, 228, 92, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 159, 228, 228, 228, 228, 228, + 174, 228, 228, 228, 228, 228, 228, 228, 191, 228, + 196, 228, 228, 228, 228, 187, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + + 228, 228, 228, 228, 53, 228, 228, 228, 228, 228, + 67, 228, 228, 228, 228, 76, 228, 228, 228, 228, + 87, 228, 93, 228, 228, 228, 108, 228, 228, 228, + 228, 228, 112, 228, 120, 228, 228, 136, 131, 228, + 132, 228, 140, 141, 228, 228, 145, 228, 228, 228, + 150, 151, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 176, 228, + 228, 228, 228, 228, 202, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 34, 228, 228, 228, + 228, 228, 228, 228, 57, 228, 228, 228, 228, 228, + + 228, 228, 228, 228, 228, 89, 96, 228, 228, 228, + 228, 228, 111, 110, 228, 228, 124, 228, 220, 228, + 228, 228, 148, 228, 228, 228, 228, 228, 228, 228, + 164, 166, 228, 228, 228, 228, 228, 178, 228, 179, + 198, 194, 228, 228, 228, 204, 207, 228, 228, 228, + 228, 228, 213, 228, 219, 228, 228, 228, 228, 228, + 228, 69, 228, 58, 66, 228, 228, 228, 75, 228, + 228, 228, 228, 103, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 155, 228, 228, 162, + 228, 228, 228, 171, 228, 228, 85, 177, 228, 228, + + 193, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 52, 228, 68, 56, 228, 228, 228, + 228, 228, 81, 228, 228, 228, 228, 228, 228, 228, + 228, 221, 228, 228, 228, 156, 228, 228, 163, 228, + 228, 228, 228, 195, 228, 228, 228, 217, 228, 211, + 228, 32, 228, 228, 228, 49, 228, 228, 228, 228, + 78, 79, 228, 228, 228, 228, 228, 228, 228, 130, + 228, 143, 147, 228, 228, 228, 172, 228, 180, 189, + 228, 209, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 138, 228, + + 228, 228, 228, 228, 212, 228, 228, 228, 228, 63, + 71, 228, 77, 228, 228, 228, 228, 113, 228, 228, + 228, 228, 165, 175, 208, 228, 228, 228, 228, 228, + 228, 104, 228, 228, 228, 228, 228, 160, 228, 228, + 38, 228, 228, 228, 74, 228, 228, 228, 228, 228, + 228, 218, 228, 228, 228, 228, 228, 228, 228, 228, + 161, 228, 51, 228, 114, 115, 116, 117, 228, 50, + 228, 228, 228, 125, 72, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -564,269 +566,273 @@ static yyconst flex_int32_t yy_meta[74] = 2, 2, 1 } ; -static yyconst flex_int16_t yy_base[1159] = +static yyconst flex_int16_t yy_base[1178] = { 0, - 0, 0, 1290, 1291, 1291, 1291, 1268, 1291, 1282, 1291, - 1266, 65, 66, 64, 76, 78, 1291, 1291, 1265, 1264, - 1263, 49, 49, 56, 69, 64, 79, 84, 83, 96, - 0, 1223, 99, 110, 111, 81, 109, 1215, 120, 173, - 160, 117, 1220, 1228, 1206, 1291, 1291, 1291, 1291, 1291, - 1291, 1291, 1267, 182, 1291, 1291, 1291, 189, 232, 241, - 1291, 1291, 1291, 0, 119, 1216, 1228, 1222, 1218, 1223, - 1216, 1223, 1208, 37, 122, 84, 1213, 1220, 1203, 152, - 1199, 1213, 1200, 132, 136, 1215, 161, 1211, 1197, 1210, - 171, 1210, 208, 1197, 1196, 1192, 1195, 1213, 1187, 1187, - - 1200, 24, 1188, 1207, 0, 1182, 1186, 1175, 106, 202, - 184, 1214, 1194, 204, 1192, 1201, 1182, 1171, 1175, 1186, - 1186, 1172, 1171, 1163, 0, 153, 214, 1177, 1184, 1171, - 221, 86, 1172, 1193, 1180, 1161, 1165, 1165, 1168, 1162, - 218, 1158, 1157, 1156, 133, 0, 0, 1184, 1158, 210, - 1153, 226, 1168, 1164, 1152, 1157, 1154, 1142, 1291, 1291, - 281, 286, 295, 301, 306, 1146, 1148, 1143, 1145, 1150, - 1157, 299, 1144, 1143, 1144, 1135, 1144, 1141, 1138, 1139, - 229, 1138, 1131, 1144, 200, 1132, 67, 1128, 1120, 1135, - 0, 1141, 1124, 1131, 1134, 1133, 1136, 1147, 1113, 1125, - - 1128, 255, 1118, 1120, 199, 0, 1113, 1111, 1117, 1122, - 1122, 1132, 1110, 1119, 0, 1119, 1138, 298, 1112, 1114, - 1113, 1103, 1102, 1135, 1109, 1094, 1107, 1104, 1105, 44, - 1090, 292, 1103, 1107, 1089, 1091, 1096, 1083, 0, 1097, - 1113, 1098, 1088, 1093, 1096, 1087, 1077, 1081, 1086, 1079, - 1090, 1077, 1085, 1084, 265, 1078, 1072, 1065, 1079, 1082, - 1069, 1076, 0, 1069, 318, 1057, 1070, 1073, 1062, 1070, - 1065, 1064, 1053, 323, 1065, 1058, 1066, 1088, 1059, 1047, - 1046, 1044, 1062, 1061, 1048, 1055, 1054, 1045, 1037, 312, - 314, 368, 377, 382, 387, 1037, 1044, 0, 1035, 1040, - - 1034, 1037, 1041, 1048, 0, 1080, 1038, 1037, 1040, 1039, - 1039, 0, 1029, 1021, 0, 1039, 1028, 1021, 1025, 1019, - 1026, 286, 1030, 1043, 0, 1013, 1026, 1017, 1016, 1009, - 1008, 1025, 0, 1010, 1040, 1009, 1016, 1004, 1011, 1000, - 0, 998, 0, 1013, 1036, 0, 1010, 997, 0, 994, - 1012, 998, 990, 990, 1007, 1027, 0, 0, 995, 986, - 1011, 986, 984, 984, 981, 988, 983, 0, 1016, 1030, - 980, 977, 295, 979, 975, 1015, 979, 994, 974, 969, - 985, 968, 972, 969, 973, 976, 971, 960, 961, 958, - 176, 0, 964, 958, 961, 970, 955, 954, 951, 965, - - 964, 962, 958, 964, 944, 962, 943, 0, 0, 956, - 941, 942, 289, 945, 0, 312, 948, 951, 938, 949, - 933, 939, 950, 945, 961, 0, 0, 961, 971, 952, - 921, 933, 925, 936, 924, 933, 927, 0, 0, 927, - 0, 932, 925, 0, 392, 397, 0, 915, 946, 928, - 934, 913, 917, 916, 0, 915, 0, 910, 925, 916, - 923, 912, 919, 916, 915, 905, 923, 904, 911, 895, - 905, 898, 907, 898, 905, 904, 903, 902, 894, 287, - 899, 887, 0, 0, 899, 884, 897, 0, 877, 888, - 0, 889, 331, 876, 884, 878, 883, 870, 878, 0, - - 900, 872, 0, 871, 880, 869, 885, 868, 0, 883, - 905, 881, 872, 0, 856, 868, 864, 863, 872, 0, - 873, 0, 869, 869, 869, 0, 858, 0, 876, 863, - 851, 865, 848, 860, 863, 850, 844, 856, 0, 0, - 873, 858, 855, 845, 839, 838, 0, 846, 848, 847, - 0, 832, 831, 835, 833, 834, 833, 840, 310, 842, - 836, 839, 822, 826, 834, 819, 832, 0, 848, 292, - 826, 856, 0, 828, 0, 825, 0, 812, 825, 0, - 820, 0, 0, 860, 822, 0, 813, 812, 807, 812, - 803, 0, 808, 809, 818, 813, 794, 803, 802, 795, - - 818, 793, 390, 794, 0, 0, 805, 364, 800, 0, - 0, 799, 0, 802, 797, 804, 790, 199, 827, 0, - 800, 792, 780, 794, 791, 807, 791, 0, 0, 790, - 791, 779, 789, 790, 777, 764, 0, 781, 0, 793, - 781, 335, 766, 775, 782, 0, 767, 0, 772, 383, - 771, 791, 759, 0, 772, 0, 775, 762, 755, 771, - 753, 762, 765, 0, 0, 763, 0, 759, 0, 763, - 0, 760, 764, 753, 0, 768, 757, 744, 756, 738, - 739, 754, 751, 379, 754, 741, 752, 0, 0, 747, - 733, 731, 0, 0, 391, 742, 724, 754, 741, 742, - - 45, 120, 0, 0, 234, 245, 251, 276, 347, 317, - 321, 323, 371, 0, 0, 356, 373, 376, 0, 360, - 361, 368, 397, 394, 391, 384, 377, 386, 390, 372, - 410, 395, 380, 395, 389, 397, 385, 394, 400, 392, - 388, 397, 406, 390, 394, 409, 402, 406, 439, 415, - 404, 398, 415, 416, 0, 404, 416, 410, 420, 417, - 414, 412, 0, 427, 0, 422, 413, 433, 421, 0, - 412, 432, 433, 422, 422, 430, 424, 432, 427, 442, - 430, 458, 442, 443, 440, 434, 442, 479, 0, 444, - 442, 455, 454, 451, 0, 444, 450, 450, 457, 454, - - 456, 452, 451, 0, 0, 458, 453, 464, 0, 484, - 485, 498, 460, 471, 0, 459, 0, 504, 462, 0, - 0, 501, 0, 478, 0, 0, 467, 468, 0, 467, - 474, 479, 0, 0, 484, 486, 489, 478, 480, 475, - 490, 491, 479, 510, 480, 495, 484, 485, 484, 497, - 0, 500, 483, 498, 505, 520, 0, 499, 500, 503, - 504, 500, 514, 507, 512, 540, 514, 519, 0, 531, - 503, 521, 515, 511, 514, 518, 0, 504, 524, 525, - 518, 518, 516, 516, 533, 527, 532, 0, 520, 518, - 547, 548, 559, 0, 546, 525, 550, 0, 537, 563, - - 539, 540, 541, 0, 548, 535, 549, 543, 566, 549, - 552, 0, 0, 550, 554, 573, 557, 538, 0, 554, - 0, 0, 0, 543, 560, 565, 0, 0, 565, 554, - 552, 566, 552, 0, 558, 0, 554, 559, 570, 557, - 563, 555, 0, 562, 0, 0, 563, 564, 572, 579, - 566, 581, 574, 584, 0, 584, 590, 591, 592, 592, - 593, 611, 585, 584, 579, 586, 586, 0, 596, 605, - 0, 598, 593, 588, 0, 588, 606, 0, 0, 594, - 604, 0, 598, 591, 599, 589, 619, 610, 603, 609, - 599, 602, 603, 608, 0, 603, 0, 0, 609, 621, - - 624, 610, 621, 0, 638, 633, 634, 635, 622, 632, - 645, 631, 0, 629, 632, 627, 0, 636, 620, 0, - 642, 636, 621, 633, 0, 642, 629, 631, 0, 633, - 0, 633, 0, 643, 635, 653, 0, 646, 649, 638, - 645, 0, 0, 658, 680, 681, 682, 643, 653, 676, - 0, 654, 0, 0, 650, 671, 658, 0, 665, 0, - 0, 666, 0, 663, 654, 660, 670, 673, 674, 654, - 665, 661, 662, 689, 690, 691, 680, 681, 687, 0, - 669, 684, 672, 674, 675, 0, 693, 682, 693, 678, - 0, 709, 682, 0, 692, 707, 708, 709, 0, 715, - - 711, 688, 690, 0, 0, 0, 695, 691, 691, 702, - 698, 689, 0, 730, 731, 732, 716, 740, 0, 700, - 701, 0, 712, 708, 740, 0, 734, 735, 736, 715, - 745, 711, 0, 716, 718, 718, 744, 745, 746, 731, - 757, 0, 725, 0, 728, 0, 0, 0, 0, 752, - 0, 736, 762, 725, 0, 0, 1291, 789 + 0, 0, 1309, 1310, 1310, 1310, 1287, 1310, 1301, 1310, + 1285, 65, 66, 64, 76, 78, 1310, 1310, 1284, 1283, + 1282, 49, 60, 71, 52, 64, 88, 102, 87, 103, + 0, 1242, 112, 114, 105, 46, 122, 1234, 133, 186, + 173, 122, 1239, 1247, 1225, 1310, 1310, 1310, 1310, 1310, + 1310, 1310, 1286, 195, 1310, 1310, 1310, 202, 245, 182, + 1310, 1310, 1310, 0, 64, 1235, 1247, 1241, 1237, 1242, + 1235, 1242, 1227, 24, 1227, 42, 93, 1231, 1238, 1221, + 208, 1217, 1231, 1218, 1223, 87, 53, 1232, 111, 1228, + 1214, 1227, 158, 1227, 219, 1214, 1213, 1209, 1212, 1230, + + 1204, 1204, 1217, 24, 1205, 1224, 0, 1199, 1203, 1192, + 111, 142, 96, 1231, 1211, 167, 1209, 1218, 1199, 1188, + 1192, 1203, 1203, 1189, 1188, 1180, 0, 179, 147, 1194, + 1201, 1188, 225, 164, 1189, 1210, 1197, 1178, 1182, 1182, + 1185, 1179, 226, 1175, 1174, 1173, 180, 0, 0, 1201, + 1175, 185, 1170, 214, 1185, 1181, 1169, 1174, 1171, 1159, + 1310, 1310, 285, 290, 299, 305, 310, 1163, 1165, 1160, + 1162, 1167, 1174, 303, 1161, 1160, 1161, 1152, 1161, 1166, + 1157, 1154, 1155, 154, 1154, 1147, 1160, 224, 1148, 202, + 1156, 1143, 1135, 1150, 0, 1156, 1139, 1146, 1145, 1148, + + 1147, 1150, 1161, 1127, 1139, 1142, 162, 1132, 1134, 221, + 0, 1127, 1125, 1131, 1136, 1136, 1146, 1124, 1133, 0, + 1133, 1152, 302, 1126, 1128, 1127, 1117, 1116, 1149, 1123, + 1108, 1121, 1118, 1119, 289, 1104, 296, 1117, 1121, 1103, + 1105, 1110, 1097, 0, 1111, 1127, 1112, 1102, 1107, 1110, + 1101, 1091, 1095, 1100, 1093, 1104, 1091, 1099, 1098, 221, + 1092, 1086, 1079, 1093, 1096, 1083, 1090, 0, 1083, 311, + 1071, 1084, 1087, 1076, 1084, 1079, 1078, 1067, 323, 1079, + 1072, 1080, 1102, 1073, 1061, 1060, 1058, 1076, 1075, 1062, + 1069, 1068, 1059, 1051, 309, 318, 367, 376, 381, 386, + + 1051, 1058, 0, 1049, 1054, 1048, 1051, 1055, 1062, 0, + 1094, 1052, 1051, 1054, 1048, 1052, 1052, 0, 1042, 1034, + 0, 1052, 1041, 1034, 1038, 1032, 1039, 292, 0, 1043, + 1056, 0, 1026, 1039, 1030, 1029, 1028, 1021, 1020, 1037, + 0, 1022, 1052, 1021, 1028, 1016, 1023, 1012, 0, 1010, + 0, 1025, 1048, 0, 1022, 1009, 0, 1006, 1024, 1010, + 1002, 1002, 1019, 1039, 0, 0, 1007, 998, 1023, 998, + 996, 996, 993, 1000, 995, 0, 1028, 1042, 992, 989, + 314, 991, 987, 1027, 991, 1006, 986, 981, 997, 980, + 984, 981, 985, 988, 983, 972, 973, 970, 345, 0, + + 976, 970, 973, 982, 967, 966, 963, 977, 976, 974, + 970, 976, 956, 974, 955, 0, 0, 968, 953, 954, + 300, 957, 0, 310, 960, 963, 950, 961, 945, 951, + 962, 957, 973, 0, 0, 973, 983, 964, 933, 945, + 937, 948, 936, 945, 939, 0, 0, 939, 0, 944, + 937, 0, 391, 399, 0, 927, 958, 940, 946, 925, + 929, 928, 0, 927, 0, 922, 0, 937, 928, 935, + 924, 931, 928, 927, 917, 935, 916, 923, 907, 917, + 910, 919, 910, 918, 916, 915, 914, 913, 905, 310, + 910, 898, 0, 0, 910, 895, 908, 0, 888, 899, + + 0, 900, 382, 887, 895, 889, 894, 881, 889, 0, + 911, 883, 0, 882, 891, 880, 896, 879, 0, 894, + 916, 892, 883, 0, 867, 879, 875, 874, 883, 0, + 884, 0, 880, 880, 880, 0, 869, 0, 887, 874, + 862, 869, 875, 858, 870, 873, 860, 854, 866, 0, + 0, 883, 868, 865, 855, 849, 848, 0, 856, 858, + 857, 0, 842, 841, 845, 843, 844, 843, 850, 234, + 852, 846, 849, 832, 836, 844, 829, 842, 0, 858, + 365, 836, 866, 0, 838, 0, 835, 0, 822, 835, + 0, 830, 0, 0, 870, 832, 0, 823, 822, 817, + + 822, 813, 0, 818, 819, 828, 823, 804, 813, 812, + 805, 828, 803, 816, 385, 803, 0, 0, 814, 372, + 809, 0, 0, 808, 0, 811, 806, 813, 799, 212, + 836, 0, 809, 801, 789, 803, 800, 816, 800, 0, + 0, 799, 800, 788, 798, 799, 786, 773, 0, 790, + 0, 802, 790, 396, 775, 784, 791, 0, 776, 0, + 781, 786, 388, 779, 799, 767, 0, 780, 0, 783, + 770, 763, 779, 761, 770, 773, 0, 0, 771, 0, + 767, 0, 771, 0, 768, 772, 761, 0, 776, 765, + 752, 764, 746, 747, 762, 759, 386, 37, 107, 175, + + 0, 0, 181, 209, 245, 0, 0, 396, 286, 285, + 328, 318, 322, 317, 339, 0, 0, 378, 382, 375, + 371, 408, 371, 377, 373, 375, 395, 0, 0, 380, + 391, 398, 402, 0, 386, 386, 393, 422, 419, 414, + 405, 398, 407, 410, 390, 428, 413, 398, 413, 407, + 415, 403, 412, 418, 410, 406, 415, 424, 408, 412, + 427, 420, 424, 457, 0, 433, 422, 416, 433, 434, + 0, 422, 434, 428, 438, 435, 432, 430, 0, 445, + 0, 440, 431, 451, 439, 0, 430, 450, 451, 440, + 440, 448, 442, 450, 445, 460, 448, 476, 460, 461, + + 458, 452, 460, 497, 0, 462, 460, 473, 472, 469, + 0, 462, 468, 468, 475, 0, 472, 474, 470, 469, + 0, 485, 0, 477, 472, 483, 0, 503, 504, 517, + 479, 490, 0, 478, 0, 523, 481, 0, 0, 520, + 0, 497, 0, 0, 486, 487, 0, 486, 493, 498, + 0, 0, 503, 505, 508, 497, 499, 494, 509, 510, + 498, 529, 499, 514, 503, 504, 503, 516, 0, 519, + 502, 517, 524, 539, 0, 518, 519, 522, 523, 519, + 533, 526, 531, 559, 533, 538, 0, 550, 522, 540, + 534, 530, 533, 537, 0, 523, 543, 544, 537, 537, + + 535, 535, 552, 546, 551, 0, 0, 539, 537, 566, + 567, 578, 0, 565, 544, 569, 0, 556, 582, 558, + 559, 560, 0, 567, 554, 568, 562, 585, 568, 571, + 0, 0, 569, 573, 592, 576, 557, 0, 573, 0, + 0, 0, 562, 579, 584, 0, 0, 584, 573, 571, + 585, 571, 0, 577, 0, 573, 578, 589, 576, 582, + 574, 0, 581, 0, 0, 582, 583, 591, 598, 585, + 600, 593, 603, 0, 603, 609, 610, 611, 611, 612, + 630, 604, 603, 598, 605, 605, 0, 615, 624, 0, + 617, 612, 607, 0, 607, 625, 0, 0, 613, 623, + + 0, 617, 610, 618, 608, 638, 629, 622, 628, 618, + 621, 622, 627, 0, 622, 0, 0, 628, 640, 643, + 629, 640, 0, 657, 652, 653, 654, 641, 651, 664, + 650, 0, 648, 651, 646, 0, 655, 639, 0, 661, + 655, 640, 652, 0, 661, 648, 650, 0, 652, 0, + 652, 0, 662, 654, 672, 0, 665, 668, 657, 664, + 0, 0, 677, 699, 700, 701, 662, 672, 695, 0, + 673, 0, 0, 669, 690, 677, 0, 684, 0, 0, + 685, 0, 682, 673, 679, 689, 692, 693, 673, 684, + 680, 681, 708, 709, 710, 699, 700, 706, 0, 688, + + 703, 691, 693, 694, 0, 712, 701, 712, 697, 0, + 728, 701, 0, 711, 726, 727, 728, 0, 734, 730, + 707, 709, 0, 0, 0, 714, 710, 710, 721, 717, + 708, 0, 749, 750, 751, 735, 759, 0, 719, 720, + 0, 731, 727, 759, 0, 753, 754, 755, 734, 764, + 730, 0, 735, 737, 737, 763, 764, 765, 750, 776, + 0, 744, 0, 747, 0, 0, 0, 0, 771, 0, + 755, 781, 744, 0, 0, 1310, 808 } ; -static yyconst flex_int16_t yy_def[1159] = +static yyconst flex_int16_t yy_def[1178] = { 0, - 1157, 1, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, - 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, - 1157, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1157, 1157, 1157, 1157, 1157, 1157, - 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, - 1157, 1157, 1157, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1157, 1157, - 1157, 1157, 1157, 1157, 1157, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1157, 1157, 1157, 1157, 1157, 1158, 1158, 1158, 1158, 1158, - - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1157, 1157, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 1158, 1158, 1158, 0, 1157 + 1176, 1, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, + 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, + 1176, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1176, 1176, 1176, 1176, 1176, 1176, + 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, + 1176, 1176, 1176, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1176, 1176, 1176, 1176, 1176, + + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1176, 1176, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 0, 1176 } ; -static yyconst flex_int16_t yy_nxt[1365] = +static yyconst flex_int16_t yy_nxt[1384] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16, 16, 16, 16, 17, 18, 19, @@ -836,56 +842,56 @@ static yyconst flex_int16_t yy_nxt[1365] = 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, 221, 222, 55, 367, 50, 52, 56, 58, 73, - 59, 59, 59, 59, 59, 368, 57, 65, 66, 67, - - 74, 68, 176, 76, 60, 793, 69, 77, 177, 75, - 78, 79, 70, 71, 72, 321, 80, 81, 98, 82, - 84, 87, 83, 88, 85, 116, 92, 89, 322, 60, - 90, 104, 86, 91, 93, 99, 94, 95, 101, 96, - 120, 180, 100, 102, 121, 97, 108, 112, 105, 181, - 109, 260, 261, 103, 110, 106, 122, 113, 117, 111, - 123, 114, 118, 124, 125, 228, 126, 130, 794, 127, - 115, 131, 128, 229, 146, 147, 154, 119, 155, 166, - 132, 156, 178, 167, 194, 195, 133, 134, 179, 196, - 148, 276, 277, 197, 54, 54, 54, 54, 54, 198, - - 248, 162, 162, 162, 162, 162, 185, 149, 161, 186, - 187, 150, 188, 189, 151, 163, 190, 531, 200, 249, - 152, 723, 135, 153, 136, 201, 205, 137, 138, 724, - 139, 140, 206, 161, 141, 142, 207, 232, 143, 144, - 163, 531, 58, 145, 59, 59, 59, 59, 59, 164, - 164, 318, 233, 165, 165, 165, 165, 165, 60, 209, - 319, 230, 236, 340, 341, 210, 231, 211, 237, 250, - 255, 251, 270, 256, 280, 271, 283, 212, 257, 281, - 313, 272, 336, 60, 795, 337, 258, 314, 259, 291, - 291, 284, 796, 292, 292, 292, 292, 292, 162, 162, - - 162, 162, 162, 294, 294, 370, 797, 295, 295, 295, - 295, 295, 293, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 302, 352, 393, 292, 292, 292, 292, - 292, 394, 371, 353, 512, 513, 798, 293, 354, 303, - 304, 355, 403, 469, 684, 404, 470, 416, 550, 685, - 417, 608, 609, 405, 551, 406, 418, 743, 407, 553, - 419, 438, 420, 421, 439, 618, 554, 673, 619, 440, - 555, 674, 799, 441, 744, 442, 443, 800, 422, 444, - 292, 292, 292, 292, 292, 445, 445, 801, 802, 446, - 446, 446, 446, 446, 295, 295, 295, 295, 295, 295, - - 295, 295, 295, 295, 446, 446, 446, 446, 446, 446, - 446, 446, 446, 446, 710, 715, 750, 777, 803, 716, - 804, 785, 805, 806, 807, 711, 808, 809, 810, 811, - 712, 786, 812, 787, 778, 813, 814, 815, 751, 816, - 750, 777, 817, 818, 819, 820, 821, 822, 823, 824, + 54, 226, 227, 55, 795, 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, + 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, + 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, 344, + 166, 166, 345, 134, 167, 167, 167, 167, 167, 135, + + 136, 235, 255, 150, 256, 319, 236, 54, 54, 54, + 54, 54, 320, 210, 164, 164, 164, 164, 164, 211, + 151, 163, 797, 212, 152, 241, 253, 153, 165, 265, + 266, 242, 798, 154, 738, 137, 155, 138, 281, 282, + 139, 140, 739, 141, 142, 254, 163, 143, 144, 285, + 327, 145, 146, 165, 286, 58, 147, 59, 59, 59, + 59, 59, 188, 328, 288, 189, 190, 191, 192, 193, + 214, 60, 194, 799, 260, 324, 215, 261, 216, 289, + 275, 401, 262, 276, 325, 348, 349, 402, 217, 277, + 263, 686, 264, 296, 296, 687, 60, 297, 297, 297, + + 297, 297, 164, 164, 164, 164, 164, 299, 299, 378, + 800, 300, 300, 300, 300, 300, 298, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 307, 360, 375, + 297, 297, 297, 297, 297, 411, 379, 361, 412, 804, + 376, 298, 362, 308, 309, 363, 413, 424, 414, 478, + 425, 415, 479, 522, 523, 805, 426, 564, 446, 561, + 427, 447, 428, 429, 565, 562, 448, 806, 566, 807, + 449, 808, 450, 451, 620, 621, 452, 809, 430, 297, + 297, 297, 297, 297, 453, 453, 541, 810, 454, 454, + 454, 454, 454, 300, 300, 300, 300, 300, 300, 300, + + 300, 300, 300, 454, 454, 454, 454, 454, 542, 724, + 541, 454, 454, 454, 454, 454, 630, 697, 758, 631, + 725, 766, 698, 729, 793, 726, 801, 730, 811, 812, + 813, 814, 731, 815, 816, 759, 802, 817, 803, 818, + 819, 794, 820, 767, 821, 766, 822, 823, 793, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, - 835, 836, 840, 841, 837, 842, 843, 844, 845, 846, - 847, 848, 849, 850, 838, 851, 852, 853, 854, 839, - 855, 856, 857, 858, 859, 860, 836, 861, 862, 837, - 863, 864, 865, 866, 867, 868, 869, 870, 838, 871, - - 872, 873, 874, 839, 875, 876, 877, 878, 879, 880, - 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, - 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, + 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, + 858, 859, 855, 860, 861, 862, 863, 864, 865, 866, + 867, 868, 856, 869, 870, 871, 872, 857, 873, 874, + + 875, 876, 877, 878, 854, 879, 880, 855, 881, 882, + 883, 884, 885, 886, 887, 888, 856, 889, 890, 891, + 892, 857, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 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, @@ -896,91 +902,93 @@ static yyconst flex_int16_t yy_nxt[1365] = 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, - 991, 992, 993, 994, 995, 972, 996, 997, 998, 999, - 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, - 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, + 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, + 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, + 1011, 1012, 1013, 1014, 991, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, - 1040, 1041, 1018, 1042, 1043, 1044, 1045, 1046, 1047, 1048, - 1049, 1050, 1051, 1052, 1030, 1053, 1054, 1055, 1056, 1057, - 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, + 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, + 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, + 1060, 1037, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, - 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, + 1069, 1070, 1071, 1049, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, - 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1082, 1106, - 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, - 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, + 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, 1101, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, - 64, 792, 791, 790, 789, 788, 784, 783, 782, 781, - - 780, 779, 776, 775, 774, 773, 772, 771, 770, 769, - 768, 767, 766, 765, 764, 763, 762, 761, 760, 759, - 758, 757, 756, 755, 754, 753, 752, 749, 748, 747, - 746, 745, 742, 741, 740, 739, 738, 737, 736, 735, - 734, 733, 732, 731, 730, 729, 728, 727, 726, 725, - 722, 721, 720, 719, 718, 717, 714, 713, 709, 708, - 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, - 697, 696, 695, 694, 693, 692, 691, 690, 689, 688, - 687, 686, 683, 682, 681, 680, 679, 678, 677, 676, - 675, 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, 634, - 633, 632, 631, 630, 629, 628, 627, 626, 625, 624, - 623, 622, 621, 620, 617, 616, 615, 614, 613, 612, - 611, 610, 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, - 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, - - 559, 558, 557, 556, 552, 549, 548, 547, 546, 545, - 544, 543, 542, 541, 540, 539, 538, 537, 536, 535, - 534, 533, 532, 530, 529, 528, 527, 526, 525, 524, - 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, - 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, - 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, - 471, 468, 467, 466, 465, 464, 463, 462, 461, 460, - 459, 458, 457, 456, 455, 454, 453, 452, 451, 450, - - 449, 448, 447, 437, 436, 435, 434, 433, 432, 431, - 430, 429, 428, 427, 426, 425, 424, 423, 415, 414, - 413, 412, 411, 410, 409, 408, 402, 401, 400, 399, - 398, 397, 396, 395, 392, 391, 390, 389, 388, 387, - 386, 385, 384, 383, 382, 381, 380, 379, 378, 377, - 376, 375, 374, 373, 372, 369, 366, 365, 364, 363, - 362, 361, 360, 359, 358, 357, 356, 351, 350, 349, - 348, 347, 346, 345, 344, 343, 342, 339, 338, 335, - 334, 333, 332, 331, 330, 329, 328, 327, 326, 325, - 324, 323, 320, 317, 316, 315, 312, 311, 310, 309, - - 308, 307, 306, 305, 301, 300, 299, 298, 297, 296, - 290, 289, 288, 287, 286, 285, 282, 279, 278, 275, - 274, 273, 269, 268, 267, 266, 265, 264, 263, 262, - 254, 253, 252, 247, 246, 245, 244, 243, 242, 241, - 240, 239, 238, 235, 234, 227, 226, 225, 224, 223, - 220, 219, 218, 217, 216, 215, 214, 213, 208, 204, - 203, 202, 199, 193, 192, 191, 184, 183, 182, 175, - 174, 173, 172, 171, 170, 169, 168, 160, 159, 158, - 157, 129, 107, 63, 62, 61, 48, 47, 46, 1157, - 3, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, - - 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, - 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, - 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, - 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, - 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, - 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, - 1157, 1157, 1157, 1157 + 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, + + 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 64, + 792, 791, 790, 789, 788, 787, 786, 785, 784, 783, + 782, 781, 780, 779, 778, 777, 776, 775, 774, 773, + 772, 771, 770, 769, 768, 765, 764, 763, 762, 761, + 760, 757, 756, 755, 754, 753, 752, 751, 750, 749, + 748, 747, 746, 745, 744, 743, 742, 741, 740, 737, + 736, 735, 734, 733, 732, 728, 727, 723, 722, 721, + 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, + 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, + 700, 699, 696, 695, 694, 693, 692, 691, 690, 689, + + 688, 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, 634, 633, 632, 629, 628, 627, 626, 625, + 624, 623, 622, 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, 569, 568, 567, 563, 560, 559, 558, + 557, 556, 555, 554, 553, 552, 551, 550, 549, 548, + 547, 546, 545, 544, 543, 540, 539, 538, 537, 536, + 535, 534, 533, 532, 531, 530, 529, 528, 527, 526, + 525, 524, 521, 520, 519, 518, 517, 516, 515, 514, + 513, 512, 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, 481, 480, 477, 476, 475, 474, 473, 472, + + 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, + 461, 460, 459, 458, 457, 456, 455, 445, 444, 443, + 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, + 432, 431, 423, 422, 421, 420, 419, 418, 417, 416, + 410, 409, 408, 407, 406, 405, 404, 403, 400, 399, + 398, 397, 396, 395, 394, 393, 392, 391, 390, 389, + 388, 387, 386, 385, 384, 383, 382, 381, 380, 377, + 374, 373, 372, 371, 370, 369, 368, 367, 366, 365, + 364, 359, 358, 357, 356, 355, 354, 353, 352, 351, + 350, 347, 346, 343, 342, 341, 340, 339, 338, 337, + + 336, 335, 334, 333, 332, 331, 330, 329, 326, 323, + 322, 321, 318, 317, 316, 315, 314, 313, 312, 311, + 310, 306, 305, 304, 303, 302, 301, 295, 294, 293, + 292, 291, 290, 287, 284, 283, 280, 279, 278, 274, + 273, 272, 271, 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, 1176, 3, + 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, + 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, + 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, + 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, + 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, + 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, + 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, + 1176, 1176, 1176 } ; -static yyconst flex_int16_t yy_chk[1365] = +static yyconst flex_int16_t yy_chk[1384] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -990,148 +998,150 @@ static yyconst flex_int16_t yy_chk[1365] = 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, 102, 102, 15, 230, 12, 13, 15, 16, 23, - 16, 16, 16, 16, 16, 230, 15, 22, 22, 22, - - 23, 22, 74, 24, 16, 701, 22, 24, 74, 23, - 24, 24, 22, 22, 22, 187, 24, 24, 28, 24, - 25, 26, 24, 26, 25, 35, 27, 26, 187, 16, - 26, 30, 25, 26, 27, 28, 27, 27, 29, 27, - 36, 76, 28, 29, 36, 27, 33, 34, 30, 76, - 33, 132, 132, 29, 33, 30, 37, 34, 35, 33, - 37, 34, 35, 37, 37, 109, 37, 39, 702, 37, - 34, 39, 37, 109, 41, 41, 42, 35, 42, 65, - 39, 42, 75, 65, 84, 84, 39, 40, 75, 84, - 41, 145, 145, 85, 54, 54, 54, 54, 54, 85, - - 126, 58, 58, 58, 58, 58, 80, 41, 54, 80, - 80, 41, 80, 80, 41, 58, 80, 391, 87, 126, - 41, 618, 40, 41, 40, 87, 91, 40, 40, 618, - 40, 40, 91, 54, 40, 40, 91, 111, 40, 40, - 58, 391, 59, 40, 59, 59, 59, 59, 59, 60, - 60, 185, 111, 60, 60, 60, 60, 60, 59, 93, - 185, 110, 114, 205, 205, 93, 110, 93, 114, 127, - 131, 127, 141, 131, 150, 141, 152, 93, 131, 150, - 181, 141, 202, 59, 705, 202, 131, 181, 131, 161, - 161, 152, 706, 161, 161, 161, 161, 161, 162, 162, - - 162, 162, 162, 163, 163, 232, 707, 163, 163, 163, - 163, 163, 162, 164, 164, 164, 164, 164, 165, 165, - 165, 165, 165, 172, 218, 255, 291, 291, 291, 291, - 291, 255, 232, 218, 373, 373, 708, 162, 218, 172, - 172, 218, 265, 322, 570, 265, 322, 274, 413, 570, - 274, 480, 480, 265, 413, 265, 274, 642, 265, 416, - 274, 290, 274, 274, 290, 493, 416, 559, 493, 290, - 416, 559, 709, 290, 642, 290, 290, 710, 274, 290, - 292, 292, 292, 292, 292, 293, 293, 711, 712, 293, - 293, 293, 293, 293, 294, 294, 294, 294, 294, 295, - - 295, 295, 295, 295, 445, 445, 445, 445, 445, 446, - 446, 446, 446, 446, 603, 608, 650, 684, 713, 608, - 716, 695, 717, 718, 720, 603, 721, 722, 723, 724, - 603, 695, 725, 695, 684, 726, 727, 728, 650, 729, - 650, 684, 730, 731, 732, 733, 734, 735, 736, 737, - 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, - 748, 749, 750, 751, 749, 752, 753, 754, 756, 757, - 758, 759, 760, 761, 749, 762, 764, 766, 767, 749, - 768, 769, 771, 772, 773, 774, 749, 775, 776, 749, - 777, 778, 779, 780, 781, 782, 783, 784, 749, 785, - - 786, 787, 788, 749, 790, 791, 792, 793, 794, 796, - 797, 798, 799, 800, 801, 802, 803, 806, 807, 808, - 810, 811, 812, 813, 814, 816, 818, 819, 822, 824, - 827, 828, 830, 831, 832, 835, 836, 837, 838, 839, - 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, - 850, 852, 853, 854, 855, 856, 858, 859, 860, 861, - 862, 863, 864, 865, 866, 867, 868, 870, 871, 872, - 873, 874, 875, 876, 878, 879, 880, 881, 882, 883, - 884, 885, 886, 887, 889, 890, 891, 892, 893, 895, - 896, 897, 899, 900, 901, 902, 903, 905, 906, 907, - - 908, 909, 910, 911, 914, 915, 916, 917, 918, 920, - 924, 925, 926, 929, 930, 931, 932, 933, 935, 937, - 938, 939, 940, 941, 942, 909, 944, 947, 948, 949, - 950, 951, 952, 953, 954, 956, 957, 958, 959, 960, - 961, 962, 963, 964, 965, 966, 967, 969, 970, 972, - 973, 974, 976, 977, 980, 981, 983, 984, 985, 986, - 987, 988, 989, 990, 991, 992, 993, 994, 996, 999, - 1000, 1001, 970, 1002, 1003, 1005, 1006, 1007, 1008, 1009, - 1010, 1011, 1012, 1014, 987, 1015, 1016, 1018, 1019, 1021, - 1022, 1023, 1024, 1026, 1027, 1028, 1030, 1032, 1034, 1035, - - 1036, 1038, 1039, 1040, 1041, 1044, 1045, 1046, 1047, 1048, - 1049, 1050, 1052, 1055, 1056, 1057, 1059, 1062, 1064, 1065, - 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, - 1076, 1077, 1078, 1079, 1081, 1082, 1083, 1084, 1056, 1085, - 1087, 1088, 1089, 1090, 1092, 1093, 1095, 1096, 1097, 1098, - 1100, 1101, 1102, 1103, 1107, 1108, 1109, 1110, 1111, 1112, - 1114, 1115, 1116, 1117, 1118, 1120, 1121, 1123, 1124, 1125, - 1127, 1128, 1129, 1130, 1131, 1132, 1134, 1135, 1136, 1137, - 1138, 1139, 1140, 1141, 1143, 1145, 1150, 1152, 1153, 1154, - 1158, 700, 699, 698, 697, 696, 692, 691, 690, 687, - - 686, 685, 683, 682, 681, 680, 679, 678, 677, 676, - 674, 673, 672, 670, 668, 666, 663, 662, 661, 660, - 659, 658, 657, 655, 653, 652, 651, 649, 647, 645, - 644, 643, 641, 640, 638, 636, 635, 634, 633, 632, - 631, 630, 627, 626, 625, 624, 623, 622, 621, 619, - 617, 616, 615, 614, 612, 609, 607, 604, 602, 601, - 600, 599, 598, 597, 596, 595, 594, 593, 591, 590, - 589, 588, 587, 585, 584, 581, 579, 578, 576, 574, - 572, 571, 569, 567, 566, 565, 564, 563, 562, 561, - 560, 558, 557, 556, 555, 554, 553, 552, 550, 549, - - 548, 546, 545, 544, 543, 542, 541, 538, 537, 536, - 535, 534, 533, 532, 531, 530, 529, 527, 525, 524, - 523, 521, 519, 518, 517, 516, 515, 513, 512, 511, - 510, 508, 507, 506, 505, 504, 502, 501, 499, 498, - 497, 496, 495, 494, 492, 490, 489, 487, 486, 485, - 482, 481, 479, 478, 477, 476, 475, 474, 473, 472, - 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, - 461, 460, 459, 458, 456, 454, 453, 452, 451, 450, - 449, 448, 443, 442, 440, 437, 436, 435, 434, 433, - 432, 431, 430, 429, 428, 425, 424, 423, 422, 421, - - 420, 419, 418, 417, 414, 412, 411, 410, 407, 406, - 405, 404, 403, 402, 401, 400, 399, 398, 397, 396, - 395, 394, 393, 390, 389, 388, 387, 386, 385, 384, - 383, 382, 381, 380, 379, 378, 377, 376, 375, 374, - 372, 371, 370, 369, 367, 366, 365, 364, 363, 362, - 361, 360, 359, 356, 355, 354, 353, 352, 351, 350, - 348, 347, 345, 344, 342, 340, 339, 338, 337, 336, - 335, 334, 332, 331, 330, 329, 328, 327, 326, 324, - 323, 321, 320, 319, 318, 317, 316, 314, 313, 311, - 310, 309, 308, 307, 306, 304, 303, 302, 301, 300, - - 299, 297, 296, 289, 288, 287, 286, 285, 284, 283, - 282, 281, 280, 279, 278, 277, 276, 275, 273, 272, - 271, 270, 269, 268, 267, 266, 264, 262, 261, 260, - 259, 258, 257, 256, 254, 253, 252, 251, 250, 249, - 248, 247, 246, 245, 244, 243, 242, 241, 240, 238, - 237, 236, 235, 234, 233, 231, 229, 228, 227, 226, - 225, 224, 223, 222, 221, 220, 219, 217, 216, 214, - 213, 212, 211, 210, 209, 208, 207, 204, 203, 201, - 200, 199, 198, 197, 196, 195, 194, 193, 192, 190, - 189, 188, 186, 184, 183, 182, 180, 179, 178, 177, - - 176, 175, 174, 173, 171, 170, 169, 168, 167, 166, - 158, 157, 156, 155, 154, 153, 151, 149, 148, 144, - 143, 142, 140, 139, 138, 137, 136, 135, 134, 133, - 130, 129, 128, 124, 123, 122, 121, 120, 119, 118, - 117, 116, 115, 113, 112, 108, 107, 106, 104, 103, - 101, 100, 99, 98, 97, 96, 95, 94, 92, 90, - 89, 88, 86, 83, 82, 81, 79, 78, 77, 73, - 72, 71, 70, 69, 68, 67, 66, 53, 45, 44, - 43, 38, 32, 21, 20, 19, 11, 9, 7, 3, - 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, - - 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, - 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, - 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, - 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, - 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, - 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, - 1157, 1157, 1157, 1157 + 14, 104, 104, 15, 698, 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, + 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, + 111, 35, 33, 37, 34, 89, 37, 37, 111, 37, + 39, 42, 37, 42, 39, 37, 42, 41, 41, 207, + 60, 60, 207, 39, 60, 60, 60, 60, 60, 39, + + 40, 112, 129, 41, 129, 184, 112, 54, 54, 54, + 54, 54, 184, 93, 58, 58, 58, 58, 58, 93, + 41, 54, 700, 93, 41, 116, 128, 41, 58, 134, + 134, 116, 703, 41, 630, 40, 41, 40, 147, 147, + 40, 40, 630, 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, 704, 133, 188, 95, 133, 95, 154, + 143, 260, 133, 143, 188, 210, 210, 260, 95, 143, + 133, 570, 133, 163, 163, 570, 59, 163, 163, 163, + + 163, 163, 164, 164, 164, 164, 164, 165, 165, 237, + 705, 165, 165, 165, 165, 165, 164, 166, 166, 166, + 166, 166, 167, 167, 167, 167, 167, 174, 223, 235, + 296, 296, 296, 296, 296, 270, 237, 223, 270, 709, + 235, 164, 223, 174, 174, 223, 270, 279, 270, 328, + 279, 270, 328, 381, 381, 710, 279, 424, 295, 421, + 279, 295, 279, 279, 424, 421, 295, 711, 424, 712, + 295, 713, 295, 295, 490, 490, 295, 714, 279, 297, + 297, 297, 297, 297, 298, 298, 399, 715, 298, 298, + 298, 298, 298, 299, 299, 299, 299, 299, 300, 300, + + 300, 300, 300, 453, 453, 453, 453, 453, 399, 615, + 399, 454, 454, 454, 454, 454, 503, 581, 654, 503, + 615, 663, 581, 620, 697, 615, 708, 620, 718, 719, + 720, 721, 620, 722, 723, 654, 708, 724, 708, 725, + 726, 697, 727, 663, 730, 663, 731, 732, 697, 733, + 735, 736, 737, 738, 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, + 766, 767, 764, 768, 769, 770, 772, 773, 774, 775, + 776, 777, 764, 778, 780, 782, 783, 764, 784, 785, + + 787, 788, 789, 790, 764, 791, 792, 764, 793, 794, + 795, 796, 797, 798, 799, 800, 764, 801, 802, 803, + 804, 764, 806, 807, 808, 809, 810, 812, 813, 814, + 815, 817, 818, 819, 820, 822, 824, 825, 826, 828, + 829, 830, 831, 832, 834, 836, 837, 840, 842, 845, + 846, 848, 849, 850, 853, 854, 855, 856, 857, 858, + 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, + 870, 871, 872, 873, 874, 876, 877, 878, 879, 880, + 881, 882, 883, 884, 885, 886, 888, 889, 890, 891, + 892, 893, 894, 896, 897, 898, 899, 900, 901, 902, + + 903, 904, 905, 908, 909, 910, 911, 912, 914, 915, + 916, 918, 919, 920, 921, 922, 924, 925, 926, 927, + 928, 929, 930, 933, 934, 935, 936, 937, 939, 943, + 944, 945, 948, 949, 950, 951, 952, 954, 956, 957, + 958, 959, 960, 961, 928, 963, 966, 967, 968, 969, + 970, 971, 972, 973, 975, 976, 977, 978, 979, 980, + 981, 982, 983, 984, 985, 986, 988, 989, 991, 992, + 993, 995, 996, 999, 1000, 1002, 1003, 1004, 1005, 1006, + 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1015, 1018, 1019, + 1020, 989, 1021, 1022, 1024, 1025, 1026, 1027, 1028, 1029, + + 1030, 1031, 1033, 1006, 1034, 1035, 1037, 1038, 1040, 1041, + 1042, 1043, 1045, 1046, 1047, 1049, 1051, 1053, 1054, 1055, + 1057, 1058, 1059, 1060, 1063, 1064, 1065, 1066, 1067, 1068, + 1069, 1071, 1074, 1075, 1076, 1078, 1081, 1083, 1084, 1085, + 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, + 1096, 1097, 1098, 1100, 1101, 1102, 1103, 1075, 1104, 1106, + 1107, 1108, 1109, 1111, 1112, 1114, 1115, 1116, 1117, 1119, + 1120, 1121, 1122, 1126, 1127, 1128, 1129, 1130, 1131, 1133, + 1134, 1135, 1136, 1137, 1139, 1140, 1142, 1143, 1144, 1146, + 1147, 1148, 1149, 1150, 1151, 1153, 1154, 1155, 1156, 1157, + + 1158, 1159, 1160, 1162, 1164, 1169, 1171, 1172, 1173, 1177, + 696, 695, 694, 693, 692, 691, 690, 689, 687, 686, + 685, 683, 681, 679, 676, 675, 674, 673, 672, 671, + 670, 668, 666, 665, 664, 662, 661, 659, 657, 656, + 655, 653, 652, 650, 648, 647, 646, 645, 644, 643, + 642, 639, 638, 637, 636, 635, 634, 633, 631, 629, + 628, 627, 626, 624, 621, 619, 616, 614, 613, 612, + 611, 610, 609, 608, 607, 606, 605, 604, 602, 601, + 600, 599, 598, 596, 595, 592, 590, 589, 587, 585, + 583, 582, 580, 578, 577, 576, 575, 574, 573, 572, + + 571, 569, 568, 567, 566, 565, 564, 563, 561, 560, + 559, 557, 556, 555, 554, 553, 552, 549, 548, 547, + 546, 545, 544, 543, 542, 541, 540, 539, 537, 535, + 534, 533, 531, 529, 528, 527, 526, 525, 523, 522, + 521, 520, 518, 517, 516, 515, 514, 512, 511, 509, + 508, 507, 506, 505, 504, 502, 500, 499, 497, 496, + 495, 492, 491, 489, 488, 487, 486, 485, 484, 483, + 482, 481, 480, 479, 478, 477, 476, 475, 474, 473, + 472, 471, 470, 469, 468, 466, 464, 462, 461, 460, + 459, 458, 457, 456, 451, 450, 448, 445, 444, 443, + + 442, 441, 440, 439, 438, 437, 436, 433, 432, 431, + 430, 429, 428, 427, 426, 425, 422, 420, 419, 418, + 415, 414, 413, 412, 411, 410, 409, 408, 407, 406, + 405, 404, 403, 402, 401, 398, 397, 396, 395, 394, + 393, 392, 391, 390, 389, 388, 387, 386, 385, 384, + 383, 382, 380, 379, 378, 377, 375, 374, 373, 372, + 371, 370, 369, 368, 367, 364, 363, 362, 361, 360, + 359, 358, 356, 355, 353, 352, 350, 348, 347, 346, + 345, 344, 343, 342, 340, 339, 338, 337, 336, 335, + 334, 333, 331, 330, 327, 326, 325, 324, 323, 322, + + 320, 319, 317, 316, 315, 314, 313, 312, 311, 309, + 308, 307, 306, 305, 304, 302, 301, 294, 293, 292, + 291, 290, 289, 288, 287, 286, 285, 284, 283, 282, + 281, 280, 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, 139, 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, 1176, + 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, + 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, + 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, + 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, + 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, + 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, + 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, + 1176, 1176, 1176 } ; static yy_state_type yy_last_accepting_state; @@ -1211,7 +1221,7 @@ void skipline(void); #define YY_NO_UNISTD_H #endif -#line 1215 "Gmsh.yy.cpp" +#line 1225 "Gmsh.yy.cpp" #define INITIAL 0 @@ -1396,7 +1406,7 @@ YY_DECL #line 72 "Gmsh.l" -#line 1400 "Gmsh.yy.cpp" +#line 1410 "Gmsh.yy.cpp" if ( !(yy_init) ) { @@ -1449,13 +1459,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 >= 1158 ) + if ( yy_current_state >= 1177 ) 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] != 1291 ); + while ( yy_base[yy_current_state] != 1310 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1713,890 +1723,915 @@ return tBezier; case 47: YY_RULE_SETUP #line 122 "Gmsh.l" -return tBSpline; +return tBlock; YY_BREAK case 48: YY_RULE_SETUP #line 123 "Gmsh.l" -return tBooleanUnion; +return tBSpline; YY_BREAK case 49: YY_RULE_SETUP #line 124 "Gmsh.l" -return tBooleanIntersection; +return tBooleanUnion; YY_BREAK case 50: YY_RULE_SETUP #line 125 "Gmsh.l" -return tBooleanSubtraction; +return tBooleanIntersection; YY_BREAK case 51: YY_RULE_SETUP #line 126 "Gmsh.l" -return tBoundingBox; +return tBooleanSubtraction; YY_BREAK case 52: YY_RULE_SETUP -#line 128 "Gmsh.l" -return tCatenary; +#line 127 "Gmsh.l" +return tBoundingBox; YY_BREAK case 53: YY_RULE_SETUP #line 129 "Gmsh.l" -return tCeil; +return tCatenary; YY_BREAK case 54: YY_RULE_SETUP #line 130 "Gmsh.l" -return tCircle; +return tCeil; YY_BREAK case 55: YY_RULE_SETUP #line 131 "Gmsh.l" -return tCopyOptions; +return tCircle; YY_BREAK case 56: YY_RULE_SETUP #line 132 "Gmsh.l" -return tCoherence; +return tCopyOptions; YY_BREAK case 57: YY_RULE_SETUP #line 133 "Gmsh.l" -return tCohomology; +return tCoherence; YY_BREAK case 58: YY_RULE_SETUP #line 134 "Gmsh.l" -return tCombine; +return tCohomology; YY_BREAK case 59: YY_RULE_SETUP #line 135 "Gmsh.l" -return tCosh; +return tCombine; YY_BREAK case 60: YY_RULE_SETUP #line 136 "Gmsh.l" -return tCos; +return tCone; YY_BREAK case 61: YY_RULE_SETUP #line 137 "Gmsh.l" -return tCharacteristic; +return tCosh; YY_BREAK case 62: YY_RULE_SETUP #line 138 "Gmsh.l" -return tComplex; +return tCos; YY_BREAK case 63: YY_RULE_SETUP #line 139 "Gmsh.l" -return tColor; +return tCharacteristic; YY_BREAK case 64: YY_RULE_SETUP #line 140 "Gmsh.l" -return tColorTable; +return tComplex; YY_BREAK case 65: YY_RULE_SETUP #line 141 "Gmsh.l" -return tCompound; +return tColor; YY_BREAK case 66: YY_RULE_SETUP #line 142 "Gmsh.l" -return tCoordinates; +return tColorTable; YY_BREAK case 67: YY_RULE_SETUP #line 143 "Gmsh.l" -return tSpline; +return tCompound; YY_BREAK case 68: YY_RULE_SETUP #line 144 "Gmsh.l" -return tCall; +return tCoordinates; YY_BREAK case 69: YY_RULE_SETUP #line 145 "Gmsh.l" -return tCreateTopology; +return tSpline; YY_BREAK case 70: YY_RULE_SETUP #line 146 "Gmsh.l" -return tCreateTopologyNoHoles; +return tCall; YY_BREAK case 71: YY_RULE_SETUP #line 147 "Gmsh.l" -return tCpu; +return tCreateTopology; YY_BREAK case 72: YY_RULE_SETUP #line 148 "Gmsh.l" -return tCurrentDirectory; +return tCreateTopologyNoHoles; YY_BREAK case 73: YY_RULE_SETUP #line 149 "Gmsh.l" -return tCurrentDirectory; +return tCpu; YY_BREAK case 74: YY_RULE_SETUP -#line 151 "Gmsh.l" -return tDefineConstant; +#line 150 "Gmsh.l" +return tCurrentDirectory; YY_BREAK case 75: YY_RULE_SETUP -#line 152 "Gmsh.l" -return tDefineNumber; +#line 151 "Gmsh.l" +return tCurrentDirectory; YY_BREAK case 76: YY_RULE_SETUP -#line 153 "Gmsh.l" -return tDefineString; +#line 152 "Gmsh.l" +return tCylinder; YY_BREAK case 77: YY_RULE_SETUP #line 154 "Gmsh.l" -return tDelete; +return tDefineConstant; YY_BREAK case 78: YY_RULE_SETUP #line 155 "Gmsh.l" -return tDegenerated; +return tDefineNumber; YY_BREAK case 79: YY_RULE_SETUP #line 156 "Gmsh.l" -return tDilate; +return tDefineString; YY_BREAK case 80: YY_RULE_SETUP #line 157 "Gmsh.l" -return tDirName; +return tDelete; YY_BREAK case 81: YY_RULE_SETUP #line 158 "Gmsh.l" -return tDraw; +return tDegenerated; YY_BREAK case 82: YY_RULE_SETUP #line 159 "Gmsh.l" -return tSetChanged; +return tDilate; YY_BREAK case 83: YY_RULE_SETUP -#line 161 "Gmsh.l" -return tExp; +#line 160 "Gmsh.l" +return tDirName; YY_BREAK case 84: YY_RULE_SETUP -#line 162 "Gmsh.l" -return tEllipse; +#line 161 "Gmsh.l" +return tDraw; YY_BREAK case 85: YY_RULE_SETUP -#line 163 "Gmsh.l" -return tEllipse; +#line 162 "Gmsh.l" +return tSetChanged; YY_BREAK case 86: YY_RULE_SETUP #line 164 "Gmsh.l" -return tElse; +return tExp; YY_BREAK case 87: YY_RULE_SETUP #line 165 "Gmsh.l" -return tElseIf; +return tEllipse; YY_BREAK case 88: YY_RULE_SETUP #line 166 "Gmsh.l" -return tExtrude; +return tEllipse; YY_BREAK case 89: YY_RULE_SETUP #line 167 "Gmsh.l" -return tElliptic; +return tEllipsoid; YY_BREAK case 90: YY_RULE_SETUP #line 168 "Gmsh.l" -return tEndFor; +return tElse; YY_BREAK case 91: YY_RULE_SETUP #line 169 "Gmsh.l" -return tEndIf; +return tElseIf; YY_BREAK case 92: YY_RULE_SETUP #line 170 "Gmsh.l" -return tEuclidian; +return tExtrude; YY_BREAK case 93: YY_RULE_SETUP #line 171 "Gmsh.l" -return tError; +return tElliptic; YY_BREAK case 94: YY_RULE_SETUP #line 172 "Gmsh.l" -return tExit; +return tEndFor; YY_BREAK case 95: YY_RULE_SETUP #line 173 "Gmsh.l" -return tExists; +return tEndIf; YY_BREAK case 96: YY_RULE_SETUP -#line 175 "Gmsh.l" -return tFabs; +#line 174 "Gmsh.l" +return tEuclidian; YY_BREAK case 97: YY_RULE_SETUP -#line 176 "Gmsh.l" -return tField; +#line 175 "Gmsh.l" +return tError; YY_BREAK case 98: YY_RULE_SETUP -#line 177 "Gmsh.l" -return tFind; +#line 176 "Gmsh.l" +return tExit; YY_BREAK case 99: YY_RULE_SETUP -#line 178 "Gmsh.l" -return tFileExists; +#line 177 "Gmsh.l" +return tExists; YY_BREAK case 100: YY_RULE_SETUP #line 179 "Gmsh.l" -return tFixRelativePath; +return tFabs; YY_BREAK case 101: YY_RULE_SETUP #line 180 "Gmsh.l" -return tFloor; +return tField; YY_BREAK case 102: YY_RULE_SETUP #line 181 "Gmsh.l" -return tFmod; +return tFind; YY_BREAK case 103: YY_RULE_SETUP #line 182 "Gmsh.l" -return tFor; +return tFileExists; YY_BREAK case 104: YY_RULE_SETUP #line 183 "Gmsh.l" -return tMacro; +return tFixRelativePath; YY_BREAK case 105: YY_RULE_SETUP -#line 185 "Gmsh.l" -return tGetEnv; +#line 184 "Gmsh.l" +return tFloor; YY_BREAK case 106: YY_RULE_SETUP -#line 186 "Gmsh.l" -return tGetString; +#line 185 "Gmsh.l" +return tFmod; YY_BREAK case 107: YY_RULE_SETUP -#line 187 "Gmsh.l" -return tGetNumber; +#line 186 "Gmsh.l" +return tFor; YY_BREAK case 108: YY_RULE_SETUP -#line 188 "Gmsh.l" -return tGetValue; +#line 187 "Gmsh.l" +return tMacro; YY_BREAK case 109: YY_RULE_SETUP #line 189 "Gmsh.l" -return tGetStringValue; +return tGetEnv; YY_BREAK case 110: YY_RULE_SETUP #line 190 "Gmsh.l" -return tGMSH_MAJOR_VERSION; +return tGetString; YY_BREAK case 111: YY_RULE_SETUP #line 191 "Gmsh.l" -return tGMSH_MINOR_VERSION; +return tGetNumber; YY_BREAK case 112: YY_RULE_SETUP #line 192 "Gmsh.l" -return tGMSH_PATCH_VERSION; +return tGetValue; YY_BREAK case 113: YY_RULE_SETUP #line 193 "Gmsh.l" -return tGmshExecutableName; +return tGetStringValue; YY_BREAK case 114: YY_RULE_SETUP -#line 195 "Gmsh.l" -return tHide; +#line 194 "Gmsh.l" +return tGMSH_MAJOR_VERSION; YY_BREAK case 115: YY_RULE_SETUP -#line 196 "Gmsh.l" -return tHole; +#line 195 "Gmsh.l" +return tGMSH_MINOR_VERSION; YY_BREAK case 116: YY_RULE_SETUP -#line 197 "Gmsh.l" -return tHomology; +#line 196 "Gmsh.l" +return tGMSH_PATCH_VERSION; YY_BREAK case 117: YY_RULE_SETUP -#line 198 "Gmsh.l" -return tHypot; +#line 197 "Gmsh.l" +return tGmshExecutableName; YY_BREAK case 118: YY_RULE_SETUP -#line 200 "Gmsh.l" -return tIn; +#line 199 "Gmsh.l" +return tHide; YY_BREAK case 119: YY_RULE_SETUP -#line 201 "Gmsh.l" -return tIf; +#line 200 "Gmsh.l" +return tHole; YY_BREAK case 120: YY_RULE_SETUP -#line 202 "Gmsh.l" -return tIntersect; +#line 201 "Gmsh.l" +return tHomology; YY_BREAK case 121: YY_RULE_SETUP -#line 203 "Gmsh.l" -return tInterpolationScheme; +#line 202 "Gmsh.l" +return tHypot; YY_BREAK case 122: YY_RULE_SETUP -#line 205 "Gmsh.l" -return tNurbsKnots; +#line 204 "Gmsh.l" +return tIn; YY_BREAK case 123: YY_RULE_SETUP -#line 207 "Gmsh.l" -return tLength; +#line 205 "Gmsh.l" +return tIf; YY_BREAK case 124: YY_RULE_SETUP -#line 208 "Gmsh.l" -return tLine; +#line 206 "Gmsh.l" +return tIntersect; YY_BREAK case 125: YY_RULE_SETUP -#line 209 "Gmsh.l" -return tList; +#line 207 "Gmsh.l" +return tInterpolationScheme; YY_BREAK case 126: YY_RULE_SETUP -#line 210 "Gmsh.l" -return tListFromFile; +#line 209 "Gmsh.l" +return tNurbsKnots; YY_BREAK case 127: YY_RULE_SETUP #line 211 "Gmsh.l" -return tLinSpace; +return tLength; YY_BREAK case 128: YY_RULE_SETUP #line 212 "Gmsh.l" -return tLogSpace; +return tLine; YY_BREAK case 129: YY_RULE_SETUP #line 213 "Gmsh.l" -return tLog; +return tList; YY_BREAK case 130: YY_RULE_SETUP #line 214 "Gmsh.l" -return tLog10; +return tListFromFile; YY_BREAK case 131: YY_RULE_SETUP #line 215 "Gmsh.l" -return tLayers; +return tLinSpace; YY_BREAK case 132: YY_RULE_SETUP #line 216 "Gmsh.l" -return tLevelset; +return tLogSpace; YY_BREAK case 133: YY_RULE_SETUP -#line 218 "Gmsh.l" -return tMacro; +#line 217 "Gmsh.l" +return tLog; YY_BREAK case 134: YY_RULE_SETUP -#line 219 "Gmsh.l" -return tMeshAlgorithm; +#line 218 "Gmsh.l" +return tLog10; YY_BREAK case 135: YY_RULE_SETUP -#line 220 "Gmsh.l" -return tModulo; +#line 219 "Gmsh.l" +return tLayers; YY_BREAK case 136: YY_RULE_SETUP -#line 221 "Gmsh.l" -return tMPI_Rank; +#line 220 "Gmsh.l" +return tLevelset; YY_BREAK case 137: YY_RULE_SETUP #line 222 "Gmsh.l" -return tMPI_Size; +return tMacro; YY_BREAK case 138: YY_RULE_SETUP #line 223 "Gmsh.l" -return tMemory; +return tMeshAlgorithm; YY_BREAK case 139: YY_RULE_SETUP -#line 225 "Gmsh.l" -return tNameToString; +#line 224 "Gmsh.l" +return tModulo; YY_BREAK case 140: YY_RULE_SETUP -#line 226 "Gmsh.l" -return tNameToString; +#line 225 "Gmsh.l" +return tMPI_Rank; YY_BREAK case 141: YY_RULE_SETUP -#line 227 "Gmsh.l" -return tNewModel; +#line 226 "Gmsh.l" +return tMPI_Size; YY_BREAK case 142: YY_RULE_SETUP -#line 228 "Gmsh.l" -return tNurbs; +#line 227 "Gmsh.l" +return tMemory; YY_BREAK case 143: YY_RULE_SETUP -#line 230 "Gmsh.l" -return tOnelabAction; +#line 229 "Gmsh.l" +return tNameToString; YY_BREAK case 144: YY_RULE_SETUP -#line 231 "Gmsh.l" -return tOnelabRun; +#line 230 "Gmsh.l" +return tNameToString; YY_BREAK case 145: YY_RULE_SETUP -#line 232 "Gmsh.l" -return tNurbsOrder; +#line 231 "Gmsh.l" +return tNewModel; YY_BREAK case 146: YY_RULE_SETUP -#line 234 "Gmsh.l" -return tPeriodic; +#line 232 "Gmsh.l" +return tNurbs; YY_BREAK case 147: YY_RULE_SETUP -#line 235 "Gmsh.l" -return tPhysical; +#line 234 "Gmsh.l" +return tOnelabAction; YY_BREAK case 148: YY_RULE_SETUP -#line 236 "Gmsh.l" -return tPi; +#line 235 "Gmsh.l" +return tOnelabRun; YY_BREAK case 149: YY_RULE_SETUP -#line 237 "Gmsh.l" -return tPlane; +#line 236 "Gmsh.l" +return tNurbsOrder; YY_BREAK case 150: YY_RULE_SETUP #line 238 "Gmsh.l" -return tPoint; +return tPeriodic; YY_BREAK case 151: YY_RULE_SETUP #line 239 "Gmsh.l" -return tParametric; +return tPhysical; YY_BREAK case 152: YY_RULE_SETUP #line 240 "Gmsh.l" -return tPolarSphere; +return tPi; YY_BREAK case 153: YY_RULE_SETUP #line 241 "Gmsh.l" -return tPrintf; +return tPlane; YY_BREAK case 154: YY_RULE_SETUP #line 242 "Gmsh.l" -return tPlugin; +return tPoint; YY_BREAK case 155: YY_RULE_SETUP -#line 244 "Gmsh.l" -return tQuadTriAddVerts; +#line 243 "Gmsh.l" +return tParametric; YY_BREAK case 156: YY_RULE_SETUP +#line 244 "Gmsh.l" +return tPolarSphere; + YY_BREAK +case 157: +YY_RULE_SETUP #line 245 "Gmsh.l" +return tPrintf; + YY_BREAK +case 158: +YY_RULE_SETUP +#line 246 "Gmsh.l" +return tPlugin; + YY_BREAK +case 159: +YY_RULE_SETUP +#line 248 "Gmsh.l" +return tQuadric; + YY_BREAK +case 160: +YY_RULE_SETUP +#line 249 "Gmsh.l" +return tQuadTriAddVerts; + YY_BREAK +case 161: +YY_RULE_SETUP +#line 250 "Gmsh.l" return tQuadTriNoNewVerts; YY_BREAK -case 157: +case 162: YY_RULE_SETUP -#line 247 "Gmsh.l" +#line 251 "Gmsh.l" return tQuadTriDbl; YY_BREAK -case 158: +case 163: YY_RULE_SETUP -#line 248 "Gmsh.l" +#line 252 "Gmsh.l" return tQuadTriSngl; YY_BREAK -case 159: +case 164: YY_RULE_SETUP -#line 250 "Gmsh.l" +#line 254 "Gmsh.l" return tRecombine; YY_BREAK -case 160: +case 165: YY_RULE_SETUP -#line 251 "Gmsh.l" +#line 255 "Gmsh.l" return tRecombLaterals; YY_BREAK -case 161: +case 166: YY_RULE_SETUP -#line 252 "Gmsh.l" +#line 256 "Gmsh.l" return tRecursive; YY_BREAK -case 162: +case 167: YY_RULE_SETUP -#line 253 "Gmsh.l" +#line 257 "Gmsh.l" return tRotate; YY_BREAK -case 163: +case 168: YY_RULE_SETUP -#line 254 "Gmsh.l" +#line 258 "Gmsh.l" return tRound; YY_BREAK -case 164: +case 169: YY_RULE_SETUP -#line 255 "Gmsh.l" +#line 259 "Gmsh.l" return tRuled; YY_BREAK -case 165: +case 170: YY_RULE_SETUP -#line 256 "Gmsh.l" +#line 260 "Gmsh.l" return tRand; YY_BREAK -case 166: +case 171: YY_RULE_SETUP -#line 257 "Gmsh.l" +#line 261 "Gmsh.l" return tRefineMesh; YY_BREAK -case 167: +case 172: YY_RULE_SETUP -#line 258 "Gmsh.l" +#line 262 "Gmsh.l" return tRelocateMesh; YY_BREAK -case 168: +case 173: YY_RULE_SETUP -#line 259 "Gmsh.l" +#line 263 "Gmsh.l" return tReturn; YY_BREAK -case 169: +case 174: YY_RULE_SETUP -#line 260 "Gmsh.l" +#line 264 "Gmsh.l" return tReverse; YY_BREAK -case 170: +case 175: YY_RULE_SETUP -#line 262 "Gmsh.l" +#line 266 "Gmsh.l" return tScaleLast; YY_BREAK -case 171: +case 176: YY_RULE_SETUP -#line 263 "Gmsh.l" +#line 267 "Gmsh.l" return tSmoother; YY_BREAK -case 172: +case 177: YY_RULE_SETUP -#line 264 "Gmsh.l" +#line 268 "Gmsh.l" return tSetFactory; YY_BREAK -case 173: +case 178: YY_RULE_SETUP -#line 265 "Gmsh.l" +#line 269 "Gmsh.l" return tSetNumber; YY_BREAK -case 174: +case 179: YY_RULE_SETUP -#line 266 "Gmsh.l" +#line 270 "Gmsh.l" return tSetString; YY_BREAK -case 175: +case 180: YY_RULE_SETUP -#line 267 "Gmsh.l" +#line 271 "Gmsh.l" return tSetPartition; YY_BREAK -case 176: +case 181: YY_RULE_SETUP -#line 268 "Gmsh.l" +#line 272 "Gmsh.l" return tSqrt; YY_BREAK -case 177: +case 182: YY_RULE_SETUP -#line 269 "Gmsh.l" +#line 273 "Gmsh.l" return tSin; YY_BREAK -case 178: +case 183: YY_RULE_SETUP -#line 270 "Gmsh.l" +#line 274 "Gmsh.l" return tSinh; YY_BREAK -case 179: +case 184: YY_RULE_SETUP -#line 271 "Gmsh.l" +#line 275 "Gmsh.l" return tSphere; YY_BREAK -case 180: +case 185: YY_RULE_SETUP -#line 272 "Gmsh.l" +#line 276 "Gmsh.l" return tSpline; YY_BREAK -case 181: +case 186: YY_RULE_SETUP -#line 273 "Gmsh.l" +#line 277 "Gmsh.l" return tSplit; YY_BREAK -case 182: +case 187: YY_RULE_SETUP -#line 274 "Gmsh.l" +#line 278 "Gmsh.l" return tSurface; YY_BREAK -case 183: +case 188: YY_RULE_SETUP -#line 275 "Gmsh.l" +#line 279 "Gmsh.l" return tStr; YY_BREAK -case 184: +case 189: YY_RULE_SETUP -#line 276 "Gmsh.l" +#line 280 "Gmsh.l" return tStringToName; YY_BREAK -case 185: +case 190: YY_RULE_SETUP -#line 277 "Gmsh.l" +#line 281 "Gmsh.l" return tStringToName; YY_BREAK -case 186: +case 191: YY_RULE_SETUP -#line 278 "Gmsh.l" +#line 282 "Gmsh.l" return tSprintf; YY_BREAK -case 187: +case 192: YY_RULE_SETUP -#line 279 "Gmsh.l" +#line 283 "Gmsh.l" return tStrCat; YY_BREAK -case 188: +case 193: YY_RULE_SETUP -#line 280 "Gmsh.l" +#line 284 "Gmsh.l" return tStrReplace; YY_BREAK -case 189: +case 194: YY_RULE_SETUP -#line 281 "Gmsh.l" +#line 285 "Gmsh.l" return tStrPrefix; YY_BREAK -case 190: +case 195: YY_RULE_SETUP -#line 282 "Gmsh.l" +#line 286 "Gmsh.l" return tStrRelative; YY_BREAK -case 191: +case 196: YY_RULE_SETUP -#line 283 "Gmsh.l" +#line 287 "Gmsh.l" return tStrFind; YY_BREAK -case 192: +case 197: YY_RULE_SETUP -#line 284 "Gmsh.l" +#line 288 "Gmsh.l" return tStrCmp; YY_BREAK -case 193: +case 198: YY_RULE_SETUP -#line 285 "Gmsh.l" +#line 289 "Gmsh.l" return tStrChoice; YY_BREAK -case 194: +case 199: YY_RULE_SETUP -#line 286 "Gmsh.l" +#line 290 "Gmsh.l" return tStrLen; YY_BREAK -case 195: +case 200: YY_RULE_SETUP -#line 287 "Gmsh.l" +#line 291 "Gmsh.l" return tStrSub; YY_BREAK -case 196: +case 201: YY_RULE_SETUP -#line 288 "Gmsh.l" +#line 292 "Gmsh.l" return tShow; YY_BREAK -case 197: +case 202: YY_RULE_SETUP -#line 289 "Gmsh.l" +#line 293 "Gmsh.l" return tSymmetry; YY_BREAK -case 198: +case 203: YY_RULE_SETUP -#line 290 "Gmsh.l" +#line 294 "Gmsh.l" return tSlide; YY_BREAK -case 199: +case 204: YY_RULE_SETUP -#line 291 "Gmsh.l" +#line 295 "Gmsh.l" return tSyncModel; YY_BREAK -case 200: +case 205: YY_RULE_SETUP -#line 293 "Gmsh.l" +#line 297 "Gmsh.l" return tText2D; YY_BREAK -case 201: +case 206: YY_RULE_SETUP -#line 294 "Gmsh.l" +#line 298 "Gmsh.l" return tText3D; YY_BREAK -case 202: +case 207: YY_RULE_SETUP -#line 295 "Gmsh.l" +#line 299 "Gmsh.l" return tTestLevel; YY_BREAK -case 203: +case 208: YY_RULE_SETUP -#line 296 "Gmsh.l" +#line 300 "Gmsh.l" return tTextAttributes; YY_BREAK -case 204: +case 209: YY_RULE_SETUP -#line 297 "Gmsh.l" +#line 301 "Gmsh.l" return tThruSections; YY_BREAK -case 205: +case 210: YY_RULE_SETUP -#line 298 "Gmsh.l" +#line 302 "Gmsh.l" return tTime; YY_BREAK -case 206: +case 211: YY_RULE_SETUP -#line 299 "Gmsh.l" +#line 303 "Gmsh.l" return tTransfinite; YY_BREAK -case 207: +case 212: YY_RULE_SETUP -#line 300 "Gmsh.l" +#line 304 "Gmsh.l" return tTransfQuadTri; YY_BREAK -case 208: +case 213: YY_RULE_SETUP -#line 301 "Gmsh.l" +#line 305 "Gmsh.l" return tTranslate; YY_BREAK -case 209: +case 214: YY_RULE_SETUP -#line 302 "Gmsh.l" +#line 306 "Gmsh.l" return tTanh; YY_BREAK -case 210: +case 215: YY_RULE_SETUP -#line 303 "Gmsh.l" +#line 307 "Gmsh.l" return tTan; YY_BREAK -case 211: +case 216: YY_RULE_SETUP -#line 304 "Gmsh.l" +#line 308 "Gmsh.l" return tToday; YY_BREAK -case 212: +case 217: YY_RULE_SETUP -#line 305 "Gmsh.l" +#line 309 "Gmsh.l" return tTotalMemory; YY_BREAK -case 213: +case 218: YY_RULE_SETUP -#line 307 "Gmsh.l" +#line 311 "Gmsh.l" return tUndefineConstant; YY_BREAK -case 214: +case 219: YY_RULE_SETUP -#line 308 "Gmsh.l" +#line 312 "Gmsh.l" return tUpperCase; YY_BREAK -case 215: +case 220: YY_RULE_SETUP -#line 309 "Gmsh.l" +#line 313 "Gmsh.l" return tLowerCase; YY_BREAK -case 216: +case 221: YY_RULE_SETUP -#line 310 "Gmsh.l" +#line 314 "Gmsh.l" return tLowerCaseIn; YY_BREAK -case 217: +case 222: YY_RULE_SETUP -#line 311 "Gmsh.l" +#line 315 "Gmsh.l" return tUsing; YY_BREAK -case 218: +case 223: YY_RULE_SETUP -#line 313 "Gmsh.l" +#line 317 "Gmsh.l" return tVolume; YY_BREAK -case 219: -#line 316 "Gmsh.l" -case 220: -#line 317 "Gmsh.l" -case 221: -#line 318 "Gmsh.l" -case 222: +case 224: +#line 320 "Gmsh.l" +case 225: +#line 321 "Gmsh.l" +case 226: +#line 322 "Gmsh.l" +case 227: YY_RULE_SETUP -#line 318 "Gmsh.l" +#line 322 "Gmsh.l" { gmsh_yylval.d = atof((char *)gmsh_yytext); return tDOUBLE; } YY_BREAK -case 223: +case 228: YY_RULE_SETUP -#line 320 "Gmsh.l" +#line 324 "Gmsh.l" { gmsh_yylval.c = strsave((char*)gmsh_yytext); return tSTRING; } YY_BREAK -case 224: +case 229: YY_RULE_SETUP -#line 322 "Gmsh.l" +#line 326 "Gmsh.l" return gmsh_yytext[0]; YY_BREAK -case 225: +case 230: YY_RULE_SETUP -#line 324 "Gmsh.l" +#line 328 "Gmsh.l" ECHO; YY_BREAK -#line 2600 "Gmsh.yy.cpp" +#line 2635 "Gmsh.yy.cpp" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2888,7 +2923,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 >= 1158 ) + if ( yy_current_state >= 1177 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2916,11 +2951,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 >= 1158 ) + if ( yy_current_state >= 1177 ) 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 == 1157); + yy_is_jam = (yy_current_state == 1176); return yy_is_jam ? 0 : yy_current_state; } @@ -3593,7 +3628,7 @@ void gmsh_yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 324 "Gmsh.l" +#line 328 "Gmsh.l" diff --git a/benchmarks/boolean/neuron.geo b/benchmarks/boolean/neuron.geo index 010f57e74b64194ca2d142b217d2cf4ffcf4ddeb..986489ed7aab22e6286e07cc84f87a090f24cf03 100644 --- a/benchmarks/boolean/neuron.geo +++ b/benchmarks/boolean/neuron.geo @@ -27,7 +27,6 @@ Macro dendrite Return Sphere(1) = {0, 0, 0, 8}; -Sphere(2) = {0, 0, 32, 8}; reg() = {}; nump = 0; numc = 0; numr = 2; @@ -35,7 +34,25 @@ For x In{-4:4:4} Call dendrite; EndFor -BooleanUnion{ Volume{1}; Delete; }{ Volume{reg(0)}; Delete; } -BooleanUnion{ Volume{numr+1}; Delete; }{ Volume{reg(1)}; Delete; } -BooleanUnion{ Volume{numr+1}; Delete; }{ Volume{reg(2)}; Delete; } -BooleanUnion{ Volume{3}; Delete; }{ Volume{2}; Delete; } +DefineConstant[ + op = {0, Choices{0="None", 1="Union", 2="Intersection", 3="Subtraction"}, + Name "Boolean operation" } +]; + +// boolean operations can explicitly create an entity with the form +// "op(tag)={}{};", or let Gmsh decide with the form "op{}{}". The first form +// can only be used if the result of the boolean operation is a single +// shape. Only the second form returns the list of created entities. +If(op == 1) + BooleanUnion(100) = { Volume{1}; Delete; }{ Volume{reg(0)}; Delete; }; + BooleanUnion(101) = { Volume{100}; Delete; }{ Volume{reg(1)}; Delete; }; + BooleanUnion(102) = { Volume{101}; Delete; }{ Volume{reg(2)}; Delete; }; +ElseIf(op == 2) + BooleanIntersection(100) = { Volume{1}; }{ Volume{reg(0)}; Delete; }; + BooleanIntersection(101) = { Volume{1}; }{ Volume{reg(1)}; Delete; }; + BooleanIntersection(102) = { Volume{1}; Delete; }{ Volume{reg(2)}; Delete; }; +ElseIf(op == 3) + BooleanSubtraction(100) = { Volume{1}; Delete; }{ Volume{reg(0)}; Delete; }; + BooleanSubtraction(101) = { Volume{100}; Delete; }{ Volume{reg(1)}; Delete; }; + BooleanSubtraction(102) = { Volume{101}; Delete; }{ Volume{reg(2)}; Delete; }; +EndIf diff --git a/benchmarks/boolean/wikipedia.geo b/benchmarks/boolean/wikipedia.geo new file mode 100644 index 0000000000000000000000000000000000000000..716ede956aac77d161845c4984b6f4ffa7edabcf --- /dev/null +++ b/benchmarks/boolean/wikipedia.geo @@ -0,0 +1,23 @@ +SetFactory("OpenCASCADE"); + +Mesh.Algorithm = 6; +Mesh.CharacteristicLengthMin = 0.4; +Mesh.CharacteristicLengthMax = 0.4; + +R = 1.4; +s = .7; +t = 1.25; + +Block(1) = {-R,-R,-R, R,R,R}; + +Sphere(2) = {0,0,0,R*t}; + +BooleanIntersection(3) = { Volume{1}; Delete; }{ Volume{2}; Delete; }; + +Cylinder(4) = {-2*R,0,0, 2*R,0,0, R*s}; +Cylinder(5) = {0,-2*R,0, 0,2*R,0, R*s}; +Cylinder(6) = {0,0,-2*R, 0,0,2*R, R*s}; + +BooleanUnion(7) = { Volume{4}; Delete; }{ Volume{5}; Delete; }; +BooleanUnion(8) = { Volume{6}; Delete; }{ Volume{7}; Delete; }; +BooleanSubtraction(9) = { Volume{3}; Delete; }{ Volume{8}; Delete; };