diff --git a/Geo/Geo.cpp b/Geo/Geo.cpp index b2136d6a1ce571af92172d2f51e1bb930d6a3aea..335bfb62f48b2346c0fbdcd9530db82bf917329d 100644 --- a/Geo/Geo.cpp +++ b/Geo/Geo.cpp @@ -1,4 +1,4 @@ -// $Id: Geo.cpp,v 1.71 2007-01-20 14:06:36 geuzaine Exp $ +// $Id: Geo.cpp,v 1.72 2007-01-31 12:27:18 remacle Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -148,6 +148,20 @@ Vertex *Create_Vertex(int Num, double X, double Y, double Z, double lc, pV->Num = Num; THEM->MaxPointNum = IMAX(THEM->MaxPointNum, Num); pV->u = u; + pV->geometry = 0; + return pV; +} + +Vertex *Create_Vertex(int Num, double u, double v, gmshSurface *surf, double lc) +{ + SPoint3 p = surf->point(u,v); + Vertex *pV = new Vertex(p.x(),p.y(),p.z(),lc); + pV->w = 1.0; + pV->Num = Num; + THEM->MaxPointNum = IMAX(THEM->MaxPointNum, Num); + pV->u = u; + pV->geometry = surf; + pV->pntOnGeometry = SPoint2(u,v); return pV; } @@ -585,6 +599,7 @@ Surface *Create_Surface(int Num, int Typ) pS->EmbeddedPoints = NULL; pS->EmbeddedCurves = NULL; pS->Extrude = NULL; + pS->geometry = NULL; return (pS); } @@ -2772,7 +2787,7 @@ bool ProjectPointOnCurve(Curve * c, Vertex * v, Vertex * RES, Vertex * DER) return true; } -bool ProjectPointOnSurface(Surface * s, Vertex & p) +bool ProjectPointOnSurface(Surface * s, Vertex & p, double u[2]) { double x[3] = { 0.5, 0.5, 0.5 }; Vertex vv; @@ -2794,8 +2809,8 @@ bool ProjectPointOnSurface(Surface * s, Vertex & p) p.Pos.X = vv.Pos.X; p.Pos.Y = vv.Pos.Y; p.Pos.Z = vv.Pos.Z; - p.us[0] = x[1]; - p.us[1] = x[2]; + u[0] = x[1]; + u[1] = x[2]; if(!check) { return false; } diff --git a/Geo/Geo.h b/Geo/Geo.h index b4485bf95d011aa1fac8f66d2875810c87e037c5..16a96f9ddc6a0cbbe5c00aac62c58cd8071b6ae7 100644 --- a/Geo/Geo.h +++ b/Geo/Geo.h @@ -20,10 +20,13 @@ // // Please report all bugs and problems to <gmsh@geuz.org>. +#include <map> #include <math.h> #include "GmshDefines.h" +#include "gmshSurface.h" #include "List.h" #include "Tree.h" +#include "SPoint2.h" #include "ExtrudeParams.h" #define MSH_POINT 1 @@ -62,9 +65,15 @@ struct Coord{ class Vertex { public : + // a model vertex is usually defined in the euclidian coordinates. Yet, + // it can be defined in the parametric coordinates of a surface + // this data structure stores local coodinates of the vertex in + // the gmshSurface it belongs to. + gmshSurface *geometry; + SPoint2 pntOnGeometry; int Num; char Visible; - double lc, u, us[3], w; + double lc, u, w; Coord Pos; Vertex(double X=0., double Y=0., double Z=0., double l=1., double W=1.) { @@ -84,7 +93,7 @@ class Vertex { Pos.Z /= d; } Vertex operator % (Vertex & autre) // cross product - { + { return Vertex(Pos.Y * autre.Pos.Z - Pos.Z * autre.Pos.Y, -(Pos.X * autre.Pos.Z - Pos.Z * autre.Pos.X), Pos.X * autre.Pos.Y - Pos.Y * autre.Pos.X, lc, w); @@ -150,6 +159,13 @@ typedef struct{ List_T *Contours; ExtrudeParams *Extrude; DrawingColor Color; + // A surface is defined topologically by its + // Generatrices i.e. curves that are the closure of it + // The geometry of the surface is defined hereafter. + // Note that this representation should be the only + // one in gmsh, so parameter "Type" should disappear + // from the class Surface. + gmshSurface *geometry; }Surface; typedef struct{ @@ -211,6 +227,7 @@ int compareVolume(const void *a, const void *b); int comparePhysicalGroup(const void *a, const void *b); Vertex *Create_Vertex(int Num, double X, double Y, double Z, double lc, double u); +Vertex *Create_Vertex(int Num, double u, double v, gmshSurface *s, double lc); Curve *Create_Curve(int Num, int Typ, int Order, List_T * Liste, List_T * Knots, int p1, int p2, double u1, double u2); Curve *CreateReversedCurve(Curve *c); @@ -280,7 +297,7 @@ void ProtudeXYZ(double &x, double &y, double &z, ExtrudeParams *e); void ReplaceAllDuplicates(); bool ProjectPointOnCurve(Curve *c, Vertex *v, Vertex *RES, Vertex *DER); -bool ProjectPointOnSurface(Surface *s, Vertex &p); +bool ProjectPointOnSurface(Surface *s, Vertex &p, double u[2]); int recognize_seg(int typ, List_T *liste, int *seg); int recognize_loop(List_T *liste, int *loop); diff --git a/Geo/Makefile b/Geo/Makefile index 77f82a30316472cca82e2c028b73ae4c264fa90d..8bcd8f65fab3e63c74b2dec438361acd487cd1a3 100644 --- a/Geo/Makefile +++ b/Geo/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.127 2007-01-29 17:16:02 geuzaine Exp $ +# $Id: Makefile,v 1.128 2007-01-31 12:27:18 remacle Exp $ # # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle # @@ -28,9 +28,9 @@ CFLAGS = ${OPTIM} ${FLAGS} ${INCLUDE} SRC = GEntity.cpp\ GVertex.cpp GEdge.cpp GEdgeLoop.cpp GFace.cpp GRegion.cpp\ - gmshVertex.cpp gmshEdge.cpp gmshFace.cpp gmshRegion.cpp\ + gmshVertex.cpp gmshEdge.cpp gmshFace.cpp gmshRegion.cpp gmshSurface.cpp\ OCCVertex.cpp OCCEdge.cpp OCCFace.cpp OCCRegion.cpp\ - projectionFace.cpp\ + projectionFace.cpp\ GModel.cpp\ GModelIO_Geo.cpp\ GModelIO_Mesh.cpp\ diff --git a/Geo/OCCEdge.cpp b/Geo/OCCEdge.cpp index b9b82060f4d4693a0a871b1c724570b6e8cad622..85370e8c33f19a5b76ceff0073961b300f2d40de 100644 --- a/Geo/OCCEdge.cpp +++ b/Geo/OCCEdge.cpp @@ -1,4 +1,4 @@ -// $Id: OCCEdge.cpp,v 1.18 2007-01-25 15:50:57 geuzaine Exp $ +// $Id: OCCEdge.cpp,v 1.19 2007-01-31 12:27:18 remacle Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -38,6 +38,9 @@ OCCEdge::OCCEdge(GModel *model, TopoDS_Edge edge, int num, GVertex *v1, GVertex : GEdge(model, num, v1, v2), c(edge), trimmed(0) { curve = BRep_Tool::Curve(c, s0, s1); + // build the reverse curve + c_rev = c; + c_rev.Reverse(); } Range<double> OCCEdge::parBounds(int i) const @@ -59,15 +62,26 @@ SPoint2 OCCEdge::reparamOnFace(GFace *face, double epar,int dir) const { const TopoDS_Face *s = (TopoDS_Face*) face->getNativePtr(); double t0,t1; - Handle(Geom2d_Curve) c2d = BRep_Tool::CurveOnSurface(c, *s, t0, t1); + Handle(Geom2d_Curve) c2d; + + if(dir == 1) + { + c2d = BRep_Tool::CurveOnSurface(c, *s, t0, t1); + } + else + { + c2d = BRep_Tool::CurveOnSurface(c_rev, *s, t0, t1); + } + if(c2d.IsNull()){ - Msg(GERROR,"Reparam on face failed : curve %d is not on surface %d\n",tag(),face->tag()); - return GEdge::reparamOnFace(face, epar,dir); + Msg(FATAL,"Reparam on face failed : curve %d is not on surface %d",tag(),face->tag()); } + double u,v; - c2d->Value(epar).Coord(u,v); + gp_Pnt2d pnt = c2d->Value(epar); + pnt.Coord(u,v); - if (!isSeam(face)){ + { // sometimes OCC miserably fails ... GPoint p1 = point(epar); GPoint p2 = face->point(u,v); @@ -75,26 +89,15 @@ SPoint2 OCCEdge::reparamOnFace(GFace *face, double epar,int dir) const const double dy = p1.y()-p2.y(); const double dz = p1.z()-p2.z(); if(sqrt(dx*dx+dy*dy+dz*dz) > 1.e-7 * CTX.lc){ + // return reparamOnFace(face, epar,-1); + Msg(WARNING,"Reparam on face partially failed for curve %d surface %d at point %g",tag(),face->tag(),epar); + Msg(WARNING,"On the face %d local (%g %g) global (%g %g %g)",face->tag(),u,v,p2.x(),p2.y(),p2.z()); + Msg(WARNING,"On the edge %d local (%g) global (%g %g %g)",tag(),epar,p1.x(),p1.y(),p1.z()); GPoint ppp = face->closestPoint(SPoint3(p1.x(),p1.y(),p1.z())); return SPoint2(ppp.u(),ppp.v()); } - return SPoint2(u,v); - } - else{ - BRepAdaptor_Surface surface(*s); - if(surface.IsUPeriodic()){ - if (dir == -1) - return SPoint2(surface.FirstUParameter(), v); - else - return SPoint2(surface.LastUParameter(), v); - } - else{ - if (dir == -1) - return SPoint2(u , surface.FirstVParameter()); - else - return SPoint2(u , surface.LastVParameter()); - } } + return SPoint2(u,v); } // True if the edge is a seam for the given face diff --git a/Geo/OCCEdge.h b/Geo/OCCEdge.h index 15e68292cabe06fcf219393338c07828d72d29a4..882fa0358a0792d20a2276f08667491acd8fc8b7 100644 --- a/Geo/OCCEdge.h +++ b/Geo/OCCEdge.h @@ -32,6 +32,7 @@ class OCCFace; class OCCEdge : public GEdge { protected: TopoDS_Edge c; + TopoDS_Edge c_rev; double s0,s1; Handle(Geom_Curve) curve; mutable Handle(Geom2d_Curve) curve2d; diff --git a/Geo/gmshFace.cpp b/Geo/gmshFace.cpp index 341c2b1ac1a9eb1a6001fd719fc3ab2c5bdd5217..a79adeb622f275df67b83102bfb807694f18c402 100644 --- a/Geo/gmshFace.cpp +++ b/Geo/gmshFace.cpp @@ -1,4 +1,4 @@ -// $Id: gmshFace.cpp,v 1.34 2007-01-28 12:55:00 geuzaine Exp $ +// $Id: gmshFace.cpp,v 1.35 2007-01-31 12:27:18 remacle Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -173,13 +173,14 @@ GPoint gmshFace::point(double par1, double par2) const GPoint gmshFace::closestPoint(const SPoint3 & qp) const { Vertex v; + double u[2]; v.Pos.X = qp.x(); v.Pos.Y = qp.y(); v.Pos.Z = qp.z(); if(s->Typ != MSH_SURF_PLAN) - ProjectPointOnSurface(s, v); - return GPoint(v.Pos.X, v.Pos.Y, v.Pos.Z, this, v.us); + ProjectPointOnSurface(s, v, u); + return GPoint(v.Pos.X, v.Pos.Y, v.Pos.Z, this, u); } int gmshFace::containsParam(const SPoint2 &pt) const diff --git a/Mesh/BackgroundMesh.cpp b/Mesh/BackgroundMesh.cpp index 78415f621d13dde1ee96994124b9d30d4274e480..05f065e9da3b021be79b7373f274d4b28a496dde 100644 --- a/Mesh/BackgroundMesh.cpp +++ b/Mesh/BackgroundMesh.cpp @@ -1,4 +1,4 @@ -// $Id: BackgroundMesh.cpp,v 1.14 2007-01-28 13:56:19 geuzaine Exp $ +// $Id: BackgroundMesh.cpp,v 1.15 2007-01-31 12:27:18 remacle Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -186,6 +186,7 @@ double LC_MVertex_PNTS(GEntity *ge, double U, double V) } } +// This is the only function that is used by the meshers double BGM_MeshSize(GEntity *ge, double U, double V, double X, double Y, double Z) { double l2 = MAX_LC; diff --git a/Mesh/meshGFace.cpp b/Mesh/meshGFace.cpp index f59147fbfbd46f228bccfa9b9ed9a0c0af3c35b5..a6478862aa1633bfc6d9497c708a3b7c851a82e6 100644 --- a/Mesh/meshGFace.cpp +++ b/Mesh/meshGFace.cpp @@ -1,4 +1,4 @@ -// $Id: meshGFace.cpp,v 1.54 2007-01-22 16:31:43 geuzaine Exp $ +// $Id: meshGFace.cpp,v 1.55 2007-01-31 12:27:18 remacle Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -109,6 +109,35 @@ inline double computeEdgeLinearLength(BDS_Point *p1, BDS_Point *p2) return l; } +inline double computeEdgeLinearLength(BDS_Point *p1, BDS_Point *p2, GFace *f) +{ + + GPoint GP = f->point (SPoint2(0.5*(p1->u+p2->u),0.5*(p1->v+p2->v))); + + const double dx1 = p1->X-GP.x(); + const double dy1 = p1->Y-GP.y(); + const double dz1 = p1->Z-GP.z(); + const double l1 = sqrt(dx1*dx1+dy1*dy1+dz1*dz1); + const double dx2 = p2->X-GP.x(); + const double dy2 = p2->Y-GP.y(); + const double dz2 = p2->Z-GP.z(); + const double l2 = sqrt(dx2*dx2+dy2*dy2+dz2*dz2); + // printf("%g %g\n",l1,l2); + return l1+l2; +} + +inline double computeEdgeLinearLength(BDS_Edge *e, GFace *f) +{ + if (f->geomType() == GEntity::Plane) + return e->length(); + else + { + double l = computeEdgeLinearLength(e->p1, e->p2,f); + // printf ("%g %g \n",e->length(),l); + return l; + } +} + inline double computeParametricEdgeLength(BDS_Point *p1, BDS_Point *p2) { const double dx = p1->u-p2->u; @@ -117,15 +146,15 @@ inline double computeParametricEdgeLength(BDS_Point *p1, BDS_Point *p2) return l; } -double NewGetLc(BDS_Edge *e) +double NewGetLc(BDS_Edge *e, GFace *f) { - double linearLength = e->length(); + double linearLength = computeEdgeLinearLength(e,f); double l1 = NewGetLc(e->p1); double l2 = NewGetLc(e->p2); return 2*linearLength / (l1 + l2); } -bool edgeSwapTest(BDS_Edge *e) +bool edgeSwapTest(BDS_Edge *e,GFace *gf) { BDS_Point *op[2]; @@ -137,8 +166,8 @@ bool edgeSwapTest(BDS_Edge *e) double edgeLength1, edgeLength2; - edgeLength1 = e->length(); - edgeLength2 = computeEdgeLinearLength(op[0], op[1]); + edgeLength1 = computeEdgeLinearLength(e,gf); + edgeLength2 = computeEdgeLinearLength(op[0], op[1],gf); double lp1 = NewGetLc(e->p1); double lp2 = NewGetLc(e->p1); double lo1 = NewGetLc(op[0]); @@ -274,7 +303,7 @@ void RefineMesh ( GFace *gf, BDS_Mesh &m , const int NIT) { (*it)->p1->config_modified = false; (*it)->p2->config_modified = false; - double lone = NewGetLc ( *it); + double lone = NewGetLc ( *it,gf); maxL = std::max(maxL,lone); minL = std::min(minL,lone); } @@ -295,11 +324,11 @@ void RefineMesh ( GFace *gf, BDS_Mesh &m , const int NIT) if (NN2++ >= NN1)break; if (!(*it)->deleted) { - double lone = NewGetLc ( *it); + double lone = NewGetLc ( *it,gf); const double coord = 0.5; // take care with seams : - if (lone < 1.e-10 && computeParametricEdgeLength((*it)->p1,(*it)->p2) > 1.e-5) lone = 2; + // if (lone < 1.e-10 && computeParametricEdgeLength((*it)->p1,(*it)->p2) > 1.e-5) lone = 2; if ((*it)->numfaces() == 2 && (lone > 1.3)) { BDS_Point *mid ; @@ -334,7 +363,7 @@ void RefineMesh ( GFace *gf, BDS_Mesh &m , const int NIT) { int result = edgeSwapTestQuality(*it,3); if (result >= 0) - if(edgeSwapTest(*it) || result > 0) + if(edgeSwapTest(*it,gf) || result > 0) if (m.swap_edge ( *it , BDS_SwapEdgeTestParametric())) nb_swap++; ++it; @@ -348,8 +377,8 @@ void RefineMesh ( GFace *gf, BDS_Mesh &m , const int NIT) while (1) { if (NN2++ >= NN1)break; - double lone = NewGetLc ( *it); - if (lone < 1.e-10 && computeParametricEdgeLength((*it)->p1,(*it)->p2) > 1.e-5) lone = 2; + double lone = NewGetLc ( *it,gf); + // if (lone < 1.e-10 && computeParametricEdgeLength((*it)->p1,(*it)->p2) > 1.e-5) lone = 2; if (!(*it)->deleted && (*it)->numfaces() == 2 && lone < 0.6 ) { @@ -375,7 +404,7 @@ void RefineMesh ( GFace *gf, BDS_Mesh &m , const int NIT) { int result = edgeSwapTestQuality(*it,3); if (result >= 0) - if(edgeSwapTest(*it) || result > 0) + if(edgeSwapTest(*it,gf) || result > 0) if (m.swap_edge ( *it , BDS_SwapEdgeTestParametric())) nb_swap++; ++it; @@ -696,6 +725,13 @@ bool gmsh2DMeshGenerator ( GFace *gf ) free (doc.delaunay); for ( int ip = 0 ; ip<4 ; ip++ ) delete bb[ip]; + +// char name[245]; +// sprintf(name,"param%d.pos",gf->tag()); +// outputScalarField(m->triangles, name,1); +// sprintf(name,"real%d.pos",gf->tag()); +// outputScalarField(m->triangles, name,0); + // Recover the boundary edges // and compute characteristic lenghts using mesh edge spacing @@ -780,11 +816,6 @@ bool gmsh2DMeshGenerator ( GFace *gf ) } } - //char name[245]; - //sprintf(name,"param%d.pos",gf->tag()); - //outputScalarField(m->triangles, name,1); - // sprintf(name,"real%d.pos",gf->tag()); - // outputScalarField(m->triangles, name,0); m->cleanup(); @@ -906,7 +937,7 @@ bool buildConsecutiveListOfVertices ( GFace *gf, bool seam = ges.ge->isSeam(gf); - //printf("face %d edge %d seam %d (%d %d)\n",gf->tag(),ges.ge->tag(),seam,ges.ge->getBeginVertex()->tag(),ges.ge->getEndVertex()->tag()); + // printf("face %d edge %d seam %d (%d %d)\n",gf->tag(),ges.ge->tag(),seam,ges.ge->getBeginVertex()->tag(),ges.ge->getEndVertex()->tag()); Range<double> range = ges.ge->parBounds(0); @@ -924,11 +955,8 @@ bool buildConsecutiveListOfVertices ( GFace *gf, here = ges.ge->getEndVertex()->mesh_vertices[0]; mesh1d.push_back(ges.ge->reparamOnFace(gf,range.high(),1)); if ( seam ) mesh1d_seam.push_back(ges.ge->reparamOnFace(gf,range.high(),-1)); - meshes.insert(std::pair<GEntity*,std::vector<SPoint2> > (ges.ge,mesh1d) ); - if(seam)meshes_seam.insert(std::pair<GEntity*,std::vector<SPoint2> > (ges.ge,mesh1d_seam) ); - - + if(seam)meshes_seam.insert(std::pair<GEntity*,std::vector<SPoint2> > (ges.ge,mesh1d_seam) ); it++; } @@ -941,6 +969,8 @@ bool buildConsecutiveListOfVertices ( GFace *gf, SPoint2 last_coord(0,0); int counter = 0; + double tol = 1.e-7; + while (unordered.size()) { std::list<GEdgeSigned>::iterator it = unordered.begin(); @@ -971,7 +1001,7 @@ bool buildConsecutiveListOfVertices ( GFace *gf, SPoint2 first_coord = mesh1d[0]; double d = dist2(last_coord,first_coord); // printf("d = %12.5E %d\n",d, coords.size()); - if (d < 1.e-6) + if (d < tol) { coords.clear(); coords = mesh1d; @@ -982,7 +1012,7 @@ bool buildConsecutiveListOfVertices ( GFace *gf, SPoint2 first_coord_reversed = mesh1d_reversed[0]; double d_reversed = dist2(last_coord,first_coord_reversed); // printf("d_r = %12.5E\n",d_reversed); - if (d_reversed < 1.e-6) + if (d_reversed < tol) { // printf("d_r = %12.5E\n",d_reversed); coords.clear(); @@ -997,7 +1027,7 @@ bool buildConsecutiveListOfVertices ( GFace *gf, SPoint2 first_coord_seam_reversed = mesh1d_seam_reversed[0]; double d_seam = dist2(last_coord,first_coord_seam); // printf("d_seam = %12.5E\n",d_seam); - if (d_seam < 1.e-6) + if (d_seam < tol) { coords.clear(); coords = mesh1d_seam; @@ -1007,7 +1037,7 @@ bool buildConsecutiveListOfVertices ( GFace *gf, } double d_seam_reversed = dist2(last_coord,first_coord_seam_reversed); // printf("d_seam_reversed = %12.5E\n",d_seam_reversed); - if (d_seam_reversed < 1.e-6) + if (d_seam_reversed < tol) { coords.clear(); coords = mesh1d_seam_reversed; @@ -1022,6 +1052,8 @@ bool buildConsecutiveListOfVertices ( GFace *gf, } Finalize: + + if (coords.size() == 0)return false; std::vector<MVertex*> edgeLoop; @@ -1074,6 +1106,11 @@ bool buildConsecutiveListOfVertices ( GFace *gf, last_coord = coords[coords.size()-1]; // printf("last coord %g %g\n",last_coord.x(),last_coord.y()); result.insert(result.end(),edgeLoop_BDS.begin(),edgeLoop_BDS.end()); +// for (unsigned int i=0;i<result.size();i++) +// { +// printf("point %3d (%8.5f %8.5f) (%2d,%2d)\n",i,result[i]->u,result[i]->v,result[i]->g->classif_tag,result[i]->g->classif_degree); +// } + } // if (gf->tag() == 280) @@ -1184,9 +1221,6 @@ bool gmsh2DMeshGeneratorPeriodic ( GFace *gf ) free (doc.points); free (doc.delaunay); - //char name[245]; - //sprintf(name,"param%d.pos",gf->tag()); - //outputScalarField(m->triangles, name,1); // Recover the boundary edges @@ -1343,6 +1377,9 @@ bool gmsh2DMeshGeneratorPeriodic ( GFace *gf ) // delete the mesh // sprintf(name,"real%d.pos",gf->tag()); //outputScalarField(m->triangles, name,0); +// char name[245]; +// sprintf(name,"param%d.pos",gf->tag()); +// outputScalarField(m->triangles, name,1); // if (CTX.mesh.algo2d == ALGO_2D_DELAUNAY) // { diff --git a/Mesh/meshGRegionDelaunayInsertion.cpp b/Mesh/meshGRegionDelaunayInsertion.cpp index 186f80019eabebed332fcbbdfe1ead2b1bfe5a91..b836b399090e322ce2907b888a3937d867f15d25 100644 --- a/Mesh/meshGRegionDelaunayInsertion.cpp +++ b/Mesh/meshGRegionDelaunayInsertion.cpp @@ -1,4 +1,4 @@ -// $Id: meshGRegionDelaunayInsertion.cpp,v 1.13 2007-01-18 09:12:45 geuzaine Exp $ +// $Id: meshGRegionDelaunayInsertion.cpp,v 1.14 2007-01-31 12:27:18 remacle Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -298,13 +298,50 @@ static void setLcs ( MTetrahedron *t, std::map<MVertex*,double> &vSizes) // } // } +// 4th argument will disappear when the reclassification of vertices will be done +bool find_triangle_in_model ( GModel *model , MTriangle *tri, GFace **gfound, bool force) +{ -bool find_triangle_in_model ( GModel *model , MTriangle *tri, GFace **gfound) -{ - GModel::fiter fit = model->firstFace() ; static compareMTriangleLexicographic cmp; - while (fit != model->lastFace()){ + GEntity *g1 = tri->getVertex(0)->onWhat(); + GEntity *g2 = tri->getVertex(1)->onWhat(); + GEntity *g3 = tri->getVertex(2)->onWhat(); + +// if (g1 && g2 && g3 && !force) +// { +// // 3 vertices classified on different model faces => not a triangle on a model face +// if (g1->dim() == 2 && g2->dim() == 2 && g3->dim() == 2) +// { +// if (g1 != g2 || g1 != g3) return false; +// } +// else if ( g1->dim() == 2) +// { +// *gfound = (GFace*)g1; +// return std::binary_search((*gfound)->triangles.begin(), +// (*gfound)->triangles.end(), +// tri,cmp); +// } +// else if ( g2->dim() == 2) +// { +// *gfound = (GFace*)g2; +// return std::binary_search((*gfound)->triangles.begin(), +// (*gfound)->triangles.end(), +// tri,cmp); +// } +// else if ( g3->dim() == 2) +// { +// *gfound = (GFace*)g3; +// return std::binary_search((*gfound)->triangles.begin(), +// (*gfound)->triangles.end(), +// tri,cmp); +// } +// } + + + GModel::fiter fit = model->firstFace() ; + while (fit != model->lastFace()){ + bool found = std::binary_search((*fit)->triangles.begin(), (*fit)->triangles.end(), tri,cmp); @@ -358,7 +395,11 @@ void recur_classify ( MTet4 *t , t->tet()->getVertex ( faces[i][1] ), t->tet()->getVertex ( faces[i][2] ) ); GFace *gfound; - bool found = find_triangle_in_model ( model , &tri, &gfound); + + bool found = find_triangle_in_model ( model , &tri, &gfound, false); +// if (!t->getNeigh(i) && !found) +// bool found = find_triangle_in_model ( model , &tri, &gfound, true); + if (found) { if (faces_bound.find(gfound) == faces_bound.end()) @@ -407,9 +448,9 @@ void insertVerticesInRegion (GRegion *gr) std::list<MTet4*> theRegion; std::set<GFace *> faces_bound; GRegion *bidon = (GRegion*)123; - // Msg (INFO,"start with a non classified tet"); + Msg (DEBUG2,"start with a non classified tet"); recur_classify ( *it , theRegion, faces_bound, bidon , gr->model()); - // Msg (INFO,"found %d tets with %d faces",theRegion.size(),faces_bound.size()); + Msg (DEBUG2,"found %d tets with %d faces",theRegion.size(),faces_bound.size()); GRegion *myGRegion = getRegionFromBoundingFaces (gr->model() , faces_bound ); // Msg (INFO,"a region is found %p",myGRegion); if (myGRegion) // a geometrical region associated to the list of faces has been found diff --git a/Parser/Gmsh.l b/Parser/Gmsh.l index f135b7e36f7af5d62c1a52861bb697dd5bfb5126..f9a1baa488ee45eeeeeb0ed828c8586f08a62550 100644 --- a/Parser/Gmsh.l +++ b/Parser/Gmsh.l @@ -1,5 +1,5 @@ %{ -// $Id: Gmsh.l,v 1.83 2007-01-25 15:50:58 geuzaine Exp $ +// $Id: Gmsh.l,v 1.84 2007-01-31 12:27:18 remacle Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -205,6 +205,7 @@ Return return tReturn; Sqrt return tSqrt; Sin return tSin; Sinh return tSinh; +Sphere return tSphere; Spline return tSpline; Surface return tSurface; Symmetry return tSymmetry; diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index b1573b693cbe74833b1f1ec603a2a021d2bbbbe4..90f5a4484d2f783c9757c44d42d3398fc557f1fa 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -46,81 +46,82 @@ #define tCircle 296 #define tEllipse 297 #define tLine 298 -#define tSurface 299 -#define tSpline 300 -#define tVolume 301 -#define tCharacteristic 302 -#define tLength 303 -#define tParametric 304 -#define tElliptic 305 -#define tPlane 306 -#define tRuled 307 -#define tTransfinite 308 -#define tComplex 309 -#define tPhysical 310 -#define tUsing 311 -#define tBump 312 -#define tProgression 313 -#define tPlugin 314 -#define tRotate 315 -#define tTranslate 316 -#define tSymmetry 317 -#define tDilate 318 -#define tExtrude 319 -#define tDuplicata 320 -#define tLoop 321 -#define tRecombine 322 -#define tDelete 323 -#define tCoherence 324 -#define tAttractor 325 -#define tLayers 326 -#define tAlias 327 -#define tAliasWithOptions 328 -#define tText2D 329 -#define tText3D 330 -#define tInterpolationScheme 331 -#define tTime 332 -#define tGrain 333 -#define tCombine 334 -#define tBSpline 335 -#define tBezier 336 -#define tNurbs 337 -#define tOrder 338 -#define tKnots 339 -#define tColor 340 -#define tColorTable 341 -#define tFor 342 -#define tIn 343 -#define tEndFor 344 -#define tIf 345 -#define tEndIf 346 -#define tExit 347 -#define tReturn 348 -#define tCall 349 -#define tFunction 350 -#define tShow 351 -#define tHide 352 -#define tGetValue 353 -#define tGMSH_MAJOR_VERSION 354 -#define tGMSH_MINOR_VERSION 355 -#define tGMSH_PATCH_VERSION 356 -#define tAFFECTPLUS 357 -#define tAFFECTMINUS 358 -#define tAFFECTTIMES 359 -#define tAFFECTDIVIDE 360 -#define tOR 361 -#define tAND 362 -#define tEQUAL 363 -#define tNOTEQUAL 364 -#define tLESSOREQUAL 365 -#define tGREATEROREQUAL 366 -#define tPLUSPLUS 367 -#define tMINUSMINUS 368 -#define UNARYPREC 369 +#define tSphere 299 +#define tSurface 300 +#define tSpline 301 +#define tVolume 302 +#define tCharacteristic 303 +#define tLength 304 +#define tParametric 305 +#define tElliptic 306 +#define tPlane 307 +#define tRuled 308 +#define tTransfinite 309 +#define tComplex 310 +#define tPhysical 311 +#define tUsing 312 +#define tBump 313 +#define tProgression 314 +#define tPlugin 315 +#define tRotate 316 +#define tTranslate 317 +#define tSymmetry 318 +#define tDilate 319 +#define tExtrude 320 +#define tDuplicata 321 +#define tLoop 322 +#define tRecombine 323 +#define tDelete 324 +#define tCoherence 325 +#define tAttractor 326 +#define tLayers 327 +#define tAlias 328 +#define tAliasWithOptions 329 +#define tText2D 330 +#define tText3D 331 +#define tInterpolationScheme 332 +#define tTime 333 +#define tGrain 334 +#define tCombine 335 +#define tBSpline 336 +#define tBezier 337 +#define tNurbs 338 +#define tOrder 339 +#define tKnots 340 +#define tColor 341 +#define tColorTable 342 +#define tFor 343 +#define tIn 344 +#define tEndFor 345 +#define tIf 346 +#define tEndIf 347 +#define tExit 348 +#define tReturn 349 +#define tCall 350 +#define tFunction 351 +#define tShow 352 +#define tHide 353 +#define tGetValue 354 +#define tGMSH_MAJOR_VERSION 355 +#define tGMSH_MINOR_VERSION 356 +#define tGMSH_PATCH_VERSION 357 +#define tAFFECTPLUS 358 +#define tAFFECTMINUS 359 +#define tAFFECTTIMES 360 +#define tAFFECTDIVIDE 361 +#define tOR 362 +#define tAND 363 +#define tEQUAL 364 +#define tNOTEQUAL 365 +#define tLESSOREQUAL 366 +#define tGREATEROREQUAL 367 +#define tPLUSPLUS 368 +#define tMINUSMINUS 369 +#define UNARYPREC 370 #line 1 "Gmsh.y" -// $Id: Gmsh.tab.cpp,v 1.298 2007-01-25 15:50:58 geuzaine Exp $ +// $Id: Gmsh.tab.cpp,v 1.299 2007-01-31 12:27:18 remacle Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -164,6 +165,7 @@ #include "ColorTable.h" #include "OS.h" #include "CreateFile.h" +#include "gmshSurface.h" Tree_T *Symbol_T = NULL; @@ -193,7 +195,7 @@ void skip_until(char *skip, char *until); int PrintListOfDouble(char *format, List_T *list, char *buffer); int CheckViewErrorFlags(Post_View *v); -#line 76 "Gmsh.y" +#line 77 "Gmsh.y" typedef union { char *c; int i; @@ -213,26 +215,26 @@ typedef union { -#define YYFINAL 1168 +#define YYFINAL 1183 #define YYFLAG -32768 -#define YYNTBASE 136 +#define YYNTBASE 137 -#define YYTRANSLATE(x) ((unsigned)(x) <= 369 ? yytranslate[x] : 202) +#define YYTRANSLATE(x) ((unsigned)(x) <= 370 ? yytranslate[x] : 203) static const short yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 121, 2, 131, 2, 120, 2, 2, 126, - 127, 118, 116, 132, 117, 130, 119, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 112, - 2, 114, 107, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 122, 2, 132, 2, 121, 2, 2, 127, + 128, 119, 117, 133, 118, 131, 120, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 113, + 2, 115, 108, 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, - 128, 2, 129, 125, 2, 2, 2, 2, 2, 2, + 129, 2, 130, 126, 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, 133, 2, 134, 135, 2, 2, 2, 2, + 2, 2, 134, 2, 135, 136, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -256,7 +258,7 @@ static const short yytranslate[] = { 0, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 108, 109, 110, 111, 113, 115, 122, 123, 124 + 107, 109, 110, 111, 112, 114, 116, 123, 124, 125 }; #if YYDEBUG != 0 @@ -269,270 +271,272 @@ static const short yyprhs[] = { 0, 189, 190, 197, 204, 206, 208, 210, 212, 214, 216, 218, 223, 231, 241, 248, 255, 259, 266, 273, 283, 290, 300, 306, 315, 324, 336, 343, 353, 363, 373, - 375, 377, 385, 394, 407, 414, 422, 430, 438, 448, - 456, 466, 484, 492, 500, 512, 521, 534, 543, 552, - 561, 570, 579, 588, 596, 605, 611, 623, 629, 639, - 641, 643, 645, 646, 649, 656, 663, 670, 677, 682, - 689, 696, 703, 708, 715, 719, 724, 730, 734, 738, - 743, 748, 752, 760, 768, 772, 780, 784, 787, 790, - 806, 809, 816, 825, 834, 845, 847, 850, 852, 856, - 861, 863, 869, 881, 895, 896, 904, 905, 919, 920, - 936, 945, 954, 963, 976, 989, 1002, 1017, 1032, 1047, - 1048, 1061, 1062, 1075, 1076, 1089, 1090, 1107, 1108, 1125, - 1126, 1143, 1144, 1163, 1164, 1183, 1184, 1203, 1205, 1208, - 1214, 1222, 1232, 1235, 1242, 1252, 1262, 1271, 1281, 1290, - 1299, 1306, 1311, 1318, 1325, 1332, 1339, 1342, 1344, 1348, - 1351, 1354, 1357, 1361, 1365, 1369, 1373, 1377, 1381, 1385, - 1389, 1393, 1397, 1401, 1405, 1409, 1413, 1419, 1424, 1429, - 1434, 1439, 1444, 1449, 1454, 1459, 1464, 1469, 1476, 1481, - 1486, 1491, 1496, 1501, 1506, 1513, 1520, 1527, 1532, 1537, - 1542, 1547, 1552, 1557, 1562, 1567, 1572, 1577, 1582, 1589, - 1594, 1599, 1604, 1609, 1614, 1619, 1626, 1633, 1640, 1645, - 1647, 1649, 1651, 1653, 1655, 1657, 1659, 1661, 1667, 1672, - 1677, 1680, 1686, 1690, 1697, 1702, 1710, 1717, 1719, 1722, - 1725, 1729, 1733, 1745, 1755, 1763, 1771, 1773, 1777, 1779, - 1781, 1784, 1788, 1793, 1797, 1803, 1808, 1810, 1812, 1814, - 1818, 1823, 1830, 1838, 1840, 1842, 1846, 1850, 1860, 1868, - 1870, 1876, 1880, 1887, 1889, 1893, 1895, 1897, 1904, 1909, - 1914, 1919, 1926, 1933 + 375, 377, 378, 386, 399, 408, 421, 428, 436, 444, + 452, 462, 470, 480, 498, 506, 514, 526, 535, 548, + 557, 566, 575, 583, 592, 601, 610, 618, 627, 633, + 645, 651, 661, 663, 665, 667, 668, 671, 678, 685, + 692, 699, 704, 711, 718, 725, 730, 737, 741, 746, + 752, 756, 760, 765, 770, 774, 782, 790, 794, 802, + 806, 809, 812, 828, 831, 838, 847, 856, 867, 869, + 872, 874, 878, 883, 885, 891, 903, 917, 918, 926, + 927, 941, 942, 958, 967, 976, 985, 998, 1011, 1024, + 1039, 1054, 1069, 1070, 1083, 1084, 1097, 1098, 1111, 1112, + 1129, 1130, 1147, 1148, 1165, 1166, 1185, 1186, 1205, 1206, + 1225, 1227, 1230, 1236, 1244, 1254, 1257, 1264, 1274, 1284, + 1293, 1303, 1312, 1321, 1328, 1333, 1340, 1347, 1354, 1361, + 1364, 1366, 1370, 1373, 1376, 1379, 1383, 1387, 1391, 1395, + 1399, 1403, 1407, 1411, 1415, 1419, 1423, 1427, 1431, 1435, + 1441, 1446, 1451, 1456, 1461, 1466, 1471, 1476, 1481, 1486, + 1491, 1498, 1503, 1508, 1513, 1518, 1523, 1528, 1535, 1542, + 1549, 1554, 1559, 1564, 1569, 1574, 1579, 1584, 1589, 1594, + 1599, 1604, 1611, 1616, 1621, 1626, 1631, 1636, 1641, 1648, + 1655, 1662, 1667, 1669, 1671, 1673, 1675, 1677, 1679, 1681, + 1683, 1689, 1694, 1699, 1702, 1708, 1712, 1719, 1724, 1732, + 1739, 1741, 1744, 1747, 1751, 1755, 1767, 1777, 1785, 1793, + 1795, 1799, 1801, 1803, 1806, 1810, 1815, 1819, 1825, 1830, + 1832, 1834, 1836, 1840, 1845, 1852, 1860, 1862, 1864, 1868, + 1872, 1882, 1890, 1892, 1898, 1902, 1909, 1911, 1915, 1917, + 1919, 1926, 1931, 1936, 1941, 1948, 1955 }; -static const short yyrhs[] = { 137, - 0, 1, 6, 0, 0, 137, 138, 0, 141, 0, - 140, 0, 160, 0, 162, 0, 163, 0, 166, 0, - 167, 0, 168, 0, 169, 0, 172, 0, 187, 0, - 188, 0, 189, 0, 171, 0, 170, 0, 114, 0, - 114, 114, 0, 33, 126, 5, 127, 6, 0, 33, - 126, 5, 127, 139, 201, 6, 0, 33, 126, 5, - 132, 197, 127, 6, 0, 33, 126, 5, 132, 197, - 127, 139, 201, 6, 0, 4, 5, 133, 142, 134, - 6, 0, 4, 5, 4, 192, 133, 142, 134, 6, - 0, 0, 142, 145, 0, 142, 149, 0, 142, 152, - 0, 142, 154, 0, 142, 155, 0, 142, 157, 0, - 190, 0, 143, 132, 190, 0, 190, 0, 144, 132, - 190, 0, 0, 0, 4, 146, 126, 143, 127, 147, - 133, 144, 134, 6, 0, 201, 0, 148, 132, 201, - 0, 0, 75, 126, 190, 132, 190, 132, 190, 127, - 150, 133, 148, 134, 6, 0, 201, 0, 151, 132, - 201, 0, 0, 76, 126, 190, 132, 190, 132, 190, - 132, 190, 127, 153, 133, 151, 134, 6, 0, 77, - 133, 194, 134, 133, 194, 134, 6, 0, 0, 78, - 156, 133, 144, 134, 6, 0, 79, 126, 190, 127, - 195, 6, 0, 7, 0, 103, 0, 104, 0, 105, - 0, 106, 0, 122, 0, 123, 0, 4, 158, 190, - 6, 0, 4, 128, 190, 129, 158, 190, 6, 0, - 4, 128, 133, 197, 134, 129, 158, 195, 6, 0, - 4, 128, 129, 7, 195, 6, 0, 4, 128, 129, - 103, 195, 6, 0, 4, 159, 6, 0, 4, 128, - 190, 129, 159, 6, 0, 4, 130, 4, 7, 201, - 6, 0, 4, 128, 190, 129, 130, 4, 7, 201, - 6, 0, 4, 130, 4, 158, 190, 6, 0, 4, - 128, 190, 129, 130, 4, 158, 190, 6, 0, 4, - 130, 4, 159, 6, 0, 4, 128, 190, 129, 130, - 4, 159, 6, 0, 4, 130, 86, 130, 4, 7, - 198, 6, 0, 4, 128, 190, 129, 130, 86, 130, - 4, 7, 198, 6, 0, 4, 130, 87, 7, 199, - 6, 0, 4, 128, 190, 129, 130, 87, 7, 199, - 6, 0, 60, 126, 4, 127, 130, 4, 7, 190, - 6, 0, 60, 126, 4, 127, 130, 4, 7, 201, - 6, 0, 190, 0, 201, 0, 41, 126, 190, 127, - 7, 192, 6, 0, 56, 41, 126, 161, 127, 7, - 195, 6, 0, 71, 41, 195, 7, 133, 190, 132, - 190, 132, 190, 134, 6, 0, 48, 49, 195, 7, - 190, 6, 0, 44, 126, 190, 127, 7, 195, 6, - 0, 46, 126, 190, 127, 7, 195, 6, 0, 42, - 126, 190, 127, 7, 195, 6, 0, 42, 126, 190, - 127, 7, 195, 52, 192, 6, 0, 43, 126, 190, - 127, 7, 195, 6, 0, 43, 126, 190, 127, 7, - 195, 52, 192, 6, 0, 50, 126, 190, 127, 7, - 133, 190, 132, 190, 132, 5, 132, 5, 132, 5, - 134, 6, 0, 81, 126, 190, 127, 7, 195, 6, - 0, 82, 126, 190, 127, 7, 195, 6, 0, 83, - 126, 190, 127, 7, 195, 85, 195, 84, 190, 6, - 0, 44, 67, 126, 190, 127, 7, 195, 6, 0, - 71, 44, 195, 7, 133, 190, 132, 190, 132, 190, - 134, 6, 0, 56, 44, 126, 161, 127, 7, 195, - 6, 0, 52, 45, 126, 190, 127, 7, 195, 6, - 0, 53, 45, 126, 190, 127, 7, 195, 6, 0, - 45, 67, 126, 190, 127, 7, 195, 6, 0, 56, - 45, 126, 161, 127, 7, 195, 6, 0, 55, 47, - 126, 190, 127, 7, 195, 6, 0, 47, 126, 190, - 127, 7, 195, 6, 0, 56, 47, 126, 161, 127, - 7, 195, 6, 0, 62, 192, 133, 164, 134, 0, - 61, 133, 192, 132, 192, 132, 190, 134, 133, 164, - 134, 0, 63, 192, 133, 164, 134, 0, 64, 133, - 192, 132, 190, 134, 133, 164, 134, 0, 166, 0, - 165, 0, 163, 0, 0, 165, 162, 0, 165, 41, - 133, 197, 134, 6, 0, 165, 44, 133, 197, 134, - 6, 0, 165, 45, 133, 197, 134, 6, 0, 165, - 47, 133, 197, 134, 6, 0, 66, 133, 165, 134, - 0, 66, 4, 128, 190, 129, 6, 0, 73, 4, - 128, 190, 129, 6, 0, 74, 4, 128, 190, 129, - 6, 0, 69, 133, 165, 134, 0, 69, 4, 128, - 190, 129, 6, 0, 69, 4, 6, 0, 69, 4, - 4, 6, 0, 86, 198, 133, 165, 134, 0, 97, - 201, 6, 0, 98, 201, 6, 0, 97, 133, 165, - 134, 0, 98, 133, 165, 134, 0, 4, 201, 6, - 0, 4, 4, 128, 190, 129, 201, 6, 0, 4, - 4, 4, 128, 190, 129, 6, 0, 4, 190, 6, - 0, 60, 126, 4, 127, 130, 4, 6, 0, 80, - 4, 6, 0, 93, 6, 0, 38, 6, 0, 38, - 133, 190, 132, 190, 132, 190, 132, 190, 132, 190, - 132, 190, 134, 6, 0, 39, 6, 0, 88, 126, - 190, 8, 190, 127, 0, 88, 126, 190, 8, 190, - 8, 190, 127, 0, 88, 4, 89, 133, 190, 8, - 190, 134, 0, 88, 4, 89, 133, 190, 8, 190, - 8, 190, 134, 0, 90, 0, 96, 4, 0, 94, - 0, 95, 4, 6, 0, 91, 126, 190, 127, 0, - 92, 0, 65, 192, 133, 165, 134, 0, 65, 133, - 192, 132, 192, 132, 190, 134, 133, 165, 134, 0, - 65, 133, 192, 132, 192, 132, 192, 132, 190, 134, - 133, 165, 134, 0, 0, 65, 192, 133, 165, 173, - 185, 134, 0, 0, 65, 133, 192, 132, 192, 132, - 190, 134, 133, 165, 174, 185, 134, 0, 0, 65, - 133, 192, 132, 192, 132, 192, 132, 190, 134, 133, - 165, 175, 185, 134, 0, 65, 41, 133, 190, 132, - 192, 134, 6, 0, 65, 44, 133, 190, 132, 192, - 134, 6, 0, 65, 45, 133, 190, 132, 192, 134, - 6, 0, 65, 41, 133, 190, 132, 192, 132, 192, - 132, 190, 134, 6, 0, 65, 44, 133, 190, 132, - 192, 132, 192, 132, 190, 134, 6, 0, 65, 45, - 133, 190, 132, 192, 132, 192, 132, 190, 134, 6, - 0, 65, 41, 133, 190, 132, 192, 132, 192, 132, - 192, 132, 190, 134, 6, 0, 65, 44, 133, 190, - 132, 192, 132, 192, 132, 192, 132, 190, 134, 6, - 0, 65, 45, 133, 190, 132, 192, 132, 192, 132, - 192, 132, 190, 134, 6, 0, 0, 65, 41, 133, - 190, 132, 192, 134, 176, 133, 185, 134, 6, 0, - 0, 65, 44, 133, 190, 132, 192, 134, 177, 133, - 185, 134, 6, 0, 0, 65, 45, 133, 190, 132, - 192, 134, 178, 133, 185, 134, 6, 0, 0, 65, - 41, 133, 190, 132, 192, 132, 192, 132, 190, 134, - 179, 133, 185, 134, 6, 0, 0, 65, 44, 133, - 190, 132, 192, 132, 192, 132, 190, 134, 180, 133, - 185, 134, 6, 0, 0, 65, 45, 133, 190, 132, - 192, 132, 192, 132, 190, 134, 181, 133, 185, 134, - 6, 0, 0, 65, 41, 133, 190, 132, 192, 132, - 192, 132, 192, 132, 190, 134, 182, 133, 185, 134, - 6, 0, 0, 65, 44, 133, 190, 132, 192, 132, - 192, 132, 192, 132, 190, 134, 183, 133, 185, 134, - 6, 0, 0, 65, 45, 133, 190, 132, 192, 132, - 192, 132, 192, 132, 190, 134, 184, 133, 185, 134, - 6, 0, 186, 0, 185, 186, 0, 72, 133, 190, - 134, 6, 0, 72, 133, 195, 132, 195, 134, 6, - 0, 72, 133, 195, 132, 195, 132, 195, 134, 6, - 0, 68, 6, 0, 54, 44, 195, 7, 190, 6, - 0, 54, 44, 195, 7, 190, 57, 59, 190, 6, - 0, 54, 44, 195, 7, 190, 57, 58, 190, 6, - 0, 54, 45, 133, 190, 134, 7, 195, 6, 0, - 54, 45, 133, 190, 134, 7, 195, 4, 6, 0, - 51, 45, 133, 190, 134, 7, 195, 6, 0, 54, - 47, 133, 190, 134, 7, 195, 6, 0, 68, 45, - 195, 7, 190, 6, 0, 68, 45, 195, 6, 0, - 41, 195, 89, 45, 190, 6, 0, 44, 195, 89, - 45, 190, 6, 0, 44, 195, 89, 47, 190, 6, - 0, 45, 195, 89, 47, 190, 6, 0, 70, 6, - 0, 191, 0, 126, 190, 127, 0, 117, 190, 0, - 116, 190, 0, 121, 190, 0, 190, 117, 190, 0, - 190, 116, 190, 0, 190, 118, 190, 0, 190, 119, - 190, 0, 190, 120, 190, 0, 190, 125, 190, 0, - 190, 112, 190, 0, 190, 114, 190, 0, 190, 113, - 190, 0, 190, 115, 190, 0, 190, 110, 190, 0, - 190, 111, 190, 0, 190, 109, 190, 0, 190, 108, - 190, 0, 190, 107, 190, 8, 190, 0, 12, 126, - 190, 127, 0, 13, 126, 190, 127, 0, 14, 126, - 190, 127, 0, 15, 126, 190, 127, 0, 16, 126, - 190, 127, 0, 17, 126, 190, 127, 0, 18, 126, - 190, 127, 0, 19, 126, 190, 127, 0, 20, 126, - 190, 127, 0, 22, 126, 190, 127, 0, 23, 126, - 190, 132, 190, 127, 0, 24, 126, 190, 127, 0, - 25, 126, 190, 127, 0, 26, 126, 190, 127, 0, - 27, 126, 190, 127, 0, 28, 126, 190, 127, 0, - 29, 126, 190, 127, 0, 30, 126, 190, 132, 190, - 127, 0, 31, 126, 190, 132, 190, 127, 0, 32, - 126, 190, 132, 190, 127, 0, 21, 126, 190, 127, - 0, 12, 128, 190, 129, 0, 13, 128, 190, 129, - 0, 14, 128, 190, 129, 0, 15, 128, 190, 129, - 0, 16, 128, 190, 129, 0, 17, 128, 190, 129, - 0, 18, 128, 190, 129, 0, 19, 128, 190, 129, - 0, 20, 128, 190, 129, 0, 22, 128, 190, 129, - 0, 23, 128, 190, 132, 190, 129, 0, 24, 128, - 190, 129, 0, 25, 128, 190, 129, 0, 26, 128, - 190, 129, 0, 27, 128, 190, 129, 0, 28, 128, - 190, 129, 0, 29, 128, 190, 129, 0, 30, 128, - 190, 132, 190, 129, 0, 31, 128, 190, 132, 190, - 129, 0, 32, 128, 190, 132, 190, 129, 0, 21, - 128, 190, 129, 0, 3, 0, 9, 0, 10, 0, - 11, 0, 100, 0, 101, 0, 102, 0, 4, 0, - 4, 135, 133, 190, 134, 0, 4, 128, 190, 129, - 0, 131, 4, 128, 129, 0, 4, 159, 0, 4, - 128, 190, 129, 159, 0, 4, 130, 4, 0, 4, - 128, 190, 129, 130, 4, 0, 4, 130, 4, 159, - 0, 4, 128, 190, 129, 130, 4, 159, 0, 99, - 126, 5, 132, 190, 127, 0, 193, 0, 117, 192, - 0, 116, 192, 0, 192, 117, 192, 0, 192, 116, - 192, 0, 133, 190, 132, 190, 132, 190, 132, 190, - 132, 190, 134, 0, 133, 190, 132, 190, 132, 190, - 132, 190, 134, 0, 133, 190, 132, 190, 132, 190, - 134, 0, 126, 190, 132, 190, 132, 190, 127, 0, - 195, 0, 194, 132, 195, 0, 190, 0, 196, 0, - 133, 134, 0, 133, 197, 134, 0, 117, 133, 197, - 134, 0, 190, 8, 190, 0, 190, 8, 190, 8, - 190, 0, 41, 133, 190, 134, 0, 163, 0, 166, - 0, 172, 0, 4, 128, 129, 0, 117, 4, 128, - 129, 0, 4, 128, 133, 197, 134, 129, 0, 117, - 4, 128, 133, 197, 134, 129, 0, 190, 0, 196, - 0, 197, 132, 190, 0, 197, 132, 196, 0, 133, - 190, 132, 190, 132, 190, 132, 190, 134, 0, 133, - 190, 132, 190, 132, 190, 134, 0, 4, 0, 4, - 130, 86, 130, 4, 0, 133, 200, 134, 0, 4, - 128, 190, 129, 130, 87, 0, 198, 0, 200, 132, - 198, 0, 5, 0, 40, 0, 35, 126, 201, 132, - 201, 127, 0, 36, 126, 201, 127, 0, 37, 126, - 201, 127, 0, 34, 126, 201, 127, 0, 34, 126, - 201, 132, 197, 127, 0, 34, 126, 4, 130, 4, - 127, 0, 34, 126, 4, 128, 190, 129, 130, 4, - 127, 0 +static const short yyrhs[] = { 138, + 0, 1, 6, 0, 0, 138, 139, 0, 142, 0, + 141, 0, 161, 0, 163, 0, 164, 0, 167, 0, + 168, 0, 169, 0, 170, 0, 173, 0, 188, 0, + 189, 0, 190, 0, 172, 0, 171, 0, 115, 0, + 115, 115, 0, 33, 127, 5, 128, 6, 0, 33, + 127, 5, 128, 140, 202, 6, 0, 33, 127, 5, + 133, 198, 128, 6, 0, 33, 127, 5, 133, 198, + 128, 140, 202, 6, 0, 4, 5, 134, 143, 135, + 6, 0, 4, 5, 4, 193, 134, 143, 135, 6, + 0, 0, 143, 146, 0, 143, 150, 0, 143, 153, + 0, 143, 155, 0, 143, 156, 0, 143, 158, 0, + 191, 0, 144, 133, 191, 0, 191, 0, 145, 133, + 191, 0, 0, 0, 4, 147, 127, 144, 128, 148, + 134, 145, 135, 6, 0, 202, 0, 149, 133, 202, + 0, 0, 76, 127, 191, 133, 191, 133, 191, 128, + 151, 134, 149, 135, 6, 0, 202, 0, 152, 133, + 202, 0, 0, 77, 127, 191, 133, 191, 133, 191, + 133, 191, 128, 154, 134, 152, 135, 6, 0, 78, + 134, 195, 135, 134, 195, 135, 6, 0, 0, 79, + 157, 134, 145, 135, 6, 0, 80, 127, 191, 128, + 196, 6, 0, 7, 0, 104, 0, 105, 0, 106, + 0, 107, 0, 123, 0, 124, 0, 4, 159, 191, + 6, 0, 4, 129, 191, 130, 159, 191, 6, 0, + 4, 129, 134, 198, 135, 130, 159, 196, 6, 0, + 4, 129, 130, 7, 196, 6, 0, 4, 129, 130, + 104, 196, 6, 0, 4, 160, 6, 0, 4, 129, + 191, 130, 160, 6, 0, 4, 131, 4, 7, 202, + 6, 0, 4, 129, 191, 130, 131, 4, 7, 202, + 6, 0, 4, 131, 4, 159, 191, 6, 0, 4, + 129, 191, 130, 131, 4, 159, 191, 6, 0, 4, + 131, 4, 160, 6, 0, 4, 129, 191, 130, 131, + 4, 160, 6, 0, 4, 131, 87, 131, 4, 7, + 199, 6, 0, 4, 129, 191, 130, 131, 87, 131, + 4, 7, 199, 6, 0, 4, 131, 88, 7, 200, + 6, 0, 4, 129, 191, 130, 131, 88, 7, 200, + 6, 0, 61, 127, 4, 128, 131, 4, 7, 191, + 6, 0, 61, 127, 4, 128, 131, 4, 7, 202, + 6, 0, 191, 0, 202, 0, 0, 41, 127, 191, + 128, 7, 193, 6, 0, 41, 127, 191, 128, 90, + 46, 127, 191, 128, 7, 193, 6, 0, 57, 41, + 127, 162, 128, 7, 196, 6, 0, 72, 41, 196, + 7, 134, 191, 133, 191, 133, 191, 135, 6, 0, + 49, 50, 196, 7, 191, 6, 0, 44, 127, 191, + 128, 7, 196, 6, 0, 47, 127, 191, 128, 7, + 196, 6, 0, 42, 127, 191, 128, 7, 196, 6, + 0, 42, 127, 191, 128, 7, 196, 53, 193, 6, + 0, 43, 127, 191, 128, 7, 196, 6, 0, 43, + 127, 191, 128, 7, 196, 53, 193, 6, 0, 51, + 127, 191, 128, 7, 134, 191, 133, 191, 133, 5, + 133, 5, 133, 5, 135, 6, 0, 82, 127, 191, + 128, 7, 196, 6, 0, 83, 127, 191, 128, 7, + 196, 6, 0, 84, 127, 191, 128, 7, 196, 86, + 196, 85, 191, 6, 0, 44, 68, 127, 191, 128, + 7, 196, 6, 0, 72, 44, 196, 7, 134, 191, + 133, 191, 133, 191, 135, 6, 0, 57, 44, 127, + 162, 128, 7, 196, 6, 0, 53, 46, 127, 191, + 128, 7, 196, 6, 0, 54, 46, 127, 191, 128, + 7, 196, 6, 0, 45, 127, 191, 128, 7, 196, + 6, 0, 46, 68, 127, 191, 128, 7, 196, 6, + 0, 57, 46, 127, 162, 128, 7, 196, 6, 0, + 56, 48, 127, 191, 128, 7, 196, 6, 0, 48, + 127, 191, 128, 7, 196, 6, 0, 57, 48, 127, + 162, 128, 7, 196, 6, 0, 63, 193, 134, 165, + 135, 0, 62, 134, 193, 133, 193, 133, 191, 135, + 134, 165, 135, 0, 64, 193, 134, 165, 135, 0, + 65, 134, 193, 133, 191, 135, 134, 165, 135, 0, + 167, 0, 166, 0, 164, 0, 0, 166, 163, 0, + 166, 41, 134, 198, 135, 6, 0, 166, 44, 134, + 198, 135, 6, 0, 166, 46, 134, 198, 135, 6, + 0, 166, 48, 134, 198, 135, 6, 0, 67, 134, + 166, 135, 0, 67, 4, 129, 191, 130, 6, 0, + 74, 4, 129, 191, 130, 6, 0, 75, 4, 129, + 191, 130, 6, 0, 70, 134, 166, 135, 0, 70, + 4, 129, 191, 130, 6, 0, 70, 4, 6, 0, + 70, 4, 4, 6, 0, 87, 199, 134, 166, 135, + 0, 98, 202, 6, 0, 99, 202, 6, 0, 98, + 134, 166, 135, 0, 99, 134, 166, 135, 0, 4, + 202, 6, 0, 4, 4, 129, 191, 130, 202, 6, + 0, 4, 4, 4, 129, 191, 130, 6, 0, 4, + 191, 6, 0, 61, 127, 4, 128, 131, 4, 6, + 0, 81, 4, 6, 0, 94, 6, 0, 38, 6, + 0, 38, 134, 191, 133, 191, 133, 191, 133, 191, + 133, 191, 133, 191, 135, 6, 0, 39, 6, 0, + 89, 127, 191, 8, 191, 128, 0, 89, 127, 191, + 8, 191, 8, 191, 128, 0, 89, 4, 90, 134, + 191, 8, 191, 135, 0, 89, 4, 90, 134, 191, + 8, 191, 8, 191, 135, 0, 91, 0, 97, 4, + 0, 95, 0, 96, 4, 6, 0, 92, 127, 191, + 128, 0, 93, 0, 66, 193, 134, 166, 135, 0, + 66, 134, 193, 133, 193, 133, 191, 135, 134, 166, + 135, 0, 66, 134, 193, 133, 193, 133, 193, 133, + 191, 135, 134, 166, 135, 0, 0, 66, 193, 134, + 166, 174, 186, 135, 0, 0, 66, 134, 193, 133, + 193, 133, 191, 135, 134, 166, 175, 186, 135, 0, + 0, 66, 134, 193, 133, 193, 133, 193, 133, 191, + 135, 134, 166, 176, 186, 135, 0, 66, 41, 134, + 191, 133, 193, 135, 6, 0, 66, 44, 134, 191, + 133, 193, 135, 6, 0, 66, 46, 134, 191, 133, + 193, 135, 6, 0, 66, 41, 134, 191, 133, 193, + 133, 193, 133, 191, 135, 6, 0, 66, 44, 134, + 191, 133, 193, 133, 193, 133, 191, 135, 6, 0, + 66, 46, 134, 191, 133, 193, 133, 193, 133, 191, + 135, 6, 0, 66, 41, 134, 191, 133, 193, 133, + 193, 133, 193, 133, 191, 135, 6, 0, 66, 44, + 134, 191, 133, 193, 133, 193, 133, 193, 133, 191, + 135, 6, 0, 66, 46, 134, 191, 133, 193, 133, + 193, 133, 193, 133, 191, 135, 6, 0, 0, 66, + 41, 134, 191, 133, 193, 135, 177, 134, 186, 135, + 6, 0, 0, 66, 44, 134, 191, 133, 193, 135, + 178, 134, 186, 135, 6, 0, 0, 66, 46, 134, + 191, 133, 193, 135, 179, 134, 186, 135, 6, 0, + 0, 66, 41, 134, 191, 133, 193, 133, 193, 133, + 191, 135, 180, 134, 186, 135, 6, 0, 0, 66, + 44, 134, 191, 133, 193, 133, 193, 133, 191, 135, + 181, 134, 186, 135, 6, 0, 0, 66, 46, 134, + 191, 133, 193, 133, 193, 133, 191, 135, 182, 134, + 186, 135, 6, 0, 0, 66, 41, 134, 191, 133, + 193, 133, 193, 133, 193, 133, 191, 135, 183, 134, + 186, 135, 6, 0, 0, 66, 44, 134, 191, 133, + 193, 133, 193, 133, 193, 133, 191, 135, 184, 134, + 186, 135, 6, 0, 0, 66, 46, 134, 191, 133, + 193, 133, 193, 133, 193, 133, 191, 135, 185, 134, + 186, 135, 6, 0, 187, 0, 186, 187, 0, 73, + 134, 191, 135, 6, 0, 73, 134, 196, 133, 196, + 135, 6, 0, 73, 134, 196, 133, 196, 133, 196, + 135, 6, 0, 69, 6, 0, 55, 44, 196, 7, + 191, 6, 0, 55, 44, 196, 7, 191, 58, 60, + 191, 6, 0, 55, 44, 196, 7, 191, 58, 59, + 191, 6, 0, 55, 46, 134, 191, 135, 7, 196, + 6, 0, 55, 46, 134, 191, 135, 7, 196, 4, + 6, 0, 52, 46, 134, 191, 135, 7, 196, 6, + 0, 55, 48, 134, 191, 135, 7, 196, 6, 0, + 69, 46, 196, 7, 191, 6, 0, 69, 46, 196, + 6, 0, 41, 196, 90, 46, 191, 6, 0, 44, + 196, 90, 46, 191, 6, 0, 44, 196, 90, 48, + 191, 6, 0, 46, 196, 90, 48, 191, 6, 0, + 71, 6, 0, 192, 0, 127, 191, 128, 0, 118, + 191, 0, 117, 191, 0, 122, 191, 0, 191, 118, + 191, 0, 191, 117, 191, 0, 191, 119, 191, 0, + 191, 120, 191, 0, 191, 121, 191, 0, 191, 126, + 191, 0, 191, 113, 191, 0, 191, 115, 191, 0, + 191, 114, 191, 0, 191, 116, 191, 0, 191, 111, + 191, 0, 191, 112, 191, 0, 191, 110, 191, 0, + 191, 109, 191, 0, 191, 108, 191, 8, 191, 0, + 12, 127, 191, 128, 0, 13, 127, 191, 128, 0, + 14, 127, 191, 128, 0, 15, 127, 191, 128, 0, + 16, 127, 191, 128, 0, 17, 127, 191, 128, 0, + 18, 127, 191, 128, 0, 19, 127, 191, 128, 0, + 20, 127, 191, 128, 0, 22, 127, 191, 128, 0, + 23, 127, 191, 133, 191, 128, 0, 24, 127, 191, + 128, 0, 25, 127, 191, 128, 0, 26, 127, 191, + 128, 0, 27, 127, 191, 128, 0, 28, 127, 191, + 128, 0, 29, 127, 191, 128, 0, 30, 127, 191, + 133, 191, 128, 0, 31, 127, 191, 133, 191, 128, + 0, 32, 127, 191, 133, 191, 128, 0, 21, 127, + 191, 128, 0, 12, 129, 191, 130, 0, 13, 129, + 191, 130, 0, 14, 129, 191, 130, 0, 15, 129, + 191, 130, 0, 16, 129, 191, 130, 0, 17, 129, + 191, 130, 0, 18, 129, 191, 130, 0, 19, 129, + 191, 130, 0, 20, 129, 191, 130, 0, 22, 129, + 191, 130, 0, 23, 129, 191, 133, 191, 130, 0, + 24, 129, 191, 130, 0, 25, 129, 191, 130, 0, + 26, 129, 191, 130, 0, 27, 129, 191, 130, 0, + 28, 129, 191, 130, 0, 29, 129, 191, 130, 0, + 30, 129, 191, 133, 191, 130, 0, 31, 129, 191, + 133, 191, 130, 0, 32, 129, 191, 133, 191, 130, + 0, 21, 129, 191, 130, 0, 3, 0, 9, 0, + 10, 0, 11, 0, 101, 0, 102, 0, 103, 0, + 4, 0, 4, 136, 134, 191, 135, 0, 4, 129, + 191, 130, 0, 132, 4, 129, 130, 0, 4, 160, + 0, 4, 129, 191, 130, 160, 0, 4, 131, 4, + 0, 4, 129, 191, 130, 131, 4, 0, 4, 131, + 4, 160, 0, 4, 129, 191, 130, 131, 4, 160, + 0, 100, 127, 5, 133, 191, 128, 0, 194, 0, + 118, 193, 0, 117, 193, 0, 193, 118, 193, 0, + 193, 117, 193, 0, 134, 191, 133, 191, 133, 191, + 133, 191, 133, 191, 135, 0, 134, 191, 133, 191, + 133, 191, 133, 191, 135, 0, 134, 191, 133, 191, + 133, 191, 135, 0, 127, 191, 133, 191, 133, 191, + 128, 0, 196, 0, 195, 133, 196, 0, 191, 0, + 197, 0, 134, 135, 0, 134, 198, 135, 0, 118, + 134, 198, 135, 0, 191, 8, 191, 0, 191, 8, + 191, 8, 191, 0, 41, 134, 191, 135, 0, 164, + 0, 167, 0, 173, 0, 4, 129, 130, 0, 118, + 4, 129, 130, 0, 4, 129, 134, 198, 135, 130, + 0, 118, 4, 129, 134, 198, 135, 130, 0, 191, + 0, 197, 0, 198, 133, 191, 0, 198, 133, 197, + 0, 134, 191, 133, 191, 133, 191, 133, 191, 135, + 0, 134, 191, 133, 191, 133, 191, 135, 0, 4, + 0, 4, 131, 87, 131, 4, 0, 134, 201, 135, + 0, 4, 129, 191, 130, 131, 88, 0, 199, 0, + 201, 133, 199, 0, 5, 0, 40, 0, 35, 127, + 202, 133, 202, 128, 0, 36, 127, 202, 128, 0, + 37, 127, 202, 128, 0, 34, 127, 202, 128, 0, + 34, 127, 202, 133, 198, 128, 0, 34, 127, 4, + 131, 4, 128, 0, 34, 127, 4, 129, 191, 130, + 131, 4, 128, 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, - 141, 143, 148, 150, 153, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 171, - 176, 182, 188, 203, 216, 244, 252, 261, 269, 270, - 271, 272, 273, 274, 277, 280, 284, 287, 291, 482, - 500, 510, 516, 523, 531, 537, 543, 550, 558, 564, - 572, 577, 581, 590, 592, 593, 594, 595, 598, 600, - 603, 638, 677, 731, 748, 766, 777, 796, 810, 827, - 853, 880, 894, 911, 925, 942, 962, 985, 995, 1009, - 1014, 1021, 1043, 1059, 1066, 1088, 1106, 1124, 1142, 1168, - 1186, 1212, 1232, 1256, 1280, 1306, 1323, 1330, 1349, 1367, - 1405, 1421, 1441, 1458, 1475, 1495, 1501, 1506, 1511, 1518, - 1520, 1521, 1524, 1529, 1533, 1549, 1565, 1581, 1601, 1616, - 1622, 1628, 1639, 1649, 1659, 1675, 1693, 1707, 1714, 1720, - 1729, 1742, 1788, 1803, 1814, 1834, 1844, 1866, 1870, 1875, - 1880, 1890, 1907, 1923, 1949, 1976, 2008, 2015, 2020, 2026, - 2030, 2038, 2047, 2055, 2063, 2068, 2076, 2081, 2089, 2094, - 2104, 2111, 2118, 2125, 2132, 2139, 2146, 2153, 2160, 2167, - 2172, 2179, 2184, 2191, 2196, 2203, 2208, 2215, 2220, 2227, - 2232, 2239, 2244, 2251, 2256, 2263, 2268, 2278, 2282, 2287, - 2297, 2319, 2343, 2351, 2370, 2388, 2406, 2435, 2470, 2475, - 2502, 2516, 2534, 2541, 2547, 2550, 2558, 2568, 2570, 2571, - 2572, 2573, 2574, 2575, 2576, 2577, 2584, 2585, 2586, 2587, - 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, - 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, - 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2617, 2618, - 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, - 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2642, - 2647, 2648, 2649, 2650, 2651, 2652, 2656, 2672, 2687, 2707, - 2721, 2734, 2757, 2775, 2793, 2811, 2829, 2836, 2841, 2845, - 2849, 2853, 2859, 2864, 2868, 2872, 2878, 2884, 2891, 2897, - 2901, 2906, 2910, 2921, 2928, 2939, 2959, 2969, 2979, 2989, - 3006, 3025, 3049, 3077, 3083, 3087, 3091, 3103, 3108, 3120, - 3127, 3148, 3153, 3167, 3173, 3179, 3184, 3192, 3200, 3214, - 3228, 3232, 3251, 3273 + 142, 144, 149, 151, 154, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 172, + 177, 183, 189, 204, 217, 245, 253, 262, 270, 271, + 272, 273, 274, 275, 278, 281, 285, 288, 292, 483, + 501, 511, 517, 524, 532, 538, 544, 551, 559, 565, + 573, 578, 582, 591, 593, 594, 595, 596, 599, 601, + 604, 639, 678, 732, 749, 767, 778, 797, 811, 828, + 854, 881, 895, 912, 926, 943, 963, 986, 996, 1010, + 1015, 1023, 1025, 1047, 1070, 1086, 1093, 1115, 1133, 1151, + 1169, 1195, 1213, 1239, 1259, 1283, 1307, 1333, 1350, 1357, + 1376, 1394, 1435, 1458, 1474, 1494, 1511, 1528, 1548, 1554, + 1559, 1564, 1571, 1573, 1574, 1577, 1582, 1586, 1602, 1618, + 1634, 1654, 1669, 1675, 1681, 1692, 1702, 1712, 1728, 1746, + 1760, 1767, 1773, 1782, 1795, 1841, 1856, 1867, 1887, 1897, + 1919, 1923, 1928, 1933, 1943, 1960, 1976, 2002, 2029, 2061, + 2068, 2073, 2079, 2083, 2091, 2100, 2108, 2116, 2121, 2129, + 2134, 2142, 2147, 2157, 2164, 2171, 2178, 2185, 2192, 2199, + 2206, 2213, 2220, 2225, 2232, 2237, 2244, 2249, 2256, 2261, + 2268, 2273, 2280, 2285, 2292, 2297, 2304, 2309, 2316, 2321, + 2331, 2335, 2340, 2350, 2372, 2396, 2404, 2423, 2441, 2459, + 2488, 2523, 2528, 2555, 2569, 2587, 2594, 2600, 2603, 2611, + 2621, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2637, + 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, + 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, + 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, + 2668, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, + 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, + 2689, 2690, 2695, 2700, 2701, 2702, 2703, 2704, 2705, 2709, + 2725, 2740, 2760, 2774, 2787, 2810, 2828, 2846, 2864, 2882, + 2889, 2894, 2898, 2902, 2906, 2912, 2917, 2921, 2925, 2931, + 2937, 2944, 2950, 2954, 2959, 2963, 2974, 2981, 2992, 3012, + 3022, 3032, 3042, 3059, 3078, 3102, 3130, 3136, 3140, 3144, + 3156, 3161, 3173, 3180, 3201, 3206, 3220, 3226, 3232, 3237, + 3245, 3253, 3267, 3281, 3285, 3304, 3326 }; #endif @@ -544,21 +548,21 @@ static const char * const yytname[] = { "$","error","$undefined.","tDOUBLE", "tLog","tLog10","tSqrt","tSin","tAsin","tCos","tAcos","tTan","tRand","tAtan", "tAtan2","tSinh","tCosh","tTanh","tFabs","tFloor","tCeil","tFmod","tModulo", "tHypot","tPrintf","tSprintf","tStrCat","tStrPrefix","tStrRelative","tBoundingBox", -"tDraw","tToday","tPoint","tCircle","tEllipse","tLine","tSurface","tSpline", -"tVolume","tCharacteristic","tLength","tParametric","tElliptic","tPlane","tRuled", -"tTransfinite","tComplex","tPhysical","tUsing","tBump","tProgression","tPlugin", -"tRotate","tTranslate","tSymmetry","tDilate","tExtrude","tDuplicata","tLoop", -"tRecombine","tDelete","tCoherence","tAttractor","tLayers","tAlias","tAliasWithOptions", -"tText2D","tText3D","tInterpolationScheme","tTime","tGrain","tCombine","tBSpline", -"tBezier","tNurbs","tOrder","tKnots","tColor","tColorTable","tFor","tIn","tEndFor", -"tIf","tEndIf","tExit","tReturn","tCall","tFunction","tShow","tHide","tGetValue", -"tGMSH_MAJOR_VERSION","tGMSH_MINOR_VERSION","tGMSH_PATCH_VERSION","tAFFECTPLUS", -"tAFFECTMINUS","tAFFECTTIMES","tAFFECTDIVIDE","'?'","tOR","tAND","tEQUAL","tNOTEQUAL", -"'<'","tLESSOREQUAL","'>'","tGREATEROREQUAL","'+'","'-'","'*'","'/'","'%'","'!'", -"tPLUSPLUS","tMINUSMINUS","UNARYPREC","'^'","'('","')'","'['","']'","'.'","'#'", -"','","'{'","'}'","'~'","All","GeoFormatItems","GeoFormatItem","SendToFile", -"Printf","View","Views","ElementCoords","ElementValues","Element","@1","@2", -"Text2DValues","Text2D","@3","Text3DValues","Text3D","@4","InterpolationMatrix", +"tDraw","tToday","tPoint","tCircle","tEllipse","tLine","tSphere","tSurface", +"tSpline","tVolume","tCharacteristic","tLength","tParametric","tElliptic","tPlane", +"tRuled","tTransfinite","tComplex","tPhysical","tUsing","tBump","tProgression", +"tPlugin","tRotate","tTranslate","tSymmetry","tDilate","tExtrude","tDuplicata", +"tLoop","tRecombine","tDelete","tCoherence","tAttractor","tLayers","tAlias", +"tAliasWithOptions","tText2D","tText3D","tInterpolationScheme","tTime","tGrain", +"tCombine","tBSpline","tBezier","tNurbs","tOrder","tKnots","tColor","tColorTable", +"tFor","tIn","tEndFor","tIf","tEndIf","tExit","tReturn","tCall","tFunction", +"tShow","tHide","tGetValue","tGMSH_MAJOR_VERSION","tGMSH_MINOR_VERSION","tGMSH_PATCH_VERSION", +"tAFFECTPLUS","tAFFECTMINUS","tAFFECTTIMES","tAFFECTDIVIDE","'?'","tOR","tAND", +"tEQUAL","tNOTEQUAL","'<'","tLESSOREQUAL","'>'","tGREATEROREQUAL","'+'","'-'", +"'*'","'/'","'%'","'!'","tPLUSPLUS","tMINUSMINUS","UNARYPREC","'^'","'('","')'", +"'['","']'","'.'","'#'","','","'{'","'}'","'~'","All","GeoFormatItems","GeoFormatItem", +"SendToFile","Printf","View","Views","ElementCoords","ElementValues","Element", +"@1","@2","Text2DValues","Text2D","@3","Text3DValues","Text3D","@4","InterpolationMatrix", "Time","@5","Grain","NumericAffectation","NumericIncrement","Affectation","PhysicalId", "Shape","Transform","MultipleShape","ListOfShapes","Duplicata","Delete","Colorify", "Visibility","Command","Loop","Extrude","@6","@7","@8","@9","@10","@11","@12", @@ -570,40 +574,40 @@ static const char * const yytname[] = { "$","error","$undefined.","tDOUBLE", #endif static const short yyr1[] = { 0, - 136, 136, 137, 137, 138, 138, 138, 138, 138, 138, - 138, 138, 138, 138, 138, 138, 138, 138, 138, 139, - 139, 140, 140, 140, 140, 141, 141, 142, 142, 142, - 142, 142, 142, 142, 143, 143, 144, 144, 146, 147, - 145, 148, 148, 150, 149, 151, 151, 153, 152, 154, - 156, 155, 157, 158, 158, 158, 158, 158, 159, 159, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 161, - 161, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 163, 163, 163, 163, 164, - 164, 164, 165, 165, 165, 165, 165, 165, 166, 166, - 166, 166, 167, 167, 167, 167, 168, 169, 169, 169, - 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 172, 172, 172, 173, 172, 174, 172, 175, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 176, - 172, 177, 172, 178, 172, 179, 172, 180, 172, 181, - 172, 182, 172, 183, 172, 184, 172, 185, 185, 186, - 186, 186, 186, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 188, 188, 188, 188, 189, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 191, + 137, 137, 138, 138, 139, 139, 139, 139, 139, 139, + 139, 139, 139, 139, 139, 139, 139, 139, 139, 140, + 140, 141, 141, 141, 141, 142, 142, 143, 143, 143, + 143, 143, 143, 143, 144, 144, 145, 145, 147, 148, + 146, 149, 149, 151, 150, 152, 152, 154, 153, 155, + 157, 156, 158, 159, 159, 159, 159, 159, 160, 160, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 162, + 162, -1, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 164, 164, + 164, 164, 165, 165, 165, 166, 166, 166, 166, 166, + 166, 167, 167, 167, 167, 168, 168, 168, 168, 169, + 170, 170, 170, 170, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 173, 173, 173, 174, 173, 175, + 173, 176, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 177, 173, 178, 173, 179, 173, 180, 173, + 181, 173, 182, 173, 183, 173, 184, 173, 185, 173, + 186, 186, 187, 187, 187, 187, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 189, 189, 189, 189, 190, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 192, 192, 192, - 192, 192, 193, 193, 193, 193, 194, 194, 195, 195, - 195, 195, 195, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 197, 197, 197, 197, 198, 198, 198, - 198, 199, 199, 200, 200, 201, 201, 201, 201, 201, - 201, 201, 201, 201 + 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, + 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, + 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, + 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, + 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, + 191, 191, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 193, 193, 193, 193, 193, 194, 194, 194, 194, 195, + 195, 196, 196, 196, 196, 196, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 198, 198, 198, 198, + 199, 199, 199, 199, 200, 200, 201, 201, 202, 202, + 202, 202, 202, 202, 202, 202, 202 }; static const short yyr2[] = { 0, @@ -615,32 +619,32 @@ static const short yyr2[] = { 0, 0, 6, 6, 1, 1, 1, 1, 1, 1, 1, 4, 7, 9, 6, 6, 3, 6, 6, 9, 6, 9, 5, 8, 8, 11, 6, 9, 9, 9, 1, - 1, 7, 8, 12, 6, 7, 7, 7, 9, 7, - 9, 17, 7, 7, 11, 8, 12, 8, 8, 8, - 8, 8, 8, 7, 8, 5, 11, 5, 9, 1, - 1, 1, 0, 2, 6, 6, 6, 6, 4, 6, - 6, 6, 4, 6, 3, 4, 5, 3, 3, 4, - 4, 3, 7, 7, 3, 7, 3, 2, 2, 15, - 2, 6, 8, 8, 10, 1, 2, 1, 3, 4, - 1, 5, 11, 13, 0, 7, 0, 13, 0, 15, - 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, 6, 9, 9, 8, 9, 8, 8, - 6, 4, 6, 6, 6, 6, 2, 1, 3, 2, - 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 5, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 6, 4, 4, - 4, 4, 4, 4, 6, 6, 6, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 6, 4, - 4, 4, 4, 4, 4, 6, 6, 6, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 5, 4, 4, - 2, 5, 3, 6, 4, 7, 6, 1, 2, 2, - 3, 3, 11, 9, 7, 7, 1, 3, 1, 1, - 2, 3, 4, 3, 5, 4, 1, 1, 1, 3, - 4, 6, 7, 1, 1, 3, 3, 9, 7, 1, - 5, 3, 6, 1, 3, 1, 1, 6, 4, 4, - 4, 6, 6, 9 + 1, 0, 7, 12, 8, 12, 6, 7, 7, 7, + 9, 7, 9, 17, 7, 7, 11, 8, 12, 8, + 8, 8, 7, 8, 8, 8, 7, 8, 5, 11, + 5, 9, 1, 1, 1, 0, 2, 6, 6, 6, + 6, 4, 6, 6, 6, 4, 6, 3, 4, 5, + 3, 3, 4, 4, 3, 7, 7, 3, 7, 3, + 2, 2, 15, 2, 6, 8, 8, 10, 1, 2, + 1, 3, 4, 1, 5, 11, 13, 0, 7, 0, + 13, 0, 15, 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, 6, 9, 9, 8, + 9, 8, 8, 6, 4, 6, 6, 6, 6, 2, + 1, 3, 2, 2, 2, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 6, 4, 4, 4, 4, 4, 4, 6, 6, 6, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 6, 4, 4, 4, 4, 4, 4, 6, 6, + 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, + 5, 4, 4, 2, 5, 3, 6, 4, 7, 6, + 1, 2, 2, 3, 3, 11, 9, 7, 7, 1, + 3, 1, 1, 2, 3, 4, 3, 5, 4, 1, + 1, 1, 3, 4, 6, 7, 1, 1, 3, 3, + 9, 7, 1, 5, 3, 6, 1, 3, 1, 1, + 6, 4, 4, 4, 6, 6, 9 }; static const short yydefact[] = { 0, @@ -648,1531 +652,1549 @@ static const short yydefact[] = { 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, 146, 0, 151, 0, 148, 0, 0, 0, 0, - 4, 6, 5, 7, 8, 9, 10, 11, 12, 13, - 19, 18, 14, 15, 16, 17, 270, 277, 326, 54, - 271, 272, 273, 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, 327, 0, - 274, 275, 276, 55, 56, 57, 58, 0, 0, 0, - 59, 60, 0, 0, 0, 0, 0, 0, 0, 208, - 0, 0, 139, 0, 141, 277, 0, 0, 0, 0, - 307, 308, 309, 299, 0, 300, 0, 0, 0, 0, + 0, 0, 149, 0, 154, 0, 151, 0, 0, 0, + 0, 4, 6, 5, 7, 8, 9, 10, 11, 12, + 13, 19, 18, 14, 15, 16, 17, 273, 280, 329, + 54, 274, 275, 276, 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, 330, + 0, 277, 278, 279, 55, 56, 57, 58, 0, 0, + 0, 59, 60, 0, 0, 0, 0, 0, 0, 0, + 211, 0, 0, 142, 0, 144, 280, 0, 0, 0, + 0, 310, 311, 312, 302, 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 288, 0, 0, 0, 0, - 0, 0, 0, 0, 113, 0, 0, 113, 207, 0, - 0, 0, 0, 0, 0, 0, 0, 320, 0, 0, - 0, 0, 0, 138, 0, 147, 326, 113, 0, 113, - 0, 0, 0, 0, 0, 281, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 291, 0, 0, + 0, 0, 0, 0, 0, 0, 116, 0, 0, 116, + 210, 0, 0, 0, 0, 0, 0, 0, 0, 323, + 0, 0, 0, 0, 0, 141, 0, 150, 329, 116, + 0, 116, 0, 0, 0, 0, 0, 284, 0, 28, 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, 277, 211, 210, 212, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 132, 0, 0, 0, 0, - 277, 0, 0, 0, 301, 314, 315, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 280, 214, 213, + 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 138, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 135, 0, 0, + 0, 0, 280, 0, 0, 0, 304, 317, 318, 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, 290, 289, 0, 0, 0, 0, - 113, 113, 0, 0, 0, 0, 0, 0, 0, 0, - 113, 0, 0, 0, 0, 125, 0, 0, 0, 0, - 0, 0, 137, 0, 0, 0, 0, 0, 113, 0, - 0, 0, 149, 0, 128, 0, 129, 0, 0, 283, + 0, 0, 0, 0, 0, 0, 0, 293, 292, 0, + 0, 0, 0, 116, 116, 0, 0, 0, 0, 0, + 0, 0, 0, 116, 0, 0, 0, 0, 128, 0, + 0, 0, 0, 0, 0, 140, 0, 0, 0, 0, + 0, 116, 0, 0, 0, 152, 0, 131, 0, 132, + 0, 0, 286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 212, 0, 0, 0, 0, + 54, 0, 0, 0, 0, 0, 61, 0, 229, 228, + 226, 227, 222, 224, 223, 225, 217, 216, 218, 219, + 220, 221, 0, 0, 0, 313, 0, 0, 0, 0, + 0, 212, 0, 305, 307, 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 209, 0, 0, 0, 0, 54, 0, 0, - 0, 0, 0, 61, 0, 226, 225, 223, 224, 219, - 221, 220, 222, 214, 213, 215, 216, 217, 218, 0, - 0, 0, 310, 0, 0, 0, 0, 0, 209, 0, - 302, 304, 0, 0, 0, 0, 209, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 80, 81, 0, + 0, 0, 0, 0, 0, 0, 295, 294, 115, 0, + 114, 113, 0, 0, 0, 0, 0, 0, 0, 158, + 0, 0, 0, 0, 0, 122, 117, 205, 0, 129, + 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 153, 133, 134, 0, 282, 288, + 0, 28, 39, 0, 0, 0, 51, 0, 0, 29, + 30, 31, 32, 33, 34, 231, 252, 232, 253, 233, + 254, 234, 255, 235, 256, 236, 257, 237, 258, 238, + 259, 239, 260, 251, 272, 240, 261, 0, 0, 242, + 263, 243, 264, 244, 265, 245, 266, 246, 267, 247, + 268, 0, 0, 0, 0, 0, 0, 0, 0, 334, + 0, 0, 332, 333, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 72, 0, 0, 0, 0, 283, 0, + 22, 20, 0, 0, 0, 0, 282, 309, 314, 0, + 306, 0, 0, 319, 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 80, 81, 0, 0, 0, 0, 0, - 0, 0, 292, 291, 112, 0, 111, 110, 0, 0, - 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, - 0, 119, 114, 202, 0, 126, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 150, 130, 131, 0, 279, 285, 0, 28, 39, 0, - 0, 0, 51, 0, 0, 29, 30, 31, 32, 33, - 34, 228, 249, 229, 250, 230, 251, 231, 252, 232, - 253, 233, 254, 234, 255, 235, 256, 236, 257, 248, - 269, 237, 258, 0, 0, 239, 260, 240, 261, 241, - 262, 242, 263, 243, 264, 244, 265, 0, 0, 0, - 0, 0, 0, 0, 0, 331, 0, 0, 329, 330, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, - 0, 0, 0, 0, 280, 0, 22, 20, 0, 0, - 0, 0, 279, 306, 311, 0, 303, 0, 316, 317, + 0, 0, 0, 0, 0, 109, 111, 0, 0, 0, + 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 130, 0, 0, 0, 0, 285, 0, 281, + 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, - 108, 0, 0, 0, 0, 0, 152, 0, 0, 0, + 0, 64, 65, 0, 0, 0, 0, 0, 67, 68, + 70, 0, 0, 327, 0, 76, 230, 21, 0, 0, + 0, 0, 0, 0, 0, 308, 206, 0, 0, 0, + 0, 207, 208, 0, 0, 209, 0, 0, 87, 0, + 0, 0, 0, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, - 0, 282, 0, 278, 0, 0, 0, 0, 0, 0, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 64, 65, 0, 0, 0, - 0, 0, 67, 68, 70, 0, 0, 324, 0, 76, - 227, 21, 0, 0, 0, 0, 0, 0, 305, 203, - 0, 0, 0, 0, 204, 205, 0, 206, 0, 0, - 85, 0, 0, 0, 0, 194, 0, 0, 0, 0, + 0, 0, 0, 0, 191, 123, 0, 0, 0, 0, + 0, 0, 204, 127, 0, 0, 124, 125, 0, 0, + 0, 324, 0, 0, 0, 145, 137, 287, 136, 0, + 0, 0, 0, 0, 300, 0, 0, 241, 262, 248, + 269, 249, 270, 250, 271, 0, 336, 335, 331, 290, + 0, 54, 0, 0, 0, 0, 62, 0, 0, 0, + 325, 23, 24, 0, 0, 315, 0, 83, 0, 90, + 0, 92, 0, 0, 88, 103, 0, 89, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 188, 120, 0, 0, - 0, 0, 0, 0, 201, 124, 0, 0, 121, 122, - 0, 0, 0, 321, 0, 0, 0, 142, 134, 284, - 133, 0, 0, 0, 0, 0, 297, 0, 0, 238, - 259, 245, 266, 246, 267, 247, 268, 0, 333, 332, - 328, 287, 0, 54, 0, 0, 0, 0, 62, 0, - 0, 0, 322, 23, 24, 0, 0, 312, 0, 82, - 88, 0, 90, 0, 0, 86, 0, 87, 104, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 136, 0, 0, 0, 0, 113, 0, 170, - 0, 172, 0, 174, 0, 0, 193, 0, 156, 189, - 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, - 0, 0, 0, 0, 286, 27, 0, 35, 0, 0, + 0, 0, 139, 0, 0, 0, 0, 116, 0, 173, + 0, 175, 0, 177, 0, 0, 196, 0, 159, 192, + 0, 0, 0, 0, 0, 0, 0, 0, 95, 96, + 0, 0, 0, 0, 289, 27, 0, 35, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 73, - 0, 0, 74, 0, 325, 0, 0, 313, 0, 0, - 96, 101, 0, 199, 99, 100, 0, 0, 0, 197, - 200, 103, 83, 98, 102, 105, 0, 0, 0, 296, - 0, 295, 0, 0, 161, 0, 0, 162, 0, 0, - 163, 0, 0, 0, 299, 0, 115, 116, 117, 118, - 0, 0, 0, 0, 319, 0, 144, 143, 40, 0, - 0, 0, 298, 0, 0, 0, 0, 0, 63, 69, - 71, 0, 77, 0, 25, 0, 89, 91, 0, 196, - 195, 198, 78, 79, 113, 0, 109, 0, 0, 0, - 0, 0, 0, 113, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 36, 0, 0, 0, 38, 52, 53, - 334, 0, 323, 0, 0, 0, 0, 294, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 157, 0, 190, - 0, 0, 0, 0, 318, 145, 0, 0, 0, 0, - 75, 0, 0, 107, 0, 176, 0, 0, 178, 0, - 0, 180, 0, 0, 153, 0, 113, 0, 0, 0, - 0, 95, 0, 44, 0, 50, 0, 0, 293, 164, - 0, 0, 171, 165, 0, 0, 173, 166, 0, 0, - 175, 0, 159, 0, 191, 84, 97, 0, 0, 0, - 0, 0, 0, 182, 0, 184, 0, 186, 158, 154, - 0, 0, 41, 0, 48, 0, 0, 0, 167, 0, - 0, 168, 0, 0, 169, 0, 0, 192, 0, 42, - 0, 140, 0, 0, 0, 0, 0, 0, 0, 160, - 0, 0, 0, 0, 177, 0, 179, 0, 181, 0, - 43, 45, 0, 46, 92, 0, 0, 0, 0, 0, - 183, 185, 187, 47, 49, 0, 0, 0 + 0, 0, 74, 0, 328, 0, 0, 316, 0, 0, + 0, 98, 104, 0, 202, 101, 102, 0, 0, 0, + 200, 203, 106, 85, 100, 105, 108, 0, 0, 0, + 299, 0, 298, 0, 0, 164, 0, 0, 165, 0, + 0, 166, 0, 0, 0, 302, 0, 118, 119, 120, + 121, 0, 0, 0, 0, 322, 0, 147, 146, 40, + 0, 0, 0, 301, 0, 0, 0, 0, 0, 63, + 69, 71, 0, 77, 0, 25, 0, 0, 91, 93, + 0, 199, 198, 201, 78, 79, 116, 0, 112, 0, + 0, 0, 0, 0, 0, 116, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 36, 0, 0, 0, 38, + 52, 53, 337, 0, 326, 0, 0, 0, 0, 0, + 297, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 160, 0, 193, 0, 0, 0, 0, 321, 148, 0, + 0, 0, 0, 75, 0, 0, 0, 110, 0, 179, + 0, 0, 181, 0, 0, 183, 0, 0, 156, 0, + 116, 0, 0, 0, 0, 97, 0, 44, 0, 50, + 0, 84, 0, 296, 167, 0, 0, 174, 168, 0, + 0, 176, 169, 0, 0, 178, 0, 162, 0, 194, + 86, 99, 0, 0, 0, 0, 0, 0, 185, 0, + 187, 0, 189, 161, 157, 0, 0, 41, 0, 48, + 0, 0, 0, 170, 0, 0, 171, 0, 0, 172, + 0, 0, 195, 0, 42, 0, 143, 0, 0, 0, + 0, 0, 0, 0, 163, 0, 0, 0, 0, 180, + 0, 182, 0, 184, 0, 43, 45, 0, 46, 94, + 0, 0, 0, 0, 0, 186, 188, 190, 47, 49, + 0, 0, 0 }; -static const short yydefgoto[] = { 1166, - 2, 51, 619, 52, 53, 373, 897, 903, 546, 696, - 1013, 1129, 547, 1099, 1153, 548, 1131, 549, 550, 700, - 551, 117, 206, 54, 483, 513, 131, 496, 497, 132, - 58, 59, 60, 61, 62, 133, 668, 1066, 1111, 946, - 949, 952, 1081, 1085, 1089, 1120, 1123, 1126, 776, 777, - 64, 65, 66, 134, 120, 325, 166, 806, 807, 136, - 298, 190, 614, 729, 485 +static const short yydefgoto[] = { 1181, + 2, 52, 623, 53, 54, 376, 907, 913, 550, 702, + 1025, 1144, 551, 1114, 1168, 552, 1146, 553, 554, 706, + 555, 118, 208, 55, 487, 517, 132, 500, 501, 133, + 59, 60, 61, 62, 63, 134, 674, 1080, 1126, 957, + 960, 963, 1096, 1100, 1104, 1135, 1138, 1141, 784, 785, + 65, 66, 67, 135, 121, 328, 168, 814, 815, 137, + 300, 192, 618, 735, 489 }; -static const short yypact[] = { 2694, - 42, 2762,-32768, 2088, -55, 5, 71, 1547, -37, -29, - 1297, 1422, -23, -15, 90, -9, -27, 81, 102, 405, - 158, 558, 97, 118, 93, 93, 169, 325, 12, 182, - 16, 304, 190, 305, 336, 344, 203, 225, 232, 17, - 10,-32768, 241,-32768, 380,-32768, 364, 372, 25, 59, +static const short yypact[] = { 2759, + 31, 2828,-32768, 2112, -101, 10, 42, 1567, -56, -8, + 1315, 72, 1441, 93, 103, 91, 112, 116, 167, 196, + 521, 98, 546, 120, 123, 114, 114, 169, 266, 6, + 296, 8, 355, 56, 391, 398, 408, 258, 271, 297, + 13, 29,-32768, 317,-32768, 429,-32768, 453, 457, 20, + 27,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 2, 17, +-32768,-32768,-32768,-32768, -50, -42, 129, 190, 224, 289, + 325, 384, 404, 420, 428, 449, 464, 487, 502, 503, + 508, 511, 522, 526, 529, 346, 349, 366, 389,-32768, + 392,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 2318, 2318, + 2318,-32768,-32768, 2318, 678, 15, 478, 2318, 495, 1284, +-32768, 516, 533,-32768, 2318,-32768, 394, 407, 1951, 2318, + 1178,-32768,-32768,-32768, 1502, 436,-32768, 2318, 2318, 425, + 2318, 523, 2318, 458, 535, 2318, 2318, 1693, 2318, 505, + 525, 530, 1693, 514, 543, 534, 544, 556, 557, 597, + 727, 114, 114, 114, 2318, 2318, -82,-32768, 66, 114, + 598, 601, 616, 1986, 308, 622,-32768, 1693, 16,-32768, +-32768, 1693, 1693, 630, 647, 765, 2318, 2318, 2318, 653, + 2318, 652, 697, 2318, 2318,-32768, 783,-32768,-32768,-32768, + 785,-32768, 786, 664, 2318, 790, 663,-32768, 114,-32768, + 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, + 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, + 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, + 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, + 2318, 2318, 371, 435, 435, 435, 793, 427, 673, 673, + 673, 5244, 23, 2158, 4531, 332, 670, 795, 674, 1413, +-32768,-32768, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, + 2318, 2318, 2318, 2318, 2318, 2318, 2318,-32768, -5, 3673, + 1760, 2318, 450, 2158, 5265, 2443,-32768, 1502,-32768, -3, + 2318, 758, 5286, 5307, 2318, 5328, 109, 5349, 2318, 759, + 5370, 5391, 799, 5412, 2318, 2318, 2318, 804, 2318, 2318, + 2318, 2283, 2283, 2283, 2283, 694, -74,-32768,-32768, 3699, + 3725, 114, 114, 559, 559, -67, 2318, 2318, 2318, 1986, + 1986, 2318, -44,-32768, 2318, 949, 92, 821,-32768, 2318, + 2887, 822, 824, 2318, 2318,-32768, 5433, 5454, 5475, 745, + 3751,-32768, 701, 1627, 5496,-32768, 2904,-32768, 2948,-32768, + 2318, 4554, 341, 2318, 316, 4, 5517, 4577, 5538, 4600, + 5559, 4623, 5580, 4646, 5601, 4669, 5622, 4692, 5643, 4715, + 5664, 4738, 5685, 4761, 5706, 4784, 5727, 4807, 3777, 3803, + 5748, 4830, 5769, 4853, 5790, 4876, 5811, 4899, 5832, 4922, + 5853, 4945, 3829, 3855, 3881, 3907, 3933, 3959, 284, 58, + 703, 709, 710, 706, 2318,-32768, 1693, 1693, 527, 122, + 435, 2318, 835, 838, 19, 715,-32768, 2598, 489, 813, + 700, 700, 547, 547, 547, 547, 451, 451, 673, 673, + 673, 673, 22, 2158, 2318,-32768, 2158, 4968, 1249, 1819, + 537, 24, 2158,-32768, 2617, 2318, 839, 840, 5874, 841, + 2318, 2318, 842, 5895, 2318, 843, 844, 2318, 848, 3025, + 5916, 5937, 2318, 3115, 3143, 5958, 728, 6252,-32768, 729, + 730, 731, 732, 114, 2318, 2318,-32768,-32768,-32768, 733, + 1059,-32768, 734, 2318, 3985, 4011, 4037, 3647, 114, 2970, + 4991, -58, -26, -19, 39,-32768,-32768,-32768, 2318,-32768, + 5014,-32768, 737, 738, 5037, 5060, 855, 857, 859, 736, + 2318, 3014, 2318, 2318,-32768,-32768,-32768, 5083, 70,-32768, + 3171,-32768,-32768, 746, 747, 741,-32768, 749, 871,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 0, 21,-32768, --32768,-32768,-32768, 51, 63, 92, 175, 208, 245, 263, - 362, 370, 401, 449, 463, 486, 498, 515, 535, 542, - 619, 620, 638, 639, 275, 286, 287, 300,-32768, 313, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 2293, 2293, 2293, --32768,-32768, 2293, 672, 20, 443, 2293, 447, 1015,-32768, - 487, 494,-32768, 2293,-32768, 434, 369, 1928, 2293, 1161, --32768,-32768,-32768, 1482, 416,-32768, 2293, 2293, 383, 2293, - 424, 392, 439, 2293, 2293, 1672, 2293, 390, 406, 407, - 1672, 403, 408, 428, 437, 440, 441, 445, 546, 93, - 93, 93, 2293, 2293, 303,-32768, 391, 93, 476, 477, - 495, 1963, 404, 452,-32768, 1672, 37,-32768,-32768, 1672, - 1672, 491, 492, 621, 2293, 2293, 2293, 518, 2293, 519, - 571, 2293, 2293,-32768, 658,-32768,-32768,-32768, 661,-32768, - 674, 544, 2293, 701, 573,-32768, 93,-32768, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 511, 433, 433, 433, 706, 662, 598, 598, 598, 5213, - 24, 2134, 4500, 293, 608, 732, 615, 1130,-32768,-32768, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293,-32768, -105, 3642, 1738, 2293, - 684, 2134, 5234, 2417,-32768, 1482,-32768, 647, 2293, 705, - 5255, 5276, 2293, 5297, 86, 2293, 722, 5318, 5339, 773, - 5360, 2293, 2293, 2293, 776, 2293, 2293, 2293, 2258, 2258, - 2258, 2258, 659, 339,-32768,-32768, 3668, 3694, 93, 93, - 646, 646, 423, 2293, 2293, 2293, 1963, 1963, 2293, 436, --32768, 2293, 2820, 163, 785,-32768, 2293, 2837, 792, 797, - 2293, 2293,-32768, 5381, 5402, 5423, 731, 3720,-32768, 675, - 1607, 5444,-32768, 2880,-32768, 2897,-32768, 2293, 4523, 117, - 2293, 409, 3, 5465, 4546, 5486, 4569, 5507, 4592, 5528, - 4615, 5549, 4638, 5570, 4661, 5591, 4684, 5612, 4707, 5633, - 4730, 5654, 4753, 5675, 4776, 3746, 3772, 5696, 4799, 5717, - 4822, 5738, 4845, 5759, 4868, 5780, 4891, 5801, 4914, 3798, - 3824, 3850, 3876, 3902, 3928, 666, -99, 686, 694, 751, - 717, 2293,-32768, 1672, 1672, 668, 94, 433, 2293, 859, - 862, 22, 752,-32768, 2534, 643, 798, 910, 910, 708, - 708, 708, 708, 657, 657, 598, 598, 598, 598, 11, - 2134, 2293,-32768, 2134, 4937, 1232, 1797, 681, 873, 2134, --32768, 2553, 2293, 875, 877, 5822, 879, 2293, 2293, 5843, - 2293, 881, 882, 2293, 883, 3056, 5864, 5885, 2293, 3084, - 3112, 5906, 764, 6179,-32768, 765, 766, 768, 769, 93, - 2293, 2293,-32768,-32768,-32768, 762, 540,-32768, 767, 2293, - 3954, 3980, 4006, 3616, 93, 2940, 4960, -76, -35, -31, - -18,-32768,-32768,-32768, 2293,-32768, 4983,-32768, 770, 772, - 5006, 5029, 893, 895, 899, 789, 2293, 2957, 2293, 2293, --32768,-32768,-32768, 5052, 18,-32768, 3140,-32768,-32768, 794, - 796, 791,-32768, 799, 920,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 2318, 2318,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 2293, 2293,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 923,-32768, 2134, 433,-32768,-32768, - 2293, 922, 926, 800, 34, 2293, 927, 928, 1265,-32768, - 929, 807, 17, 931,-32768, 2293,-32768, 824, 433, -60, - 4032, 697, -54,-32768,-32768, 2134,-32768, 93, 1482,-32768, - 2293, 1394, 1672, 1672, 932, 1672, 1519, 1769, 933, 1889, - 1672, 1672, 2219, 808, 951, 952, 954, 837, 956, 957, - 958, 960, 975, 976, 978, 983, 444, 4058, 4084,-32768, --32768, 3168, 93, 93, 93, 481,-32768, 91, 984, 2293, - 2134, 2293, 2134, 2134, 2134, 2343, 985, 2293, 2293, 986, - 987, 1672, 1672, 1672, 991, 4110,-32768, 2572, 861, 990, - 994,-32768, 993,-32768, 9, 863, 2293, 2293, 1672, 867, - 2293,-32768, 5927, 5075, 5948, 5098, 5969, 5121, 5990, 5144, - 5167, 874, -8, 876, 6011,-32768,-32768, 98, 299, 878, - 997, 2362,-32768,-32768,-32768, 17, 2293,-32768, 702,-32768, - 6179,-32768, 999, 50, 2293, 886, 703, 45, 6179,-32768, - 23, 38, 1672, 1000,-32768,-32768, 1672,-32768, 1004, 1005, --32768, 2293, 1672, 1672, 1672,-32768, 185, 1672, 1672, 1672, - 1672, 1672, 1672, 1672, 291, 2293, 2293, 2293, 884, 179, - 301, 329, 1963, 1013, 887, -2,-32768,-32768, 6032, 710, - 6053, 713, 716, 720,-32768,-32768, 4136, 4162,-32768,-32768, - 1027, 1030, 953,-32768, 2293, 2293, 2293,-32768,-32768, 117, --32768, 1031, 2293, 4188, 4214, 721,-32768, 2293, 6074,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 912,-32768,-32768, --32768,-32768, 1672, 433, 2293, 1038, 1042, 22,-32768, 1041, - 5190, 17,-32768,-32768,-32768, 433, 4240,-32768, 919,-32768, --32768, 93,-32768, 93, 1043,-32768, 1044,-32768,-32768, 4266, - 1048, 1049, 1050, 2293, 2293, 853, 1051, 1054, 1055, 1056, - 1057, 1058,-32768, 2258, 3196, 6095, 2592, 646, 93, 1059, - 93, 1060, 93, 1062, 3224, 484,-32768, 1672,-32768,-32768, - 873, 1063, 879, 1065, 1066, 1067, 2293, 2293,-32768,-32768, - 1672, 2994, 367, 6116,-32768,-32768, 2, 6179, 2293, 2293, - 1672, 941, 729, 6179, 1672, 1071, 1070, 1072, 2381,-32768, - 1076, 1073,-32768, 947,-32768, 1078, 2293,-32768, 68, 77, --32768,-32768, 2293,-32768,-32768,-32768, 2458, 2477, 1079,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 2496, 1080, 955,-32768, - 2293,-32768, 959, 513,-32768, 961, 522,-32768, 962, 530, --32768, 963, 964, 2293, 617, 966,-32768,-32768,-32768,-32768, - 4292, 4318, 1003, 2293,-32768, 2293,-32768,-32768,-32768, 2293, - 4344, 4370,-32768, 1672, 2293, 1083, 1085, 965,-32768,-32768, --32768, 17,-32768, 1012,-32768, 4396,-32768,-32768, 4422,-32768, --32768,-32768,-32768,-32768, 646, 3028,-32768, 1963, 91, 1963, - 91, 1963, 91,-32768, 3252, 1095, 1672, 2293, 2293, 2293, - 3280, 3308, 969, 6179, 2293, 2293, 730, 6179,-32768,-32768, --32768, 1098,-32768, 2293, 1100, 973, 2293,-32768, 3336, 534, - 32, 3364, 539, 41, 3392, 541, 165, 3000, 979,-32768, - 738, 3420, 3448, 2515,-32768,-32768, 2293, 6137, 4448, 1102, --32768, 4474, 977,-32768, 3476, 1105, 2293, 1107, 1108, 2293, - 1109, 1110, 2293, 1111,-32768, 91,-32768, 1672, 1113, 1115, - 1132,-32768, 739,-32768, 2293,-32768, 2293, 1137,-32768,-32768, - 1010, 3504,-32768,-32768, 1011, 3532,-32768,-32768, 1014, 3560, --32768, 170, 3017, 1016,-32768,-32768,-32768, 1140, 1021, 6158, - 3588, 1017, 91, 1142, 91, 1157, 91, 1160,-32768,-32768, - 91, 1162,-32768, 433,-32768, 1163, 1189, 173,-32768, 1034, - 240,-32768, 1064, 273,-32768, 1068, 320,-32768, 742,-32768, - 1074,-32768, 1061, 1190, 91, 1192, 91, 1193, 91,-32768, - 433, 1194, 433, 1197,-32768, 355,-32768, 357,-32768, 376, --32768,-32768, 745,-32768,-32768, 1198, 1199, 1200, 433, 1202, --32768,-32768,-32768,-32768,-32768, 1209, 1210,-32768 +-32768, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 874,-32768, + 2158, 435,-32768,-32768, 2318, 873, 877, 750, 34, 2318, + 878, 879, 1539,-32768, 880, 757, 13, 882,-32768, 2318, +-32768, 774, 435, 69, 4063, 541, 405,-32768,-32768, 2158, +-32768, 114, 845, 1502,-32768, 2318, 1791, 1693, 1693, 885, + 1693, 1912, 2243, 1693, 886, 2368, 1693, 1693, 2387, 760, + 888, 889, 890, 1113, 892, 893, 894, 895, 896, 897, + 898, 902, -22, 4089, 4115,-32768,-32768, 3199, 114, 114, + 114, 329,-32768, 245, 901, 2318, 2158, 2318, 2158, 2158, + 2158, 2406, 903, 2318, 2318, 904, 906, 1693, 1693, 1693, + 911, 4141,-32768, 2636, 1147, 910, 913,-32768, 912,-32768, + 14, 792, 2318, 2318, 1693, 787, 2318,-32768, 5979, 5106, + 6000, 5129, 6021, 5152, 6042, 5175, 5198, 794, 176, 807, + 6063,-32768,-32768, 105, 373, 789, 929, 2484,-32768,-32768, +-32768, 13, 2318,-32768, 545,-32768, 6252,-32768, 932, 28, + 2318, 810, 578, 18, 814, 6252,-32768, 33, 35, 1693, + 936,-32768,-32768, 937, 1693,-32768, 938, 939,-32768, 2318, + 1693, 1693, 1693,-32768, 501, 1693, 1693, 1693, 1693, 1693, + 1693, 1693, 611, 2318, 2318, 2318, 817, 86, 89, 100, + 1986, 946, 819, -1,-32768,-32768, 6084, 579, 6105, 583, + 584, 587,-32768,-32768, 4167, 4193,-32768,-32768, 948, 950, + 869,-32768, 2318, 2318, 2318,-32768,-32768, 341,-32768, 951, + 2318, 4219, 4245, 588,-32768, 2318, 6126,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 829,-32768,-32768,-32768,-32768, + 1693, 435, 2318, 969, 973, 19,-32768, 972, 5221, 13, +-32768,-32768,-32768, 435, 4271,-32768, 850,-32768, 2318,-32768, + 114,-32768, 114, 975,-32768,-32768, 976,-32768,-32768, 4297, + 978, 979, 980, 2318, 2318, 751, 981, 983, 993, 998, + 1001, 1002,-32768, 2283, 3227, 6147, 2656, 559, 114, 1003, + 114, 1005, 114, 1006, 3255, 350,-32768, 1693,-32768,-32768, + 24, 1007, 841, 1009, 1010, 1011, 2318, 2318,-32768,-32768, + 1693, 3059, 628, 6168,-32768,-32768, 229, 6252, 2318, 2318, + 1693, 884, 625, 6252, 1693, 1016, 1017, 1019, 2503,-32768, + 1015, 1021,-32768, 905,-32768, 1022, 2318,-32768, 6189, 52, + 59,-32768,-32768, 2318,-32768,-32768,-32768, 2522, 2541, 1023, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 2560, 1028, 907, +-32768, 2318,-32768, 908, 367,-32768, 914, 369,-32768, 915, + 372,-32768, 917, 918, 2318, 853, 909,-32768,-32768,-32768, +-32768, 4323, 4349, 952, 2318,-32768, 2318,-32768,-32768,-32768, + 2318, 4375, 4401,-32768, 1693, 2318, 1032, 1033, 927,-32768, +-32768,-32768, 13,-32768, 958,-32768, 4427, 1049,-32768,-32768, + 4453,-32768,-32768,-32768,-32768,-32768, 559, 3087,-32768, 1986, + 245, 1986, 245, 1986, 245,-32768, 3283, 1034, 1693, 2318, + 2318, 2318, 3311, 3339, 923, 6252, 2318, 2318, 634, 6252, +-32768,-32768,-32768, 1052,-32768, 2318, 114, 1057, 930, 2318, +-32768, 3367, 374, 40, 3395, 377, 99, 3423, 381, 186, + 3031, 933,-32768, 635, 3451, 3479, 2579,-32768,-32768, 2318, + 6210, 4479, 1058,-32768, 4505, 64, 935,-32768, 3507, 1060, + 2318, 1066, 1067, 2318, 1068, 1069, 2318, 1072,-32768, 245, +-32768, 1693, 1073, 1074, 1075,-32768, 639,-32768, 2318,-32768, + 2318,-32768, 1077,-32768,-32768, 953, 3535,-32768,-32768, 954, + 3563,-32768,-32768, 956, 3591,-32768, 242, 3075, 957,-32768, +-32768,-32768, 1080, 959, 6231, 3619, 964, 245, 1085, 245, + 1092, 245, 1093,-32768,-32768, 245, 1105,-32768, 435,-32768, + 1108, 1078, 247,-32768, 984, 275,-32768, 987, 286,-32768, + 988, 287,-32768, 642,-32768, 990,-32768, 982, 1121, 245, + 1122, 245, 1123, 245,-32768, 435, 1127, 435, 1128,-32768, + 294,-32768, 323,-32768, 328,-32768,-32768, 650,-32768,-32768, + 1129, 1130, 1131, 435, 1133,-32768,-32768,-32768,-32768,-32768, + 1144, 1145,-32768 }; static const short yypgoto[] = {-32768, --32768,-32768, 478,-32768,-32768, 673,-32768, 166,-32768,-32768, +-32768,-32768, 409,-32768,-32768, 604,-32768, 87,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, -259, 30,-32768, -108, 1212, -1, -330, -163, 7, --32768,-32768,-32768,-32768,-32768, 1213,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -993, -684, --32768,-32768,-32768, 43,-32768, 14,-32768, 242, 398, -67, - -243, -610, 389,-32768, -4 +-32768, -265, 36,-32768, 272, 1146, 3, -332, -173, 12, +-32768,-32768,-32768,-32768,-32768, 1148,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -1002, -599, +-32768,-32768,-32768, 49,-32768, 279,-32768, 166, 406, 85, + -249, -615, 321,-32768, -4 }; -#define YYLAST 6304 - - -static const short yytable[] = { 121, - 56, 499, 728, 202, 429, 1031, 539, 1034, 57, 1037, - 123, 343, 539, 191, 348, 174, 617, 148, 426, 177, - 188, 450, 197, 264, 207, 612, 451, 596, 841, 197, - 424, 139, 597, 118, 364, 142, 366, 719, 165, 167, - 345, 173, 346, 843, 199, 201, 119, 3, 458, 670, - 840, 95, 96, 97, 98, 835, 671, 99, 95, 96, - 97, 98, 297, 197, 99, 774, 734, 111, 112, 775, - 122, 460, 1092, 987, 842, 691, 125, 540, 541, 542, - 543, 544, 988, 540, 541, 542, 543, 544, 137, 844, - 672, 880, 95, 96, 97, 98, 138, 673, 99, 774, - 70, 674, 144, 775, 70, 265, 266, 145, 774, 1118, - 145, 1121, 775, 1124, 675, 830, 147, 1127, 820, 720, - 721, 111, 112, 460, 618, 149, 425, 203, 969, 204, - 468, 879, 469, 970, 205, 192, 545, 124, 146, 111, - 112, 1146, 802, 1148, 175, 1150, 150, 691, 178, 189, - 257, 258, 259, 208, 613, 260, 263, 198, 774, 268, - 329, 330, 775, 618, 347, 1058, 288, 606, 514, 515, - 258, 293, 296, 324, 1061, 326, 209, 506, 210, 301, - 302, 333, 304, 329, 330, 340, 308, 309, 211, 311, - 212, 200, 329, 330, 297, 528, 104, 105, 106, 107, - 104, 105, 106, 107, 154, 327, 328, 620, 161, 162, - 622, 486, 487, 488, 328, 111, 112, 213, 163, 214, - 372, 915, 159, 605, 297, 164, 176, 354, 355, 356, - 180, 358, 774, 181, 361, 362, 775, 774, 111, 112, - 774, 775, 854, 855, 775, 369, 417, 418, 419, 420, - 160, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 430, 329, 330, 863, 864, 1064, 428, - 215, 168, 216, 1109, 296, 824, 1134, 774, 182, 179, - 869, 775, 870, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 446, 447, 448, 449, 185, 495, - 495, 455, 456, 217, 296, 218, 258, 498, 498, 183, - 774, 462, 493, 494, 775, 466, 880, 184, 470, 880, - 186, 326, 880, 713, 476, 477, 478, 187, 480, 481, - 482, 484, 484, 484, 484, 169, 193, 195, 170, 171, - 219, 1022, 220, 1136, 966, 196, 501, 502, 503, 257, - 258, 504, 737, 297, 507, 194, 297, 774, 221, 517, - 222, 775, 630, 521, 522, 104, 105, 106, 107, 536, - 251, 104, 105, 106, 107, 135, 1138, 880, 141, 143, - 534, 252, 253, 537, 111, 112, 329, 330, 329, 330, - 111, 112, 774, 608, 774, 254, 775, 780, 775, 782, - 783, 784, 871, 880, 872, 331, 880, 197, 255, 880, - 161, 162, 880, 774, 329, 330, 267, 775, 151, 152, - 163, 153, 269, 1140, 329, 330, 607, 172, 823, 825, - 873, 880, 874, 880, 455, 880, 95, 96, 97, 98, - 490, 609, 99, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 223, 1156, 224, - 1157, 285, 286, 296, 621, 225, 296, 226, 287, 455, - 967, 290, 629, 657, 300, 632, 329, 330, 303, 1158, - 637, 638, 305, 640, 416, 197, 643, 306, 666, 329, - 330, 648, 312, 332, 329, 330, 227, 307, 228, 297, - 693, 313, 314, 658, 659, 316, 341, 943, 329, 330, - 317, 538, 662, 310, 95, 96, 97, 98, 315, 323, - 99, 329, 330, 318, 500, 111, 112, 676, 297, 329, - 330, 289, 319, 204, 692, 320, 321, 505, 205, 686, - 322, 688, 689, 344, 229, 766, 230, 349, 350, 342, - 508, 9, 10, 509, 510, 13, 511, 15, 231, 16, - 232, 18, 19, 714, 21, 22, 329, 330, 155, 329, - 330, 156, 157, 297, 158, 297, 297, 297, 334, 335, - 33, 233, 773, 234, 733, 954, 703, 704, 351, 352, - 37, 38, 39, 235, 299, 236, 353, 336, 329, 330, - 705, 706, 707, 708, 709, 710, 711, 329, 330, 296, - 237, 738, 238, 715, 998, 329, 330, 357, 722, 329, - 330, 359, 692, 1000, 329, 330, 329, 330, 731, 360, - 239, 1002, 240, 363, 1026, 1057, 365, 241, 296, 242, - 1060, 368, 1063, 739, 67, 256, 770, 771, 772, 367, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 370, 371, 24, 25, 26, 27, - 421, 29, 779, 296, 781, 296, 296, 296, 34, 35, - 787, 788, 285, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 431, 432, 804, - 805, 285, 433, 809, 243, 245, 244, 246, 826, 463, - 1006, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 247, 249, 248, 250, 285, 471, 831, - 100, 101, 102, 103, 282, 283, 284, 837, 460, 474, - 461, 285, 479, 111, 112, 489, 876, 108, 109, 422, - 516, 204, 110, 594, 850, 595, 205, 113, 519, 460, - 261, 604, 116, 520, 262, 111, 112, 529, 865, 866, - 867, 457, 460, 204, 627, 875, 526, 598, 205, 908, - 599, 602, 603, 280, 281, 282, 283, 284, 460, 895, - 736, 916, 285, 832, 460, 833, 839, 892, 893, 894, - 1038, 460, 756, 882, 460, 898, 884, 460, 601, 885, - 904, 460, 901, 886, 902, 919, 929, 920, 930, 938, - 975, 901, 976, 1050, 610, 611, 495, 909, 797, 1068, - 975, 1069, 1098, 1141, 498, 1142, 1159, 600, 1160, 628, - 615, 633, 944, 634, 947, 636, 950, 641, 642, 644, - 652, 653, 654, 757, 655, 660, 927, 928, 656, 682, - 661, 683, 678, 1093, 679, 684, 937, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 685, 697, - 955, 698, 285, 699, 701, 702, 712, 716, 718, 961, - 962, 717, 723, 724, 727, 726, 730, 732, 743, 747, - 752, 971, 972, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 753, 754, 986, - 755, 285, 758, 759, 760, 989, 761, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 762, 763, 996, 764, 285, 765, 798, 803, 778, - 786, 789, 790, 495, 794, 799, 1005, 800, 801, 808, - 819, 498, 821, 828, 834, 846, 1011, 827, 1012, 848, - 849, 1030, 1014, 1033, 838, 1036, 868, 1018, 877, 878, - 270, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 741, 742, 889, 744, 285, 890, 896, 891, 749, 750, - 1029, 906, 1032, 910, 1035, 911, 913, 918, 921, 922, - 1042, 1043, 1044, 924, 925, 926, 931, 1048, 1049, 932, - 933, 934, 935, 936, 945, 948, 1052, 951, 957, 1055, - 958, 959, 960, 974, 978, 979, 984, 980, 983, 791, - 792, 793, 982, 985, 992, 994, 1010, 995, 1019, 904, - 1020, 1021, 997, 999, 1001, 1003, 1004, 1007, 1023, 1082, - 1040, 1047, 1086, 1051, 1053, 1090, 1054, 1076, 1078, 1130, - 1080, 1067, 1083, 1084, 1087, 1088, 1091, 1100, 1095, 1101, - 1096, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 434, 1151, 1097, 1154, 285, - 845, 1102, 1103, 1105, 847, 1113, 1107, 1119, 1117, 1112, - 851, 852, 853, 1114, 1164, 856, 857, 858, 859, 860, - 861, 862, 1122, 67, 126, 1125, 1135, 1128, 1132, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 1133, 1144, 1145, 1137, 1147, 1149, 1152, - 1139, 127, 1155, 1161, 1162, 1163, 1143, 1165, 1167, 1168, - 695, 836, 1073, 55, 63, 1017, 912, 0, 0, 0, - 907, 24, 25, 26, 27, 28, 29, 0, 0, 0, - 0, 0, 0, 34, 35, 0, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 100, - 101, 102, 103, 0, 0, 0, 0, 0, 0, 0, - 725, 0, 0, 0, 0, 956, 108, 294, 0, 0, - 0, 110, 0, 0, 0, 0, 113, 0, 963, 0, - 0, 116, 0, 0, 295, 0, 0, 0, 973, 67, - 126, 0, 977, 0, 0, 71, 72, 73, 74, 75, +#define YYLAST 6378 + + +static const short yytable[] = { 122, + 432, 734, 503, 346, 57, 204, 351, 543, 1044, 176, + 1047, 179, 1050, 58, 429, 124, 190, 543, 266, 348, + 209, 349, 616, 848, 199, 123, 367, 621, 369, 427, + 632, 199, 193, 843, 332, 333, 3, 725, 850, 119, + 852, 140, 332, 333, 461, 201, 203, 126, 144, 332, + 333, 334, 120, 96, 97, 98, 99, 999, 494, 100, + 96, 97, 98, 99, 1000, 504, 100, 782, 676, 1092, + 138, 783, 332, 333, 199, 677, 211, 1107, 212, 544, + 545, 546, 547, 548, 213, 851, 214, 853, 509, 544, + 545, 546, 547, 548, 332, 333, 182, 518, 519, 183, + 678, 267, 268, 96, 97, 98, 99, 679, 782, 100, + 774, 71, 783, 633, 680, 1133, 838, 1136, 139, 1139, + 726, 727, 453, 1142, 112, 113, 428, 454, 71, 463, + 205, 464, 206, 889, 332, 333, 622, 207, 549, 177, + 148, 180, 622, 125, 350, 156, 191, 1161, 810, 1163, + 210, 1165, 617, 200, 471, 194, 472, 259, 260, 261, + 202, 150, 262, 265, 610, 147, 270, 782, 332, 333, + 510, 783, 681, 290, 1072, 332, 333, 260, 295, 298, + 332, 333, 332, 333, 890, 600, 303, 304, 532, 306, + 601, 308, 112, 113, 311, 312, 740, 314, 143, 335, + 697, 463, 332, 333, 624, 332, 333, 626, 105, 106, + 107, 108, 151, 330, 331, 299, 332, 333, 879, 146, + 880, 881, 331, 882, 925, 105, 106, 107, 108, 147, + 163, 164, 883, 1075, 884, 357, 358, 359, 149, 361, + 165, 152, 364, 365, 112, 113, 161, 166, 420, 421, + 422, 423, 609, 372, 782, 215, 162, 216, 783, 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, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 433, 170, 828, 167, 169, 171, 175, 463, 172, + 782, 173, 298, 782, 783, 782, 217, 783, 218, 783, + 1078, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 499, 499, 431, 458, + 459, 178, 298, 782, 260, 502, 502, 783, 299, 465, + 219, 719, 220, 469, 782, 782, 980, 474, 783, 783, + 181, 981, 782, 480, 481, 482, 783, 484, 485, 486, + 488, 488, 488, 488, 419, 199, 1124, 1034, 299, 832, + 743, 1149, 163, 164, 187, 505, 506, 507, 259, 260, + 508, 782, 165, 511, 184, 783, 782, 188, 521, 174, + 783, 185, 525, 526, 96, 97, 98, 99, 540, 1151, + 100, 186, 598, 136, 599, 221, 142, 222, 145, 538, + 1153, 1155, 541, 189, 332, 333, 612, 788, 1171, 790, + 791, 792, 332, 333, 196, 105, 106, 107, 108, 199, + 327, 344, 329, 195, 890, 332, 333, 890, 336, 542, + 890, 223, 343, 224, 112, 113, 197, 1172, 831, 833, + 198, 781, 1173, 112, 113, 611, 332, 333, 96, 97, + 98, 99, 253, 458, 100, 254, 105, 106, 107, 108, + 613, 269, 965, 332, 333, 332, 333, 375, 332, 333, + 332, 333, 255, 332, 333, 112, 113, 332, 333, 1010, + 271, 1012, 298, 625, 1014, 298, 1071, 890, 458, 1074, + 225, 634, 226, 1077, 637, 256, 112, 113, 257, 642, + 643, 288, 291, 646, 206, 302, 649, 112, 113, 207, + 227, 654, 228, 890, 699, 697, 890, 289, 299, 890, + 292, 299, 890, 664, 665, 954, 229, 635, 230, 112, + 113, 305, 668, 313, 231, 425, 232, 206, 318, 864, + 865, 890, 207, 890, 153, 890, 154, 682, 155, 284, + 285, 286, 112, 113, 698, 233, 287, 234, 460, 692, + 206, 694, 695, 347, 309, 207, 157, 352, 353, 158, + 235, 159, 236, 160, 490, 491, 492, 720, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 497, 498, 307, 237, 287, 238, 873, 874, 739, 329, + 25, 26, 27, 28, 310, 30, 709, 710, 239, 241, + 240, 242, 35, 36, 243, 977, 244, 245, 315, 246, + 711, 712, 713, 714, 715, 716, 717, 319, 247, 298, + 248, 316, 249, 721, 250, 251, 317, 252, 728, 463, + 321, 608, 698, 282, 283, 284, 285, 286, 737, 463, + 322, 631, 287, 463, 1039, 742, 320, 840, 298, 841, + 68, 258, 323, 324, 746, 299, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 0, - 0, 0, 0, 0, 0, 0, 0, 127, 271, 272, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 463, 463, 847, 892, 299, 463, 463, 894, 895, 463, + 911, 896, 912, 325, 787, 298, 789, 298, 298, 298, + 326, 337, 795, 796, 338, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 339, + 345, 812, 813, 287, 940, 817, 941, 986, 354, 987, + 834, 299, 978, 299, 299, 299, 911, 1082, 1063, 1083, + 356, 986, 663, 1113, 1156, 355, 1157, 101, 102, 103, + 104, 839, 1174, 360, 1175, 362, 363, 672, 366, 845, + 368, 370, 371, 373, 109, 110, 374, 424, 287, 111, + 434, 435, 436, 466, 114, 478, 475, 263, 860, 117, + 483, 264, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 493, 875, 876, 877, 287, 520, 918, 523, 885, + 524, 530, 606, 607, 533, 602, 603, 604, 605, 926, + 614, 615, 1051, 905, 619, 638, 639, 641, 644, 647, + 648, 902, 903, 904, 650, 658, 659, 660, 661, 908, + 301, 688, 662, 689, 914, 690, 691, 666, 667, 949, + 684, 685, 703, 704, 705, 707, 708, 718, 722, 724, + 499, 919, 723, 729, 730, 733, 732, 736, 738, 502, + 745, 750, 755, 760, 761, 762, 763, 929, 766, 767, + 768, 769, 770, 771, 772, 773, 786, 1108, 794, 797, + 744, 798, 938, 939, 802, 807, 808, 809, 811, 835, + 816, 827, 948, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 829, 836, 966, 842, 287, 846, + 849, 855, 856, 858, 859, 972, 973, 778, 779, 780, + 878, 887, 888, 899, 901, 900, 906, 982, 983, 916, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 24, 25, 26, - 27, 28, 29, 139, 0, 624, 0, 0, 0, 34, - 35, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 0, 0, 0, 0, 285, - 0, 0, 0, 0, 0, 100, 101, 102, 103, 740, - 0, 0, 0, 0, 1041, 0, 0, 0, 0, 0, - 0, 0, 108, 128, 0, 0, 0, 110, 0, 0, - 0, 0, 140, 0, 67, 126, 0, 116, 0, 130, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 0, 0, 0, 0, 0, 0, - 0, 0, 127, 0, 0, 1094, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 24, 25, 26, 27, 28, 29, 142, 299, - 0, 0, 0, 0, 34, 35, 0, 0, 0, 0, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 100, 101, 102, 103, 745, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 108, 128, 0, - 0, 0, 110, 0, 0, 0, 0, 113, 0, 67, - 126, 0, 116, 0, 130, 71, 72, 73, 74, 75, + 283, 284, 285, 286, 920, 997, 921, 923, 287, 928, + 932, 933, 1001, 935, 936, 937, 942, 1018, 943, 512, + 9, 10, 513, 12, 514, 14, 515, 16, 944, 17, + 1008, 19, 20, 945, 22, 23, 946, 947, 956, 499, + 959, 962, 968, 1017, 969, 970, 971, 985, 502, 989, + 34, 993, 990, 1023, 991, 1024, 994, 996, 1004, 1026, + 38, 39, 40, 1006, 1030, 995, 1022, 1031, 1032, 1053, + 1007, 1019, 1009, 748, 749, 1035, 751, 1011, 1013, 754, + 1015, 1016, 757, 758, 1033, 1037, 1060, 1064, 1042, 886, + 1045, 1067, 1048, 1090, 1068, 1095, 1081, 1093, 1055, 1056, + 1057, 1098, 1099, 1102, 1103, 1061, 1062, 1106, 1110, 1111, + 1112, 1117, 1148, 516, 1065, 1128, 1118, 1120, 1069, 1122, + 1134, 1127, 1129, 799, 800, 801, 1132, 1137, 1140, 512, + 9, 10, 513, 12, 514, 14, 515, 16, 914, 17, + 1143, 19, 20, 1147, 22, 23, 1159, 1150, 764, 1097, + 1152, 1154, 1101, 1158, 1145, 1105, 1160, 1162, 1164, 930, + 34, 931, 1167, 1170, 1176, 1177, 1178, 1115, 1180, 1116, + 38, 39, 40, 1182, 1183, 701, 1087, 56, 844, 64, + 1029, 1166, 0, 1169, 805, 854, 922, 955, 0, 958, + 857, 961, 0, 0, 0, 0, 861, 862, 863, 1179, + 765, 866, 867, 868, 869, 870, 871, 872, 0, 0, + 68, 127, 0, 0, 0, 0, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 0, - 0, 0, 0, 0, 0, 0, 0, 127, 271, 272, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 0, 0, 917, 0, 287, 25, + 26, 27, 28, 29, 30, 0, 0, 0, 0, 0, + 0, 35, 36, 0, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, + 0, 0, 287, 0, 806, 0, 0, 101, 102, 103, + 104, 0, 0, 0, 0, 0, 0, 0, 1043, 272, + 1046, 0, 1049, 967, 109, 296, 0, 0, 0, 111, + 0, 0, 0, 0, 114, 0, 974, 0, 0, 117, + 0, 0, 297, 0, 0, 1066, 984, 68, 127, 0, + 988, 0, 0, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 0, 0, 0, + 0, 0, 0, 0, 0, 128, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 25, 26, 27, 28, + 29, 30, 140, 628, 0, 0, 0, 0, 35, 36, + 0, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 0, 0, 0, 0, 287, + 0, 0, 0, 0, 101, 102, 103, 104, 437, 0, + 0, 0, 0, 0, 1054, 0, 0, 0, 0, 0, + 0, 109, 129, 0, 0, 0, 111, 0, 0, 0, + 0, 141, 0, 68, 127, 0, 117, 0, 131, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, + 0, 128, 0, 0, 0, 0, 0, 1109, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 25, 26, 27, 28, 29, 30, 144, 301, + 0, 0, 0, 0, 35, 36, 0, 0, 0, 0, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 24, 25, 26, - 27, 28, 29, 0, 530, 0, 0, 0, 0, 34, - 35, 0, 0, 0, 0, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 0, 0, 0, 285, 0, 100, 101, 102, 103, 0, + 283, 284, 285, 286, 0, 0, 0, 0, 287, 0, + 101, 102, 103, 104, 731, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 109, 129, 0, + 0, 0, 111, 0, 0, 0, 0, 114, 0, 68, + 127, 0, 117, 0, 131, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 0, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 0, 0, 0, 0, 287, 25, 26, + 27, 28, 29, 30, 534, 0, 0, 0, 0, 0, + 35, 36, 0, 0, 0, 0, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 101, 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 108, 128, 0, 0, 0, 110, 0, 0, - 0, 0, 129, 0, 67, 126, 0, 116, 0, 130, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 0, 0, 0, 109, 129, 0, 0, 0, 111, 0, + 0, 0, 0, 130, 0, 68, 127, 0, 117, 0, + 131, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 0, 0, 0, 0, 0, 0, - 0, 0, 127, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 0, 0, 0, - 0, 285, 24, 25, 26, 27, 28, 29, 0, 0, - 67, 256, 0, 0, 34, 35, 71, 72, 73, 74, + 91, 92, 93, 94, 95, 0, 0, 0, 0, 0, + 0, 0, 0, 128, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, + 0, 0, 287, 0, 25, 26, 27, 28, 29, 30, + 0, 0, 68, 258, 0, 0, 35, 36, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 101, 102, 103, 104, 747, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, + 129, 0, 0, 0, 111, 0, 0, 0, 0, 114, + 0, 68, 258, 0, 117, 0, 131, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 100, 101, 102, 103, 746, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 108, 128, 0, - 0, 0, 110, 0, 0, 0, 0, 113, 0, 67, - 256, 0, 116, 0, 130, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 0, - 0, 0, 0, 0, 0, 0, 100, 101, 102, 103, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 108, 109, 0, 0, 0, 110, 0, - 0, 0, 0, 113, 0, 0, 453, 0, 116, 0, - 454, 0, 0, 0, 0, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 0, 0, 0, 285, 748, 100, 101, 102, 103, 0, + 95, 0, 0, 0, 0, 0, 0, 0, 0, 101, + 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 109, 110, 0, 0, + 0, 111, 0, 0, 0, 0, 114, 0, 0, 456, + 0, 117, 0, 457, 0, 0, 0, 0, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 0, 0, 0, 0, 287, 752, 101, 102, + 103, 104, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 109, 110, 0, 0, 0, + 111, 0, 0, 0, 0, 114, 0, 0, 629, 0, + 117, 0, 630, 68, 293, 0, 0, 0, 0, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 0, 0, 0, 0, 0, 68, 258, + 0, 0, 0, 0, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 0, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 108, 109, 0, 0, 0, 110, 0, 0, - 0, 0, 113, 0, 0, 625, 0, 116, 0, 626, - 67, 291, 0, 0, 0, 0, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 0, 0, 0, 0, 0, 67, 256, 0, 0, 0, - 0, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 0, 0, 0, 285, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 100, 101, 102, 103, + 101, 102, 103, 104, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 109, 110, 0, + 0, 0, 111, 0, 0, 0, 0, 114, 0, 0, + 0, 0, 117, 0, 294, 101, 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 108, 109, 0, 0, 0, 110, 0, - 0, 0, 0, 113, 0, 0, 0, 0, 116, 0, - 292, 100, 101, 102, 103, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 337, 338, - 0, 0, 0, 110, 0, 0, 0, 0, 339, 0, - 67, 68, 69, 116, 70, 164, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 0, 95, 96, 97, 98, 0, 0, 99, 0, 0, - 0, 0, 0, 0, 0, 0, 67, 126, 0, 0, - 0, 0, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, - 0, 0, 0, 0, 127, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 100, 101, 102, 103, - 104, 105, 106, 107, 24, 25, 26, 27, 28, 29, - 0, 0, 0, 108, 109, 0, 34, 35, 110, 111, - 112, 0, 0, 113, 0, 114, 0, 115, 116, 0, - 0, 0, 0, 0, 751, 0, 0, 0, 0, 0, - 0, 0, 100, 101, 102, 103, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, - 294, 0, 0, 0, 110, 0, 0, 0, 0, 113, - 67, 256, 197, 0, 116, 0, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 0, 95, 96, 97, 98, 67, 256, 99, 0, 0, - 0, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 0, 0, 0, 285, 0, 0, 0, 0, 785, 0, - 0, 0, 0, 0, 0, 0, 100, 101, 102, 103, - 0, 0, 0, 0, 0, 0, 0, 829, 0, 0, - 0, 0, 0, 108, 109, 0, 0, 0, 110, 0, - 0, 0, 0, 113, 0, 0, 981, 0, 116, 0, - 0, 100, 101, 102, 103, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 108, 109, - 0, 0, 0, 110, 0, 0, 0, 0, 113, 67, - 291, 0, 0, 116, 0, 71, 72, 73, 74, 75, + 0, 0, 340, 341, 0, 0, 0, 111, 0, 0, + 0, 0, 342, 0, 68, 69, 70, 117, 71, 166, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 0, 96, 97, 98, 99, 0, + 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, + 68, 127, 0, 0, 0, 0, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 990, 0, 0, 0, 285, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 991, 0, 0, 0, 285, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 993, 0, 0, 0, 285, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 100, 101, 102, 103, 0, - 1072, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 108, 109, 0, 0, 0, 110, 0, 0, - 0, 616, 113, 0, 0, 0, 0, 116, 0, 0, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 631, 0, 0, 0, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 796, - 0, 0, 285, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 0, 0, 0, - 0, 285, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 0, 0, 0, 0, 285, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 0, 0, 0, 0, 285, 271, 272, + 0, 101, 102, 103, 104, 105, 106, 107, 108, 25, + 26, 27, 28, 29, 30, 0, 0, 0, 109, 110, + 0, 35, 36, 111, 112, 113, 0, 0, 114, 0, + 115, 0, 116, 117, 0, 0, 0, 0, 753, 0, + 0, 0, 0, 0, 0, 0, 0, 101, 102, 103, + 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 296, 0, 0, 0, 111, + 0, 0, 0, 0, 114, 68, 258, 199, 0, 117, + 0, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 0, 96, 97, 98, 99, + 68, 258, 100, 0, 0, 0, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, -3, 1, 0, 285, -3, 271, 272, + 283, 284, 285, 286, 0, 0, 0, 0, 287, 0, + 0, 0, 0, 756, 0, 0, 0, 0, 0, 0, + 0, 0, 101, 102, 103, 104, 0, 0, 0, 0, + 0, 0, 759, 0, 0, 0, 0, 0, 0, 109, + 110, 0, 0, 0, 111, 0, 0, 0, 0, 114, + 0, 793, 0, 0, 117, 0, 0, 101, 102, 103, + 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 110, 0, 0, 0, 111, + 0, 0, 0, 0, 114, 68, 293, 0, 0, 117, + 0, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 837, + 0, 0, 0, 287, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 992, 0, + 0, 0, 287, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 1002, 0, 0, + 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 101, 102, 103, 104, 1003, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, + 110, 0, 0, 0, 111, 1005, 0, 0, 0, 114, + 0, 0, 0, 0, 117, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1086, 0, 0, 0, 0, 0, + 0, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 620, 0, 0, 0, 287, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 941, 0, 942, -3, 0, 0, 0, - 0, -3, -3, 0, -3, -3, -3, -3, -3, -3, - -3, -3, 0, -3, -3, -3, -3, -3, -3, -3, - 0, 0, 0, -3, -3, -3, -3, -3, -3, -3, - 0, -3, -3, -3, -3, 4, -3, -3, 0, 0, - 0, 0, 0, -3, -3, -3, -3, 0, 0, -3, - 0, -3, 0, -3, -3, -3, -3, -3, -3, -3, - -3, -3, 0, 0, 5, 0, 0, 0, 0, 6, - 7, 0, 8, 9, 10, 11, 12, 13, 14, 15, - 0, 16, 17, 18, 19, 20, 21, 22, 0, 0, - 0, 23, 24, 25, 26, 27, 28, 29, 0, 30, - 31, 32, 33, 0, 34, 35, 0, 0, 0, 0, - 0, 36, 37, 38, 39, 0, 0, 40, 0, 41, - 0, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 508, 9, 10, 509, 510, 13, 511, 15, 0, 16, - 0, 18, 19, 0, 21, 22, 0, 508, 9, 10, - 509, 510, 13, 511, 15, 0, 16, 0, 18, 19, - 33, 21, 22, 0, 0, 0, 0, 0, 0, 0, - 37, 38, 39, 0, 0, 0, 0, 33, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 37, 38, 39, - 508, 9, 10, 509, 510, 13, 511, 15, 0, 16, - 0, 18, 19, 0, 21, 22, 0, 508, 9, 10, - 509, 510, 13, 511, 15, 0, 16, 0, 18, 19, - 33, 21, 22, 512, 0, 0, 0, 0, 0, 0, - 37, 38, 39, 0, 0, 0, 0, 33, 0, 0, - 518, 0, 0, 0, 0, 0, 0, 37, 38, 39, - 508, 9, 10, 509, 510, 13, 511, 15, 0, 16, - 0, 18, 19, 0, 21, 22, 0, 508, 9, 10, - 509, 510, 13, 511, 15, 0, 16, 0, 18, 19, - 33, 21, 22, 532, 0, 0, 0, 0, 0, 0, - 37, 38, 39, 0, 0, 0, 0, 33, 0, 0, - 533, 0, 0, 0, 0, 0, 0, 37, 38, 39, - 508, 9, 10, 509, 510, 13, 511, 15, 0, 16, - 0, 18, 19, 0, 21, 22, 0, 508, 9, 10, - 509, 510, 13, 511, 15, 0, 16, 0, 18, 19, - 33, 21, 22, 667, 0, 0, 0, 0, 0, 0, - 37, 38, 39, 0, 0, 0, 0, 33, 0, 0, - 687, 0, 0, 0, 0, 0, 0, 37, 38, 39, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 964, 0, 965, 0, 0, - 0, 0, 0, 1065, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 1110, 0, 285, 0, 0, 0, 0, 0, 0, 1027, - 0, 1028, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 0, 0, 645, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 0, 0, 649, 271, 272, + 283, 284, 285, 286, 636, 0, 0, 0, 287, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 804, 0, 0, 0, 287, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 0, 0, 0, 0, 287, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 0, 0, 0, 0, 287, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 0, + 0, 0, 0, 287, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, + 0, 0, 287, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 0, -3, 1, + 0, 287, -3, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 0, 0, 0, + 0, 287, 0, 0, 0, 0, 0, 0, 952, 0, + 953, -3, 0, 0, 0, 0, -3, -3, 0, -3, + -3, -3, -3, -3, -3, -3, -3, -3, 0, -3, + -3, -3, -3, -3, -3, -3, 0, 0, 0, -3, + -3, -3, -3, -3, -3, -3, 0, -3, -3, -3, + -3, 4, -3, -3, 0, 0, 0, 0, 0, -3, + -3, -3, -3, 0, 0, -3, 0, -3, 0, -3, + -3, -3, -3, -3, -3, -3, -3, -3, 0, 0, + 5, 0, 0, 0, 0, 6, 7, 0, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 0, 17, 18, + 19, 20, 21, 22, 23, 0, 0, 0, 24, 25, + 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, + 0, 35, 36, 0, 0, 0, 0, 0, 37, 38, + 39, 40, 0, 0, 41, 0, 42, 0, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 512, 9, 10, + 513, 12, 514, 14, 515, 16, 0, 17, 0, 19, + 20, 0, 22, 23, 512, 9, 10, 513, 12, 514, + 14, 515, 16, 0, 17, 0, 19, 20, 34, 22, + 23, 0, 0, 0, 0, 0, 0, 0, 38, 39, + 40, 0, 0, 0, 0, 34, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 38, 39, 40, 512, 9, + 10, 513, 12, 514, 14, 515, 16, 0, 17, 0, + 19, 20, 0, 22, 23, 0, 0, 0, 0, 0, + 512, 9, 10, 513, 12, 514, 14, 515, 16, 34, + 17, 522, 19, 20, 0, 22, 23, 0, 0, 38, + 39, 40, 0, 0, 0, 0, 0, 0, 536, 0, + 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 38, 39, 40, 512, 9, 10, 513, 12, 514, + 14, 515, 16, 0, 17, 0, 19, 20, 0, 22, + 23, 512, 9, 10, 513, 12, 514, 14, 515, 16, + 0, 17, 537, 19, 20, 34, 22, 23, 0, 0, + 0, 0, 0, 0, 0, 38, 39, 40, 0, 0, + 0, 0, 34, 0, 673, 0, 0, 0, 0, 0, + 0, 0, 38, 39, 40, 512, 9, 10, 513, 12, + 514, 14, 515, 16, 0, 17, 0, 19, 20, 0, + 22, 23, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 34, 0, 693, 0, + 287, 0, 0, 0, 0, 0, 38, 39, 40, 651, + 0, 0, 0, 0, 0, 1079, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, + 0, 975, 0, 976, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 1125, + 0, 0, 287, 0, 0, 0, 0, 0, 0, 1040, + 0, 1041, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 0, 0, 0, 0, + 287, 0, 0, 0, 0, 0, 0, 0, 0, 655, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 0, 0, 650, 271, 272, 273, 274, + 283, 284, 285, 286, 0, 0, 0, 0, 287, 0, + 0, 0, 0, 0, 0, 0, 0, 656, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 0, 0, 694, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 0, - 0, 769, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 0, 0, 939, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 0, 0, 953, 271, 272, + 285, 286, 0, 0, 0, 0, 287, 0, 0, 0, + 0, 0, 0, 0, 0, 700, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, + 0, 0, 0, 777, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, + 0, 0, 287, 0, 0, 0, 0, 0, 0, 0, + 0, 950, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 0, 0, 0, 0, + 287, 0, 0, 0, 0, 0, 0, 0, 0, 964, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 0, 0, 1039, 271, 272, 273, 274, + 283, 284, 285, 286, 0, 0, 0, 0, 287, 0, + 0, 0, 0, 0, 0, 0, 0, 1052, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 0, 0, 1045, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 0, - 0, 1046, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 0, 0, 1056, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 0, 0, 1059, 271, 272, + 285, 286, 0, 0, 0, 0, 287, 0, 0, 0, + 0, 0, 0, 0, 0, 1058, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, + 0, 0, 0, 1059, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, + 0, 0, 287, 0, 0, 0, 0, 0, 0, 0, + 0, 1070, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 0, 0, 0, 0, + 287, 0, 0, 0, 0, 0, 0, 0, 0, 1073, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 0, 0, 1062, 271, 272, 273, 274, + 283, 284, 285, 286, 0, 0, 0, 0, 287, 0, + 0, 0, 0, 0, 0, 0, 0, 1076, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 0, 0, 1070, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 0, - 0, 1071, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 0, 0, 1079, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 0, 0, 1104, 271, 272, + 285, 286, 0, 0, 0, 0, 287, 0, 0, 0, + 0, 0, 0, 0, 0, 1084, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, + 0, 0, 0, 1085, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, + 0, 0, 287, 0, 0, 0, 0, 0, 0, 0, + 0, 1094, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 0, 0, 0, 0, + 287, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 0, 0, 1106, 271, 272, 273, 274, + 283, 284, 285, 286, 0, 0, 0, 0, 287, 0, + 0, 0, 0, 0, 0, 0, 0, 1121, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 0, 0, 1108, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 0, - 0, 1116, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 423, 0, 0, 0, 0, 491, 271, 272, + 285, 286, 0, 0, 0, 0, 287, 0, 0, 0, + 0, 0, 0, 0, 0, 1123, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, + 0, 0, 0, 1131, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, + 0, 0, 287, 0, 426, 0, 0, 0, 0, 495, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 452, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 491, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 492, 271, 272, 273, 274, + 283, 284, 285, 286, 0, 0, 0, 0, 287, 0, + 0, 0, 0, 0, 0, 455, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, + 0, 495, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 0, 0, 0, 0, + 287, 0, 0, 0, 0, 0, 0, 496, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 527, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 574, 271, 272, + 285, 286, 0, 0, 0, 0, 287, 0, 0, 0, + 0, 0, 0, 531, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, + 0, 0, 287, 0, 0, 0, 0, 0, 0, 578, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 575, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 588, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 589, 271, 272, 273, 274, + 283, 284, 285, 286, 0, 0, 0, 0, 287, 0, + 0, 0, 0, 0, 0, 579, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, + 0, 592, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 0, 0, 0, 0, + 287, 0, 0, 0, 0, 0, 0, 593, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 590, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 591, 271, 272, + 285, 286, 0, 0, 0, 0, 287, 0, 0, 0, + 0, 0, 0, 594, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, + 0, 0, 287, 0, 0, 0, 0, 0, 0, 595, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 592, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 593, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 663, 271, 272, 273, 274, + 283, 284, 285, 286, 0, 0, 0, 0, 287, 0, + 0, 0, 0, 0, 0, 596, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, + 0, 597, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 0, 0, 0, 0, + 287, 0, 0, 0, 0, 0, 0, 669, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 664, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 665, 271, 272, + 285, 286, 0, 0, 0, 0, 287, 0, 0, 0, + 0, 0, 0, 670, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, + 0, 0, 287, 0, 0, 0, 0, 0, 0, 671, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 735, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 767, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 768, 271, 272, 273, 274, + 283, 284, 285, 286, 0, 0, 0, 0, 287, 0, + 0, 0, 0, 0, 0, 741, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, + 0, 775, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 0, 0, 0, 0, + 287, 0, 0, 0, 0, 0, 0, 776, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 795, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 887, 271, 272, + 285, 286, 0, 0, 0, 0, 287, 0, 0, 0, + 0, 0, 0, 803, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, + 0, 0, 287, 0, 0, 0, 0, 0, 0, 897, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 888, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 899, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 900, 271, 272, 273, 274, + 283, 284, 285, 286, 0, 0, 0, 0, 287, 0, + 0, 0, 0, 0, 0, 898, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, + 0, 909, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 0, 0, 0, 0, + 287, 0, 0, 0, 0, 0, 0, 910, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 917, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 923, 271, 272, + 285, 286, 0, 0, 0, 0, 287, 0, 0, 0, + 0, 0, 0, 927, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, + 0, 0, 287, 0, 0, 0, 0, 0, 0, 934, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 1008, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 1009, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 1015, 271, 272, 273, 274, + 283, 284, 285, 286, 0, 0, 0, 0, 287, 0, + 0, 0, 0, 0, 0, 1020, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, + 0, 1021, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 0, 0, 0, 0, + 287, 0, 0, 0, 0, 0, 0, 1027, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 1016, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 1024, 271, 272, + 285, 286, 0, 0, 0, 0, 287, 0, 0, 0, + 0, 0, 0, 1028, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, + 0, 0, 287, 0, 0, 0, 0, 0, 0, 1036, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 1025, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 1075, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 1077, 271, 272, 273, 274, + 283, 284, 285, 286, 0, 0, 0, 0, 287, 0, + 0, 0, 0, 0, 0, 1038, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, + 0, 1089, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 0, 0, 0, 0, + 287, 0, 0, 0, 0, 0, 0, 1091, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 427, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 0, 0, 0, 0, 285, 0, 0, - 0, 535, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 553, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 0, 0, 0, 285, 0, 0, 0, 555, 271, 272, + 285, 286, 0, 0, 0, 0, 287, 0, 0, 0, + 430, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 0, 0, 0, 0, 287, + 0, 0, 0, 539, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, + 0, 0, 287, 0, 0, 0, 557, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 0, 0, 0, 0, 287, 0, 0, 0, 559, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 557, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 0, 0, 0, 0, 285, - 0, 0, 0, 559, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 561, 271, 272, 273, + 283, 284, 285, 286, 0, 0, 0, 0, 287, 0, + 0, 0, 561, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 0, 0, 0, + 0, 287, 0, 0, 0, 563, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 0, 0, 565, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 0, 0, 0, 0, 285, 0, 0, 0, 563, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 565, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 0, 0, 0, - 0, 285, 0, 0, 0, 567, 271, 272, 273, 274, + 284, 285, 286, 0, 0, 0, 0, 287, 0, 0, + 0, 567, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 0, 0, 0, 0, + 287, 0, 0, 0, 569, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 0, + 0, 0, 0, 287, 0, 0, 0, 571, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 569, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 0, 0, 0, 0, 285, 0, 0, - 0, 571, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 573, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 0, 0, 0, 285, 0, 0, 0, 577, 271, 272, + 285, 286, 0, 0, 0, 0, 287, 0, 0, 0, + 573, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 0, 0, 0, 0, 287, + 0, 0, 0, 575, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, + 0, 0, 287, 0, 0, 0, 577, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 0, 0, 0, 0, 287, 0, 0, 0, 581, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 579, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 0, 0, 0, 0, 285, - 0, 0, 0, 581, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 583, 271, 272, 273, + 283, 284, 285, 286, 0, 0, 0, 0, 287, 0, + 0, 0, 583, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 0, 0, 0, + 0, 287, 0, 0, 0, 585, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 0, 0, 587, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 0, 0, 0, 0, 285, 0, 0, 0, 585, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 587, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 0, 0, 0, - 0, 285, 0, 0, 0, 623, 271, 272, 273, 274, + 284, 285, 286, 0, 0, 0, 0, 287, 0, 0, + 0, 589, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 0, 0, 0, 0, + 287, 0, 0, 0, 591, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 0, + 0, 0, 0, 287, 0, 0, 0, 627, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 669, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 0, 0, 0, 0, 285, 0, 0, - 0, 677, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 680, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 0, 0, 0, 285, 0, 0, 0, 681, 271, 272, + 285, 286, 0, 0, 0, 0, 287, 0, 0, 0, + 675, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 0, 0, 0, 0, 287, + 0, 0, 0, 683, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, + 0, 0, 287, 0, 0, 0, 686, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 0, 0, 0, 0, 287, 0, 0, 0, 687, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 690, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 0, 0, 0, 0, 285, - 0, 0, 0, 811, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 813, 271, 272, 273, + 283, 284, 285, 286, 0, 0, 0, 0, 287, 0, + 0, 0, 696, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 0, 0, 0, + 0, 287, 0, 0, 0, 819, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 0, 0, 821, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 0, 0, 0, 0, 285, 0, 0, 0, 815, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 817, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 0, 0, 0, - 0, 285, 0, 0, 0, 818, 271, 272, 273, 274, + 284, 285, 286, 0, 0, 0, 0, 287, 0, 0, + 0, 823, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 0, 0, 0, 0, + 287, 0, 0, 0, 825, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 0, + 0, 0, 0, 287, 0, 0, 0, 826, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 914, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 0, 0, 0, 0, 285, 0, 423, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 459, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 0, 0, 0, 0, 285, - 0, 464, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 465, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 0, 0, 0, - 0, 285, 0, 467, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 472, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 0, 0, 0, 285, 0, 473, 271, 272, 273, 274, + 285, 286, 0, 0, 0, 0, 287, 0, 0, 0, + 924, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 0, 0, 0, 0, 287, + 0, 426, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 0, 0, 0, 0, + 287, 0, 462, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 0, 0, 0, + 0, 287, 0, 467, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, + 0, 0, 287, 0, 468, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 0, + 0, 0, 0, 287, 0, 470, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 473, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 0, 0, 0, 0, 287, 0, 476, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 475, 271, 272, 273, + 285, 286, 0, 0, 0, 0, 287, 0, 477, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 0, 0, 0, 0, 285, 0, 523, 271, 272, + 284, 285, 286, 0, 0, 0, 0, 287, 0, 479, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 524, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 0, 0, 0, 0, 285, 0, 525, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 531, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 0, 0, 0, 0, 285, - 0, 552, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 554, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 0, 0, 0, - 0, 285, 0, 556, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 558, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 0, 0, 0, 285, 0, 560, 271, 272, 273, 274, + 283, 284, 285, 286, 0, 0, 0, 0, 287, 0, + 527, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 0, 0, 0, 0, 287, + 0, 528, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 0, 0, 0, 0, + 287, 0, 529, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 0, 0, 0, + 0, 287, 0, 535, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, + 0, 0, 287, 0, 556, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 0, + 0, 0, 0, 287, 0, 558, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 560, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 0, 0, 0, 0, 287, 0, 562, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 562, 271, 272, 273, + 285, 286, 0, 0, 0, 0, 287, 0, 564, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 0, 0, 0, 0, 285, 0, 564, 271, 272, + 284, 285, 286, 0, 0, 0, 0, 287, 0, 566, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 566, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 0, 0, 0, 0, 285, 0, 568, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 570, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 0, 0, 0, 0, 285, - 0, 572, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 576, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 0, 0, 0, - 0, 285, 0, 578, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 580, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 0, 0, 0, 285, 0, 582, 271, 272, 273, 274, + 283, 284, 285, 286, 0, 0, 0, 0, 287, 0, + 568, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 0, 0, 0, 0, 287, + 0, 570, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 0, 0, 0, 0, + 287, 0, 572, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 0, 0, 0, + 0, 287, 0, 574, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, + 0, 0, 287, 0, 576, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 0, + 0, 0, 0, 287, 0, 580, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 582, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 0, 0, 0, 0, 287, 0, 584, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 584, 271, 272, 273, + 285, 286, 0, 0, 0, 0, 287, 0, 586, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 0, 0, 0, 0, 285, 0, 586, 271, 272, + 284, 285, 286, 0, 0, 0, 0, 287, 0, 588, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 635, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 0, 0, 0, 0, 285, 0, 639, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 646, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 0, 0, 0, 0, 285, - 0, 647, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 651, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 0, 0, 0, - 0, 285, 0, 810, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 812, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 0, 0, 0, 285, 0, 814, 271, 272, 273, 274, + 283, 284, 285, 286, 0, 0, 0, 0, 287, 0, + 590, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 0, 0, 0, 0, 287, + 0, 640, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 0, 0, 0, 0, + 287, 0, 645, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 0, 0, 0, + 0, 287, 0, 652, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, + 0, 0, 287, 0, 653, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 0, + 0, 0, 0, 287, 0, 657, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 818, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 0, 0, 0, 0, 287, 0, 820, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 816, 271, 272, 273, + 285, 286, 0, 0, 0, 0, 287, 0, 822, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 0, 0, 0, 0, 285, 0, 822, 271, 272, + 284, 285, 286, 0, 0, 0, 0, 287, 0, 824, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 881, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 0, 0, 0, 0, 285, 0, 883, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 905, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 0, 0, 0, 0, 285, - 0, 940, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 968, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 0, 0, 0, - 0, 285, 0, 1074, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 1115, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 0, 0, 0, 285 + 283, 284, 285, 286, 0, 0, 0, 0, 287, 0, + 830, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 0, 0, 0, 0, 287, + 0, 891, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 0, 0, 0, 0, + 287, 0, 893, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 0, 0, 0, + 0, 287, 0, 915, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, + 0, 0, 287, 0, 951, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 0, + 0, 0, 0, 287, 0, 979, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 0, 0, 0, 0, 287, 0, 998, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 0, 0, 0, 0, 287, 0, 1088, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 0, 0, 0, 0, 287, 0, 1130, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 0, 0, 0, 0, 287 }; static const short yycheck[] = { 4, - 2, 332, 613, 4, 264, 999, 4, 1001, 2, 1003, - 6, 175, 4, 4, 178, 4, 6, 45, 262, 4, - 4, 127, 5, 4, 4, 4, 132, 127, 6, 5, - 7, 67, 132, 4, 198, 67, 200, 4, 25, 26, - 4, 28, 6, 6, 49, 50, 4, 6, 292, 126, - 6, 34, 35, 36, 37, 6, 133, 40, 34, 35, - 36, 37, 130, 5, 40, 68, 127, 122, 123, 72, - 126, 132, 1066, 6, 52, 130, 6, 75, 76, 77, - 78, 79, 6, 75, 76, 77, 78, 79, 126, 52, - 126, 776, 34, 35, 36, 37, 126, 133, 40, 68, - 7, 133, 126, 72, 7, 86, 87, 126, 68, 1103, - 126, 1105, 72, 1107, 133, 726, 126, 1111, 127, 86, - 87, 122, 123, 132, 114, 45, 103, 128, 127, 130, - 45, 134, 47, 132, 135, 126, 134, 133, 49, 122, - 123, 1135, 134, 1137, 133, 1139, 45, 130, 133, 133, - 108, 109, 110, 133, 133, 113, 114, 133, 68, 117, - 116, 117, 72, 114, 128, 134, 124, 427, 6, 7, - 128, 129, 130, 160, 134, 162, 126, 341, 128, 137, - 138, 168, 140, 116, 117, 172, 144, 145, 126, 147, - 128, 133, 116, 117, 262, 359, 103, 104, 105, 106, - 103, 104, 105, 106, 47, 163, 164, 451, 116, 117, - 454, 320, 321, 322, 172, 122, 123, 126, 126, 128, - 207, 832, 126, 130, 292, 133, 45, 185, 186, 187, - 41, 189, 68, 44, 192, 193, 72, 68, 122, 123, - 68, 72, 58, 59, 72, 203, 251, 252, 253, 254, - 133, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 264, 116, 117, 6, 7, 134, 7, - 126, 133, 128, 134, 262, 7, 134, 68, 4, 6, - 132, 72, 134, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 126, 331, - 332, 289, 290, 126, 292, 128, 294, 331, 332, 4, - 68, 299, 329, 330, 72, 303, 1031, 4, 306, 1034, - 126, 338, 1037, 597, 312, 313, 314, 126, 316, 317, - 318, 319, 320, 321, 322, 41, 126, 4, 44, 45, - 126, 982, 128, 134, 8, 4, 334, 335, 336, 337, - 338, 339, 626, 451, 342, 6, 454, 68, 126, 347, - 128, 72, 460, 351, 352, 103, 104, 105, 106, 370, - 126, 103, 104, 105, 106, 8, 134, 1092, 11, 12, - 368, 126, 126, 371, 122, 123, 116, 117, 116, 117, - 122, 123, 68, 428, 68, 126, 72, 671, 72, 673, - 674, 675, 132, 1118, 134, 133, 1121, 5, 126, 1124, - 116, 117, 1127, 68, 116, 117, 4, 72, 44, 45, - 126, 47, 6, 134, 116, 117, 427, 133, 718, 719, - 132, 1146, 134, 1148, 422, 1150, 34, 35, 36, 37, - 132, 429, 40, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 126, 134, 128, - 134, 125, 6, 451, 452, 126, 454, 128, 5, 457, - 134, 133, 460, 490, 89, 463, 116, 117, 126, 134, - 468, 469, 89, 471, 4, 5, 474, 126, 505, 116, - 117, 479, 133, 133, 116, 117, 126, 89, 128, 597, - 535, 126, 126, 491, 492, 133, 133, 868, 116, 117, - 133, 133, 500, 146, 34, 35, 36, 37, 151, 4, - 40, 116, 117, 126, 132, 122, 123, 515, 626, 116, - 117, 128, 126, 130, 535, 126, 126, 132, 135, 527, - 126, 529, 530, 176, 126, 132, 128, 180, 181, 128, - 41, 42, 43, 44, 45, 46, 47, 48, 126, 50, - 128, 52, 53, 598, 55, 56, 116, 117, 41, 116, - 117, 44, 45, 671, 47, 673, 674, 675, 133, 133, - 71, 126, 132, 128, 619, 132, 574, 575, 128, 128, - 81, 82, 83, 126, 8, 128, 6, 133, 116, 117, - 588, 589, 590, 591, 592, 593, 594, 116, 117, 597, - 126, 628, 128, 601, 132, 116, 117, 130, 606, 116, - 117, 133, 623, 132, 116, 117, 116, 117, 616, 89, - 126, 132, 128, 6, 995, 132, 6, 126, 626, 128, - 132, 128, 132, 631, 3, 4, 663, 664, 665, 6, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 4, 133, 61, 62, 63, 64, - 5, 66, 670, 671, 672, 673, 674, 675, 73, 74, - 678, 679, 125, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 130, 7, 697, - 698, 125, 128, 701, 126, 126, 128, 128, 719, 45, - 134, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 126, 126, 128, 128, 125, 47, 727, - 99, 100, 101, 102, 118, 119, 120, 735, 132, 7, - 134, 125, 7, 122, 123, 127, 773, 116, 117, 128, - 6, 130, 121, 128, 752, 130, 135, 126, 7, 132, - 129, 134, 131, 7, 133, 122, 123, 133, 766, 767, - 768, 128, 132, 130, 134, 773, 86, 132, 135, 824, - 127, 424, 425, 116, 117, 118, 119, 120, 132, 800, - 134, 836, 125, 132, 132, 134, 134, 795, 796, 797, - 1004, 132, 6, 134, 132, 803, 134, 132, 132, 134, - 808, 132, 132, 134, 134, 842, 4, 844, 6, 864, - 132, 132, 134, 134, 6, 4, 868, 825, 8, 132, - 132, 134, 134, 132, 868, 134, 132, 127, 134, 7, - 129, 7, 869, 7, 871, 7, 873, 7, 7, 7, - 127, 127, 127, 57, 127, 134, 854, 855, 130, 7, - 134, 7, 133, 1067, 133, 7, 864, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 130, 126, - 878, 126, 125, 133, 126, 6, 4, 6, 129, 887, - 888, 6, 6, 6, 128, 7, 6, 114, 7, 7, - 133, 899, 900, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 7, 7, 917, - 7, 125, 7, 7, 7, 923, 7, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 7, 7, 941, 7, 125, 4, 127, 126, 6, - 6, 6, 6, 995, 4, 6, 954, 4, 6, 133, - 127, 995, 127, 7, 6, 6, 964, 130, 966, 6, - 6, 998, 970, 1000, 129, 1002, 133, 975, 6, 133, - 6, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 633, 634, 6, 636, 125, 6, 6, 85, 641, 642, - 998, 130, 1000, 6, 1002, 4, 6, 129, 6, 6, - 1008, 1009, 1010, 6, 6, 6, 6, 1015, 1016, 6, - 6, 6, 6, 6, 6, 6, 1024, 6, 6, 1027, - 6, 6, 6, 133, 4, 6, 130, 6, 6, 682, - 683, 684, 7, 6, 6, 6, 84, 133, 6, 1047, - 6, 127, 134, 133, 133, 133, 133, 132, 87, 1057, - 6, 133, 1060, 6, 5, 1063, 134, 6, 132, 1114, - 6, 133, 6, 6, 6, 6, 6, 1075, 6, 1077, - 6, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 6, 1141, 6, 1143, 125, - 743, 5, 133, 133, 747, 6, 133, 6, 132, 134, - 753, 754, 755, 133, 1159, 758, 759, 760, 761, 762, - 763, 764, 6, 3, 4, 6, 133, 6, 6, 9, + 266, 617, 335, 177, 2, 4, 180, 4, 1011, 4, + 1013, 4, 1015, 2, 264, 6, 4, 4, 4, 4, + 4, 6, 4, 6, 5, 127, 200, 6, 202, 7, + 7, 5, 4, 6, 117, 118, 6, 4, 6, 4, + 6, 68, 117, 118, 294, 50, 51, 6, 68, 117, + 118, 134, 4, 34, 35, 36, 37, 6, 133, 40, + 34, 35, 36, 37, 6, 133, 40, 69, 127, 6, + 127, 73, 117, 118, 5, 134, 127, 1080, 129, 76, + 77, 78, 79, 80, 127, 53, 129, 53, 133, 76, + 77, 78, 79, 80, 117, 118, 41, 6, 7, 44, + 127, 87, 88, 34, 35, 36, 37, 134, 69, 40, + 133, 7, 73, 90, 134, 1118, 732, 1120, 127, 1122, + 87, 88, 128, 1126, 123, 124, 104, 133, 7, 133, + 129, 135, 131, 135, 117, 118, 115, 136, 135, 134, + 50, 134, 115, 134, 129, 48, 134, 1150, 135, 1152, + 134, 1154, 134, 134, 46, 127, 48, 109, 110, 111, + 134, 46, 114, 115, 430, 127, 118, 69, 117, 118, + 344, 73, 134, 125, 135, 117, 118, 129, 130, 131, + 117, 118, 117, 118, 784, 128, 138, 139, 362, 141, + 133, 143, 123, 124, 146, 147, 128, 149, 127, 134, + 131, 133, 117, 118, 454, 117, 118, 457, 104, 105, + 106, 107, 46, 165, 166, 131, 117, 118, 133, 127, + 135, 133, 174, 135, 840, 104, 105, 106, 107, 127, + 117, 118, 133, 135, 135, 187, 188, 189, 127, 191, + 127, 46, 194, 195, 123, 124, 127, 134, 253, 254, + 255, 256, 131, 205, 69, 127, 134, 129, 73, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 266, 134, 128, 26, 27, 41, 29, 133, 44, + 69, 46, 264, 69, 73, 69, 127, 73, 129, 73, + 135, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 334, 335, 7, 291, + 292, 46, 294, 69, 296, 334, 335, 73, 264, 301, + 127, 601, 129, 305, 69, 69, 128, 309, 73, 73, + 6, 133, 69, 315, 316, 317, 73, 319, 320, 321, + 322, 323, 324, 325, 4, 5, 135, 993, 294, 7, + 630, 135, 117, 118, 127, 337, 338, 339, 340, 341, + 342, 69, 127, 345, 4, 73, 69, 127, 350, 134, + 73, 4, 354, 355, 34, 35, 36, 37, 373, 135, + 40, 4, 129, 8, 131, 127, 11, 129, 13, 371, + 135, 135, 374, 127, 117, 118, 431, 677, 135, 679, + 680, 681, 117, 118, 6, 104, 105, 106, 107, 5, + 162, 134, 164, 127, 1044, 117, 118, 1047, 170, 134, + 1050, 127, 174, 129, 123, 124, 4, 135, 724, 725, + 4, 133, 135, 123, 124, 430, 117, 118, 34, 35, + 36, 37, 127, 425, 40, 127, 104, 105, 106, 107, + 432, 4, 133, 117, 118, 117, 118, 209, 117, 118, + 117, 118, 127, 117, 118, 123, 124, 117, 118, 133, + 6, 133, 454, 455, 133, 457, 133, 1107, 460, 133, + 127, 463, 129, 133, 466, 127, 123, 124, 127, 471, + 472, 6, 129, 475, 131, 90, 478, 123, 124, 136, + 127, 483, 129, 1133, 539, 131, 1136, 5, 454, 1139, + 134, 457, 1142, 495, 496, 878, 127, 463, 129, 123, + 124, 127, 504, 148, 127, 129, 129, 131, 153, 59, + 60, 1161, 136, 1163, 44, 1165, 46, 519, 48, 119, + 120, 121, 123, 124, 539, 127, 126, 129, 129, 531, + 131, 533, 534, 178, 127, 136, 41, 182, 183, 44, + 127, 46, 129, 48, 323, 324, 325, 602, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 332, 333, 90, 127, 126, 129, 6, 7, 623, 341, + 62, 63, 64, 65, 90, 67, 578, 579, 127, 127, + 129, 129, 74, 75, 127, 8, 129, 127, 134, 129, + 592, 593, 594, 595, 596, 597, 598, 134, 127, 601, + 129, 127, 127, 605, 129, 127, 127, 129, 610, 133, + 127, 135, 627, 117, 118, 119, 120, 121, 620, 133, + 127, 135, 126, 133, 1007, 135, 134, 133, 630, 135, + 3, 4, 127, 127, 636, 601, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 133, 133, 135, 135, 630, 133, 133, 135, 135, 133, + 133, 135, 135, 127, 676, 677, 678, 679, 680, 681, + 4, 134, 684, 685, 134, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 134, + 129, 703, 704, 126, 4, 707, 6, 133, 129, 135, + 725, 677, 135, 679, 680, 681, 133, 133, 135, 135, + 6, 133, 494, 135, 133, 129, 135, 100, 101, 102, + 103, 733, 133, 131, 135, 134, 90, 509, 6, 741, + 6, 6, 129, 4, 117, 118, 134, 5, 126, 122, + 131, 7, 129, 46, 127, 7, 48, 130, 760, 132, + 7, 134, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 128, 774, 775, 776, 126, 6, 832, 7, 781, + 7, 87, 427, 428, 134, 133, 128, 128, 133, 844, + 6, 4, 1016, 808, 130, 7, 7, 7, 7, 7, + 7, 803, 804, 805, 7, 128, 128, 128, 128, 811, + 8, 7, 131, 7, 816, 7, 131, 135, 135, 874, + 134, 134, 127, 127, 134, 127, 6, 4, 6, 130, + 878, 833, 6, 6, 6, 129, 7, 6, 115, 878, + 46, 7, 7, 134, 7, 7, 7, 849, 7, 7, + 7, 7, 7, 7, 7, 4, 6, 1081, 6, 6, + 632, 6, 864, 865, 4, 6, 4, 6, 127, 131, + 134, 128, 874, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 128, 7, 888, 6, 126, 130, + 127, 6, 6, 6, 6, 897, 898, 669, 670, 671, + 134, 6, 134, 6, 86, 6, 6, 909, 910, 131, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 6, 927, 4, 6, 126, 130, + 6, 6, 934, 6, 6, 6, 6, 135, 6, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 6, 51, + 952, 53, 54, 6, 56, 57, 6, 6, 6, 1007, + 6, 6, 6, 965, 6, 6, 6, 134, 1007, 4, + 72, 7, 6, 975, 6, 977, 6, 6, 6, 981, + 82, 83, 84, 6, 986, 131, 85, 6, 6, 6, + 134, 133, 135, 638, 639, 88, 641, 134, 134, 644, + 134, 134, 647, 648, 128, 7, 134, 6, 1010, 781, + 1012, 5, 1014, 6, 135, 6, 134, 133, 1020, 1021, + 1022, 6, 6, 6, 6, 1027, 1028, 6, 6, 6, + 6, 5, 5, 135, 1036, 6, 134, 134, 1040, 134, + 6, 135, 134, 688, 689, 690, 133, 6, 6, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 1060, 51, + 6, 53, 54, 6, 56, 57, 135, 134, 6, 1071, + 134, 134, 1074, 134, 1129, 1077, 6, 6, 6, 851, + 72, 853, 6, 6, 6, 6, 6, 1089, 6, 1091, + 82, 83, 84, 0, 0, 542, 1060, 2, 740, 2, + 985, 1156, -1, 1158, 8, 750, 836, 879, -1, 881, + 755, 883, -1, -1, -1, -1, 761, 762, 763, 1174, + 58, 766, 767, 768, 769, 770, 771, 772, -1, -1, + 3, 4, -1, -1, -1, -1, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, -1, -1, 831, -1, 126, 62, + 63, 64, 65, 66, 67, -1, -1, -1, -1, -1, + -1, 74, 75, -1, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, + -1, -1, 126, -1, 128, -1, -1, 100, 101, 102, + 103, -1, -1, -1, -1, -1, -1, -1, 1010, 6, + 1012, -1, 1014, 888, 117, 118, -1, -1, -1, 122, + -1, -1, -1, -1, 127, -1, 901, -1, -1, 132, + -1, -1, 135, -1, -1, 1037, 911, 3, 4, -1, + 915, -1, -1, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, + -1, -1, -1, -1, -1, 41, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, 62, 63, 64, 65, + 66, 67, 68, 135, -1, -1, -1, -1, 74, 75, + -1, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, -1, -1, -1, -1, 126, + -1, -1, -1, -1, 100, 101, 102, 103, 6, -1, + -1, -1, -1, -1, 1019, -1, -1, -1, -1, -1, + -1, 117, 118, -1, -1, -1, 122, -1, -1, -1, + -1, 127, -1, 3, 4, -1, 132, -1, 134, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 5, 134, 6, 133, 6, 6, 6, - 133, 41, 6, 6, 6, 6, 133, 6, 0, 0, - 538, 734, 1047, 2, 2, 974, 828, -1, -1, -1, - 823, 61, 62, 63, 64, 65, 66, -1, -1, -1, - -1, -1, -1, 73, 74, -1, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - -1, -1, -1, -1, 125, -1, -1, -1, -1, 99, - 100, 101, 102, -1, -1, -1, -1, -1, -1, -1, - 6, -1, -1, -1, -1, 878, 116, 117, -1, -1, - -1, 121, -1, -1, -1, -1, 126, -1, 891, -1, - -1, 131, -1, -1, 134, -1, -1, -1, 901, 3, - 4, -1, 905, -1, -1, 9, 10, 11, 12, 13, + 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, + -1, 41, -1, -1, -1, -1, -1, 1082, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 62, 63, 64, 65, 66, 67, 68, 8, + -1, -1, -1, -1, 74, 75, -1, -1, -1, -1, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + 100, 101, 102, 103, 6, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 117, 118, -1, + -1, -1, 122, -1, -1, -1, -1, 127, -1, 3, + 4, -1, 132, -1, 134, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, -1, 41, 107, 108, + -1, -1, -1, -1, -1, -1, -1, 41, -1, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, -1, -1, -1, 125, 61, 62, 63, - 64, 65, 66, 67, -1, 134, -1, -1, -1, 73, - 74, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, -1, -1, -1, -1, 125, - -1, -1, -1, -1, -1, 99, 100, 101, 102, 6, - -1, -1, -1, -1, 1007, -1, -1, -1, -1, -1, - -1, -1, 116, 117, -1, -1, -1, 121, -1, -1, - -1, -1, 126, -1, 3, 4, -1, 131, -1, 133, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, - -1, -1, 41, -1, -1, 1068, -1, -1, -1, -1, + 119, 120, 121, -1, -1, -1, -1, 126, 62, 63, + 64, 65, 66, 67, 8, -1, -1, -1, -1, -1, + 74, 75, -1, -1, -1, -1, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, 100, 101, 102, 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 61, 62, 63, 64, 65, 66, 67, 8, - -1, -1, -1, -1, 73, 74, -1, -1, -1, -1, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, -1, - 99, 100, 101, 102, 6, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 116, 117, -1, - -1, -1, 121, -1, -1, -1, -1, 126, -1, 3, - 4, -1, 131, -1, 133, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, -1, 41, 107, 108, + -1, -1, -1, 117, 118, -1, -1, -1, 122, -1, + -1, -1, -1, 127, -1, 3, 4, -1, 132, -1, + 134, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, -1, 41, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, + -1, -1, 126, -1, 62, 63, 64, 65, 66, 67, + -1, -1, 3, 4, -1, -1, 74, 75, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 100, 101, 102, 103, 6, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 117, + 118, -1, -1, -1, 122, -1, -1, -1, -1, 127, + -1, 3, 4, -1, 132, -1, 134, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, -1, -1, -1, -1, -1, -1, -1, -1, 100, + 101, 102, 103, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 117, 118, -1, -1, + -1, 122, -1, -1, -1, -1, 127, -1, -1, 130, + -1, 132, -1, 134, -1, -1, -1, -1, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, -1, -1, -1, -1, 126, 6, 100, 101, + 102, 103, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 117, 118, -1, -1, -1, + 122, -1, -1, -1, -1, 127, -1, -1, 130, -1, + 132, -1, 134, 3, 4, -1, -1, -1, -1, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, -1, -1, -1, -1, -1, 3, 4, + -1, -1, -1, -1, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, -1, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, -1, -1, -1, 125, 61, 62, 63, - 64, 65, 66, -1, 8, -1, -1, -1, -1, 73, - 74, -1, -1, -1, -1, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, - -1, -1, -1, 125, -1, 99, 100, 101, 102, -1, + 119, 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 116, 117, -1, -1, -1, 121, -1, -1, - -1, -1, 126, -1, 3, 4, -1, 131, -1, 133, + 100, 101, 102, 103, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 117, 118, -1, + -1, -1, 122, -1, -1, -1, -1, 127, -1, -1, + -1, -1, 132, -1, 134, 100, 101, 102, 103, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 117, 118, -1, -1, -1, 122, -1, -1, + -1, -1, 127, -1, 3, 4, 5, 132, 7, 134, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, - -1, -1, 41, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, -1, -1, -1, - -1, 125, 61, 62, 63, 64, 65, 66, -1, -1, - 3, 4, -1, -1, 73, 74, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 99, 100, 101, 102, 6, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 116, 117, -1, - -1, -1, 121, -1, -1, -1, -1, 126, -1, 3, - 4, -1, 131, -1, 133, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, 99, 100, 101, 102, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 116, 117, -1, -1, -1, 121, -1, - -1, -1, -1, 126, -1, -1, 129, -1, 131, -1, - 133, -1, -1, -1, -1, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, - -1, -1, -1, 125, 6, 99, 100, 101, 102, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 116, 117, -1, -1, -1, 121, -1, -1, - -1, -1, 126, -1, -1, 129, -1, 131, -1, 133, + 29, 30, 31, 32, -1, 34, 35, 36, 37, -1, + -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, -1, -1, -1, -1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - -1, -1, -1, -1, -1, 3, 4, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 100, 101, 102, 103, 104, 105, 106, 107, 62, + 63, 64, 65, 66, 67, -1, -1, -1, 117, 118, + -1, 74, 75, 122, 123, 124, -1, -1, 127, -1, + 129, -1, 131, 132, -1, -1, -1, -1, 6, -1, + -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, + 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 117, 118, -1, -1, -1, 122, + -1, -1, -1, -1, 127, 3, 4, 5, -1, 132, -1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, - -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 99, 100, 101, 102, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 116, 117, -1, -1, -1, 121, -1, - -1, -1, -1, 126, -1, -1, -1, -1, 131, -1, - 133, 99, 100, 101, 102, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 116, 117, - -1, -1, -1, 121, -1, -1, -1, -1, 126, -1, - 3, 4, 5, 131, 7, 133, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - -1, 34, 35, 36, 37, -1, -1, 40, -1, -1, - -1, -1, -1, -1, -1, -1, 3, 4, -1, -1, - -1, -1, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, - -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 99, 100, 101, 102, - 103, 104, 105, 106, 61, 62, 63, 64, 65, 66, - -1, -1, -1, 116, 117, -1, 73, 74, 121, 122, - 123, -1, -1, 126, -1, 128, -1, 130, 131, -1, - -1, -1, -1, -1, 6, -1, -1, -1, -1, -1, - -1, -1, 99, 100, 101, 102, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, - 117, -1, -1, -1, 121, -1, -1, -1, -1, 126, - 3, 4, 5, -1, 131, -1, 9, 10, 11, 12, + 28, 29, 30, 31, 32, -1, 34, 35, 36, 37, + 3, 4, 40, -1, -1, -1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - -1, 34, 35, 36, 37, 3, 4, 40, -1, -1, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + -1, -1, -1, 6, -1, -1, -1, -1, -1, -1, + -1, -1, 100, 101, 102, 103, -1, -1, -1, -1, + -1, -1, 6, -1, -1, -1, -1, -1, -1, 117, + 118, -1, -1, -1, 122, -1, -1, -1, -1, 127, + -1, 6, -1, -1, 132, -1, -1, 100, 101, 102, + 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 117, 118, -1, -1, -1, 122, + -1, -1, -1, -1, 127, 3, 4, -1, -1, 132, -1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, - -1, -1, -1, 125, -1, -1, -1, -1, 6, -1, - -1, -1, -1, -1, -1, -1, 99, 100, 101, 102, - -1, -1, -1, -1, -1, -1, -1, 6, -1, -1, - -1, -1, -1, 116, 117, -1, -1, -1, 121, -1, - -1, -1, -1, 126, -1, -1, 6, -1, 131, -1, - -1, 99, 100, 101, 102, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 116, 117, - -1, -1, -1, 121, -1, -1, -1, -1, 126, 3, - 4, -1, -1, 131, -1, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 107, + 28, 29, 30, 31, 32, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 6, + -1, -1, -1, 126, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 6, -1, + -1, -1, 126, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 6, -1, -1, + -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 100, 101, 102, 103, 6, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 117, + 118, -1, -1, -1, 122, 6, -1, -1, -1, 127, + -1, -1, -1, -1, 132, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 6, -1, -1, -1, -1, -1, + -1, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 8, -1, -1, -1, 126, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 6, -1, -1, -1, 125, 107, 108, + 118, 119, 120, 121, 8, -1, -1, -1, 126, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 6, -1, -1, -1, 125, 107, 108, 109, + 119, 120, 121, 8, -1, -1, -1, 126, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 6, -1, -1, -1, 125, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 99, 100, 101, 102, -1, - 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 116, 117, -1, -1, -1, 121, -1, -1, - -1, 8, 126, -1, -1, -1, -1, 131, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 8, -1, -1, -1, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, -1, 8, - -1, -1, 125, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, -1, -1, -1, - -1, 125, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, -1, -1, -1, -1, - 125, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, -1, -1, -1, -1, 125, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, -1, -1, -1, -1, 125, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, 0, 1, -1, 125, 4, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, -1, -1, -1, 125, -1, -1, -1, - -1, -1, -1, 132, -1, 134, 33, -1, -1, -1, - -1, 38, 39, -1, 41, 42, 43, 44, 45, 46, - 47, 48, -1, 50, 51, 52, 53, 54, 55, 56, - -1, -1, -1, 60, 61, 62, 63, 64, 65, 66, - -1, 68, 69, 70, 71, 4, 73, 74, -1, -1, - -1, -1, -1, 80, 81, 82, 83, -1, -1, 86, - -1, 88, -1, 90, 91, 92, 93, 94, 95, 96, - 97, 98, -1, -1, 33, -1, -1, -1, -1, 38, - 39, -1, 41, 42, 43, 44, 45, 46, 47, 48, - -1, 50, 51, 52, 53, 54, 55, 56, -1, -1, - -1, 60, 61, 62, 63, 64, 65, 66, -1, 68, - 69, 70, 71, -1, 73, 74, -1, -1, -1, -1, - -1, 80, 81, 82, 83, -1, -1, 86, -1, 88, - -1, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 41, 42, 43, 44, 45, 46, 47, 48, -1, 50, - -1, 52, 53, -1, 55, 56, -1, 41, 42, 43, - 44, 45, 46, 47, 48, -1, 50, -1, 52, 53, - 71, 55, 56, -1, -1, -1, -1, -1, -1, -1, - 81, 82, 83, -1, -1, -1, -1, 71, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, - 41, 42, 43, 44, 45, 46, 47, 48, -1, 50, - -1, 52, 53, -1, 55, 56, -1, 41, 42, 43, - 44, 45, 46, 47, 48, -1, 50, -1, 52, 53, - 71, 55, 56, 134, -1, -1, -1, -1, -1, -1, - 81, 82, 83, -1, -1, -1, -1, 71, -1, -1, - 134, -1, -1, -1, -1, -1, -1, 81, 82, 83, - 41, 42, 43, 44, 45, 46, 47, 48, -1, 50, - -1, 52, 53, -1, 55, 56, -1, 41, 42, 43, - 44, 45, 46, 47, 48, -1, 50, -1, 52, 53, - 71, 55, 56, 134, -1, -1, -1, -1, -1, -1, - 81, 82, 83, -1, -1, -1, -1, 71, -1, -1, - 134, -1, -1, -1, -1, -1, -1, 81, 82, 83, - 41, 42, 43, 44, 45, 46, 47, 48, -1, 50, - -1, 52, 53, -1, 55, 56, -1, 41, 42, 43, - 44, 45, 46, 47, 48, -1, 50, -1, 52, 53, - 71, 55, 56, 134, -1, -1, -1, -1, -1, -1, - 81, 82, 83, -1, -1, -1, -1, 71, -1, -1, - 134, -1, -1, -1, -1, -1, -1, 81, 82, 83, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, -1, - -1, -1, -1, -1, -1, 132, -1, 134, -1, -1, - -1, -1, -1, 134, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, - 134, -1, 125, -1, -1, -1, -1, -1, -1, 132, - -1, 134, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, -1, -1, -1, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, 134, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, -1, - -1, -1, -1, -1, -1, -1, -1, 134, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, -1, -1, -1, 125, -1, -1, -1, - -1, -1, -1, -1, -1, 134, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, 134, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, - -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, 134, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, -1, -1, -1, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, 134, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, -1, - -1, -1, -1, -1, -1, -1, -1, 134, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, -1, -1, -1, 125, -1, -1, -1, - -1, -1, -1, -1, -1, 134, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, 134, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, - -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, 134, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, -1, -1, -1, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, 134, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, -1, - -1, -1, -1, -1, -1, -1, -1, 134, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, -1, -1, -1, 125, -1, -1, -1, - -1, -1, -1, -1, -1, 134, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, 134, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, - -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, 134, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, -1, -1, -1, -1, - 125, -1, -1, -1, -1, -1, -1, -1, -1, 134, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, -1, - -1, -1, -1, -1, -1, -1, -1, 134, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, -1, -1, -1, 125, -1, -1, -1, - -1, -1, -1, -1, -1, 134, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, - -1, -1, -1, 134, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, - -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, - -1, 134, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, -1, -1, -1, -1, - 125, -1, 127, -1, -1, -1, -1, 132, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, -1, -1, -1, 125, -1, -1, -1, - -1, -1, -1, 132, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, - -1, -1, 125, -1, -1, -1, -1, -1, -1, 132, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, -1, - -1, -1, -1, -1, -1, 132, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, - -1, 132, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, -1, -1, -1, -1, - 125, -1, -1, -1, -1, -1, -1, 132, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, -1, -1, -1, 125, -1, -1, -1, - -1, -1, -1, 132, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, - -1, -1, 125, -1, -1, -1, -1, -1, -1, 132, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, -1, - -1, -1, -1, -1, -1, 132, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, - -1, 132, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, -1, -1, -1, -1, - 125, -1, -1, -1, -1, -1, -1, 132, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, -1, -1, -1, 125, -1, -1, -1, - -1, -1, -1, 132, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, - -1, -1, 125, -1, -1, -1, -1, -1, -1, 132, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, -1, - -1, -1, -1, -1, -1, 132, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, - -1, 132, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, -1, -1, -1, -1, - 125, -1, -1, -1, -1, -1, -1, 132, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, -1, -1, -1, 125, -1, -1, -1, - -1, -1, -1, 132, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, - -1, -1, 125, -1, -1, -1, -1, -1, -1, 132, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, -1, - -1, -1, -1, -1, -1, 132, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, - -1, 132, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, -1, -1, -1, -1, - 125, -1, -1, -1, -1, -1, -1, 132, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, -1, -1, -1, 125, -1, -1, -1, - -1, -1, -1, 132, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, - -1, -1, 125, -1, -1, -1, -1, -1, -1, 132, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, -1, - -1, -1, -1, -1, -1, 132, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, - -1, 132, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, -1, -1, -1, -1, - 125, -1, -1, -1, -1, -1, -1, 132, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, -1, -1, -1, 125, -1, -1, -1, - -1, -1, -1, 132, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, - -1, -1, 125, -1, -1, -1, -1, -1, -1, 132, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, -1, - -1, -1, -1, -1, -1, 132, 107, 108, 109, 110, + 120, 121, -1, -1, -1, -1, 126, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, - -1, 132, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, -1, -1, -1, -1, - 125, -1, -1, -1, -1, -1, -1, 132, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, -1, -1, -1, 125, -1, -1, -1, - -1, -1, -1, 132, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, - -1, -1, 125, -1, -1, -1, -1, -1, -1, 132, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, -1, - -1, -1, -1, -1, -1, 132, 107, 108, 109, 110, + 121, -1, -1, -1, -1, 126, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, + -1, -1, -1, 126, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, + -1, -1, 126, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, -1, 0, 1, + -1, 126, 4, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, + -1, 126, -1, -1, -1, -1, -1, -1, 133, -1, + 135, 33, -1, -1, -1, -1, 38, 39, -1, 41, + 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, + 52, 53, 54, 55, 56, 57, -1, -1, -1, 61, + 62, 63, 64, 65, 66, 67, -1, 69, 70, 71, + 72, 4, 74, 75, -1, -1, -1, -1, -1, 81, + 82, 83, 84, -1, -1, 87, -1, 89, -1, 91, + 92, 93, 94, 95, 96, 97, 98, 99, -1, -1, + 33, -1, -1, -1, -1, 38, 39, -1, 41, 42, + 43, 44, 45, 46, 47, 48, 49, -1, 51, 52, + 53, 54, 55, 56, 57, -1, -1, -1, 61, 62, + 63, 64, 65, 66, 67, -1, 69, 70, 71, 72, + -1, 74, 75, -1, -1, -1, -1, -1, 81, 82, + 83, 84, -1, -1, 87, -1, 89, -1, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 41, 42, 43, + 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, + 54, -1, 56, 57, 41, 42, 43, 44, 45, 46, + 47, 48, 49, -1, 51, -1, 53, 54, 72, 56, + 57, -1, -1, -1, -1, -1, -1, -1, 82, 83, + 84, -1, -1, -1, -1, 72, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 82, 83, 84, 41, 42, + 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, + 53, 54, -1, 56, 57, -1, -1, -1, -1, -1, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 72, + 51, 135, 53, 54, -1, 56, 57, -1, -1, 82, + 83, 84, -1, -1, -1, -1, -1, -1, 135, -1, + -1, 72, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 82, 83, 84, 41, 42, 43, 44, 45, 46, + 47, 48, 49, -1, 51, -1, 53, 54, -1, 56, + 57, 41, 42, 43, 44, 45, 46, 47, 48, 49, + -1, 51, 135, 53, 54, 72, 56, 57, -1, -1, + -1, -1, -1, -1, -1, 82, 83, 84, -1, -1, + -1, -1, 72, -1, 135, -1, -1, -1, -1, -1, + -1, -1, 82, 83, 84, 41, 42, 43, 44, 45, + 46, 47, 48, 49, -1, 51, -1, 53, 54, -1, + 56, 57, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 72, -1, 135, -1, + 126, -1, -1, -1, -1, -1, 82, 83, 84, 135, + -1, -1, -1, -1, -1, 135, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, + -1, 133, -1, 135, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, 135, + -1, -1, 126, -1, -1, -1, -1, -1, -1, 133, + -1, 135, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, + 126, -1, -1, -1, -1, -1, -1, -1, -1, 135, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + -1, -1, -1, -1, -1, -1, -1, 135, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, + -1, -1, -1, -1, -1, 135, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, + -1, -1, -1, 135, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, + -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, + -1, 135, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, + 126, -1, -1, -1, -1, -1, -1, -1, -1, 135, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + -1, -1, -1, -1, -1, -1, -1, 135, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, + -1, -1, -1, -1, -1, 135, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, + -1, -1, -1, 135, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, + -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, + -1, 135, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, + 126, -1, -1, -1, -1, -1, -1, -1, -1, 135, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + -1, -1, -1, -1, -1, -1, -1, 135, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, + -1, -1, -1, -1, -1, 135, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, + -1, -1, -1, 135, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, + -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, + -1, 135, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, + 126, -1, -1, -1, -1, -1, -1, -1, -1, 135, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + -1, -1, -1, -1, -1, -1, -1, 135, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, + -1, -1, -1, -1, -1, 135, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, + -1, -1, -1, 135, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, + -1, -1, 126, -1, 128, -1, -1, -1, -1, 133, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + -1, -1, -1, -1, -1, 133, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, + -1, 133, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, + 126, -1, -1, -1, -1, -1, -1, 133, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, + -1, -1, -1, 133, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, + -1, -1, 126, -1, -1, -1, -1, -1, -1, 133, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + -1, -1, -1, -1, -1, 133, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, + -1, 133, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, + 126, -1, -1, -1, -1, -1, -1, 133, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, + -1, -1, -1, 133, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, + -1, -1, 126, -1, -1, -1, -1, -1, -1, 133, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + -1, -1, -1, -1, -1, 133, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, + -1, 133, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, + 126, -1, -1, -1, -1, -1, -1, 133, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, + -1, -1, -1, 133, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, + -1, -1, 126, -1, -1, -1, -1, -1, -1, 133, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + -1, -1, -1, -1, -1, 133, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, + -1, 133, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, + 126, -1, -1, -1, -1, -1, -1, 133, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, + -1, -1, -1, 133, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, + -1, -1, 126, -1, -1, -1, -1, -1, -1, 133, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + -1, -1, -1, -1, -1, 133, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, + -1, 133, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, + 126, -1, -1, -1, -1, -1, -1, 133, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, + -1, -1, -1, 133, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, + -1, -1, 126, -1, -1, -1, -1, -1, -1, 133, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + -1, -1, -1, -1, -1, 133, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, + -1, 133, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, + 126, -1, -1, -1, -1, -1, -1, 133, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, + -1, -1, -1, 133, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, + -1, -1, 126, -1, -1, -1, -1, -1, -1, 133, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + -1, -1, -1, -1, -1, 133, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, + -1, 133, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, + 126, -1, -1, -1, -1, -1, -1, 133, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, + 130, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, -1, -1, -1, -1, 126, + -1, -1, -1, 130, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, + -1, -1, 126, -1, -1, -1, 130, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - -1, -1, -1, -1, 125, -1, -1, -1, 129, 107, + 121, -1, -1, -1, -1, 126, -1, -1, -1, 130, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, -1, -1, -1, -1, 125, -1, -1, - -1, 129, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, -1, -1, -1, -1, - 125, -1, -1, -1, 129, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, - -1, -1, -1, 125, -1, -1, -1, 129, 107, 108, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + -1, -1, 130, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, + -1, 126, -1, -1, -1, 130, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, -1, -1, 130, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, -1, -1, -1, 125, -1, -1, -1, - 129, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, -1, -1, -1, -1, 125, - -1, -1, -1, 129, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, - -1, -1, 125, -1, -1, -1, 129, 107, 108, 109, + 119, 120, 121, -1, -1, -1, -1, 126, -1, -1, + -1, 130, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, + 126, -1, -1, -1, 130, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, + -1, -1, -1, 126, -1, -1, -1, 130, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, -1, -1, -1, -1, 125, -1, -1, -1, 129, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, -1, - -1, -1, 129, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, -1, -1, -1, - -1, 125, -1, -1, -1, 129, 107, 108, 109, 110, + 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, + 130, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, -1, -1, -1, -1, 126, + -1, -1, -1, 130, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, + -1, -1, 126, -1, -1, -1, 130, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - -1, -1, -1, -1, 125, -1, -1, -1, 129, 107, + 121, -1, -1, -1, -1, 126, -1, -1, -1, 130, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, -1, -1, -1, -1, 125, -1, -1, - -1, 129, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, -1, -1, -1, -1, - 125, -1, -1, -1, 129, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, - -1, -1, -1, 125, -1, -1, -1, 129, 107, 108, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + -1, -1, 130, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, + -1, 126, -1, -1, -1, 130, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, -1, -1, 130, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, -1, -1, -1, 125, -1, -1, -1, - 129, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, -1, -1, -1, -1, 125, - -1, -1, -1, 129, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, - -1, -1, 125, -1, -1, -1, 129, 107, 108, 109, + 119, 120, 121, -1, -1, -1, -1, 126, -1, -1, + -1, 130, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, + 126, -1, -1, -1, 130, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, + -1, -1, -1, 126, -1, -1, -1, 130, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, -1, -1, -1, -1, 125, -1, -1, -1, 129, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, -1, - -1, -1, 129, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, -1, -1, -1, - -1, 125, -1, -1, -1, 129, 107, 108, 109, 110, + 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, + 130, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, -1, -1, -1, -1, 126, + -1, -1, -1, 130, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, + -1, -1, 126, -1, -1, -1, 130, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - -1, -1, -1, -1, 125, -1, -1, -1, 129, 107, + 121, -1, -1, -1, -1, 126, -1, -1, -1, 130, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, -1, -1, -1, -1, 125, -1, -1, - -1, 129, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, -1, -1, -1, -1, - 125, -1, -1, -1, 129, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, - -1, -1, -1, 125, -1, -1, -1, 129, 107, 108, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + -1, -1, 130, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, + -1, 126, -1, -1, -1, 130, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, -1, -1, 130, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, -1, -1, -1, 125, -1, -1, -1, - 129, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, -1, -1, -1, -1, 125, - -1, -1, -1, 129, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, - -1, -1, 125, -1, -1, -1, 129, 107, 108, 109, + 119, 120, 121, -1, -1, -1, -1, 126, -1, -1, + -1, 130, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, + 126, -1, -1, -1, 130, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, + -1, -1, -1, 126, -1, -1, -1, 130, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, -1, -1, -1, -1, 125, -1, -1, -1, 129, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, -1, - -1, -1, 129, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, -1, -1, -1, - -1, 125, -1, -1, -1, 129, 107, 108, 109, 110, + 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, + 130, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, -1, -1, -1, -1, 126, + -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, + 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, + -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, + -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, + -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - -1, -1, -1, -1, 125, -1, -1, -1, 129, 107, + 121, -1, -1, -1, -1, 126, -1, 128, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, -1, -1, -1, -1, 126, -1, 128, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, -1, -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, -1, -1, -1, -1, 125, -1, 127, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, -1, - 127, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, -1, -1, -1, -1, 125, - -1, 127, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, -1, -1, -1, -1, - 125, -1, 127, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, -1, -1, -1, - -1, 125, -1, 127, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, - -1, -1, 125, -1, 127, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, - -1, -1, -1, 125, -1, 127, 107, 108, 109, 110, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, -1, -1, -1, -1, 126, + -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, + 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, + -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, + -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, + -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - -1, -1, -1, -1, 125, -1, 127, 107, 108, 109, + 121, -1, -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, -1, -1, -1, -1, 125, -1, 127, 107, 108, + 120, 121, -1, -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, -1, -1, -1, 125, -1, 127, 107, + 119, 120, 121, -1, -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, -1, -1, -1, -1, 125, -1, 127, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, -1, - 127, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, -1, -1, -1, -1, 125, - -1, 127, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, -1, -1, -1, -1, - 125, -1, 127, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, -1, -1, -1, - -1, 125, -1, 127, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, - -1, -1, 125, -1, 127, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, - -1, -1, -1, 125, -1, 127, 107, 108, 109, 110, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, -1, -1, -1, -1, 126, + -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, + 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, + -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, + -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, + -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - -1, -1, -1, -1, 125, -1, 127, 107, 108, 109, + 121, -1, -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, -1, -1, -1, -1, 125, -1, 127, 107, 108, + 120, 121, -1, -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, -1, -1, -1, 125, -1, 127, 107, + 119, 120, 121, -1, -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, -1, -1, -1, -1, 125, -1, 127, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, -1, - 127, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, -1, -1, -1, -1, 125, - -1, 127, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, -1, -1, -1, -1, - 125, -1, 127, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, -1, -1, -1, - -1, 125, -1, 127, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, - -1, -1, 125, -1, 127, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, - -1, -1, -1, 125, -1, 127, 107, 108, 109, 110, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, -1, -1, -1, -1, 126, + -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, + 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, + -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, + -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, + -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - -1, -1, -1, -1, 125, -1, 127, 107, 108, 109, + 121, -1, -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, -1, -1, -1, -1, 125, -1, 127, 107, 108, + 120, 121, -1, -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, -1, -1, -1, 125, -1, 127, 107, + 119, 120, 121, -1, -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, -1, -1, -1, -1, 125, -1, 127, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, -1, - 127, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, -1, -1, -1, -1, 125, - -1, 127, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, -1, -1, -1, -1, - 125, -1, 127, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, -1, -1, -1, - -1, 125, -1, 127, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, - -1, -1, 125, -1, 127, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, - -1, -1, -1, 125, -1, 127, 107, 108, 109, 110, + 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, + 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, -1, -1, -1, -1, 126, + -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, + 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, + -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, + -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, + -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - -1, -1, -1, -1, 125, -1, 127, 107, 108, 109, + 121, -1, -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, -1, -1, -1, -1, 125, -1, 127, 107, 108, + 120, 121, -1, -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, -1, -1, -1, -1, 125, -1, 127, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, -1, -1, -1, -1, 125, -1, 127, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, -1, -1, -1, -1, 125, -1, - 127, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, -1, -1, -1, -1, 125, - -1, 127, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, -1, -1, -1, -1, - 125, -1, 127, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, -1, -1, -1, - -1, 125, -1, 127, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, - -1, -1, 125, -1, 127, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, - -1, -1, -1, 125 + 119, 120, 121, -1, -1, -1, -1, 126 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/share/bison.simple" @@ -2718,90 +2740,90 @@ yyreduce: switch (yyn) { case 2: -#line 143 "Gmsh.y" +#line 144 "Gmsh.y" { yyerrok; return 1; ; break;} case 5: -#line 154 "Gmsh.y" +#line 155 "Gmsh.y" { return 1; ; break;} case 6: -#line 155 "Gmsh.y" +#line 156 "Gmsh.y" { return 1; ; break;} case 7: -#line 156 "Gmsh.y" +#line 157 "Gmsh.y" { return 1; ; break;} case 8: -#line 157 "Gmsh.y" +#line 158 "Gmsh.y" { return 1; ; break;} case 9: -#line 158 "Gmsh.y" +#line 159 "Gmsh.y" { List_Delete(yyvsp[0].l); return 1; ; break;} case 10: -#line 159 "Gmsh.y" +#line 160 "Gmsh.y" { List_Delete(yyvsp[0].l); return 1; ; break;} case 11: -#line 160 "Gmsh.y" +#line 161 "Gmsh.y" { return 1; ; break;} case 12: -#line 161 "Gmsh.y" +#line 162 "Gmsh.y" { return 1; ; break;} case 13: -#line 162 "Gmsh.y" +#line 163 "Gmsh.y" { return 1; ; break;} case 14: -#line 163 "Gmsh.y" +#line 164 "Gmsh.y" { List_Delete(yyvsp[0].l); return 1; ; break;} case 15: -#line 164 "Gmsh.y" +#line 165 "Gmsh.y" { return 1; ; break;} case 16: -#line 165 "Gmsh.y" +#line 166 "Gmsh.y" { return 1; ; break;} case 17: -#line 166 "Gmsh.y" +#line 167 "Gmsh.y" { return 1; ; break;} case 18: -#line 167 "Gmsh.y" +#line 168 "Gmsh.y" { return 1; ; break;} case 19: -#line 168 "Gmsh.y" +#line 169 "Gmsh.y" { return 1; ; break;} case 20: -#line 173 "Gmsh.y" +#line 174 "Gmsh.y" { yyval.c = "w"; ; break;} case 21: -#line 177 "Gmsh.y" +#line 178 "Gmsh.y" { yyval.c = "a"; ; break;} case 22: -#line 184 "Gmsh.y" +#line 185 "Gmsh.y" { Msg(DIRECT, yyvsp[-2].c); Free(yyvsp[-2].c); ; break;} case 23: -#line 189 "Gmsh.y" +#line 190 "Gmsh.y" { char tmpstring[1024]; FixRelativePath(yyvsp[-1].c, tmpstring); @@ -2818,7 +2840,7 @@ case 23: ; break;} case 24: -#line 204 "Gmsh.y" +#line 205 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble(yyvsp[-4].c, yyvsp[-2].l, tmpstring); @@ -2833,7 +2855,7 @@ case 24: ; break;} case 25: -#line 217 "Gmsh.y" +#line 218 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble(yyvsp[-6].c, yyvsp[-4].l, tmpstring); @@ -2859,7 +2881,7 @@ case 25: ; break;} case 26: -#line 246 "Gmsh.y" +#line 247 "Gmsh.y" { if(!strcmp(yyvsp[-5].c, "View") && !CheckViewErrorFlags(View)){ EndView(View, 0, yyname, yyvsp[-4].c); @@ -2868,7 +2890,7 @@ case 26: ; break;} case 27: -#line 253 "Gmsh.y" +#line 254 "Gmsh.y" { if(!strcmp(yyvsp[-7].c, "View") && !CheckViewErrorFlags(View)){ EndView(View, 0, yyname, yyvsp[-6].c); @@ -2877,7 +2899,7 @@ case 27: ; break;} case 28: -#line 263 "Gmsh.y" +#line 264 "Gmsh.y" { View = BeginView(1); for(int i = 0; i < VIEW_NB_ELEMENT_TYPES; i++){ @@ -2886,23 +2908,23 @@ case 28: ; break;} case 35: -#line 279 "Gmsh.y" +#line 280 "Gmsh.y" { ViewCoord[ViewCoordIdx] = yyvsp[0].d; ViewCoordIdx++; ; break;} case 36: -#line 281 "Gmsh.y" +#line 282 "Gmsh.y" { ViewCoord[ViewCoordIdx] = yyvsp[0].d; ViewCoordIdx++; ; break;} case 37: -#line 286 "Gmsh.y" +#line 287 "Gmsh.y" { if(ViewValueList) List_Add(ViewValueList, &yyvsp[0].d); ; break;} case 38: -#line 288 "Gmsh.y" +#line 289 "Gmsh.y" { if(ViewValueList) List_Add(ViewValueList, &yyvsp[0].d); ; break;} case 39: -#line 293 "Gmsh.y" +#line 294 "Gmsh.y" { if(!strcmp(yyvsp[0].c, "SP")){ ViewElementIdx = 0; ViewNumNodes = 1; ViewNumComp = 1; @@ -3094,7 +3116,7 @@ case 39: ; break;} case 40: -#line 483 "Gmsh.y" +#line 484 "Gmsh.y" { if(ViewValueList){ if(ViewCoordIdx != 3 * ViewNumNodes){ @@ -3114,7 +3136,7 @@ case 40: ; break;} case 41: -#line 501 "Gmsh.y" +#line 502 "Gmsh.y" { if(ViewValueList){ if((List_Nbr(ViewValueList) - ViewNumListTmp) % (ViewNumComp * ViewNumNodes)) @@ -3124,21 +3146,21 @@ case 41: ; break;} case 42: -#line 512 "Gmsh.y" +#line 513 "Gmsh.y" { for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T2C, &yyvsp[0].c[i]); Free(yyvsp[0].c); ; break;} case 43: -#line 517 "Gmsh.y" +#line 518 "Gmsh.y" { for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T2C, &yyvsp[0].c[i]); Free(yyvsp[0].c); ; break;} case 44: -#line 525 "Gmsh.y" +#line 526 "Gmsh.y" { List_Add(View->T2D, &yyvsp[-5].d); List_Add(View->T2D, &yyvsp[-3].d); List_Add(View->T2D, &yyvsp[-1].d); @@ -3147,27 +3169,27 @@ case 44: ; break;} case 45: -#line 532 "Gmsh.y" +#line 533 "Gmsh.y" { View->NbT2++; ; break;} case 46: -#line 539 "Gmsh.y" +#line 540 "Gmsh.y" { for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T3C, &yyvsp[0].c[i]); Free(yyvsp[0].c); ; break;} case 47: -#line 544 "Gmsh.y" +#line 545 "Gmsh.y" { for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T3C, &yyvsp[0].c[i]); Free(yyvsp[0].c); ; break;} case 48: -#line 552 "Gmsh.y" +#line 553 "Gmsh.y" { List_Add(View->T3D, &yyvsp[-7].d); List_Add(View->T3D, &yyvsp[-5].d); List_Add(View->T3D, &yyvsp[-3].d); List_Add(View->T3D, &yyvsp[-1].d); @@ -3176,64 +3198,64 @@ case 48: ; break;} case 49: -#line 559 "Gmsh.y" +#line 560 "Gmsh.y" { View->NbT3++; ; break;} case 50: -#line 567 "Gmsh.y" +#line 568 "Gmsh.y" { View->adaptive = new Adaptive_Post_View(View, yyvsp[-5].l, yyvsp[-2].l); ; break;} case 51: -#line 574 "Gmsh.y" +#line 575 "Gmsh.y" { ViewValueList = View->Time; ; break;} case 52: -#line 578 "Gmsh.y" +#line 579 "Gmsh.y" { ; break;} case 53: -#line 583 "Gmsh.y" +#line 584 "Gmsh.y" { (*View->Grains) [(int)yyvsp[-3].d] = yyvsp[-1].l; ; break;} case 54: -#line 591 "Gmsh.y" +#line 592 "Gmsh.y" { yyval.i = 0; ; break;} case 55: -#line 592 "Gmsh.y" +#line 593 "Gmsh.y" { yyval.i = 1; ; break;} case 56: -#line 593 "Gmsh.y" +#line 594 "Gmsh.y" { yyval.i = 2; ; break;} case 57: -#line 594 "Gmsh.y" +#line 595 "Gmsh.y" { yyval.i = 3; ; break;} case 58: -#line 595 "Gmsh.y" +#line 596 "Gmsh.y" { yyval.i = 4; ; break;} case 59: -#line 599 "Gmsh.y" +#line 600 "Gmsh.y" { yyval.i = 1; ; break;} case 60: -#line 600 "Gmsh.y" +#line 601 "Gmsh.y" { yyval.i = -1; ; break;} case 61: -#line 608 "Gmsh.y" +#line 609 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-3].c; @@ -3266,7 +3288,7 @@ case 61: ; break;} case 62: -#line 639 "Gmsh.y" +#line 640 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-6].c; @@ -3307,7 +3329,7 @@ case 62: ; break;} case 63: -#line 678 "Gmsh.y" +#line 679 "Gmsh.y" { if(List_Nbr(yyvsp[-5].l) != List_Nbr(yyvsp[-1].l)){ yymsg(GERROR, "Incompatible array dimensions in affectation"); @@ -3363,7 +3385,7 @@ case 63: ; break;} case 64: -#line 732 "Gmsh.y" +#line 733 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-5].c; @@ -3382,7 +3404,7 @@ case 64: ; break;} case 65: -#line 749 "Gmsh.y" +#line 750 "Gmsh.y" { // appends to the list Symbol TheSymbol; @@ -3402,7 +3424,7 @@ case 65: ; break;} case 66: -#line 767 "Gmsh.y" +#line 768 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-2].c; @@ -3415,7 +3437,7 @@ case 66: ; break;} case 67: -#line 778 "Gmsh.y" +#line 779 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-5].c; @@ -3433,7 +3455,7 @@ case 67: ; break;} case 68: -#line 797 "Gmsh.y" +#line 798 "Gmsh.y" { char* (*pStrOpt)(int num, int action, char *value); StringXString *pStrCat; @@ -3449,7 +3471,7 @@ case 68: ; break;} case 69: -#line 811 "Gmsh.y" +#line 812 "Gmsh.y" { char* (*pStrOpt)(int num, int action, char *value); StringXString *pStrCat; @@ -3465,7 +3487,7 @@ case 69: ; break;} case 70: -#line 828 "Gmsh.y" +#line 829 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -3493,7 +3515,7 @@ case 70: ; break;} case 71: -#line 854 "Gmsh.y" +#line 855 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -3522,7 +3544,7 @@ case 71: ; break;} case 72: -#line 881 "Gmsh.y" +#line 882 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -3538,7 +3560,7 @@ case 72: ; break;} case 73: -#line 895 "Gmsh.y" +#line 896 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -3554,7 +3576,7 @@ case 73: ; break;} case 74: -#line 912 "Gmsh.y" +#line 913 "Gmsh.y" { unsigned int (*pColOpt)(int num, int action, unsigned int value); StringXColor *pColCat; @@ -3570,7 +3592,7 @@ case 74: ; break;} case 75: -#line 926 "Gmsh.y" +#line 927 "Gmsh.y" { unsigned int (*pColOpt)(int num, int action, unsigned int value); StringXColor *pColCat; @@ -3586,7 +3608,7 @@ case 75: ; break;} case 76: -#line 943 "Gmsh.y" +#line 944 "Gmsh.y" { GmshColorTable *ct = Get_ColorTable(0); if(!ct) @@ -3608,7 +3630,7 @@ case 76: ; break;} case 77: -#line 963 "Gmsh.y" +#line 964 "Gmsh.y" { GmshColorTable *ct = Get_ColorTable((int)yyvsp[-6].d); if(!ct) @@ -3630,7 +3652,7 @@ case 77: ; break;} case 78: -#line 986 "Gmsh.y" +#line 987 "Gmsh.y" { try { GMSH_PluginManager::instance()->setPluginOption(yyvsp[-6].c, yyvsp[-3].c, yyvsp[-1].d); @@ -3642,7 +3664,7 @@ case 78: ; break;} case 79: -#line 996 "Gmsh.y" +#line 997 "Gmsh.y" { try { GMSH_PluginManager::instance()->setPluginOption(yyvsp[-6].c, yyvsp[-3].c, yyvsp[-1].c); @@ -3654,20 +3676,20 @@ case 79: ; break;} case 80: -#line 1011 "Gmsh.y" +#line 1012 "Gmsh.y" { yyval.i = (int)yyvsp[0].d; ; break;} case 81: -#line 1015 "Gmsh.y" +#line 1016 "Gmsh.y" { yyval.i = GMODEL->setPhysicalName(std::string(yyvsp[0].c), ++THEM->MaxPhysicalNum); Free(yyvsp[0].c); ; break;} -case 82: -#line 1026 "Gmsh.y" +case 83: +#line 1030 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindPoint(num)){ @@ -3686,8 +3708,33 @@ case 82: yyval.s.Num = num; ; break;} -case 83: -#line 1044 "Gmsh.y" +case 84: +#line 1048 "Gmsh.y" +{ + int num = (int)yyvsp[-9].d; + if(FindPoint(num)){ + yymsg(GERROR, "Point %d already exists", num); + } + else{ + double u = CTX.geom.scaling_factor * yyvsp[-1].v[0]; + double v = CTX.geom.scaling_factor * yyvsp[-1].v[1]; + double lc = CTX.geom.scaling_factor * yyvsp[-1].v[2]; + + gmshSurface *surf = gmshSurface::surfaceByTag ( (int) yyvsp[-4].d ); + + if (!surf) + yymsg(GERROR, "gmshSurface %d does not exist", (int) yyvsp[-4].d); + + Vertex *vt = Create_Vertex(num, u, v, surf, lc); + Tree_Add(THEM->Points, &vt); + AddToTemporaryBoundingBox(vt->Pos.X,vt->Pos.Y,vt->Pos.Z); + } + yyval.s.Type = MSH_POINT; + yyval.s.Num = num; + ; + break;} +case 85: +#line 1071 "Gmsh.y" { int num = (int)yyvsp[-4].i; if(FindPhysicalGroup(num, MSH_PHYSICAL_POINT)){ @@ -3704,8 +3751,8 @@ case 83: yyval.s.Num = num; ; break;} -case 84: -#line 1060 "Gmsh.y" +case 86: +#line 1087 "Gmsh.y" { yymsg(WARNING, "Attractors are deprecated"); List_Delete(yyvsp[-9].l); @@ -3713,8 +3760,8 @@ case 84: yyval.s.Num = 0; ; break;} -case 85: -#line 1067 "Gmsh.y" +case 87: +#line 1094 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){ double d; @@ -3734,8 +3781,8 @@ case 85: yyval.s.Num = 0; ; break;} -case 86: -#line 1089 "Gmsh.y" +case 88: +#line 1116 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindCurve(num)){ @@ -3754,8 +3801,8 @@ case 86: yyval.s.Num = num; ; break;} -case 87: -#line 1107 "Gmsh.y" +case 89: +#line 1134 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindCurve(num)){ @@ -3774,8 +3821,8 @@ case 87: yyval.s.Num = num; ; break;} -case 88: -#line 1125 "Gmsh.y" +case 90: +#line 1152 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindCurve(num)){ @@ -3794,8 +3841,8 @@ case 88: yyval.s.Num = num; ; break;} -case 89: -#line 1143 "Gmsh.y" +case 91: +#line 1170 "Gmsh.y" { int num = (int)yyvsp[-6].d; if(FindCurve(num)){ @@ -3822,8 +3869,8 @@ case 89: yyval.s.Num = num; ; break;} -case 90: -#line 1169 "Gmsh.y" +case 92: +#line 1196 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindCurve(num)){ @@ -3842,8 +3889,8 @@ case 90: yyval.s.Num = num; ; break;} -case 91: -#line 1187 "Gmsh.y" +case 93: +#line 1214 "Gmsh.y" { int num = (int)yyvsp[-6].d; if(FindCurve(num)){ @@ -3870,8 +3917,8 @@ case 91: yyval.s.Num = num; ; break;} -case 92: -#line 1214 "Gmsh.y" +case 94: +#line 1241 "Gmsh.y" { int num = (int)yyvsp[-14].d; if(FindCurve(num)){ @@ -3891,8 +3938,8 @@ case 92: yyval.s.Num = num; ; break;} -case 93: -#line 1233 "Gmsh.y" +case 95: +#line 1260 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(List_Nbr(yyvsp[-1].l) < 4){ @@ -3917,8 +3964,8 @@ case 93: yyval.s.Num = num; ; break;} -case 94: -#line 1257 "Gmsh.y" +case 96: +#line 1284 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(List_Nbr(yyvsp[-1].l) < 4){ @@ -3943,8 +3990,8 @@ case 94: yyval.s.Num = num; ; break;} -case 95: -#line 1281 "Gmsh.y" +case 97: +#line 1308 "Gmsh.y" { int num = (int)yyvsp[-8].d; if(List_Nbr(yyvsp[-5].l) + (int)yyvsp[-1].d + 1 != List_Nbr(yyvsp[-3].l)){ @@ -3971,8 +4018,8 @@ case 95: yyval.s.Num = num; ; break;} -case 96: -#line 1307 "Gmsh.y" +case 98: +#line 1334 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindEdgeLoop(num)){ @@ -3990,8 +4037,8 @@ case 96: yyval.s.Num = num; ; break;} -case 97: -#line 1324 "Gmsh.y" +case 99: +#line 1351 "Gmsh.y" { yymsg(WARNING, "Attractors are deprecated"); List_Delete(yyvsp[-9].l); @@ -3999,8 +4046,8 @@ case 97: yyval.s.Num = 0; ; break;} -case 98: -#line 1331 "Gmsh.y" +case 100: +#line 1358 "Gmsh.y" { int num = (int)yyvsp[-4].i; if(FindPhysicalGroup(num, MSH_PHYSICAL_LINE)){ @@ -4017,8 +4064,8 @@ case 98: yyval.s.Num = num; ; break;} -case 99: -#line 1350 "Gmsh.y" +case 101: +#line 1377 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindSurface(num)){ @@ -4037,8 +4084,8 @@ case 99: yyval.s.Num = num; ; break;} -case 100: -#line 1368 "Gmsh.y" +case 102: +#line 1395 "Gmsh.y" { int num = (int)yyvsp[-4].d, type = 0; if(FindSurface(num)){ @@ -4077,8 +4124,32 @@ case 100: yyval.s.Num = num; ; break;} -case 101: -#line 1406 "Gmsh.y" +case 103: +#line 1436 "Gmsh.y" +{ + int num = (int)yyvsp[-4].d, type = 0; + + if (List_Nbr(yyvsp[-1].l) != 2){ + yymsg(GERROR, "Sphere %d has to be defined using 2 points (center + any point) and not %d", num,List_Nbr(yyvsp[-1].l)); + } + else + { + double p1,p2; + List_Read(yyvsp[-1].l, 0, &p1); + List_Read(yyvsp[-1].l, 1, &p2); + Vertex *v1 = FindPoint((int)p1); + Vertex *v2 = FindPoint((int)p2); + if (!v1)yymsg(GERROR, "Sphere %d : unknown point %d", num,(int)p1); + if (!v2)yymsg(GERROR, "Sphere %d : unknown point %d", num,(int)p2); + gmshSurface *myGmshSurface = gmshSphere::NewSphere ( num , v1->Pos.X , v1->Pos.Y , v1->Pos.Z , + sqrt ( ( v2->Pos.X - v1->Pos.X) *( v2->Pos.X - v1->Pos.X) + + ( v2->Pos.Y - v1->Pos.Y) *( v2->Pos.Y - v1->Pos.Y) + + ( v2->Pos.Z - v1->Pos.Z) *( v2->Pos.Z - v1->Pos.Z) ) ); + } + ; + break;} +case 104: +#line 1459 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindSurfaceLoop(num)){ @@ -4095,8 +4166,8 @@ case 101: yyval.s.Num = num; ; break;} -case 102: -#line 1422 "Gmsh.y" +case 105: +#line 1475 "Gmsh.y" { int num = (int)yyvsp[-4].i; if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE)){ @@ -4113,8 +4184,8 @@ case 102: yyval.s.Num = num; ; break;} -case 103: -#line 1442 "Gmsh.y" +case 106: +#line 1495 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindVolume(num)){ @@ -4132,8 +4203,8 @@ case 103: yyval.s.Num = num; ; break;} -case 104: -#line 1459 "Gmsh.y" +case 107: +#line 1512 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindVolume(num)){ @@ -4151,8 +4222,8 @@ case 104: yyval.s.Num = num; ; break;} -case 105: -#line 1476 "Gmsh.y" +case 108: +#line 1529 "Gmsh.y" { int num = (int)yyvsp[-4].i; if(FindPhysicalGroup(num, MSH_PHYSICAL_VOLUME)){ @@ -4169,60 +4240,60 @@ case 105: yyval.s.Num = num; ; break;} -case 106: -#line 1497 "Gmsh.y" +case 109: +#line 1550 "Gmsh.y" { TranslateShapes(yyvsp[-3].v[0], yyvsp[-3].v[1], yyvsp[-3].v[2], yyvsp[-1].l, 1); yyval.l = yyvsp[-1].l; ; break;} -case 107: -#line 1502 "Gmsh.y" +case 110: +#line 1555 "Gmsh.y" { RotateShapes(yyvsp[-8].v[0], yyvsp[-8].v[1], yyvsp[-8].v[2], yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], yyvsp[-4].d, yyvsp[-1].l, 1); yyval.l = yyvsp[-1].l; ; break;} -case 108: -#line 1507 "Gmsh.y" +case 111: +#line 1560 "Gmsh.y" { SymmetryShapes(yyvsp[-3].v[0], yyvsp[-3].v[1], yyvsp[-3].v[2], yyvsp[-3].v[3], yyvsp[-1].l, 1); yyval.l = yyvsp[-1].l; ; break;} -case 109: -#line 1512 "Gmsh.y" +case 112: +#line 1565 "Gmsh.y" { DilatShapes(yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], yyvsp[-4].d, yyvsp[-1].l, 1); yyval.l = yyvsp[-1].l; ; break;} -case 110: -#line 1519 "Gmsh.y" +case 113: +#line 1572 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} -case 111: -#line 1520 "Gmsh.y" +case 114: +#line 1573 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} -case 112: -#line 1521 "Gmsh.y" +case 115: +#line 1574 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} -case 113: -#line 1526 "Gmsh.y" +case 116: +#line 1579 "Gmsh.y" { yyval.l = List_Create(3, 3, sizeof(Shape)); ; break;} -case 114: -#line 1530 "Gmsh.y" +case 117: +#line 1583 "Gmsh.y" { List_Add(yyval.l, &yyvsp[0].s); ; break;} -case 115: -#line 1534 "Gmsh.y" +case 118: +#line 1587 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){ double d; @@ -4239,8 +4310,8 @@ case 115: } ; break;} -case 116: -#line 1550 "Gmsh.y" +case 119: +#line 1603 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){ double d; @@ -4257,8 +4328,8 @@ case 116: } ; break;} -case 117: -#line 1566 "Gmsh.y" +case 120: +#line 1619 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){ double d; @@ -4275,8 +4346,8 @@ case 117: } ; break;} -case 118: -#line 1582 "Gmsh.y" +case 121: +#line 1635 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){ double d; @@ -4293,8 +4364,8 @@ case 118: } ; break;} -case 119: -#line 1603 "Gmsh.y" +case 122: +#line 1656 "Gmsh.y" { yyval.l = List_Create(3, 3, sizeof(Shape)); for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ @@ -4308,32 +4379,32 @@ case 119: List_Delete(yyvsp[-1].l); ; break;} -case 120: -#line 1617 "Gmsh.y" +case 123: +#line 1670 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")) AliasView((int)yyvsp[-2].d, 0); Free(yyvsp[-4].c); yyval.l = NULL; ; break;} -case 121: -#line 1623 "Gmsh.y" +case 124: +#line 1676 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")) AliasView((int)yyvsp[-2].d, 0); Free(yyvsp[-4].c); yyval.l = NULL; ; break;} -case 122: -#line 1629 "Gmsh.y" +case 125: +#line 1682 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")) AliasView((int)yyvsp[-2].d, 1); Free(yyvsp[-4].c); yyval.l = NULL; ; break;} -case 123: -#line 1641 "Gmsh.y" +case 126: +#line 1694 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ Shape TheShape; @@ -4343,8 +4414,8 @@ case 123: List_Delete(yyvsp[-1].l); ; break;} -case 124: -#line 1650 "Gmsh.y" +case 127: +#line 1703 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")){ RemoveViewByIndex((int)yyvsp[-2].d); @@ -4355,8 +4426,8 @@ case 124: Free(yyvsp[-4].c); ; break;} -case 125: -#line 1660 "Gmsh.y" +case 128: +#line 1713 "Gmsh.y" { if(!strcmp(yyvsp[-1].c, "Meshes") || !strcmp(yyvsp[-1].c, "All")){ GMODEL->destroy(); @@ -4373,8 +4444,8 @@ case 125: Free(yyvsp[-1].c); ; break;} -case 126: -#line 1676 "Gmsh.y" +case 129: +#line 1729 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Empty") && !strcmp(yyvsp[-1].c, "Views")){ for(int i = List_Nbr(CTX.post.list) - 1; i >= 0; i--){ @@ -4389,8 +4460,8 @@ case 126: Free(yyvsp[-2].c); Free(yyvsp[-1].c); ; break;} -case 127: -#line 1695 "Gmsh.y" +case 130: +#line 1748 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ Shape TheShape; @@ -4400,24 +4471,24 @@ case 127: List_Delete(yyvsp[-1].l); ; break;} -case 128: -#line 1709 "Gmsh.y" +case 131: +#line 1762 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape(yyvsp[-1].c, i, 1); Free(yyvsp[-1].c); ; break;} -case 129: -#line 1715 "Gmsh.y" +case 132: +#line 1768 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape(yyvsp[-1].c, i, 0); Free(yyvsp[-1].c); ; break;} -case 130: -#line 1721 "Gmsh.y" +case 133: +#line 1774 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ Shape TheShape; @@ -4427,8 +4498,8 @@ case 130: List_Delete(yyvsp[-1].l); ; break;} -case 131: -#line 1730 "Gmsh.y" +case 134: +#line 1783 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ Shape TheShape; @@ -4438,8 +4509,8 @@ case 131: List_Delete(yyvsp[-1].l); ; break;} -case 132: -#line 1744 "Gmsh.y" +case 135: +#line 1797 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Include")){ char tmpstring[1024]; @@ -4485,8 +4556,8 @@ case 132: Free(yyvsp[-2].c); Free(yyvsp[-1].c); ; break;} -case 133: -#line 1789 "Gmsh.y" +case 136: +#line 1842 "Gmsh.y" { if(!strcmp(yyvsp[-6].c, "Save") && !strcmp(yyvsp[-5].c, "View")){ Post_View **vv = (Post_View **)List_Pointer_Test(CTX.post.list, (int)yyvsp[-3].d); @@ -4502,8 +4573,8 @@ case 133: Free(yyvsp[-6].c); Free(yyvsp[-5].c); Free(yyvsp[-1].c); ; break;} -case 134: -#line 1804 "Gmsh.y" +case 137: +#line 1857 "Gmsh.y" { if(!strcmp(yyvsp[-6].c, "Background") && !strcmp(yyvsp[-5].c, "Mesh") && !strcmp(yyvsp[-4].c, "View")){ Post_View **vv = (Post_View **)List_Pointer_Test(CTX.post.list, (int)yyvsp[-2].d); @@ -4515,8 +4586,8 @@ case 134: Free(yyvsp[-6].c); Free(yyvsp[-5].c); Free(yyvsp[-4].c); ; break;} -case 135: -#line 1815 "Gmsh.y" +case 138: +#line 1868 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Sleep")){ SleepInSeconds(yyvsp[-1].d); @@ -4537,8 +4608,8 @@ case 135: Free(yyvsp[-2].c); ; break;} -case 136: -#line 1835 "Gmsh.y" +case 139: +#line 1888 "Gmsh.y" { try { GMSH_PluginManager::instance()->action(yyvsp[-4].c, yyvsp[-1].c, 0); @@ -4549,8 +4620,8 @@ case 136: Free(yyvsp[-4].c); Free(yyvsp[-1].c); ; break;} -case 137: -#line 1845 "Gmsh.y" +case 140: +#line 1898 "Gmsh.y" { if(!strcmp(yyvsp[-1].c, "ElementsFromAllViews")) CombineViews(0, 1, CTX.post.combine_remove_orig); @@ -4573,36 +4644,36 @@ case 137: Free(yyvsp[-1].c); ; break;} -case 138: -#line 1867 "Gmsh.y" +case 141: +#line 1920 "Gmsh.y" { exit(0); ; break;} -case 139: -#line 1871 "Gmsh.y" +case 142: +#line 1924 "Gmsh.y" { CTX.forced_bbox = 0; SetBoundingBox(); ; break;} -case 140: -#line 1876 "Gmsh.y" +case 143: +#line 1929 "Gmsh.y" { CTX.forced_bbox = 1; SetBoundingBox(yyvsp[-12].d, yyvsp[-10].d, yyvsp[-8].d, yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d); ; break;} -case 141: -#line 1881 "Gmsh.y" +case 144: +#line 1934 "Gmsh.y" { #if defined(HAVE_FLTK) Draw(); #endif ; break;} -case 142: -#line 1893 "Gmsh.y" +case 145: +#line 1946 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d; @@ -4618,8 +4689,8 @@ case 142: if(yyvsp[-3].d > yyvsp[-1].d) skip_until("For", "EndFor"); ; break;} -case 143: -#line 1908 "Gmsh.y" +case 146: +#line 1961 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d; @@ -4636,8 +4707,8 @@ case 143: skip_until("For", "EndFor"); ; break;} -case 144: -#line 1924 "Gmsh.y" +case 147: +#line 1977 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d; @@ -4664,8 +4735,8 @@ case 144: if(yyvsp[-3].d > yyvsp[-1].d) skip_until("For", "EndFor"); ; break;} -case 145: -#line 1950 "Gmsh.y" +case 148: +#line 2003 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d; @@ -4693,8 +4764,8 @@ case 145: skip_until("For", "EndFor"); ; break;} -case 146: -#line 1977 "Gmsh.y" +case 149: +#line 2030 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(GERROR, "Invalid For/EndFor loop"); @@ -4727,8 +4798,8 @@ case 146: } ; break;} -case 147: -#line 2009 "Gmsh.y" +case 150: +#line 2062 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction(yyvsp[0].c, yyin, yyname, yylineno)) yymsg(GERROR, "Redefinition of function %s", yyvsp[0].c); @@ -4736,34 +4807,34 @@ case 147: //FIXME: wee leak $2 ; break;} -case 148: -#line 2016 "Gmsh.y" +case 151: +#line 2069 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction(&yyin, yyname, yylineno)) yymsg(GERROR, "Error while exiting function"); ; break;} -case 149: -#line 2021 "Gmsh.y" +case 152: +#line 2074 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction(yyvsp[-1].c, &yyin, yyname, yylineno)) yymsg(GERROR, "Unknown function %s", yyvsp[-1].c); //FIXME: wee leak $2 ; break;} -case 150: -#line 2027 "Gmsh.y" +case 153: +#line 2080 "Gmsh.y" { if(!yyvsp[-1].d) skip_until("If", "EndIf"); ; break;} -case 151: -#line 2031 "Gmsh.y" +case 154: +#line 2084 "Gmsh.y" { ; break;} -case 152: -#line 2040 "Gmsh.y" +case 155: +#line 2093 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, yyvsp[-1].l, @@ -4772,8 +4843,8 @@ case 152: List_Delete(yyvsp[-1].l); ; break;} -case 153: -#line 2048 "Gmsh.y" +case 156: +#line 2101 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, yyvsp[-1].l, @@ -4782,8 +4853,8 @@ case 153: List_Delete(yyvsp[-1].l); ; break;} -case 154: -#line 2056 "Gmsh.y" +case 157: +#line 2109 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, yyvsp[-1].l, @@ -4792,15 +4863,15 @@ case 154: List_Delete(yyvsp[-1].l); ; break;} -case 155: -#line 2064 "Gmsh.y" +case 158: +#line 2117 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 156: -#line 2069 "Gmsh.y" +case 159: +#line 2122 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, yyvsp[-3].l, @@ -4809,15 +4880,15 @@ case 156: List_Delete(yyvsp[-3].l); ; break;} -case 157: -#line 2077 "Gmsh.y" +case 160: +#line 2130 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 158: -#line 2082 "Gmsh.y" +case 161: +#line 2135 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, yyvsp[-3].l, @@ -4826,15 +4897,15 @@ case 158: List_Delete(yyvsp[-3].l); ; break;} -case 159: -#line 2090 "Gmsh.y" +case 162: +#line 2143 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 160: -#line 2095 "Gmsh.y" +case 163: +#line 2148 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, yyvsp[-3].l, @@ -4843,8 +4914,8 @@ case 160: List_Delete(yyvsp[-3].l); ; break;} -case 161: -#line 2105 "Gmsh.y" +case 164: +#line 2158 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)yyvsp[-4].d, @@ -4852,8 +4923,8 @@ case 161: NULL, yyval.l); ; break;} -case 162: -#line 2112 "Gmsh.y" +case 165: +#line 2165 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)yyvsp[-4].d, @@ -4861,8 +4932,8 @@ case 162: NULL, yyval.l); ; break;} -case 163: -#line 2119 "Gmsh.y" +case 166: +#line 2172 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)yyvsp[-4].d, @@ -4870,8 +4941,8 @@ case 163: NULL, yyval.l); ; break;} -case 164: -#line 2126 "Gmsh.y" +case 167: +#line 2179 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)yyvsp[-8].d, @@ -4879,8 +4950,8 @@ case 164: NULL, yyval.l); ; break;} -case 165: -#line 2133 "Gmsh.y" +case 168: +#line 2186 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)yyvsp[-8].d, @@ -4888,8 +4959,8 @@ case 165: NULL, yyval.l); ; break;} -case 166: -#line 2140 "Gmsh.y" +case 169: +#line 2193 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)yyvsp[-8].d, @@ -4897,8 +4968,8 @@ case 166: NULL, yyval.l); ; break;} -case 167: -#line 2147 "Gmsh.y" +case 170: +#line 2200 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)yyvsp[-10].d, @@ -4906,8 +4977,8 @@ case 167: NULL, yyval.l); ; break;} -case 168: -#line 2154 "Gmsh.y" +case 171: +#line 2207 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)yyvsp[-10].d, @@ -4915,8 +4986,8 @@ case 168: NULL, yyval.l); ; break;} -case 169: -#line 2161 "Gmsh.y" +case 172: +#line 2214 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)yyvsp[-10].d, @@ -4924,15 +4995,15 @@ case 169: NULL, yyval.l); ; break;} -case 170: -#line 2168 "Gmsh.y" +case 173: +#line 2221 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 171: -#line 2173 "Gmsh.y" +case 174: +#line 2226 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)yyvsp[-8].d, @@ -4940,15 +5011,15 @@ case 171: &extr, yyval.l); ; break;} -case 172: -#line 2180 "Gmsh.y" +case 175: +#line 2233 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 173: -#line 2185 "Gmsh.y" +case 176: +#line 2238 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)yyvsp[-8].d, @@ -4956,15 +5027,15 @@ case 173: &extr, yyval.l); ; break;} -case 174: -#line 2192 "Gmsh.y" +case 177: +#line 2245 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 175: -#line 2197 "Gmsh.y" +case 178: +#line 2250 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)yyvsp[-8].d, @@ -4972,15 +5043,15 @@ case 175: &extr, yyval.l); ; break;} -case 176: -#line 2204 "Gmsh.y" +case 179: +#line 2257 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 177: -#line 2209 "Gmsh.y" +case 180: +#line 2262 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)yyvsp[-12].d, @@ -4988,15 +5059,15 @@ case 177: &extr, yyval.l); ; break;} -case 178: -#line 2216 "Gmsh.y" +case 181: +#line 2269 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 179: -#line 2221 "Gmsh.y" +case 182: +#line 2274 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)yyvsp[-12].d, @@ -5004,15 +5075,15 @@ case 179: &extr, yyval.l); ; break;} -case 180: -#line 2228 "Gmsh.y" +case 183: +#line 2281 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 181: -#line 2233 "Gmsh.y" +case 184: +#line 2286 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)yyvsp[-12].d, @@ -5020,15 +5091,15 @@ case 181: &extr, yyval.l); ; break;} -case 182: -#line 2240 "Gmsh.y" +case 185: +#line 2293 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 183: -#line 2245 "Gmsh.y" +case 186: +#line 2298 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)yyvsp[-14].d, @@ -5036,15 +5107,15 @@ case 183: &extr, yyval.l); ; break;} -case 184: -#line 2252 "Gmsh.y" +case 187: +#line 2305 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 185: -#line 2257 "Gmsh.y" +case 188: +#line 2310 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)yyvsp[-14].d, @@ -5052,15 +5123,15 @@ case 185: &extr, yyval.l); ; break;} -case 186: -#line 2264 "Gmsh.y" +case 189: +#line 2317 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 187: -#line 2269 "Gmsh.y" +case 190: +#line 2322 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)yyvsp[-14].d, @@ -5068,18 +5139,18 @@ case 187: &extr, yyval.l); ; break;} -case 188: -#line 2280 "Gmsh.y" +case 191: +#line 2333 "Gmsh.y" { ; break;} -case 189: -#line 2283 "Gmsh.y" +case 192: +#line 2336 "Gmsh.y" { ; break;} -case 190: -#line 2289 "Gmsh.y" +case 193: +#line 2342 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = 1; @@ -5089,8 +5160,8 @@ case 190: extr.mesh.hLayer.push_back(1.); ; break;} -case 191: -#line 2298 "Gmsh.y" +case 194: +#line 2351 "Gmsh.y" { double d; extr.mesh.ExtrudeMesh = true; @@ -5113,8 +5184,8 @@ case 191: List_Delete(yyvsp[-2].l); ; break;} -case 192: -#line 2320 "Gmsh.y" +case 195: +#line 2373 "Gmsh.y" { yymsg(WARNING, "Explicit region numbers in layers are deprecated"); double d; @@ -5139,14 +5210,14 @@ case 192: List_Delete(yyvsp[-2].l); ; break;} -case 193: -#line 2344 "Gmsh.y" +case 196: +#line 2397 "Gmsh.y" { extr.mesh.Recombine = true; ; break;} -case 194: -#line 2353 "Gmsh.y" +case 197: +#line 2406 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){ double d; @@ -5165,8 +5236,8 @@ case 194: List_Delete(yyvsp[-3].l); ; break;} -case 195: -#line 2371 "Gmsh.y" +case 198: +#line 2424 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){ double d; @@ -5185,8 +5256,8 @@ case 195: List_Delete(yyvsp[-6].l); ; break;} -case 196: -#line 2389 "Gmsh.y" +case 199: +#line 2442 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){ double d; @@ -5205,8 +5276,8 @@ case 196: List_Delete(yyvsp[-6].l); ; break;} -case 197: -#line 2407 "Gmsh.y" +case 200: +#line 2460 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-4].d); if(!s) @@ -5236,8 +5307,8 @@ case 197: List_Delete(yyvsp[-1].l); ; break;} -case 198: -#line 2436 "Gmsh.y" +case 201: +#line 2489 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-5].d); if(!s) @@ -5273,15 +5344,15 @@ case 198: Free(yyvsp[-1].c); ; break;} -case 199: -#line 2471 "Gmsh.y" +case 202: +#line 2524 "Gmsh.y" { yymsg(WARNING, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete(yyvsp[-1].l); ; break;} -case 200: -#line 2476 "Gmsh.y" +case 203: +#line 2529 "Gmsh.y" { Volume *v = FindVolume((int)yyvsp[-4].d); if(!v) @@ -5309,8 +5380,8 @@ case 200: List_Delete(yyvsp[-1].l); ; break;} -case 201: -#line 2503 "Gmsh.y" +case 204: +#line 2556 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){ double d; @@ -5325,8 +5396,8 @@ case 201: List_Delete(yyvsp[-3].l); ; break;} -case 202: -#line 2517 "Gmsh.y" +case 205: +#line 2570 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ double d; @@ -5340,72 +5411,72 @@ case 202: List_Delete(yyvsp[-1].l); ; break;} -case 203: -#line 2536 "Gmsh.y" +case 206: +#line 2589 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-1].d); if(s) setSurfaceEmbeddedPoints(s, yyvsp[-4].l); ; break;} -case 204: -#line 2542 "Gmsh.y" +case 207: +#line 2595 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-1].d); if(s) setSurfaceEmbeddedCurves(s, yyvsp[-4].l); ; break;} -case 205: -#line 2548 "Gmsh.y" +case 208: +#line 2601 "Gmsh.y" { ; break;} -case 206: -#line 2551 "Gmsh.y" +case 209: +#line 2604 "Gmsh.y" { ; break;} -case 207: -#line 2560 "Gmsh.y" +case 210: +#line 2613 "Gmsh.y" { ReplaceAllDuplicates(); ; break;} -case 208: -#line 2569 "Gmsh.y" +case 211: +#line 2622 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} -case 209: -#line 2570 "Gmsh.y" +case 212: +#line 2623 "Gmsh.y" { yyval.d = yyvsp[-1].d; ; break;} -case 210: -#line 2571 "Gmsh.y" +case 213: +#line 2624 "Gmsh.y" { yyval.d = -yyvsp[0].d; ; break;} -case 211: -#line 2572 "Gmsh.y" +case 214: +#line 2625 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} -case 212: -#line 2573 "Gmsh.y" +case 215: +#line 2626 "Gmsh.y" { yyval.d = !yyvsp[0].d; ; break;} -case 213: -#line 2574 "Gmsh.y" +case 216: +#line 2627 "Gmsh.y" { yyval.d = yyvsp[-2].d - yyvsp[0].d; ; break;} -case 214: -#line 2575 "Gmsh.y" +case 217: +#line 2628 "Gmsh.y" { yyval.d = yyvsp[-2].d + yyvsp[0].d; ; break;} -case 215: -#line 2576 "Gmsh.y" +case 218: +#line 2629 "Gmsh.y" { yyval.d = yyvsp[-2].d * yyvsp[0].d; ; break;} -case 216: -#line 2578 "Gmsh.y" +case 219: +#line 2631 "Gmsh.y" { if(!yyvsp[0].d) yymsg(GERROR, "Division by zero in '%g / %g'", yyvsp[-2].d, yyvsp[0].d); @@ -5413,248 +5484,248 @@ case 216: yyval.d = yyvsp[-2].d / yyvsp[0].d; ; break;} -case 217: -#line 2584 "Gmsh.y" +case 220: +#line 2637 "Gmsh.y" { yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d; ; break;} -case 218: -#line 2585 "Gmsh.y" +case 221: +#line 2638 "Gmsh.y" { yyval.d = pow(yyvsp[-2].d, yyvsp[0].d); ; break;} -case 219: -#line 2586 "Gmsh.y" +case 222: +#line 2639 "Gmsh.y" { yyval.d = yyvsp[-2].d < yyvsp[0].d; ; break;} -case 220: -#line 2587 "Gmsh.y" +case 223: +#line 2640 "Gmsh.y" { yyval.d = yyvsp[-2].d > yyvsp[0].d; ; break;} -case 221: -#line 2588 "Gmsh.y" +case 224: +#line 2641 "Gmsh.y" { yyval.d = yyvsp[-2].d <= yyvsp[0].d; ; break;} -case 222: -#line 2589 "Gmsh.y" +case 225: +#line 2642 "Gmsh.y" { yyval.d = yyvsp[-2].d >= yyvsp[0].d; ; break;} -case 223: -#line 2590 "Gmsh.y" +case 226: +#line 2643 "Gmsh.y" { yyval.d = yyvsp[-2].d == yyvsp[0].d; ; break;} -case 224: -#line 2591 "Gmsh.y" +case 227: +#line 2644 "Gmsh.y" { yyval.d = yyvsp[-2].d != yyvsp[0].d; ; break;} -case 225: -#line 2592 "Gmsh.y" +case 228: +#line 2645 "Gmsh.y" { yyval.d = yyvsp[-2].d && yyvsp[0].d; ; break;} -case 226: -#line 2593 "Gmsh.y" +case 229: +#line 2646 "Gmsh.y" { yyval.d = yyvsp[-2].d || yyvsp[0].d; ; break;} -case 227: -#line 2594 "Gmsh.y" +case 230: +#line 2647 "Gmsh.y" { yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d; ; break;} -case 228: -#line 2595 "Gmsh.y" +case 231: +#line 2648 "Gmsh.y" { yyval.d = exp(yyvsp[-1].d); ; break;} -case 229: -#line 2596 "Gmsh.y" +case 232: +#line 2649 "Gmsh.y" { yyval.d = log(yyvsp[-1].d); ; break;} -case 230: -#line 2597 "Gmsh.y" +case 233: +#line 2650 "Gmsh.y" { yyval.d = log10(yyvsp[-1].d); ; break;} -case 231: -#line 2598 "Gmsh.y" +case 234: +#line 2651 "Gmsh.y" { yyval.d = sqrt(yyvsp[-1].d); ; break;} -case 232: -#line 2599 "Gmsh.y" +case 235: +#line 2652 "Gmsh.y" { yyval.d = sin(yyvsp[-1].d); ; break;} -case 233: -#line 2600 "Gmsh.y" +case 236: +#line 2653 "Gmsh.y" { yyval.d = asin(yyvsp[-1].d); ; break;} -case 234: -#line 2601 "Gmsh.y" +case 237: +#line 2654 "Gmsh.y" { yyval.d = cos(yyvsp[-1].d); ; break;} -case 235: -#line 2602 "Gmsh.y" +case 238: +#line 2655 "Gmsh.y" { yyval.d = acos(yyvsp[-1].d); ; break;} -case 236: -#line 2603 "Gmsh.y" +case 239: +#line 2656 "Gmsh.y" { yyval.d = tan(yyvsp[-1].d); ; break;} -case 237: -#line 2604 "Gmsh.y" +case 240: +#line 2657 "Gmsh.y" { yyval.d = atan(yyvsp[-1].d); ; break;} -case 238: -#line 2605 "Gmsh.y" +case 241: +#line 2658 "Gmsh.y" { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);; break;} -case 239: -#line 2606 "Gmsh.y" +case 242: +#line 2659 "Gmsh.y" { yyval.d = sinh(yyvsp[-1].d); ; break;} -case 240: -#line 2607 "Gmsh.y" +case 243: +#line 2660 "Gmsh.y" { yyval.d = cosh(yyvsp[-1].d); ; break;} -case 241: -#line 2608 "Gmsh.y" +case 244: +#line 2661 "Gmsh.y" { yyval.d = tanh(yyvsp[-1].d); ; break;} -case 242: -#line 2609 "Gmsh.y" +case 245: +#line 2662 "Gmsh.y" { yyval.d = fabs(yyvsp[-1].d); ; break;} -case 243: -#line 2610 "Gmsh.y" +case 246: +#line 2663 "Gmsh.y" { yyval.d = floor(yyvsp[-1].d); ; break;} -case 244: -#line 2611 "Gmsh.y" +case 247: +#line 2664 "Gmsh.y" { yyval.d = ceil(yyvsp[-1].d); ; break;} -case 245: -#line 2612 "Gmsh.y" +case 248: +#line 2665 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} -case 246: -#line 2613 "Gmsh.y" +case 249: +#line 2666 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} -case 247: -#line 2614 "Gmsh.y" +case 250: +#line 2667 "Gmsh.y" { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} -case 248: -#line 2615 "Gmsh.y" +case 251: +#line 2668 "Gmsh.y" { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ; break;} -case 249: -#line 2617 "Gmsh.y" +case 252: +#line 2670 "Gmsh.y" { yyval.d = exp(yyvsp[-1].d); ; break;} -case 250: -#line 2618 "Gmsh.y" +case 253: +#line 2671 "Gmsh.y" { yyval.d = log(yyvsp[-1].d); ; break;} -case 251: -#line 2619 "Gmsh.y" +case 254: +#line 2672 "Gmsh.y" { yyval.d = log10(yyvsp[-1].d); ; break;} -case 252: -#line 2620 "Gmsh.y" +case 255: +#line 2673 "Gmsh.y" { yyval.d = sqrt(yyvsp[-1].d); ; break;} -case 253: -#line 2621 "Gmsh.y" +case 256: +#line 2674 "Gmsh.y" { yyval.d = sin(yyvsp[-1].d); ; break;} -case 254: -#line 2622 "Gmsh.y" +case 257: +#line 2675 "Gmsh.y" { yyval.d = asin(yyvsp[-1].d); ; break;} -case 255: -#line 2623 "Gmsh.y" +case 258: +#line 2676 "Gmsh.y" { yyval.d = cos(yyvsp[-1].d); ; break;} -case 256: -#line 2624 "Gmsh.y" +case 259: +#line 2677 "Gmsh.y" { yyval.d = acos(yyvsp[-1].d); ; break;} -case 257: -#line 2625 "Gmsh.y" +case 260: +#line 2678 "Gmsh.y" { yyval.d = tan(yyvsp[-1].d); ; break;} -case 258: -#line 2626 "Gmsh.y" +case 261: +#line 2679 "Gmsh.y" { yyval.d = atan(yyvsp[-1].d); ; break;} -case 259: -#line 2627 "Gmsh.y" +case 262: +#line 2680 "Gmsh.y" { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);; break;} -case 260: -#line 2628 "Gmsh.y" +case 263: +#line 2681 "Gmsh.y" { yyval.d = sinh(yyvsp[-1].d); ; break;} -case 261: -#line 2629 "Gmsh.y" +case 264: +#line 2682 "Gmsh.y" { yyval.d = cosh(yyvsp[-1].d); ; break;} -case 262: -#line 2630 "Gmsh.y" +case 265: +#line 2683 "Gmsh.y" { yyval.d = tanh(yyvsp[-1].d); ; break;} -case 263: -#line 2631 "Gmsh.y" +case 266: +#line 2684 "Gmsh.y" { yyval.d = fabs(yyvsp[-1].d); ; break;} -case 264: -#line 2632 "Gmsh.y" +case 267: +#line 2685 "Gmsh.y" { yyval.d = floor(yyvsp[-1].d); ; break;} -case 265: -#line 2633 "Gmsh.y" +case 268: +#line 2686 "Gmsh.y" { yyval.d = ceil(yyvsp[-1].d); ; break;} -case 266: -#line 2634 "Gmsh.y" +case 269: +#line 2687 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} -case 267: -#line 2635 "Gmsh.y" +case 270: +#line 2688 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} -case 268: -#line 2636 "Gmsh.y" +case 271: +#line 2689 "Gmsh.y" { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} -case 269: -#line 2637 "Gmsh.y" +case 272: +#line 2690 "Gmsh.y" { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ; break;} -case 270: -#line 2646 "Gmsh.y" +case 273: +#line 2699 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} -case 271: -#line 2647 "Gmsh.y" +case 274: +#line 2700 "Gmsh.y" { yyval.d = 3.141592653589793; ; break;} -case 272: -#line 2648 "Gmsh.y" +case 275: +#line 2701 "Gmsh.y" { yyval.d = ParUtil::Instance()->rank(); ; break;} -case 273: -#line 2649 "Gmsh.y" +case 276: +#line 2702 "Gmsh.y" { yyval.d = ParUtil::Instance()->size(); ; break;} -case 274: -#line 2650 "Gmsh.y" +case 277: +#line 2703 "Gmsh.y" { yyval.d = Get_GmshMajorVersion(); ; break;} -case 275: -#line 2651 "Gmsh.y" +case 278: +#line 2704 "Gmsh.y" { yyval.d = Get_GmshMinorVersion(); ; break;} -case 276: -#line 2652 "Gmsh.y" +case 279: +#line 2705 "Gmsh.y" { yyval.d = Get_GmshPatchVersion(); ; break;} -case 277: -#line 2657 "Gmsh.y" +case 280: +#line 2710 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[0].c; @@ -5668,8 +5739,8 @@ case 277: Free(yyvsp[0].c); ; break;} -case 278: -#line 2673 "Gmsh.y" +case 281: +#line 2726 "Gmsh.y" { char tmpstring[1024]; sprintf(tmpstring, "%s_%d", yyvsp[-4].c, (int)yyvsp[-1].d) ; @@ -5685,8 +5756,8 @@ case 278: Free(yyvsp[-4].c); ; break;} -case 279: -#line 2688 "Gmsh.y" +case 282: +#line 2741 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-3].c; @@ -5707,8 +5778,8 @@ case 279: Free(yyvsp[-3].c); ; break;} -case 280: -#line 2708 "Gmsh.y" +case 283: +#line 2761 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-2].c; @@ -5723,8 +5794,8 @@ case 280: Free(yyvsp[-2].c); ; break;} -case 281: -#line 2722 "Gmsh.y" +case 284: +#line 2775 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-1].c; @@ -5738,8 +5809,8 @@ case 281: Free(yyvsp[-1].c); ; break;} -case 282: -#line 2735 "Gmsh.y" +case 285: +#line 2788 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-4].c; @@ -5760,8 +5831,8 @@ case 282: Free(yyvsp[-4].c); ; break;} -case 283: -#line 2758 "Gmsh.y" +case 286: +#line 2811 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -5780,8 +5851,8 @@ case 283: Free(yyvsp[-2].c); Free(yyvsp[0].c); ; break;} -case 284: -#line 2776 "Gmsh.y" +case 287: +#line 2829 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -5800,8 +5871,8 @@ case 284: Free(yyvsp[-5].c); Free(yyvsp[0].c); ; break;} -case 285: -#line 2794 "Gmsh.y" +case 288: +#line 2847 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -5820,8 +5891,8 @@ case 285: Free(yyvsp[-3].c); Free(yyvsp[-1].c); ; break;} -case 286: -#line 2812 "Gmsh.y" +case 289: +#line 2865 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -5840,108 +5911,108 @@ case 286: Free(yyvsp[-6].c); Free(yyvsp[-1].c); ; break;} -case 287: -#line 2830 "Gmsh.y" +case 290: +#line 2883 "Gmsh.y" { yyval.d = GetValue(yyvsp[-3].c, yyvsp[-1].d); Free(yyvsp[-3].c); ; break;} -case 288: -#line 2838 "Gmsh.y" +case 291: +#line 2891 "Gmsh.y" { memcpy(yyval.v, yyvsp[0].v, 5*sizeof(double)); ; break;} -case 289: -#line 2842 "Gmsh.y" +case 292: +#line 2895 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = -yyvsp[0].v[i]; ; break;} -case 290: -#line 2846 "Gmsh.y" +case 293: +#line 2899 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[0].v[i]; ; break;} -case 291: -#line 2850 "Gmsh.y" +case 294: +#line 2903 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i]; ; break;} -case 292: -#line 2854 "Gmsh.y" +case 295: +#line 2907 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i]; ; break;} -case 293: -#line 2861 "Gmsh.y" +case 296: +#line 2914 "Gmsh.y" { yyval.v[0] = yyvsp[-9].d; yyval.v[1] = yyvsp[-7].d; yyval.v[2] = yyvsp[-5].d; yyval.v[3] = yyvsp[-3].d; yyval.v[4] = yyvsp[-1].d; ; break;} -case 294: -#line 2865 "Gmsh.y" +case 297: +#line 2918 "Gmsh.y" { yyval.v[0] = yyvsp[-7].d; yyval.v[1] = yyvsp[-5].d; yyval.v[2] = yyvsp[-3].d; yyval.v[3] = yyvsp[-1].d; yyval.v[4] = 1.0; ; break;} -case 295: -#line 2869 "Gmsh.y" +case 298: +#line 2922 "Gmsh.y" { yyval.v[0] = yyvsp[-5].d; yyval.v[1] = yyvsp[-3].d; yyval.v[2] = yyvsp[-1].d; yyval.v[3] = 0.0; yyval.v[4] = 1.0; ; break;} -case 296: -#line 2873 "Gmsh.y" +case 299: +#line 2926 "Gmsh.y" { yyval.v[0] = yyvsp[-5].d; yyval.v[1] = yyvsp[-3].d; yyval.v[2] = yyvsp[-1].d; yyval.v[3] = 0.0; yyval.v[4] = 1.0; ; break;} -case 297: -#line 2880 "Gmsh.y" +case 300: +#line 2933 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(List_T*)); List_Add(yyval.l, &(yyvsp[0].l)); ; break;} -case 298: -#line 2885 "Gmsh.y" +case 301: +#line 2938 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].l)); ; break;} -case 299: -#line 2893 "Gmsh.y" +case 302: +#line 2946 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); List_Add(yyval.l, &(yyvsp[0].d)); ; break;} -case 300: -#line 2898 "Gmsh.y" +case 303: +#line 2951 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} -case 301: -#line 2902 "Gmsh.y" +case 304: +#line 2955 "Gmsh.y" { // creates an empty list yyval.l = List_Create(2, 1, sizeof(double)); ; break;} -case 302: -#line 2907 "Gmsh.y" +case 305: +#line 2960 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} -case 303: -#line 2911 "Gmsh.y" +case 306: +#line 2964 "Gmsh.y" { yyval.l = yyvsp[-1].l; double *pd; @@ -5951,16 +6022,16 @@ case 303: } ; break;} -case 304: -#line 2923 "Gmsh.y" +case 307: +#line 2976 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); for(double d = yyvsp[-2].d; (yyvsp[-2].d < yyvsp[0].d) ? (d <= yyvsp[0].d) : (d >= yyvsp[0].d); (yyvsp[-2].d < yyvsp[0].d) ? (d += 1.) : (d -= 1.)) List_Add(yyval.l, &d); ; break;} -case 305: -#line 2929 "Gmsh.y" +case 308: +#line 2982 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); if(!yyvsp[0].d || (yyvsp[-4].d < yyvsp[-2].d && yyvsp[0].d < 0) || (yyvsp[-4].d > yyvsp[-2].d && yyvsp[0].d > 0)){ @@ -5972,8 +6043,8 @@ case 305: List_Add(yyval.l, &d); ; break;} -case 306: -#line 2940 "Gmsh.y" +case 309: +#line 2993 "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 @@ -5994,8 +6065,8 @@ case 306: } ; break;} -case 307: -#line 2960 "Gmsh.y" +case 310: +#line 3013 "Gmsh.y" { yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double)); for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ @@ -6006,8 +6077,8 @@ case 307: List_Delete(yyvsp[0].l); ; break;} -case 308: -#line 2970 "Gmsh.y" +case 311: +#line 3023 "Gmsh.y" { yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double)); for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ @@ -6018,8 +6089,8 @@ case 308: List_Delete(yyvsp[0].l); ; break;} -case 309: -#line 2980 "Gmsh.y" +case 312: +#line 3033 "Gmsh.y" { yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double)); for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ @@ -6030,8 +6101,8 @@ case 309: List_Delete(yyvsp[0].l); ; break;} -case 310: -#line 2990 "Gmsh.y" +case 313: +#line 3043 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -6049,8 +6120,8 @@ case 310: Free(yyvsp[-2].c); ; break;} -case 311: -#line 3007 "Gmsh.y" +case 314: +#line 3060 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -6070,8 +6141,8 @@ case 311: Free(yyvsp[-2].c); ; break;} -case 312: -#line 3026 "Gmsh.y" +case 315: +#line 3079 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -6096,8 +6167,8 @@ case 312: List_Delete(yyvsp[-2].l); ; break;} -case 313: -#line 3050 "Gmsh.y" +case 316: +#line 3103 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -6124,27 +6195,27 @@ case 313: List_Delete(yyvsp[-2].l); ; break;} -case 314: -#line 3079 "Gmsh.y" +case 317: +#line 3132 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); List_Add(yyval.l, &(yyvsp[0].d)); ; break;} -case 315: -#line 3084 "Gmsh.y" +case 318: +#line 3137 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} -case 316: -#line 3088 "Gmsh.y" +case 319: +#line 3141 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].d)); ; break;} -case 317: -#line 3092 "Gmsh.y" +case 320: +#line 3145 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ double d; @@ -6154,20 +6225,20 @@ case 317: List_Delete(yyvsp[0].l); ; break;} -case 318: -#line 3105 "Gmsh.y" +case 321: +#line 3158 "Gmsh.y" { yyval.u = CTX.PACK_COLOR((int)yyvsp[-7].d, (int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d); ; break;} -case 319: -#line 3109 "Gmsh.y" +case 322: +#line 3162 "Gmsh.y" { yyval.u = CTX.PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255); ; break;} -case 320: -#line 3121 "Gmsh.y" +case 323: +#line 3174 "Gmsh.y" { int flag; yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag); @@ -6175,8 +6246,8 @@ case 320: Free(yyvsp[0].c); ; break;} -case 321: -#line 3128 "Gmsh.y" +case 324: +#line 3181 "Gmsh.y" { unsigned int (*pColOpt)(int num, int action, unsigned int value); StringXColor *pColCat; @@ -6196,14 +6267,14 @@ case 321: Free(yyvsp[-4].c); Free(yyvsp[0].c); ; break;} -case 322: -#line 3150 "Gmsh.y" +case 325: +#line 3203 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} -case 323: -#line 3154 "Gmsh.y" +case 326: +#line 3207 "Gmsh.y" { yyval.l = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = Get_ColorTable((int)yyvsp[-3].d); @@ -6216,27 +6287,27 @@ case 323: Free(yyvsp[-5].c); ; break;} -case 324: -#line 3169 "Gmsh.y" +case 327: +#line 3222 "Gmsh.y" { yyval.l = List_Create(256, 10, sizeof(unsigned int)); List_Add(yyval.l, &(yyvsp[0].u)); ; break;} -case 325: -#line 3174 "Gmsh.y" +case 328: +#line 3227 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].u)); ; break;} -case 326: -#line 3181 "Gmsh.y" +case 329: +#line 3234 "Gmsh.y" { yyval.c = yyvsp[0].c; ; break;} -case 327: -#line 3185 "Gmsh.y" +case 330: +#line 3238 "Gmsh.y" { yyval.c = (char *)Malloc(32*sizeof(char)); time_t now; @@ -6245,8 +6316,8 @@ case 327: yyval.c[strlen(yyval.c) - 1] = '\0'; ; break;} -case 328: -#line 3193 "Gmsh.y" +case 331: +#line 3246 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-3].c)+strlen(yyvsp[-1].c)+1)*sizeof(char)); strcpy(yyval.c, yyvsp[-3].c); @@ -6255,8 +6326,8 @@ case 328: Free(yyvsp[-1].c); ; break;} -case 329: -#line 3201 "Gmsh.y" +case 332: +#line 3254 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char)); int i; @@ -6271,8 +6342,8 @@ case 329: Free(yyvsp[-1].c); ; break;} -case 330: -#line 3215 "Gmsh.y" +case 333: +#line 3268 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char)); int i; @@ -6287,14 +6358,14 @@ case 330: Free(yyvsp[-1].c); ; break;} -case 331: -#line 3229 "Gmsh.y" +case 334: +#line 3282 "Gmsh.y" { yyval.c = yyvsp[-1].c; ; break;} -case 332: -#line 3233 "Gmsh.y" +case 335: +#line 3286 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble(yyvsp[-3].c, yyvsp[-1].l, tmpstring); @@ -6314,8 +6385,8 @@ case 332: List_Delete(yyvsp[-1].l); ; break;} -case 333: -#line 3252 "Gmsh.y" +case 336: +#line 3305 "Gmsh.y" { char* (*pStrOpt)(int num, int action, char *value); StringXString *pStrCat; @@ -6338,8 +6409,8 @@ case 333: } ; break;} -case 334: -#line 3274 "Gmsh.y" +case 337: +#line 3327 "Gmsh.y" { char* (*pStrOpt)(int num, int action, char *value); StringXString *pStrCat; @@ -6584,7 +6655,7 @@ yyerrhandle: } return 1; } -#line 3297 "Gmsh.y" +#line 3350 "Gmsh.y" void DeleteSymbol(void *a, void *b){ diff --git a/Parser/Gmsh.tab.hpp b/Parser/Gmsh.tab.hpp index e42a99d3e58021aadd95e5238724452cfee3f8ac..737bb28d6d9e0e58a3e38ac5ec70e83f2d88e4d5 100644 --- a/Parser/Gmsh.tab.hpp +++ b/Parser/Gmsh.tab.hpp @@ -49,77 +49,78 @@ typedef union { #define tCircle 296 #define tEllipse 297 #define tLine 298 -#define tSurface 299 -#define tSpline 300 -#define tVolume 301 -#define tCharacteristic 302 -#define tLength 303 -#define tParametric 304 -#define tElliptic 305 -#define tPlane 306 -#define tRuled 307 -#define tTransfinite 308 -#define tComplex 309 -#define tPhysical 310 -#define tUsing 311 -#define tBump 312 -#define tProgression 313 -#define tPlugin 314 -#define tRotate 315 -#define tTranslate 316 -#define tSymmetry 317 -#define tDilate 318 -#define tExtrude 319 -#define tDuplicata 320 -#define tLoop 321 -#define tRecombine 322 -#define tDelete 323 -#define tCoherence 324 -#define tAttractor 325 -#define tLayers 326 -#define tAlias 327 -#define tAliasWithOptions 328 -#define tText2D 329 -#define tText3D 330 -#define tInterpolationScheme 331 -#define tTime 332 -#define tGrain 333 -#define tCombine 334 -#define tBSpline 335 -#define tBezier 336 -#define tNurbs 337 -#define tOrder 338 -#define tKnots 339 -#define tColor 340 -#define tColorTable 341 -#define tFor 342 -#define tIn 343 -#define tEndFor 344 -#define tIf 345 -#define tEndIf 346 -#define tExit 347 -#define tReturn 348 -#define tCall 349 -#define tFunction 350 -#define tShow 351 -#define tHide 352 -#define tGetValue 353 -#define tGMSH_MAJOR_VERSION 354 -#define tGMSH_MINOR_VERSION 355 -#define tGMSH_PATCH_VERSION 356 -#define tAFFECTPLUS 357 -#define tAFFECTMINUS 358 -#define tAFFECTTIMES 359 -#define tAFFECTDIVIDE 360 -#define tOR 361 -#define tAND 362 -#define tEQUAL 363 -#define tNOTEQUAL 364 -#define tLESSOREQUAL 365 -#define tGREATEROREQUAL 366 -#define tPLUSPLUS 367 -#define tMINUSMINUS 368 -#define UNARYPREC 369 +#define tSphere 299 +#define tSurface 300 +#define tSpline 301 +#define tVolume 302 +#define tCharacteristic 303 +#define tLength 304 +#define tParametric 305 +#define tElliptic 306 +#define tPlane 307 +#define tRuled 308 +#define tTransfinite 309 +#define tComplex 310 +#define tPhysical 311 +#define tUsing 312 +#define tBump 313 +#define tProgression 314 +#define tPlugin 315 +#define tRotate 316 +#define tTranslate 317 +#define tSymmetry 318 +#define tDilate 319 +#define tExtrude 320 +#define tDuplicata 321 +#define tLoop 322 +#define tRecombine 323 +#define tDelete 324 +#define tCoherence 325 +#define tAttractor 326 +#define tLayers 327 +#define tAlias 328 +#define tAliasWithOptions 329 +#define tText2D 330 +#define tText3D 331 +#define tInterpolationScheme 332 +#define tTime 333 +#define tGrain 334 +#define tCombine 335 +#define tBSpline 336 +#define tBezier 337 +#define tNurbs 338 +#define tOrder 339 +#define tKnots 340 +#define tColor 341 +#define tColorTable 342 +#define tFor 343 +#define tIn 344 +#define tEndFor 345 +#define tIf 346 +#define tEndIf 347 +#define tExit 348 +#define tReturn 349 +#define tCall 350 +#define tFunction 351 +#define tShow 352 +#define tHide 353 +#define tGetValue 354 +#define tGMSH_MAJOR_VERSION 355 +#define tGMSH_MINOR_VERSION 356 +#define tGMSH_PATCH_VERSION 357 +#define tAFFECTPLUS 358 +#define tAFFECTMINUS 359 +#define tAFFECTTIMES 360 +#define tAFFECTDIVIDE 361 +#define tOR 362 +#define tAND 363 +#define tEQUAL 364 +#define tNOTEQUAL 365 +#define tLESSOREQUAL 366 +#define tGREATEROREQUAL 367 +#define tPLUSPLUS 368 +#define tMINUSMINUS 369 +#define UNARYPREC 370 extern YYSTYPE yylval; diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index 39908b875cd536d8be71028e2872934f3a294309..2c50478e504d9bf5c59e52ad9702ea415bc6093a 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -1,5 +1,5 @@ %{ -// $Id: Gmsh.y,v 1.255 2007-01-25 15:51:03 geuzaine Exp $ +// $Id: Gmsh.y,v 1.256 2007-01-31 12:27:20 remacle Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -43,6 +43,7 @@ #include "ColorTable.h" #include "OS.h" #include "CreateFile.h" +#include "gmshSurface.h" Tree_T *Symbol_T = NULL; @@ -92,7 +93,7 @@ int CheckViewErrorFlags(Post_View *v); %token tFmod tModulo tHypot %token tPrintf tSprintf tStrCat tStrPrefix tStrRelative %token tBoundingBox tDraw tToday -%token tPoint tCircle tEllipse tLine tSurface tSpline tVolume +%token tPoint tCircle tEllipse tLine tSphere tSurface tSpline tVolume %token tCharacteristic tLength tParametric tElliptic %token tPlane tRuled tTransfinite tComplex tPhysical %token tUsing tBump tProgression tPlugin @@ -1018,6 +1019,9 @@ PhysicalId : } ; + +Surface : + Shape : // Points @@ -1040,6 +1044,29 @@ Shape : $$.Type = MSH_POINT; $$.Num = num; } + | tPoint '(' FExpr ')' tIn tSurface '(' FExpr ')' tAFFECT VExpr tEND + { + int num = (int)$3; + if(FindPoint(num)){ + yymsg(GERROR, "Point %d already exists", num); + } + else{ + double u = CTX.geom.scaling_factor * $11[0]; + double v = CTX.geom.scaling_factor * $11[1]; + double lc = CTX.geom.scaling_factor * $11[2]; + + gmshSurface *surf = gmshSurface::surfaceByTag ( (int) $8 ); + + if (!surf) + yymsg(GERROR, "gmshSurface %d does not exist", (int) $8); + + Vertex *vt = Create_Vertex(num, u, v, surf, lc); + Tree_Add(THEM->Points, &vt); + AddToTemporaryBoundingBox(vt->Pos.X,vt->Pos.Y,vt->Pos.Z); + } + $$.Type = MSH_POINT; + $$.Num = num; + } | tPhysical tPoint '(' PhysicalId ')' tAFFECT ListOfDouble tEND { int num = (int)$4; @@ -1402,6 +1429,32 @@ Shape : $$.Type = type; $$.Num = num; } +// This is the definition of a sphere +// it requires 2 point numbers (Center + a point of the sphere) + + | tSphere '(' FExpr ')' tAFFECT ListOfDouble tEND + { + int num = (int)$3, type = 0; + + if (List_Nbr($6) != 2){ + yymsg(GERROR, "Sphere %d has to be defined using 2 points (center + any point) and not %d", num,List_Nbr($6)); + } + else + { + double p1,p2; + List_Read($6, 0, &p1); + List_Read($6, 1, &p2); + Vertex *v1 = FindPoint((int)p1); + Vertex *v2 = FindPoint((int)p2); + if (!v1)yymsg(GERROR, "Sphere %d : unknown point %d", num,(int)p1); + if (!v2)yymsg(GERROR, "Sphere %d : unknown point %d", num,(int)p2); + gmshSurface *myGmshSurface = gmshSphere::NewSphere ( num , v1->Pos.X , v1->Pos.Y , v1->Pos.Z , + sqrt ( ( v2->Pos.X - v1->Pos.X) *( v2->Pos.X - v1->Pos.X) + + ( v2->Pos.Y - v1->Pos.Y) *( v2->Pos.Y - v1->Pos.Y) + + ( v2->Pos.Z - v1->Pos.Z) *( v2->Pos.Z - v1->Pos.Z) ) ); + } + } + | tSurface tLoop '(' FExpr ')' tAFFECT ListOfDouble tEND { int num = (int)$4; diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index 588480d22189c084f9578db3ffeb7aa1c1ef9a24..3472ff6f8b27b17f8087af03ae627143ce7205aa 100644 --- a/Parser/Gmsh.yy.cpp +++ b/Parser/Gmsh.yy.cpp @@ -2,7 +2,7 @@ /* A lexical scanner generated by flex */ /* Scanner skeleton version: - * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.297 2007-01-25 15:51:03 geuzaine Exp $ + * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.298 2007-01-31 12:27:20 remacle Exp $ */ #define FLEX_SCANNER @@ -283,72 +283,73 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 137 -#define YY_END_OF_BUFFER 138 -static yyconst short int yy_accept[569] = +#define YY_NUM_RULES 138 +#define YY_END_OF_BUFFER 139 +static yyconst short int yy_accept[573] = { 0, - 0, 0, 138, 136, 1, 1, 136, 5, 136, 6, - 136, 136, 136, 136, 136, 131, 20, 2, 136, 15, - 136, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 136, 27, 23, 18, 24, 16, 25, - 17, 0, 133, 3, 4, 19, 132, 131, 0, 28, - 26, 29, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 81, 80, 135, 135, 135, - - 135, 135, 135, 135, 135, 135, 135, 135, 95, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 126, 127, 135, 135, 135, 135, 135, - 135, 135, 22, 21, 0, 132, 0, 0, 134, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 48, 135, 135, - 135, 135, 135, 135, 135, 61, 135, 135, 135, 135, - 72, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 86, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - - 135, 135, 109, 135, 135, 135, 135, 135, 135, 135, - 122, 135, 135, 135, 135, 135, 0, 133, 0, 0, - 132, 30, 135, 135, 135, 135, 34, 36, 135, 135, - 135, 135, 42, 56, 135, 45, 135, 135, 135, 135, - 135, 135, 47, 135, 135, 60, 135, 135, 135, 135, - 68, 135, 69, 135, 71, 135, 135, 135, 135, 78, - 135, 135, 135, 135, 135, 84, 135, 85, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 106, 135, 135, 135, 135, 118, 110, 135, 135, 108, - 135, 135, 135, 135, 135, 129, 121, 135, 135, 135, - - 135, 10, 9, 8, 135, 12, 14, 0, 132, 32, - 135, 135, 135, 38, 135, 135, 135, 135, 135, 135, - 135, 135, 53, 135, 135, 135, 135, 135, 135, 135, - 67, 135, 70, 135, 135, 130, 135, 79, 135, 82, - 135, 135, 87, 135, 135, 135, 92, 93, 135, 135, - 96, 135, 97, 98, 135, 135, 135, 135, 135, 105, - 135, 135, 135, 135, 135, 135, 135, 123, 135, 124, - 135, 11, 135, 13, 135, 31, 35, 37, 135, 135, - 41, 135, 135, 135, 50, 135, 135, 135, 135, 57, - 58, 135, 135, 135, 66, 135, 135, 135, 135, 135, - - 135, 88, 83, 135, 135, 89, 135, 135, 102, 101, - 135, 135, 107, 104, 111, 135, 115, 135, 135, 135, - 135, 135, 135, 125, 7, 135, 39, 135, 43, 135, - 135, 135, 135, 135, 46, 52, 135, 63, 135, 135, - 64, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 114, 135, 135, 112, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 62, 65, - 73, 135, 135, 135, 74, 135, 90, 91, 135, 94, - 135, 135, 135, 135, 113, 135, 135, 135, 40, 135, - 135, 135, 51, 135, 59, 135, 135, 135, 135, 135, - - 135, 103, 116, 135, 135, 120, 135, 135, 55, 135, - 54, 135, 135, 135, 135, 100, 135, 135, 135, 135, - 44, 135, 135, 135, 135, 135, 99, 117, 119, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 49, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 33, 135, 135, 135, 135, 135, 135, 135, - 135, 75, 76, 77, 135, 135, 128, 0 + 0, 0, 139, 137, 1, 1, 137, 5, 137, 6, + 137, 137, 137, 137, 137, 132, 20, 2, 137, 15, + 137, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 137, 27, 23, 18, 24, 16, 25, + 17, 0, 134, 3, 4, 19, 133, 132, 0, 28, + 26, 29, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 81, 80, 136, 136, 136, + + 136, 136, 136, 136, 136, 136, 136, 136, 95, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 127, 128, 136, 136, 136, 136, 136, + 136, 136, 22, 21, 0, 133, 0, 0, 135, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 48, 136, 136, + 136, 136, 136, 136, 136, 61, 136, 136, 136, 136, + 72, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 86, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + + 136, 136, 109, 136, 136, 136, 136, 136, 136, 136, + 136, 123, 136, 136, 136, 136, 136, 0, 134, 0, + 0, 133, 30, 136, 136, 136, 136, 34, 36, 136, + 136, 136, 136, 42, 56, 136, 45, 136, 136, 136, + 136, 136, 136, 47, 136, 136, 60, 136, 136, 136, + 136, 68, 136, 69, 136, 71, 136, 136, 136, 136, + 78, 136, 136, 136, 136, 136, 84, 136, 85, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 106, 136, 136, 136, 136, 119, 110, 136, 136, + 136, 108, 136, 136, 136, 136, 136, 130, 122, 136, + + 136, 136, 136, 10, 9, 8, 136, 12, 14, 0, + 133, 32, 136, 136, 136, 38, 136, 136, 136, 136, + 136, 136, 136, 136, 53, 136, 136, 136, 136, 136, + 136, 136, 67, 136, 70, 136, 136, 131, 136, 79, + 136, 82, 136, 136, 87, 136, 136, 136, 92, 93, + 136, 136, 96, 136, 97, 98, 136, 136, 136, 136, + 136, 105, 136, 136, 136, 136, 136, 136, 136, 136, + 124, 136, 125, 136, 11, 136, 13, 136, 31, 35, + 37, 136, 136, 41, 136, 136, 136, 50, 136, 136, + 136, 136, 57, 58, 136, 136, 136, 66, 136, 136, + + 136, 136, 136, 136, 88, 83, 136, 136, 89, 136, + 136, 102, 101, 136, 136, 107, 104, 111, 112, 136, + 116, 136, 136, 136, 136, 136, 136, 126, 7, 136, + 39, 136, 43, 136, 136, 136, 136, 136, 46, 52, + 136, 63, 136, 136, 64, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 115, 136, 136, + 113, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 62, 65, 73, 136, 136, 136, 74, 136, + 90, 91, 136, 94, 136, 136, 136, 136, 114, 136, + 136, 136, 40, 136, 136, 136, 51, 136, 59, 136, + + 136, 136, 136, 136, 136, 103, 117, 136, 136, 121, + 136, 136, 55, 136, 54, 136, 136, 136, 136, 100, + 136, 136, 136, 136, 44, 136, 136, 136, 136, 136, + 99, 118, 120, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 49, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 33, 136, 136, 136, + 136, 136, 136, 136, 136, 75, 76, 77, 136, 136, + 129, 0 } ; static yyconst int yy_ec[256] = @@ -395,139 +396,141 @@ static yyconst int yy_meta[73] = 2, 1 } ; -static yyconst short int yy_base[570] = +static yyconst short int yy_base[574] = { 0, - 0, 0, 690, 691, 691, 691, 668, 691, 682, 691, - 666, 64, 65, 63, 75, 77, 691, 691, 665, 664, - 663, 46, 48, 65, 66, 65, 79, 62, 45, 46, - 0, 624, 80, 46, 616, 618, 94, 95, 98, 150, - 616, 619, 627, 605, 691, 691, 691, 691, 691, 691, - 691, 665, 156, 691, 691, 691, 161, 176, 185, 691, - 691, 691, 0, 615, 619, 624, 617, 91, 610, 599, - 603, 610, 93, 612, 619, 602, 151, 607, 606, 615, - 600, 603, 609, 156, 610, 597, 596, 592, 595, 612, - 629, 586, 600, 588, 606, 0, 0, 587, 576, 586, - - 585, 70, 612, 592, 578, 590, 576, 568, 0, 96, - 112, 124, 578, 155, 571, 578, 574, 574, 44, 569, - 568, 567, 571, 0, 0, 593, 568, 576, 578, 569, - 566, 554, 691, 691, 209, 215, 224, 230, 235, 557, - 573, 228, 560, 559, 554, 559, 560, 555, 552, 555, - 553, 553, 546, 559, 556, 546, 206, 551, 553, 556, - 534, 544, 545, 116, 534, 0, 535, 533, 536, 545, - 0, 545, 563, 561, 547, 539, 529, 561, 522, 535, - 532, 533, 569, 521, 535, 514, 531, 527, 530, 512, - 516, 521, 514, 521, 512, 517, 519, 508, 501, 519, - - 514, 496, 509, 507, 506, 495, 233, 507, 500, 530, - 502, 508, 495, 494, 486, 211, 248, 266, 275, 280, - 285, 0, 487, 490, 494, 501, 0, 532, 499, 490, - 493, 493, 0, 0, 476, 0, 494, 483, 476, 475, - 482, 479, 0, 470, 469, 0, 478, 471, 471, 478, - 0, 463, 0, 465, 0, 462, 480, 489, 477, 0, - 458, 482, 457, 457, 454, 0, 505, 0, 145, 460, - 452, 452, 456, 458, 461, 456, 445, 446, 443, 444, - 0, 448, 442, 439, 453, 0, 0, 443, 442, 0, - 453, 436, 447, 450, 445, 0, 0, 425, 430, 440, - - 434, 0, 434, 0, 439, 432, 0, 290, 295, 443, - 423, 427, 426, 0, 435, 424, 419, 426, 423, 430, - 427, 426, 434, 416, 423, 422, 421, 422, 171, 407, - 0, 419, 0, 413, 221, 0, 410, 0, 428, 0, - 401, 410, 0, 416, 407, 401, 0, 0, 409, 410, - 0, 399, 0, 0, 405, 405, 407, 395, 402, 0, - 401, 386, 385, 398, 391, 398, 381, 0, 261, 0, - 394, 0, 391, 0, 388, 0, 0, 427, 376, 389, - 0, 380, 381, 372, 0, 377, 388, 383, 364, 0, - 0, 385, 264, 376, 0, 379, 369, 183, 405, 361, - - 389, 0, 0, 366, 353, 0, 358, 375, 0, 0, - 357, 365, 0, 0, 0, 367, 0, 366, 370, 365, - 352, 359, 366, 0, 0, 347, 0, 351, 0, 357, - 369, 357, 358, 358, 0, 0, 340, 0, 340, 354, - 0, 343, 369, 364, 357, 347, 363, 340, 344, 331, - 336, 328, 332, 0, 335, 324, 0, 318, 328, 321, - 331, 321, 359, 322, 318, 329, 322, 331, 0, 0, - 0, 340, 339, 350, 0, 351, 0, 0, 318, 0, - 317, 320, 301, 314, 0, 313, 316, 329, 0, 305, - 306, 308, 0, 311, 0, 321, 320, 329, 316, 308, - - 296, 0, 0, 288, 289, 0, 292, 283, 0, 287, - 0, 304, 303, 302, 316, 0, 287, 294, 293, 278, - 0, 277, 297, 296, 295, 301, 0, 0, 0, 282, - 281, 308, 307, 306, 296, 271, 281, 289, 288, 287, - 280, 266, 0, 283, 282, 281, 280, 256, 286, 285, - 283, 262, 0, 249, 240, 239, 227, 219, 180, 160, - 155, 0, 0, 0, 98, 91, 0, 691, 79 + 0, 0, 694, 695, 695, 695, 672, 695, 686, 695, + 670, 64, 65, 63, 75, 77, 695, 695, 669, 668, + 667, 46, 48, 65, 66, 65, 79, 62, 45, 46, + 0, 628, 80, 46, 620, 622, 94, 95, 98, 150, + 620, 623, 631, 609, 695, 695, 695, 695, 695, 695, + 695, 669, 156, 695, 695, 695, 161, 176, 185, 695, + 695, 695, 0, 619, 623, 628, 621, 91, 614, 603, + 607, 614, 93, 616, 623, 606, 151, 611, 610, 619, + 604, 607, 613, 156, 614, 601, 600, 596, 599, 616, + 633, 590, 604, 592, 610, 0, 0, 591, 580, 590, + + 589, 70, 616, 596, 582, 594, 580, 572, 0, 96, + 112, 124, 582, 155, 575, 582, 578, 578, 162, 573, + 572, 571, 575, 0, 0, 597, 572, 580, 582, 573, + 570, 558, 695, 695, 219, 224, 233, 239, 244, 561, + 577, 181, 564, 563, 558, 563, 564, 559, 556, 559, + 557, 557, 550, 563, 560, 550, 170, 555, 557, 560, + 538, 548, 549, 116, 538, 0, 539, 537, 540, 549, + 0, 549, 567, 565, 551, 543, 533, 565, 526, 539, + 536, 537, 573, 525, 539, 518, 535, 531, 534, 516, + 520, 525, 518, 525, 516, 521, 523, 512, 505, 523, + + 518, 500, 513, 515, 510, 509, 498, 238, 510, 503, + 533, 505, 511, 498, 497, 489, 216, 253, 271, 280, + 285, 290, 0, 490, 493, 497, 504, 0, 535, 502, + 493, 496, 496, 0, 0, 479, 0, 497, 486, 479, + 478, 485, 482, 0, 473, 472, 0, 481, 474, 474, + 481, 0, 466, 0, 468, 0, 465, 483, 492, 480, + 0, 461, 485, 460, 460, 457, 0, 508, 0, 145, + 463, 455, 455, 459, 461, 464, 459, 448, 449, 446, + 447, 0, 451, 445, 442, 456, 0, 0, 442, 445, + 444, 0, 455, 438, 449, 452, 447, 0, 0, 427, + + 432, 442, 436, 0, 436, 0, 441, 434, 0, 295, + 300, 445, 425, 429, 428, 0, 437, 426, 421, 428, + 425, 432, 429, 428, 436, 418, 425, 424, 423, 424, + 180, 409, 0, 421, 0, 415, 236, 0, 412, 0, + 430, 0, 403, 412, 0, 418, 409, 403, 0, 0, + 411, 412, 0, 401, 0, 0, 407, 407, 409, 397, + 404, 0, 403, 402, 387, 386, 399, 392, 399, 382, + 0, 266, 0, 395, 0, 392, 0, 389, 0, 0, + 428, 377, 390, 0, 381, 382, 373, 0, 378, 389, + 384, 365, 0, 0, 386, 175, 377, 0, 380, 370, + + 241, 406, 362, 390, 0, 0, 367, 354, 0, 359, + 376, 0, 0, 358, 366, 0, 0, 0, 0, 368, + 0, 367, 371, 366, 353, 360, 367, 0, 0, 348, + 0, 352, 0, 358, 370, 358, 359, 359, 0, 0, + 341, 0, 341, 355, 0, 344, 370, 365, 358, 348, + 364, 341, 345, 332, 337, 329, 333, 0, 336, 325, + 0, 319, 329, 322, 332, 322, 360, 323, 319, 330, + 323, 332, 0, 0, 0, 341, 340, 351, 0, 352, + 0, 0, 319, 0, 318, 321, 302, 315, 0, 314, + 317, 330, 0, 306, 307, 309, 0, 312, 0, 322, + + 321, 330, 317, 309, 297, 0, 0, 289, 290, 0, + 293, 284, 0, 288, 0, 305, 304, 303, 317, 0, + 288, 295, 294, 279, 0, 278, 298, 297, 296, 302, + 0, 0, 0, 283, 282, 309, 308, 307, 297, 272, + 282, 290, 289, 288, 281, 267, 0, 284, 283, 281, + 280, 256, 288, 261, 260, 257, 0, 244, 225, 187, + 184, 160, 146, 97, 91, 0, 0, 0, 72, 74, + 0, 695, 79 } ; -static yyconst short int yy_def[570] = +static yyconst short int yy_def[574] = { 0, - 568, 1, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 568, 568, 568, 568, 568, 568, 568, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 568, 568, 568, 568, - 568, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - - 569, 569, 569, 569, 569, 569, 569, 568, 568, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 0, 568 + 572, 1, 572, 572, 572, 572, 572, 572, 572, 572, + 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, + 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, + 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, + 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 572, 572, 572, 572, 572, 572, 572, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, + 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + + 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, + 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 0, 572 } ; -static yyconst short int yy_nxt[764] = +static yyconst short int yy_nxt[768] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16, 16, 16, 16, 17, 18, 19, @@ -540,82 +543,82 @@ static yyconst short int yy_nxt[764] = 63, 95, 54, 103, 49, 51, 55, 57, 69, 58, 58, 58, 58, 58, 64, 56, 90, 96, 70, 93, - 204, 91, 65, 59, 97, 104, 205, 71, 66, 67, - 68, 73, 92, 72, 94, 74, 78, 567, 75, 76, + 571, 91, 65, 59, 97, 104, 570, 71, 66, 67, + 68, 73, 92, 72, 94, 74, 78, 569, 75, 76, 79, 82, 183, 83, 77, 85, 99, 59, 80, 184, - 100, 81, 566, 84, 101, 86, 87, 144, 88, 102, - 107, 113, 191, 249, 89, 114, 250, 108, 109, 150, + 100, 81, 568, 84, 101, 86, 87, 144, 88, 102, + 107, 113, 191, 250, 89, 114, 251, 108, 109, 150, 110, 117, 118, 111, 115, 145, 112, 151, 119, 120, 116, 192, 121, 122, 124, 125, 193, 123, 53, 53, 53, 53, 53, 136, 136, 136, 136, 136, 195, 194, - 126, 565, 135, 196, 344, 345, 57, 137, 58, 58, - 58, 58, 58, 138, 138, 564, 127, 139, 139, 139, - - 139, 139, 59, 198, 155, 443, 135, 156, 157, 128, - 165, 137, 129, 444, 158, 563, 166, 217, 217, 199, - 167, 218, 218, 218, 218, 218, 59, 136, 136, 136, - 136, 136, 220, 220, 393, 394, 221, 221, 221, 221, - 221, 219, 139, 139, 139, 139, 139, 139, 139, 139, - 139, 139, 224, 241, 562, 398, 561, 291, 399, 302, - 218, 218, 218, 218, 218, 219, 242, 303, 225, 226, - 292, 304, 293, 305, 306, 560, 559, 307, 218, 218, - 218, 218, 218, 308, 308, 558, 557, 309, 309, 309, - 309, 309, 221, 221, 221, 221, 221, 221, 221, 221, - - 221, 221, 309, 309, 309, 309, 309, 309, 309, 309, - 309, 309, 422, 556, 438, 555, 554, 423, 439, 553, - 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, - 542, 541, 540, 539, 538, 537, 536, 535, 534, 533, - 532, 531, 530, 529, 528, 527, 526, 525, 524, 523, - 522, 521, 520, 519, 518, 517, 516, 515, 514, 513, - 512, 511, 510, 509, 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, 470, 469, 468, 467, 466, 465, 464, 463, - 462, 461, 460, 459, 458, 457, 456, 455, 454, 453, - 452, 451, 450, 449, 448, 447, 446, 445, 442, 441, - 440, 437, 436, 435, 434, 433, 432, 431, 430, 429, - 428, 427, 426, 425, 424, 421, 420, 419, 418, 417, - 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, - 406, 405, 404, 403, 402, 401, 400, 397, 396, 395, - 392, 391, 390, 389, 388, 387, 386, 385, 384, 383, - 382, 381, 380, 379, 378, 377, 376, 375, 374, 373, - 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, - - 362, 361, 360, 359, 358, 357, 356, 355, 354, 353, - 352, 351, 350, 349, 348, 347, 346, 343, 342, 341, - 340, 339, 338, 337, 336, 335, 334, 333, 332, 331, - 330, 329, 328, 327, 326, 325, 324, 323, 322, 321, - 320, 319, 318, 317, 316, 315, 314, 313, 312, 311, - 310, 301, 300, 299, 298, 297, 296, 295, 294, 290, - 289, 288, 287, 286, 285, 284, 283, 282, 281, 280, - 279, 278, 277, 276, 275, 274, 273, 272, 271, 270, - 269, 268, 267, 266, 265, 264, 263, 262, 261, 260, - 259, 258, 257, 256, 255, 254, 253, 252, 251, 248, - - 247, 246, 245, 244, 243, 240, 239, 238, 237, 236, - 235, 234, 233, 232, 231, 230, 229, 228, 227, 223, - 222, 216, 215, 214, 213, 212, 211, 210, 209, 208, - 207, 206, 203, 202, 201, 200, 197, 190, 189, 188, - 187, 186, 185, 182, 181, 180, 179, 178, 177, 176, - 175, 174, 173, 172, 171, 170, 169, 168, 164, 163, - 162, 161, 160, 159, 154, 153, 152, 149, 148, 147, - 146, 143, 142, 141, 140, 134, 133, 132, 131, 130, - 106, 105, 98, 62, 61, 60, 47, 46, 45, 568, - 3, 568, 568, 568, 568, 568, 568, 568, 568, 568, - - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568 + 126, 567, 135, 196, 346, 347, 57, 137, 58, 58, + 58, 58, 58, 138, 138, 566, 127, 139, 139, 139, + + 139, 139, 59, 198, 155, 225, 135, 156, 157, 128, + 165, 137, 129, 565, 158, 204, 166, 242, 205, 199, + 167, 226, 227, 564, 206, 442, 59, 218, 218, 443, + 243, 219, 219, 219, 219, 219, 136, 136, 136, 136, + 136, 221, 221, 396, 397, 222, 222, 222, 222, 222, + 220, 139, 139, 139, 139, 139, 139, 139, 139, 139, + 139, 563, 293, 447, 304, 219, 219, 219, 219, 219, + 401, 448, 305, 402, 220, 294, 306, 295, 307, 308, + 562, 561, 309, 219, 219, 219, 219, 219, 310, 310, + 560, 559, 311, 311, 311, 311, 311, 222, 222, 222, + + 222, 222, 222, 222, 222, 222, 222, 311, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 426, 558, 557, + 556, 555, 427, 554, 553, 552, 551, 550, 549, 548, + 547, 546, 545, 544, 543, 542, 541, 540, 539, 538, + 537, 536, 535, 534, 533, 532, 531, 530, 529, 528, + 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, + 517, 516, 515, 514, 513, 512, 511, 510, 509, 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, 470, 469, 468, + 467, 466, 465, 464, 463, 462, 461, 460, 459, 458, + 457, 456, 455, 454, 453, 452, 451, 450, 449, 446, + 445, 444, 441, 440, 439, 438, 437, 436, 435, 434, + 433, 432, 431, 430, 429, 428, 425, 424, 423, 422, + 421, 420, 419, 418, 417, 416, 415, 414, 413, 412, + 411, 410, 409, 408, 407, 406, 405, 404, 403, 400, + 399, 398, 395, 394, 393, 392, 391, 390, 389, 388, + 387, 386, 385, 384, 383, 382, 381, 380, 379, 378, + 377, 376, 375, 374, 373, 372, 371, 370, 369, 368, + + 367, 366, 365, 364, 363, 362, 361, 360, 359, 358, + 357, 356, 355, 354, 353, 352, 351, 350, 349, 348, + 345, 344, 343, 342, 341, 340, 339, 338, 337, 336, + 335, 334, 333, 332, 331, 330, 329, 328, 327, 326, + 325, 324, 323, 322, 321, 320, 319, 318, 317, 316, + 315, 314, 313, 312, 303, 302, 301, 300, 299, 298, + 297, 296, 292, 291, 290, 289, 288, 287, 286, 285, + 284, 283, 282, 281, 280, 279, 278, 277, 276, 275, + 274, 273, 272, 271, 270, 269, 268, 267, 266, 265, + 264, 263, 262, 261, 260, 259, 258, 257, 256, 255, + + 254, 253, 252, 249, 248, 247, 246, 245, 244, 241, + 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, + 230, 229, 228, 224, 223, 217, 216, 215, 214, 213, + 212, 211, 210, 209, 208, 207, 203, 202, 201, 200, + 197, 190, 189, 188, 187, 186, 185, 182, 181, 180, + 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, + 169, 168, 164, 163, 162, 161, 160, 159, 154, 153, + 152, 149, 148, 147, 146, 143, 142, 141, 140, 134, + 133, 132, 131, 130, 106, 105, 98, 62, 61, 60, + 47, 46, 45, 572, 3, 572, 572, 572, 572, 572, + + 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, + 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, + 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, + 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, + 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, + 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, + 572, 572, 572, 572, 572, 572, 572 } ; -static yyconst short int yy_chk[764] = +static yyconst short int yy_chk[768] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -625,82 +628,82 @@ static yyconst short int yy_chk[764] = 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, - 569, 30, 15, 34, 12, 13, 15, 16, 23, 16, + 573, 30, 15, 34, 12, 13, 15, 16, 23, 16, 16, 16, 16, 16, 22, 15, 28, 30, 23, 29, - 119, 28, 22, 16, 30, 34, 119, 23, 22, 22, - 22, 24, 28, 23, 29, 24, 25, 566, 24, 24, + 570, 28, 22, 16, 30, 34, 569, 23, 22, 22, + 22, 24, 28, 23, 29, 24, 25, 565, 24, 24, 25, 26, 102, 26, 24, 27, 33, 16, 25, 102, - 33, 25, 565, 26, 33, 27, 27, 68, 27, 33, + 33, 25, 564, 26, 33, 27, 27, 68, 27, 33, 37, 38, 110, 164, 27, 38, 164, 37, 37, 73, 37, 39, 39, 37, 38, 68, 37, 73, 39, 39, 38, 110, 39, 39, 40, 40, 111, 39, 53, 53, 53, 53, 53, 57, 57, 57, 57, 57, 112, 111, - 40, 561, 53, 112, 269, 269, 58, 57, 58, 58, - 58, 58, 58, 59, 59, 560, 40, 59, 59, 59, - - 59, 59, 58, 114, 77, 398, 53, 77, 77, 40, - 84, 57, 40, 398, 77, 559, 84, 135, 135, 114, - 84, 135, 135, 135, 135, 135, 58, 136, 136, 136, - 136, 136, 137, 137, 329, 329, 137, 137, 137, 137, - 137, 136, 138, 138, 138, 138, 138, 139, 139, 139, - 139, 139, 142, 157, 558, 335, 557, 207, 335, 216, - 217, 217, 217, 217, 217, 136, 157, 216, 142, 142, - 207, 216, 207, 216, 216, 556, 555, 216, 218, 218, - 218, 218, 218, 219, 219, 554, 552, 219, 219, 219, - 219, 219, 220, 220, 220, 220, 220, 221, 221, 221, - - 221, 221, 308, 308, 308, 308, 308, 309, 309, 309, - 309, 309, 369, 551, 393, 550, 549, 369, 393, 548, - 547, 546, 545, 544, 542, 541, 540, 539, 538, 537, - 536, 535, 534, 533, 532, 531, 530, 526, 525, 524, - 523, 522, 520, 519, 518, 517, 515, 514, 513, 512, - 510, 508, 507, 505, 504, 501, 500, 499, 498, 497, - 496, 494, 492, 491, 490, 488, 487, 486, 484, 483, - 482, 481, 479, 476, 474, 473, 472, 468, 467, 466, - 465, 464, 463, 462, 461, 460, 459, 458, 456, 455, - 453, 452, 451, 450, 449, 448, 447, 446, 445, 444, - - 443, 442, 440, 439, 437, 434, 433, 432, 431, 430, - 428, 426, 423, 422, 421, 420, 419, 418, 416, 412, - 411, 408, 407, 405, 404, 401, 400, 399, 397, 396, - 394, 392, 389, 388, 387, 386, 384, 383, 382, 380, - 379, 378, 375, 373, 371, 367, 366, 365, 364, 363, - 362, 361, 359, 358, 357, 356, 355, 352, 350, 349, - 346, 345, 344, 342, 341, 339, 337, 334, 332, 330, - 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, - 318, 317, 316, 315, 313, 312, 311, 310, 306, 305, - 303, 301, 300, 299, 298, 295, 294, 293, 292, 291, - - 289, 288, 285, 284, 283, 282, 280, 279, 278, 277, - 276, 275, 274, 273, 272, 271, 270, 267, 265, 264, - 263, 262, 261, 259, 258, 257, 256, 254, 252, 250, - 249, 248, 247, 245, 244, 242, 241, 240, 239, 238, - 237, 235, 232, 231, 230, 229, 228, 226, 225, 224, - 223, 215, 214, 213, 212, 211, 210, 209, 208, 206, - 205, 204, 203, 202, 201, 200, 199, 198, 197, 196, - 195, 194, 193, 192, 191, 190, 189, 188, 187, 186, - 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, - 175, 174, 173, 172, 170, 169, 168, 167, 165, 163, - - 162, 161, 160, 159, 158, 156, 155, 154, 153, 152, - 151, 150, 149, 148, 147, 146, 145, 144, 143, 141, - 140, 132, 131, 130, 129, 128, 127, 126, 123, 122, - 121, 120, 118, 117, 116, 115, 113, 108, 107, 106, - 105, 104, 103, 101, 100, 99, 98, 95, 94, 93, - 92, 91, 90, 89, 88, 87, 86, 85, 83, 82, - 81, 80, 79, 78, 76, 75, 74, 72, 71, 70, - 69, 67, 66, 65, 64, 52, 44, 43, 42, 41, - 36, 35, 32, 21, 20, 19, 11, 9, 7, 3, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 568, 568 + 40, 563, 53, 112, 270, 270, 58, 57, 58, 58, + 58, 58, 58, 59, 59, 562, 40, 59, 59, 59, + + 59, 59, 58, 114, 77, 142, 53, 77, 77, 40, + 84, 57, 40, 561, 77, 119, 84, 157, 119, 114, + 84, 142, 142, 560, 119, 396, 58, 135, 135, 396, + 157, 135, 135, 135, 135, 135, 136, 136, 136, 136, + 136, 137, 137, 331, 331, 137, 137, 137, 137, 137, + 136, 138, 138, 138, 138, 138, 139, 139, 139, 139, + 139, 559, 208, 401, 217, 218, 218, 218, 218, 218, + 337, 401, 217, 337, 136, 208, 217, 208, 217, 217, + 558, 556, 217, 219, 219, 219, 219, 219, 220, 220, + 555, 554, 220, 220, 220, 220, 220, 221, 221, 221, + + 221, 221, 222, 222, 222, 222, 222, 310, 310, 310, + 310, 310, 311, 311, 311, 311, 311, 372, 553, 552, + 551, 550, 372, 549, 548, 546, 545, 544, 543, 542, + 541, 540, 539, 538, 537, 536, 535, 534, 530, 529, + 528, 527, 526, 524, 523, 522, 521, 519, 518, 517, + 516, 514, 512, 511, 509, 508, 505, 504, 503, 502, + 501, 500, 498, 496, 495, 494, 492, 491, 490, 488, + 487, 486, 485, 483, 480, 478, 477, 476, 472, 471, + 470, 469, 468, 467, 466, 465, 464, 463, 462, 460, + 459, 457, 456, 455, 454, 453, 452, 451, 450, 449, + + 448, 447, 446, 444, 443, 441, 438, 437, 436, 435, + 434, 432, 430, 427, 426, 425, 424, 423, 422, 420, + 415, 414, 411, 410, 408, 407, 404, 403, 402, 400, + 399, 397, 395, 392, 391, 390, 389, 387, 386, 385, + 383, 382, 381, 378, 376, 374, 370, 369, 368, 367, + 366, 365, 364, 363, 361, 360, 359, 358, 357, 354, + 352, 351, 348, 347, 346, 344, 343, 341, 339, 336, + 334, 332, 330, 329, 328, 327, 326, 325, 324, 323, + 322, 321, 320, 319, 318, 317, 315, 314, 313, 312, + 308, 307, 305, 303, 302, 301, 300, 297, 296, 295, + + 294, 293, 291, 290, 289, 286, 285, 284, 283, 281, + 280, 279, 278, 277, 276, 275, 274, 273, 272, 271, + 268, 266, 265, 264, 263, 262, 260, 259, 258, 257, + 255, 253, 251, 250, 249, 248, 246, 245, 243, 242, + 241, 240, 239, 238, 236, 233, 232, 231, 230, 229, + 227, 226, 225, 224, 216, 215, 214, 213, 212, 211, + 210, 209, 207, 206, 205, 204, 203, 202, 201, 200, + 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, + 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, + 179, 178, 177, 176, 175, 174, 173, 172, 170, 169, + + 168, 167, 165, 163, 162, 161, 160, 159, 158, 156, + 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, + 145, 144, 143, 141, 140, 132, 131, 130, 129, 128, + 127, 126, 123, 122, 121, 120, 118, 117, 116, 115, + 113, 108, 107, 106, 105, 104, 103, 101, 100, 99, + 98, 95, 94, 93, 92, 91, 90, 89, 88, 87, + 86, 85, 83, 82, 81, 80, 79, 78, 76, 75, + 74, 72, 71, 70, 69, 67, 66, 65, 64, 52, + 44, 43, 42, 41, 36, 35, 32, 21, 20, 19, + 11, 9, 7, 3, 572, 572, 572, 572, 572, 572, + + 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, + 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, + 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, + 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, + 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, + 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, + 572, 572, 572, 572, 572, 572, 572 } ; static yy_state_type yy_last_accepting_state; @@ -717,7 +720,7 @@ char *yytext; #line 1 "Gmsh.l" #define INITIAL 0 #line 2 "Gmsh.l" -// $Id: Gmsh.yy.cpp,v 1.297 2007-01-25 15:51:03 geuzaine Exp $ +// $Id: Gmsh.yy.cpp,v 1.298 2007-01-31 12:27:20 remacle Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -778,7 +781,7 @@ void skipline(void); && ferror( yyin ) ) \ Msg(FATAL, "Input in flex scanner failed"); -#line 782 "Gmsh.yy.cpp" +#line 785 "Gmsh.yy.cpp" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -932,7 +935,7 @@ YY_DECL #line 79 "Gmsh.l" -#line 936 "Gmsh.yy.cpp" +#line 939 "Gmsh.yy.cpp" if ( yy_init ) { @@ -983,13 +986,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 >= 569 ) + if ( yy_current_state >= 573 ) 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] != 691 ); + while ( yy_base[yy_current_state] != 695 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1568,130 +1571,135 @@ return tSinh; case 111: YY_RULE_SETUP #line 208 "Gmsh.l" -return tSpline; +return tSphere; YY_BREAK case 112: YY_RULE_SETUP #line 209 "Gmsh.l" -return tSurface; +return tSpline; YY_BREAK case 113: YY_RULE_SETUP #line 210 "Gmsh.l" -return tSymmetry; +return tSurface; YY_BREAK case 114: YY_RULE_SETUP #line 211 "Gmsh.l" -return tSprintf; +return tSymmetry; YY_BREAK case 115: YY_RULE_SETUP #line 212 "Gmsh.l" -return tStrCat; +return tSprintf; YY_BREAK case 116: YY_RULE_SETUP #line 213 "Gmsh.l" -return tStrPrefix; +return tStrCat; YY_BREAK case 117: YY_RULE_SETUP #line 214 "Gmsh.l" -return tStrRelative; +return tStrPrefix; YY_BREAK case 118: YY_RULE_SETUP #line 215 "Gmsh.l" -return tShow; +return tStrRelative; YY_BREAK case 119: YY_RULE_SETUP -#line 217 "Gmsh.l" -return tTransfinite; +#line 216 "Gmsh.l" +return tShow; YY_BREAK case 120: YY_RULE_SETUP #line 218 "Gmsh.l" -return tTranslate; +return tTransfinite; YY_BREAK case 121: YY_RULE_SETUP #line 219 "Gmsh.l" -return tTanh; +return tTranslate; YY_BREAK case 122: YY_RULE_SETUP #line 220 "Gmsh.l" -return tTan; +return tTanh; YY_BREAK case 123: YY_RULE_SETUP #line 221 "Gmsh.l" -return tToday; +return tTan; YY_BREAK case 124: YY_RULE_SETUP -#line 223 "Gmsh.l" -return tUsing; +#line 222 "Gmsh.l" +return tToday; YY_BREAK case 125: YY_RULE_SETUP -#line 225 "Gmsh.l" -return tVolume; +#line 224 "Gmsh.l" +return tUsing; YY_BREAK case 126: YY_RULE_SETUP -#line 227 "Gmsh.l" -return tText2D; +#line 226 "Gmsh.l" +return tVolume; YY_BREAK case 127: YY_RULE_SETUP #line 228 "Gmsh.l" -return tText3D; +return tText2D; YY_BREAK case 128: YY_RULE_SETUP #line 229 "Gmsh.l" -return tInterpolationScheme; +return tText3D; YY_BREAK case 129: YY_RULE_SETUP #line 230 "Gmsh.l" -return tTime; +return tInterpolationScheme; YY_BREAK case 130: YY_RULE_SETUP #line 231 "Gmsh.l" -return tGrain; +return tTime; YY_BREAK case 131: -#line 234 "Gmsh.l" +YY_RULE_SETUP +#line 232 "Gmsh.l" +return tGrain; + YY_BREAK case 132: #line 235 "Gmsh.l" case 133: #line 236 "Gmsh.l" case 134: +#line 237 "Gmsh.l" +case 135: YY_RULE_SETUP -#line 236 "Gmsh.l" +#line 237 "Gmsh.l" {yylval.d = atof((char *)yytext); return tDOUBLE;} YY_BREAK -case 135: +case 136: YY_RULE_SETUP -#line 238 "Gmsh.l" +#line 239 "Gmsh.l" {yylval.c = strsave((char*)yytext); return tSTRING;} YY_BREAK -case 136: +case 137: YY_RULE_SETUP -#line 240 "Gmsh.l" +#line 241 "Gmsh.l" return yytext[0]; YY_BREAK -case 137: +case 138: YY_RULE_SETUP -#line 242 "Gmsh.l" +#line 243 "Gmsh.l" ECHO; YY_BREAK -#line 1695 "Gmsh.yy.cpp" +#line 1703 "Gmsh.yy.cpp" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -1983,7 +1991,7 @@ static yy_state_type yy_get_previous_state() while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 569 ) + if ( yy_current_state >= 573 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2018,11 +2026,11 @@ yy_state_type yy_current_state; while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 569 ) + if ( yy_current_state >= 573 ) 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 == 568); + yy_is_jam = (yy_current_state == 572); return yy_is_jam ? 0 : yy_current_state; } @@ -2577,7 +2585,7 @@ int main() return 0; } #endif -#line 242 "Gmsh.l" +#line 243 "Gmsh.l" #undef yywrap