diff --git a/Geo/ExtrudeParams.cpp b/Geo/ExtrudeParams.cpp index dfa74ceb07092356d7505f0f8837231845c250a5..1d1fcc1bbdf0bfe5efb86a3653e0b11c020a8305 100644 --- a/Geo/ExtrudeParams.cpp +++ b/Geo/ExtrudeParams.cpp @@ -8,6 +8,7 @@ #include "ExtrudeParams.h" smooth_data* ExtrudeParams::normals[2] = {0, 0}; +std::vector<SPoint3> ExtrudeParams::normalsCoherence; static void Projette(double p[3], double mat[3][3]) { @@ -95,7 +96,8 @@ void ExtrudeParams::Extrude(double t, double &x, double &y, double &z) z += dz; break; case BOUNDARY_LAYER: - if(normals[mesh.BoundaryLayerIndex]) + if(mesh.BoundaryLayerIndex >= 0 && mesh.BoundaryLayerIndex <= 1 && + normals[mesh.BoundaryLayerIndex]) normals[mesh.BoundaryLayerIndex]->get(x, y, z, 3, n); x += n[0] * t; y += n[1] * t; diff --git a/Geo/ExtrudeParams.h b/Geo/ExtrudeParams.h index 22cf5a49487e03b84769d322010213c2dc794fa7..e442907d5fbaedb74543adca638c374d5b60e32c 100644 --- a/Geo/ExtrudeParams.h +++ b/Geo/ExtrudeParams.h @@ -10,6 +10,7 @@ #include <map> #include <string> #include "SmoothData.h" +#include "SPoint3.h" #include "MElement.h" // geo.Mode @@ -37,7 +38,6 @@ public : bool empty(); void propagatePartitionInformation(std::vector<int>* partitionSizes = NULL); } elementMap; - static smooth_data *normals[2]; ExtrudeParams(int Mode = EXTRUDED_ENTITY); void fill(int type, double T0, double T1, double T2, @@ -64,6 +64,10 @@ public : double trans[3]; double axe[3], pt[3], angle; }geo; + + // for boundary layers + static smooth_data *normals[2]; + static std::vector<SPoint3> normalsCoherence; }; #endif diff --git a/Mesh/BoundaryLayers.cpp b/Mesh/BoundaryLayers.cpp index 2d50aa59bc012712a7db52809fbeae9ee077951d..61efe90f29ce1dcff8bc823853be00e18c398bc5 100644 --- a/Mesh/BoundaryLayers.cpp +++ b/Mesh/BoundaryLayers.cpp @@ -53,31 +53,28 @@ static void addExtrudeNormals(std::vector<T*> &elements, int invert, else if(ele->getDim() == 1) // FIXME only valid in XY-plane n = crossprod(ele->getEdge(0).tangent(), SVector3(0, 0, 1)); if(invert) n *= -1.; - if(n[0] || n[1] || n[2]){ - double nn[3] = {n[0], n[1], n[2]}; - for(int k = 0; k < ele->getNumVertices(); k++){ - MVertex *v = ele->getVertex(k); - ExtrudeParams::normals[index]->add(v->x(), v->y(), v->z(), 3, nn); - } + double nn[3] = {n[0], n[1], n[2]}; + for(int k = 0; k < ele->getNumVertices(); k++){ + MVertex *v = ele->getVertex(k); + ExtrudeParams::normals[index]->add(v->x(), v->y(), v->z(), 3, nn); } } } } -typedef std::set<std::pair<bool, int> > infoset; +typedef std::set<std::pair<bool, std::pair<int, int> > > infoset; template<class T> static void addExtrudeNormals(std::set<T*> &entities, - std::map<int, infoset> &infos, - std::map<int, int> &views) + std::map<int, infoset> &infos) { for(typename std::set<T*>::iterator it = entities.begin(); it != entities.end(); it++){ T *ge = *it; - int view = views[ge->tag()]; infoset info = infos[ge->tag()]; for(infoset::iterator it2 = info.begin(); it2 != info.end(); it2++){ bool invert = it2->first; - int index = it2->second; + int index = it2->second.first; + int view = it2->second.second; OctreePost *octree = 0; #if defined(HAVE_POST) if(view >= 0){ @@ -102,7 +99,7 @@ int Mesh2DWithBoundaryLayers(GModel *m) std::set<GFace*> sourceFaces, otherFaces; std::set<GEdge*> sourceEdges, otherEdges; std::map<int, infoset> sourceFaceInfo, sourceEdgeInfo; - std::map<int, int> sourceFaceView, sourceEdgeView; + bool normalize = true; // 2D boundary layers for(GModel::eiter it = m->firstEdge(); it != m->lastEdge(); it++){ @@ -116,9 +113,10 @@ int Mesh2DWithBoundaryLayers(GModel *m) Msg::Error("Unknown source curve %d for boundary layer", ep->geo.Source); return 0; } - std::pair<bool, int> tags(ep->geo.Source < 0, ep->mesh.BoundaryLayerIndex); + if(ep->mesh.ViewIndex >= 0) normalize = false; + std::pair<bool, std::pair<int, int> > tags(ep->geo.Source < 0, std::pair<int, int> + (ep->mesh.BoundaryLayerIndex, ep->mesh.ViewIndex)); sourceEdgeInfo[from->tag()].insert(tags); - sourceEdgeView[from->tag()] = ep->mesh.ViewIndex; sourceEdges.insert(from); } } @@ -136,9 +134,10 @@ int Mesh2DWithBoundaryLayers(GModel *m) Msg::Error("Unknown source face %d for boundary layer", ep->geo.Source); return 0; } - std::pair<bool, int> tags(ep->geo.Source < 0, ep->mesh.BoundaryLayerIndex); + if(ep->mesh.ViewIndex >= 0) normalize = false; + std::pair<bool, std::pair<int, int> > tags(ep->geo.Source < 0, std::pair<int, int> + (ep->mesh.BoundaryLayerIndex, ep->mesh.ViewIndex)); sourceFaceInfo[from->tag()].insert(tags); - sourceFaceView[from->tag()] = ep->mesh.ViewIndex; sourceFaces.insert(from); std::list<GEdge*> e = from->edges(); sourceEdges.insert(e.begin(), e.end()); @@ -170,10 +169,22 @@ int Mesh2DWithBoundaryLayers(GModel *m) ExtrudeParams::normals[i] = new smooth_data(); } if(sourceFaces.empty()) - addExtrudeNormals(sourceEdges, sourceEdgeInfo, sourceEdgeView); + addExtrudeNormals(sourceEdges, sourceEdgeInfo); else - addExtrudeNormals(sourceFaces, sourceFaceInfo, sourceFaceView); - if(sourceEdgeView.empty() && sourceFaceView.empty()) + addExtrudeNormals(sourceFaces, sourceFaceInfo); + + // enforce coherent normals at some points if necessary + for(int i = 0; i < ExtrudeParams::normalsCoherence.size(); i++){ + SPoint3 &p(ExtrudeParams::normalsCoherence[i]); + double n0[3], n1[3]; + ExtrudeParams::normals[0]->get(p.x(), p.y(), p.z(), 3, n0); + ExtrudeParams::normals[1]->get(p.x(), p.y(), p.z(), 3, n1); + ExtrudeParams::normals[0]->add(p.x(), p.y(), p.z(), 3, n1); + ExtrudeParams::normals[1]->add(p.x(), p.y(), p.z(), 3, n0); + } + + // normalize normals if not using post-processing views + if(normalize) for(int i = 0; i < 2; i++) ExtrudeParams::normals[i]->normalize(); diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index 6d3ebce4257b709a26f2ff2cefe02d7b72cbe076..c1eee6bab5f80392b526755854f85316b4ba6a12 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -689,16 +689,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 6945 +#define YYLAST 6954 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 153 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 82 +#define YYNNTS 81 /* YYNRULES -- Number of rules. */ #define YYNRULES 388 /* YYNRULES -- Number of states. */ -#define YYNSTATES 1398 +#define YYNSTATES 1400 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -775,26 +775,26 @@ static const yytype_uint16 yyprhs[] = 948, 953, 957, 965, 973, 977, 985, 989, 992, 995, 998, 1014, 1017, 1020, 1027, 1036, 1045, 1056, 1058, 1061, 1063, 1067, 1072, 1074, 1080, 1092, 1106, 1107, 1115, 1116, - 1130, 1131, 1147, 1148, 1155, 1156, 1167, 1176, 1185, 1194, - 1207, 1220, 1233, 1248, 1263, 1278, 1279, 1292, 1293, 1306, - 1307, 1320, 1321, 1338, 1339, 1356, 1357, 1374, 1375, 1394, - 1395, 1414, 1415, 1434, 1436, 1439, 1445, 1453, 1463, 1466, - 1476, 1477, 1481, 1482, 1484, 1485, 1488, 1489, 1492, 1500, - 1507, 1516, 1522, 1528, 1535, 1542, 1555, 1566, 1577, 1588, - 1599, 1602, 1606, 1618, 1630, 1642, 1654, 1656, 1660, 1663, - 1666, 1669, 1673, 1677, 1681, 1685, 1689, 1693, 1697, 1701, - 1705, 1709, 1713, 1717, 1721, 1725, 1731, 1736, 1741, 1746, - 1751, 1756, 1761, 1766, 1771, 1776, 1781, 1788, 1793, 1798, - 1803, 1808, 1813, 1818, 1825, 1832, 1839, 1844, 1849, 1854, - 1859, 1864, 1869, 1874, 1879, 1884, 1889, 1894, 1901, 1906, - 1911, 1916, 1921, 1926, 1931, 1938, 1945, 1952, 1957, 1959, - 1961, 1963, 1965, 1967, 1969, 1971, 1973, 1979, 1984, 1989, - 1992, 1998, 2002, 2009, 2014, 2022, 2029, 2031, 2034, 2037, - 2041, 2045, 2057, 2067, 2075, 2083, 2085, 2089, 2091, 2093, - 2096, 2100, 2105, 2111, 2113, 2115, 2118, 2122, 2126, 2132, - 2137, 2139, 2141, 2145, 2152, 2154, 2156, 2160, 2164, 2174, - 2182, 2184, 2190, 2194, 2201, 2203, 2207, 2209, 2211, 2215, - 2222, 2224, 2226, 2231, 2238, 2245, 2250, 2255, 2260 + 1130, 1131, 1147, 1148, 1155, 1164, 1173, 1182, 1195, 1208, + 1221, 1236, 1251, 1266, 1267, 1280, 1281, 1294, 1295, 1308, + 1309, 1326, 1327, 1344, 1345, 1362, 1363, 1382, 1383, 1402, + 1403, 1422, 1424, 1427, 1433, 1441, 1451, 1454, 1464, 1471, + 1472, 1476, 1477, 1479, 1480, 1483, 1484, 1487, 1495, 1502, + 1511, 1517, 1523, 1530, 1537, 1550, 1561, 1572, 1583, 1594, + 1597, 1601, 1608, 1620, 1632, 1644, 1656, 1658, 1662, 1665, + 1668, 1671, 1675, 1679, 1683, 1687, 1691, 1695, 1699, 1703, + 1707, 1711, 1715, 1719, 1723, 1727, 1733, 1738, 1743, 1748, + 1753, 1758, 1763, 1768, 1773, 1778, 1783, 1790, 1795, 1800, + 1805, 1810, 1815, 1820, 1827, 1834, 1841, 1846, 1851, 1856, + 1861, 1866, 1871, 1876, 1881, 1886, 1891, 1896, 1903, 1908, + 1913, 1918, 1923, 1928, 1933, 1940, 1947, 1954, 1959, 1961, + 1963, 1965, 1967, 1969, 1971, 1973, 1975, 1981, 1986, 1991, + 1994, 2000, 2004, 2011, 2016, 2024, 2031, 2033, 2036, 2039, + 2043, 2047, 2059, 2069, 2077, 2085, 2087, 2091, 2093, 2095, + 2098, 2102, 2107, 2113, 2115, 2117, 2120, 2124, 2128, 2134, + 2139, 2141, 2143, 2147, 2154, 2156, 2158, 2162, 2166, 2176, + 2184, 2186, 2192, 2196, 2203, 2205, 2209, 2211, 2213, 2217, + 2224, 2226, 2228, 2233, 2240, 2247, 2252, 2257, 2262 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -803,230 +803,230 @@ static const yytype_int16 yyrhs[] = 154, 0, -1, 155, -1, 1, 6, -1, -1, 155, 156, -1, 159, -1, 158, -1, 177, -1, 181, -1, 186, -1, 190, -1, 191, -1, 192, -1, 195, -1, - 216, -1, 217, -1, 218, -1, 219, -1, 194, -1, - 193, -1, 189, -1, 220, -1, 130, -1, 130, 130, + 215, -1, 216, -1, 217, -1, 218, -1, 194, -1, + 193, -1, 189, -1, 219, -1, 130, -1, 130, 130, -1, 35, 143, 5, 144, 6, -1, 35, 143, 5, - 144, 157, 233, 6, -1, 35, 143, 5, 149, 229, - 144, 6, -1, 35, 143, 5, 149, 229, 144, 157, - 233, 6, -1, 4, 5, 150, 160, 151, 6, -1, - 84, 4, 145, 221, 146, 6, -1, 85, 4, 145, - 221, 146, 6, -1, -1, 160, 163, -1, 160, 167, + 144, 157, 232, 6, -1, 35, 143, 5, 149, 228, + 144, 6, -1, 35, 143, 5, 149, 228, 144, 157, + 232, 6, -1, 4, 5, 150, 160, 151, 6, -1, + 84, 4, 145, 220, 146, 6, -1, 85, 4, 145, + 220, 146, 6, -1, -1, 160, 163, -1, 160, 167, -1, 160, 170, -1, 160, 172, -1, 160, 173, -1, - 221, -1, 161, 149, 221, -1, 221, -1, 162, 149, - 221, -1, -1, -1, 4, 164, 143, 161, 144, 165, - 150, 162, 151, 6, -1, 233, -1, 166, 149, 233, - -1, -1, 86, 143, 221, 149, 221, 149, 221, 144, - 168, 150, 166, 151, 6, -1, 233, -1, 169, 149, - 233, -1, -1, 87, 143, 221, 149, 221, 149, 221, - 149, 221, 144, 171, 150, 169, 151, 6, -1, 88, - 150, 225, 151, 150, 225, 151, 6, -1, 88, 150, - 225, 151, 150, 225, 151, 150, 225, 151, 150, 225, + 220, -1, 161, 149, 220, -1, 220, -1, 162, 149, + 220, -1, -1, -1, 4, 164, 143, 161, 144, 165, + 150, 162, 151, 6, -1, 232, -1, 166, 149, 232, + -1, -1, 86, 143, 220, 149, 220, 149, 220, 144, + 168, 150, 166, 151, 6, -1, 232, -1, 169, 149, + 232, -1, -1, 87, 143, 220, 149, 220, 149, 220, + 149, 220, 144, 171, 150, 169, 151, 6, -1, 88, + 150, 224, 151, 150, 224, 151, 6, -1, 88, 150, + 224, 151, 150, 224, 151, 150, 224, 151, 150, 224, 151, 6, -1, -1, 89, 174, 150, 162, 151, 6, -1, 7, -1, 123, -1, 122, -1, 121, -1, 120, - -1, 141, -1, 140, -1, 4, 175, 221, 6, -1, - 4, 145, 221, 146, 175, 221, 6, -1, 4, 145, - 150, 229, 151, 146, 175, 226, 6, -1, 4, 145, - 146, 7, 226, 6, -1, 4, 145, 146, 123, 226, - 6, -1, 4, 176, 6, -1, 4, 145, 221, 146, - 176, 6, -1, 4, 7, 234, 6, -1, 4, 147, - 4, 7, 234, 6, -1, 4, 145, 221, 146, 147, - 4, 7, 234, 6, -1, 4, 147, 4, 175, 221, - 6, -1, 4, 145, 221, 146, 147, 4, 175, 221, + -1, 141, -1, 140, -1, 4, 175, 220, 6, -1, + 4, 145, 220, 146, 175, 220, 6, -1, 4, 145, + 150, 228, 151, 146, 175, 225, 6, -1, 4, 145, + 146, 7, 225, 6, -1, 4, 145, 146, 123, 225, + 6, -1, 4, 176, 6, -1, 4, 145, 220, 146, + 176, 6, -1, 4, 7, 233, 6, -1, 4, 147, + 4, 7, 233, 6, -1, 4, 145, 220, 146, 147, + 4, 7, 233, 6, -1, 4, 147, 4, 175, 220, + 6, -1, 4, 145, 220, 146, 147, 4, 175, 220, 6, -1, 4, 147, 4, 176, 6, -1, 4, 145, - 221, 146, 147, 4, 176, 6, -1, 4, 147, 96, - 147, 4, 7, 230, 6, -1, 4, 145, 221, 146, - 147, 96, 147, 4, 7, 230, 6, -1, 4, 147, - 97, 7, 231, 6, -1, 4, 145, 221, 146, 147, - 97, 7, 231, 6, -1, 4, 104, 7, 221, 6, - -1, 104, 145, 221, 146, 7, 4, 6, -1, 104, - 145, 221, 146, 147, 4, 7, 221, 6, -1, 104, - 145, 221, 146, 147, 4, 7, 234, 6, -1, 104, - 145, 221, 146, 147, 4, 7, 150, 229, 151, 6, - -1, 67, 143, 4, 144, 147, 4, 7, 221, 6, - -1, 67, 143, 4, 144, 147, 4, 7, 234, 6, - -1, 221, -1, 234, -1, -1, 99, 50, 150, 221, - 151, -1, -1, 59, 223, -1, 46, 143, 221, 144, - 7, 223, 6, -1, -1, 63, 46, 182, 143, 178, - 144, 7, 226, 6, -1, 55, 56, 226, 7, 221, - 6, -1, 49, 143, 221, 144, 7, 226, 6, -1, - 68, 49, 226, 6, -1, 53, 143, 221, 144, 7, - 226, 6, -1, 47, 143, 221, 144, 7, 226, 180, - 6, -1, 48, 143, 221, 144, 7, 226, 180, 6, - -1, 91, 143, 221, 144, 7, 226, 6, -1, 92, - 143, 221, 144, 7, 226, 6, -1, 93, 143, 221, - 144, 7, 226, 95, 226, 94, 221, 6, -1, 49, - 75, 143, 221, 144, 7, 226, 6, -1, 64, 49, - 143, 221, 144, 7, 226, 6, -1, -1, 63, 49, - 183, 143, 178, 144, 7, 226, 6, -1, 59, 52, - 143, 221, 144, 7, 226, 6, -1, 60, 52, 143, - 221, 144, 7, 226, 179, 6, -1, 12, 13, 6, - -1, 13, 52, 221, 6, -1, 57, 52, 143, 221, - 144, 7, 5, 5, 5, 6, -1, 50, 143, 221, - 144, 7, 226, 6, -1, 51, 143, 221, 144, 7, - 226, 6, -1, 52, 75, 143, 221, 144, 7, 226, - 6, -1, 64, 52, 143, 221, 144, 7, 226, 6, - -1, 64, 52, 143, 221, 144, 7, 226, 4, 150, - 225, 151, 6, -1, -1, 63, 52, 184, 143, 178, - 144, 7, 226, 6, -1, 62, 54, 143, 221, 144, - 7, 226, 6, -1, 54, 143, 221, 144, 7, 226, - 6, -1, 64, 54, 143, 221, 144, 7, 226, 6, - -1, -1, 63, 54, 185, 143, 178, 144, 7, 226, - 6, -1, 70, 223, 150, 187, 151, -1, 69, 150, - 223, 149, 223, 149, 221, 151, 150, 187, 151, -1, - 71, 223, 150, 187, 151, -1, 72, 150, 223, 149, - 221, 151, 150, 187, 151, -1, 4, 150, 187, 151, - -1, 81, 49, 150, 229, 151, 52, 150, 221, 151, - -1, 78, 49, 143, 221, 144, 150, 229, 151, 6, + 220, 146, 147, 4, 176, 6, -1, 4, 147, 96, + 147, 4, 7, 229, 6, -1, 4, 145, 220, 146, + 147, 96, 147, 4, 7, 229, 6, -1, 4, 147, + 97, 7, 230, 6, -1, 4, 145, 220, 146, 147, + 97, 7, 230, 6, -1, 4, 104, 7, 220, 6, + -1, 104, 145, 220, 146, 7, 4, 6, -1, 104, + 145, 220, 146, 147, 4, 7, 220, 6, -1, 104, + 145, 220, 146, 147, 4, 7, 233, 6, -1, 104, + 145, 220, 146, 147, 4, 7, 150, 228, 151, 6, + -1, 67, 143, 4, 144, 147, 4, 7, 220, 6, + -1, 67, 143, 4, 144, 147, 4, 7, 233, 6, + -1, 220, -1, 233, -1, -1, 99, 50, 150, 220, + 151, -1, -1, 59, 222, -1, 46, 143, 220, 144, + 7, 222, 6, -1, -1, 63, 46, 182, 143, 178, + 144, 7, 225, 6, -1, 55, 56, 225, 7, 220, + 6, -1, 49, 143, 220, 144, 7, 225, 6, -1, + 68, 49, 225, 6, -1, 53, 143, 220, 144, 7, + 225, 6, -1, 47, 143, 220, 144, 7, 225, 180, + 6, -1, 48, 143, 220, 144, 7, 225, 180, 6, + -1, 91, 143, 220, 144, 7, 225, 6, -1, 92, + 143, 220, 144, 7, 225, 6, -1, 93, 143, 220, + 144, 7, 225, 95, 225, 94, 220, 6, -1, 49, + 75, 143, 220, 144, 7, 225, 6, -1, 64, 49, + 143, 220, 144, 7, 225, 6, -1, -1, 63, 49, + 183, 143, 178, 144, 7, 225, 6, -1, 59, 52, + 143, 220, 144, 7, 225, 6, -1, 60, 52, 143, + 220, 144, 7, 225, 179, 6, -1, 12, 13, 6, + -1, 13, 52, 220, 6, -1, 57, 52, 143, 220, + 144, 7, 5, 5, 5, 6, -1, 50, 143, 220, + 144, 7, 225, 6, -1, 51, 143, 220, 144, 7, + 225, 6, -1, 52, 75, 143, 220, 144, 7, 225, + 6, -1, 64, 52, 143, 220, 144, 7, 225, 6, + -1, 64, 52, 143, 220, 144, 7, 225, 4, 150, + 224, 151, 6, -1, -1, 63, 52, 184, 143, 178, + 144, 7, 225, 6, -1, 62, 54, 143, 220, 144, + 7, 225, 6, -1, 54, 143, 220, 144, 7, 225, + 6, -1, 64, 54, 143, 220, 144, 7, 225, 6, + -1, -1, 63, 54, 185, 143, 178, 144, 7, 225, + 6, -1, 70, 222, 150, 187, 151, -1, 69, 150, + 222, 149, 222, 149, 220, 151, 150, 187, 151, -1, + 71, 222, 150, 187, 151, -1, 72, 150, 222, 149, + 220, 151, 150, 187, 151, -1, 4, 150, 187, 151, + -1, 81, 49, 150, 228, 151, 52, 150, 220, 151, + -1, 78, 49, 143, 220, 144, 150, 228, 151, 6, -1, 188, -1, 186, -1, -1, 188, 181, -1, 188, - 46, 150, 229, 151, 6, -1, 188, 49, 150, 229, - 151, 6, -1, 188, 52, 150, 229, 151, 6, -1, - 188, 54, 150, 229, 151, 6, -1, 74, 59, 143, - 221, 144, 7, 226, 6, -1, 74, 59, 143, 221, - 144, 7, 150, 223, 149, 223, 149, 229, 151, 6, - -1, 74, 59, 143, 221, 144, 7, 150, 223, 149, - 223, 149, 223, 149, 229, 151, 6, -1, 74, 50, - 143, 221, 144, 7, 150, 223, 149, 229, 151, 6, - -1, 74, 4, 143, 221, 144, 7, 226, 6, -1, - 74, 4, 143, 221, 144, 7, 5, 6, -1, 74, - 4, 150, 221, 151, 6, -1, 74, 4, 143, 221, - 144, 7, 150, 223, 149, 223, 149, 229, 151, 6, - -1, 79, 150, 188, 151, -1, 79, 104, 145, 221, - 146, 6, -1, 79, 4, 145, 221, 146, 6, -1, + 46, 150, 228, 151, 6, -1, 188, 49, 150, 228, + 151, 6, -1, 188, 52, 150, 228, 151, 6, -1, + 188, 54, 150, 228, 151, 6, -1, 74, 59, 143, + 220, 144, 7, 225, 6, -1, 74, 59, 143, 220, + 144, 7, 150, 222, 149, 222, 149, 228, 151, 6, + -1, 74, 59, 143, 220, 144, 7, 150, 222, 149, + 222, 149, 222, 149, 228, 151, 6, -1, 74, 50, + 143, 220, 144, 7, 150, 222, 149, 228, 151, 6, + -1, 74, 4, 143, 220, 144, 7, 225, 6, -1, + 74, 4, 143, 220, 144, 7, 5, 6, -1, 74, + 4, 150, 220, 151, 6, -1, 74, 4, 143, 220, + 144, 7, 150, 222, 149, 222, 149, 228, 151, 6, + -1, 79, 150, 188, 151, -1, 79, 104, 145, 220, + 146, 6, -1, 79, 4, 145, 220, 146, 6, -1, 79, 4, 6, -1, 79, 4, 4, 6, -1, 96, - 230, 150, 188, 151, -1, 108, 5, 6, -1, 109, + 229, 150, 188, 151, -1, 108, 5, 6, -1, 109, 5, 6, -1, 108, 150, 188, 151, -1, 109, 150, - 188, 151, -1, 4, 234, 6, -1, 4, 4, 145, - 221, 146, 233, 6, -1, 4, 4, 4, 145, 221, - 146, 6, -1, 4, 221, 6, -1, 67, 143, 4, + 188, 151, -1, 4, 233, 6, -1, 4, 4, 145, + 220, 146, 232, 6, -1, 4, 4, 4, 145, 220, + 146, 6, -1, 4, 220, 6, -1, 67, 143, 4, 144, 147, 4, 6, -1, 90, 4, 6, -1, 103, 6, -1, 43, 6, -1, 40, 6, -1, 40, 150, - 221, 149, 221, 149, 221, 149, 221, 149, 221, 149, - 221, 151, 6, -1, 41, 6, -1, 44, 6, -1, - 98, 143, 221, 8, 221, 144, -1, 98, 143, 221, - 8, 221, 8, 221, 144, -1, 98, 4, 99, 150, - 221, 8, 221, 151, -1, 98, 4, 99, 150, 221, - 8, 221, 8, 221, 151, -1, 100, -1, 107, 4, - -1, 105, -1, 106, 4, 6, -1, 101, 143, 221, - 144, -1, 102, -1, 73, 223, 150, 188, 151, -1, - 73, 150, 223, 149, 223, 149, 221, 151, 150, 188, - 151, -1, 73, 150, 223, 149, 223, 149, 223, 149, - 221, 151, 150, 188, 151, -1, -1, 73, 223, 150, - 188, 196, 210, 151, -1, -1, 73, 150, 223, 149, - 223, 149, 221, 151, 150, 188, 197, 210, 151, -1, - -1, 73, 150, 223, 149, 223, 149, 223, 149, 221, - 151, 150, 188, 198, 210, 151, -1, -1, 73, 150, - 188, 199, 210, 151, -1, -1, 73, 4, 145, 221, - 146, 150, 188, 200, 210, 151, -1, 73, 46, 150, - 221, 149, 223, 151, 6, -1, 73, 49, 150, 221, - 149, 223, 151, 6, -1, 73, 52, 150, 221, 149, - 223, 151, 6, -1, 73, 46, 150, 221, 149, 223, - 149, 223, 149, 221, 151, 6, -1, 73, 49, 150, - 221, 149, 223, 149, 223, 149, 221, 151, 6, -1, - 73, 52, 150, 221, 149, 223, 149, 223, 149, 221, - 151, 6, -1, 73, 46, 150, 221, 149, 223, 149, - 223, 149, 223, 149, 221, 151, 6, -1, 73, 49, - 150, 221, 149, 223, 149, 223, 149, 223, 149, 221, - 151, 6, -1, 73, 52, 150, 221, 149, 223, 149, - 223, 149, 223, 149, 221, 151, 6, -1, -1, 73, - 46, 150, 221, 149, 223, 151, 201, 150, 210, 151, - 6, -1, -1, 73, 49, 150, 221, 149, 223, 151, - 202, 150, 210, 151, 6, -1, -1, 73, 52, 150, - 221, 149, 223, 151, 203, 150, 210, 151, 6, -1, - -1, 73, 46, 150, 221, 149, 223, 149, 223, 149, - 221, 151, 204, 150, 210, 151, 6, -1, -1, 73, - 49, 150, 221, 149, 223, 149, 223, 149, 221, 151, - 205, 150, 210, 151, 6, -1, -1, 73, 52, 150, - 221, 149, 223, 149, 223, 149, 221, 151, 206, 150, - 210, 151, 6, -1, -1, 73, 46, 150, 221, 149, - 223, 149, 223, 149, 223, 149, 221, 151, 207, 150, - 210, 151, 6, -1, -1, 73, 49, 150, 221, 149, - 223, 149, 223, 149, 223, 149, 221, 151, 208, 150, - 210, 151, 6, -1, -1, 73, 52, 150, 221, 149, - 223, 149, 223, 149, 223, 149, 221, 151, 209, 150, - 210, 151, 6, -1, 211, -1, 210, 211, -1, 82, - 150, 221, 151, 6, -1, 82, 150, 226, 149, 226, - 151, 6, -1, 82, 150, 226, 149, 226, 149, 226, - 151, 6, -1, 76, 6, -1, 83, 143, 221, 144, - 7, 226, 66, 221, 6, -1, -1, 66, 4, 221, - -1, -1, 4, -1, -1, 7, 226, -1, -1, 7, - 221, -1, 61, 49, 227, 7, 221, 212, 6, -1, - 61, 52, 227, 214, 213, 6, -1, 58, 52, 150, - 221, 151, 7, 226, 6, -1, 61, 54, 227, 214, - 6, -1, 76, 52, 227, 215, 6, -1, 77, 52, - 226, 7, 221, 6, -1, 65, 49, 226, 7, 226, - 6, -1, 65, 52, 221, 150, 229, 151, 7, 221, - 150, 229, 151, 6, -1, 46, 150, 229, 151, 99, - 52, 150, 221, 151, 6, -1, 49, 150, 229, 151, - 99, 52, 150, 221, 151, 6, -1, 49, 150, 229, - 151, 99, 54, 150, 221, 151, 6, -1, 52, 150, - 229, 151, 99, 54, 150, 221, 151, 6, -1, 80, - 6, -1, 80, 4, 6, -1, 116, 143, 233, 144, - 7, 150, 226, 149, 226, 151, 6, -1, 117, 143, - 233, 144, 7, 150, 226, 149, 226, 151, 6, -1, - 118, 143, 233, 144, 7, 150, 226, 149, 226, 151, - 6, -1, 119, 143, 233, 144, 7, 150, 226, 149, - 226, 151, 6, -1, 222, -1, 143, 221, 144, -1, - 134, 221, -1, 133, 221, -1, 138, 221, -1, 221, - 134, 221, -1, 221, 133, 221, -1, 221, 135, 221, - -1, 221, 136, 221, -1, 221, 137, 221, -1, 221, - 142, 221, -1, 221, 129, 221, -1, 221, 130, 221, - -1, 221, 132, 221, -1, 221, 131, 221, -1, 221, - 128, 221, -1, 221, 127, 221, -1, 221, 126, 221, - -1, 221, 125, 221, -1, 221, 124, 221, 8, 221, - -1, 14, 143, 221, 144, -1, 15, 143, 221, 144, - -1, 16, 143, 221, 144, -1, 17, 143, 221, 144, - -1, 18, 143, 221, 144, -1, 19, 143, 221, 144, - -1, 20, 143, 221, 144, -1, 21, 143, 221, 144, - -1, 22, 143, 221, 144, -1, 24, 143, 221, 144, - -1, 25, 143, 221, 149, 221, 144, -1, 26, 143, - 221, 144, -1, 27, 143, 221, 144, -1, 28, 143, - 221, 144, -1, 29, 143, 221, 144, -1, 30, 143, - 221, 144, -1, 31, 143, 221, 144, -1, 32, 143, - 221, 149, 221, 144, -1, 33, 143, 221, 149, 221, - 144, -1, 34, 143, 221, 149, 221, 144, -1, 23, - 143, 221, 144, -1, 14, 145, 221, 146, -1, 15, - 145, 221, 146, -1, 16, 145, 221, 146, -1, 17, - 145, 221, 146, -1, 18, 145, 221, 146, -1, 19, - 145, 221, 146, -1, 20, 145, 221, 146, -1, 21, - 145, 221, 146, -1, 22, 145, 221, 146, -1, 24, - 145, 221, 146, -1, 25, 145, 221, 149, 221, 146, - -1, 26, 145, 221, 146, -1, 27, 145, 221, 146, - -1, 28, 145, 221, 146, -1, 29, 145, 221, 146, - -1, 30, 145, 221, 146, -1, 31, 145, 221, 146, - -1, 32, 145, 221, 149, 221, 146, -1, 33, 145, - 221, 149, 221, 146, -1, 34, 145, 221, 149, 221, - 146, -1, 23, 145, 221, 146, -1, 3, -1, 9, - -1, 10, -1, 11, -1, 113, -1, 114, -1, 115, - -1, 4, -1, 4, 152, 150, 221, 151, -1, 4, - 145, 221, 146, -1, 148, 4, 145, 146, -1, 4, - 176, -1, 4, 145, 221, 146, 176, -1, 4, 147, - 4, -1, 4, 145, 221, 146, 147, 4, -1, 4, - 147, 4, 176, -1, 4, 145, 221, 146, 147, 4, - 176, -1, 110, 143, 233, 149, 221, 144, -1, 224, - -1, 134, 223, -1, 133, 223, -1, 223, 134, 223, - -1, 223, 133, 223, -1, 150, 221, 149, 221, 149, - 221, 149, 221, 149, 221, 151, -1, 150, 221, 149, - 221, 149, 221, 149, 221, 151, -1, 150, 221, 149, - 221, 149, 221, 151, -1, 143, 221, 149, 221, 149, - 221, 144, -1, 226, -1, 225, 149, 226, -1, 221, - -1, 228, -1, 150, 151, -1, 150, 229, 151, -1, - 134, 150, 229, 151, -1, 221, 135, 150, 229, 151, - -1, 226, -1, 5, -1, 134, 228, -1, 221, 135, - 228, -1, 221, 8, 221, -1, 221, 8, 221, 8, - 221, -1, 46, 150, 221, 151, -1, 186, -1, 195, - -1, 4, 145, 146, -1, 4, 145, 150, 229, 151, - 146, -1, 221, -1, 228, -1, 229, 149, 221, -1, - 229, 149, 228, -1, 150, 221, 149, 221, 149, 221, - 149, 221, 151, -1, 150, 221, 149, 221, 149, 221, - 151, -1, 4, -1, 4, 147, 96, 147, 4, -1, - 150, 232, 151, -1, 4, 145, 221, 146, 147, 97, - -1, 230, -1, 232, 149, 230, -1, 234, -1, 4, - -1, 4, 147, 4, -1, 4, 145, 221, 146, 147, - 4, -1, 5, -1, 42, -1, 111, 143, 233, 144, - -1, 112, 143, 233, 149, 233, 144, -1, 37, 143, - 233, 149, 233, 144, -1, 38, 143, 233, 144, -1, - 39, 143, 233, 144, -1, 36, 143, 233, 144, -1, - 36, 143, 233, 149, 229, 144, -1 + 220, 149, 220, 149, 220, 149, 220, 149, 220, 149, + 220, 151, 6, -1, 41, 6, -1, 44, 6, -1, + 98, 143, 220, 8, 220, 144, -1, 98, 143, 220, + 8, 220, 8, 220, 144, -1, 98, 4, 99, 150, + 220, 8, 220, 151, -1, 98, 4, 99, 150, 220, + 8, 220, 8, 220, 151, -1, 100, -1, 107, 4, + -1, 105, -1, 106, 4, 6, -1, 101, 143, 220, + 144, -1, 102, -1, 73, 222, 150, 188, 151, -1, + 73, 150, 222, 149, 222, 149, 220, 151, 150, 188, + 151, -1, 73, 150, 222, 149, 222, 149, 222, 149, + 220, 151, 150, 188, 151, -1, -1, 73, 222, 150, + 188, 196, 209, 151, -1, -1, 73, 150, 222, 149, + 222, 149, 220, 151, 150, 188, 197, 209, 151, -1, + -1, 73, 150, 222, 149, 222, 149, 222, 149, 220, + 151, 150, 188, 198, 209, 151, -1, -1, 73, 150, + 188, 199, 209, 151, -1, 73, 46, 150, 220, 149, + 222, 151, 6, -1, 73, 49, 150, 220, 149, 222, + 151, 6, -1, 73, 52, 150, 220, 149, 222, 151, + 6, -1, 73, 46, 150, 220, 149, 222, 149, 222, + 149, 220, 151, 6, -1, 73, 49, 150, 220, 149, + 222, 149, 222, 149, 220, 151, 6, -1, 73, 52, + 150, 220, 149, 222, 149, 222, 149, 220, 151, 6, + -1, 73, 46, 150, 220, 149, 222, 149, 222, 149, + 222, 149, 220, 151, 6, -1, 73, 49, 150, 220, + 149, 222, 149, 222, 149, 222, 149, 220, 151, 6, + -1, 73, 52, 150, 220, 149, 222, 149, 222, 149, + 222, 149, 220, 151, 6, -1, -1, 73, 46, 150, + 220, 149, 222, 151, 200, 150, 209, 151, 6, -1, + -1, 73, 49, 150, 220, 149, 222, 151, 201, 150, + 209, 151, 6, -1, -1, 73, 52, 150, 220, 149, + 222, 151, 202, 150, 209, 151, 6, -1, -1, 73, + 46, 150, 220, 149, 222, 149, 222, 149, 220, 151, + 203, 150, 209, 151, 6, -1, -1, 73, 49, 150, + 220, 149, 222, 149, 222, 149, 220, 151, 204, 150, + 209, 151, 6, -1, -1, 73, 52, 150, 220, 149, + 222, 149, 222, 149, 220, 151, 205, 150, 209, 151, + 6, -1, -1, 73, 46, 150, 220, 149, 222, 149, + 222, 149, 222, 149, 220, 151, 206, 150, 209, 151, + 6, -1, -1, 73, 49, 150, 220, 149, 222, 149, + 222, 149, 222, 149, 220, 151, 207, 150, 209, 151, + 6, -1, -1, 73, 52, 150, 220, 149, 222, 149, + 222, 149, 222, 149, 220, 151, 208, 150, 209, 151, + 6, -1, 210, -1, 209, 210, -1, 82, 150, 220, + 151, 6, -1, 82, 150, 225, 149, 225, 151, 6, + -1, 82, 150, 225, 149, 225, 149, 225, 151, 6, + -1, 76, 6, -1, 83, 143, 220, 144, 7, 225, + 66, 220, 6, -1, 66, 4, 145, 220, 146, 6, + -1, -1, 66, 4, 220, -1, -1, 4, -1, -1, + 7, 225, -1, -1, 7, 220, -1, 61, 49, 226, + 7, 220, 211, 6, -1, 61, 52, 226, 213, 212, + 6, -1, 58, 52, 150, 220, 151, 7, 225, 6, + -1, 61, 54, 226, 213, 6, -1, 76, 52, 226, + 214, 6, -1, 77, 52, 225, 7, 220, 6, -1, + 65, 49, 225, 7, 225, 6, -1, 65, 52, 220, + 150, 228, 151, 7, 220, 150, 228, 151, 6, -1, + 46, 150, 228, 151, 99, 52, 150, 220, 151, 6, + -1, 49, 150, 228, 151, 99, 52, 150, 220, 151, + 6, -1, 49, 150, 228, 151, 99, 54, 150, 220, + 151, 6, -1, 52, 150, 228, 151, 99, 54, 150, + 220, 151, 6, -1, 80, 6, -1, 80, 4, 6, + -1, 80, 46, 150, 228, 151, 6, -1, 116, 143, + 232, 144, 7, 150, 225, 149, 225, 151, 6, -1, + 117, 143, 232, 144, 7, 150, 225, 149, 225, 151, + 6, -1, 118, 143, 232, 144, 7, 150, 225, 149, + 225, 151, 6, -1, 119, 143, 232, 144, 7, 150, + 225, 149, 225, 151, 6, -1, 221, -1, 143, 220, + 144, -1, 134, 220, -1, 133, 220, -1, 138, 220, + -1, 220, 134, 220, -1, 220, 133, 220, -1, 220, + 135, 220, -1, 220, 136, 220, -1, 220, 137, 220, + -1, 220, 142, 220, -1, 220, 129, 220, -1, 220, + 130, 220, -1, 220, 132, 220, -1, 220, 131, 220, + -1, 220, 128, 220, -1, 220, 127, 220, -1, 220, + 126, 220, -1, 220, 125, 220, -1, 220, 124, 220, + 8, 220, -1, 14, 143, 220, 144, -1, 15, 143, + 220, 144, -1, 16, 143, 220, 144, -1, 17, 143, + 220, 144, -1, 18, 143, 220, 144, -1, 19, 143, + 220, 144, -1, 20, 143, 220, 144, -1, 21, 143, + 220, 144, -1, 22, 143, 220, 144, -1, 24, 143, + 220, 144, -1, 25, 143, 220, 149, 220, 144, -1, + 26, 143, 220, 144, -1, 27, 143, 220, 144, -1, + 28, 143, 220, 144, -1, 29, 143, 220, 144, -1, + 30, 143, 220, 144, -1, 31, 143, 220, 144, -1, + 32, 143, 220, 149, 220, 144, -1, 33, 143, 220, + 149, 220, 144, -1, 34, 143, 220, 149, 220, 144, + -1, 23, 143, 220, 144, -1, 14, 145, 220, 146, + -1, 15, 145, 220, 146, -1, 16, 145, 220, 146, + -1, 17, 145, 220, 146, -1, 18, 145, 220, 146, + -1, 19, 145, 220, 146, -1, 20, 145, 220, 146, + -1, 21, 145, 220, 146, -1, 22, 145, 220, 146, + -1, 24, 145, 220, 146, -1, 25, 145, 220, 149, + 220, 146, -1, 26, 145, 220, 146, -1, 27, 145, + 220, 146, -1, 28, 145, 220, 146, -1, 29, 145, + 220, 146, -1, 30, 145, 220, 146, -1, 31, 145, + 220, 146, -1, 32, 145, 220, 149, 220, 146, -1, + 33, 145, 220, 149, 220, 146, -1, 34, 145, 220, + 149, 220, 146, -1, 23, 145, 220, 146, -1, 3, + -1, 9, -1, 10, -1, 11, -1, 113, -1, 114, + -1, 115, -1, 4, -1, 4, 152, 150, 220, 151, + -1, 4, 145, 220, 146, -1, 148, 4, 145, 146, + -1, 4, 176, -1, 4, 145, 220, 146, 176, -1, + 4, 147, 4, -1, 4, 145, 220, 146, 147, 4, + -1, 4, 147, 4, 176, -1, 4, 145, 220, 146, + 147, 4, 176, -1, 110, 143, 232, 149, 220, 144, + -1, 223, -1, 134, 222, -1, 133, 222, -1, 222, + 134, 222, -1, 222, 133, 222, -1, 150, 220, 149, + 220, 149, 220, 149, 220, 149, 220, 151, -1, 150, + 220, 149, 220, 149, 220, 149, 220, 151, -1, 150, + 220, 149, 220, 149, 220, 151, -1, 143, 220, 149, + 220, 149, 220, 144, -1, 225, -1, 224, 149, 225, + -1, 220, -1, 227, -1, 150, 151, -1, 150, 228, + 151, -1, 134, 150, 228, 151, -1, 220, 135, 150, + 228, 151, -1, 225, -1, 5, -1, 134, 227, -1, + 220, 135, 227, -1, 220, 8, 220, -1, 220, 8, + 220, 8, 220, -1, 46, 150, 220, 151, -1, 186, + -1, 195, -1, 4, 145, 146, -1, 4, 145, 150, + 228, 151, 146, -1, 220, -1, 227, -1, 228, 149, + 220, -1, 228, 149, 227, -1, 150, 220, 149, 220, + 149, 220, 149, 220, 151, -1, 150, 220, 149, 220, + 149, 220, 151, -1, 4, -1, 4, 147, 96, 147, + 4, -1, 150, 231, 151, -1, 4, 145, 220, 146, + 147, 97, -1, 229, -1, 231, 149, 229, -1, 233, + -1, 4, -1, 4, 147, 4, -1, 4, 145, 220, + 146, 147, 4, -1, 5, -1, 42, -1, 111, 143, + 232, 144, -1, 112, 143, 232, 149, 232, 144, -1, + 37, 143, 232, 149, 232, 144, -1, 38, 143, 232, + 144, -1, 39, 143, 232, 144, -1, 36, 143, 232, + 144, -1, 36, 143, 232, 149, 228, 144, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -1051,26 +1051,26 @@ static const yytype_uint16 yyrline[] = 2241, 2255, 2297, 2314, 2329, 2348, 2360, 2384, 2388, 2395, 2401, 2406, 2412, 2422, 2439, 2456, 2475, 2494, 2524, 2532, 2538, 2545, 2549, 2558, 2566, 2574, 2583, 2582, 2595, 2594, - 2607, 2606, 2619, 2618, 2630, 2629, 2646, 2653, 2660, 2667, - 2674, 2681, 2688, 2695, 2702, 2710, 2709, 2721, 2720, 2732, - 2731, 2743, 2742, 2754, 2753, 2765, 2764, 2776, 2775, 2787, - 2786, 2798, 2797, 2812, 2815, 2821, 2830, 2850, 2873, 2877, - 2901, 2904, 2920, 2923, 2936, 2939, 2945, 2948, 2955, 3011, - 3081, 3086, 3153, 3196, 3221, 3248, 3292, 3315, 3338, 3341, - 3350, 3354, 3371, 3408, 3444, 3479, 3519, 3520, 3521, 3522, - 3523, 3524, 3525, 3526, 3527, 3534, 3535, 3536, 3537, 3538, - 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, - 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, - 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3567, 3568, 3569, - 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, - 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3596, 3597, - 3598, 3599, 3600, 3601, 3602, 3606, 3625, 3643, 3658, 3668, - 3684, 3702, 3707, 3712, 3722, 3732, 3740, 3744, 3748, 3752, - 3756, 3763, 3767, 3771, 3775, 3782, 3787, 3794, 3799, 3803, - 3808, 3812, 3820, 3831, 3835, 3847, 3855, 3863, 3870, 3881, - 3901, 3911, 3921, 3931, 3951, 3956, 3960, 3964, 3976, 3980, - 3992, 3999, 4009, 4013, 4028, 4033, 4040, 4044, 4057, 4065, - 4076, 4080, 4088, 4096, 4104, 4112, 4126, 4140, 4144 + 2607, 2606, 2619, 2618, 2630, 2637, 2644, 2651, 2658, 2665, + 2672, 2679, 2686, 2694, 2693, 2705, 2704, 2716, 2715, 2727, + 2726, 2738, 2737, 2749, 2748, 2760, 2759, 2771, 2770, 2782, + 2781, 2796, 2799, 2805, 2814, 2834, 2857, 2861, 2880, 2893, + 2896, 2912, 2915, 2928, 2931, 2937, 2940, 2947, 3003, 3073, + 3078, 3145, 3188, 3213, 3240, 3284, 3307, 3330, 3333, 3342, + 3346, 3356, 3390, 3427, 3463, 3498, 3538, 3539, 3540, 3541, + 3542, 3543, 3544, 3545, 3546, 3553, 3554, 3555, 3556, 3557, + 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, + 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, + 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3586, 3587, 3588, + 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, + 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3615, 3616, + 3617, 3618, 3619, 3620, 3621, 3625, 3644, 3662, 3677, 3687, + 3703, 3721, 3726, 3731, 3741, 3751, 3759, 3763, 3767, 3771, + 3775, 3782, 3786, 3790, 3794, 3801, 3806, 3813, 3818, 3822, + 3827, 3831, 3839, 3850, 3854, 3866, 3874, 3882, 3889, 3900, + 3920, 3930, 3940, 3950, 3970, 3975, 3979, 3983, 3995, 3999, + 4011, 4018, 4028, 4032, 4047, 4052, 4059, 4063, 4076, 4084, + 4095, 4099, 4107, 4115, 4123, 4131, 4145, 4159, 4163 }; #endif @@ -1113,7 +1113,7 @@ static const char *const yytname[] = "Transform", "MultipleShape", "ListOfShapes", "LevelSet", "Delete", "Colorify", "Visibility", "Command", "Loop", "Extrude", "@10", "@11", "@12", "@13", "@14", "@15", "@16", "@17", "@18", "@19", "@20", "@21", - "@22", "@23", "ExtrudeParameters", "ExtrudeParameter", "TransfiniteType", + "@22", "ExtrudeParameters", "ExtrudeParameter", "TransfiniteType", "TransfiniteArrangement", "TransfiniteCorners", "RecombineAngle", "Transfinite", "Periodic", "Embedding", "Coherence", "Homology", "FExpr", "FExpr_Single", "VExpr", "VExpr_Single", "RecursiveListOfListOfDouble", @@ -1169,26 +1169,26 @@ static const yytype_uint8 yyr1[] = 192, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 195, 195, 195, 196, 195, 197, 195, - 198, 195, 199, 195, 200, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 201, 195, 202, 195, 203, + 198, 195, 199, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 200, 195, 201, 195, 202, 195, 203, 195, 204, 195, 205, 195, 206, 195, 207, 195, 208, - 195, 209, 195, 210, 210, 211, 211, 211, 211, 211, - 212, 212, 213, 213, 214, 214, 215, 215, 216, 216, - 216, 216, 216, 216, 217, 217, 218, 218, 218, 218, - 219, 219, 220, 220, 220, 220, 221, 221, 221, 221, + 195, 209, 209, 210, 210, 210, 210, 210, 210, 211, + 211, 212, 212, 213, 213, 214, 214, 215, 215, 215, + 215, 215, 215, 216, 216, 217, 217, 217, 217, 218, + 218, 218, 219, 219, 219, 219, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 223, 223, 223, 223, - 223, 224, 224, 224, 224, 225, 225, 226, 226, 226, - 226, 226, 226, 227, 227, 228, 228, 228, 228, 228, - 228, 228, 228, 228, 229, 229, 229, 229, 230, 230, - 230, 230, 231, 231, 232, 232, 233, 233, 233, 233, - 234, 234, 234, 234, 234, 234, 234, 234, 234 + 221, 221, 221, 221, 221, 221, 222, 222, 222, 222, + 222, 223, 223, 223, 223, 224, 224, 225, 225, 225, + 225, 225, 225, 226, 226, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 228, 228, 228, 228, 229, 229, + 229, 229, 230, 230, 231, 231, 232, 232, 232, 232, + 233, 233, 233, 233, 233, 233, 233, 233, 233 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1213,13 +1213,13 @@ static const yytype_uint8 yyr2[] = 4, 3, 7, 7, 3, 7, 3, 2, 2, 2, 15, 2, 2, 6, 8, 8, 10, 1, 2, 1, 3, 4, 1, 5, 11, 13, 0, 7, 0, 13, - 0, 15, 0, 6, 0, 10, 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, 9, - 0, 3, 0, 1, 0, 2, 0, 2, 7, 6, - 8, 5, 5, 6, 6, 12, 10, 10, 10, 10, - 2, 3, 11, 11, 11, 11, 1, 3, 2, 2, + 0, 15, 0, 6, 8, 8, 8, 12, 12, 12, + 14, 14, 14, 0, 12, 0, 12, 0, 12, 0, + 16, 0, 16, 0, 16, 0, 18, 0, 18, 0, + 18, 1, 2, 5, 7, 9, 2, 9, 6, 0, + 3, 0, 1, 0, 2, 0, 2, 7, 6, 8, + 5, 5, 6, 6, 12, 10, 10, 10, 10, 2, + 3, 6, 11, 11, 11, 11, 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, @@ -1259,9 +1259,9 @@ static const yytype_uint16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 109, 121, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 336, 0, 0, 0, 0, 0, 0, - 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 137, 0, 250, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 336, 0, 0, 0, 0, 0, 137, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 137, + 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 370, 0, 0, 0, 0, 0, 167, 0, 0, 178, 0, 137, 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, 329, 32, 380, 0, 0, 0, 0, 0, @@ -1276,12 +1276,12 @@ static const yytype_uint16 yydefact[] = 161, 113, 0, 0, 0, 0, 325, 0, 0, 360, 361, 364, 365, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 347, 0, 348, - 0, 0, 0, 0, 354, 353, 0, 234, 234, 0, + 0, 0, 0, 0, 354, 353, 0, 233, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, 337, 0, 0, 0, 0, 137, 137, - 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, - 137, 0, 0, 0, 0, 236, 0, 0, 0, 154, - 0, 0, 0, 251, 0, 0, 0, 166, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 192, 0, 137, + 0, 0, 0, 0, 235, 0, 0, 0, 154, 0, + 0, 0, 250, 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, 137, 0, 0, 0, 0, 180, 157, 0, 158, 0, 377, 0, 376, 0, 0, 0, 0, 0, 331, 0, 0, 71, 0, 0, 0, 0, 0, @@ -1296,11 +1296,11 @@ static const yytype_uint16 yydefact[] = 0, 0, 0, 0, 0, 0, 258, 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 232, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 340, 339, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 186, 0, 0, 0, 0, 0, 0, - 0, 0, 155, 0, 0, 151, 0, 0, 0, 0, + 0, 0, 186, 0, 0, 0, 0, 0, 0, 0, + 0, 155, 0, 0, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, 159, 160, 0, 0, 0, 0, 0, 0, 0, 327, 333, 0, 42, 0, 0, 0, 55, 0, 33, 34, 35, @@ -1314,247 +1314,247 @@ static const yytype_uint16 yydefact[] = 0, 0, 0, 0, 25, 23, 0, 0, 0, 0, 362, 0, 0, 357, 263, 356, 366, 367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 350, 0, 0, 0, 0, 0, 0, 230, 235, - 233, 0, 241, 0, 0, 89, 90, 0, 0, 0, + 0, 350, 0, 0, 0, 0, 0, 0, 229, 234, + 232, 0, 240, 0, 0, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 223, 0, 183, 0, 0, 0, 0, 0, 237, 242, + 221, 0, 183, 0, 0, 0, 0, 0, 236, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 156, 0, 0, 0, 0, 0, 378, 0, - 0, 0, 0, 0, 0, 330, 0, 326, 0, 0, - 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 327, 67, 68, 0, - 0, 0, 0, 0, 70, 72, 74, 0, 0, 374, - 0, 80, 0, 0, 0, 0, 275, 24, 0, 0, - 0, 0, 0, 359, 0, 0, 93, 93, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 351, 0, - 98, 0, 0, 0, 0, 0, 0, 239, 0, 0, - 0, 0, 0, 0, 0, 0, 244, 0, 0, 0, - 0, 0, 0, 137, 0, 0, 0, 228, 0, 0, - 193, 224, 0, 0, 0, 149, 0, 0, 243, 0, - 153, 152, 0, 30, 31, 0, 0, 0, 371, 0, - 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, - 163, 332, 162, 0, 0, 0, 0, 345, 0, 286, - 307, 293, 314, 294, 315, 295, 316, 388, 384, 335, - 383, 0, 57, 0, 0, 0, 0, 65, 0, 0, - 0, 372, 0, 0, 0, 0, 26, 27, 0, 0, - 95, 0, 358, 0, 0, 0, 0, 0, 99, 0, - 0, 116, 117, 0, 0, 101, 124, 352, 0, 0, - 0, 91, 0, 238, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 165, 0, 0, 0, 0, 137, 194, - 0, 205, 0, 207, 0, 209, 347, 0, 0, 0, - 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, - 104, 105, 0, 0, 0, 0, 83, 0, 0, 0, - 0, 0, 0, 334, 0, 38, 0, 0, 0, 0, - 0, 40, 0, 0, 0, 77, 0, 0, 78, 0, - 375, 139, 140, 141, 142, 0, 0, 363, 0, 94, - 102, 103, 107, 0, 0, 118, 0, 0, 240, 111, - 0, 0, 231, 123, 0, 0, 0, 0, 108, 0, - 119, 125, 0, 0, 0, 0, 344, 0, 343, 0, - 0, 0, 196, 0, 0, 197, 0, 0, 198, 0, - 0, 0, 0, 0, 0, 148, 0, 0, 147, 0, - 0, 143, 0, 0, 0, 0, 369, 0, 175, 174, - 0, 0, 0, 379, 0, 0, 0, 0, 43, 0, - 0, 0, 346, 0, 0, 0, 66, 73, 75, 0, - 81, 0, 28, 0, 0, 0, 0, 0, 0, 0, - 112, 97, 110, 122, 127, 0, 0, 87, 88, 137, - 0, 131, 0, 0, 0, 0, 0, 0, 0, 225, - 0, 0, 137, 0, 0, 0, 0, 134, 133, 0, - 0, 0, 0, 84, 85, 0, 0, 0, 0, 0, - 39, 0, 0, 0, 41, 56, 0, 373, 0, 246, - 247, 248, 249, 115, 0, 0, 0, 0, 0, 342, - 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 188, 0, 0, 0, 0, 0, 368, - 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 0, 0, 0, 0, 129, 0, 211, 0, 0, - 213, 0, 0, 215, 0, 0, 0, 226, 0, 184, - 0, 137, 0, 0, 0, 106, 86, 252, 253, 254, - 255, 0, 47, 0, 53, 0, 0, 92, 120, 245, - 341, 199, 0, 0, 206, 200, 0, 0, 208, 201, - 0, 0, 210, 0, 0, 0, 190, 0, 146, 0, - 0, 0, 0, 0, 0, 0, 0, 217, 0, 219, - 0, 221, 227, 229, 189, 185, 0, 0, 0, 0, - 44, 0, 51, 0, 0, 0, 202, 0, 0, 203, - 0, 0, 204, 0, 0, 150, 0, 144, 0, 45, - 0, 0, 170, 0, 0, 0, 0, 0, 0, 191, - 0, 0, 0, 0, 0, 212, 0, 214, 0, 216, - 0, 145, 46, 48, 0, 49, 0, 0, 0, 0, - 0, 0, 54, 218, 220, 222, 50, 52 + 0, 0, 0, 156, 0, 0, 0, 0, 0, 378, + 0, 0, 0, 0, 0, 0, 330, 0, 326, 0, + 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 327, 67, 68, + 0, 0, 0, 0, 0, 70, 72, 74, 0, 0, + 374, 0, 80, 0, 0, 0, 0, 275, 24, 0, + 0, 0, 0, 0, 359, 0, 0, 93, 93, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, + 0, 98, 0, 0, 0, 0, 0, 0, 238, 0, + 0, 0, 0, 0, 0, 0, 0, 243, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 226, 0, + 0, 193, 222, 0, 0, 0, 149, 0, 0, 242, + 0, 153, 152, 251, 0, 30, 31, 0, 0, 0, + 371, 0, 0, 0, 173, 0, 0, 0, 0, 0, + 0, 0, 163, 332, 162, 0, 0, 0, 0, 345, + 0, 286, 307, 293, 314, 294, 315, 295, 316, 388, + 384, 335, 383, 0, 57, 0, 0, 0, 0, 65, + 0, 0, 0, 372, 0, 0, 0, 0, 26, 27, + 0, 0, 95, 0, 358, 0, 0, 0, 0, 0, + 99, 0, 0, 116, 117, 0, 0, 101, 124, 352, + 0, 0, 0, 91, 0, 237, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 165, 0, 0, 0, 0, + 137, 0, 203, 0, 205, 0, 207, 0, 347, 0, + 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, + 0, 0, 104, 105, 0, 0, 0, 0, 83, 0, + 0, 0, 0, 0, 0, 334, 0, 38, 0, 0, + 0, 0, 0, 40, 0, 0, 0, 77, 0, 0, + 78, 0, 375, 139, 140, 141, 142, 0, 0, 363, + 0, 94, 102, 103, 107, 0, 0, 118, 0, 0, + 239, 111, 0, 0, 230, 123, 0, 0, 0, 0, + 108, 0, 119, 125, 0, 0, 0, 0, 344, 0, + 343, 0, 0, 194, 0, 0, 195, 0, 0, 196, + 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, + 147, 0, 0, 143, 0, 0, 0, 0, 369, 0, + 175, 174, 0, 0, 0, 379, 0, 0, 0, 0, + 43, 0, 0, 0, 346, 0, 0, 0, 66, 73, + 75, 0, 81, 0, 28, 0, 0, 0, 0, 0, + 0, 0, 112, 97, 110, 122, 127, 0, 0, 87, + 88, 137, 0, 131, 0, 0, 0, 0, 0, 0, + 0, 223, 0, 0, 137, 0, 0, 0, 0, 134, + 133, 0, 0, 0, 0, 84, 85, 0, 0, 0, + 0, 0, 39, 0, 0, 0, 41, 56, 0, 373, + 0, 245, 246, 247, 248, 115, 0, 0, 0, 0, + 0, 342, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 228, 0, 0, 0, 188, 0, 0, 0, 0, + 0, 368, 176, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 79, 0, 0, 0, 0, 129, 0, 209, + 0, 0, 211, 0, 0, 213, 0, 0, 0, 224, + 0, 184, 0, 137, 0, 0, 0, 106, 86, 252, + 253, 254, 255, 0, 47, 0, 53, 0, 0, 92, + 120, 244, 341, 197, 0, 0, 204, 198, 0, 0, + 206, 199, 0, 0, 208, 0, 0, 0, 190, 0, + 146, 0, 0, 0, 0, 0, 0, 0, 0, 215, + 0, 217, 0, 219, 225, 227, 189, 185, 0, 0, + 0, 0, 44, 0, 51, 0, 0, 0, 200, 0, + 0, 201, 0, 0, 202, 0, 0, 150, 0, 144, + 0, 45, 0, 0, 170, 0, 0, 0, 0, 0, + 0, 191, 0, 0, 0, 0, 0, 210, 0, 212, + 0, 214, 0, 145, 46, 48, 0, 49, 0, 0, + 0, 0, 0, 0, 54, 216, 218, 220, 50, 52 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 2, 3, 69, 716, 70, 71, 443, 1054, 1060, - 637, 818, 1209, 1358, 638, 1322, 1384, 639, 1360, 640, - 641, 822, 141, 242, 72, 754, 1091, 985, 512, 370, + -1, 2, 3, 69, 716, 70, 71, 443, 1056, 1062, + 637, 819, 1211, 1360, 638, 1324, 1386, 639, 1362, 640, + 641, 823, 141, 242, 72, 754, 1093, 987, 512, 370, 371, 372, 373, 339, 310, 311, 75, 76, 77, 78, - 79, 80, 340, 783, 1280, 1336, 591, 1110, 1113, 1116, - 1119, 1302, 1306, 1310, 1347, 1350, 1353, 779, 780, 886, - 751, 564, 599, 82, 83, 84, 85, 86, 357, 144, - 383, 193, 946, 947, 366, 359, 555, 222, 707, 850, - 434, 435 + 79, 80, 340, 783, 1282, 1338, 590, 1114, 1117, 1120, + 1304, 1308, 1312, 1349, 1352, 1355, 779, 780, 887, 751, + 564, 598, 82, 83, 84, 85, 86, 357, 144, 383, + 193, 948, 949, 366, 359, 555, 222, 707, 851, 434, + 435 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -1135 +#define YYPACT_NINF -1141 static const yytype_int16 yypact[] = { - 3427, 4, 60, 3535, -1135, -1135, 1715, 11, 17, -96, - 23, 76, 82, 100, -116, -10, 39, 145, 93, 96, - -63, 196, 199, 234, 252, 301, 312, 315, 235, 327, - 292, 489, 131, 259, 328, 253, 249, 249, 261, 53, - 22, 376, 386, 419, 13, 187, 420, 484, 497, 500, - 309, 377, 380, 7, -1, -1135, 384, -1135, 529, 397, - -1135, 541, 545, -3, 2, 410, 423, 435, 444, -1135, - -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, - -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, 24, 409, - 407, -1135, -1135, -1135, 61, 65, 188, 228, 305, 333, - 349, 427, 459, 463, 482, 525, 540, 544, 574, 604, - 605, 612, 613, 637, 654, 445, 450, 471, 477, -1135, - 614, 481, 485, 490, -1135, -1135, -1135, -1135, -1135, -1135, - -1135, 3311, 3311, 3311, -1135, -1135, 3311, 2904, 16, 638, - 222, 3311, 640, 1099, -1135, 647, 655, 3311, 673, -1135, - 3311, -1135, -1135, -1135, 3311, 3138, 3311, 3311, 514, 3311, - 3138, 3311, 3311, 549, 3138, 3311, 3311, 2147, 556, 552, - 568, 569, 1863, 1863, 1863, 578, -1135, -1135, -1135, -1135, - 579, 584, 591, 2147, 3311, 687, 2147, 249, 249, 249, - 3311, 3311, -71, -1135, -30, 249, 590, 588, 624, 633, - 3091, 149, -50, 669, 693, 1863, 2147, 697, 36, 649, - -1135, 824, -1135, 702, 711, 715, 847, 3311, 3311, 3311, - 714, 3311, 727, 783, 3311, 3311, -1135, 3311, 883, -1135, - 894, -1135, 895, -1135, 28, 28, 28, 28, 759, 3311, - 907, 822, -1135, -1135, -1135, 915, 3311, 3311, 3311, 3311, - 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, - 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, - 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, - 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 28, 28, - 28, 28, 3311, 28, 28, 28, 592, 818, 818, 818, - 5690, 6, 3138, 4931, 185, 780, 958, 828, 825, -1135, - 823, 3305, 1381, -1135, -1135, 3311, 3311, 3311, 3311, 3311, - 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, - -1135, -1135, 1490, -114, 4229, 5711, 573, 826, 3138, -1135, - -1135, 2531, -1135, 283, 5732, 5753, 3311, 5774, 651, 5795, - 5816, 3311, 652, 5837, 5858, 2289, 1566, 2567, 971, -1135, - 3311, 3311, 3311, 3311, -1135, -1135, 972, 974, 974, 3311, - 839, 842, 843, 844, 3311, 3311, 3311, 982, 4175, 846, - 986, 202, -1135, -1135, 4255, 4281, 249, 249, 222, 222, - 227, 3311, 3311, 3311, 3311, 3091, 3091, 3311, 3305, 348, - -1135, 3311, 3311, 3311, 3311, 987, 988, 3311, 991, -1135, - 3311, 3311, 816, -1135, 3138, 3311, 3311, -1135, 5879, 5900, - 5921, 897, 4307, -1135, 848, 2755, 5942, 4954, -1135, -1135, - 1317, -1135, 1748, 660, 856, -1135, 858, 860, 861, 3311, - 4977, -43, 3311, 21, -1135, 5963, 5000, 5984, 5023, 6005, - 5046, 6026, 5069, 6047, 5092, 6068, 5115, 6089, 5138, 6110, - 5161, 6131, 5184, 6152, 5207, 6173, 5230, 4333, 4359, 6194, - 5253, 6215, 5276, 6236, 5299, 6257, 5322, 6278, 5345, 6299, - 5368, 4385, 4411, 4437, 4463, 4489, 4515, -76, 862, 863, - 865, 1535, 864, 866, 867, 3311, -1135, 2147, 2147, 682, - 496, 407, 3311, 1011, 1014, 18, 873, -1135, 52, 287, - -31, 85, -1135, -1135, 2854, 635, 690, 656, 656, 713, - 713, 713, 713, -81, -81, 818, 818, 818, 818, -1135, - 8, 3138, 3311, 1013, 2943, 3311, 818, -1135, 3311, 3138, - 3138, 922, 1015, 1017, 6320, 1018, 927, 1021, 1022, 6341, - 932, 1025, 1027, 3138, -1135, 686, 2431, 3311, 6362, 3061, - 6383, 6404, 3311, 2147, 1031, 1030, 6425, 3274, 3274, 3274, - 3274, 6446, 6467, 6488, 2147, 3138, 890, -1135, 249, 3311, - 3311, -1135, -1135, 887, 888, 3311, 5391, 4541, 4567, 4593, - 3002, 155, 249, 1899, 6509, 3426, 6530, 6551, 3311, 1034, - 3311, 6572, -1135, 5414, 5437, -1135, 692, 5460, 5483, 1036, - 1037, 1038, 899, 3311, 2041, 3311, 3311, -1135, 41, -1135, - -1135, 3311, 1043, 1041, 1042, 1045, 1046, 5506, 704, -1135, - 3559, -1135, 911, 912, 906, -1135, 1051, -1135, -1135, -1135, - -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, - -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, - -1135, -1135, -1135, -1135, 3311, 3311, -1135, -1135, -1135, -1135, - -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, 3311, 3311, - 3311, 3311, 3311, 3311, -1135, 3138, 28, -1135, -1135, -1135, - 3311, -1135, 28, 5529, 1052, 1053, 916, -1135, 19, 3311, - 1055, 1057, 1560, -1135, 1058, 919, 7, 1060, -1135, 3138, - 3138, 3138, 3138, 3311, -1135, 937, 28, 323, 4619, 249, - -1135, 3138, 3587, 2898, 818, -1135, 2531, -1135, 1016, 2147, - 2147, 1062, 2147, 757, 2147, 2147, 1078, 1032, 2147, 2147, - 708, -1135, 3138, 1639, 1080, 1081, 1083, 1085, 2873, -1135, - -1135, 1089, -1135, 1090, 954, 6803, -1135, 955, 956, 959, - 1095, 1097, 1100, 1102, 723, 1105, 357, 4645, 4671, -1135, - -1135, 3615, 960, 249, 249, 249, 1106, 961, 963, -37, - -1135, 366, -1135, 155, 1107, 1110, 1112, 1114, 6803, -1135, - 1931, 967, 1116, 1117, 1061, 1118, 1119, 2147, 2147, 2147, - 1122, 4697, -1135, 2936, 947, 1124, 1126, 5552, -1135, 983, - 985, 990, 994, 1130, 1128, -1135, 1131, -1135, 995, 3311, - 3311, 2147, 1000, -1135, 6593, 5575, 6614, 5598, 6635, 5621, - 6656, 5644, 372, 997, 6677, 1001, -19, -1135, -1135, 78, - 207, 1006, 1147, 2073, -1135, -1135, -1135, 7, 3311, -1135, - 732, -1135, 736, 737, 741, 747, 6803, -1135, 1151, 47, - 3311, 3, 748, -1135, 3311, 1008, 1101, 1101, 2147, 1153, - 1019, 1026, 1155, 1157, 2147, 1028, 1159, 1161, -1135, 761, - -1135, 1163, 2147, 2147, 2147, 1167, 1174, -1135, 2147, 1176, - 1178, 1179, 1180, 2147, 2147, 2147, -1135, 1181, 117, 3311, - 3311, 3311, 1040, -1135, -75, 56, 83, -1135, 2147, 3311, - -1135, -1135, 3091, -33, 2005, -1135, 1044, 2573, -1135, 3138, - -1135, -1135, 1047, -1135, -1135, 1186, 1189, 1103, -1135, 3311, - 3311, 3311, -1135, 1190, 1192, 1054, 2147, 2147, 2147, 2147, - -1135, -43, -1135, 3311, 4723, 4749, 767, -1135, 3311, -1135, - -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, - -1135, 2147, 407, 3311, 1194, 1199, 18, -1135, 1201, 5667, - 7, -1135, 1202, 1203, 1204, 1205, -1135, -1135, 28, 4775, - -1135, 1067, 6803, 3311, 249, 1211, 1213, 1214, -1135, 3311, - 3311, -1135, -1135, 1215, 3311, -1135, -1135, -1135, 1232, 1233, - 1234, 1139, 3311, -1135, 1236, 2147, 2147, 2147, 2147, 1237, - 913, 1238, 3311, -1135, 3274, 3643, 6698, 1789, 222, 3305, - 249, 1239, 249, 1240, 249, 1241, 289, 1108, 6719, 3671, - 406, -1135, 1242, 1417, 1243, 249, 1417, 1245, 771, 3311, - -1135, -1135, 2147, 3131, 329, 6740, -1135, 2715, 1248, 1111, - 1115, 1120, 1121, -1135, 416, 6803, 3311, 3311, 2147, 1104, - 777, 6803, 1249, 1253, 2215, -1135, 1254, 1260, -1135, 1127, - -1135, -1135, -1135, -1135, -1135, 1261, 3311, -1135, 3699, 91, - -1135, -1135, -1135, 3727, 3755, -1135, 3783, 1266, -1135, -1135, - 1223, 1269, 6803, -1135, 1271, 1273, 1274, 1275, -1135, 1132, - -1135, -1135, 4202, 2357, 1277, 1134, -1135, 3311, -1135, 1135, - 155, 434, -1135, 1138, 452, -1135, 1142, 462, -1135, 1143, - 1283, 2147, 1287, 1145, 3311, -1135, 2762, 464, -1135, 505, - 511, -1135, 1290, 3811, 1208, 3311, -1135, 3311, -1135, -1135, - 3138, 2389, 1291, -1135, 2147, 2147, 2147, 2147, -1135, 3311, - 4801, 4827, -1135, 2147, 3311, 1292, -1135, -1135, -1135, 7, - -1135, 1206, -1135, 4853, 1298, 1300, 1301, 1302, 1303, 1164, - -1135, -1135, -1135, -1135, -1135, 2147, 3138, -1135, -1135, 222, - 3531, -1135, -5, 3091, 155, 3091, 155, 3091, 155, -1135, - 784, 2147, -1135, 3839, 249, 3138, 249, -1135, -1135, 3311, - 3867, 3895, 785, -1135, -1135, 1162, 1165, 1166, 1168, 1170, - 6803, 3311, 3311, 789, 6803, -1135, 1309, -1135, 3311, -1135, - -1135, -1135, -1135, -1135, 3311, 794, 795, 1171, 3311, -1135, - -1135, 3923, 518, 147, 3951, 522, 276, 3979, 531, 296, - 2147, 1312, 1255, 2183, 1173, 548, 798, 561, 2424, -1135, - -1135, 1318, 1320, 1321, 1322, 1327, 3311, 6761, 4879, 25, - -1135, 4905, 4007, 1329, 1330, -1135, 4035, 1331, 3311, 1332, - 1333, 3311, 1334, 1335, 3311, 1336, 1193, -1135, 3311, -1135, - 155, -1135, 3138, 1337, 2762, -1135, -1135, -1135, -1135, -1135, - -1135, 799, -1135, 3311, -1135, 2147, 3311, -1135, -1135, -1135, - -1135, -1135, 1195, 4063, -1135, -1135, 1197, 4091, -1135, -1135, - 1198, 4119, -1135, 1343, 2499, 324, 2325, 802, -1135, 567, - 803, 1344, 1207, 6782, 807, 4147, 155, 1345, 155, 1346, - 155, 1352, -1135, -1135, -1135, -1135, 155, 1353, 3138, 1355, - -1135, 28, -1135, 1212, 1367, 359, -1135, 1225, 401, -1135, - 1244, 403, -1135, 1247, 426, -1135, 810, -1135, 815, -1135, - 1250, 2147, -1135, 1376, 155, 1377, 155, 1378, 155, -1135, - 1380, 28, 1382, 28, 819, -1135, 429, -1135, 431, -1135, - 448, -1135, -1135, -1135, 820, -1135, 1383, 1384, 1385, 1386, - 28, 1387, -1135, -1135, -1135, -1135, -1135, -1135 + 3354, 74, 9, 3462, -1141, -1141, 1728, 17, 57, -9, + 15, 197, 218, 276, -36, 192, 200, -62, 204, 208, + -53, 216, 224, 292, 319, 324, 329, 330, 540, 339, + 185, 698, 46, 255, 356, 249, 150, 150, 265, 285, + 24, 368, 374, 380, 16, 47, 381, 430, 435, 436, + 300, 301, 321, 21, 25, -1141, 342, -1141, 486, 352, + -1141, 496, 509, 2, 29, 367, 373, 377, 384, -1141, + -1141, -1141, -1141, -1141, -1141, -1141, -1141, -1141, -1141, -1141, + -1141, -1141, -1141, -1141, -1141, -1141, -1141, -1141, 22, 388, + 336, -1141, -1141, -1141, -95, -26, 27, 93, 215, 282, + 363, 392, 452, 477, 506, 544, 566, 589, 600, 613, + 616, 623, 630, 644, 653, 400, 406, 411, 415, -1141, + 510, 423, 432, 437, -1141, -1141, -1141, -1141, -1141, -1141, + -1141, 3238, 3238, 3238, -1141, -1141, 3238, 2801, 7, 519, + 710, 3238, 596, 1581, -1141, 599, 610, 3238, 618, -1141, + 3238, -1141, -1141, -1141, 3238, 3065, 3238, 3238, 487, 3238, + 3065, 3238, 3238, 488, 3065, 3238, 3238, 2160, 492, 497, + 499, 505, 1876, 1876, 1876, 512, -1141, -1141, -1141, -1141, + 518, 525, 528, 2160, 3238, 676, 2160, 150, 150, 150, + 3238, 3238, -68, -1141, -56, 150, 558, 562, 583, 3018, + 64, 59, 543, 603, 1876, 2160, 617, 35, 538, -1141, + 745, -1141, 615, 619, 629, 632, 777, 3238, 3238, 3238, + 631, 3238, 634, 704, 3238, 3238, -1141, 3238, 784, -1141, + 789, -1141, 802, -1141, 433, 433, 433, 433, 664, 3238, + 849, 707, -1141, -1141, -1141, 872, 3238, 3238, 3238, 3238, + 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238, + 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238, + 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238, + 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238, 433, 433, + 433, 433, 3238, 433, 433, 433, 665, 716, 716, 716, + 5699, 5, 3065, 4940, 184, 746, 894, 796, 752, -1141, + 754, 3232, 1655, -1141, -1141, 3238, 3238, 3238, 3238, 3238, + 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238, + -1141, -1141, 1802, -77, 4238, 5720, 652, 763, 3065, -1141, + -1141, 2722, -1141, 662, 5741, 5762, 3238, 5783, 667, 5804, + 5825, 3238, 685, 5846, 5867, 2302, 1539, 2794, 938, -1141, + 3238, 3238, 3238, 3238, -1141, -1141, 939, 954, 954, 3238, + 821, 826, 834, 837, 3238, 3238, 3238, 977, 4158, 844, + 986, 61, -1141, -1141, 4264, 4290, 150, 150, 710, 710, + 67, 3238, 3238, 3238, 3018, 3018, 3238, 3232, 231, -1141, + 3238, 3238, 3238, 3238, 990, 1012, 3238, 1025, -1141, 3238, + 3238, 903, -1141, 3065, 3065, 3238, 3238, -1141, 5888, 5909, + 5930, 937, 4316, -1141, 886, 2828, 5951, 4963, -1141, -1141, + 1583, -1141, 1765, 692, 893, -1141, 895, 896, 897, 3238, + 4986, -82, 3238, 13, -1141, 5972, 5009, 5993, 5032, 6014, + 5055, 6035, 5078, 6056, 5101, 6077, 5124, 6098, 5147, 6119, + 5170, 6140, 5193, 6161, 5216, 6182, 5239, 4342, 4368, 6203, + 5262, 6224, 5285, 6245, 5308, 6266, 5331, 6287, 5354, 6308, + 5377, 4394, 4420, 4446, 4472, 4498, 4524, -11, 889, 898, + 900, 1944, 899, 901, 902, 3238, -1141, 2160, 2160, 691, + 85, 336, 3238, 1040, 1043, 23, 904, -1141, 77, -32, + -40, 79, -1141, -1141, 2864, 734, 801, 965, 965, 714, + 714, 714, 714, 155, 155, 716, 716, 716, 716, -1141, + 10, 3065, 3238, 1042, 2870, 3238, 716, -1141, 3238, 3065, + 3065, 956, 1049, 1051, 6329, 1052, 961, 1054, 1055, 6350, + 966, 1057, 1061, 3065, -1141, 695, 2444, 3238, 6371, 2988, + 6392, 6413, 3238, 2160, 1065, 1064, 6434, 3201, 3201, 3201, + 3201, 6455, 6476, 6497, 2160, 3065, 924, -1141, 150, 3238, + 3238, -1141, -1141, 922, 923, 3238, 4550, 4576, 4602, 4212, + -14, 150, 1912, 6518, 3353, 6539, 6560, 3238, 1069, 3238, + 6581, -1141, 5400, 5423, -1141, 703, 726, 5446, 5469, 1070, + 1073, 1074, 929, 3238, 2054, 3238, 3238, -1141, -2, -1141, + -1141, 3238, 1078, 1076, 1077, 1080, 1082, 5492, 660, -1141, + 3542, -1141, 942, 947, 941, -1141, 1086, -1141, -1141, -1141, + -1141, -1141, -1141, -1141, -1141, -1141, -1141, -1141, -1141, -1141, + -1141, -1141, -1141, -1141, -1141, -1141, -1141, -1141, -1141, -1141, + -1141, -1141, -1141, -1141, 3238, 3238, -1141, -1141, -1141, -1141, + -1141, -1141, -1141, -1141, -1141, -1141, -1141, -1141, 3238, 3238, + 3238, 3238, 3238, 3238, -1141, 3065, 433, -1141, -1141, -1141, + 3238, -1141, 433, 5515, 1098, 1099, 960, -1141, 19, 3238, + 1102, 1103, 2086, -1141, 1104, 968, 21, 1108, -1141, 3065, + 3065, 3065, 3065, 3238, -1141, 980, 433, 38, 4628, 150, + -1141, 3065, 3570, 2929, 716, -1141, 2722, -1141, 1063, 2160, + 2160, 1109, 2160, 846, 2160, 2160, 1110, 1072, 2160, 2160, + 757, -1141, 3065, 2228, 1111, 1112, 1117, 1120, 696, -1141, + -1141, 1122, -1141, 1123, 985, 6812, -1141, 988, 996, 997, + 1127, 1135, 1136, 1140, 760, 1143, 268, 4654, 4680, -1141, + -1141, 3598, 150, 150, 150, 1144, 1145, 999, 1009, -22, + -1141, 332, -1141, -14, 1146, 1148, 1150, 1151, 6812, -1141, + 2370, 1010, 1153, 1155, 1156, 1113, 1157, 1158, 2160, 2160, + 2160, 1162, 4706, -1141, 3059, 755, 1163, 1164, 5538, -1141, + 1023, 1024, 1026, 1027, 1169, 1175, -1141, 1177, -1141, 1038, + 3238, 3238, 2160, 1035, -1141, 6602, 5561, 6623, 5584, 6644, + 5607, 6665, 5630, 86, 1045, 6686, 1046, 49, -1141, -1141, + 1, 291, 1039, 1180, 2402, -1141, -1141, -1141, 21, 3238, + -1141, 761, -1141, 768, 769, 772, 773, 6812, -1141, 1186, + 12, 3238, 43, 791, -1141, 3238, 1044, 1134, 1134, 2160, + 1190, 1047, 1048, 1194, 1196, 2160, 1053, 1198, 1199, -1141, + 819, -1141, 1204, 2160, 2160, 2160, 1206, 1205, -1141, 2160, + 1211, 1240, 1246, 1249, 2160, 2160, 2160, -1141, 1250, 140, + 3238, 3238, 3238, 1062, -78, 193, 228, 1068, -1141, 2160, + 3238, -1141, -1141, 3018, -19, 2018, -1141, 1115, 2586, -1141, + 3065, -1141, -1141, -1141, 1116, -1141, -1141, 1213, 1252, 1165, + -1141, 3238, 3238, 3238, -1141, 1253, 1254, 1121, 2160, 2160, + 2160, 2160, -1141, -82, -1141, 3238, 4732, 4758, 823, -1141, + 3238, -1141, -1141, -1141, -1141, -1141, -1141, -1141, -1141, -1141, + -1141, -1141, -1141, 2160, 336, 3238, 1256, 1259, 23, -1141, + 1263, 5653, 21, -1141, 1265, 1266, 1267, 1269, -1141, -1141, + 433, 4784, -1141, 1130, 6812, 3238, 150, 1271, 1273, 1275, + -1141, 3238, 3238, -1141, -1141, 1276, 3238, -1141, -1141, -1141, + 1278, 1279, 1281, 1191, 3238, -1141, 1285, 2160, 2160, 2160, + 2160, 1287, 969, 1288, 3238, -1141, 3201, 3626, 6707, 3458, + 710, 150, 1289, 150, 1291, 150, 1293, 3238, 325, 1152, + 6728, 3654, 344, -1141, 1294, 1390, 1296, 150, 1390, 1297, + 827, 3238, -1141, -1141, 2160, 3486, 593, 6749, -1141, 1212, + 1300, 1159, 1160, 1168, 1172, -1141, 145, 6812, 3238, 3238, + 2160, 1178, 832, 6812, 1299, 1301, 2437, -1141, 1311, 1323, + -1141, 1183, -1141, -1141, -1141, -1141, -1141, 1325, 3238, -1141, + 3682, 205, -1141, -1141, -1141, 3710, 3738, -1141, 3766, 1327, + -1141, -1141, 1283, 1329, 6812, -1141, 1330, 1331, 1332, 1333, + -1141, 1192, -1141, -1141, 4185, 2512, 1334, 1193, -1141, 3238, + -1141, 1197, 350, -1141, 1201, 369, -1141, 1202, 408, -1141, + 1203, 5676, 1335, 2160, 1337, 1207, 3238, -1141, 2728, 449, + -1141, 485, 495, -1141, 1341, 3794, 1255, 3238, -1141, 3238, + -1141, -1141, 3065, 2544, 1348, -1141, 2160, 2160, 2160, 2160, + -1141, 3238, 4810, 4836, -1141, 2160, 3238, 1350, -1141, -1141, + -1141, 21, -1141, 1209, -1141, 4862, 1352, 1353, 1355, 1357, + 1358, 1215, -1141, -1141, -1141, -1141, -1141, 2160, 3065, -1141, + -1141, 710, 3514, -1141, 3018, -14, 3018, -14, 3018, -14, + 1360, -1141, 838, 2160, -1141, 3822, 150, 3065, 150, -1141, + -1141, 3238, 3850, 3878, 842, -1141, -1141, 1216, 1218, 1219, + 1220, 1222, 6812, 3238, 3238, 851, 6812, -1141, 1367, -1141, + 3238, -1141, -1141, -1141, -1141, -1141, 3238, 852, 855, 1223, + 3238, -1141, 3906, 504, 30, 3934, 533, 270, 3962, 536, + 340, -1141, 2160, 1369, 1310, 2196, 1227, 561, 856, 567, + 2579, -1141, -1141, 1372, 1376, 1377, 1378, 1379, 3238, 6770, + 4888, 36, -1141, 4914, 3990, 1381, 1382, -1141, 4018, 1383, + 3238, 1384, 1385, 3238, 1386, 1389, 3238, 1391, 1245, -1141, + 3238, -1141, -14, -1141, 3065, 1392, 2728, -1141, -1141, -1141, + -1141, -1141, -1141, 860, -1141, 3238, -1141, 2160, 3238, -1141, + -1141, -1141, -1141, -1141, 1277, 4046, -1141, -1141, 1280, 4074, + -1141, -1141, 1282, 4102, -1141, 1396, 2654, 397, 2338, 863, + -1141, 608, 866, 1397, 1284, 6791, 867, 4130, -14, 1419, + -14, 1420, -14, 1422, -1141, -1141, -1141, -1141, -14, 1423, + 3065, 1425, -1141, 433, -1141, 1290, 1427, 439, -1141, 1292, + 448, -1141, 1295, 470, -1141, 1298, 489, -1141, 871, -1141, + 875, -1141, 1302, 2160, -1141, 1429, -14, 1431, -14, 1432, + -14, -1141, 1433, 433, 1435, 433, 876, -1141, 494, -1141, + 530, -1141, 580, -1141, -1141, -1141, 879, -1141, 1437, 1438, + 1440, 1441, 433, 1443, -1141, -1141, -1141, -1141, -1141, -1141 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -1135, -1135, -1135, -1135, 536, -1135, -1135, -1135, -1135, 142, - -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, -1135, - -1135, -1135, -303, -2, -1135, 161, -1135, 532, 1398, -1135, - -1135, -1135, -1135, 5, -383, -99, -1135, -1135, -1135, -1135, - -1135, -1135, 1399, -1135, -1135, -1135, -1135, -1135, -1135, -1135, - -1135, -1135, -1135, -1135, -1135, -1135, -1135, -640, -570, -1135, - -1135, 1035, -1135, -1135, -1135, -1135, -1135, -1135, -6, -1135, - -21, -1135, -1134, 417, -122, 220, -80, -685, 438, -1135, - -199, 80 + -1141, -1141, -1141, -1141, 591, -1141, -1141, -1141, -1141, 195, + -1141, -1141, -1141, -1141, -1141, -1141, -1141, -1141, -1141, -1141, + -1141, -1141, -301, 4, -1141, -267, -1141, 586, 1452, -1141, + -1141, -1141, -1141, 3, -387, -195, -1141, -1141, -1141, -1141, + -1141, -1141, 1454, -1141, -1141, -1141, -1141, -1141, -1141, -1141, + -1141, -1141, -1141, -1141, -1141, -1141, -678, -739, -1141, -1141, + 1090, -1141, -1141, -1141, -1141, -1141, -1141, -6, -1141, 100, + -1141, -1140, 581, -128, 28, -85, -687, 501, -1141, -204, + 18 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1564,1218 +1564,1213 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -5 static const yytype_int16 yytable[] = { - 143, 502, 230, 223, 142, 583, 584, 232, 74, 980, - 4, 220, 163, 497, 714, 192, 194, 208, 201, 1213, - 304, 849, 705, 840, 146, 631, 202, 154, 238, 149, - 530, 1294, 433, 244, 155, 531, 436, 437, 438, 776, - 408, 1225, 409, 776, 163, 777, 778, 148, 805, 777, - 778, 367, 368, 977, 326, 327, 328, 196, 386, 387, - 5, 329, 386, 387, 115, 116, 117, 118, 684, 147, - 119, 776, 203, 685, 1020, 343, 1021, 777, 778, 388, - 348, 204, 151, 405, 352, 697, 145, 164, 152, 487, - 488, 489, 490, 401, 492, 493, 494, 134, 135, 197, - 402, 398, 198, 386, 387, 199, 153, 632, 633, 634, - 635, 412, 305, 306, 910, 841, 842, 209, 1031, 711, - 389, 134, 135, 1013, 1014, 297, 298, 299, 814, 498, - 300, 303, 430, 156, 432, 312, 386, 387, 715, 122, - 123, 332, 224, 913, 334, 309, 1230, 231, 335, 341, - 344, 345, 233, 347, 341, 349, 350, 221, 341, 353, - 354, 1324, 968, 210, 134, 135, 381, 382, 706, 239, - 245, 240, 636, 150, 390, 1295, 241, 715, 378, 399, - 183, 410, 157, 184, 384, 385, 188, 189, 806, 386, - 387, 211, 501, 212, 385, 154, 190, 699, 127, 128, - 129, 130, 709, 200, 246, 1022, 247, 1023, 248, 911, - 249, 418, 419, 420, 962, 422, 386, 387, 425, 426, - 158, 427, 499, 776, 386, 387, 308, 1374, 166, 777, - 778, 776, 1024, 440, 1025, 712, 161, 777, 778, 162, + 143, 583, 584, 502, 397, 806, 74, 230, 697, 5, + 142, 304, 497, 158, 411, 1215, 714, 631, 979, 850, + 207, 149, 163, 841, 145, 220, 238, 705, 201, 223, + 146, 436, 437, 438, 232, 163, 430, 1227, 432, 407, + 912, 408, 1296, 158, 775, 367, 368, 775, 246, 982, + 247, 210, 775, 211, 776, 386, 387, 776, 134, 135, + 777, 778, 776, 777, 778, 386, 387, 530, 777, 778, + 343, 1021, 531, 1022, 202, 348, 404, 386, 387, 352, + 4, 159, 388, 203, 487, 488, 489, 490, 160, 492, + 493, 494, 697, 212, 389, 183, 775, 164, 184, 632, + 633, 634, 635, 305, 306, 914, 776, 154, 245, 147, + 711, 159, 777, 778, 155, 842, 843, 248, 710, 249, + 208, 127, 128, 129, 130, 297, 298, 299, 498, 911, + 300, 303, 1033, 684, 148, 312, 192, 194, 685, 200, + 715, 332, 715, 309, 334, 807, 1015, 1016, 335, 341, + 344, 345, 231, 347, 341, 349, 350, 1326, 341, 353, + 354, 970, 134, 135, 636, 150, 209, 239, 224, 240, + 250, 221, 251, 706, 241, 912, 386, 387, 378, 233, + 409, 1271, 860, 342, 384, 385, 1297, 540, 342, 134, + 135, 501, 342, 385, 386, 387, 815, 386, 387, 699, + 386, 387, 400, 151, 592, 127, 128, 129, 130, 401, + 578, 418, 419, 420, 399, 422, 585, 499, 425, 426, + 154, 427, 166, 1376, 152, 134, 135, 709, 614, 712, + 959, 176, 698, 440, 177, 540, 252, 178, 253, 179, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 386, 387, 172, 1070, 491, 173, 159, 174, - 167, 35, 36, 37, 38, 160, 341, 538, 1269, 400, - 43, 593, 503, 46, 168, 127, 128, 129, 130, 514, + 485, 486, 153, 188, 189, 1072, 491, 381, 382, 1150, + 326, 327, 328, 190, 1151, 390, 341, 329, 964, 398, + 191, 757, 758, 759, 127, 128, 129, 130, 503, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 614, 134, 135, 127, 128, 129, - 130, 250, 536, 251, 606, 386, 387, 1137, 176, 165, - 544, 177, 166, 911, 178, 549, 179, 134, 135, 536, - 341, 578, 776, 169, 558, 559, 560, 561, 777, 778, - 386, 387, 158, 566, 170, 581, 582, 171, 571, 572, - 573, 252, 776, 253, 382, 342, 585, 186, 777, 778, - 342, 175, 188, 189, 342, 586, 587, 588, 589, 297, - 298, 590, 190, 309, 309, 594, 595, 596, 597, 191, - 776, 601, 185, 187, 603, 604, 777, 778, 341, 607, - 608, 195, 244, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 556, 327, 328, 1272, 205, 816, - 159, 329, 540, 627, 541, 776, 630, 710, 206, 629, - 1120, 777, 778, 115, 116, 117, 118, 1275, 254, 119, - 255, 717, 217, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 859, 207, 213, - 1182, 329, 540, 740, 1216, 1334, 256, 776, 257, 776, - 1138, 386, 387, 777, 778, 777, 778, 833, 214, 693, - 386, 387, 258, 835, 259, 764, 702, 592, 700, 386, - 387, 215, 776, 697, 216, 776, 899, 776, 777, 778, - 1363, 777, 778, 777, 778, 912, 957, 858, 122, 123, - 218, 540, 342, 219, 776, 341, 718, 225, 693, 722, - 777, 778, 723, 724, 726, 226, 961, 963, 180, 386, - 387, 181, 227, 182, 1233, 228, 1236, 341, 1239, 229, - 724, 743, 1365, 234, 1367, 1124, 748, 766, 537, 243, - 1148, 755, 755, 755, 755, 1149, 235, 386, 387, 341, - 260, 781, 261, 767, 768, 537, 342, 1369, 236, 771, - 1387, 701, 1388, 1183, 358, 386, 387, 237, 288, 365, - 365, 365, 788, 289, 790, 386, 387, 386, 387, 1389, - 377, 1185, 262, 380, 263, 832, 264, 801, 265, 803, - 804, 1187, 911, 1194, 290, 807, 127, 128, 129, 130, - 291, 292, 365, 406, 293, 266, 815, 267, 294, 852, - 853, 854, 855, 295, 342, 1109, 134, 135, 386, 387, - 1315, 862, 307, 698, 386, 387, 313, 756, 756, 756, - 756, 386, 387, 330, 1195, 386, 387, 346, 824, 825, - 1196, 331, 879, 911, 386, 387, 911, 1268, 268, 911, - 269, 1271, 826, 827, 828, 829, 830, 831, 333, 341, - 1274, 386, 387, 270, 834, 271, 1345, 272, 1348, 273, - 1351, 379, 351, 843, 386, 387, 1354, 1282, 861, 360, - 386, 387, 361, 341, 341, 341, 341, 856, 433, 244, - 1284, 362, 363, 134, 135, 341, 1338, 274, 534, 275, - 240, 369, 374, 140, 1376, 241, 1378, 375, 1380, 757, - 758, 759, 134, 135, 376, 391, 341, 495, 392, 240, - 115, 116, 117, 118, 241, 911, 119, 276, 278, 277, - 279, 342, 904, 905, 906, 280, 282, 281, 283, 725, - 727, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 342, 393, 911, 725, 329, 911, 1075, - 284, 911, 285, 394, 911, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 411, 342, 1227, 286, 329, 287, - 540, 540, 546, 550, 1019, 621, 911, 622, 911, 870, - 911, 871, 403, 944, 945, 122, 123, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 7, 8, - 413, 540, 329, 696, 815, 540, 404, 741, 964, 1038, - 407, 540, 969, 794, 134, 135, 324, 325, 326, 327, - 328, 814, 414, 417, 979, 329, 415, 540, 982, 878, - 416, 421, 508, 15, 16, 509, 18, 19, 510, 21, - 511, 23, 540, 24, 897, 26, 27, 423, 29, 30, - 31, 970, 424, 971, 34, 540, 540, 972, 973, 428, - 540, 1030, 974, 1015, 1016, 1017, 540, 540, 975, 981, - 429, 431, 1026, 1028, 439, 342, 1029, 50, 51, 52, - 540, 441, 997, 341, 694, 695, 1058, 1099, 1059, 1100, - 540, 444, 1132, 1043, 1044, 1045, 1154, 504, 1155, 342, - 342, 342, 342, 1240, 540, 1241, 1251, 1055, 1058, 1053, - 1259, 342, 1061, 1058, 540, 1263, 1264, 540, 1154, 1283, - 1321, 540, 540, 1337, 1339, 931, 1058, 1064, 1343, 540, - 329, 1370, 342, 1079, 1371, 505, 1372, 605, 1058, 1390, - 1386, 1391, 442, 506, 507, 140, 535, 1078, 557, 562, - 749, 563, 567, 1083, 1084, 568, 569, 570, 1086, 574, - 576, 763, 577, 612, 598, 600, 1092, 602, 615, 1111, - 623, 1114, 624, 1117, 625, 626, 1102, 687, 1103, 688, - 691, 686, 1127, 690, 1129, 1130, 692, 703, 704, 708, - 719, 728, 729, 309, 730, 732, 733, 341, 734, 735, - 341, 737, 738, 1133, 739, 750, 752, 765, 769, 770, - 789, 1141, 1063, 797, 798, 799, 800, 808, 809, 810, - 1150, 1151, 811, 812, 819, 820, 821, 823, 837, 838, - 1202, 844, 839, 845, 848, 847, 851, 857, 865, 868, - 1163, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 874, 875, 881, 882, 329, - 883, 932, 884, 1243, 1104, 887, 1226, 888, 889, 890, - 891, 1180, 893, 892, 894, 314, 909, 895, 896, 898, - 903, 908, 907, 922, 914, 1246, 915, 919, 1193, 916, - 536, 917, 920, 921, 923, 924, 928, 1142, 933, 1200, - 934, 1201, 941, 936, 341, 937, 940, 942, 943, 342, - 938, 958, 1359, 1210, 939, 960, 866, 867, 1214, 869, - 948, 872, 873, 965, 966, 876, 877, 976, 983, 988, - 984, 991, 1232, 992, 1235, 995, 1238, 996, 998, 989, - 341, 1002, 1382, 1245, 1385, 1247, 990, 1231, 994, 1234, - 1003, 1237, 1316, 1005, 309, 1006, 1007, 1008, 1012, 341, - 1018, 1396, 1040, 1248, 1035, 1041, 1046, 1039, 1042, 1047, - 1065, 1048, 1317, 1066, 1320, 1257, 1258, 1068, 1071, 1072, - 1073, 1074, 1261, 1077, 925, 926, 927, 1080, 1262, 1081, - 1082, 1085, 1266, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 1087, 1090, 1088, - 1089, 329, 1093, 1098, 1101, 1112, 1115, 1118, 1125, 1128, - 1061, 1131, 1143, 342, 1153, 1156, 342, 1121, 1356, 1157, - 1144, 1159, 1303, 1319, 1145, 1307, 1160, 1162, 1311, 1146, - 1147, 1168, 1314, 1169, 1161, 1170, 341, 1171, 341, 1172, - 1173, 1174, 1175, 1178, 1179, 987, 1181, 1323, 1184, 1189, - 1325, 993, 1186, 1188, 1191, 1192, 1197, 1204, 1215, 999, - 1000, 1001, 1199, 1217, 1219, 1004, 1220, 1221, 1222, 1223, - 1009, 1010, 1011, 1252, 1224, 1260, 1253, 1254, 1277, 1255, - 1256, 1278, 1265, 1281, 1286, 1027, 1287, 1288, 1289, 7, - 8, 1034, 341, 1290, 1037, 1298, 1299, 1301, 1304, 1305, - 1308, 1309, 1312, 1318, 1313, 1326, 537, 1328, 1330, 1332, - 1340, 1346, 1349, 1049, 1050, 1051, 1052, 1341, 1352, 1355, - 342, 1357, 1361, 508, 15, 16, 509, 18, 19, 510, - 21, 511, 23, 1362, 24, 1364, 26, 27, 1062, 29, - 30, 31, 1375, 1377, 1379, 34, 1381, 513, 1383, 1392, - 1393, 1394, 1395, 1397, 1366, 978, 342, 1368, 1291, 986, - 1373, 73, 81, 565, 1067, 0, 0, 0, 50, 51, - 52, 0, 0, 0, 0, 342, 0, 0, 0, 0, - 87, 336, 1094, 1095, 1096, 1097, 91, 92, 93, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 0, 0, 0, 0, 0, 0, 0, 1134, - 0, 0, 0, 337, 0, 0, 0, 0, 619, 0, - 0, 0, 0, 0, 0, 1152, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 35, 36, 37, 38, - 39, 0, 0, 0, 0, 43, 529, 0, 46, 0, - 0, 0, 342, 0, 342, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 0, 0, 0, 121, 0, 0, - 124, 125, 126, 0, 0, 0, 0, 0, 1190, 0, - 0, 689, 0, 0, 0, 0, 0, 0, 0, 0, - 395, 1126, 0, 0, 0, 133, 0, 0, 342, 0, - 397, 1205, 1206, 1207, 1208, 139, 846, 191, 554, 87, - 336, 0, 0, 0, 0, 91, 92, 93, 0, 0, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 0, 0, 0, 0, 0, 0, 0, 1242, 0, - 0, 0, 337, 0, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, - 0, 0, 329, 0, 0, 35, 36, 37, 38, 39, - 0, 0, 0, 0, 43, 880, 0, 46, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1276, 0, 315, + 525, 526, 527, 528, 134, 135, 386, 387, 605, 606, + 342, 196, 536, 538, 197, 156, 775, 198, 386, 387, + 544, 244, 1023, 157, 1024, 549, 776, 161, 167, 536, + 341, 162, 777, 778, 558, 559, 560, 561, 254, 165, + 255, 386, 387, 566, 386, 387, 537, 166, 571, 572, + 573, 168, 115, 116, 117, 118, 169, 1025, 119, 1026, + 591, 170, 171, 537, 342, 586, 587, 588, 297, 298, + 589, 309, 309, 175, 593, 594, 595, 596, 185, 187, + 600, 386, 387, 602, 603, 186, 775, 341, 341, 607, + 608, 127, 128, 129, 130, 195, 776, 900, 188, 189, + 204, 1274, 777, 778, 817, 256, 205, 257, 190, 206, + 213, 134, 135, 627, 214, 199, 630, 433, 244, 215, + 216, 342, 342, 217, 218, 629, 717, 122, 123, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 0, 0, 0, 121, 329, 0, 124, - 125, 126, 0, 0, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 0, 131, - 338, 0, 329, 0, 133, 0, 0, 0, 0, 136, - 0, 0, 0, 0, 139, 0, 0, 554, 87, 88, - 89, 0, 90, 0, 91, 92, 93, 0, 0, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 0, 115, 116, 117, 118, 0, 0, 119, 0, 0, - 7, 8, 0, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 508, 15, 16, 509, 18, 19, - 510, 21, 511, 23, 0, 24, 0, 26, 27, 0, - 29, 30, 31, 0, 0, 0, 34, 0, 0, 120, - 0, 0, 0, 0, 0, 121, 122, 123, 124, 125, - 126, 0, 0, 0, 0, 127, 128, 129, 130, 50, - 51, 52, 0, 0, 0, 0, 0, 0, 131, 132, - 0, 0, 0, 133, 0, 134, 135, 0, 136, 0, - 137, 0, 138, 139, 0, 140, 87, 336, 364, 0, - 0, 0, 91, 92, 93, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 0, 620, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, - 0, 7, 8, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 35, 36, 37, 38, 39, 918, 1107, 0, - 1108, 43, 0, 0, 46, 508, 15, 16, 509, 18, - 19, 510, 21, 511, 23, 0, 24, 0, 26, 27, - 0, 29, 30, 31, 0, 0, 0, 34, 0, 0, - 0, 0, 0, 121, 0, 0, 124, 125, 126, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 50, 51, 52, 0, 0, 0, 131, 355, 0, 0, - 0, 133, 0, 0, 0, 0, 136, 0, 87, 336, - 1032, 139, 0, 356, 91, 92, 93, 0, 0, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 782, 337, 0, 7, 8, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 35, 36, 37, 38, 39, 967, - 0, 0, 0, 43, 0, 0, 46, 508, 15, 16, - 509, 18, 19, 510, 21, 511, 23, 0, 24, 0, - 26, 27, 0, 29, 30, 31, 0, 0, 0, 34, - 0, 0, 0, 0, 0, 121, 0, 0, 124, 125, - 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 50, 51, 52, 0, 0, 0, 131, 355, - 0, 0, 0, 133, 0, 0, 0, 0, 136, 0, - 87, 336, 0, 139, 0, 1033, 91, 92, 93, 0, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 802, 337, 0, 7, 8, 315, 316, 317, + 556, 327, 328, 775, 219, 386, 387, 329, 740, 115, + 116, 117, 118, 776, 1218, 119, 1122, 386, 387, 777, + 778, 913, 834, 386, 387, 225, 581, 582, 836, 693, + 764, 1277, 226, 1126, 382, 912, 702, 227, 912, 1184, + 228, 912, 386, 387, 700, 775, 258, 1234, 259, 1237, + 234, 1240, 859, 229, 775, 776, 235, 292, 1186, 701, + 236, 777, 778, 307, 776, 341, 718, 237, 693, 722, + 777, 778, 723, 724, 726, 260, 775, 261, 243, 963, + 965, 386, 387, 288, 122, 123, 776, 341, 1336, 289, + 724, 743, 777, 778, 290, 775, 748, 1188, 291, 342, + 775, 755, 755, 755, 755, 776, 293, 725, 727, 341, + 776, 777, 778, 767, 768, 294, 777, 778, 912, 771, + 295, 342, 386, 387, 725, 756, 756, 756, 756, 172, + 1365, 788, 173, 790, 174, 262, 775, 263, 1196, 1367, + 833, 1139, 313, 342, 1317, 330, 776, 802, 912, 804, + 805, 912, 777, 778, 912, 808, 331, 912, 386, 387, + 264, 1369, 265, 333, 853, 854, 855, 856, 386, 387, + 346, 351, 816, 1111, 1197, 360, 863, 386, 387, 912, + 1371, 912, 362, 912, 1198, 1389, 775, 361, 363, 266, + 1347, 267, 1350, 1270, 1353, 369, 776, 880, 825, 826, + 1356, 374, 777, 778, 433, 244, 386, 387, 375, 386, + 387, 376, 827, 828, 829, 830, 831, 832, 766, 341, + 379, 1390, 1273, 410, 835, 1276, 402, 268, 1378, 269, + 1380, 781, 1382, 844, 386, 387, 115, 116, 117, 118, + 386, 387, 119, 341, 341, 341, 341, 857, 391, 270, + 1284, 271, 392, 342, 308, 341, 1286, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 0, 0, 0, 329, 35, 36, 37, 38, - 39, 1158, 0, 0, 0, 43, 0, 0, 46, 508, - 15, 16, 509, 18, 19, 510, 21, 511, 23, 0, - 24, 0, 26, 27, 0, 29, 30, 31, 0, 0, - 0, 34, 0, 0, 0, 0, 0, 121, 0, 0, - 124, 125, 126, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 50, 51, 52, 0, 0, 0, - 131, 355, 0, 0, 0, 133, 0, 0, 0, 0, - 136, 0, 87, 336, 0, 139, 0, 356, 91, 92, + 328, 1391, 272, 393, 273, 329, 341, 342, 342, 342, + 342, 386, 387, 274, 1140, 275, 403, 180, 358, 342, + 181, 412, 182, 365, 365, 365, 276, 1340, 277, 278, + 406, 279, 886, 933, 377, 413, 280, 380, 281, 414, + 342, 122, 123, 282, 415, 283, 1077, 416, 421, 35, + 36, 37, 38, 417, 423, 365, 405, 284, 43, 285, + 428, 46, 134, 135, 1229, 429, 286, 534, 287, 240, + 134, 135, 140, 424, 241, 134, 135, 815, 431, 439, + 495, 540, 240, 541, 946, 947, 540, 241, 546, 862, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 540, 1040, 550, 621, 329, 622, + 540, 816, 696, 971, 540, 966, 741, 324, 325, 326, + 327, 328, 540, 441, 794, 981, 329, 442, 329, 984, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 904, 905, 906, 540, 329, 795, 444, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 504, 1017, 1018, 1019, 329, 871, 934, + 872, 505, 140, 1028, 1030, 507, 540, 1031, 879, 540, + 972, 898, 973, 535, 341, 7, 8, 540, 540, 974, + 975, 540, 540, 976, 977, 1045, 1046, 1047, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 1057, + 540, 506, 983, 329, 1063, 557, 562, 1055, 342, 508, + 15, 16, 509, 18, 19, 510, 21, 511, 23, 1066, + 24, 563, 26, 27, 567, 29, 30, 31, 540, 568, + 999, 34, 1060, 1101, 1061, 1102, 540, 569, 1134, 1080, + 570, 1156, 1065, 1157, 574, 1085, 1086, 1242, 576, 1243, + 1088, 540, 577, 1253, 50, 51, 52, 597, 1094, 1245, + 1060, 1060, 1261, 1265, 540, 540, 1266, 1285, 1104, 1156, + 1105, 1323, 540, 1032, 1339, 540, 1060, 1341, 1345, 599, + 540, 1121, 1372, 309, 1373, 1060, 1374, 1388, 1392, 341, + 1393, 601, 341, 612, 1106, 1135, 615, 623, 686, 624, + 625, 626, 687, 1143, 688, 691, 703, 704, 690, 719, + 708, 692, 1152, 1153, 604, 728, 729, 1204, 730, 732, + 733, 734, 735, 342, 738, 737, 342, 1144, 739, 750, + 752, 765, 1165, 769, 770, 789, 801, 798, 694, 695, + 799, 800, 809, 810, 811, 820, 1081, 812, 1318, 813, + 821, 822, 824, 1228, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 1182, 838, 839, 840, 329, 845, 846, + 858, 848, 1248, 849, 852, 866, 869, 875, 882, 883, + 1195, 1112, 536, 1115, 884, 1118, 876, 885, 888, 890, + 889, 1202, 891, 1203, 894, 1129, 341, 1131, 1132, 1361, + 892, 893, 895, 896, 749, 1212, 897, 899, 907, 909, + 1216, 908, 910, 915, 916, 763, 537, 917, 918, 921, + 920, 922, 923, 925, 926, 924, 930, 935, 936, 1384, + 342, 1387, 341, 938, 939, 942, 940, 941, 1232, 943, + 1235, 945, 1238, 944, 309, 950, 967, 968, 1398, 960, + 962, 341, 978, 986, 985, 1250, 990, 991, 992, 1319, + 993, 1322, 994, 996, 997, 998, 342, 1259, 1260, 1000, + 1004, 1005, 1020, 1027, 1263, 87, 296, 244, 1007, 1042, + 1264, 91, 92, 93, 1268, 342, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 1008, 115, 116, + 117, 118, 1063, 1009, 119, 1358, 1010, 1014, 1043, 1048, + 1044, 1049, 1067, 1068, 1305, 1037, 1041, 1309, 1050, 1070, + 1313, 1073, 1074, 1075, 1316, 1076, 1079, 1082, 341, 1083, + 341, 1084, 1087, 1089, 1233, 1090, 1236, 1091, 1239, 1325, + 1092, 1095, 1327, 1100, 1103, 1113, 1247, 1116, 1249, 1119, + 1127, 1123, 1130, 1133, 1145, 1158, 1219, 1159, 1146, 1147, + 867, 868, 342, 870, 342, 873, 874, 1148, 1161, 877, + 878, 1149, 121, 122, 123, 124, 125, 126, 1155, 1162, + 1163, 1164, 1170, 1171, 341, 1172, 1173, 1174, 1175, 1176, + 1180, 1191, 1177, 1181, 1193, 131, 132, 1199, 1183, 1201, + 133, 1185, 1187, 1189, 1206, 136, 1217, 1194, 1221, 1222, + 139, 1223, 1142, 1224, 1225, 1226, 1241, 1254, 342, 1255, + 1256, 1257, 1258, 1262, 1267, 1279, 1280, 1283, 1288, 927, + 928, 929, 1289, 1290, 1291, 1292, 1321, 1300, 1301, 1303, + 1306, 1307, 1310, 87, 336, 1311, 1315, 1314, 1320, 91, + 92, 93, 1334, 1342, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 1348, 1351, 1328, 1354, 1357, + 1330, 1359, 1332, 1364, 1343, 1377, 337, 1379, 1381, 1383, + 1363, 1385, 1366, 1394, 1395, 1368, 1396, 1397, 1370, 1399, + 989, 980, 1375, 1293, 988, 73, 995, 81, 565, 35, + 36, 37, 38, 39, 1001, 1002, 1003, 0, 43, 1069, + 1006, 46, 0, 0, 0, 1011, 1012, 1013, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1029, 0, 0, 0, 0, 0, 1036, 0, 0, 1039, + 121, 0, 0, 124, 125, 126, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1051, + 1052, 1053, 1054, 394, 1128, 0, 0, 0, 133, 0, + 0, 0, 0, 396, 0, 0, 0, 0, 139, 0, + 191, 554, 87, 336, 1064, 0, 0, 0, 91, 92, 93, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1279, 337, 0, 7, 8, 315, + 0, 0, 0, 0, 0, 337, 0, 314, 1096, 1097, + 1098, 1099, 0, 0, 0, 7, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 36, + 37, 38, 39, 0, 0, 0, 0, 43, 0, 0, + 46, 0, 0, 0, 0, 1136, 0, 0, 0, 508, + 15, 16, 509, 18, 19, 510, 21, 511, 23, 0, + 24, 1154, 26, 27, 0, 29, 30, 31, 0, 121, + 0, 34, 124, 125, 126, 0, 0, 0, 0, 0, + 0, 513, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 131, 338, 50, 51, 52, 133, 0, 0, + 0, 0, 136, 0, 0, 0, 0, 139, 0, 0, + 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1192, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, + 0, 0, 0, 329, 0, 0, 0, 1207, 1208, 1209, + 1210, 87, 88, 89, 619, 90, 0, 91, 92, 93, + 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 0, 115, 116, 117, 118, 0, 0, + 119, 0, 0, 0, 1244, 0, 0, 7, 8, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 0, 0, 0, 0, 329, 35, 36, - 37, 38, 39, 1177, 0, 0, 0, 43, 0, 0, - 46, 508, 15, 16, 509, 18, 19, 510, 21, 511, - 23, 0, 24, 0, 26, 27, 0, 29, 30, 31, - 0, 0, 0, 34, 0, 1203, 0, 0, 0, 121, - 0, 0, 124, 125, 126, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 50, 51, 52, 0, - 0, 0, 131, 338, 0, 0, 0, 133, 0, 0, - 1285, 0, 136, 0, 87, 336, 0, 139, 0, 553, + 326, 327, 328, 0, 0, 0, 0, 329, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 529, 0, + 0, 508, 15, 16, 509, 18, 19, 510, 21, 511, + 23, 0, 24, 1278, 26, 27, 0, 29, 30, 31, + 0, 0, 120, 34, 0, 0, 0, 0, 121, 122, + 123, 124, 125, 126, 0, 0, 0, 0, 127, 128, + 129, 130, 0, 0, 0, 0, 50, 51, 52, 0, + 0, 131, 132, 0, 0, 0, 133, 0, 134, 135, + 0, 136, 0, 137, 0, 138, 139, 0, 140, 87, + 336, 364, 0, 0, 0, 91, 92, 93, 0, 0, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 0, 0, 0, 0, 0, 620, 0, 0, 0, + 0, 0, 337, 0, 7, 8, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 0, 0, 0, 0, 329, 35, 36, 37, 38, 39, + 689, 0, 0, 0, 43, 0, 0, 46, 508, 15, + 16, 509, 18, 19, 510, 21, 511, 23, 0, 24, + 0, 26, 27, 0, 29, 30, 31, 0, 0, 0, + 34, 0, 0, 0, 0, 0, 121, 0, 0, 124, + 125, 126, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 50, 51, 52, 0, 0, 0, 131, + 355, 0, 0, 0, 133, 0, 0, 0, 0, 136, + 0, 87, 336, 1034, 139, 0, 356, 91, 92, 93, + 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 782, 337, 0, 7, 8, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 0, 0, 0, 0, 329, 35, 36, 37, + 38, 39, 847, 0, 0, 0, 43, 0, 0, 46, + 508, 15, 16, 509, 18, 19, 510, 21, 511, 23, + 0, 24, 0, 26, 27, 0, 29, 30, 31, 0, + 0, 0, 34, 0, 0, 0, 0, 0, 121, 0, + 0, 124, 125, 126, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 50, 51, 52, 0, 0, + 0, 131, 355, 0, 0, 0, 133, 0, 0, 0, + 0, 136, 0, 87, 336, 0, 139, 0, 1035, 91, + 92, 93, 0, 0, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 803, 337, 0, 7, 8, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 0, 0, 0, 0, 329, 35, + 36, 37, 38, 39, 881, 0, 0, 0, 43, 0, + 0, 46, 508, 15, 16, 509, 18, 19, 510, 21, + 511, 23, 0, 24, 0, 26, 27, 0, 29, 30, + 31, 0, 0, 0, 34, 0, 0, 0, 0, 0, + 121, 0, 0, 124, 125, 126, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 50, 51, 52, + 0, 0, 0, 131, 355, 0, 0, 0, 133, 0, + 0, 0, 0, 136, 0, 87, 336, 0, 139, 0, + 356, 91, 92, 93, 0, 0, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1281, 337, 0, + 7, 8, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, + 329, 35, 36, 37, 38, 39, 919, 0, 0, 0, + 43, 0, 0, 46, 508, 15, 16, 509, 18, 19, + 510, 21, 511, 23, 0, 24, 0, 26, 27, 0, + 29, 30, 31, 0, 0, 0, 34, 0, 969, 0, + 0, 0, 121, 0, 0, 124, 125, 126, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, + 51, 52, 0, 0, 0, 131, 338, 0, 0, 0, + 133, 0, 0, 1160, 0, 136, 0, 87, 336, 0, + 139, 0, 553, 91, 92, 93, 0, 0, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1337, + 337, 0, 0, 0, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, + 0, 0, 329, 35, 36, 37, 38, 39, 1179, 0, + 0, 0, 43, 0, 0, 46, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 0, 0, 0, 0, 329, 0, 0, 0, 0, 0, + 1205, 0, 0, 0, 121, 0, 0, 124, 125, 126, + 0, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 0, 0, 131, 338, 329, + 0, 0, 133, 0, 0, 1287, 0, 136, 0, 87, + 336, 0, 139, 0, 742, 91, 92, 93, 0, 0, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 337, 0, 0, 0, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 0, 0, 0, 0, 329, 35, 36, 37, 38, 39, + 1335, 0, 0, 0, 43, 0, 0, 46, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 0, 0, 0, 0, 329, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 121, 0, 0, 124, + 125, 126, 0, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 0, 0, 131, + 355, 329, 0, 0, 133, 0, 0, 0, 0, 136, + 538, 87, 336, 0, 139, 0, 1038, 91, 92, 93, + 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 337, 0, 0, 0, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 0, 0, 0, 0, 329, 35, 36, 37, + 38, 39, 538, 0, 87, 296, 43, 0, 0, 46, 91, 92, 93, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1335, 337, 0, 0, - 0, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, - 35, 36, 37, 38, 39, 1333, 0, 0, 0, 43, - 0, 0, 46, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 0, 0, 0, 0, 0, 0, 0, 538, + 109, 110, 111, 112, 113, 114, 616, 0, 121, 0, + 0, 124, 125, 126, 0, 0, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 539, 327, 328, + 0, 394, 1128, 0, 329, 0, 133, 0, 0, 0, + 0, 396, 713, 87, 296, 0, 139, 0, 191, 91, + 92, 93, 0, 0, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 0, 0, 0, 0, 0, 0, 121, 0, 0, 124, 125, 126, 0, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 556, + 327, 328, 0, 0, 131, 132, 329, 865, 0, 133, + 0, 0, 0, 0, 136, 0, 0, 301, 0, 139, + 0, 302, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, + 329, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 121, 0, 0, 124, 125, 126, 0, 0, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 0, 0, 131, 338, 329, 0, 0, 133, - 0, 0, 0, 0, 136, 538, 87, 336, 0, 139, - 0, 742, 91, 92, 93, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, - 0, 0, 0, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 35, 36, 37, 38, 39, 0, 0, 0, - 0, 43, 0, 0, 46, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 539, 327, 328, 0, - 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 121, 0, 0, 124, 125, 126, 0, - 0, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 556, 327, 328, 0, 131, 355, 0, 329, - 0, 133, 0, 0, 0, 0, 136, 0, 87, 296, - 244, 139, 0, 1036, 91, 92, 93, 0, 0, 94, + 327, 328, 0, 131, 132, 0, 329, 0, 133, 0, + 0, 0, 0, 136, 0, 0, 720, 0, 139, 0, + 721, 87, 296, 0, 0, 0, 0, 91, 92, 93, + 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 932, 87, 336, + 0, 329, 0, 0, 91, 92, 93, 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 0, 115, 116, 117, 118, 0, 0, 119, 0, 0, - 0, 0, 0, 616, 0, 87, 336, 0, 0, 0, - 0, 91, 92, 93, 0, 0, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 121, 122, 123, 124, 125, - 126, 35, 36, 37, 38, 39, 0, 0, 0, 0, - 43, 0, 0, 46, 0, 0, 0, 0, 131, 132, - 0, 0, 0, 133, 0, 0, 0, 0, 136, 0, - 0, 0, 713, 139, 0, 1140, 0, 0, 0, 0, - 0, 0, 121, 0, 0, 124, 125, 126, 0, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 0, 0, 395, 1126, 329, 0, 0, - 133, 0, 0, 0, 0, 397, 864, 87, 296, 0, - 139, 0, 191, 91, 92, 93, 0, 0, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 885, - 0, 0, 0, 0, 930, 0, 87, 296, 0, 0, - 0, 0, 91, 92, 93, 0, 0, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 0, 0, 0, 0, 329, 315, 316, 317, + 0, 337, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 0, 0, 121, 0, + 329, 124, 125, 126, 35, 36, 37, 38, 39, 745, + 0, 0, 0, 43, 0, 0, 46, 0, 0, 0, + 0, 394, 395, 0, 0, 0, 133, 0, 0, 0, + 0, 396, 0, 0, 0, 0, 139, 0, 191, 0, + 0, 0, 0, 0, 0, 121, 0, 0, 124, 125, + 126, 0, 0, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 0, 131, 338, + 0, 329, 0, 133, 87, 296, 244, 0, 136, 0, + 91, 92, 93, 139, 0, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 0, 115, 116, 117, + 118, 87, 296, 119, 7, 8, 0, 91, 92, 93, + 0, 0, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 0, 0, 0, 0, 0, 508, 15, + 16, 509, 18, 19, 510, 21, 511, 23, 0, 24, + 0, 26, 27, 0, 29, 30, 31, 0, 0, 0, + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 121, 122, 123, 124, 125, 126, 0, 0, 0, + 0, 0, 0, 50, 51, 52, 0, 0, 0, 0, + 0, 0, 0, 0, 131, 132, 0, 0, 0, 133, + 0, 0, 0, 0, 136, 0, 0, 0, 121, 139, + 0, 124, 125, 126, -4, 1, 0, 0, -4, 0, + 0, 0, 0, 0, 0, 0, -4, -4, 0, 0, + 0, 131, 132, 0, 0, 0, 133, 0, 0, 0, + 0, 136, 0, 0, 0, 0, 139, 0, 0, -4, + 0, 0, 0, 0, -4, -4, 0, -4, -4, 0, + -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + 0, -4, -4, -4, -4, -4, -4, -4, -4, -4, + 0, -4, -4, -4, -4, -4, -4, -4, -4, 0, + -4, -4, -4, -4, -4, -4, 0, 0, -4, -4, + 0, 0, 0, 0, -4, -4, -4, -4, 0, 0, + -4, 0, -4, 0, -4, -4, -4, -4, -4, -4, + -4, -4, -4, -4, 0, 0, 6, 0, 0, 0, + -4, -4, -4, -4, 7, 8, 0, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 0, 0, 121, 329, 0, 124, 125, 126, - 0, 0, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 0, 131, 132, 0, - 329, 0, 133, 0, 0, 0, 0, 136, 0, 0, - 301, 0, 139, 121, 302, 0, 124, 125, 126, 0, + 328, 0, 0, 0, 0, 329, 0, 9, 0, 0, + 0, 0, 10, 11, 785, 12, 13, 0, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 0, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 0, 33, + 34, 35, 36, 37, 38, 39, 40, 0, 41, 42, + 43, 44, 45, 46, 0, 0, 47, 48, 0, 0, + 0, 0, 49, 50, 51, 52, 0, 0, 53, 0, + 54, 0, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 0, 0, 0, 0, 0, 0, 65, 66, + 67, 68, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, + 329, 0, 0, 0, 0, 0, 0, 1109, 0, 1110, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 0, 0, 131, 132, 329, 0, - 0, 133, 0, 0, 0, 0, 136, 0, 0, 720, - 0, 139, 0, 721, 87, 296, 0, 0, 0, 0, - 91, 92, 93, 0, 0, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 315, 316, 317, 318, + 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, + 0, 0, 0, 0, 0, 1137, 0, 1138, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 0, 0, 0, 0, 329, 0, 0, 0, + 0, 0, 0, 1230, 0, 1231, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 0, 87, 336, 0, 329, 0, 496, 91, 92, 93, - 0, 579, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 337, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 121, 0, 329, 124, 125, 126, 35, 36, 37, - 38, 39, 745, 0, 0, 0, 43, 0, 0, 46, - 0, 0, 0, 0, 395, 396, 0, 0, 0, 133, - 0, 0, 0, 0, 397, 0, 0, 0, 0, 139, - 0, 191, 0, 0, 0, 0, 0, 0, 121, 0, - 0, 124, 125, 126, 0, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 131, 338, 329, 0, 0, 133, 87, 296, 244, - 1135, 136, 1136, 91, 92, 93, 139, 0, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 0, - 115, 116, 117, 118, 87, 296, 119, 7, 8, 0, - 91, 92, 93, 0, 0, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 0, 0, 0, 0, - 0, 508, 15, 16, 509, 18, 19, 510, 21, 511, - 23, 0, 24, 0, 26, 27, 0, 29, 30, 31, - 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 121, 122, 123, 124, 125, 126, - 0, 0, 0, 0, 0, 0, 50, 51, 52, 0, - 0, 0, 0, 0, 0, 0, 0, 131, 132, 0, - 0, 0, 133, 0, 0, 0, 0, 136, 0, 0, - 0, 121, 139, 0, 124, 125, 126, -4, 1, 0, - 0, -4, 0, 0, 0, 0, 0, 0, 0, -4, - -4, 0, 0, 0, 131, 132, 0, 0, 0, 133, - 0, 0, 0, 0, 136, 0, 0, 0, 0, 139, - 0, 0, -4, 0, 0, 0, 0, -4, -4, 0, - -4, -4, 0, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, 0, -4, -4, -4, -4, -4, -4, - -4, -4, -4, 0, -4, -4, -4, -4, -4, -4, - -4, -4, 0, -4, -4, -4, -4, -4, -4, 0, - 0, -4, -4, 0, 0, 0, 0, -4, -4, -4, - -4, 0, 0, -4, 0, -4, 0, -4, -4, -4, - -4, -4, -4, -4, -4, -4, -4, 0, 0, 6, - 0, 0, 0, -4, -4, -4, -4, 7, 8, 0, + 0, 0, 0, 0, 329, 0, 0, 0, 0, 0, + 0, 0, 0, 818, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, + 0, 0, 329, 0, 0, 0, 0, 0, 0, 0, + 0, 864, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, + 329, 0, 0, 0, 0, 0, 0, 0, 0, 903, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, - 9, 0, 0, 0, 0, 10, 11, 785, 12, 13, - 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 0, 33, 34, 35, 36, 37, 38, 39, 40, - 0, 41, 42, 43, 44, 45, 46, 0, 0, 47, - 48, 0, 0, 0, 0, 49, 50, 51, 52, 0, - 0, 53, 0, 54, 0, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 0, 0, 0, 0, 0, - 0, 65, 66, 67, 68, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, - 1228, 0, 1229, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 0, 0, 0, 0, 0, 0, 0, 0, - 817, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, - 0, 0, 0, 0, 0, 0, 0, 0, 863, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 0, 0, 0, 0, 329, 0, 0, - 0, 0, 0, 0, 0, 0, 902, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 0, 0, 0, 329, 0, 0, 0, 0, - 0, 0, 0, 0, 1105, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, - 0, 0, 1123, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 0, 0, 0, 0, 0, 0, 0, 0, - 1164, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, - 0, 0, 0, 0, 0, 0, 0, 0, 1165, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 0, 0, 0, 0, 329, 0, 0, - 0, 0, 0, 0, 0, 0, 1166, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 0, 0, 0, 329, 0, 0, 0, 0, - 0, 0, 0, 0, 1167, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, - 0, 0, 1198, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 0, 0, 0, 0, 0, 0, 0, 0, - 1244, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, - 0, 0, 0, 0, 0, 0, 0, 0, 1249, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 0, 0, 0, 0, 329, 0, 0, - 0, 0, 0, 0, 0, 0, 1250, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 0, 0, 0, 329, 0, 0, 0, 0, - 0, 0, 0, 0, 1267, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, - 0, 0, 1270, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 0, 0, 0, 0, 0, 0, 0, 0, - 1273, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, - 0, 0, 0, 0, 0, 0, 0, 0, 1297, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 0, 0, 0, 0, 329, 0, 0, - 0, 0, 0, 0, 0, 0, 1300, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 0, 0, 0, 329, 0, 0, 0, 0, - 0, 0, 0, 0, 1327, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, - 0, 0, 1329, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 0, 0, 0, 0, 0, 0, 0, 0, - 1331, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, - 0, 0, 0, 0, 0, 0, 0, 0, 1344, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 0, 0, 0, 0, 329, 0, 0, - 0, 0, 0, 0, 0, 575, 315, 316, 317, 318, + 0, 0, 0, 0, 0, 0, 0, 1107, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 0, 0, 0, 0, 329, 0, 0, 0, + 0, 0, 0, 0, 0, 1125, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, 0, 0, 0, 0, - 0, 0, 1176, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 0, 0, 0, 0, 0, 0, 532, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 0, 0, 0, 0, 329, 0, 0, - 0, 0, 0, 0, 579, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, - 580, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, - 0, 0, 0, 0, 0, 0, 613, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 0, 0, 0, 329, 0, 0, 0, 0, - 0, 0, 664, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 0, 0, 0, 0, 0, 0, 665, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 0, 0, 0, 0, 329, 0, 0, - 0, 0, 0, 0, 678, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, - 679, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, - 0, 0, 0, 0, 0, 0, 680, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 0, 0, 0, 329, 0, 0, 0, 0, - 0, 0, 681, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 0, 0, 0, 0, 0, 0, 682, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 0, 0, 0, 0, 329, 0, 0, - 0, 0, 0, 0, 683, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, - 773, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, - 0, 0, 0, 0, 0, 0, 774, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 0, 0, 0, 329, 0, 0, 0, 0, - 0, 0, 775, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 0, 0, 0, 0, 0, 0, 860, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 0, 0, 0, 0, 329, 0, 0, - 0, 0, 0, 0, 900, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, - 901, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, - 0, 0, 0, 0, 0, 0, 929, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 0, 0, 0, 329, 0, 0, 0, 0, - 0, 0, 1056, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 0, 0, 0, 0, 0, 0, 1057, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 0, 0, 0, 0, 329, 0, 0, - 0, 0, 0, 0, 1076, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, - 1211, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, - 0, 0, 0, 0, 0, 0, 1212, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 0, 0, 0, 329, 0, 0, 0, 0, - 0, 0, 1218, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 0, 0, 0, 0, 0, 0, 1293, 315, + 0, 0, 0, 1166, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, + 0, 0, 329, 0, 0, 0, 0, 0, 0, 0, + 0, 1167, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, + 329, 0, 0, 0, 0, 0, 0, 0, 0, 1168, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, + 0, 0, 0, 0, 0, 0, 0, 1169, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 0, 0, 0, 0, 329, 0, 0, 0, + 0, 0, 0, 0, 0, 1200, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 0, 0, 0, 0, 329, 0, 0, 0, 0, 0, + 0, 0, 0, 1246, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, + 0, 0, 329, 0, 0, 0, 0, 0, 0, 0, + 0, 1251, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, + 329, 0, 0, 0, 0, 0, 0, 0, 0, 1252, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, + 0, 0, 0, 0, 0, 0, 0, 1269, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 0, 0, 0, 0, 329, 0, 0, 0, + 0, 0, 0, 0, 0, 1272, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 0, 0, 0, 0, 329, 0, 0, 0, 0, 0, + 0, 0, 0, 1275, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, + 0, 0, 329, 0, 0, 0, 0, 0, 0, 0, + 0, 1299, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, + 329, 0, 0, 0, 0, 0, 0, 0, 0, 1302, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, + 0, 0, 0, 0, 0, 0, 0, 1329, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 0, 0, 0, 0, 329, 0, 0, 0, + 0, 0, 0, 0, 0, 1331, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 0, 0, 0, 0, 329, 0, 0, 0, 0, 0, + 0, 0, 0, 1333, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, + 0, 0, 329, 0, 0, 0, 0, 0, 0, 0, + 0, 1346, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, + 329, 0, 0, 0, 0, 0, 0, 0, 575, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, 0, - 0, 0, 0, 0, 1296, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 0, 0, 0, 500, 315, 316, + 0, 0, 0, 0, 0, 1178, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 0, 0, 0, 0, 329, 0, 496, 0, 0, 0, + 0, 579, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, + 329, 0, 0, 0, 0, 0, 0, 532, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, 0, 0, - 618, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, - 0, 0, 0, 628, 315, 316, 317, 318, 319, 320, + 0, 0, 0, 579, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, - 0, 0, 329, 0, 0, 0, 643, 315, 316, 317, + 0, 0, 329, 0, 0, 0, 0, 0, 0, 580, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, + 0, 0, 0, 0, 0, 613, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 0, 0, 0, 0, 329, 0, 0, 0, 0, 0, + 0, 664, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, + 329, 0, 0, 0, 0, 0, 0, 665, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 0, 0, 0, 0, 329, 0, 0, 0, + 0, 0, 0, 678, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, + 0, 0, 329, 0, 0, 0, 0, 0, 0, 679, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, + 0, 0, 0, 0, 0, 680, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 0, 0, 0, 0, 329, 0, 0, 0, 0, 0, + 0, 681, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, + 329, 0, 0, 0, 0, 0, 0, 682, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 0, 0, 0, 0, 329, 0, 0, 0, + 0, 0, 0, 683, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, + 0, 0, 329, 0, 0, 0, 0, 0, 0, 772, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, + 0, 0, 0, 0, 0, 773, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 0, 0, 0, 0, 329, 0, 0, 0, 0, 0, + 0, 774, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, + 329, 0, 0, 0, 0, 0, 0, 861, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 0, 0, 0, 0, 329, 0, 0, 0, + 0, 0, 0, 901, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, + 0, 0, 329, 0, 0, 0, 0, 0, 0, 902, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, + 0, 0, 0, 0, 0, 931, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 0, 0, 0, 0, 329, 0, 0, 0, 0, 0, + 0, 1058, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, + 329, 0, 0, 0, 0, 0, 0, 1059, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 0, 0, 0, 0, 329, 0, 0, 0, + 0, 0, 0, 1078, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, + 0, 0, 329, 0, 0, 0, 0, 0, 0, 1213, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, + 0, 0, 0, 0, 0, 1214, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 0, 0, 0, 0, 329, 0, 0, 0, 0, 0, + 0, 1220, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, + 329, 0, 0, 0, 0, 0, 0, 1295, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 0, 0, 0, 0, 329, 0, 0, 0, + 0, 0, 0, 1298, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, + 0, 0, 329, 0, 0, 0, 500, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 0, 0, 0, 329, 0, 0, 0, 645, + 328, 0, 0, 0, 0, 329, 0, 0, 0, 618, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, - 0, 0, 647, 315, 316, 317, 318, 319, 320, 321, + 0, 0, 628, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 0, 0, 0, 649, 315, 316, 317, 318, + 0, 329, 0, 0, 0, 643, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 0, 0, 0, 0, 329, 0, 0, 0, 651, 315, + 0, 0, 0, 0, 329, 0, 0, 0, 645, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, 0, - 0, 653, 315, 316, 317, 318, 319, 320, 321, 322, + 0, 647, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, - 329, 0, 0, 0, 655, 315, 316, 317, 318, 319, + 329, 0, 0, 0, 649, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 0, 0, 0, 657, 315, 316, + 0, 0, 0, 329, 0, 0, 0, 651, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, 0, 0, - 659, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 653, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, - 0, 0, 0, 661, 315, 316, 317, 318, 319, 320, + 0, 0, 0, 655, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, - 0, 0, 329, 0, 0, 0, 663, 315, 316, 317, + 0, 0, 329, 0, 0, 0, 657, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 0, 0, 0, 329, 0, 0, 0, 667, + 328, 0, 0, 0, 0, 329, 0, 0, 0, 659, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, - 0, 0, 669, 315, 316, 317, 318, 319, 320, 321, + 0, 0, 661, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 0, 0, 0, 671, 315, 316, 317, 318, + 0, 329, 0, 0, 0, 663, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 0, 0, 0, 0, 329, 0, 0, 0, 673, 315, + 0, 0, 0, 0, 329, 0, 0, 0, 667, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, 0, - 0, 675, 315, 316, 317, 318, 319, 320, 321, 322, + 0, 669, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, - 329, 0, 0, 0, 677, 315, 316, 317, 318, 319, + 329, 0, 0, 0, 671, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 0, 0, 0, 772, 315, 316, + 0, 0, 0, 329, 0, 0, 0, 673, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, 0, 0, - 792, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 675, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, - 0, 0, 0, 793, 315, 316, 317, 318, 319, 320, + 0, 0, 0, 677, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, - 0, 0, 329, 0, 0, 0, 795, 315, 316, 317, + 0, 0, 329, 0, 0, 0, 792, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 0, 0, 0, 329, 0, 0, 0, 796, + 328, 0, 0, 0, 0, 329, 0, 0, 0, 793, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, - 0, 0, 813, 315, 316, 317, 318, 319, 320, 321, + 0, 0, 796, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 0, 0, 0, 836, 315, 316, 317, 318, + 0, 329, 0, 0, 0, 797, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 0, 0, 0, 0, 329, 0, 0, 0, 935, 315, + 0, 0, 0, 0, 329, 0, 0, 0, 814, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, 0, - 0, 950, 315, 316, 317, 318, 319, 320, 321, 322, + 0, 837, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, - 329, 0, 0, 0, 952, 315, 316, 317, 318, 319, + 329, 0, 0, 0, 937, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 0, 0, 0, 954, 315, 316, + 0, 0, 0, 329, 0, 0, 0, 952, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, 0, 0, - 956, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 954, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, - 0, 0, 0, 1069, 315, 316, 317, 318, 319, 320, + 0, 0, 0, 956, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, - 0, 0, 329, 0, 496, 315, 316, 317, 318, 319, + 0, 0, 329, 0, 0, 0, 958, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 0, 0, 0, 0, 329, 0, 0, 0, 1071, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, + 0, 0, 1190, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, + 0, 329, 0, 496, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, + 0, 0, 329, 0, 533, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 0, 533, 315, 316, 317, 318, + 0, 0, 0, 329, 0, 542, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 0, 0, 0, 0, 329, 0, 542, 315, 316, 317, + 0, 0, 0, 0, 329, 0, 543, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 0, 0, 0, 329, 0, 543, 315, 316, + 328, 0, 0, 0, 0, 329, 0, 545, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 0, 0, 0, 0, 329, 0, 545, 315, + 327, 328, 0, 0, 0, 0, 329, 0, 547, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 0, 0, 0, 0, 329, 0, 547, + 326, 327, 328, 0, 0, 0, 0, 329, 0, 548, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, - 548, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 551, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, - 0, 551, 315, 316, 317, 318, 319, 320, 321, 322, + 0, 552, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, - 329, 0, 552, 315, 316, 317, 318, 319, 320, 321, + 329, 0, 609, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 0, 609, 315, 316, 317, 318, 319, 320, + 0, 329, 0, 610, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, - 0, 0, 329, 0, 610, 315, 316, 317, 318, 319, + 0, 0, 329, 0, 611, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 0, 611, 315, 316, 317, 318, + 0, 0, 0, 329, 0, 617, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 0, 0, 0, 0, 329, 0, 617, 315, 316, 317, + 0, 0, 0, 0, 329, 0, 642, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 0, 0, 0, 329, 0, 642, 315, 316, + 328, 0, 0, 0, 0, 329, 0, 644, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 0, 0, 0, 0, 329, 0, 644, 315, + 327, 328, 0, 0, 0, 0, 329, 0, 646, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 0, 0, 0, 0, 329, 0, 646, + 326, 327, 328, 0, 0, 0, 0, 329, 0, 648, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, - 648, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 650, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, - 0, 650, 315, 316, 317, 318, 319, 320, 321, 322, + 0, 652, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, - 329, 0, 652, 315, 316, 317, 318, 319, 320, 321, + 329, 0, 654, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 0, 654, 315, 316, 317, 318, 319, 320, + 0, 329, 0, 656, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, - 0, 0, 329, 0, 656, 315, 316, 317, 318, 319, + 0, 0, 329, 0, 658, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 0, 658, 315, 316, 317, 318, + 0, 0, 0, 329, 0, 660, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 0, 0, 0, 0, 329, 0, 660, 315, 316, 317, + 0, 0, 0, 0, 329, 0, 662, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 0, 0, 0, 329, 0, 662, 315, 316, + 328, 0, 0, 0, 0, 329, 0, 666, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 0, 0, 0, 0, 329, 0, 666, 315, + 327, 328, 0, 0, 0, 0, 329, 0, 668, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 0, 0, 0, 0, 329, 0, 668, + 326, 327, 328, 0, 0, 0, 0, 329, 0, 670, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, - 670, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 672, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, - 0, 672, 315, 316, 317, 318, 319, 320, 321, 322, + 0, 674, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, - 329, 0, 674, 315, 316, 317, 318, 319, 320, 321, + 329, 0, 676, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 0, 676, 315, 316, 317, 318, 319, 320, + 0, 329, 0, 731, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, - 0, 0, 329, 0, 731, 315, 316, 317, 318, 319, + 0, 0, 329, 0, 736, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 0, 736, 315, 316, 317, 318, + 0, 0, 0, 329, 0, 744, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 0, 0, 0, 0, 329, 0, 744, 315, 316, 317, + 0, 0, 0, 0, 329, 0, 746, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 0, 0, 0, 329, 0, 746, 315, 316, + 328, 0, 0, 0, 0, 329, 0, 747, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 0, 0, 0, 0, 329, 0, 747, 315, + 327, 328, 0, 0, 0, 0, 329, 0, 753, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 0, 0, 0, 0, 329, 0, 753, + 326, 327, 328, 0, 0, 0, 0, 329, 0, 760, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, - 760, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 761, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, - 0, 761, 315, 316, 317, 318, 319, 320, 321, 322, + 0, 762, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, - 329, 0, 762, 315, 316, 317, 318, 319, 320, 321, + 329, 0, 784, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 0, 784, 315, 316, 317, 318, 319, 320, + 0, 329, 0, 786, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, - 0, 0, 329, 0, 786, 315, 316, 317, 318, 319, + 0, 0, 329, 0, 787, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 0, 787, 315, 316, 317, 318, + 0, 0, 0, 329, 0, 791, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 0, 0, 0, 0, 329, 0, 791, 315, 316, 317, + 0, 0, 0, 0, 329, 0, 951, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 0, 0, 0, 329, 0, 949, 315, 316, + 328, 0, 0, 0, 0, 329, 0, 953, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 0, 0, 0, 0, 329, 0, 951, 315, + 327, 328, 0, 0, 0, 0, 329, 0, 955, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 0, 0, 0, 0, 329, 0, 953, + 326, 327, 328, 0, 0, 0, 0, 329, 0, 957, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, 0, - 955, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 961, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, 329, - 0, 959, 315, 316, 317, 318, 319, 320, 321, 322, + 0, 1108, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, 0, - 329, 0, 1106, 315, 316, 317, 318, 319, 320, 321, + 329, 0, 1124, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, 0, - 0, 329, 0, 1122, 315, 316, 317, 318, 319, 320, + 0, 329, 0, 1141, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, 0, - 0, 0, 329, 0, 1139, 315, 316, 317, 318, 319, + 0, 0, 329, 0, 1294, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 0, 0, 0, 329, 0, 1292, 315, 316, 317, 318, + 0, 0, 0, 329, 0, 1344, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 0, 0, 0, 0, 329, 0, 1342, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 0, 0, 0, 329 + 0, 0, 0, 0, 329 }; static const yytype_int16 yycheck[] = { - 6, 304, 5, 4, 6, 388, 389, 5, 3, 6, - 6, 4, 75, 7, 6, 36, 37, 4, 39, 1153, - 4, 706, 4, 4, 13, 4, 4, 143, 4, 6, - 144, 6, 4, 5, 150, 149, 235, 236, 237, 76, - 4, 1175, 6, 76, 75, 82, 83, 143, 7, 82, - 83, 173, 174, 6, 135, 136, 137, 4, 133, 134, - 0, 142, 133, 134, 36, 37, 38, 39, 144, 52, - 42, 76, 50, 149, 149, 155, 151, 82, 83, 150, - 160, 59, 6, 205, 164, 7, 6, 150, 6, 288, - 289, 290, 291, 143, 293, 294, 295, 140, 141, 46, - 150, 200, 49, 133, 134, 52, 6, 86, 87, 88, - 89, 210, 96, 97, 151, 96, 97, 104, 151, 150, - 150, 140, 141, 6, 7, 131, 132, 133, 147, 123, - 136, 137, 231, 143, 233, 141, 133, 134, 130, 111, - 112, 147, 143, 783, 150, 140, 151, 150, 154, 155, - 156, 157, 150, 159, 160, 161, 162, 150, 164, 165, - 166, 1295, 847, 150, 140, 141, 187, 188, 150, 145, - 90, 147, 151, 150, 195, 150, 152, 130, 184, 200, - 49, 145, 143, 52, 190, 191, 133, 134, 147, 133, - 134, 4, 7, 6, 200, 143, 143, 500, 120, 121, - 122, 123, 150, 150, 143, 149, 145, 151, 143, 779, - 145, 217, 218, 219, 7, 221, 133, 134, 224, 225, - 75, 227, 302, 76, 133, 134, 4, 1361, 143, 82, - 83, 76, 149, 239, 151, 150, 143, 82, 83, 143, + 6, 388, 389, 304, 199, 7, 3, 5, 7, 0, + 6, 4, 7, 75, 209, 1155, 6, 4, 6, 706, + 4, 6, 75, 4, 6, 4, 4, 4, 4, 4, + 13, 235, 236, 237, 5, 75, 231, 1177, 233, 4, + 779, 6, 6, 75, 66, 173, 174, 66, 143, 6, + 145, 4, 66, 6, 76, 133, 134, 76, 140, 141, + 82, 83, 76, 82, 83, 133, 134, 144, 82, 83, + 155, 149, 149, 151, 50, 160, 204, 133, 134, 164, + 6, 143, 150, 59, 288, 289, 290, 291, 150, 293, + 294, 295, 7, 46, 150, 49, 66, 150, 52, 86, + 87, 88, 89, 96, 97, 783, 76, 143, 90, 52, + 150, 143, 82, 83, 150, 96, 97, 143, 150, 145, + 104, 120, 121, 122, 123, 131, 132, 133, 123, 151, + 136, 137, 151, 144, 143, 141, 36, 37, 149, 39, + 130, 147, 130, 140, 150, 147, 6, 7, 154, 155, + 156, 157, 150, 159, 160, 161, 162, 1297, 164, 165, + 166, 848, 140, 141, 151, 150, 150, 145, 143, 147, + 143, 150, 145, 150, 152, 914, 133, 134, 184, 150, + 145, 151, 144, 155, 190, 191, 150, 149, 160, 140, + 141, 7, 164, 199, 133, 134, 147, 133, 134, 500, + 133, 134, 143, 6, 399, 120, 121, 122, 123, 150, + 149, 217, 218, 219, 150, 221, 149, 302, 224, 225, + 143, 227, 143, 1363, 6, 140, 141, 150, 423, 150, + 144, 46, 147, 239, 49, 149, 143, 52, 145, 54, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 133, 134, 49, 970, 292, 52, 143, 54, - 56, 69, 70, 71, 72, 150, 302, 8, 151, 150, - 78, 400, 304, 81, 52, 120, 121, 122, 123, 315, + 286, 287, 6, 133, 134, 972, 292, 187, 188, 144, + 135, 136, 137, 143, 149, 195, 302, 142, 7, 199, + 150, 568, 569, 570, 120, 121, 122, 123, 304, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 423, 140, 141, 120, 121, 122, - 123, 143, 338, 145, 414, 133, 134, 8, 46, 143, - 346, 49, 143, 913, 52, 351, 54, 140, 141, 355, - 356, 149, 76, 52, 360, 361, 362, 363, 82, 83, - 133, 134, 75, 369, 52, 386, 387, 52, 374, 375, - 376, 143, 76, 145, 395, 155, 149, 49, 82, 83, - 160, 54, 133, 134, 164, 391, 392, 393, 394, 395, - 396, 397, 143, 388, 389, 401, 402, 403, 404, 150, - 76, 407, 143, 150, 410, 411, 82, 83, 414, 415, - 416, 150, 5, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 151, 52, 628, - 143, 142, 149, 439, 151, 76, 442, 150, 52, 441, - 151, 82, 83, 36, 37, 38, 39, 151, 143, 42, - 145, 531, 143, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 144, 49, 49, - 1110, 142, 149, 553, 1159, 151, 143, 76, 145, 76, - 151, 133, 134, 82, 83, 82, 83, 686, 4, 495, - 133, 134, 143, 692, 145, 575, 502, 149, 500, 133, - 134, 4, 76, 7, 4, 76, 149, 76, 82, 83, - 151, 82, 83, 82, 83, 149, 144, 716, 111, 112, - 143, 149, 302, 143, 76, 531, 532, 143, 534, 535, - 82, 83, 538, 539, 540, 6, 839, 840, 49, 133, - 134, 52, 145, 54, 1184, 4, 1186, 553, 1188, 4, - 556, 557, 151, 143, 151, 149, 562, 578, 338, 150, - 144, 567, 568, 569, 570, 149, 143, 133, 134, 575, - 143, 592, 145, 579, 580, 355, 356, 151, 143, 585, - 151, 501, 151, 149, 167, 133, 134, 143, 143, 172, - 173, 174, 598, 143, 600, 133, 134, 133, 134, 151, - 183, 149, 143, 186, 145, 685, 143, 613, 145, 615, - 616, 149, 1182, 149, 143, 621, 120, 121, 122, 123, - 143, 7, 205, 206, 143, 143, 628, 145, 143, 709, - 710, 711, 712, 143, 414, 1018, 140, 141, 133, 134, - 1280, 721, 4, 147, 133, 134, 6, 567, 568, 569, - 570, 133, 134, 6, 149, 133, 134, 143, 664, 665, - 149, 6, 742, 1233, 133, 134, 1236, 149, 143, 1239, - 145, 149, 678, 679, 680, 681, 682, 683, 5, 685, - 149, 133, 134, 143, 690, 145, 1326, 143, 1328, 145, - 1330, 4, 143, 699, 133, 134, 1336, 149, 719, 143, - 133, 134, 150, 709, 710, 711, 712, 713, 4, 5, - 149, 143, 143, 140, 141, 721, 149, 143, 145, 145, - 147, 143, 143, 150, 1364, 152, 1366, 143, 1368, 568, - 569, 570, 140, 141, 143, 145, 742, 145, 150, 147, - 36, 37, 38, 39, 152, 1315, 42, 143, 143, 145, - 145, 531, 773, 774, 775, 143, 143, 145, 145, 539, - 540, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 553, 150, 1345, 556, 142, 1348, 978, - 143, 1351, 145, 150, 1354, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 145, 575, 1179, 143, 142, 145, - 149, 149, 151, 151, 903, 145, 1376, 147, 1378, 52, - 1380, 54, 143, 819, 820, 111, 112, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 12, 13, - 6, 149, 142, 151, 836, 149, 143, 151, 840, 919, - 143, 149, 848, 151, 140, 141, 133, 134, 135, 136, - 137, 147, 150, 6, 860, 142, 145, 149, 864, 151, - 145, 147, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 149, 57, 151, 59, 60, 150, 62, 63, - 64, 149, 99, 151, 68, 149, 149, 151, 151, 6, - 149, 912, 151, 899, 900, 901, 149, 149, 151, 151, - 6, 6, 908, 909, 145, 685, 912, 91, 92, 93, - 149, 4, 151, 919, 497, 498, 149, 4, 151, 6, - 149, 6, 151, 929, 930, 931, 149, 147, 151, 709, - 710, 711, 712, 149, 149, 151, 151, 943, 149, 941, - 151, 721, 948, 149, 149, 151, 151, 149, 149, 151, - 151, 149, 149, 151, 151, 8, 149, 963, 151, 149, - 142, 151, 742, 984, 149, 7, 151, 151, 149, 149, - 151, 151, 150, 145, 151, 150, 150, 983, 7, 7, - 563, 7, 143, 989, 990, 143, 143, 143, 994, 7, - 144, 574, 6, 96, 7, 7, 1002, 6, 150, 1020, - 144, 1022, 144, 1024, 144, 144, 1012, 144, 1014, 144, - 144, 149, 1033, 149, 1035, 1036, 149, 6, 4, 146, - 7, 99, 7, 1018, 7, 7, 99, 1033, 7, 7, - 1036, 99, 7, 1039, 7, 4, 6, 147, 151, 151, - 6, 1047, 962, 7, 7, 7, 147, 4, 7, 7, - 1056, 1057, 7, 7, 143, 143, 150, 6, 6, 6, - 1140, 6, 146, 6, 145, 7, 6, 130, 52, 7, - 1076, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 7, 54, 7, 7, 142, - 7, 144, 7, 1192, 1014, 6, 1176, 7, 144, 144, - 144, 1107, 7, 144, 7, 6, 143, 7, 6, 4, - 150, 150, 6, 52, 7, 1195, 6, 150, 1124, 7, - 1126, 7, 6, 6, 6, 6, 4, 1047, 4, 1135, - 4, 1137, 4, 150, 1140, 150, 6, 6, 143, 919, - 150, 144, 1341, 1149, 150, 144, 729, 730, 1154, 732, - 150, 734, 735, 147, 7, 738, 739, 6, 150, 6, - 59, 6, 1183, 6, 1185, 6, 1187, 6, 5, 150, - 1176, 4, 1371, 1194, 1373, 1196, 150, 1183, 150, 1185, - 6, 1187, 1281, 7, 1179, 7, 7, 7, 7, 1195, - 150, 1390, 6, 1199, 150, 6, 6, 150, 95, 7, - 6, 147, 1282, 4, 1284, 1211, 1212, 6, 6, 6, - 6, 6, 1218, 146, 797, 798, 799, 6, 1224, 6, - 6, 6, 1228, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 5, 99, 6, - 6, 142, 6, 6, 6, 6, 6, 6, 6, 6, - 1256, 6, 4, 1033, 150, 6, 1036, 149, 1338, 6, - 149, 7, 1268, 1284, 149, 1271, 6, 6, 1274, 149, - 149, 5, 1278, 50, 147, 6, 1282, 6, 1284, 6, - 6, 6, 150, 6, 150, 868, 151, 1293, 150, 6, - 1296, 874, 150, 150, 7, 150, 6, 6, 6, 882, - 883, 884, 94, 97, 6, 888, 6, 6, 6, 6, - 893, 894, 895, 151, 150, 6, 151, 151, 6, 151, - 150, 66, 151, 150, 6, 908, 6, 6, 6, 12, - 13, 914, 1338, 6, 917, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 151, 150, 1126, 150, 150, 6, - 6, 6, 6, 936, 937, 938, 939, 150, 6, 6, - 1140, 6, 150, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 6, 57, 150, 59, 60, 961, 62, - 63, 64, 6, 6, 6, 68, 6, 6, 6, 6, - 6, 6, 6, 6, 150, 859, 1176, 150, 1256, 867, - 150, 3, 3, 368, 966, -1, -1, -1, 91, 92, - 93, -1, -1, -1, -1, 1195, -1, -1, -1, -1, - 3, 4, 1005, 1006, 1007, 1008, 9, 10, 11, -1, - -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, -1, -1, -1, -1, -1, -1, -1, 1042, - -1, -1, -1, 46, -1, -1, -1, -1, 151, -1, - -1, -1, -1, -1, -1, 1058, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 69, 70, 71, 72, - 73, -1, -1, -1, -1, 78, 6, -1, 81, -1, - -1, -1, 1282, -1, 1284, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, - -1, -1, -1, 142, -1, -1, -1, 110, -1, -1, - 113, 114, 115, -1, -1, -1, -1, -1, 1121, -1, - -1, 6, -1, -1, -1, -1, -1, -1, -1, -1, - 133, 134, -1, -1, -1, 138, -1, -1, 1338, -1, - 143, 1144, 1145, 1146, 1147, 148, 6, 150, 151, 3, - 4, -1, -1, -1, -1, 9, 10, 11, -1, -1, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, -1, -1, -1, -1, -1, -1, -1, 1191, -1, - -1, -1, 46, -1, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, - -1, -1, 142, -1, -1, 69, 70, 71, 72, 73, - -1, -1, -1, -1, 78, 6, -1, 81, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1240, -1, 124, + 326, 327, 328, 329, 140, 141, 133, 134, 413, 414, + 302, 46, 338, 8, 49, 143, 66, 52, 133, 134, + 346, 5, 149, 143, 151, 351, 76, 143, 56, 355, + 356, 143, 82, 83, 360, 361, 362, 363, 143, 143, + 145, 133, 134, 369, 133, 134, 338, 143, 374, 375, + 376, 52, 36, 37, 38, 39, 52, 149, 42, 151, + 149, 52, 52, 355, 356, 391, 392, 393, 394, 395, + 396, 388, 389, 54, 400, 401, 402, 403, 143, 150, + 406, 133, 134, 409, 410, 49, 66, 413, 414, 415, + 416, 120, 121, 122, 123, 150, 76, 149, 133, 134, + 52, 151, 82, 83, 628, 143, 52, 145, 143, 49, + 49, 140, 141, 439, 4, 150, 442, 4, 5, 4, + 4, 413, 414, 143, 143, 441, 531, 111, 112, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -1, -1, -1, 110, 142, -1, 113, - 114, 115, -1, -1, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, -1, 133, - 134, -1, 142, -1, 138, -1, -1, -1, -1, 143, - -1, -1, -1, -1, 148, -1, -1, 151, 3, 4, - 5, -1, 7, -1, 9, 10, 11, -1, -1, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - -1, 36, 37, 38, 39, -1, -1, 42, -1, -1, - 12, 13, -1, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, - -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, -1, 57, -1, 59, 60, -1, - 62, 63, 64, -1, -1, -1, 68, -1, -1, 104, - -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, - 115, -1, -1, -1, -1, 120, 121, 122, 123, 91, - 92, 93, -1, -1, -1, -1, -1, -1, 133, 134, - -1, -1, -1, 138, -1, 140, 141, -1, 143, -1, - 145, -1, 147, 148, -1, 150, 3, 4, 5, -1, - -1, -1, 9, 10, 11, -1, -1, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, -1, 151, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 46, - -1, 12, 13, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, - -1, 142, 69, 70, 71, 72, 73, 6, 149, -1, - 151, 78, -1, -1, 81, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, -1, 57, -1, 59, 60, - -1, 62, 63, 64, -1, -1, -1, 68, -1, -1, - -1, -1, -1, 110, -1, -1, 113, 114, 115, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 91, 92, 93, -1, -1, -1, 133, 134, -1, -1, - -1, 138, -1, -1, -1, -1, 143, -1, 3, 4, - 5, 148, -1, 150, 9, 10, 11, -1, -1, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 151, 46, -1, 12, 13, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, - -1, -1, -1, 142, 69, 70, 71, 72, 73, 6, - -1, -1, -1, 78, -1, -1, 81, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, -1, 57, -1, - 59, 60, -1, 62, 63, 64, -1, -1, -1, 68, - -1, -1, -1, -1, -1, 110, -1, -1, 113, 114, - 115, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 91, 92, 93, -1, -1, -1, 133, 134, - -1, -1, -1, 138, -1, -1, -1, -1, 143, -1, - 3, 4, -1, 148, -1, 150, 9, 10, 11, -1, - -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 151, 46, -1, 12, 13, 124, 125, 126, + 135, 136, 137, 66, 143, 133, 134, 142, 553, 36, + 37, 38, 39, 76, 1161, 42, 151, 133, 134, 82, + 83, 149, 686, 133, 134, 143, 386, 387, 692, 495, + 575, 151, 6, 149, 394, 1234, 502, 145, 1237, 149, + 4, 1240, 133, 134, 500, 66, 143, 1185, 145, 1187, + 143, 1189, 716, 4, 66, 76, 143, 7, 149, 501, + 143, 82, 83, 4, 76, 531, 532, 143, 534, 535, + 82, 83, 538, 539, 540, 143, 66, 145, 150, 840, + 841, 133, 134, 143, 111, 112, 76, 553, 151, 143, + 556, 557, 82, 83, 143, 66, 562, 149, 143, 531, + 66, 567, 568, 569, 570, 76, 143, 539, 540, 575, + 76, 82, 83, 579, 580, 143, 82, 83, 1317, 585, + 143, 553, 133, 134, 556, 567, 568, 569, 570, 49, + 151, 597, 52, 599, 54, 143, 66, 145, 149, 151, + 685, 8, 6, 575, 1282, 6, 76, 613, 1347, 615, + 616, 1350, 82, 83, 1353, 621, 6, 1356, 133, 134, + 143, 151, 145, 5, 709, 710, 711, 712, 133, 134, + 143, 143, 628, 1020, 149, 143, 721, 133, 134, 1378, + 151, 1380, 143, 1382, 149, 151, 66, 150, 143, 143, + 1328, 145, 1330, 149, 1332, 143, 76, 742, 664, 665, + 1338, 143, 82, 83, 4, 5, 133, 134, 143, 133, + 134, 143, 678, 679, 680, 681, 682, 683, 578, 685, + 4, 151, 149, 145, 690, 149, 143, 143, 1366, 145, + 1368, 591, 1370, 699, 133, 134, 36, 37, 38, 39, + 133, 134, 42, 709, 710, 711, 712, 713, 150, 143, + 149, 145, 150, 685, 4, 721, 149, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, -1, -1, -1, 142, 69, 70, 71, 72, - 73, 6, -1, -1, -1, 78, -1, -1, 81, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, -1, - 57, -1, 59, 60, -1, 62, 63, 64, -1, -1, - -1, 68, -1, -1, -1, -1, -1, 110, -1, -1, - 113, 114, 115, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 91, 92, 93, -1, -1, -1, - 133, 134, -1, -1, -1, 138, -1, -1, -1, -1, - 143, -1, 3, 4, -1, 148, -1, 150, 9, 10, + 137, 151, 143, 150, 145, 142, 742, 709, 710, 711, + 712, 133, 134, 143, 151, 145, 143, 49, 167, 721, + 52, 6, 54, 172, 173, 174, 143, 149, 145, 143, + 143, 145, 66, 8, 183, 150, 143, 186, 145, 150, + 742, 111, 112, 143, 145, 145, 980, 145, 147, 69, + 70, 71, 72, 6, 150, 204, 205, 143, 78, 145, + 6, 81, 140, 141, 1181, 6, 143, 145, 145, 147, + 140, 141, 150, 99, 152, 140, 141, 147, 6, 145, + 145, 149, 147, 151, 820, 821, 149, 152, 151, 719, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 149, 920, 151, 145, 142, 147, + 149, 837, 151, 849, 149, 841, 151, 133, 134, 135, + 136, 137, 149, 4, 151, 861, 142, 150, 142, 865, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 772, 773, 774, 149, 142, 151, 6, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 147, 900, 901, 902, 142, 52, 144, + 54, 7, 150, 909, 910, 151, 149, 913, 151, 149, + 149, 151, 151, 150, 920, 12, 13, 149, 149, 151, + 151, 149, 149, 151, 151, 931, 932, 933, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 945, + 149, 145, 151, 142, 950, 7, 7, 943, 920, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 965, + 57, 7, 59, 60, 143, 62, 63, 64, 149, 143, + 151, 68, 149, 4, 151, 6, 149, 143, 151, 985, + 143, 149, 964, 151, 7, 991, 992, 149, 144, 151, + 996, 149, 6, 151, 91, 92, 93, 7, 1004, 1194, + 149, 149, 151, 151, 149, 149, 151, 151, 1014, 149, + 1016, 151, 149, 913, 151, 149, 149, 151, 151, 7, + 149, 1027, 151, 1020, 149, 149, 151, 151, 149, 1035, + 151, 6, 1038, 96, 1016, 1041, 150, 144, 149, 144, + 144, 144, 144, 1049, 144, 144, 6, 4, 149, 7, + 146, 149, 1058, 1059, 151, 99, 7, 1142, 7, 7, + 99, 7, 7, 1035, 7, 99, 1038, 1049, 7, 4, + 6, 147, 1078, 151, 151, 6, 147, 7, 497, 498, + 7, 7, 4, 7, 7, 143, 986, 7, 1283, 7, + 143, 150, 6, 1178, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 1109, 6, 6, 146, 142, 6, 6, + 130, 7, 1197, 145, 6, 52, 7, 7, 7, 7, + 1126, 1021, 1128, 1023, 7, 1025, 54, 7, 6, 144, + 7, 1137, 144, 1139, 7, 1035, 1142, 1037, 1038, 1343, + 144, 144, 7, 7, 563, 1151, 6, 4, 4, 150, + 1156, 6, 143, 7, 6, 574, 1128, 7, 7, 6, + 150, 6, 6, 6, 6, 52, 4, 4, 4, 1373, + 1142, 1375, 1178, 150, 150, 6, 150, 150, 1184, 4, + 1186, 143, 1188, 6, 1181, 150, 147, 7, 1392, 144, + 144, 1197, 6, 59, 150, 1201, 6, 150, 150, 1284, + 6, 1286, 6, 150, 6, 6, 1178, 1213, 1214, 5, + 4, 6, 150, 145, 1220, 3, 4, 5, 7, 6, + 1226, 9, 10, 11, 1230, 1197, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 7, 36, 37, + 38, 39, 1258, 7, 42, 1340, 7, 7, 6, 6, + 95, 7, 6, 4, 1270, 150, 150, 1273, 147, 6, + 1276, 6, 6, 6, 1280, 6, 146, 6, 1284, 6, + 1286, 6, 6, 5, 1184, 6, 1186, 6, 1188, 1295, + 99, 6, 1298, 6, 6, 6, 1196, 6, 1198, 6, + 6, 149, 6, 6, 4, 6, 97, 6, 149, 149, + 729, 730, 1284, 732, 1286, 734, 735, 149, 7, 738, + 739, 149, 110, 111, 112, 113, 114, 115, 150, 6, + 147, 6, 5, 50, 1340, 6, 6, 6, 6, 6, + 6, 6, 150, 150, 7, 133, 134, 6, 151, 94, + 138, 150, 150, 150, 6, 143, 6, 150, 6, 6, + 148, 6, 150, 6, 6, 150, 6, 151, 1340, 151, + 151, 151, 150, 6, 151, 6, 66, 150, 6, 798, + 799, 800, 6, 6, 6, 6, 1286, 6, 6, 6, + 6, 6, 6, 3, 4, 6, 151, 6, 6, 9, + 10, 11, 6, 6, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 6, 6, 150, 6, 6, + 150, 6, 150, 6, 150, 6, 46, 6, 6, 6, + 150, 6, 150, 6, 6, 150, 6, 6, 150, 6, + 869, 860, 150, 1258, 868, 3, 875, 3, 368, 69, + 70, 71, 72, 73, 883, 884, 885, -1, 78, 968, + 889, 81, -1, -1, -1, 894, 895, 896, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 909, -1, -1, -1, -1, -1, 915, -1, -1, 918, + 110, -1, -1, 113, 114, 115, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 938, + 939, 940, 941, 133, 134, -1, -1, -1, 138, -1, + -1, -1, -1, 143, -1, -1, -1, -1, 148, -1, + 150, 151, 3, 4, 963, -1, -1, -1, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 151, 46, -1, 12, 13, 124, + -1, -1, -1, -1, -1, 46, -1, 6, 1007, 1008, + 1009, 1010, -1, -1, -1, 12, 13, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 69, 70, + 71, 72, 73, -1, -1, -1, -1, 78, -1, -1, + 81, -1, -1, -1, -1, 1044, -1, -1, -1, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, -1, + 57, 1060, 59, 60, -1, 62, 63, 64, -1, 110, + -1, 68, 113, 114, 115, -1, -1, -1, -1, -1, + -1, 6, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 133, 134, 91, 92, 93, 138, -1, -1, + -1, -1, 143, -1, -1, -1, -1, 148, -1, -1, + 151, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, + -1, -1, -1, 142, -1, -1, -1, 1146, 1147, 1148, + 1149, 3, 4, 5, 151, 7, -1, 9, 10, 11, + -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, -1, 36, 37, 38, 39, -1, -1, + 42, -1, -1, -1, 1193, -1, -1, 12, 13, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -1, -1, -1, -1, 142, 69, 70, - 71, 72, 73, 6, -1, -1, -1, 78, -1, -1, - 81, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, -1, 57, -1, 59, 60, -1, 62, 63, 64, - -1, -1, -1, 68, -1, 6, -1, -1, -1, 110, - -1, -1, 113, 114, 115, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 91, 92, 93, -1, - -1, -1, 133, 134, -1, -1, -1, 138, -1, -1, - 6, -1, 143, -1, 3, 4, -1, 148, -1, 150, - 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 151, 46, -1, -1, - -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, -1, -1, -1, -1, 142, - 69, 70, 71, 72, 73, 6, -1, -1, -1, 78, - -1, -1, 81, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, - -1, 142, -1, -1, -1, -1, -1, -1, -1, 8, - -1, 110, -1, -1, 113, 114, 115, -1, 124, 125, + 135, 136, 137, -1, -1, -1, -1, 142, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 6, -1, + -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, -1, 57, 1242, 59, 60, -1, 62, 63, 64, + -1, -1, 104, 68, -1, -1, -1, -1, 110, 111, + 112, 113, 114, 115, -1, -1, -1, -1, 120, 121, + 122, 123, -1, -1, -1, -1, 91, 92, 93, -1, + -1, 133, 134, -1, -1, -1, 138, -1, 140, 141, + -1, 143, -1, 145, -1, 147, 148, -1, 150, 3, + 4, 5, -1, -1, -1, 9, 10, 11, -1, -1, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, -1, -1, -1, -1, -1, 151, -1, -1, -1, + -1, -1, 46, -1, 12, 13, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + -1, -1, -1, -1, 142, 69, 70, 71, 72, 73, + 6, -1, -1, -1, 78, -1, -1, 81, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, -1, 57, + -1, 59, 60, -1, 62, 63, 64, -1, -1, -1, + 68, -1, -1, -1, -1, -1, 110, -1, -1, 113, + 114, 115, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 91, 92, 93, -1, -1, -1, 133, + 134, -1, -1, -1, 138, -1, -1, -1, -1, 143, + -1, 3, 4, 5, 148, -1, 150, 9, 10, 11, + -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 151, 46, -1, 12, 13, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, -1, -1, 133, 134, 142, -1, -1, 138, - -1, -1, -1, -1, 143, 8, 3, 4, -1, 148, - -1, 150, 9, 10, 11, -1, -1, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 46, - -1, -1, -1, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, - -1, 142, 69, 70, 71, 72, 73, -1, -1, -1, - -1, 78, -1, -1, 81, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, - -1, -1, -1, 142, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 110, -1, -1, 113, 114, 115, -1, - -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, -1, 133, 134, -1, 142, - -1, 138, -1, -1, -1, -1, 143, -1, 3, 4, - 5, 148, -1, 150, 9, 10, 11, -1, -1, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - -1, 36, 37, 38, 39, -1, -1, 42, -1, -1, - -1, -1, -1, 8, -1, 3, 4, -1, -1, -1, - -1, 9, 10, 11, -1, -1, 14, 15, 16, 17, + 136, 137, -1, -1, -1, -1, 142, 69, 70, 71, + 72, 73, 6, -1, -1, -1, 78, -1, -1, 81, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + -1, 57, -1, 59, 60, -1, 62, 63, 64, -1, + -1, -1, 68, -1, -1, -1, -1, -1, 110, -1, + -1, 113, 114, 115, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 91, 92, 93, -1, -1, + -1, 133, 134, -1, -1, -1, 138, -1, -1, -1, + -1, 143, -1, 3, 4, -1, 148, -1, 150, 9, + 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 151, 46, -1, 12, 13, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, -1, -1, -1, -1, 142, 69, + 70, 71, 72, 73, 6, -1, -1, -1, 78, -1, + -1, 81, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, -1, 57, -1, 59, 60, -1, 62, 63, + 64, -1, -1, -1, 68, -1, -1, -1, -1, -1, + 110, -1, -1, 113, 114, 115, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 91, 92, 93, + -1, -1, -1, 133, 134, -1, -1, -1, 138, -1, + -1, -1, -1, 143, -1, 3, 4, -1, 148, -1, + 150, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 46, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, - 115, 69, 70, 71, 72, 73, -1, -1, -1, -1, - 78, -1, -1, 81, -1, -1, -1, -1, 133, 134, - -1, -1, -1, 138, -1, -1, -1, -1, 143, -1, - -1, -1, 8, 148, -1, 150, -1, -1, -1, -1, - -1, -1, 110, -1, -1, 113, 114, 115, -1, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -1, -1, 133, 134, 142, -1, -1, - 138, -1, -1, -1, -1, 143, 8, 3, 4, -1, + -1, -1, -1, -1, -1, -1, -1, 151, 46, -1, + 12, 13, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, + 142, 69, 70, 71, 72, 73, 6, -1, -1, -1, + 78, -1, -1, 81, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, -1, 57, -1, 59, 60, -1, + 62, 63, 64, -1, -1, -1, 68, -1, 6, -1, + -1, -1, 110, -1, -1, 113, 114, 115, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, + 92, 93, -1, -1, -1, 133, 134, -1, -1, -1, + 138, -1, -1, 6, -1, 143, -1, 3, 4, -1, 148, -1, 150, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 66, - -1, -1, -1, -1, 8, -1, 3, 4, -1, -1, - -1, -1, 9, 10, 11, -1, -1, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 124, 125, + 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 151, + 46, -1, -1, -1, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, + -1, -1, 142, 69, 70, 71, 72, 73, 6, -1, + -1, -1, 78, -1, -1, 81, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, + 6, -1, -1, -1, 110, -1, -1, 113, 114, 115, + -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, -1, -1, 133, 134, 142, + -1, -1, 138, -1, -1, 6, -1, 143, -1, 3, + 4, -1, 148, -1, 150, 9, 10, 11, -1, -1, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 46, -1, -1, -1, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + -1, -1, -1, -1, 142, 69, 70, 71, 72, 73, + 6, -1, -1, -1, 78, -1, -1, 81, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, -1, -1, -1, -1, 142, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, -1, -1, 110, 142, -1, 113, 114, 115, - -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, -1, 133, 134, -1, - 142, -1, 138, -1, -1, -1, -1, 143, -1, -1, - 146, -1, 148, 110, 150, -1, 113, 114, 115, -1, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, -1, -1, 133, 134, 142, -1, - -1, 138, -1, -1, -1, -1, 143, -1, -1, 146, - -1, 148, -1, 150, 3, 4, -1, -1, -1, -1, + 136, 137, -1, -1, -1, -1, 142, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 110, -1, -1, 113, + 114, 115, -1, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, -1, -1, 133, + 134, 142, -1, -1, 138, -1, -1, -1, -1, 143, + 8, 3, 4, -1, 148, -1, 150, 9, 10, 11, + -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 46, -1, -1, -1, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, -1, -1, -1, -1, 142, 69, 70, 71, + 72, 73, 8, -1, 3, 4, 78, -1, -1, 81, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 124, 125, 126, 127, + 29, 30, 31, 32, 33, 34, 8, -1, 110, -1, + -1, 113, 114, 115, -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - -1, 3, 4, -1, 142, -1, 144, 9, 10, 11, - -1, 149, 14, 15, 16, 17, 18, 19, 20, 21, + -1, 133, 134, -1, 142, -1, 138, -1, -1, -1, + -1, 143, 8, 3, 4, -1, 148, -1, 150, 9, + 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, + -1, 110, -1, -1, 113, 114, 115, -1, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, -1, -1, 133, 134, 142, 8, -1, 138, + -1, -1, -1, -1, 143, -1, -1, 146, -1, 148, + -1, 150, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, + 142, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 110, -1, -1, 113, 114, 115, -1, -1, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, -1, 133, 134, -1, 142, -1, 138, -1, + -1, -1, -1, 143, -1, -1, 146, -1, 148, -1, + 150, 3, 4, -1, -1, -1, -1, 9, 10, 11, + -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 46, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, - -1, 110, -1, 142, 113, 114, 115, 69, 70, 71, - 72, 73, 151, -1, -1, -1, 78, -1, -1, 81, - -1, -1, -1, -1, 133, 134, -1, -1, -1, 138, - -1, -1, -1, -1, 143, -1, -1, -1, -1, 148, - -1, 150, -1, -1, -1, -1, -1, -1, 110, -1, - -1, 113, 114, 115, -1, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, - -1, 133, 134, 142, -1, -1, 138, 3, 4, 5, - 149, 143, 151, 9, 10, 11, 148, -1, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, - 36, 37, 38, 39, 3, 4, 42, 12, 13, -1, - 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, + 32, 33, 34, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 8, 3, 4, + -1, 142, -1, -1, 9, 10, 11, -1, -1, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 46, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -1, -1, 110, -1, + 142, 113, 114, 115, 69, 70, 71, 72, 73, 151, + -1, -1, -1, 78, -1, -1, 81, -1, -1, -1, + -1, 133, 134, -1, -1, -1, 138, -1, -1, -1, + -1, 143, -1, -1, -1, -1, 148, -1, 150, -1, + -1, -1, -1, -1, -1, 110, -1, -1, 113, 114, + 115, -1, -1, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, -1, 133, 134, + -1, 142, -1, 138, 3, 4, 5, -1, 143, -1, + 9, 10, 11, 148, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, - -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, -1, 57, -1, 59, 60, -1, 62, 63, 64, - -1, -1, -1, 68, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, - -1, -1, -1, -1, -1, -1, 91, 92, 93, -1, - -1, -1, -1, -1, -1, -1, -1, 133, 134, -1, - -1, -1, 138, -1, -1, -1, -1, 143, -1, -1, - -1, 110, 148, -1, 113, 114, 115, 0, 1, -1, - -1, 4, -1, -1, -1, -1, -1, -1, -1, 12, - 13, -1, -1, -1, 133, 134, -1, -1, -1, 138, - -1, -1, -1, -1, 143, -1, -1, -1, -1, 148, - -1, -1, 35, -1, -1, -1, -1, 40, 41, -1, - 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, -1, 57, 58, 59, 60, 61, 62, - 63, 64, 65, -1, 67, 68, 69, 70, 71, 72, - 73, 74, -1, 76, 77, 78, 79, 80, 81, -1, - -1, 84, 85, -1, -1, -1, -1, 90, 91, 92, - 93, -1, -1, 96, -1, 98, -1, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, -1, -1, 4, - -1, -1, -1, 116, 117, 118, 119, 12, 13, -1, + 29, 30, 31, 32, 33, 34, -1, 36, 37, 38, + 39, 3, 4, 42, 12, 13, -1, 9, 10, 11, + -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, -1, -1, -1, -1, -1, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, -1, 57, + -1, 59, 60, -1, 62, 63, 64, -1, -1, -1, + 68, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 110, 111, 112, 113, 114, 115, -1, -1, -1, + -1, -1, -1, 91, 92, 93, -1, -1, -1, -1, + -1, -1, -1, -1, 133, 134, -1, -1, -1, 138, + -1, -1, -1, -1, 143, -1, -1, -1, 110, 148, + -1, 113, 114, 115, 0, 1, -1, -1, 4, -1, + -1, -1, -1, -1, -1, -1, 12, 13, -1, -1, + -1, 133, 134, -1, -1, -1, 138, -1, -1, -1, + -1, 143, -1, -1, -1, -1, 148, -1, -1, 35, + -1, -1, -1, -1, 40, 41, -1, 43, 44, -1, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + -1, 57, 58, 59, 60, 61, 62, 63, 64, 65, + -1, 67, 68, 69, 70, 71, 72, 73, 74, -1, + 76, 77, 78, 79, 80, 81, -1, -1, 84, 85, + -1, -1, -1, -1, 90, 91, 92, 93, -1, -1, + 96, -1, 98, -1, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, -1, -1, 4, -1, -1, -1, + 116, 117, 118, 119, 12, 13, -1, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, -1, -1, -1, -1, 142, -1, 35, -1, -1, + -1, -1, 40, 41, 151, 43, 44, -1, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, -1, 57, + 58, 59, 60, 61, 62, 63, 64, 65, -1, 67, + 68, 69, 70, 71, 72, 73, 74, -1, 76, 77, + 78, 79, 80, 81, -1, -1, 84, 85, -1, -1, + -1, -1, 90, 91, 92, 93, -1, -1, 96, -1, + 98, -1, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, -1, -1, -1, -1, -1, -1, 116, 117, + 118, 119, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, + 142, -1, -1, -1, -1, -1, -1, 149, -1, 151, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, 142, -1, - 35, -1, -1, -1, -1, 40, 41, 151, 43, 44, - -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, -1, 57, 58, 59, 60, 61, 62, 63, 64, - 65, -1, 67, 68, 69, 70, 71, 72, 73, 74, - -1, 76, 77, 78, 79, 80, 81, -1, -1, 84, - 85, -1, -1, -1, -1, 90, 91, 92, 93, -1, - -1, 96, -1, 98, -1, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, -1, -1, -1, -1, -1, - -1, 116, 117, 118, 119, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, - -1, -1, -1, 142, -1, -1, -1, -1, -1, -1, - 149, -1, 151, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, - -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, - 151, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, -1, -1, -1, -1, 142, - -1, -1, -1, -1, -1, -1, -1, -1, 151, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -1, -1, -1, -1, 142, -1, -1, - -1, -1, -1, -1, -1, -1, 151, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, -1, -1, -1, 142, -1, -1, -1, -1, - -1, -1, -1, -1, 151, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, - -1, -1, -1, 142, -1, -1, -1, -1, -1, -1, - -1, -1, 151, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, - -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, - 151, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, -1, -1, -1, -1, 142, - -1, -1, -1, -1, -1, -1, -1, -1, 151, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -1, -1, -1, -1, 142, -1, -1, - -1, -1, -1, -1, -1, -1, 151, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, -1, -1, -1, 142, -1, -1, -1, -1, - -1, -1, -1, -1, 151, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, - -1, -1, -1, 142, -1, -1, -1, -1, -1, -1, - -1, -1, 151, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, - -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, - 151, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, -1, -1, -1, -1, 142, - -1, -1, -1, -1, -1, -1, -1, -1, 151, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -1, -1, -1, -1, 142, -1, -1, - -1, -1, -1, -1, -1, -1, 151, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, -1, -1, -1, 142, -1, -1, -1, -1, - -1, -1, -1, -1, 151, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, - -1, -1, -1, 142, -1, -1, -1, -1, -1, -1, - -1, -1, 151, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, - -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, - 151, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, -1, -1, -1, -1, 142, - -1, -1, -1, -1, -1, -1, -1, -1, 151, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -1, -1, -1, -1, 142, -1, -1, - -1, -1, -1, -1, -1, -1, 151, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, -1, -1, -1, 142, -1, -1, -1, -1, - -1, -1, -1, -1, 151, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, - -1, -1, -1, 142, -1, -1, -1, -1, -1, -1, - -1, -1, 151, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, - -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, - 151, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, -1, -1, -1, -1, 142, - -1, -1, -1, -1, -1, -1, -1, -1, 151, 124, + -1, -1, -1, -1, -1, 149, -1, 151, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, -1, -1, -1, -1, 142, -1, -1, -1, + -1, -1, -1, 149, -1, 151, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, + -1, -1, -1, 151, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, + -1, -1, 142, -1, -1, -1, -1, -1, -1, -1, + -1, 151, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, + 142, -1, -1, -1, -1, -1, -1, -1, -1, 151, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, -1, -1, -1, -1, 142, -1, + -1, -1, -1, -1, -1, -1, -1, 151, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, -1, -1, -1, -1, 142, -1, -1, -1, + -1, -1, -1, -1, -1, 151, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, + -1, -1, -1, 151, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, + -1, -1, 142, -1, -1, -1, -1, -1, -1, -1, + -1, 151, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, + 142, -1, -1, -1, -1, -1, -1, -1, -1, 151, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, -1, -1, -1, -1, 142, -1, + -1, -1, -1, -1, -1, -1, -1, 151, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, -1, -1, -1, -1, 142, -1, -1, -1, + -1, -1, -1, -1, -1, 151, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, + -1, -1, -1, 151, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, + -1, -1, 142, -1, -1, -1, -1, -1, -1, -1, + -1, 151, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, + 142, -1, -1, -1, -1, -1, -1, -1, -1, 151, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, -1, -1, -1, -1, 142, -1, + -1, -1, -1, -1, -1, -1, -1, 151, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, -1, -1, -1, -1, 142, -1, -1, -1, + -1, -1, -1, -1, -1, 151, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, + -1, -1, -1, 151, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, + -1, -1, 142, -1, -1, -1, -1, -1, -1, -1, + -1, 151, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, + 142, -1, -1, -1, -1, -1, -1, -1, -1, 151, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, -1, -1, -1, -1, 142, -1, + -1, -1, -1, -1, -1, -1, -1, 151, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, -1, -1, -1, -1, 142, -1, -1, -1, + -1, -1, -1, -1, -1, 151, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, + -1, -1, -1, 151, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, + -1, -1, 142, -1, -1, -1, -1, -1, -1, -1, + -1, 151, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, + 142, -1, -1, -1, -1, -1, -1, -1, 150, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, -1, -1, 150, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + -1, -1, -1, -1, 142, -1, 144, -1, -1, -1, + -1, 149, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, + 142, -1, -1, -1, -1, -1, -1, 149, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, -1, -1, -1, -1, 142, -1, -1, -1, + -1, -1, -1, 149, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, + -1, -1, 142, -1, -1, -1, -1, -1, -1, 149, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, -1, -1, -1, -1, 142, -1, + -1, -1, -1, -1, -1, 149, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, - -1, -1, 150, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, - -1, 142, -1, -1, -1, -1, -1, -1, 149, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -1, -1, -1, -1, 142, -1, -1, - -1, -1, -1, -1, 149, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, - -1, -1, -1, 142, -1, -1, -1, -1, -1, -1, - 149, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, -1, -1, -1, -1, 142, - -1, -1, -1, -1, -1, -1, 149, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, -1, -1, -1, 142, -1, -1, -1, -1, - -1, -1, 149, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, - -1, 142, -1, -1, -1, -1, -1, -1, 149, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -1, -1, -1, -1, 142, -1, -1, - -1, -1, -1, -1, 149, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, - -1, -1, -1, 142, -1, -1, -1, -1, -1, -1, - 149, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, -1, -1, -1, -1, 142, - -1, -1, -1, -1, -1, -1, 149, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, -1, -1, -1, 142, -1, -1, -1, -1, - -1, -1, 149, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, - -1, 142, -1, -1, -1, -1, -1, -1, 149, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -1, -1, -1, -1, 142, -1, -1, - -1, -1, -1, -1, 149, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, - -1, -1, -1, 142, -1, -1, -1, -1, -1, -1, - 149, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, -1, -1, -1, -1, 142, - -1, -1, -1, -1, -1, -1, 149, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, -1, -1, -1, 142, -1, -1, -1, -1, - -1, -1, 149, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, - -1, 142, -1, -1, -1, -1, -1, -1, 149, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -1, -1, -1, -1, 142, -1, -1, - -1, -1, -1, -1, 149, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, - -1, -1, -1, 142, -1, -1, -1, -1, -1, -1, - 149, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, -1, -1, -1, -1, 142, - -1, -1, -1, -1, -1, -1, 149, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, -1, -1, -1, 142, -1, -1, -1, -1, - -1, -1, 149, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, - -1, 142, -1, -1, -1, -1, -1, -1, 149, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -1, -1, -1, -1, 142, -1, -1, - -1, -1, -1, -1, 149, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, - -1, -1, -1, 142, -1, -1, -1, -1, -1, -1, - 149, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, -1, -1, -1, -1, 142, - -1, -1, -1, -1, -1, -1, 149, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, -1, -1, -1, 142, -1, -1, -1, -1, - -1, -1, 149, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, - -1, 142, -1, -1, -1, -1, -1, -1, 149, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -1, -1, -1, -1, 142, -1, -1, - -1, -1, -1, -1, 149, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, - -1, -1, -1, 142, -1, -1, -1, 146, 124, 125, + -1, 149, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, + 142, -1, -1, -1, -1, -1, -1, 149, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, 142, -1, -1, -1, - 146, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, -1, -1, -1, -1, 142, - -1, -1, -1, 146, 124, 125, 126, 127, 128, 129, + -1, -1, -1, 149, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, + -1, -1, 142, -1, -1, -1, -1, -1, -1, 149, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, -1, -1, -1, -1, 142, -1, + -1, -1, -1, -1, -1, 149, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, + -1, 149, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, + 142, -1, -1, -1, -1, -1, -1, 149, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, -1, -1, -1, -1, 142, -1, -1, -1, + -1, -1, -1, 149, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, + -1, -1, 142, -1, -1, -1, -1, -1, -1, 149, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, -1, -1, -1, -1, 142, -1, + -1, -1, -1, -1, -1, 149, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, + -1, 149, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, + 142, -1, -1, -1, -1, -1, -1, 149, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, -1, -1, -1, -1, 142, -1, -1, -1, + -1, -1, -1, 149, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, + -1, -1, 142, -1, -1, -1, -1, -1, -1, 149, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, -1, -1, -1, -1, 142, -1, + -1, -1, -1, -1, -1, 149, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, + -1, 149, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, + 142, -1, -1, -1, -1, -1, -1, 149, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, -1, -1, -1, -1, 142, -1, -1, -1, + -1, -1, -1, 149, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, + -1, -1, 142, -1, -1, -1, -1, -1, -1, 149, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, -1, -1, -1, -1, 142, -1, + -1, -1, -1, -1, -1, 149, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, + -1, 149, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, + 142, -1, -1, -1, -1, -1, -1, 149, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, -1, -1, -1, -1, 142, -1, -1, -1, + -1, -1, -1, 149, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, 142, -1, -1, -1, 146, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, @@ -2845,6 +2840,15 @@ static const yytype_int16 yycheck[] = 146, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, 142, -1, -1, -1, 146, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, + -1, -1, 142, -1, -1, -1, 146, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, -1, -1, -1, -1, 142, -1, -1, -1, 146, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, -1, -1, -1, -1, 142, -1, + -1, -1, 146, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, + -1, 142, -1, 144, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, 142, -1, 144, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, @@ -2955,9 +2959,7 @@ static const yytype_int16 yycheck[] = 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, 142, -1, 144, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - -1, -1, -1, -1, 142, -1, 144, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, -1, -1, -1, 142 + -1, -1, -1, -1, 142 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -2972,138 +2974,138 @@ static const yytype_uint8 yystos[] = 91, 92, 93, 96, 98, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 116, 117, 118, 119, 156, 158, 159, 177, 181, 186, 189, 190, 191, 192, 193, - 194, 195, 216, 217, 218, 219, 220, 3, 4, 5, + 194, 195, 215, 216, 217, 218, 219, 3, 4, 5, 7, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 42, 104, 110, 111, 112, 113, 114, 115, 120, 121, 122, 123, 133, 134, 138, 140, 141, 143, 145, 147, 148, - 150, 175, 176, 221, 222, 234, 13, 52, 143, 6, + 150, 175, 176, 220, 221, 233, 13, 52, 143, 6, 150, 6, 6, 6, 143, 150, 143, 143, 75, 143, 150, 143, 143, 75, 150, 143, 143, 56, 52, 52, 52, 52, 49, 52, 54, 54, 46, 49, 52, 54, 49, 52, 54, 49, 52, 143, 49, 150, 133, 134, - 143, 150, 223, 224, 223, 150, 4, 46, 49, 52, - 150, 223, 4, 50, 59, 52, 52, 49, 4, 104, - 150, 4, 6, 49, 4, 4, 4, 143, 143, 143, - 4, 150, 230, 4, 143, 143, 6, 145, 4, 4, + 143, 150, 222, 223, 222, 150, 46, 49, 52, 150, + 222, 4, 50, 59, 52, 52, 49, 4, 104, 150, + 4, 6, 46, 49, 4, 4, 4, 143, 143, 143, + 4, 150, 229, 4, 143, 143, 6, 145, 4, 4, 5, 150, 5, 150, 143, 143, 143, 143, 4, 145, - 147, 152, 176, 150, 5, 234, 143, 145, 143, 145, + 147, 152, 176, 150, 5, 233, 143, 145, 143, 145, 143, 145, 143, 145, 143, 145, 143, 145, 143, 145, 143, 145, 143, 145, 143, 145, 143, 145, 143, 145, 143, 145, 143, 145, 143, 145, 143, 145, 143, 145, 143, 145, 143, 145, 143, 145, 143, 145, 143, 143, - 143, 143, 7, 143, 143, 143, 4, 221, 221, 221, - 221, 146, 150, 221, 4, 96, 97, 4, 4, 186, - 187, 188, 221, 6, 6, 124, 125, 126, 127, 128, + 143, 143, 7, 143, 143, 143, 4, 220, 220, 220, + 220, 146, 150, 220, 4, 96, 97, 4, 4, 186, + 187, 188, 220, 6, 6, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 142, - 6, 6, 221, 5, 221, 221, 4, 46, 134, 186, - 195, 221, 228, 229, 221, 221, 143, 221, 229, 221, - 221, 143, 229, 221, 221, 134, 150, 221, 226, 228, - 143, 150, 143, 143, 5, 226, 227, 227, 227, 143, - 182, 183, 184, 185, 143, 143, 143, 226, 221, 4, - 226, 223, 223, 223, 221, 221, 133, 134, 150, 150, - 223, 145, 150, 150, 150, 133, 134, 143, 188, 223, - 150, 143, 150, 143, 143, 227, 226, 143, 4, 6, - 145, 145, 188, 6, 150, 145, 145, 6, 221, 221, - 221, 147, 221, 150, 99, 221, 221, 221, 6, 6, - 188, 6, 188, 4, 233, 234, 233, 233, 233, 145, - 221, 4, 150, 160, 6, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 233, 233, 233, - 233, 221, 233, 233, 233, 145, 144, 7, 123, 229, + 6, 6, 220, 5, 220, 220, 4, 46, 134, 186, + 195, 220, 227, 228, 220, 220, 143, 220, 228, 220, + 220, 143, 228, 220, 220, 134, 150, 220, 225, 227, + 143, 150, 143, 143, 5, 225, 226, 226, 226, 143, + 182, 183, 184, 185, 143, 143, 143, 225, 220, 4, + 225, 222, 222, 222, 220, 220, 133, 134, 150, 150, + 222, 150, 150, 150, 133, 134, 143, 188, 222, 150, + 143, 150, 143, 143, 226, 225, 143, 4, 6, 145, + 145, 188, 6, 150, 150, 145, 145, 6, 220, 220, + 220, 147, 220, 150, 99, 220, 220, 220, 6, 6, + 188, 6, 188, 4, 232, 233, 232, 232, 232, 145, + 220, 4, 150, 160, 6, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 232, 232, 232, + 232, 220, 232, 232, 232, 145, 144, 7, 123, 228, 146, 7, 175, 176, 147, 7, 145, 151, 46, 49, - 52, 54, 181, 6, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 6, - 144, 149, 149, 144, 145, 150, 221, 228, 8, 135, - 149, 151, 144, 144, 221, 144, 151, 144, 144, 221, - 151, 144, 144, 150, 151, 229, 135, 7, 221, 221, - 221, 221, 7, 7, 214, 214, 221, 143, 143, 143, - 143, 221, 221, 221, 7, 150, 144, 6, 149, 149, - 149, 223, 223, 187, 187, 149, 221, 221, 221, 221, - 221, 199, 149, 188, 221, 221, 221, 221, 7, 215, - 7, 221, 6, 221, 221, 151, 229, 221, 221, 144, + 52, 54, 181, 6, 220, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 6, + 144, 149, 149, 144, 145, 150, 220, 227, 8, 135, + 149, 151, 144, 144, 220, 144, 151, 144, 144, 220, + 151, 144, 144, 150, 151, 228, 135, 7, 220, 220, + 220, 220, 7, 7, 213, 213, 220, 143, 143, 143, + 143, 220, 220, 220, 7, 150, 144, 6, 149, 149, + 149, 222, 222, 187, 187, 149, 220, 220, 220, 220, + 199, 149, 188, 220, 220, 220, 220, 7, 214, 7, + 220, 6, 220, 220, 151, 228, 228, 220, 220, 144, 144, 144, 96, 149, 188, 150, 8, 144, 146, 151, - 151, 145, 147, 144, 144, 144, 144, 221, 146, 176, - 221, 4, 86, 87, 88, 89, 151, 163, 167, 170, + 151, 145, 147, 144, 144, 144, 144, 220, 146, 176, + 220, 4, 86, 87, 88, 89, 151, 163, 167, 170, 172, 173, 144, 146, 144, 146, 144, 146, 144, 146, 144, 146, 144, 146, 144, 146, 144, 146, 144, 146, 144, 146, 144, 146, 149, 149, 144, 146, 144, 146, 144, 146, 144, 146, 144, 146, 144, 146, 149, 149, 149, 149, 149, 149, 144, 149, 149, 144, 144, 6, - 149, 144, 149, 221, 226, 226, 151, 7, 147, 175, - 176, 234, 221, 6, 4, 4, 150, 231, 146, 150, - 150, 150, 150, 8, 6, 130, 157, 229, 221, 7, - 146, 150, 221, 221, 221, 228, 221, 228, 99, 7, + 149, 144, 149, 220, 225, 225, 151, 7, 147, 175, + 176, 233, 220, 6, 4, 4, 150, 230, 146, 150, + 150, 150, 150, 8, 6, 130, 157, 228, 220, 7, + 146, 150, 220, 220, 220, 227, 220, 227, 99, 7, 7, 144, 7, 99, 7, 7, 144, 99, 7, 7, - 229, 151, 150, 221, 144, 151, 144, 144, 221, 226, - 4, 213, 6, 144, 178, 221, 234, 178, 178, 178, - 144, 144, 144, 226, 229, 147, 223, 221, 221, 151, - 151, 221, 146, 149, 149, 149, 76, 82, 83, 210, - 211, 223, 151, 196, 144, 151, 144, 144, 221, 6, - 221, 144, 146, 146, 151, 146, 146, 7, 7, 7, - 147, 221, 151, 221, 221, 7, 147, 221, 4, 7, - 7, 7, 7, 146, 147, 176, 233, 151, 164, 143, - 143, 150, 174, 6, 221, 221, 221, 221, 221, 221, - 221, 221, 229, 233, 221, 233, 146, 6, 6, 146, - 4, 96, 97, 221, 6, 6, 6, 7, 145, 230, - 232, 6, 229, 229, 229, 229, 221, 130, 233, 144, - 149, 223, 229, 151, 8, 52, 226, 226, 7, 226, - 52, 54, 226, 226, 7, 54, 226, 226, 151, 229, - 6, 7, 7, 7, 7, 66, 212, 6, 7, 144, - 144, 144, 144, 7, 7, 7, 6, 151, 4, 149, - 149, 149, 151, 150, 223, 223, 223, 6, 150, 143, - 151, 211, 149, 210, 7, 6, 7, 7, 6, 150, - 6, 6, 52, 6, 6, 226, 226, 226, 4, 149, - 8, 8, 144, 4, 4, 146, 150, 150, 150, 150, - 6, 4, 6, 143, 221, 221, 225, 226, 150, 144, - 146, 144, 146, 144, 146, 144, 146, 144, 144, 144, - 144, 175, 7, 175, 176, 147, 7, 6, 230, 221, - 149, 151, 151, 151, 151, 151, 6, 6, 157, 221, - 6, 151, 221, 150, 59, 180, 180, 226, 6, 150, - 150, 6, 6, 226, 150, 6, 6, 151, 5, 226, - 226, 226, 4, 6, 226, 7, 7, 7, 7, 226, - 226, 226, 7, 6, 7, 221, 221, 221, 150, 188, - 149, 151, 149, 151, 149, 151, 221, 226, 221, 221, - 223, 151, 5, 150, 226, 150, 150, 226, 229, 150, - 6, 6, 95, 221, 221, 221, 6, 7, 147, 226, - 226, 226, 226, 176, 161, 221, 149, 149, 149, 151, - 162, 221, 226, 234, 221, 6, 4, 231, 6, 146, - 230, 6, 6, 6, 6, 233, 149, 146, 221, 223, - 6, 6, 6, 221, 221, 6, 221, 5, 6, 6, - 99, 179, 221, 6, 226, 226, 226, 226, 6, 4, - 6, 6, 221, 221, 234, 151, 144, 149, 151, 187, - 200, 223, 6, 201, 223, 6, 202, 223, 6, 203, - 151, 149, 144, 151, 149, 6, 134, 223, 6, 223, - 223, 6, 151, 221, 226, 149, 151, 8, 151, 144, - 150, 221, 234, 4, 149, 149, 149, 149, 144, 149, - 221, 221, 226, 150, 149, 151, 6, 6, 6, 7, - 6, 147, 6, 221, 151, 151, 151, 151, 5, 50, - 6, 6, 6, 6, 6, 150, 150, 6, 6, 150, - 221, 151, 210, 149, 150, 149, 150, 149, 150, 6, - 226, 7, 150, 221, 149, 149, 149, 6, 151, 94, - 221, 221, 229, 6, 6, 226, 226, 226, 226, 165, - 221, 149, 149, 225, 221, 6, 230, 97, 149, 6, - 6, 6, 6, 6, 150, 225, 229, 187, 149, 151, - 151, 221, 223, 210, 221, 223, 210, 221, 223, 210, - 149, 151, 226, 188, 151, 223, 229, 223, 221, 151, - 151, 151, 151, 151, 151, 151, 150, 221, 221, 151, - 6, 221, 221, 151, 151, 151, 221, 151, 149, 151, - 151, 149, 151, 151, 149, 151, 226, 6, 66, 151, - 197, 150, 149, 151, 149, 6, 6, 6, 6, 6, - 6, 162, 144, 149, 6, 150, 149, 151, 6, 6, - 151, 6, 204, 221, 6, 6, 205, 221, 6, 6, - 206, 221, 6, 151, 221, 210, 188, 229, 6, 223, - 229, 151, 168, 221, 225, 221, 150, 151, 150, 151, - 150, 151, 6, 6, 151, 151, 198, 151, 149, 151, - 6, 150, 144, 151, 151, 210, 6, 207, 210, 6, - 208, 210, 6, 209, 210, 6, 229, 6, 166, 233, - 171, 150, 6, 151, 150, 151, 150, 151, 150, 151, - 151, 149, 151, 150, 225, 6, 210, 6, 210, 6, - 210, 6, 233, 6, 169, 233, 151, 151, 151, 151, - 149, 151, 6, 6, 6, 6, 233, 6 + 228, 151, 150, 220, 144, 151, 144, 144, 220, 225, + 4, 212, 6, 144, 178, 220, 233, 178, 178, 178, + 144, 144, 144, 225, 228, 147, 222, 220, 220, 151, + 151, 220, 149, 149, 149, 66, 76, 82, 83, 209, + 210, 222, 151, 196, 144, 151, 144, 144, 220, 6, + 220, 144, 146, 146, 151, 151, 146, 146, 7, 7, + 7, 147, 220, 151, 220, 220, 7, 147, 220, 4, + 7, 7, 7, 7, 146, 147, 176, 232, 151, 164, + 143, 143, 150, 174, 6, 220, 220, 220, 220, 220, + 220, 220, 220, 228, 232, 220, 232, 146, 6, 6, + 146, 4, 96, 97, 220, 6, 6, 6, 7, 145, + 229, 231, 6, 228, 228, 228, 228, 220, 130, 232, + 144, 149, 222, 228, 151, 8, 52, 225, 225, 7, + 225, 52, 54, 225, 225, 7, 54, 225, 225, 151, + 228, 6, 7, 7, 7, 7, 66, 211, 6, 7, + 144, 144, 144, 144, 7, 7, 7, 6, 151, 4, + 149, 149, 149, 151, 222, 222, 222, 4, 6, 150, + 143, 151, 210, 149, 209, 7, 6, 7, 7, 6, + 150, 6, 6, 6, 52, 6, 6, 225, 225, 225, + 4, 149, 8, 8, 144, 4, 4, 146, 150, 150, + 150, 150, 6, 4, 6, 143, 220, 220, 224, 225, + 150, 144, 146, 144, 146, 144, 146, 144, 146, 144, + 144, 144, 144, 175, 7, 175, 176, 147, 7, 6, + 229, 220, 149, 151, 151, 151, 151, 151, 6, 6, + 157, 220, 6, 151, 220, 150, 59, 180, 180, 225, + 6, 150, 150, 6, 6, 225, 150, 6, 6, 151, + 5, 225, 225, 225, 4, 6, 225, 7, 7, 7, + 7, 225, 225, 225, 7, 6, 7, 220, 220, 220, + 150, 149, 151, 149, 151, 149, 151, 145, 220, 225, + 220, 220, 222, 151, 5, 150, 225, 150, 150, 225, + 228, 150, 6, 6, 95, 220, 220, 220, 6, 7, + 147, 225, 225, 225, 225, 176, 161, 220, 149, 149, + 149, 151, 162, 220, 225, 233, 220, 6, 4, 230, + 6, 146, 229, 6, 6, 6, 6, 232, 149, 146, + 220, 222, 6, 6, 6, 220, 220, 6, 220, 5, + 6, 6, 99, 179, 220, 6, 225, 225, 225, 225, + 6, 4, 6, 6, 220, 220, 233, 151, 144, 149, + 151, 187, 222, 6, 200, 222, 6, 201, 222, 6, + 202, 220, 151, 149, 144, 151, 149, 6, 134, 222, + 6, 222, 222, 6, 151, 220, 225, 149, 151, 8, + 151, 144, 150, 220, 233, 4, 149, 149, 149, 149, + 144, 149, 220, 220, 225, 150, 149, 151, 6, 6, + 6, 7, 6, 147, 6, 220, 151, 151, 151, 151, + 5, 50, 6, 6, 6, 6, 6, 150, 150, 6, + 6, 150, 220, 151, 149, 150, 149, 150, 149, 150, + 146, 6, 225, 7, 150, 220, 149, 149, 149, 6, + 151, 94, 220, 220, 228, 6, 6, 225, 225, 225, + 225, 165, 220, 149, 149, 224, 220, 6, 229, 97, + 149, 6, 6, 6, 6, 6, 150, 224, 228, 187, + 149, 151, 220, 222, 209, 220, 222, 209, 220, 222, + 209, 6, 149, 151, 225, 188, 151, 222, 228, 222, + 220, 151, 151, 151, 151, 151, 151, 151, 150, 220, + 220, 151, 6, 220, 220, 151, 151, 151, 220, 151, + 149, 151, 151, 149, 151, 151, 149, 151, 225, 6, + 66, 151, 197, 150, 149, 151, 149, 6, 6, 6, + 6, 6, 6, 162, 144, 149, 6, 150, 149, 151, + 6, 6, 151, 6, 203, 220, 6, 6, 204, 220, + 6, 6, 205, 220, 6, 151, 220, 209, 188, 228, + 6, 222, 228, 151, 168, 220, 224, 220, 150, 151, + 150, 151, 150, 151, 6, 6, 151, 151, 198, 151, + 149, 151, 6, 150, 144, 151, 151, 209, 6, 206, + 209, 6, 207, 209, 6, 208, 209, 6, 228, 6, + 166, 232, 171, 150, 6, 151, 150, 151, 150, 151, + 150, 151, 151, 149, 151, 150, 224, 6, 209, 6, + 209, 6, 209, 6, 232, 6, 169, 232, 151, 151, + 151, 151, 149, 151, 6, 6, 6, 6, 232, 6 }; #define yyerrok (yyerrstatus = 0) @@ -6785,39 +6787,18 @@ yyreduce: ;} break; - case 193: -#line 2623 "Gmsh.y" - { - (yyval.l) = List_Create(2, 1, sizeof(Shape)); - ExtrudeShapes(BOUNDARY_LAYER, (yyvsp[(3) - (6)].l), 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., - &extr, (yyval.l)); - List_Delete((yyvsp[(3) - (6)].l)); - ;} - break; - - case 194: -#line 2630 "Gmsh.y" - { - extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; - if(!strcmp((yyvsp[(2) - (7)].c), "Index")) - extr.mesh.BoundaryLayerIndex = (yyvsp[(4) - (7)].d); - else if(!strcmp((yyvsp[(2) - (7)].c), "View")) - extr.mesh.ViewIndex = (yyvsp[(4) - (7)].d); - ;} - break; - - case 195: -#line 2638 "Gmsh.y" + case 193: +#line 2623 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); - ExtrudeShapes(BOUNDARY_LAYER, (yyvsp[(7) - (10)].l), 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., + ExtrudeShapes(BOUNDARY_LAYER, (yyvsp[(3) - (6)].l), 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., &extr, (yyval.l)); - List_Delete((yyvsp[(7) - (10)].l)); + List_Delete((yyvsp[(3) - (6)].l)); ;} break; - case 196: -#line 2647 "Gmsh.y" + case 194: +#line 2631 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (8)].d), @@ -6826,8 +6807,8 @@ yyreduce: ;} break; - case 197: -#line 2654 "Gmsh.y" + case 195: +#line 2638 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (8)].d), @@ -6836,8 +6817,8 @@ yyreduce: ;} break; - case 198: -#line 2661 "Gmsh.y" + case 196: +#line 2645 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (8)].d), @@ -6846,8 +6827,8 @@ yyreduce: ;} break; - case 199: -#line 2668 "Gmsh.y" + case 197: +#line 2652 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -6856,8 +6837,8 @@ yyreduce: ;} break; - case 200: -#line 2675 "Gmsh.y" + case 198: +#line 2659 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -6866,8 +6847,8 @@ yyreduce: ;} break; - case 201: -#line 2682 "Gmsh.y" + case 199: +#line 2666 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -6876,8 +6857,8 @@ yyreduce: ;} break; - case 202: -#line 2689 "Gmsh.y" + case 200: +#line 2673 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (14)].d), @@ -6886,8 +6867,8 @@ yyreduce: ;} break; - case 203: -#line 2696 "Gmsh.y" + case 201: +#line 2680 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (14)].d), @@ -6896,8 +6877,8 @@ yyreduce: ;} break; - case 204: -#line 2703 "Gmsh.y" + case 202: +#line 2687 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (14)].d), @@ -6906,15 +6887,15 @@ yyreduce: ;} break; - case 205: -#line 2710 "Gmsh.y" + case 203: +#line 2694 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 206: -#line 2714 "Gmsh.y" + case 204: +#line 2698 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -6923,15 +6904,15 @@ yyreduce: ;} break; - case 207: -#line 2721 "Gmsh.y" + case 205: +#line 2705 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 208: -#line 2725 "Gmsh.y" + case 206: +#line 2709 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -6940,15 +6921,15 @@ yyreduce: ;} break; - case 209: -#line 2732 "Gmsh.y" + case 207: +#line 2716 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 210: -#line 2736 "Gmsh.y" + case 208: +#line 2720 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -6957,15 +6938,15 @@ yyreduce: ;} break; - case 211: -#line 2743 "Gmsh.y" + case 209: +#line 2727 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 212: -#line 2747 "Gmsh.y" + case 210: +#line 2731 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (16)].d), @@ -6974,15 +6955,15 @@ yyreduce: ;} break; - case 213: -#line 2754 "Gmsh.y" + case 211: +#line 2738 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 214: -#line 2758 "Gmsh.y" + case 212: +#line 2742 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (16)].d), @@ -6991,15 +6972,15 @@ yyreduce: ;} break; - case 215: -#line 2765 "Gmsh.y" + case 213: +#line 2749 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 216: -#line 2769 "Gmsh.y" + case 214: +#line 2753 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (16)].d), @@ -7008,15 +6989,15 @@ yyreduce: ;} break; - case 217: -#line 2776 "Gmsh.y" + case 215: +#line 2760 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 218: -#line 2780 "Gmsh.y" + case 216: +#line 2764 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (18)].d), @@ -7025,15 +7006,15 @@ yyreduce: ;} break; - case 219: -#line 2787 "Gmsh.y" + case 217: +#line 2771 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 220: -#line 2791 "Gmsh.y" + case 218: +#line 2775 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (18)].d), @@ -7042,15 +7023,15 @@ yyreduce: ;} break; - case 221: -#line 2798 "Gmsh.y" + case 219: +#line 2782 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 222: -#line 2802 "Gmsh.y" + case 220: +#line 2786 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (18)].d), @@ -7059,20 +7040,20 @@ yyreduce: ;} break; - case 223: -#line 2813 "Gmsh.y" + case 221: +#line 2797 "Gmsh.y" { ;} break; - case 224: -#line 2816 "Gmsh.y" + case 222: +#line 2800 "Gmsh.y" { ;} break; - case 225: -#line 2822 "Gmsh.y" + case 223: +#line 2806 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = 1; @@ -7083,8 +7064,8 @@ yyreduce: ;} break; - case 226: -#line 2831 "Gmsh.y" + case 224: +#line 2815 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (7)].l)); @@ -7106,8 +7087,8 @@ yyreduce: ;} break; - case 227: -#line 2851 "Gmsh.y" + case 225: +#line 2835 "Gmsh.y" { yymsg(0, "Explicit region numbers in layers are deprecated"); extr.mesh.ExtrudeMesh = true; @@ -7132,15 +7113,15 @@ yyreduce: ;} break; - case 228: -#line 2874 "Gmsh.y" + case 226: +#line 2858 "Gmsh.y" { extr.mesh.Recombine = true; ;} break; - case 229: -#line 2878 "Gmsh.y" + case 227: +#line 2862 "Gmsh.y" { int num = (int)(yyvsp[(3) - (9)].d); if(FindSurface(num)){ @@ -7161,15 +7142,26 @@ yyreduce: ;} break; - case 230: -#line 2901 "Gmsh.y" + case 228: +#line 2881 "Gmsh.y" + { + if(!strcmp((yyvsp[(2) - (6)].c), "Index")) + extr.mesh.BoundaryLayerIndex = (yyvsp[(4) - (6)].d); + else if(!strcmp((yyvsp[(2) - (6)].c), "View")) + extr.mesh.ViewIndex = (yyvsp[(4) - (6)].d); + Free((yyvsp[(2) - (6)].c)); + ;} + break; + + case 229: +#line 2893 "Gmsh.y" { (yyval.v)[0] = (yyval.v)[1] = 1.; ;} break; - case 231: -#line 2905 "Gmsh.y" + case 230: +#line 2897 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power")) (yyval.v)[0] = 1.; @@ -7184,15 +7176,15 @@ yyreduce: ;} break; - case 232: -#line 2920 "Gmsh.y" + case 231: +#line 2912 "Gmsh.y" { (yyval.i) = -1; // left ;} break; - case 233: -#line 2924 "Gmsh.y" + case 232: +#line 2916 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "Right")) (yyval.i) = 1; @@ -7204,36 +7196,36 @@ yyreduce: ;} break; - case 234: -#line 2936 "Gmsh.y" + case 233: +#line 2928 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; - case 235: -#line 2940 "Gmsh.y" + case 234: +#line 2932 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; - case 236: -#line 2945 "Gmsh.y" + case 235: +#line 2937 "Gmsh.y" { (yyval.i) = 45; ;} break; - case 237: -#line 2949 "Gmsh.y" + case 236: +#line 2941 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(2) - (2)].d); ;} break; - case 238: -#line 2956 "Gmsh.y" + case 237: +#line 2948 "Gmsh.y" { int type = (int)(yyvsp[(6) - (7)].v)[0]; double coef = fabs((yyvsp[(6) - (7)].v)[1]); @@ -7291,8 +7283,8 @@ yyreduce: ;} break; - case 239: -#line 3012 "Gmsh.y" + case 238: +#line 3004 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (6)].l)); if(k != 0 && k != 3 && k != 4){ @@ -7364,16 +7356,16 @@ yyreduce: ;} break; - case 240: -#line 3082 "Gmsh.y" + case 239: +#line 3074 "Gmsh.y" { yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete((yyvsp[(7) - (8)].l)); ;} break; - case 241: -#line 3087 "Gmsh.y" + case 240: +#line 3079 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (5)].l)); if(k != 0 && k != 6 && k != 8){ @@ -7442,8 +7434,8 @@ yyreduce: ;} break; - case 242: -#line 3154 "Gmsh.y" + case 241: +#line 3146 "Gmsh.y" { if(!(yyvsp[(3) - (5)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -7488,8 +7480,8 @@ yyreduce: ;} break; - case 243: -#line 3197 "Gmsh.y" + case 242: +#line 3189 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -7511,8 +7503,8 @@ yyreduce: ;} break; - case 244: -#line 3222 "Gmsh.y" + case 243: +#line 3214 "Gmsh.y" { if(List_Nbr((yyvsp[(5) - (6)].l)) != List_Nbr((yyvsp[(3) - (6)].l))){ yymsg(0, "Number of master (%d) different from number of slave (%d) lines", @@ -7541,8 +7533,8 @@ yyreduce: ;} break; - case 245: -#line 3250 "Gmsh.y" + case 244: +#line 3242 "Gmsh.y" { if (List_Nbr((yyvsp[(5) - (12)].l)) != List_Nbr((yyvsp[(10) - (12)].l))){ yymsg(0, "Number of master surface edges (%d) different from number of " @@ -7580,8 +7572,8 @@ yyreduce: ;} break; - case 246: -#line 3293 "Gmsh.y" + case 245: +#line 3285 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -7606,8 +7598,8 @@ yyreduce: ;} break; - case 247: -#line 3316 "Gmsh.y" + case 246: +#line 3308 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -7632,27 +7624,27 @@ yyreduce: ;} break; - case 248: -#line 3339 "Gmsh.y" + case 247: +#line 3331 "Gmsh.y" { ;} break; - case 249: -#line 3342 "Gmsh.y" + case 248: +#line 3334 "Gmsh.y" { ;} break; - case 250: -#line 3351 "Gmsh.y" + case 249: +#line 3343 "Gmsh.y" { ReplaceAllDuplicates(); ;} break; - case 251: -#line 3355 "Gmsh.y" + case 250: +#line 3347 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Geometry")) ReplaceAllDuplicates(); @@ -7664,8 +7656,38 @@ yyreduce: ;} break; + case 251: +#line 3357 "Gmsh.y" + { + if(List_Nbr((yyvsp[(4) - (6)].l)) >= 2){ + double d; + List_Read((yyvsp[(4) - (6)].l), 0, &d); + Vertex *target = FindPoint((int)d); + if(!target) yymsg(0, "Could not find Point %d", (int)d); + double x = target->Pos.X, y = target->Pos.Y, z = target->Pos.Z; + for(int i = 1; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ + List_Read((yyvsp[(4) - (6)].l), i, &d); + Vertex *source = FindPoint((int)d); + if(!source) yymsg(0, "Could not find Point %d", (int)d); + if(target && source){ + source->Typ = target->Typ; + source->Pos.X = x; + source->Pos.Y = y; + source->Pos.Z = z; + source->boundaryLayerIndex = target->boundaryLayerIndex; + } + } + ExtrudeParams::normalsCoherence.push_back(SPoint3(x, y, z)); + } + else + yymsg(0, "Need at least two points to merge"); + ReplaceAllDuplicates(); + List_Delete((yyvsp[(4) - (6)].l)); + ;} + break; + case 252: -#line 3372 "Gmsh.y" +#line 3391 "Gmsh.y" { List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (11)].l)); @@ -7704,7 +7726,7 @@ yyreduce: break; case 253: -#line 3409 "Gmsh.y" +#line 3428 "Gmsh.y" { List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (11)].l)); std::vector<int> domain; @@ -7742,7 +7764,7 @@ yyreduce: break; case 254: -#line 3445 "Gmsh.y" +#line 3464 "Gmsh.y" { List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (11)].l)); std::vector<int> domain; @@ -7780,7 +7802,7 @@ yyreduce: break; case 255: -#line 3480 "Gmsh.y" +#line 3499 "Gmsh.y" { List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (11)].l)); std::vector<int> domain; @@ -7818,47 +7840,47 @@ yyreduce: break; case 256: -#line 3519 "Gmsh.y" +#line 3538 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 257: -#line 3520 "Gmsh.y" +#line 3539 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (3)].d); ;} break; case 258: -#line 3521 "Gmsh.y" +#line 3540 "Gmsh.y" { (yyval.d) = -(yyvsp[(2) - (2)].d); ;} break; case 259: -#line 3522 "Gmsh.y" +#line 3541 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; case 260: -#line 3523 "Gmsh.y" +#line 3542 "Gmsh.y" { (yyval.d) = !(yyvsp[(2) - (2)].d); ;} break; case 261: -#line 3524 "Gmsh.y" +#line 3543 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;} break; case 262: -#line 3525 "Gmsh.y" +#line 3544 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;} break; case 263: -#line 3526 "Gmsh.y" +#line 3545 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;} break; case 264: -#line 3528 "Gmsh.y" +#line 3547 "Gmsh.y" { if(!(yyvsp[(3) - (3)].d)) yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); @@ -7868,307 +7890,307 @@ yyreduce: break; case 265: -#line 3534 "Gmsh.y" +#line 3553 "Gmsh.y" { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} break; case 266: -#line 3535 "Gmsh.y" +#line 3554 "Gmsh.y" { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} break; case 267: -#line 3536 "Gmsh.y" +#line 3555 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} break; case 268: -#line 3537 "Gmsh.y" +#line 3556 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} break; case 269: -#line 3538 "Gmsh.y" +#line 3557 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} break; case 270: -#line 3539 "Gmsh.y" +#line 3558 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} break; case 271: -#line 3540 "Gmsh.y" +#line 3559 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} break; case 272: -#line 3541 "Gmsh.y" +#line 3560 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} break; case 273: -#line 3542 "Gmsh.y" +#line 3561 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} break; case 274: -#line 3543 "Gmsh.y" +#line 3562 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} break; case 275: -#line 3544 "Gmsh.y" +#line 3563 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} break; case 276: -#line 3545 "Gmsh.y" +#line 3564 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; case 277: -#line 3546 "Gmsh.y" +#line 3565 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; case 278: -#line 3547 "Gmsh.y" +#line 3566 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; case 279: -#line 3548 "Gmsh.y" +#line 3567 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; case 280: -#line 3549 "Gmsh.y" +#line 3568 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; case 281: -#line 3550 "Gmsh.y" +#line 3569 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; case 282: -#line 3551 "Gmsh.y" +#line 3570 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; case 283: -#line 3552 "Gmsh.y" +#line 3571 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; case 284: -#line 3553 "Gmsh.y" +#line 3572 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; case 285: -#line 3554 "Gmsh.y" +#line 3573 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; case 286: -#line 3555 "Gmsh.y" +#line 3574 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; case 287: -#line 3556 "Gmsh.y" +#line 3575 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; case 288: -#line 3557 "Gmsh.y" +#line 3576 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; case 289: -#line 3558 "Gmsh.y" +#line 3577 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; case 290: -#line 3559 "Gmsh.y" +#line 3578 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; case 291: -#line 3560 "Gmsh.y" +#line 3579 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; case 292: -#line 3561 "Gmsh.y" +#line 3580 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; case 293: -#line 3562 "Gmsh.y" +#line 3581 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 294: -#line 3563 "Gmsh.y" +#line 3582 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 295: -#line 3564 "Gmsh.y" +#line 3583 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; case 296: -#line 3565 "Gmsh.y" +#line 3584 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; case 297: -#line 3567 "Gmsh.y" +#line 3586 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; case 298: -#line 3568 "Gmsh.y" +#line 3587 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; case 299: -#line 3569 "Gmsh.y" +#line 3588 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; case 300: -#line 3570 "Gmsh.y" +#line 3589 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; case 301: -#line 3571 "Gmsh.y" +#line 3590 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; case 302: -#line 3572 "Gmsh.y" +#line 3591 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; case 303: -#line 3573 "Gmsh.y" +#line 3592 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; case 304: -#line 3574 "Gmsh.y" +#line 3593 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; case 305: -#line 3575 "Gmsh.y" +#line 3594 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; case 306: -#line 3576 "Gmsh.y" +#line 3595 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; case 307: -#line 3577 "Gmsh.y" +#line 3596 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; case 308: -#line 3578 "Gmsh.y" +#line 3597 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; case 309: -#line 3579 "Gmsh.y" +#line 3598 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; case 310: -#line 3580 "Gmsh.y" +#line 3599 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; case 311: -#line 3581 "Gmsh.y" +#line 3600 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; case 312: -#line 3582 "Gmsh.y" +#line 3601 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; case 313: -#line 3583 "Gmsh.y" +#line 3602 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; case 314: -#line 3584 "Gmsh.y" +#line 3603 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 315: -#line 3585 "Gmsh.y" +#line 3604 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 316: -#line 3586 "Gmsh.y" +#line 3605 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; case 317: -#line 3587 "Gmsh.y" +#line 3606 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; case 318: -#line 3596 "Gmsh.y" +#line 3615 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 319: -#line 3597 "Gmsh.y" +#line 3616 "Gmsh.y" { (yyval.d) = 3.141592653589793; ;} break; case 320: -#line 3598 "Gmsh.y" +#line 3617 "Gmsh.y" { (yyval.d) = Msg::GetCommRank(); ;} break; case 321: -#line 3599 "Gmsh.y" +#line 3618 "Gmsh.y" { (yyval.d) = Msg::GetCommSize(); ;} break; case 322: -#line 3600 "Gmsh.y" +#line 3619 "Gmsh.y" { (yyval.d) = GetGmshMajorVersion(); ;} break; case 323: -#line 3601 "Gmsh.y" +#line 3620 "Gmsh.y" { (yyval.d) = GetGmshMinorVersion(); ;} break; case 324: -#line 3602 "Gmsh.y" +#line 3621 "Gmsh.y" { (yyval.d) = GetGmshPatchVersion(); ;} break; case 325: -#line 3607 "Gmsh.y" +#line 3626 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c)); @@ -8187,7 +8209,7 @@ yyreduce: break; case 326: -#line 3626 "Gmsh.y" +#line 3645 "Gmsh.y" { char tmpstring[1024]; sprintf(tmpstring, "%s_%d", (yyvsp[(1) - (5)].c), (int)(yyvsp[(4) - (5)].d)) ; @@ -8208,7 +8230,7 @@ yyreduce: break; case 327: -#line 3644 "Gmsh.y" +#line 3663 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -8226,7 +8248,7 @@ yyreduce: break; case 328: -#line 3659 "Gmsh.y" +#line 3678 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(2) - (4)].c)); @@ -8239,7 +8261,7 @@ yyreduce: break; case 329: -#line 3669 "Gmsh.y" +#line 3688 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c)); @@ -8258,7 +8280,7 @@ yyreduce: break; case 330: -#line 3685 "Gmsh.y" +#line 3704 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -8276,7 +8298,7 @@ yyreduce: break; case 331: -#line 3703 "Gmsh.y" +#line 3722 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), (yyval.d)); Free((yyvsp[(1) - (3)].c)); Free((yyvsp[(3) - (3)].c)); @@ -8284,7 +8306,7 @@ yyreduce: break; case 332: -#line 3708 "Gmsh.y" +#line 3727 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), (yyval.d)); Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(6) - (6)].c)); @@ -8292,7 +8314,7 @@ yyreduce: break; case 333: -#line 3713 "Gmsh.y" +#line 3732 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){ @@ -8305,7 +8327,7 @@ yyreduce: break; case 334: -#line 3723 "Gmsh.y" +#line 3742 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){ @@ -8318,7 +8340,7 @@ yyreduce: break; case 335: -#line 3733 "Gmsh.y" +#line 3752 "Gmsh.y" { (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); @@ -8326,70 +8348,70 @@ yyreduce: break; case 336: -#line 3741 "Gmsh.y" +#line 3760 "Gmsh.y" { memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double)); ;} break; case 337: -#line 3745 "Gmsh.y" +#line 3764 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i]; ;} break; case 338: -#line 3749 "Gmsh.y" +#line 3768 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; case 339: -#line 3753 "Gmsh.y" +#line 3772 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i]; ;} break; case 340: -#line 3757 "Gmsh.y" +#line 3776 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i]; ;} break; case 341: -#line 3764 "Gmsh.y" +#line 3783 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (11)].d); (yyval.v)[1] = (yyvsp[(4) - (11)].d); (yyval.v)[2] = (yyvsp[(6) - (11)].d); (yyval.v)[3] = (yyvsp[(8) - (11)].d); (yyval.v)[4] = (yyvsp[(10) - (11)].d); ;} break; case 342: -#line 3768 "Gmsh.y" +#line 3787 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (9)].d); (yyval.v)[1] = (yyvsp[(4) - (9)].d); (yyval.v)[2] = (yyvsp[(6) - (9)].d); (yyval.v)[3] = (yyvsp[(8) - (9)].d); (yyval.v)[4] = 1.0; ;} break; case 343: -#line 3772 "Gmsh.y" +#line 3791 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; case 344: -#line 3776 "Gmsh.y" +#line 3795 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; case 345: -#line 3783 "Gmsh.y" +#line 3802 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(List_T*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].l))); @@ -8397,14 +8419,14 @@ yyreduce: break; case 346: -#line 3788 "Gmsh.y" +#line 3807 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].l))); ;} break; case 347: -#line 3795 "Gmsh.y" +#line 3814 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -8412,14 +8434,14 @@ yyreduce: break; case 348: -#line 3800 "Gmsh.y" +#line 3819 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 349: -#line 3804 "Gmsh.y" +#line 3823 "Gmsh.y" { // creates an empty list (yyval.l) = List_Create(2, 1, sizeof(double)); @@ -8427,14 +8449,14 @@ yyreduce: break; case 350: -#line 3809 "Gmsh.y" +#line 3828 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; case 351: -#line 3813 "Gmsh.y" +#line 3832 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -8445,7 +8467,7 @@ yyreduce: break; case 352: -#line 3821 "Gmsh.y" +#line 3840 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (5)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -8456,14 +8478,14 @@ yyreduce: break; case 353: -#line 3832 "Gmsh.y" +#line 3851 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 354: -#line 3836 "Gmsh.y" +#line 3855 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all")) (yyval.l) = 0; @@ -8475,7 +8497,7 @@ yyreduce: break; case 355: -#line 3848 "Gmsh.y" +#line 3867 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -8486,7 +8508,7 @@ yyreduce: break; case 356: -#line 3856 "Gmsh.y" +#line 3875 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (3)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -8497,7 +8519,7 @@ yyreduce: break; case 357: -#line 3864 "Gmsh.y" +#line 3883 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); for(double d = (yyvsp[(1) - (3)].d); ((yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d)) ? (d <= (yyvsp[(3) - (3)].d)) : (d >= (yyvsp[(3) - (3)].d)); @@ -8507,7 +8529,7 @@ yyreduce: break; case 358: -#line 3871 "Gmsh.y" +#line 3890 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!(yyvsp[(5) - (5)].d) || ((yyvsp[(1) - (5)].d) < (yyvsp[(3) - (5)].d) && (yyvsp[(5) - (5)].d) < 0) || ((yyvsp[(1) - (5)].d) > (yyvsp[(3) - (5)].d) && (yyvsp[(5) - (5)].d) > 0)){ @@ -8521,7 +8543,7 @@ yyreduce: break; case 359: -#line 3882 "Gmsh.y" +#line 3901 "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 @@ -8544,7 +8566,7 @@ yyreduce: break; case 360: -#line 3902 "Gmsh.y" +#line 3921 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -8557,7 +8579,7 @@ yyreduce: break; case 361: -#line 3912 "Gmsh.y" +#line 3931 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -8570,7 +8592,7 @@ yyreduce: break; case 362: -#line 3922 "Gmsh.y" +#line 3941 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -8583,7 +8605,7 @@ yyreduce: break; case 363: -#line 3932 "Gmsh.y" +#line 3951 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -8603,7 +8625,7 @@ yyreduce: break; case 364: -#line 3952 "Gmsh.y" +#line 3971 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -8611,21 +8633,21 @@ yyreduce: break; case 365: -#line 3957 "Gmsh.y" +#line 3976 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 366: -#line 3961 "Gmsh.y" +#line 3980 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].d))); ;} break; case 367: -#line 3965 "Gmsh.y" +#line 3984 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ double d; @@ -8637,21 +8659,21 @@ yyreduce: break; case 368: -#line 3977 "Gmsh.y" +#line 3996 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (9)].d), (int)(yyvsp[(4) - (9)].d), (int)(yyvsp[(6) - (9)].d), (int)(yyvsp[(8) - (9)].d)); ;} break; case 369: -#line 3981 "Gmsh.y" +#line 4000 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (7)].d), (int)(yyvsp[(4) - (7)].d), (int)(yyvsp[(6) - (7)].d), 255); ;} break; case 370: -#line 3993 "Gmsh.y" +#line 4012 "Gmsh.y" { int flag; (yyval.u) = GetColorForString(ColorString, -1, (yyvsp[(1) - (1)].c), &flag); @@ -8661,7 +8683,7 @@ yyreduce: break; case 371: -#line 4000 "Gmsh.y" +#line 4019 "Gmsh.y" { unsigned int val = 0; ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val); @@ -8671,14 +8693,14 @@ yyreduce: break; case 372: -#line 4010 "Gmsh.y" +#line 4029 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; case 373: -#line 4014 "Gmsh.y" +#line 4033 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (6)].d)); @@ -8693,7 +8715,7 @@ yyreduce: break; case 374: -#line 4029 "Gmsh.y" +#line 4048 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); List_Add((yyval.l), &((yyvsp[(1) - (1)].u))); @@ -8701,21 +8723,21 @@ yyreduce: break; case 375: -#line 4034 "Gmsh.y" +#line 4053 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].u))); ;} break; case 376: -#line 4041 "Gmsh.y" +#line 4060 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 377: -#line 4045 "Gmsh.y" +#line 4064 "Gmsh.y" { if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown string variable '%s'", (yyvsp[(1) - (1)].c)); @@ -8731,7 +8753,7 @@ yyreduce: break; case 378: -#line 4058 "Gmsh.y" +#line 4077 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), out); @@ -8742,7 +8764,7 @@ yyreduce: break; case 379: -#line 4066 "Gmsh.y" +#line 4085 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), out); @@ -8753,14 +8775,14 @@ yyreduce: break; case 380: -#line 4077 "Gmsh.y" +#line 4096 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 381: -#line 4081 "Gmsh.y" +#line 4100 "Gmsh.y" { (yyval.c) = (char *)Malloc(32 * sizeof(char)); time_t now; @@ -8771,7 +8793,7 @@ yyreduce: break; case 382: -#line 4089 "Gmsh.y" +#line 4108 "Gmsh.y" { const char *env = GetEnvironmentVar((yyvsp[(3) - (4)].c)); if(!env) env = ""; @@ -8782,7 +8804,7 @@ yyreduce: break; case 383: -#line 4097 "Gmsh.y" +#line 4116 "Gmsh.y" { std::string s = Msg::GetString((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -8793,7 +8815,7 @@ yyreduce: break; case 384: -#line 4105 "Gmsh.y" +#line 4124 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (6)].c)) + strlen((yyvsp[(5) - (6)].c)) + 1) * sizeof(char)); strcpy((yyval.c), (yyvsp[(3) - (6)].c)); @@ -8804,7 +8826,7 @@ yyreduce: break; case 385: -#line 4113 "Gmsh.y" +#line 4132 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -8821,7 +8843,7 @@ yyreduce: break; case 386: -#line 4127 "Gmsh.y" +#line 4146 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -8838,14 +8860,14 @@ yyreduce: break; case 387: -#line 4141 "Gmsh.y" +#line 4160 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; case 388: -#line 4145 "Gmsh.y" +#line 4164 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring); @@ -8868,7 +8890,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 8872 "Gmsh.tab.cpp" +#line 8894 "Gmsh.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -9082,7 +9104,7 @@ yyreturn: } -#line 4165 "Gmsh.y" +#line 4184 "Gmsh.y" int PrintListOfDouble(char *format, List_T *list, char *buffer) diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index c5ba1617acf89ce6718522a5eee70f904fb7d952..d2c8f51bdcbb6ad660fbf912517591512162eb07 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -2626,22 +2626,6 @@ Extrude : &extr, $$); List_Delete($3); } - | tExtrude tSTRING '[' FExpr ']' '{' ListOfShapes - { - extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; - if(!strcmp($2, "Index")) - extr.mesh.BoundaryLayerIndex = $4; - else if(!strcmp($2, "View")) - extr.mesh.ViewIndex = $4; - } - ExtrudeParameters '}' - { - $$ = List_Create(2, 1, sizeof(Shape)); - ExtrudeShapes(BOUNDARY_LAYER, $7, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., - &extr, $$); - List_Delete($7); - } - // Deprecated extrude commands (for backward compatibility) | tExtrude tPoint '{' FExpr ',' VExpr '}' tEND { @@ -2893,6 +2877,14 @@ ExtrudeParameter : } List_Delete($6); } + | tUsing tSTRING '[' FExpr ']' tEND + { + if(!strcmp($2, "Index")) + extr.mesh.BoundaryLayerIndex = $4; + else if(!strcmp($2, "View")) + extr.mesh.ViewIndex = $4; + Free($2); + } ; // T R A N S F I N I T E , R E C O M B I N E & S M O O T H I N G @@ -3361,6 +3353,33 @@ Coherence : yymsg(0, "Unknown coherence command"); Free($2); } + | tCoherence tPoint '{' RecursiveListOfDouble '}' tEND + { + if(List_Nbr($4) >= 2){ + double d; + List_Read($4, 0, &d); + Vertex *target = FindPoint((int)d); + if(!target) yymsg(0, "Could not find Point %d", (int)d); + double x = target->Pos.X, y = target->Pos.Y, z = target->Pos.Z; + for(int i = 1; i < List_Nbr($4); i++){ + List_Read($4, i, &d); + Vertex *source = FindPoint((int)d); + if(!source) yymsg(0, "Could not find Point %d", (int)d); + if(target && source){ + source->Typ = target->Typ; + source->Pos.X = x; + source->Pos.Y = y; + source->Pos.Z = z; + source->boundaryLayerIndex = target->boundaryLayerIndex; + } + } + ExtrudeParams::normalsCoherence.push_back(SPoint3(x, y, z)); + } + else + yymsg(0, "Need at least two points to merge"); + ReplaceAllDuplicates(); + List_Delete($4); + } ; diff --git a/benchmarks/extrude/double_boundary_layer_2d.geo b/benchmarks/extrude/double_boundary_layer_2d.geo new file mode 100644 index 0000000000000000000000000000000000000000..5d1a60e4cd47156fb26c95bf7540e4f9386d49eb --- /dev/null +++ b/benchmarks/extrude/double_boundary_layer_2d.geo @@ -0,0 +1,21 @@ +Point(1) = {0,0,0,0.1}; +Point(2) = {1,0,0,0.1}; +Line(1) = {1, 2}; + +tmp1[] = Extrude { Line{1}; Layers{5, 0.1}; Recombine; Using Index[0]; }; +tmp2[] = Extrude { Line{-1}; Layers{5, 0.1}; Recombine; Using Index[1]; }; + +/* + + (10)---6-----(9) + + 8 7 + + (1)----1-----(2) + + 3 4 + + (5)----2-----(6) + + + */ diff --git a/benchmarks/extrude/double_boundary_layer_3d.geo b/benchmarks/extrude/double_boundary_layer_3d.geo new file mode 100644 index 0000000000000000000000000000000000000000..2f6ee9cbf991118f0dd6873250a935725c8e7ab2 --- /dev/null +++ b/benchmarks/extrude/double_boundary_layer_3d.geo @@ -0,0 +1,14 @@ +Point(1) = {0,0,0,0.1}; +Point(2) = {1,0,0,0.1}; +Point(3) = {0,0,1,0.1}; +Point(4) = {1,0,1,0.1}; +Line(1) = {1, 2}; + +Line(2) = {1, 3}; +Line(3) = {3, 4}; +Line(4) = {4, 2}; +Line Loop(5) = {1, -4, -3, -2}; +Plane Surface(6) = {5}; + +tmp1[] = Extrude { Surface{6}; Layers{5, 0.1}; Recombine; Using Index[0]; }; +tmp2[] = Extrude { Surface{-6}; Layers{5, 0.1}; Recombine; Using Index[1]; }; diff --git a/benchmarks/extrude/sphere_boundary_layer_from_view.geo b/benchmarks/extrude/sphere_boundary_layer_from_view.geo index 9c41f2f7186be0d2a378626062a7440f18bd2d9f..92949241498b12b03032161d9b7b705f7bd36050 100644 --- a/benchmarks/extrude/sphere_boundary_layer_from_view.geo +++ b/benchmarks/extrude/sphere_boundary_layer_from_view.geo @@ -39,6 +39,10 @@ Ruled Surface(26) = {25}; Line Loop(27) = {-4,12,-6}; Ruled Surface(28) = {27}; -tmp[] = Extrude View [0] { - Surface{14:28:2}; Layers{5, 0.2}; Recombine; +tmp[] = Extrude { + Surface{14:28:2}; Layers{5, 0.2}; Recombine; Using View[0]; Using Index[0]; }; + +// test 2nd bnd layer +Extrude { Surface{14:28:2}; Layers{5, -0.2}; Recombine; Using View[0]; Using Index[1]; } + diff --git a/benchmarks/extrude/sphere_double_boundary_layer.geo b/benchmarks/extrude/sphere_double_boundary_layer.geo new file mode 100644 index 0000000000000000000000000000000000000000..e7f91dc106829adb3219951f1c3e408b6461e082 --- /dev/null +++ b/benchmarks/extrude/sphere_double_boundary_layer.geo @@ -0,0 +1,41 @@ +lc = 0.2; + +Point(1) = {0.0,0.0,0.0,lc}; +Point(2) = {1,0.0,0.0,lc}; +Point(3) = {0,1,0.0,lc}; +Circle(1) = {2,1,3}; +Point(4) = {-1,0,0.0,lc}; +Point(5) = {0,-1,0.0,lc}; +Circle(2) = {3,1,4}; +Circle(3) = {4,1,5}; +Circle(4) = {5,1,2}; +Point(6) = {0,0,-1,lc}; +Point(7) = {0,0,1,lc}; +Circle(5) = {3,1,6}; +Circle(6) = {6,1,5}; +Circle(7) = {5,1,7}; +Circle(8) = {7,1,3}; +Circle(9) = {2,1,7}; +Circle(10) = {7,1,4}; +Circle(11) = {4,1,6}; +Circle(12) = {6,1,2}; + +Line Loop(13) = {2,8,-10}; +Ruled Surface(14) = {13}; +Line Loop(15) = {10,3,7}; +Ruled Surface(16) = {15}; +Line Loop(17) = {-8,-9,1}; +Ruled Surface(18) = {17}; +Line Loop(19) = {-11,-2,5}; +Ruled Surface(20) = {19}; +Line Loop(21) = {-5,-12,-1}; +Ruled Surface(22) = {21}; +Line Loop(23) = {-3,11,6}; +Ruled Surface(24) = {23}; +Line Loop(25) = {-7,4,9}; +Ruled Surface(26) = {25}; +Line Loop(27) = {-4,12,-6}; +Ruled Surface(28) = {27}; + +Extrude { Surface{14:28:2}; Layers{5, 0.1}; Recombine; Using Index[0]; } +Extrude { Surface{-14,-16,-18,-20,-22,-24,-26,-28}; Layers{5, 0.1}; Recombine; Using Index[1]; } diff --git a/benchmarks/extrude/u_shape_boundary_layer.geo b/benchmarks/extrude/u_shape_boundary_layer.geo new file mode 100644 index 0000000000000000000000000000000000000000..83ea224f35c4a614ab9ff6a16ad1fa3a4dac79de --- /dev/null +++ b/benchmarks/extrude/u_shape_boundary_layer.geo @@ -0,0 +1,30 @@ +Point(1) = {0, 0.5, 0, 0.1}; +Point(2) = {0.1, 0.7, 0, 0.1}; +Point(3) = {0.3, 0.8, 0, 0.1}; +Point(4) = {1, 0.8, 0, 0.1}; +Point(5) = {2.1, 0.5, 0, 0.1}; +Point(6) = {3, 0.5, 0, 0.1}; +Point(7) = {1, 0.4, 0, 0.1}; +Point(8) = {0.3, 0.4, 0, 0.1}; +Point(9) = {0.1, 0.4, 0, 0.1}; +BSpline(1) = {5, 4, 3, 2, 1}; +BSpline(2) = {1, 9, 8, 7, 5}; +Line(3) = {5, 6}; + +Extrude { Line{1,-3}; Layers{5,0.1}; Using Index[0]; } +Extrude { Line{2,3}; Layers{5,0.1}; Using Index[1]; } + +// fix leading edge by hand +Coherence Point {25, 16}; + +Point(31) = {-0.5, 1.5, 0, 0.2}; +Point(32) = {-0.5, -0.5, 0, 0.2}; +Point(33) = {3.5, -0.5, 0, 0.2}; +Point(34) = {3.5, 1.5, 0, 0.2}; +Line(20) = {32, 33}; +Line(21) = {33, 34}; +Line(22) = {34, 31}; +Line(23) = {31, 32}; +Line Loop(24) = {22, 23, 20, 21}; +Line Loop(25) = {4, 12, 16, -18, 9, 8}; +Plane Surface(26) = {24, 25};