From af5fde7491670e2deb7966a99c25a9b69b7bc86f Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Thu, 6 Aug 1998 05:13:14 +0000 Subject: [PATCH] Make large objects their own relkind type. Fix dups in pg_class_mb files. Fix sequence creation hack for relkind type. --- src/backend/bootstrap/bootparse.y | 6 +- src/backend/catalog/heap.c | 29 +- src/backend/commands/cluster.c | 4 +- src/backend/commands/creatinh.c | 7 +- src/backend/commands/recipe.c | 8 +- src/backend/commands/sequence.c | 14 +- src/backend/commands/view.c | 4 +- src/backend/executor/execMain.c | 5 +- src/backend/executor/nodeTee.c | 8 +- src/backend/parser/gram.c | 5371 ++++++++++---------- src/backend/parser/parse.h | 1 + src/backend/storage/large_object/inv_api.c | 4 +- src/backend/tcop/utility.c | 4 +- src/bin/pg_dump/pg_dump.c | 6 +- src/bin/psql/psql.c | 4 +- src/include/catalog/heap.h | 5 +- src/include/catalog/pg_attribute_mb.h | 469 +- src/include/catalog/pg_class.h | 3 +- src/include/catalog/pg_class_mb.h | 167 +- src/include/catalog/pg_database_mb.h | 60 +- src/include/commands/creatinh.h | 4 +- src/tools/backend/flow.fig | 46 +- src/tools/backend/flow.jpg | Bin 71617 -> 71332 bytes 23 files changed, 2723 insertions(+), 3506 deletions(-) diff --git a/src/backend/bootstrap/bootparse.y b/src/backend/bootstrap/bootparse.y index 44a5b05194..3e16196d33 100644 --- a/src/backend/bootstrap/bootparse.y +++ b/src/backend/bootstrap/bootparse.y @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootparse.y,v 1.18 1998/07/26 04:30:18 scrappy Exp $ + * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootparse.y,v 1.19 1998/08/06 05:12:16 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -177,10 +177,10 @@ Boot_CreateStmt: { Oid id; TupleDesc tupdesc; - /* extern Oid heap_create_with_catalog();*/ tupdesc = CreateTupleDesc(numattr,attrtypes); - id = heap_create_with_catalog(LexIDStr($3), tupdesc); + id = heap_create_with_catalog(LexIDStr($3), + tupdesc, RELKIND_RELATION); if (!Quiet) printf("CREATED relation %s with OID %d\n", LexIDStr($3), id); diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c index 8f2a56cc55..32150d926f 100644 --- a/src/backend/catalog/heap.c +++ b/src/backend/catalog/heap.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.55 1998/07/27 19:37:46 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.56 1998/08/06 05:12:19 momjian Exp $ * * INTERFACE ROUTINES * heap_create() - Create an uncataloged heap relation @@ -16,7 +16,7 @@ * * NOTES * this code taken from access/heap/create.c, which contains - * the old heap_create_with_catalogr, amcreate, and amdestroy. + * the old heap_create_with_catalog, amcreate, and amdestroy. * those routines will soon call these routines using the function * manager, * just like the poorly named "NewXXX" routines do. The @@ -65,7 +65,8 @@ static void AddPgRelationTuple(Relation pg_class_desc, - Relation new_rel_desc, Oid new_rel_oid, unsigned natts); + Relation new_rel_desc, Oid new_rel_oid, unsigned natts, + char relkind); static void AddToTempRelList(Relation r); static void DeletePgAttributeTuples(Relation rdesc); static void DeletePgRelationTuple(Relation rdesc); @@ -345,7 +346,7 @@ heap_create(char *name, * preforms a scan to ensure that no relation with the * same name already exists. * - * 3) heap_create_with_catalogr() is called to create the new relation + * 3) heap_create_with_catalog() is called to create the new relation * on disk. * * 4) TypeDefine() is called to define a new type corresponding @@ -378,7 +379,7 @@ heap_create(char *name, * create new relation * insert new relation into attribute catalog * - * Should coordinate with heap_create_with_catalogr(). Either + * Should coordinate with heap_create_with_catalog(). Either * it should not be called or there should be a way to prevent * the relation from being removed at the end of the * transaction if it is successful ('u'/'r' may be enough). @@ -633,14 +634,13 @@ static void AddPgRelationTuple(Relation pg_class_desc, Relation new_rel_desc, Oid new_rel_oid, - unsigned natts) + unsigned natts, + char relkind) { Form_pg_class new_rel_reltup; HeapTuple tup; Relation idescs[Num_pg_class_indices]; bool isBootstrap; - extern bool ItsSequenceCreation; /* It's hack, I know... - vadim - * 03/28/97 */ /* ---------------- * first we munge some of the information in our @@ -653,10 +653,7 @@ AddPgRelationTuple(Relation pg_class_desc, /* new_rel_reltup->reltuples = 1; *//* XXX */ new_rel_reltup->relowner = GetUserId(); - if (ItsSequenceCreation) - new_rel_reltup->relkind = RELKIND_SEQUENCE; - else - new_rel_reltup->relkind = RELKIND_RELATION; + new_rel_reltup->relkind = relkind; new_rel_reltup->relnatts = natts; /* ---------------- @@ -747,8 +744,9 @@ addNewRelationType(char *typeName, Oid new_rel_oid) * -------------------------------- */ Oid -heap_create_with_catalog(char relname[], - TupleDesc tupdesc) +heap_create_with_catalog(char *relname, + TupleDesc tupdesc, + char relkind) { Relation pg_class_desc; Relation new_rel_desc; @@ -813,7 +811,8 @@ heap_create_with_catalog(char relname[], AddPgRelationTuple(pg_class_desc, new_rel_desc, new_rel_oid, - natts); + natts, + relkind); StoreConstraints(new_rel_desc); diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index 7de10c6e26..b31ee63e20 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -14,7 +14,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/cluster.c,v 1.26 1998/07/27 19:37:50 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/cluster.c,v 1.27 1998/08/06 05:12:22 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -218,7 +218,7 @@ copy_heap(Oid OIDOldHeap) tupdesc = CreateTupleDescCopy(OldHeapDesc); - OIDNewHeap = heap_create_with_catalog(NewName, tupdesc); + OIDNewHeap = heap_create_with_catalog(NewName, tupdesc, RELKIND_RELATION); if (!OidIsValid(OIDNewHeap)) elog(ERROR, "clusterheap: cannot create temporary heap relation\n"); diff --git a/src/backend/commands/creatinh.c b/src/backend/commands/creatinh.c index 7c216149dc..1221fd8e50 100644 --- a/src/backend/commands/creatinh.c +++ b/src/backend/commands/creatinh.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/Attic/creatinh.c,v 1.30 1998/06/15 19:28:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/Attic/creatinh.c,v 1.31 1998/08/06 05:12:24 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -45,7 +45,7 @@ static void StoreCatalogInheritance(Oid relationId, List *supers); * ---------------------------------------------------------------- */ void -DefineRelation(CreateStmt *stmt) +DefineRelation(CreateStmt *stmt, char relkind) { char *relname = palloc(NAMEDATALEN); List *schema = stmt->tableElts; @@ -137,7 +137,8 @@ DefineRelation(CreateStmt *stmt) } } - relationId = heap_create_with_catalog(relname, descriptor); + relationId = heap_create_with_catalog(relname, + descriptor, relkind); StoreCatalogInheritance(relationId, inheritList); } diff --git a/src/backend/commands/recipe.c b/src/backend/commands/recipe.c index 5d96623ed4..6f300664cc 100644 --- a/src/backend/commands/recipe.c +++ b/src/backend/commands/recipe.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/Attic/recipe.c,v 1.21 1998/06/15 19:28:15 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/Attic/recipe.c,v 1.22 1998/08/06 05:12:26 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -1032,7 +1032,8 @@ tg_parseSubQuery(TgRecipe * r, TgNode * n, TeeInfo * teeInfo) tupdesc = rel->rd_att; relid = heap_create_with_catalog( - child->nodeElem->outTypes->val[0], tupdesc); + child->nodeElem->outTypes->val[0], + tupdesc, RELKIND_RELATION); } else { @@ -1055,7 +1056,8 @@ tg_parseSubQuery(TgRecipe * r, TgNode * n, TeeInfo * teeInfo) else { relid = heap_create_with_catalog( - child->nodeElem->outTypes->val[0], tupdesc); + child->nodeElem->outTypes->val[0], + tupdesc, RELKIND_RELATION); } } } diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c index 572cc3b3f6..2c81196ff7 100644 --- a/src/backend/commands/sequence.c +++ b/src/backend/commands/sequence.c @@ -24,8 +24,6 @@ #define SEQ_MAXVALUE ((int4)0x7FFFFFFF) #define SEQ_MINVALUE -(SEQ_MAXVALUE) -bool ItsSequenceCreation = false; - typedef struct FormData_pg_sequence { NameData sequence_name; @@ -157,15 +155,7 @@ DefineSequence(CreateSeqStmt *seq) stmt->inhRelnames = NIL; stmt->constraints = NIL; - ItsSequenceCreation = true; /* hack */ - - DefineRelation(stmt); - - /* - * Xact abort calls CloseSequences, which turns ItsSequenceCreation - * off - */ - ItsSequenceCreation = false;/* hack */ + DefineRelation(stmt, RELKIND_SEQUENCE); rel = heap_openr(seq->seqname); Assert(RelationIsValid(rel)); @@ -438,8 +428,6 @@ CloseSequences(void) SeqTable elm; Relation rel; - ItsSequenceCreation = false; - for (elm = seqtab; elm != (SeqTable) NULL;) { if (elm->rel != (Relation) NULL) /* opened in current xact */ diff --git a/src/backend/commands/view.c b/src/backend/commands/view.c index ac4a4d0d20..0da160d5e8 100644 --- a/src/backend/commands/view.c +++ b/src/backend/commands/view.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/view.c,v 1.23 1998/07/19 05:49:12 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/view.c,v 1.24 1998/08/06 05:12:30 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -105,7 +105,7 @@ DefineVirtualRelation(char *relname, List *tlist) /* * finally create the relation... */ - DefineRelation(&createStmt); + DefineRelation(&createStmt, RELKIND_RELATION); } /*------------------------------------------------------------------ diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c index 04159f7ab2..41bb1dc5d4 100644 --- a/src/backend/executor/execMain.c +++ b/src/backend/executor/execMain.c @@ -26,7 +26,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.51 1998/07/27 19:37:55 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.52 1998/08/06 05:12:33 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -587,7 +587,8 @@ InitPlan(CmdType operation, Query *parseTree, Plan *plan, EState *estate) */ tupdesc = CreateTupleDescCopy(tupType); - intoRelationId = heap_create_with_catalog(intoName, tupdesc); + intoRelationId = heap_create_with_catalog(intoName, + tupdesc, RELKIND_RELATION); FreeTupleDesc(tupdesc); diff --git a/src/backend/executor/nodeTee.c b/src/backend/executor/nodeTee.c index 104de6413b..c23c7d65d4 100644 --- a/src/backend/executor/nodeTee.c +++ b/src/backend/executor/nodeTee.c @@ -15,7 +15,7 @@ * ExecEndTee * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/Attic/nodeTee.c,v 1.19 1998/07/27 19:37:57 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/Attic/nodeTee.c,v 1.20 1998/08/06 05:12:36 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -168,7 +168,8 @@ ExecInitTee(Tee *node, EState *currentEstate, Plan *parent) bufferRel = heap_openr(teeState->tee_bufferRelname); else bufferRel = heap_open( - heap_create_with_catalog(teeState->tee_bufferRelname, tupType)); + heap_create_with_catalog(teeState->tee_bufferRelname, + tupType, RELKIND_RELATION)); } else { @@ -177,7 +178,8 @@ ExecInitTee(Tee *node, EState *currentEstate, Plan *parent) newoid()); /* bufferRel = ExecCreatR(len, tupType, _TEMP_RELATION_ID); */ bufferRel = heap_open( - heap_create_with_catalog(teeState->tee_bufferRelname, tupType)); + heap_create_with_catalog(teeState->tee_bufferRelname, + tupType, RELKIND_RELATION)); } teeState->tee_bufferRel = bufferRel; diff --git a/src/backend/parser/gram.c b/src/backend/parser/gram.c index c583ed393d..bceb0510ba 100644 --- a/src/backend/parser/gram.c +++ b/src/backend/parser/gram.c @@ -219,7 +219,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/Attic/gram.c,v 2.23 1998/08/04 18:42:39 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/Attic/gram.c,v 2.24 1998/08/06 05:12:37 momjian Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -311,6 +311,7 @@ typedef union DefElem *defelt; ParamString *param; SortGroupBy *sortgroupby; + JoinUsing *joinusing; IndexElem *ielem; RangeVar *range; RelExpr *relexp; @@ -333,11 +334,11 @@ typedef union -#define YYFINAL 1557 +#define YYFINAL 1545 #define YYFLAG -32768 #define YYNTBASE 219 -#define YYTRANSLATE(x) ((unsigned)(x) <= 457 ? yytranslate[x] : 474) +#define YYTRANSLATE(x) ((unsigned)(x) <= 457 ? yytranslate[x] : 472) static const short yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -435,47 +436,46 @@ static const short yyprhs[] = { 0, 1275, 1280, 1289, 1293, 1294, 1298, 1300, 1303, 1308, 1312, 1319, 1334, 1345, 1354, 1358, 1359, 1364, 1366, 1374, 1378, 1379, 1381, 1382, 1384, 1385, 1387, 1391, 1393, 1394, 1398, - 1399, 1401, 1405, 1408, 1413, 1416, 1419, 1422, 1425, 1427, - 1429, 1430, 1432, 1433, 1435, 1437, 1441, 1445, 1446, 1448, - 1452, 1454, 1458, 1460, 1463, 1464, 1473, 1476, 1477, 1481, - 1486, 1488, 1492, 1495, 1497, 1500, 1503, 1506, 1509, 1511, - 1513, 1515, 1516, 1518, 1519, 1524, 1529, 1530, 1532, 1536, - 1538, 1542, 1544, 1547, 1548, 1550, 1553, 1557, 1562, 1563, - 1567, 1572, 1573, 1576, 1578, 1581, 1583, 1585, 1587, 1589, - 1591, 1593, 1596, 1599, 1602, 1605, 1607, 1610, 1612, 1614, - 1618, 1619, 1625, 1629, 1630, 1636, 1640, 1641, 1646, 1648, - 1653, 1656, 1658, 1662, 1665, 1667, 1668, 1672, 1673, 1676, - 1677, 1679, 1682, 1684, 1687, 1689, 1691, 1693, 1695, 1697, - 1699, 1703, 1704, 1706, 1710, 1714, 1718, 1722, 1726, 1730, - 1734, 1735, 1737, 1739, 1747, 1756, 1765, 1773, 1781, 1785, - 1789, 1791, 1793, 1795, 1797, 1799, 1801, 1803, 1805, 1807, - 1809, 1811, 1814, 1816, 1818, 1820, 1823, 1827, 1831, 1835, - 1839, 1843, 1847, 1851, 1854, 1857, 1860, 1864, 1871, 1875, - 1879, 1883, 1888, 1891, 1894, 1899, 1903, 1908, 1910, 1912, - 1917, 1919, 1924, 1926, 1928, 1933, 1938, 1943, 1948, 1954, - 1960, 1966, 1971, 1974, 1978, 1981, 1986, 1990, 1995, 1999, - 2004, 2010, 2017, 2018, 2025, 2026, 2034, 2040, 2046, 2052, - 2058, 2064, 2070, 2076, 2082, 2089, 2096, 2103, 2110, 2117, - 2124, 2131, 2138, 2145, 2152, 2159, 2166, 2173, 2180, 2187, - 2194, 2198, 2202, 2205, 2208, 2210, 2212, 2215, 2219, 2223, - 2227, 2231, 2234, 2237, 2240, 2244, 2251, 2255, 2259, 2262, - 2265, 2269, 2274, 2276, 2278, 2283, 2285, 2290, 2292, 2294, - 2299, 2304, 2310, 2316, 2322, 2327, 2332, 2339, 2340, 2342, - 2346, 2350, 2354, 2355, 2357, 2359, 2361, 2365, 2366, 2369, - 2371, 2374, 2378, 2382, 2386, 2390, 2393, 2397, 2404, 2408, - 2412, 2415, 2418, 2420, 2424, 2429, 2434, 2439, 2445, 2451, - 2457, 2462, 2466, 2467, 2470, 2471, 2474, 2475, 2479, 2482, - 2484, 2486, 2488, 2490, 2494, 2496, 2498, 2500, 2504, 2508, - 2512, 2514, 2518, 2522, 2526, 2528, 2530, 2535, 2538, 2542, - 2546, 2548, 2552, 2554, 2558, 2560, 2562, 2563, 2565, 2567, - 2569, 2571, 2573, 2575, 2577, 2579, 2581, 2583, 2585, 2587, - 2589, 2591, 2594, 2596, 2598, 2600, 2602, 2604, 2606, 2608, - 2610, 2612, 2614, 2616, 2618, 2620, 2622, 2624, 2626, 2628, - 2630, 2632, 2634, 2636, 2638, 2640, 2642, 2644, 2646, 2648, - 2650, 2652, 2654, 2656, 2658, 2660, 2662, 2664, 2666, 2668, - 2670, 2672, 2674, 2676, 2678, 2680, 2682, 2684, 2686, 2688, - 2690, 2692, 2694, 2696, 2698, 2700, 2702, 2704, 2706, 2708, - 2710, 2712, 2714, 2716 + 1399, 1401, 1405, 1408, 1411, 1414, 1417, 1419, 1421, 1422, + 1424, 1425, 1427, 1429, 1433, 1437, 1438, 1441, 1442, 1451, + 1454, 1455, 1459, 1464, 1466, 1470, 1473, 1475, 1478, 1481, + 1484, 1487, 1489, 1491, 1493, 1494, 1496, 1497, 1502, 1507, + 1508, 1510, 1514, 1516, 1520, 1522, 1525, 1526, 1528, 1531, + 1535, 1540, 1541, 1545, 1550, 1551, 1554, 1556, 1559, 1561, + 1563, 1565, 1567, 1569, 1571, 1574, 1577, 1580, 1583, 1585, + 1588, 1590, 1592, 1596, 1597, 1603, 1607, 1608, 1614, 1618, + 1619, 1624, 1626, 1631, 1634, 1636, 1640, 1643, 1645, 1646, + 1650, 1651, 1654, 1655, 1657, 1660, 1662, 1665, 1667, 1669, + 1671, 1673, 1675, 1677, 1681, 1682, 1684, 1688, 1692, 1696, + 1700, 1704, 1708, 1712, 1713, 1715, 1717, 1725, 1734, 1743, + 1751, 1759, 1763, 1767, 1769, 1771, 1773, 1775, 1777, 1779, + 1781, 1783, 1785, 1787, 1789, 1792, 1794, 1796, 1798, 1801, + 1805, 1809, 1813, 1817, 1821, 1825, 1829, 1832, 1835, 1838, + 1842, 1849, 1853, 1857, 1861, 1866, 1869, 1872, 1877, 1881, + 1886, 1888, 1890, 1895, 1897, 1902, 1904, 1906, 1911, 1916, + 1921, 1926, 1932, 1938, 1944, 1949, 1952, 1956, 1959, 1964, + 1968, 1973, 1977, 1982, 1988, 1995, 1996, 2003, 2004, 2012, + 2018, 2024, 2030, 2036, 2042, 2048, 2054, 2060, 2067, 2074, + 2081, 2088, 2095, 2102, 2109, 2116, 2123, 2130, 2137, 2144, + 2151, 2158, 2165, 2172, 2176, 2180, 2183, 2186, 2188, 2190, + 2193, 2197, 2201, 2205, 2209, 2212, 2215, 2218, 2222, 2229, + 2233, 2237, 2240, 2243, 2247, 2252, 2254, 2256, 2261, 2263, + 2268, 2270, 2272, 2277, 2282, 2288, 2294, 2300, 2305, 2310, + 2317, 2318, 2320, 2324, 2328, 2332, 2333, 2335, 2337, 2339, + 2343, 2344, 2347, 2349, 2352, 2356, 2360, 2364, 2368, 2371, + 2375, 2382, 2386, 2390, 2393, 2396, 2398, 2402, 2407, 2412, + 2417, 2423, 2429, 2435, 2440, 2444, 2445, 2448, 2449, 2452, + 2453, 2457, 2460, 2462, 2464, 2466, 2468, 2472, 2474, 2476, + 2478, 2482, 2486, 2490, 2492, 2496, 2500, 2504, 2506, 2508, + 2513, 2516, 2520, 2524, 2526, 2530, 2532, 2536, 2538, 2540, + 2541, 2543, 2545, 2547, 2549, 2551, 2553, 2555, 2557, 2559, + 2561, 2563, 2565, 2567, 2569, 2572, 2574, 2576, 2578, 2580, + 2582, 2584, 2586, 2588, 2590, 2592, 2594, 2596, 2598, 2600, + 2602, 2604, 2606, 2608, 2610, 2612, 2614, 2616, 2618, 2620, + 2622, 2624, 2626, 2628, 2630, 2632, 2634, 2636, 2638, 2640, + 2642, 2644, 2646, 2648, 2650, 2652, 2654, 2656, 2658, 2660, + 2662, 2664, 2666, 2668, 2670, 2672, 2674, 2676, 2678, 2680, + 2682, 2684, 2686, 2688, 2690, 2692, 2694 }; static const short yyrhs[] = { 220, @@ -488,50 +488,50 @@ static const short yyrhs[] = { 220, 0, 318, 0, 327, 0, 330, 0, 329, 0, 325, 0, 334, 0, 307, 0, 364, 0, 337, 0, 347, 0, 349, 0, 350, 0, 351, 0, 356, 0, 358, - 0, 231, 0, 234, 0, 235, 0, 25, 113, 469, - 225, 226, 227, 229, 230, 0, 6, 113, 469, 225, - 226, 227, 229, 230, 0, 41, 113, 469, 0, 120, - 187, 469, 0, 0, 188, 0, 189, 0, 0, 190, - 0, 191, 0, 0, 228, 216, 469, 0, 469, 0, + 0, 231, 0, 234, 0, 235, 0, 25, 113, 467, + 225, 226, 227, 229, 230, 0, 6, 113, 467, 225, + 226, 227, 229, 230, 0, 41, 113, 467, 0, 120, + 187, 467, 0, 0, 188, 0, 189, 0, 0, 190, + 0, 191, 0, 0, 228, 216, 467, 0, 467, 0, 56, 53, 228, 0, 0, 192, 193, 195, 0, 0, - 99, 471, 106, 232, 0, 99, 471, 201, 232, 0, - 99, 102, 123, 233, 0, 99, 72, 355, 0, 468, - 0, 36, 0, 468, 0, 36, 0, 68, 0, 176, - 471, 0, 176, 102, 123, 0, 170, 471, 0, 170, - 102, 123, 0, 6, 101, 455, 387, 237, 0, 4, + 99, 469, 106, 232, 0, 99, 469, 201, 232, 0, + 99, 102, 123, 233, 0, 99, 72, 355, 0, 466, + 0, 36, 0, 466, 0, 36, 0, 68, 0, 176, + 469, 0, 176, 102, 123, 0, 170, 469, 0, 170, + 102, 123, 0, 6, 101, 453, 387, 237, 0, 4, 336, 248, 0, 4, 217, 246, 218, 0, 41, 336, - 471, 0, 6, 336, 471, 99, 36, 254, 0, 6, - 336, 471, 41, 36, 0, 4, 256, 0, 20, 454, - 0, 137, 242, 455, 243, 240, 241, 244, 0, 106, - 0, 50, 0, 468, 0, 179, 0, 180, 0, 134, - 0, 0, 120, 165, 0, 0, 114, 140, 468, 0, - 0, 25, 101, 455, 217, 246, 218, 263, 264, 0, + 469, 0, 6, 336, 469, 99, 36, 254, 0, 6, + 336, 469, 41, 36, 0, 4, 256, 0, 20, 452, + 0, 137, 242, 453, 243, 240, 241, 244, 0, 106, + 0, 50, 0, 466, 0, 179, 0, 180, 0, 134, + 0, 0, 120, 165, 0, 0, 114, 140, 466, 0, + 0, 25, 101, 453, 217, 246, 218, 263, 264, 0, 246, 216, 247, 0, 247, 0, 0, 248, 0, 255, - 0, 471, 406, 249, 0, 250, 0, 0, 250, 251, - 0, 251, 0, 24, 461, 252, 0, 252, 0, 19, + 0, 469, 404, 249, 0, 250, 0, 0, 250, 251, + 0, 251, 0, 24, 459, 252, 0, 252, 0, 19, 217, 258, 218, 0, 36, 254, 0, 77, 79, 0, - 111, 0, 89, 63, 0, 93, 471, 367, 259, 260, - 0, 253, 216, 254, 0, 254, 0, 465, 0, 79, + 111, 0, 89, 63, 0, 93, 469, 367, 259, 260, + 0, 253, 216, 254, 0, 254, 0, 463, 0, 79, 0, 205, 254, 0, 254, 204, 254, 0, 254, 205, 254, 0, 254, 207, 254, 0, 254, 206, 254, 0, 254, 201, 254, 0, 254, 202, 254, 0, 254, 203, 254, 0, 209, 254, 0, 210, 254, 0, 208, 254, - 0, 254, 215, 406, 0, 16, 217, 254, 9, 406, - 218, 0, 217, 254, 218, 0, 462, 217, 218, 0, - 462, 217, 253, 218, 0, 254, 196, 254, 0, 196, + 0, 254, 215, 404, 0, 16, 217, 254, 9, 404, + 218, 0, 217, 254, 218, 0, 460, 217, 218, 0, + 460, 217, 253, 218, 0, 254, 196, 254, 0, 196, 254, 0, 254, 196, 0, 28, 0, 29, 0, 29, - 217, 467, 218, 0, 30, 0, 30, 217, 467, 218, - 0, 31, 0, 113, 0, 24, 461, 256, 0, 256, + 217, 465, 218, 0, 30, 0, 30, 217, 465, 218, + 0, 31, 0, 113, 0, 24, 459, 256, 0, 256, 0, 19, 217, 258, 218, 0, 111, 217, 368, 218, 0, 89, 63, 217, 368, 218, 0, 49, 63, 217, - 368, 218, 93, 471, 367, 259, 260, 0, 257, 216, - 258, 0, 258, 0, 465, 0, 79, 0, 471, 0, + 368, 218, 93, 469, 367, 259, 260, 0, 257, 216, + 258, 0, 258, 0, 463, 0, 79, 0, 469, 0, 205, 258, 0, 258, 204, 258, 0, 258, 205, 258, 0, 258, 207, 258, 0, 258, 206, 258, 0, 258, 201, 258, 0, 258, 202, 258, 0, 258, 203, 258, 0, 209, 258, 0, 210, 258, 0, 208, 258, 0, - 258, 215, 406, 0, 16, 217, 258, 9, 406, 218, - 0, 217, 258, 218, 0, 462, 217, 218, 0, 462, + 258, 215, 404, 0, 16, 217, 258, 9, 404, 218, + 0, 217, 258, 218, 0, 460, 217, 218, 0, 460, 217, 257, 218, 0, 258, 196, 258, 0, 258, 67, 258, 0, 258, 7, 258, 0, 258, 83, 258, 0, 77, 258, 0, 196, 258, 0, 258, 196, 0, 258, @@ -542,215 +542,213 @@ static const short yyrhs[] = { 220, 261, 0, 261, 0, 0, 81, 37, 262, 0, 81, 112, 262, 0, 76, 3, 0, 15, 0, 99, 36, 0, 99, 79, 0, 150, 217, 388, 218, 0, 0, - 186, 201, 162, 0, 0, 25, 101, 455, 266, 9, + 186, 201, 162, 0, 0, 25, 101, 453, 266, 9, 375, 0, 217, 267, 218, 0, 0, 267, 216, 268, - 0, 268, 0, 471, 0, 25, 174, 455, 270, 0, + 0, 268, 0, 469, 0, 25, 174, 453, 270, 0, 270, 271, 0, 0, 135, 274, 0, 138, 0, 148, 274, 0, 158, 274, 0, 159, 274, 0, 177, 274, 0, 273, 0, 274, 0, 199, 0, 205, 199, 0, - 467, 0, 205, 467, 0, 25, 276, 167, 64, 468, - 147, 291, 153, 468, 0, 181, 0, 0, 41, 167, - 64, 468, 0, 25, 125, 461, 279, 280, 81, 455, - 282, 43, 91, 461, 217, 285, 218, 0, 133, 0, + 465, 0, 205, 465, 0, 25, 276, 167, 64, 466, + 147, 291, 153, 466, 0, 181, 0, 0, 41, 167, + 64, 466, 0, 25, 125, 459, 279, 280, 81, 453, + 282, 43, 91, 459, 217, 285, 218, 0, 133, 0, 129, 0, 281, 0, 281, 83, 281, 0, 281, 83, 281, 83, 281, 0, 58, 0, 37, 0, 112, 0, 48, 283, 284, 0, 142, 0, 0, 172, 0, 178, 0, 286, 0, 285, 216, 286, 0, 0, 197, 0, - 199, 0, 468, 0, 194, 0, 41, 125, 461, 81, - 455, 0, 25, 290, 289, 0, 291, 292, 0, 166, - 0, 127, 0, 130, 0, 91, 0, 62, 0, 471, + 199, 0, 466, 0, 194, 0, 41, 125, 459, 81, + 453, 0, 25, 290, 289, 0, 291, 292, 0, 166, + 0, 127, 0, 130, 0, 91, 0, 62, 0, 469, 0, 332, 0, 196, 0, 217, 293, 218, 0, 294, 0, 293, 216, 294, 0, 291, 201, 295, 0, 291, - 0, 36, 201, 295, 0, 471, 0, 331, 0, 272, - 0, 468, 0, 175, 471, 0, 41, 101, 388, 0, + 0, 36, 201, 295, 0, 469, 0, 331, 0, 272, + 0, 466, 0, 175, 469, 0, 41, 101, 388, 0, 41, 174, 388, 0, 46, 298, 299, 300, 0, 160, - 298, 299, 300, 0, 145, 0, 132, 0, 0, 467, - 0, 5, 0, 0, 56, 461, 0, 0, 52, 302, + 298, 299, 300, 0, 145, 0, 132, 0, 0, 465, + 0, 5, 0, 0, 56, 459, 0, 0, 52, 302, 81, 388, 106, 305, 306, 0, 5, 90, 0, 5, 0, 303, 0, 304, 0, 303, 216, 304, 0, 98, 0, 58, 0, 112, 0, 37, 0, 173, 0, 92, - 0, 53, 471, 0, 471, 0, 120, 52, 82, 0, + 0, 53, 469, 0, 469, 0, 120, 52, 82, 0, 0, 94, 302, 81, 388, 50, 305, 0, 25, 309, - 149, 460, 81, 455, 310, 217, 311, 218, 320, 0, - 111, 0, 0, 114, 457, 0, 0, 312, 0, 313, - 0, 312, 216, 314, 0, 314, 0, 462, 217, 389, - 218, 315, 316, 0, 458, 315, 316, 0, 209, 406, - 0, 48, 406, 0, 0, 459, 0, 114, 459, 0, - 0, 144, 149, 460, 402, 0, 43, 168, 464, 0, - 25, 146, 462, 321, 171, 323, 320, 9, 468, 64, - 468, 0, 120, 292, 0, 0, 217, 322, 218, 0, - 217, 218, 0, 470, 0, 322, 216, 470, 0, 324, - 470, 0, 175, 0, 0, 41, 326, 461, 0, 127, - 0, 149, 0, 173, 0, 118, 0, 41, 130, 461, - 328, 0, 461, 0, 206, 0, 41, 146, 462, 321, + 149, 458, 81, 453, 310, 217, 311, 218, 320, 0, + 111, 0, 0, 114, 455, 0, 0, 312, 0, 313, + 0, 312, 216, 314, 0, 314, 0, 460, 217, 389, + 218, 315, 316, 0, 456, 315, 316, 0, 209, 404, + 0, 48, 404, 0, 0, 457, 0, 114, 457, 0, + 0, 144, 149, 458, 400, 0, 43, 168, 462, 0, + 25, 146, 460, 321, 171, 323, 320, 9, 466, 64, + 466, 0, 120, 292, 0, 0, 217, 322, 218, 0, + 217, 218, 0, 468, 0, 322, 216, 468, 0, 324, + 468, 0, 175, 0, 0, 41, 326, 459, 0, 127, + 0, 149, 0, 173, 0, 118, 0, 41, 130, 459, + 328, 0, 459, 0, 206, 0, 41, 146, 460, 321, 0, 41, 166, 331, 217, 333, 218, 0, 196, 0, 332, 0, 204, 0, 205, 0, 206, 0, 207, 0, - 202, 0, 203, 0, 201, 0, 461, 0, 461, 216, - 461, 0, 162, 216, 461, 0, 461, 216, 162, 0, - 6, 101, 455, 387, 169, 336, 335, 106, 461, 0, - 461, 0, 0, 22, 0, 0, 0, 25, 173, 461, - 9, 338, 81, 343, 106, 342, 402, 141, 344, 339, + 202, 0, 203, 0, 201, 0, 459, 0, 459, 216, + 459, 0, 162, 216, 459, 0, 459, 216, 162, 0, + 6, 101, 453, 387, 169, 336, 335, 106, 459, 0, + 459, 0, 0, 22, 0, 0, 0, 25, 173, 459, + 9, 338, 81, 343, 106, 342, 400, 141, 344, 339, 0, 163, 0, 364, 0, 213, 340, 214, 0, 341, 0, 364, 0, 341, 364, 210, 0, 341, 364, 0, - 364, 210, 0, 455, 212, 458, 0, 455, 0, 98, + 364, 210, 0, 453, 212, 456, 0, 453, 0, 98, 0, 112, 0, 37, 0, 58, 0, 151, 0, 0, - 78, 455, 0, 154, 455, 0, 128, 348, 0, 11, + 78, 453, 0, 154, 453, 0, 128, 348, 0, 11, 348, 0, 23, 348, 0, 42, 348, 0, 96, 348, - 0, 121, 0, 108, 0, 0, 25, 118, 461, 9, - 374, 0, 155, 463, 0, 25, 139, 456, 120, 352, - 353, 0, 25, 139, 456, 0, 157, 201, 354, 0, - 0, 185, 201, 355, 0, 0, 468, 0, 36, 0, - 0, 468, 0, 36, 0, 0, 41, 139, 456, 0, - 136, 460, 81, 455, 0, 182, 359, 360, 0, 182, - 359, 360, 455, 361, 0, 183, 0, 0, 131, 0, - 0, 217, 362, 218, 0, 0, 461, 0, 362, 216, - 461, 0, 143, 359, 364, 0, 374, 0, 373, 0, + 0, 121, 0, 108, 0, 0, 25, 118, 459, 9, + 374, 0, 155, 461, 0, 25, 139, 454, 120, 352, + 353, 0, 25, 139, 454, 0, 157, 201, 354, 0, + 0, 185, 201, 355, 0, 0, 466, 0, 36, 0, + 0, 466, 0, 36, 0, 0, 41, 139, 454, 0, + 136, 458, 81, 453, 0, 182, 359, 360, 0, 182, + 359, 360, 453, 361, 0, 183, 0, 0, 131, 0, + 0, 217, 362, 218, 0, 0, 459, 0, 362, 216, + 459, 0, 143, 359, 364, 0, 374, 0, 373, 0, 372, 0, 365, 0, 345, 0, 370, 0, 58, 60, - 455, 367, 366, 0, 115, 217, 452, 218, 0, 98, - 382, 452, 394, 402, 390, 393, 376, 0, 217, 368, - 218, 0, 0, 368, 216, 369, 0, 369, 0, 471, - 434, 0, 37, 50, 455, 402, 0, 156, 380, 455, - 0, 112, 455, 99, 450, 394, 402, 0, 35, 461, - 242, 32, 48, 98, 382, 452, 394, 402, 390, 393, - 376, 383, 0, 98, 382, 452, 379, 394, 402, 390, - 393, 376, 383, 0, 98, 382, 452, 394, 402, 390, - 393, 376, 0, 110, 381, 377, 0, 0, 377, 110, - 381, 378, 0, 378, 0, 98, 382, 452, 394, 402, - 390, 393, 0, 60, 380, 455, 0, 0, 101, 0, - 0, 5, 0, 0, 39, 0, 39, 81, 471, 0, + 453, 367, 366, 0, 115, 217, 450, 218, 0, 98, + 382, 450, 392, 400, 390, 391, 376, 0, 217, 368, + 218, 0, 0, 368, 216, 369, 0, 369, 0, 469, + 432, 0, 37, 50, 453, 400, 0, 156, 380, 453, + 0, 112, 453, 99, 448, 392, 400, 0, 35, 459, + 242, 32, 48, 98, 382, 450, 392, 400, 390, 391, + 376, 383, 0, 98, 382, 450, 379, 392, 400, 390, + 391, 376, 383, 0, 98, 382, 450, 392, 400, 390, + 391, 376, 0, 110, 381, 377, 0, 0, 377, 110, + 381, 378, 0, 378, 0, 98, 382, 450, 392, 400, + 390, 391, 0, 60, 380, 453, 0, 0, 101, 0, + 0, 5, 0, 0, 39, 0, 39, 81, 469, 0, 5, 0, 0, 84, 14, 384, 0, 0, 385, 0, - 384, 216, 385, 0, 471, 386, 0, 471, 212, 471, - 386, 0, 467, 386, 0, 114, 196, 0, 114, 202, - 0, 114, 203, 0, 10, 0, 38, 0, 0, 206, - 0, 0, 389, 0, 461, 0, 389, 216, 461, 0, - 53, 14, 391, 0, 0, 392, 0, 391, 216, 392, - 0, 471, 0, 471, 212, 471, 0, 467, 0, 54, - 430, 0, 0, 50, 217, 403, 397, 62, 403, 399, - 218, 0, 50, 395, 0, 0, 395, 216, 396, 0, - 396, 26, 62, 396, 0, 396, 0, 403, 9, 472, - 0, 403, 471, 0, 403, 0, 74, 397, 0, 51, - 398, 0, 66, 398, 0, 95, 398, 0, 85, 0, - 57, 0, 110, 0, 0, 85, 0, 0, 81, 217, - 430, 218, 0, 114, 217, 400, 218, 0, 0, 401, - 0, 400, 216, 401, 0, 471, 0, 471, 212, 471, - 0, 467, 0, 119, 430, 0, 0, 455, 0, 455, - 206, 0, 213, 214, 405, 0, 213, 467, 214, 405, - 0, 0, 213, 214, 405, 0, 213, 467, 214, 405, - 0, 0, 407, 404, 0, 415, 0, 175, 407, 0, - 408, 0, 420, 0, 410, 0, 409, 0, 194, 0, - 127, 0, 47, 412, 0, 40, 88, 0, 34, 414, - 0, 80, 413, 0, 47, 0, 40, 88, 0, 34, - 0, 80, 0, 217, 467, 218, 0, 0, 217, 467, - 216, 467, 218, 0, 217, 467, 218, 0, 0, 217, - 467, 216, 467, 218, 0, 217, 467, 218, 0, 0, - 416, 217, 467, 218, 0, 416, 0, 18, 417, 418, - 419, 0, 17, 417, 0, 116, 0, 73, 18, 417, - 0, 75, 417, 0, 117, 0, 0, 18, 99, 471, - 0, 0, 21, 471, 0, 0, 421, 0, 103, 422, - 0, 102, 0, 59, 423, 0, 122, 0, 71, 0, - 33, 0, 55, 0, 70, 0, 97, 0, 120, 102, - 123, 0, 0, 421, 0, 122, 106, 71, 0, 33, - 106, 55, 0, 33, 106, 70, 0, 33, 106, 97, - 0, 55, 106, 70, 0, 55, 106, 97, 0, 70, - 106, 97, 0, 0, 430, 0, 79, 0, 217, 426, - 218, 56, 217, 375, 218, 0, 217, 426, 218, 77, - 56, 217, 375, 218, 0, 217, 426, 218, 428, 429, - 217, 375, 218, 0, 217, 426, 218, 428, 217, 375, - 218, 0, 217, 426, 218, 428, 217, 426, 218, 0, - 427, 216, 430, 0, 427, 216, 430, 0, 430, 0, - 196, 0, 202, 0, 201, 0, 203, 0, 204, 0, - 205, 0, 206, 0, 207, 0, 8, 0, 5, 0, - 448, 434, 0, 425, 0, 465, 0, 471, 0, 205, - 430, 0, 430, 204, 430, 0, 430, 205, 430, 0, - 430, 207, 430, 0, 430, 206, 430, 0, 430, 202, - 430, 0, 430, 203, 430, 0, 430, 201, 430, 0, - 209, 430, 0, 210, 430, 0, 208, 430, 0, 430, - 215, 406, 0, 16, 217, 430, 9, 406, 218, 0, - 217, 424, 218, 0, 430, 196, 430, 0, 430, 67, - 430, 0, 430, 77, 67, 430, 0, 196, 430, 0, - 430, 196, 0, 462, 217, 206, 218, 0, 462, 217, - 218, 0, 462, 217, 435, 218, 0, 28, 0, 29, - 0, 29, 217, 467, 218, 0, 30, 0, 30, 217, - 467, 218, 0, 31, 0, 113, 0, 44, 217, 375, - 218, 0, 45, 217, 436, 218, 0, 87, 217, 438, - 218, 0, 100, 217, 440, 218, 0, 109, 217, 13, - 443, 218, 0, 109, 217, 65, 443, 218, 0, 109, - 217, 107, 443, 218, 0, 109, 217, 443, 218, 0, - 430, 152, 0, 430, 61, 79, 0, 430, 164, 0, - 430, 61, 77, 79, 0, 430, 61, 126, 0, 430, - 61, 77, 124, 0, 430, 61, 124, 0, 430, 61, - 77, 126, 0, 430, 12, 433, 7, 433, 0, 430, - 77, 12, 433, 7, 433, 0, 0, 430, 56, 431, - 217, 444, 218, 0, 0, 430, 77, 56, 432, 217, - 446, 218, 0, 430, 196, 217, 375, 218, 0, 430, - 204, 217, 375, 218, 0, 430, 205, 217, 375, 218, - 0, 430, 207, 217, 375, 218, 0, 430, 206, 217, - 375, 218, 0, 430, 202, 217, 375, 218, 0, 430, - 203, 217, 375, 218, 0, 430, 201, 217, 375, 218, - 0, 430, 196, 8, 217, 375, 218, 0, 430, 204, - 8, 217, 375, 218, 0, 430, 205, 8, 217, 375, - 218, 0, 430, 207, 8, 217, 375, 218, 0, 430, - 206, 8, 217, 375, 218, 0, 430, 202, 8, 217, - 375, 218, 0, 430, 203, 8, 217, 375, 218, 0, - 430, 201, 8, 217, 375, 218, 0, 430, 196, 5, - 217, 375, 218, 0, 430, 204, 5, 217, 375, 218, - 0, 430, 205, 5, 217, 375, 218, 0, 430, 207, - 5, 217, 375, 218, 0, 430, 206, 5, 217, 375, - 218, 0, 430, 202, 5, 217, 375, 218, 0, 430, - 203, 5, 217, 375, 218, 0, 430, 201, 5, 217, - 375, 218, 0, 430, 7, 430, 0, 430, 83, 430, - 0, 77, 430, 0, 448, 434, 0, 465, 0, 471, - 0, 205, 433, 0, 433, 204, 433, 0, 433, 205, - 433, 0, 433, 207, 433, 0, 433, 206, 433, 0, - 209, 433, 0, 210, 433, 0, 208, 433, 0, 433, - 215, 406, 0, 16, 217, 433, 9, 406, 218, 0, - 217, 430, 218, 0, 433, 196, 433, 0, 196, 433, - 0, 433, 196, 0, 462, 217, 218, 0, 462, 217, - 435, 218, 0, 28, 0, 29, 0, 29, 217, 467, - 218, 0, 30, 0, 30, 217, 467, 218, 0, 31, - 0, 113, 0, 87, 217, 438, 218, 0, 100, 217, - 440, 218, 0, 109, 217, 13, 443, 218, 0, 109, - 217, 65, 443, 218, 0, 109, 217, 107, 443, 218, - 0, 109, 217, 443, 218, 0, 213, 430, 214, 434, - 0, 213, 430, 209, 430, 214, 434, 0, 0, 424, - 0, 435, 216, 424, 0, 435, 114, 430, 0, 437, - 50, 430, 0, 0, 421, 0, 104, 0, 105, 0, - 439, 56, 439, 0, 0, 448, 434, 0, 465, 0, - 205, 439, 0, 439, 204, 439, 0, 439, 205, 439, - 0, 439, 207, 439, 0, 439, 206, 439, 0, 208, - 439, 0, 439, 215, 406, 0, 16, 217, 439, 9, - 406, 218, 0, 217, 439, 218, 0, 439, 196, 439, - 0, 196, 439, 0, 439, 196, 0, 471, 0, 462, - 217, 218, 0, 462, 217, 435, 218, 0, 87, 217, - 438, 218, 0, 100, 217, 440, 218, 0, 109, 217, - 13, 443, 218, 0, 109, 217, 65, 443, 218, 0, - 109, 217, 107, 443, 218, 0, 109, 217, 443, 218, - 0, 435, 441, 442, 0, 0, 50, 435, 0, 0, - 48, 435, 0, 0, 430, 50, 435, 0, 50, 435, - 0, 435, 0, 375, 0, 445, 0, 465, 0, 445, - 216, 465, 0, 375, 0, 447, 0, 465, 0, 447, - 216, 465, 0, 455, 212, 449, 0, 466, 212, 449, - 0, 458, 0, 449, 212, 458, 0, 449, 212, 206, - 0, 450, 216, 451, 0, 451, 0, 206, 0, 471, - 434, 201, 424, 0, 448, 434, 0, 455, 212, 206, - 0, 452, 216, 453, 0, 453, 0, 424, 9, 472, - 0, 424, 0, 455, 212, 206, 0, 206, 0, 471, - 0, 0, 473, 0, 471, 0, 471, 0, 194, 0, - 471, 0, 194, 0, 471, 0, 471, 0, 471, 0, - 468, 0, 194, 0, 467, 0, 199, 0, 468, 0, - 406, 468, 0, 466, 0, 126, 0, 124, 0, 198, - 0, 197, 0, 195, 0, 194, 0, 471, 0, 411, - 0, 416, 0, 194, 0, 421, 0, 3, 0, 135, - 0, 138, 0, 139, 0, 140, 0, 40, 0, 142, - 0, 185, 0, 146, 0, 148, 0, 149, 0, 63, - 0, 64, 0, 157, 0, 69, 0, 158, 0, 159, - 0, 166, 0, 82, 0, 187, 0, 90, 0, 168, - 0, 172, 0, 177, 0, 178, 0, 102, 0, 104, - 0, 105, 0, 125, 0, 127, 0, 192, 0, 184, - 0, 123, 0, 471, 0, 186, 0, 136, 0, 24, - 0, 26, 0, 49, 0, 53, 0, 155, 0, 84, - 0, 87, 0, 88, 0, 101, 0, 108, 0, 126, - 0, 124, 0, 27, 0, 161, 0 + 384, 216, 385, 0, 428, 386, 0, 114, 196, 0, + 114, 202, 0, 114, 203, 0, 10, 0, 38, 0, + 0, 206, 0, 0, 389, 0, 459, 0, 389, 216, + 459, 0, 53, 14, 433, 0, 0, 54, 428, 0, + 0, 50, 217, 401, 395, 62, 401, 397, 218, 0, + 50, 393, 0, 0, 393, 216, 394, 0, 394, 26, + 62, 394, 0, 394, 0, 401, 9, 470, 0, 401, + 469, 0, 401, 0, 74, 395, 0, 51, 396, 0, + 66, 396, 0, 95, 396, 0, 85, 0, 57, 0, + 110, 0, 0, 85, 0, 0, 81, 217, 428, 218, + 0, 114, 217, 398, 218, 0, 0, 399, 0, 398, + 216, 399, 0, 469, 0, 469, 212, 469, 0, 465, + 0, 119, 428, 0, 0, 453, 0, 453, 206, 0, + 213, 214, 403, 0, 213, 465, 214, 403, 0, 0, + 213, 214, 403, 0, 213, 465, 214, 403, 0, 0, + 405, 402, 0, 413, 0, 175, 405, 0, 406, 0, + 418, 0, 408, 0, 407, 0, 194, 0, 127, 0, + 47, 410, 0, 40, 88, 0, 34, 412, 0, 80, + 411, 0, 47, 0, 40, 88, 0, 34, 0, 80, + 0, 217, 465, 218, 0, 0, 217, 465, 216, 465, + 218, 0, 217, 465, 218, 0, 0, 217, 465, 216, + 465, 218, 0, 217, 465, 218, 0, 0, 414, 217, + 465, 218, 0, 414, 0, 18, 415, 416, 417, 0, + 17, 415, 0, 116, 0, 73, 18, 415, 0, 75, + 415, 0, 117, 0, 0, 18, 99, 469, 0, 0, + 21, 469, 0, 0, 419, 0, 103, 420, 0, 102, + 0, 59, 421, 0, 122, 0, 71, 0, 33, 0, + 55, 0, 70, 0, 97, 0, 120, 102, 123, 0, + 0, 419, 0, 122, 106, 71, 0, 33, 106, 55, + 0, 33, 106, 70, 0, 33, 106, 97, 0, 55, + 106, 70, 0, 55, 106, 97, 0, 70, 106, 97, + 0, 0, 428, 0, 79, 0, 217, 424, 218, 56, + 217, 375, 218, 0, 217, 424, 218, 77, 56, 217, + 375, 218, 0, 217, 424, 218, 426, 427, 217, 375, + 218, 0, 217, 424, 218, 426, 217, 375, 218, 0, + 217, 424, 218, 426, 217, 424, 218, 0, 425, 216, + 428, 0, 425, 216, 428, 0, 428, 0, 196, 0, + 202, 0, 201, 0, 203, 0, 204, 0, 205, 0, + 206, 0, 207, 0, 8, 0, 5, 0, 446, 432, + 0, 423, 0, 463, 0, 469, 0, 205, 428, 0, + 428, 204, 428, 0, 428, 205, 428, 0, 428, 207, + 428, 0, 428, 206, 428, 0, 428, 202, 428, 0, + 428, 203, 428, 0, 428, 201, 428, 0, 209, 428, + 0, 210, 428, 0, 208, 428, 0, 428, 215, 404, + 0, 16, 217, 428, 9, 404, 218, 0, 217, 422, + 218, 0, 428, 196, 428, 0, 428, 67, 428, 0, + 428, 77, 67, 428, 0, 196, 428, 0, 428, 196, + 0, 460, 217, 206, 218, 0, 460, 217, 218, 0, + 460, 217, 433, 218, 0, 28, 0, 29, 0, 29, + 217, 465, 218, 0, 30, 0, 30, 217, 465, 218, + 0, 31, 0, 113, 0, 44, 217, 375, 218, 0, + 45, 217, 434, 218, 0, 87, 217, 436, 218, 0, + 100, 217, 438, 218, 0, 109, 217, 13, 441, 218, + 0, 109, 217, 65, 441, 218, 0, 109, 217, 107, + 441, 218, 0, 109, 217, 441, 218, 0, 428, 152, + 0, 428, 61, 79, 0, 428, 164, 0, 428, 61, + 77, 79, 0, 428, 61, 126, 0, 428, 61, 77, + 124, 0, 428, 61, 124, 0, 428, 61, 77, 126, + 0, 428, 12, 431, 7, 431, 0, 428, 77, 12, + 431, 7, 431, 0, 0, 428, 56, 429, 217, 442, + 218, 0, 0, 428, 77, 56, 430, 217, 444, 218, + 0, 428, 196, 217, 375, 218, 0, 428, 204, 217, + 375, 218, 0, 428, 205, 217, 375, 218, 0, 428, + 207, 217, 375, 218, 0, 428, 206, 217, 375, 218, + 0, 428, 202, 217, 375, 218, 0, 428, 203, 217, + 375, 218, 0, 428, 201, 217, 375, 218, 0, 428, + 196, 8, 217, 375, 218, 0, 428, 204, 8, 217, + 375, 218, 0, 428, 205, 8, 217, 375, 218, 0, + 428, 207, 8, 217, 375, 218, 0, 428, 206, 8, + 217, 375, 218, 0, 428, 202, 8, 217, 375, 218, + 0, 428, 203, 8, 217, 375, 218, 0, 428, 201, + 8, 217, 375, 218, 0, 428, 196, 5, 217, 375, + 218, 0, 428, 204, 5, 217, 375, 218, 0, 428, + 205, 5, 217, 375, 218, 0, 428, 207, 5, 217, + 375, 218, 0, 428, 206, 5, 217, 375, 218, 0, + 428, 202, 5, 217, 375, 218, 0, 428, 203, 5, + 217, 375, 218, 0, 428, 201, 5, 217, 375, 218, + 0, 428, 7, 428, 0, 428, 83, 428, 0, 77, + 428, 0, 446, 432, 0, 463, 0, 469, 0, 205, + 431, 0, 431, 204, 431, 0, 431, 205, 431, 0, + 431, 207, 431, 0, 431, 206, 431, 0, 209, 431, + 0, 210, 431, 0, 208, 431, 0, 431, 215, 404, + 0, 16, 217, 431, 9, 404, 218, 0, 217, 428, + 218, 0, 431, 196, 431, 0, 196, 431, 0, 431, + 196, 0, 460, 217, 218, 0, 460, 217, 433, 218, + 0, 28, 0, 29, 0, 29, 217, 465, 218, 0, + 30, 0, 30, 217, 465, 218, 0, 31, 0, 113, + 0, 87, 217, 436, 218, 0, 100, 217, 438, 218, + 0, 109, 217, 13, 441, 218, 0, 109, 217, 65, + 441, 218, 0, 109, 217, 107, 441, 218, 0, 109, + 217, 441, 218, 0, 213, 428, 214, 432, 0, 213, + 428, 209, 428, 214, 432, 0, 0, 422, 0, 433, + 216, 422, 0, 433, 114, 428, 0, 435, 50, 428, + 0, 0, 419, 0, 104, 0, 105, 0, 437, 56, + 437, 0, 0, 446, 432, 0, 463, 0, 205, 437, + 0, 437, 204, 437, 0, 437, 205, 437, 0, 437, + 207, 437, 0, 437, 206, 437, 0, 208, 437, 0, + 437, 215, 404, 0, 16, 217, 437, 9, 404, 218, + 0, 217, 437, 218, 0, 437, 196, 437, 0, 196, + 437, 0, 437, 196, 0, 469, 0, 460, 217, 218, + 0, 460, 217, 433, 218, 0, 87, 217, 436, 218, + 0, 100, 217, 438, 218, 0, 109, 217, 13, 441, + 218, 0, 109, 217, 65, 441, 218, 0, 109, 217, + 107, 441, 218, 0, 109, 217, 441, 218, 0, 433, + 439, 440, 0, 0, 50, 433, 0, 0, 48, 433, + 0, 0, 428, 50, 433, 0, 50, 433, 0, 433, + 0, 375, 0, 443, 0, 463, 0, 443, 216, 463, + 0, 375, 0, 445, 0, 463, 0, 445, 216, 463, + 0, 453, 212, 447, 0, 464, 212, 447, 0, 456, + 0, 447, 212, 456, 0, 447, 212, 206, 0, 448, + 216, 449, 0, 449, 0, 206, 0, 469, 432, 201, + 422, 0, 446, 432, 0, 453, 212, 206, 0, 450, + 216, 451, 0, 451, 0, 422, 9, 470, 0, 422, + 0, 453, 212, 206, 0, 206, 0, 469, 0, 0, + 471, 0, 469, 0, 469, 0, 194, 0, 469, 0, + 194, 0, 469, 0, 469, 0, 469, 0, 466, 0, + 194, 0, 465, 0, 199, 0, 466, 0, 404, 466, + 0, 464, 0, 126, 0, 124, 0, 198, 0, 197, + 0, 195, 0, 194, 0, 469, 0, 409, 0, 414, + 0, 194, 0, 419, 0, 3, 0, 135, 0, 138, + 0, 139, 0, 140, 0, 40, 0, 142, 0, 185, + 0, 146, 0, 148, 0, 149, 0, 63, 0, 64, + 0, 157, 0, 69, 0, 158, 0, 159, 0, 166, + 0, 82, 0, 187, 0, 90, 0, 168, 0, 172, + 0, 177, 0, 178, 0, 102, 0, 104, 0, 105, + 0, 125, 0, 127, 0, 192, 0, 184, 0, 123, + 0, 469, 0, 186, 0, 136, 0, 24, 0, 26, + 0, 49, 0, 53, 0, 155, 0, 84, 0, 87, + 0, 88, 0, 101, 0, 108, 0, 126, 0, 124, + 0, 27, 0, 161, 0 }; #endif @@ -802,47 +800,46 @@ static const short yyrline[] = { 0, 2265, 2276, 2292, 2293, 2296, 2299, 2303, 2320, 2335, 2360, 2381, 2422, 2441, 2458, 2464, 2468, 2474, 2478, 2494, 2495, 2498, 2499, 2502, 2503, 2506, 2507, 2508, 2509, 2512, 2513, - 2516, 2517, 2520, 2528, 2536, 2546, 2547, 2548, 2549, 2550, - 2551, 2561, 2562, 2565, 2567, 2569, 2573, 2574, 2577, 2578, - 2581, 2589, 2597, 2607, 2611, 2623, 2628, 2629, 2632, 2634, - 2636, 2640, 2646, 2652, 2660, 2661, 2663, 2665, 2667, 2669, - 2671, 2673, 2677, 2678, 2681, 2682, 2683, 2686, 2687, 2690, - 2698, 2706, 2716, 2717, 2720, 2727, 2735, 2737, 2739, 2743, - 2745, 2747, 2762, 2784, 2785, 2792, 2793, 2794, 2797, 2805, - 2806, 2815, 2821, 2826, 2832, 2840, 2842, 2844, 2846, 2850, - 2861, 2867, 2874, 2879, 2885, 2893, 2899, 2912, 2939, 2958, - 2978, 2979, 2980, 2981, 2984, 2985, 2988, 2989, 2992, 2993, - 2996, 3002, 3009, 3015, 3023, 3024, 3025, 3026, 3027, 3028, - 3031, 3032, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, - 3043, 3053, 3055, 3072, 3082, 3092, 3105, 3118, 3124, 3130, - 3134, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3150, - 3151, 3162, 3167, 3169, 3171, 3179, 3181, 3183, 3185, 3187, - 3189, 3191, 3193, 3195, 3197, 3199, 3201, 3217, 3233, 3235, - 3237, 3239, 3241, 3243, 3245, 3257, 3264, 3271, 3286, 3301, - 3323, 3338, 3360, 3367, 3374, 3384, 3391, 3398, 3406, 3413, - 3420, 3427, 3434, 3436, 3438, 3440, 3447, 3457, 3467, 3477, - 3487, 3493, 3499, 3499, 3513, 3513, 3527, 3537, 3547, 3557, - 3567, 3577, 3587, 3597, 3607, 3617, 3627, 3637, 3647, 3657, - 3667, 3677, 3687, 3697, 3707, 3717, 3727, 3737, 3747, 3757, - 3767, 3769, 3771, 3781, 3786, 3788, 3796, 3798, 3800, 3802, - 3804, 3806, 3808, 3810, 3812, 3828, 3844, 3846, 3848, 3850, - 3852, 3859, 3866, 3881, 3896, 3918, 3933, 3955, 3962, 3969, - 3976, 3984, 3991, 3998, 4005, 4014, 4021, 4028, 4032, 4034, - 4036, 4040, 4047, 4051, 4052, 4053, 4056, 4058, 4062, 4067, - 4069, 4071, 4073, 4075, 4077, 4079, 4081, 4097, 4113, 4115, - 4117, 4119, 4121, 4129, 4136, 4143, 4150, 4158, 4165, 4172, - 4179, 4188, 4192, 4196, 4198, 4207, 4209, 4213, 4215, 4217, - 4221, 4227, 4231, 4233, 4239, 4245, 4249, 4251, 4257, 4265, - 4275, 4277, 4279, 4290, 4292, 4294, 4309, 4316, 4323, 4342, - 4344, 4349, 4356, 4363, 4375, 4389, 4390, 4393, 4398, 4410, - 4411, 4412, 4413, 4414, 4420, 4421, 4423, 4424, 4429, 4436, - 4443, 4450, 4458, 4460, 4470, 4482, 4489, 4490, 4491, 4498, - 4500, 4502, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, - 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, - 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, - 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4560, 4561, 4562, - 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, - 4573, 4574, 4577, 4584 + 2516, 2517, 2520, 2528, 2529, 2530, 2531, 2532, 2533, 2543, + 2544, 2547, 2549, 2551, 2555, 2556, 2559, 2563, 2575, 2580, + 2581, 2584, 2586, 2588, 2592, 2598, 2604, 2612, 2613, 2615, + 2617, 2619, 2621, 2623, 2625, 2629, 2630, 2633, 2634, 2635, + 2638, 2639, 2642, 2657, 2664, 2673, 2674, 2677, 2684, 2692, + 2694, 2696, 2700, 2702, 2704, 2719, 2741, 2742, 2749, 2750, + 2751, 2754, 2762, 2763, 2772, 2778, 2783, 2789, 2797, 2799, + 2801, 2803, 2807, 2818, 2824, 2831, 2836, 2842, 2850, 2856, + 2869, 2896, 2915, 2935, 2936, 2937, 2938, 2941, 2942, 2945, + 2946, 2949, 2950, 2953, 2959, 2966, 2972, 2980, 2981, 2982, + 2983, 2984, 2985, 2988, 2989, 2992, 2993, 2994, 2995, 2996, + 2997, 2998, 2999, 3000, 3010, 3012, 3029, 3039, 3049, 3062, + 3075, 3081, 3087, 3091, 3097, 3098, 3099, 3100, 3101, 3102, + 3103, 3104, 3107, 3108, 3119, 3124, 3126, 3128, 3136, 3138, + 3140, 3142, 3144, 3146, 3148, 3150, 3152, 3154, 3156, 3158, + 3174, 3190, 3192, 3194, 3196, 3198, 3200, 3202, 3214, 3221, + 3228, 3243, 3258, 3280, 3295, 3317, 3324, 3331, 3341, 3348, + 3355, 3363, 3370, 3377, 3384, 3391, 3393, 3395, 3397, 3404, + 3414, 3424, 3434, 3444, 3450, 3456, 3456, 3470, 3470, 3484, + 3494, 3504, 3514, 3524, 3534, 3544, 3554, 3564, 3574, 3584, + 3594, 3604, 3614, 3624, 3634, 3644, 3654, 3664, 3674, 3684, + 3694, 3704, 3714, 3724, 3726, 3728, 3738, 3743, 3745, 3753, + 3755, 3757, 3759, 3761, 3763, 3765, 3767, 3769, 3785, 3801, + 3803, 3805, 3807, 3809, 3816, 3823, 3838, 3853, 3875, 3890, + 3912, 3919, 3926, 3933, 3941, 3948, 3955, 3962, 3971, 3978, + 3985, 3989, 3991, 3993, 3997, 4004, 4008, 4009, 4010, 4013, + 4015, 4019, 4024, 4026, 4028, 4030, 4032, 4034, 4036, 4038, + 4054, 4070, 4072, 4074, 4076, 4078, 4086, 4093, 4100, 4107, + 4115, 4122, 4129, 4136, 4145, 4149, 4153, 4155, 4164, 4166, + 4170, 4172, 4174, 4178, 4184, 4188, 4190, 4196, 4202, 4206, + 4208, 4214, 4222, 4232, 4234, 4236, 4247, 4249, 4251, 4266, + 4273, 4280, 4299, 4301, 4306, 4313, 4320, 4332, 4346, 4347, + 4350, 4355, 4367, 4368, 4369, 4370, 4371, 4377, 4378, 4380, + 4381, 4386, 4393, 4400, 4407, 4415, 4417, 4427, 4439, 4446, + 4447, 4448, 4455, 4457, 4459, 4470, 4471, 4472, 4473, 4474, + 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, + 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, + 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, + 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, + 4527, 4528, 4529, 4530, 4531, 4534, 4541 }; #endif @@ -904,20 +901,19 @@ static const char * const yytname[] = { "$","error","$undefined.","ACTION", "columnList","columnElem","DeleteStmt","LockStmt","UpdateStmt","CursorStmt", "SelectStmt","SubSelect","union_clause","select_list","SubUnion","result","opt_table", "opt_union","opt_unique","sort_clause","sortby_list","sortby","OptUseOp","opt_inh_star", -"relation_name_list","name_list","group_clause","groupby_list","groupby","having_clause", -"from_clause","from_list","from_val","join_expr","join_outer","join_spec","join_list", -"join_using","where_clause","relation_expr","opt_array_bounds","nest_array_bounds", -"Typename","Array","Generic","generic","Numeric","numeric","opt_float","opt_numeric", -"opt_decimal","Character","character","opt_varying","opt_charset","opt_collate", -"Datetime","datetime","opt_timezone","opt_interval","a_expr_or_null","row_expr", -"row_descriptor","row_list","row_op","sub_type","a_expr","@2","@3","b_expr", -"opt_indirection","expr_list","extract_list","extract_arg","position_list","position_expr", -"substr_list","substr_from","substr_for","trim_list","in_expr","in_expr_nodes", -"not_in_expr","not_in_expr_nodes","attr","attrs","res_target_list","res_target_el", -"res_target_list2","res_target_el2","opt_id","relation_name","database_name", -"access_method","attr_name","class","index_name","name","func_name","file_name", -"recipe_name","AexprConst","ParamNo","Iconst","Sconst","UserId","TypeId","ColId", -"ColLabel","SpecialRuleRelation", NULL +"relation_name_list","name_list","group_clause","having_clause","from_clause", +"from_list","from_val","join_expr","join_outer","join_spec","join_list","join_using", +"where_clause","relation_expr","opt_array_bounds","nest_array_bounds","Typename", +"Array","Generic","generic","Numeric","numeric","opt_float","opt_numeric","opt_decimal", +"Character","character","opt_varying","opt_charset","opt_collate","Datetime", +"datetime","opt_timezone","opt_interval","a_expr_or_null","row_expr","row_descriptor", +"row_list","row_op","sub_type","a_expr","@2","@3","b_expr","opt_indirection", +"expr_list","extract_list","extract_arg","position_list","position_expr","substr_list", +"substr_from","substr_for","trim_list","in_expr","in_expr_nodes","not_in_expr", +"not_in_expr_nodes","attr","attrs","res_target_list","res_target_el","res_target_list2", +"res_target_el2","opt_id","relation_name","database_name","access_method","attr_name", +"class","index_name","name","func_name","file_name","recipe_name","AexprConst", +"ParamNo","Iconst","Sconst","UserId","TypeId","ColId","ColLabel","SpecialRuleRelation", NULL }; #endif @@ -967,47 +963,46 @@ static const short yyr1[] = { 0, 366, 366, 367, 367, 368, 368, 369, 370, 371, 372, 373, 374, 375, 376, 376, 377, 377, 378, 379, 379, 380, 380, 381, 381, 382, 382, 382, 382, 383, 383, - 384, 384, 385, 385, 385, 386, 386, 386, 386, 386, - 386, 387, 387, 388, 389, 389, 390, 390, 391, 391, - 392, 392, 392, 393, 393, 394, 394, 394, 395, 395, - 395, 396, 396, 396, 397, 397, 397, 397, 397, 397, - 397, 397, 398, 398, 399, 399, 399, 400, 400, 401, - 401, 401, 402, 402, 403, 403, 404, 404, 404, 405, - 405, 405, 406, 406, 406, 407, 407, 407, 408, 409, - 409, 410, 410, 410, 410, 411, 411, 411, 411, 412, - 412, 413, 413, 413, 414, 414, 414, 415, 415, 416, - 416, 416, 416, 416, 417, 417, 418, 418, 419, 419, - 420, 420, 420, 420, 421, 421, 421, 421, 421, 421, - 422, 422, 423, 423, 423, 423, 423, 423, 423, 423, - 423, 424, 424, 425, 425, 425, 425, 425, 426, 427, - 427, 428, 428, 428, 428, 428, 428, 428, 428, 429, - 429, 430, 430, 430, 430, 430, 430, 430, 430, 430, - 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, - 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, - 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, - 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, - 430, 430, 431, 430, 432, 430, 430, 430, 430, 430, - 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, - 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, - 430, 430, 430, 433, 433, 433, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 434, 434, 434, 435, 435, - 435, 436, 436, 437, 437, 437, 438, 438, 439, 439, - 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, - 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, - 439, 440, 440, 441, 441, 442, 442, 443, 443, 443, - 444, 444, 445, 445, 446, 446, 447, 447, 448, 448, - 449, 449, 449, 450, 450, 450, 451, 451, 451, 452, - 452, 453, 453, 453, 453, 454, 454, 455, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 465, - 465, 465, 465, 465, 465, 466, 467, 468, 469, 470, - 470, 470, 471, 471, 471, 471, 471, 471, 471, 471, - 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, - 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, - 471, 471, 471, 471, 471, 471, 471, 472, 472, 472, - 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, - 472, 472, 473, 473 + 384, 384, 385, 386, 386, 386, 386, 386, 386, 387, + 387, 388, 389, 389, 390, 390, 391, 391, 392, 392, + 392, 393, 393, 393, 394, 394, 394, 395, 395, 395, + 395, 395, 395, 395, 395, 396, 396, 397, 397, 397, + 398, 398, 399, 399, 399, 400, 400, 401, 401, 402, + 402, 402, 403, 403, 403, 404, 404, 404, 405, 405, + 405, 406, 407, 407, 408, 408, 408, 408, 409, 409, + 409, 409, 410, 410, 411, 411, 411, 412, 412, 412, + 413, 413, 414, 414, 414, 414, 414, 415, 415, 416, + 416, 417, 417, 418, 418, 418, 418, 419, 419, 419, + 419, 419, 419, 420, 420, 421, 421, 421, 421, 421, + 421, 421, 421, 421, 422, 422, 423, 423, 423, 423, + 423, 424, 425, 425, 426, 426, 426, 426, 426, 426, + 426, 426, 427, 427, 428, 428, 428, 428, 428, 428, + 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 428, 428, 428, 429, 428, 430, 428, 428, + 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 428, 428, 428, 428, 431, 431, 431, 431, + 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, + 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, + 431, 431, 431, 431, 431, 431, 431, 431, 432, 432, + 432, 433, 433, 433, 434, 434, 435, 435, 435, 436, + 436, 437, 437, 437, 437, 437, 437, 437, 437, 437, + 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, + 437, 437, 437, 437, 438, 438, 439, 439, 440, 440, + 441, 441, 441, 442, 442, 443, 443, 444, 444, 445, + 445, 446, 446, 447, 447, 447, 448, 448, 448, 449, + 449, 449, 450, 450, 451, 451, 451, 451, 452, 452, + 453, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 463, 463, 463, 463, 463, 463, 464, 465, + 466, 467, 468, 468, 468, 469, 469, 469, 469, 469, + 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, + 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, + 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, + 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 471, 471 }; static const short yyr2[] = { 0, @@ -1056,51 +1051,50 @@ static const short yyr2[] = { 0, 4, 8, 3, 0, 3, 1, 2, 4, 3, 6, 14, 10, 8, 3, 0, 4, 1, 7, 3, 0, 1, 0, 1, 0, 1, 3, 1, 0, 3, 0, - 1, 3, 2, 4, 2, 2, 2, 2, 1, 1, - 0, 1, 0, 1, 1, 3, 3, 0, 1, 3, - 1, 3, 1, 2, 0, 8, 2, 0, 3, 4, - 1, 3, 2, 1, 2, 2, 2, 2, 1, 1, - 1, 0, 1, 0, 4, 4, 0, 1, 3, 1, - 3, 1, 2, 0, 1, 2, 3, 4, 0, 3, - 4, 0, 2, 1, 2, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 1, 2, 1, 1, 3, - 0, 5, 3, 0, 5, 3, 0, 4, 1, 4, - 2, 1, 3, 2, 1, 0, 3, 0, 2, 0, - 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, - 3, 0, 1, 3, 3, 3, 3, 3, 3, 3, - 0, 1, 1, 7, 8, 8, 7, 7, 3, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 1, 1, 2, 3, 3, 3, 3, - 3, 3, 3, 2, 2, 2, 3, 6, 3, 3, - 3, 4, 2, 2, 4, 3, 4, 1, 1, 4, - 1, 4, 1, 1, 4, 4, 4, 4, 5, 5, - 5, 4, 2, 3, 2, 4, 3, 4, 3, 4, - 5, 6, 0, 6, 0, 7, 5, 5, 5, 5, - 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, + 1, 3, 2, 2, 2, 2, 1, 1, 0, 1, + 0, 1, 1, 3, 3, 0, 2, 0, 8, 2, + 0, 3, 4, 1, 3, 2, 1, 2, 2, 2, + 2, 1, 1, 1, 0, 1, 0, 4, 4, 0, + 1, 3, 1, 3, 1, 2, 0, 1, 2, 3, + 4, 0, 3, 4, 0, 2, 1, 2, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, + 1, 1, 3, 0, 5, 3, 0, 5, 3, 0, + 4, 1, 4, 2, 1, 3, 2, 1, 0, 3, + 0, 2, 0, 1, 2, 1, 2, 1, 1, 1, + 1, 1, 1, 3, 0, 1, 3, 3, 3, 3, + 3, 3, 3, 0, 1, 1, 7, 8, 8, 7, + 7, 3, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 1, 1, 1, 2, 3, + 3, 3, 3, 3, 3, 3, 2, 2, 2, 3, + 6, 3, 3, 3, 4, 2, 2, 4, 3, 4, + 1, 1, 4, 1, 4, 1, 1, 4, 4, 4, + 4, 5, 5, 5, 4, 2, 3, 2, 4, 3, + 4, 3, 4, 5, 6, 0, 6, 0, 7, 5, + 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 3, 3, 2, 2, 1, 1, 2, 3, 3, 3, - 3, 2, 2, 2, 3, 6, 3, 3, 2, 2, - 3, 4, 1, 1, 4, 1, 4, 1, 1, 4, - 4, 5, 5, 5, 4, 4, 6, 0, 1, 3, - 3, 3, 0, 1, 1, 1, 3, 0, 2, 1, - 2, 3, 3, 3, 3, 2, 3, 6, 3, 3, - 2, 2, 1, 3, 4, 4, 4, 5, 5, 5, - 4, 3, 0, 2, 0, 2, 0, 3, 2, 1, - 1, 1, 1, 3, 1, 1, 1, 3, 3, 3, - 1, 3, 3, 3, 1, 1, 4, 2, 3, 3, - 1, 3, 1, 3, 1, 1, 0, 1, 1, 1, + 6, 6, 6, 3, 3, 2, 2, 1, 1, 2, + 3, 3, 3, 3, 2, 2, 2, 3, 6, 3, + 3, 2, 2, 3, 4, 1, 1, 4, 1, 4, + 1, 1, 4, 4, 5, 5, 5, 4, 4, 6, + 0, 1, 3, 3, 3, 0, 1, 1, 1, 3, + 0, 2, 1, 2, 3, 3, 3, 3, 2, 3, + 6, 3, 3, 2, 2, 1, 3, 4, 4, 4, + 5, 5, 5, 4, 3, 0, 2, 0, 2, 0, + 3, 2, 1, 1, 1, 1, 3, 1, 1, 1, + 3, 3, 3, 1, 3, 3, 3, 1, 1, 4, + 2, 3, 3, 1, 3, 1, 3, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1 }; static const short yydefact[] = { 0, - 0, 386, 777, 386, 228, 0, 0, 0, 386, 0, + 0, 386, 770, 386, 228, 0, 0, 0, 386, 0, 279, 0, 0, 0, 0, 386, 448, 0, 0, 386, 0, 93, 406, 0, 0, 0, 442, 279, 0, 0, 406, 1, 2, 15, 7, 21, 45, 46, 47, 6, @@ -1108,109 +1102,109 @@ static const short yydefact[] = { 0, 18, 24, 25, 36, 26, 22, 30, 29, 34, 31, 33, 32, 35, 38, 418, 27, 39, 40, 41, 42, 43, 16, 44, 23, 37, 417, 419, 28, 416, 415, - 414, 0, 0, 385, 384, 380, 805, 557, 810, 558, - 816, 817, 819, 559, 556, 823, 825, 560, 830, 831, - 832, 555, 837, 833, 834, 806, 807, 808, 809, 811, - 813, 814, 815, 818, 820, 821, 822, 826, 827, 828, - 829, 836, 812, 824, 835, 803, 804, 85, 776, 381, + 414, 0, 0, 385, 384, 380, 798, 550, 803, 551, + 809, 810, 812, 552, 549, 816, 818, 553, 823, 824, + 825, 548, 830, 826, 827, 799, 800, 801, 802, 804, + 806, 807, 808, 811, 813, 814, 815, 819, 820, 821, + 822, 829, 805, 817, 828, 796, 797, 85, 769, 381, 0, 303, 0, 0, 0, 255, 256, 0, 0, 254, - 0, 0, 227, 0, 0, 0, 93, 785, 0, 0, + 0, 0, 227, 0, 0, 0, 93, 778, 0, 0, 0, 335, 0, 332, 0, 0, 0, 333, 0, 0, 334, 0, 0, 382, 0, 278, 277, 282, 287, 294, - 292, 291, 293, 295, 0, 288, 289, 0, 853, 854, - 377, 779, 778, 0, 383, 447, 445, 0, 400, 830, - 0, 0, 379, 0, 784, 92, 0, 405, 0, 0, - 378, 798, 388, 787, 441, 0, 282, 830, 76, 830, - 74, 408, 4, 5, 463, 799, 52, 207, 52, 0, - 0, 390, 780, 0, 786, 0, 213, 0, 258, 257, + 292, 291, 293, 295, 0, 288, 289, 0, 846, 847, + 377, 772, 771, 0, 383, 447, 445, 0, 400, 823, + 0, 0, 379, 0, 777, 92, 0, 405, 0, 0, + 378, 791, 388, 780, 441, 0, 282, 823, 76, 823, + 74, 408, 4, 5, 461, 792, 52, 207, 52, 0, + 0, 390, 773, 0, 779, 0, 213, 0, 258, 257, 261, 349, 347, 348, 343, 344, 345, 346, 252, 0, - 260, 259, 0, 0, 504, 273, 464, 465, 50, 0, - 0, 401, 0, 341, 0, 342, 0, 274, 331, 788, - 320, 281, 797, 284, 280, 286, 0, 0, 424, 0, - 0, 0, 546, 546, 618, 619, 621, 623, 537, 810, - 0, 0, 531, 571, 0, 546, 0, 573, 534, 0, - 0, 830, 562, 0, 624, 542, 795, 794, 834, 0, - 803, 0, 796, 790, 0, 775, 0, 0, 0, 0, - 0, 509, 516, 519, 518, 514, 539, 517, 804, 773, - 593, 572, 708, 440, 771, 0, 0, 594, 793, 789, - 791, 595, 399, 68, 398, 0, 0, 0, 0, 0, - 95, 413, 504, 429, 284, 77, 75, 407, 403, 3, - 462, 0, 0, 55, 101, 0, 55, 0, 232, 231, + 260, 259, 0, 0, 497, 273, 462, 463, 50, 0, + 0, 401, 0, 341, 0, 342, 0, 274, 331, 781, + 320, 281, 790, 284, 280, 286, 0, 0, 424, 0, + 0, 0, 539, 539, 611, 612, 614, 616, 530, 803, + 0, 0, 524, 564, 0, 539, 0, 566, 527, 0, + 0, 823, 555, 0, 617, 535, 788, 787, 827, 0, + 796, 0, 789, 783, 0, 768, 0, 0, 0, 0, + 0, 502, 509, 512, 511, 507, 532, 510, 797, 766, + 586, 565, 701, 440, 764, 0, 0, 587, 786, 782, + 784, 588, 399, 68, 398, 0, 0, 0, 0, 0, + 95, 413, 497, 429, 284, 77, 75, 407, 403, 3, + 460, 0, 0, 55, 101, 0, 55, 0, 232, 231, 0, 392, 0, 0, 359, 211, 0, 0, 253, 0, 0, 0, 428, 0, 0, 338, 336, 337, 339, 0, 229, 0, 275, 0, 290, 0, 0, 0, 446, 0, - 545, 541, 548, 0, 0, 0, 524, 523, 0, 713, - 0, 522, 557, 558, 559, 555, 563, 554, 546, 544, - 673, 0, 0, 525, 718, 743, 0, 552, 0, 0, - 553, 521, 520, 515, 551, 613, 596, 606, 604, 605, - 0, 0, 0, 572, 792, 0, 513, 0, 0, 0, - 0, 643, 0, 0, 0, 0, 633, 635, 614, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 592, 442, - 0, 478, 0, 0, 0, 72, 73, 67, 71, 70, - 65, 69, 66, 766, 708, 478, 765, 0, 0, 708, + 538, 534, 541, 0, 0, 0, 517, 516, 0, 706, + 0, 515, 550, 551, 552, 548, 556, 547, 539, 537, + 666, 0, 0, 518, 711, 736, 0, 545, 0, 0, + 546, 514, 513, 508, 544, 606, 589, 599, 597, 598, + 0, 0, 0, 565, 785, 0, 506, 0, 0, 0, + 0, 636, 0, 0, 0, 0, 626, 628, 607, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 585, 442, + 0, 471, 0, 0, 0, 72, 73, 67, 71, 70, + 65, 69, 66, 759, 701, 471, 758, 0, 0, 701, 402, 0, 0, 319, 276, 410, 358, 358, 358, 358, 78, 0, 53, 54, 58, 0, 0, 0, 0, 0, 0, 100, 102, 103, 148, 0, 209, 210, 0, 58, - 387, 237, 236, 238, 0, 233, 0, 394, 528, 810, - 526, 529, 325, 0, 801, 802, 326, 800, 330, 0, + 387, 237, 236, 238, 0, 233, 0, 394, 521, 803, + 519, 522, 325, 0, 794, 795, 326, 793, 330, 0, 0, 215, 0, 0, 0, 0, 212, 0, 0, 266, - 0, 263, 0, 0, 503, 466, 251, 0, 0, 350, - 283, 0, 0, 426, 708, 448, 0, 420, 0, 0, - 0, 550, 0, 0, 0, 448, 0, 715, 716, 714, - 0, 0, 0, 0, 0, 0, 0, 543, 0, 0, + 0, 263, 0, 0, 496, 464, 251, 0, 0, 350, + 283, 0, 0, 426, 701, 448, 0, 420, 0, 0, + 0, 543, 0, 0, 0, 448, 0, 708, 709, 707, + 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 708, 0, 720, 733, 709, 745, 0, 0, 0, 0, - 0, 0, 572, 750, 0, 609, 0, 0, 512, 0, - 0, 841, 842, 843, 844, 846, 847, 848, 849, 850, - 852, 851, 840, 845, 839, 838, 772, 671, 0, 693, - 694, 696, 698, 0, 0, 0, 699, 0, 0, 0, - 0, 0, 0, 0, 708, 0, 675, 676, 0, 0, - 634, 639, 637, 611, 0, 645, 0, 672, 0, 0, - 0, 610, 0, 0, 0, 603, 0, 0, 0, 601, - 0, 0, 0, 602, 0, 0, 0, 597, 0, 0, - 0, 598, 0, 0, 0, 600, 0, 0, 0, 599, - 607, 0, 0, 770, 0, 504, 774, 759, 761, 782, - 0, 616, 0, 760, 768, 0, 504, 0, 0, 94, + 701, 0, 713, 726, 702, 738, 0, 0, 0, 0, + 0, 0, 565, 743, 0, 602, 0, 0, 505, 0, + 0, 834, 835, 836, 837, 839, 840, 841, 842, 843, + 845, 844, 833, 838, 832, 831, 765, 664, 0, 686, + 687, 689, 691, 0, 0, 0, 692, 0, 0, 0, + 0, 0, 0, 0, 701, 0, 668, 669, 0, 0, + 627, 632, 630, 604, 0, 638, 0, 665, 0, 0, + 0, 603, 0, 0, 0, 596, 0, 0, 0, 594, + 0, 0, 0, 595, 0, 0, 0, 590, 0, 0, + 0, 591, 0, 0, 0, 593, 0, 0, 0, 592, + 600, 0, 0, 763, 0, 497, 767, 752, 754, 775, + 0, 609, 0, 753, 761, 0, 497, 0, 0, 94, 88, 87, 0, 0, 404, 357, 101, 84, 0, 0, 0, 356, 51, 56, 57, 62, 0, 0, 0, 0, 0, 0, 202, 0, 206, 106, 205, 62, 0, 0, - 397, 0, 389, 527, 0, 324, 329, 323, 0, 0, + 397, 0, 389, 520, 0, 324, 329, 323, 0, 0, 0, 214, 224, 216, 217, 218, 219, 0, 0, 0, 0, 262, 306, 448, 0, 340, 0, 0, 296, 300, 298, 0, 423, 427, 0, 0, 301, 0, 0, 0, - 540, 620, 622, 0, 536, 0, 625, 626, 0, 530, - 565, 566, 567, 568, 569, 570, 564, 0, 533, 0, - 718, 743, 0, 731, 721, 726, 0, 627, 0, 732, - 0, 0, 0, 0, 0, 719, 0, 0, 0, 0, - 747, 628, 561, 0, 749, 0, 0, 0, 632, 0, - 0, 582, 584, 583, 585, 586, 587, 588, 589, 0, - 579, 0, 507, 512, 538, 0, 0, 0, 718, 743, - 0, 689, 677, 684, 682, 683, 0, 0, 690, 0, - 0, 0, 0, 0, 674, 0, 0, 636, 638, 640, - 0, 0, 612, 0, 0, 0, 0, 0, 0, 0, + 533, 613, 615, 0, 529, 0, 618, 619, 0, 523, + 558, 559, 560, 561, 562, 563, 557, 0, 526, 0, + 711, 736, 0, 724, 714, 719, 0, 620, 0, 725, + 0, 0, 0, 0, 0, 712, 0, 0, 0, 0, + 740, 621, 554, 0, 742, 0, 0, 0, 625, 0, + 0, 575, 577, 576, 578, 579, 580, 581, 582, 0, + 572, 0, 500, 505, 531, 0, 0, 0, 711, 736, + 0, 682, 670, 677, 675, 676, 0, 0, 683, 0, + 0, 0, 0, 0, 667, 0, 0, 629, 631, 633, + 0, 0, 605, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 708, 439, - 0, 477, 481, 484, 505, 468, 0, 615, 617, 764, - 430, 769, 0, 90, 91, 97, 89, 0, 411, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 701, 439, + 0, 470, 474, 477, 498, 466, 0, 608, 610, 757, + 430, 762, 0, 90, 91, 97, 89, 0, 411, 0, 0, 79, 0, 81, 0, 355, 0, 64, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 155, - 793, 157, 147, 0, 0, 0, 99, 0, 204, 208, + 786, 157, 147, 0, 0, 0, 99, 0, 204, 208, 210, 0, 0, 0, 0, 0, 0, 114, 104, 105, 108, 110, 64, 0, 234, 396, 391, 395, 400, 327, 0, 0, 328, 373, 374, 371, 372, 0, 225, 0, 0, 222, 344, 270, 220, 221, 267, 269, 271, 268, 265, 264, 0, 0, 0, 352, 353, 351, 297, 0, - 285, 425, 478, 0, 0, 547, 549, 0, 478, 712, - 0, 0, 0, 0, 0, 0, 0, 0, 729, 717, - 730, 722, 723, 725, 724, 727, 734, 0, 744, 711, - 710, 0, 742, 629, 630, 631, 748, 0, 0, 591, - 590, 0, 0, 512, 0, 508, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 687, 641, 688, 678, 679, - 681, 680, 685, 691, 0, 751, 0, 752, 753, 0, - 0, 0, 0, 647, 0, 0, 654, 0, 0, 652, - 0, 0, 653, 0, 0, 648, 0, 0, 649, 0, - 0, 651, 0, 0, 650, 0, 706, 492, 0, 0, - 0, 483, 506, 0, 475, 763, 762, 767, 0, 86, + 285, 425, 471, 0, 0, 540, 542, 0, 471, 705, + 0, 0, 0, 0, 0, 0, 0, 0, 722, 710, + 723, 715, 716, 718, 717, 720, 727, 0, 737, 704, + 703, 0, 735, 622, 623, 624, 741, 0, 0, 584, + 583, 0, 0, 505, 0, 501, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 680, 634, 681, 671, 672, + 674, 673, 678, 684, 0, 744, 0, 745, 746, 0, + 0, 0, 0, 640, 0, 0, 647, 0, 0, 645, + 0, 0, 646, 0, 0, 641, 0, 0, 642, 0, + 0, 644, 0, 0, 643, 0, 699, 485, 0, 0, + 0, 476, 499, 0, 468, 756, 755, 760, 0, 86, 0, 409, 80, 0, 0, 0, 0, 0, 49, 0, 178, 179, 158, 168, 166, 167, 0, 0, 0, 0, 0, 181, 183, 180, 0, 0, 0, 0, 0, 0, @@ -1218,623 +1212,593 @@ static const short yydefact[] = { 0, 0, 0, 0, 140, 141, 143, 145, 120, 146, 0, 0, 0, 0, 0, 0, 112, 0, 119, 113, 115, 424, 107, 48, 241, 0, 0, 393, 322, 0, 0, - 0, 272, 223, 781, 305, 0, 478, 0, 504, 421, - 608, 535, 504, 532, 0, 736, 737, 0, 0, 0, - 741, 735, 746, 0, 0, 0, 0, 581, 0, 510, - 512, 0, 695, 697, 700, 701, 0, 0, 0, 705, - 692, 644, 0, 642, 755, 0, 756, 757, 663, 655, - 670, 662, 668, 660, 669, 661, 664, 656, 665, 657, - 667, 659, 666, 658, 708, 494, 490, 494, 492, 489, - 494, 491, 0, 479, 0, 482, 0, 0, 435, 0, + 0, 272, 223, 774, 305, 0, 471, 0, 497, 421, + 601, 528, 497, 525, 0, 729, 730, 0, 0, 0, + 734, 728, 739, 0, 0, 0, 0, 574, 0, 503, + 505, 0, 688, 690, 693, 694, 0, 0, 0, 698, + 685, 637, 0, 635, 748, 0, 749, 750, 656, 648, + 663, 655, 661, 653, 662, 654, 657, 649, 658, 650, + 660, 652, 659, 651, 701, 487, 483, 487, 485, 482, + 487, 484, 0, 472, 0, 475, 0, 0, 435, 0, 412, 83, 0, 354, 61, 60, 0, 0, 171, 176, 0, 182, 186, 185, 175, 177, 174, 163, 164, 165, 159, 160, 162, 161, 169, 172, 0, 154, 0, 151, 0, 0, 0, 109, 0, 0, 0, 138, 121, 131, 129, 130, 0, 139, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 191, 240, 0, 0, 235, 0, 504, - 370, 226, 0, 307, 308, 310, 315, 0, 782, 504, - 299, 468, 468, 0, 738, 739, 740, 574, 0, 577, - 578, 0, 511, 0, 702, 703, 704, 754, 646, 0, - 707, 493, 486, 487, 485, 488, 0, 480, 467, 469, - 473, 471, 474, 444, 450, 96, 82, 0, 63, 0, - 184, 188, 187, 0, 173, 0, 201, 203, 111, 0, - 0, 0, 134, 137, 126, 127, 128, 122, 123, 125, - 124, 132, 135, 0, 118, 0, 194, 242, 243, 239, - 0, 0, 0, 0, 323, 0, 0, 0, 318, 0, - 468, 475, 475, 728, 575, 576, 686, 758, 497, 0, - 0, 443, 0, 0, 432, 59, 0, 153, 424, 0, - 142, 144, 0, 136, 189, 190, 0, 116, 193, 0, - 321, 376, 369, 302, 309, 314, 313, 0, 783, 312, - 316, 0, 475, 435, 435, 0, 0, 0, 470, 472, - 448, 434, 437, 0, 170, 191, 0, 117, 0, 0, - 192, 246, 375, 0, 317, 315, 435, 422, 433, 0, - 0, 476, 0, 444, 449, 451, 461, 461, 194, 133, - 198, 0, 0, 195, 196, 250, 247, 248, 0, 244, - 249, 361, 0, 360, 362, 318, 450, 0, 0, 498, - 502, 500, 478, 0, 0, 459, 460, 0, 455, 0, + 0, 0, 0, 191, 240, 0, 0, 235, 0, 497, + 370, 226, 0, 307, 308, 310, 315, 0, 775, 497, + 299, 466, 466, 0, 731, 732, 733, 567, 0, 570, + 571, 0, 504, 0, 695, 696, 697, 747, 639, 0, + 700, 486, 479, 480, 478, 481, 0, 473, 465, 467, + 444, 450, 96, 82, 0, 63, 0, 184, 188, 187, + 0, 173, 0, 201, 203, 111, 0, 0, 0, 134, + 137, 126, 127, 128, 122, 123, 125, 124, 132, 135, + 0, 118, 0, 194, 242, 243, 239, 0, 0, 0, + 0, 323, 0, 0, 0, 318, 0, 466, 468, 468, + 721, 568, 569, 679, 751, 490, 443, 0, 0, 432, + 59, 0, 153, 424, 0, 142, 144, 0, 136, 189, + 190, 0, 116, 193, 0, 321, 376, 369, 302, 309, + 314, 313, 0, 776, 312, 316, 0, 468, 435, 435, + 0, 0, 0, 448, 434, 437, 0, 170, 191, 0, + 117, 0, 0, 192, 246, 375, 0, 317, 315, 435, + 422, 433, 0, 0, 469, 0, 444, 449, 451, 459, + 194, 133, 198, 0, 0, 195, 196, 250, 247, 248, + 0, 244, 249, 361, 0, 360, 362, 318, 450, 0, + 0, 491, 495, 493, 471, 0, 0, 457, 458, 0, 453, 152, 197, 199, 200, 0, 230, 0, 364, 365, - 311, 431, 495, 0, 496, 0, 504, 436, 452, 456, - 457, 458, 461, 245, 363, 367, 368, 499, 501, 468, - 454, 366, 475, 438, 0, 0, 0 + 311, 431, 488, 0, 489, 0, 497, 436, 452, 454, + 455, 456, 245, 363, 367, 368, 492, 494, 466, 366, + 468, 438, 0, 0, 0 }; -static const short yydefgoto[] = { 1555, +static const short yydefgoto[] = { 1543, 32, 33, 34, 35, 36, 354, 495, 726, 1265, 928, 1119, 37, 471, 468, 38, 39, 40, 491, 41, 42, 713, 916, 197, 483, 1110, 43, 501, 502, 503, 959, - 960, 961, 962, 1394, 1166, 504, 505, 1287, 938, 1397, - 1438, 1439, 1494, 949, 1150, 44, 356, 506, 507, 45, + 960, 961, 962, 1391, 1166, 504, 505, 1287, 938, 1394, + 1433, 1434, 1486, 949, 1150, 44, 356, 506, 507, 45, 366, 537, 984, 985, 986, 46, 144, 47, 48, 361, - 515, 516, 1175, 1316, 1400, 1499, 1500, 49, 50, 239, + 515, 516, 1175, 1316, 1397, 1491, 1492, 49, 50, 239, 145, 540, 369, 541, 542, 987, 51, 52, 168, 264, 383, 53, 175, 176, 177, 770, 1001, 54, 55, 146, - 994, 1323, 1324, 1325, 1326, 1409, 1450, 56, 57, 58, + 994, 1323, 1324, 1325, 1326, 1406, 1445, 56, 57, 58, 972, 364, 524, 748, 749, 59, 163, 60, 377, 61, - 62, 988, 241, 549, 63, 925, 719, 64, 530, 1504, - 1528, 1529, 1320, 978, 1474, 65, 66, 67, 86, 68, + 62, 988, 241, 549, 63, 925, 719, 64, 530, 1496, + 1518, 1519, 1320, 978, 1467, 65, 66, 67, 86, 68, 69, 70, 518, 743, 967, 334, 71, 72, 73, 199, 349, 715, 918, 74, 75, 76, 558, 387, 553, 554, - 77, 78, 79, 80, 81, 567, 1365, 1462, 1463, 462, - 206, 1423, 188, 1425, 1485, 1486, 1519, 352, 246, 247, - 1105, 1359, 1360, 1259, 696, 902, 903, 1253, 1353, 1458, - 1509, 1510, 373, 904, 437, 843, 311, 312, 313, 314, - 315, 525, 402, 414, 397, 316, 317, 392, 562, 781, - 318, 319, 418, 408, 595, 321, 432, 433, 840, 1043, - 322, 649, 872, 644, 459, 604, 571, 572, 589, 590, - 597, 821, 1033, 605, 1067, 1068, 1226, 1227, 323, 698, - 476, 477, 324, 325, 128, 412, 222, 1185, 699, 1451, - 194, 248, 327, 203, 261, 328, 329, 330, 331, 217, - 527, 332, 627, 183 + 77, 78, 79, 80, 81, 567, 1362, 1455, 1456, 462, + 206, 1418, 188, 1420, 1478, 1479, 1511, 352, 246, 247, + 1105, 1259, 696, 902, 903, 1253, 1353, 1453, 1501, 1502, + 373, 904, 437, 843, 311, 312, 313, 314, 315, 525, + 402, 414, 397, 316, 317, 392, 562, 781, 318, 319, + 418, 408, 595, 321, 432, 433, 840, 1043, 322, 649, + 872, 644, 459, 604, 571, 572, 589, 590, 597, 821, + 1033, 605, 1067, 1068, 1226, 1227, 323, 698, 476, 477, + 324, 325, 128, 412, 222, 1185, 699, 1446, 194, 248, + 327, 203, 261, 328, 329, 330, 331, 217, 527, 332, + 627, 183 }; -static const short yypact[] = { 12019, - 269, 22, 11470, 22, 2959, 11470, 7, 1689, 22, -75, - 138, 384, 91, 10708, 384, 22, 101, 10962, 10708, 22, - 11470, 46, 28, 41, 10708, 98, 246, 138, 11597, 11724, - 28, 12019, 113,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +static const short yypact[] = { 11941, + 238, -20, 11392, -20, 1427, 11392, 52, 2004, -20, 3, + 106, 161, 88, 10630, 161, -20, 169, 10884, 10630, -20, + 11392, 46, 13, 100, 10630, 153, 263, 106, 11519, 11646, + 13, 11941, 212,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 10708, 194,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 10630, 240,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 10708,-32768, 194, 11470, 11470,-32768,-32768, 11470, 11470,-32768, - 11470, 10708,-32768, 195, 9223, 245, 46,-32768, 10708, 11470, - 194,-32768, 11470,-32768, 11470, 11470, 11470,-32768, 1080, 338, --32768, 11470, 11470,-32768, 216,-32768,-32768, 26, 341,-32768, --32768,-32768,-32768,-32768, 351, 223,-32768, 10708,-32768,-32768, --32768,-32768,-32768, 354,-32768,-32768, 362, 4719, 18, 347, - -38, 374,-32768, 400,-32768,-32768, 10708,-32768, 764, 11470, --32768,-32768,-32768,-32768,-32768, 10708, 26, 376,-32768, 403, --32768, 364, 332,-32768, 339,-32768, 424, 331, 424, 552, - 72, 453,-32768, 369,-32768, 572,-32768, 526,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 383, --32768,-32768, 11470, 575, 495,-32768, 412,-32768,-32768, 550, - 9516,-32768, 369,-32768, 447,-32768, 98,-32768,-32768,-32768, --32768,-32768,-32768, 611,-32768,-32768, 11470, 386, 471, 11470, - 11470, 472, 554, 554,-32768, 481, 482,-32768, 489, 607, - 490, 493, 496, 279, 705, 554, 7124,-32768, 509, 515, - 516, 67, 617, 524,-32768,-32768,-32768,-32768, 71, 1585, - 81, 7124,-32768,-32768, 7124,-32768, 7124, 7124, 7124, 6569, - 98, 540,-32768,-32768,-32768,-32768, 537,-32768, 129, 751, --32768, 8831, 553, -2,-32768, 551, 558,-32768, 560,-32768, --32768, 62,-32768,-32768,-32768, 33, 51, 51, 9376, 10708, - 659,-32768, 495,-32768, 611,-32768,-32768,-32768, 10708,-32768, --32768, 47, 593, -67, 10581, 791, -67, 706,-32768,-32768, - 66, 646, 3958, 634,-32768, 507, 98, 9070,-32768, 731, - 765, 7124,-32768, 11470, 10708,-32768,-32768,-32768,-32768, 11089, --32768, 11470,-32768, 713,-32768, 11470, 106, 776,-32768, 7124, --32768,-32768, 816, 638, 638, 638,-32768,-32768, 739, 630, - 638,-32768, 732, 746, 747, 757,-32768,-32768, 554,-32768, - 1465, 633, 638,-32768, 7989, 6569, 745,-32768, 4138, 607, --32768,-32768,-32768,-32768,-32768, 406, 649, 649, 649, 649, - 647, 652, 656, 2146,-32768, 203,-32768, 638, 10313, 7124, - 7297,-32768, 266, 7124, 60, 7124,-32768,-32768, 6754, 4904, - 5089, 5274, 5459, 5644, 5829, 6014, 2766, 7124,-32768, 246, - 4719, 823, 9643, 3218, 11470,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 553, -9,-32768, 665, 560, 317, --32768, 721, 27,-32768,-32768, 670, 37, 866, 866, 866, --32768, 194,-32768,-32768, 123, 672, 11470, 827, 829, 677, - 157,-32768,-32768,-32768,-32768, 204,-32768, 2766, 739, 123, --32768,-32768,-32768,-32768, 814, 817, 696, 714,-32768, 818, --32768,-32768,-32768, 298,-32768,-32768,-32768,-32768, 727, 824, - 68,-32768, 68, 68, 68, 68,-32768, 760, 707, 708, - 302,-32768, 10708, 813, 8831,-32768,-32768, 697, 702, 709, --32768, 10835, 306,-32768, 553, 101, 711,-32768, 10835, 2984, - 825, 901, 717, 722, 404, 101, 725,-32768,-32768,-32768, - 734, 873, 737, 308, 32, 842, 878,-32768, 11470, 428, - 740, 744, 748, 753, 7989, 7989, 7989, 7989, 761, 222, - 553, 754,-32768, 62,-32768, -4, 763, 839, 6199, 6569, - 6199, 6199, 8763, -54, 766,-32768, 391, 7124, 750, 768, - 767,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 1465, 758,-32768, - 770, 771,-32768, 772, 778, 780,-32768, 7297, 7297, 7297, - 7297, 7297, 7124, 54, 553, 782,-32768, 62, 783, 166, --32768,-32768,-32768, 854, 7297,-32768, 7124, 1392, 784, 786, - 6384, 406, 788, 790, 6384, 1891, 799, 800, 6384, 587, - 802, 803, 6384, 587, 804, 805, 6384, 326, 807, 811, - 6384, 326, 815, 830, 6384, 649, 840, 845, 6384, 649, --32768, 2556, 10708,-32768, 8657, 495,-32768, 752,-32768,-32768, - 812,-32768, -49, 752,-32768, 10024, 495, 9770, 779,-32768, --32768,-32768, 312, 11470,-32768,-32768, 10581,-32768, 11470, 11470, - 11470, 11470,-32768,-32768,-32768, 969, 8335, 88, 846, 847, - 11470, 10581, 881, 11470,-32768, 461,-32768, 969, 10708, 66, - 56, 834,-32768,-32768, 10440,-32768,-32768, 924, 10440, 388, - 638,-32768,-32768,-32768,-32768,-32768,-32768, 9223, 8917, 8917, - 9070,-32768, 942, 101, 11470,-32768, 11216, 11470,-32768, 945, --32768, 11470,-32768,-32768, 4719, 4719,-32768, 2766, 11470, 11470, --32768,-32768,-32768, 638,-32768, 4719,-32768,-32768, 7124,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 638,-32768, 7989, - 7989, 6569, 4336, 297, 851, 851, 741,-32768, 7989, 8162, - 7989, 7989, 7989, 7989, 2766,-32768, 3415, 6569, 7124, 6569, - 1020,-32768,-32768, 853, -54, 856, 858, 6569,-32768, 855, - 1021,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 39, - 2398, 219,-32768, 750,-32768, 7297, 638, 638, 7989, 6569, - 4534, 787, 870, 870, 870, 870, 1261, 7297, 7470, 7297, - 7297, 7297, 7297, 2766,-32768, 3612, 11851,-32768,-32768,-32768, - 92, 871, 854, 739, 739, 869, 739, 739, 876, 739, - 739, 882, 739, 739, 889, 739, 739, 891, 739, 739, - 893, 739, 739, 894, 739, 739, 897, 7124, 553,-32768, - 10708, 883, 1063, 11343, 910, 1069, 9897,-32768,-32768,-32768, --32768,-32768, 6569,-32768,-32768, 1009,-32768, 431,-32768, 435, - 2766,-32768, 21,-32768, 1018,-32768, 1073, 938, 922, 8335, --32768, 8335, 8335, 8335, 8335, 8335, 8335, 1781, 923,-32768, --32768, 925,-32768, 11470, 11470, 478,-32768, 926, 958,-32768, --32768, 929, 11470, 7643, 1068, 1086, 11470,-32768,-32768, 461, --32768,-32768, 938, 1102, 1070,-32768,-32768,-32768, 18,-32768, - 383, 1142,-32768,-32768,-32768,-32768,-32768, 1046,-32768, 1002, - 11470,-32768, 392,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 962, 947, 4719,-32768,-32768,-32768,-32768, 1114, --32768,-32768, 2, 486, 949,-32768,-32768, 950, 2, 8831, - 951, 104, 953, 954, 6199, 6199, 6199, 955,-32768, 899, - 297, 340, 340, 851, 851,-32768,-32768, -48, -54, 8831, --32768, 6569,-32768,-32768,-32768,-32768, -54, 739, 959,-32768, --32768, 6939, 965, 750, 961,-32768, 191, 966, 968, 970, - 973, 6199, 6199, 6199, 975,-32768, 914, 787, 345, 345, - 870, 870,-32768,-32768, -44,-32768, 976, 971,-32768, 7297, - 11851, 977, 978,-32768, 980, 981,-32768, 982, 984,-32768, - 986, 987,-32768, 990, 991,-32768, 994, 998,-32768, 1000, - 1001,-32768, 1005, 1006,-32768, 8675,-32768, 664, 10708, 1130, - 10313,-32768,-32768, 1206, 1172,-32768,-32768,-32768, 1091,-32768, - 11470,-32768,-32768, 1196, 1197, 11470, 194, 1043,-32768, 8335, - 1567, 762, 1023, 1023, 1023, 1023, 1860, 8335, 287, 8335, - 8335,-32768,-32768, 8508, 8335, 8335, 8335, 8335, 8335, 8335, - 8335, 2766,-32768, 2826, 504, 529,-32768, 11470, 1038,-32768, - 8335, 598, 1024,-32768, 1025, 1026,-32768,-32768,-32768, 7643, - 7643, 7643, 7643, 7643, 7643, 1060, 1028,-32768,-32768,-32768, - 471,-32768,-32768, 1098, 1203, 66,-32768,-32768, 98, 10708, - 98,-32768,-32768,-32768,-32768, 11470, 2, 1165, 495,-32768, --32768,-32768, 495,-32768, 2766,-32768,-32768, 1030, 1031, 1033, --32768,-32768, -54, 1035, 739, 1039, 1040, 8831, 739,-32768, - 750, 2766,-32768,-32768,-32768,-32768, 1041, 1053, 1056,-32768, --32768,-32768, 11911, 914,-32768, 1059, 1074,-32768,-32768,-32768, + 10630,-32768, 240, 11392, 11392,-32768,-32768, 11392, 11392,-32768, + 11392, 10630,-32768, 272, 9145, 299, 46,-32768, 10630, 11392, + 240,-32768, 11392,-32768, 11392, 11392, 11392,-32768, 800, 389, +-32768, 11392, 11392,-32768, 262,-32768,-32768, 19, 381,-32768, +-32768,-32768,-32768,-32768, 380, 256,-32768, 10630,-32768,-32768, +-32768,-32768,-32768, 398,-32768,-32768, 411, 4809, 25, 376, + -25, 407,-32768, 429,-32768,-32768, 10630,-32768, 269, 11392, +-32768,-32768,-32768,-32768,-32768, 10630, 19, 396,-32768, 405, +-32768, 402, 337,-32768, 332,-32768, 428, 334, 428, 554, + 149, 437,-32768, 350,-32768, 559,-32768, 500,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 358, +-32768,-32768, 11392, 545, 484,-32768, 388,-32768,-32768, 526, + 9438,-32768, 350,-32768, 392,-32768, 153,-32768,-32768,-32768, +-32768,-32768,-32768, 560,-32768,-32768, 11392, 93, 403, 11392, + 11392, 408, 517, 517,-32768, 440, 461,-32768, 465, 566, + 467, 471, 481, 228, 625, 517, 7214,-32768, 487, 491, + 492, -117, 593, 509,-32768,-32768,-32768,-32768, 90, 2128, + 116, 7214,-32768,-32768, 7214,-32768, 7214, 7214, 7214, 6659, + 153, 514,-32768,-32768,-32768,-32768, 513,-32768, 119, 666, +-32768, 8753, 531, -2,-32768, 522, 523,-32768, 541,-32768, +-32768, 118,-32768,-32768,-32768, 16, 28, 28, 9298, 10630, + 639,-32768, 484,-32768, 560,-32768,-32768,-32768, 10630,-32768, +-32768, 49, 573, 120, 10503, 670, 120, 665,-32768,-32768, + 163, 610, 4048, 604,-32768, 548, 153, 8992,-32768, 697, + 735, 7214,-32768, 11392, 10630,-32768,-32768,-32768,-32768, 11011, +-32768, 11392,-32768, 678,-32768, 11392, -16, 736,-32768, 7214, +-32768,-32768, 776, 599, 599, 599,-32768,-32768, 701, 590, + 599,-32768, 694, 698, 699, 706,-32768,-32768, 517,-32768, + 1768, 591, 599,-32768, 8079, 6659, 711,-32768, 4228, 566, +-32768,-32768,-32768,-32768,-32768, 1060, 600, 600, 600, 600, + 601, 603, 602, 1829,-32768, 65,-32768, 599, 10235, 7214, + 7387,-32768, 391, 7214, 122, 7214,-32768,-32768, 6844, 4994, + 5179, 5364, 5549, 5734, 5919, 6104, 3003, 7214,-32768, 263, + 4809, 767, 9565, 3135, 11392,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 531, -14,-32768, 611, 541, 252, +-32768, 657, 27,-32768,-32768, 608, 54, 805, 805, 805, +-32768, 240,-32768,-32768, 208, 614, 11392, 770, 778, 628, + -125,-32768,-32768,-32768,-32768, 170,-32768, 3003, 701, 208, +-32768,-32768,-32768,-32768, 766, 765, 651, 668,-32768, 774, +-32768,-32768,-32768, 195,-32768,-32768,-32768,-32768, 679, 782, + 110,-32768, 110, 110, 110, 110,-32768, 717, 664, 667, + 219,-32768, 10630, 768, 8753,-32768,-32768, 654, 653, 659, +-32768, 10757, 259,-32768, 531, 169, 661,-32768, 10757, 2403, + 781, 862, 671, 672, 279, 169, 675,-32768,-32768,-32768, + 681, 846, 688, 348, 10, 810, 837,-32768, 11392, 371, + 693, 695, 696, 702, 8079, 8079, 8079, 8079, 700, 466, + 531, 703,-32768, 118,-32768, 12, 704, 792, 6289, 6659, + 6289, 6289, 2865, -43, 707,-32768, 633, 7214, 708, 710, + 718,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1768, 709,-32768, + 720, 722,-32768, 723, 726, 727,-32768, 7387, 7387, 7387, + 7387, 7387, 7214, 26, 531, 728,-32768, 118, 730, 160, +-32768,-32768,-32768, 1406, 7387,-32768, 7214, 2229, 731, 732, + 6474, 1060, 739, 741, 6474, 586, 742, 750, 6474, 1508, + 752, 753, 6474, 1508, 754, 755, 6474, 210, 758, 762, + 6474, 210, 763, 764, 6474, 600, 773, 780, 6474, 600, +-32768, 2623, 10630,-32768, 2751, 484,-32768, 771,-32768,-32768, + 769,-32768, -60, 771,-32768, 9946, 484, 9692, 734,-32768, +-32768,-32768, 190, 11392,-32768,-32768, 10503,-32768, 11392, 11392, + 11392, 11392,-32768,-32768,-32768, 926, 8425, 38, 793, 799, + 11392, 10503, 834, 11392,-32768, 330,-32768, 926, 10630, 163, + 34, 791,-32768,-32768, 10362,-32768,-32768, 873, 10362, 189, + 599,-32768,-32768,-32768,-32768,-32768,-32768, 9145, 8839, 8839, + 8992,-32768, 884, 169, 11392,-32768, 11138, 11392,-32768, 879, +-32768, 11392,-32768,-32768, 4809, 4809,-32768, 3003, 11392, 11392, +-32768,-32768,-32768, 599,-32768, 4809,-32768,-32768, 7214,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 599,-32768, 8079, + 8079, 6659, 4426, 444, 804, 804, 905,-32768, 8079, 8252, + 8079, 8079, 8079, 8079, 3003,-32768, 3332, 6659, 7214, 6659, + 972,-32768,-32768, 803, -43, 811, 812, 6659,-32768, 814, + 978,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 43, + 1857, 141,-32768, 708,-32768, 7387, 599, 599, 8079, 6659, + 4624, 878, 820, 820, 820, 820, 390, 7387, 7560, 7387, + 7387, 7387, 7387, 3003,-32768, 3529, 11773,-32768,-32768,-32768, + 186, 827, 1406, 701, 701, 828, 701, 701, 829, 701, + 701, 830, 701, 701, 838, 701, 701, 839, 701, 701, + 840, 701, 701, 841, 701, 701, 842, 7214, 531,-32768, + 10630, 847, 1019, 11265, 848, 999, 9819,-32768,-32768,-32768, +-32768,-32768, 6659,-32768,-32768, 950,-32768, 399,-32768, 458, + 3003,-32768, 56,-32768, 956,-32768, 1016, 881, 854, 8425, +-32768, 8425, 8425, 8425, 8425, 8425, 8425, 426, 858,-32768, +-32768, 861,-32768, 11392, 11392, 475,-32768, 863, 893,-32768, +-32768, 877, 11392, 7733, 1018, 1032, 11392,-32768,-32768, 330, +-32768,-32768, 881, 1051, 1021,-32768,-32768,-32768, 25,-32768, + 358, 1093,-32768,-32768,-32768,-32768,-32768, 1000,-32768, 952, + 11392,-32768, 347,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 913, 897, 4809,-32768,-32768,-32768,-32768, 1063, +-32768,-32768, -6, 504, 898,-32768,-32768, 900, -6, 8753, + 901, 354, 904, 906, 6289, 6289, 6289, 908,-32768, 1035, + 444, 237, 237, 804, 804,-32768,-32768, -55, -43, 8753, +-32768, 6659,-32768,-32768,-32768,-32768, -43, 701, 922,-32768, +-32768, 7029, 923, 708, 916,-32768, 366, 925, 928, 929, + 938, 6289, 6289, 6289, 946,-32768, 1067, 878, 328, 328, + 820, 820,-32768,-32768, -54,-32768, 947, 954,-32768, 7387, + 11773, 953, 955,-32768, 957, 958,-32768, 961, 962,-32768, + 966, 969,-32768, 973, 975,-32768, 976, 977,-32768, 980, + 987,-32768, 988, 989,-32768, 8652,-32768, 843, 10630, 1106, + 10235,-32768,-32768, 1158, 1136,-32768,-32768,-32768, 1068,-32768, + 11392,-32768,-32768, 1175, 1178, 11392, 240, 1023,-32768, 8425, + 1291, 1081, 1002, 1002, 1002, 1002, 759, 8425, 406, 8425, + 8425,-32768,-32768, 8598, 8425, 8425, 8425, 8425, 8425, 8425, + 8425, 3003,-32768, 3875, 505, 521,-32768, 11392, 1022,-32768, + 8425, 370, 1003,-32768, 1005, 1009,-32768,-32768,-32768, 7733, + 7733, 7733, 7733, 7733, 7733, 1312, 1011,-32768,-32768,-32768, + 403,-32768,-32768, 1077, 1187, 163,-32768,-32768, 153, 10630, + 153,-32768,-32768,-32768,-32768, 11392, -6, 1150, 484,-32768, +-32768,-32768, 484,-32768, 3003,-32768,-32768, 1017, 1028, 1030, +-32768,-32768, -43, 1031, 701, 1033, 1036, 8753, 701,-32768, + 708, 3003,-32768,-32768,-32768,-32768, 1039, 1040, 1041,-32768, +-32768,-32768, 11833, 1067,-32768, 1043, 1020,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 553, 1194,-32768, 1194, 664,-32768, - 1194,-32768, 1226,-32768, 10708,-32768, 10164, 7124, 1179, 98, --32768,-32768, 7643,-32768, 1077,-32768, 1099, 808,-32768, 1567, - 192,-32768,-32768,-32768, 373, 29, 762, 1567, 877, 877, - 409, 409, 1023, 1023,-32768,-32768, 532, 2167, 1202,-32768, - 1078, 1135, 2072,-32768, 7643, 638, 638, 974, 1083, 1083, - 1083, 1083, 678, 7816, 7643, 7643, 7643, 7643, 7643, 7643, - 7643, 2766, 3785, 1230,-32768, 24, 1209,-32768, 1247, 495, - 1100,-32768, 1095, 1103,-32768,-32768, 1, 1097, 925, 495, --32768, 1069, 1069, 1106,-32768,-32768,-32768,-32768, 1107,-32768, --32768, 1108,-32768, 1111,-32768,-32768,-32768,-32768,-32768, 11911, --32768,-32768,-32768,-32768,-32768,-32768, 10708,-32768, 1104,-32768, --32768, 1109, 8831, 1311, 1234,-32768, 1060, 194,-32768, 2766, --32768,-32768,-32768, 8335,-32768, 11470,-32768,-32768,-32768, 152, - 1113, 1115,-32768, 974, 1060, 454, 454, 426, 426, 1083, - 1083,-32768,-32768, 555, 1060, 93, 1251,-32768,-32768,-32768, - 11470, 98, 1193, 11470, 924, 11470, 2766, 2766, -36, 11470, - 1069, 1172, 1172,-32768,-32768,-32768,-32768,-32768, 168, 10164, - 11470,-32768, 1238, 1326,-32768,-32768, 1123, 2167, 471, 2766, --32768,-32768, 7643,-32768,-32768,-32768, 80,-32768, 1251, 1128, --32768, 1195,-32768,-32768,-32768,-32768,-32768, 1153,-32768,-32768, --32768, 600, 1172, 1179, 1179, 1131, 1132, 1133,-32768,-32768, - 101, 1240,-32768, 10164,-32768, 1230, 1134, 1060, 89, 89, --32768, 264,-32768, 13,-32768, 1, 1179,-32768,-32768, 7124, - 10164,-32768, 4719, 1311, 1137,-32768, 57, 35, 1251,-32768, --32768, 1352, 40,-32768,-32768,-32768,-32768,-32768, 609,-32768, --32768,-32768, 764,-32768,-32768, -36, 1234, 1372, 615,-32768, --32768, 1145, 2, 1238, 10164,-32768,-32768, 372,-32768, 11470, --32768,-32768,-32768,-32768,-32768, 264,-32768, 1144, 764, 1149, --32768,-32768,-32768, 10164,-32768, 11470, 495,-32768,-32768,-32768, --32768,-32768, 57,-32768,-32768, 1150,-32768,-32768,-32768, 1069, --32768,-32768, 1172,-32768, 1361, 1362,-32768 +-32768,-32768,-32768,-32768, 531, 1183,-32768, 1183, 843,-32768, + 1183,-32768, 1208,-32768, 10630,-32768, 6659, 7214, 1168, 153, +-32768,-32768, 7733,-32768, 1073,-32768, 1084, 1160,-32768, 1291, + 171,-32768,-32768,-32768, 680, 821, 1081, 1291, 836, 836, + 359, 359, 1002, 1002,-32768,-32768, 527, 1274, 1190,-32768, + 1075, 1129, 885,-32768, 7733, 599, 599, 1133, 1079, 1079, + 1079, 1079, 948, 7906, 7733, 7733, 7733, 7733, 7733, 7733, + 7733, 3003, 3702, 1226,-32768, 80, 1209,-32768, 1235, 484, + 1097,-32768, 1095, 1099,-32768,-32768, -5, 1102, 861, 484, +-32768, 999, 999, 1098,-32768,-32768,-32768,-32768, 1104,-32768, +-32768, 1105,-32768, 1109,-32768,-32768,-32768,-32768,-32768, 11833, +-32768,-32768,-32768,-32768,-32768,-32768, 10630,-32768, -43, 8753, + 1323, 1248,-32768, 1312, 240,-32768, 3003,-32768,-32768,-32768, + 8425,-32768, 11392,-32768,-32768,-32768, 225, 1115, 1116,-32768, + 1133, 1312, 1186, 1186, 373, 373, 1079, 1079,-32768,-32768, + 533, 1312, 184, 1255,-32768,-32768,-32768, 11392, 153, 1201, + 11392, 873, 11392, 3003, 3003, -85, 11392, 999, 1136, 1136, +-32768,-32768,-32768,-32768,-32768, 98,-32768, 1245, 1330,-32768, +-32768, 1127, 1274, 403, 3003,-32768,-32768, 7733,-32768,-32768, +-32768, 58,-32768, 1255, 1132,-32768, 1195,-32768,-32768,-32768, +-32768,-32768, 1156,-32768,-32768,-32768, 536, 1136, 1168, 1168, + 1134, 1138, 1135, 169, 1249,-32768, 7214,-32768, 1226, 1142, + 1312, 68, 68,-32768, 179,-32768, 443,-32768, -5, 1168, +-32768,-32768, 7214, 10086,-32768, 4809, 1323, 1153,-32768, 2042, + 1255,-32768,-32768, 1368, 165,-32768,-32768,-32768,-32768,-32768, + 555,-32768,-32768,-32768, 269,-32768,-32768, -85, 1248, 462, + 556,-32768,-32768, 1161, -6, 1245, 7214,-32768,-32768, 311, +-32768,-32768,-32768,-32768,-32768, 179,-32768, 1162, 269, 1164, +-32768,-32768,-32768, 10086,-32768, 11392, 484,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 1167,-32768,-32768,-32768, 999,-32768, + 1136,-32768, 1372, 1378,-32768 }; static const short yypgoto[] = {-32768, --32768, 1331,-32768,-32768,-32768, 1146, 1012, 860,-32768, 636, - 413,-32768, 1037,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 1231,-32768,-32768,-32768, 660, 648, 662,-32768, --32768, 422, 231,-32768, -978,-32768, -453,-32768, -458, -81, - -102, -51, -80,-32768,-32768,-32768,-32768,-32768, 655,-32768, --32768,-32768,-32768,-32768, 251,-32768,-32768,-32768,-32768,-32768, --32768, -731,-32768,-32768,-32768,-32768, -135,-32768,-32768,-32768, --32768, -139, 421,-32768, 632, 635,-32768,-32768, 1366, 1189, - 1052,-32768, 1385,-32768, 1138, 843,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, -1, -68, -97,-32768,-32768,-32768, - 5, 1161,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 1256, -151,-32768,-32768,-32768, 137,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 501,-32768, --32768,-32768,-32768,-32768,-32768, 450,-32768,-32768,-32768, 1389, --32768,-32768,-32768,-32768, -194,-32768,-32768, -1143, -702, 644, --32768,-32768,-32768,-32768, 1064, 159, -1086,-32768, -91,-32768, - 964, -58, -542, -78,-32768, -79, -1354,-32768, -158, 31, - -1293,-32768, 14, -1298, -475,-32768, -1035, 188, -844,-32768, --32768, -96, -322, -888,-32768, -825, -434, 1143,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, -346, -211,-32768,-32768, --32768, 1072,-32768,-32768, -146,-32768, 402,-32768,-32768,-32768, - 1446,-32768,-32768, -557, -450, -409,-32768,-32768, -704, -247, - -694,-32768,-32768, -564,-32768,-32768,-32768,-32768, 1577, 985, --32768, 736, -743, 999,-32768, 75, 1289,-32768, -895, 3, - -77, 74, 1381,-32768,-32768, 1918, 564, 70, -16, -131, - -365, -3, 370,-32768 +-32768, 1347,-32768,-32768,-32768, 1165, 1026, 870,-32768, 647, + 431,-32768, 1059,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 1252,-32768,-32768,-32768, 686, 673, 687,-32768, +-32768, 447, 257,-32768, -1123,-32768, -459,-32768, -818, -51, + -70, -22, -50,-32768,-32768,-32768,-32768,-32768, 682,-32768, +-32768,-32768,-32768,-32768, 166,-32768,-32768,-32768,-32768,-32768, +-32768, -721,-32768,-32768,-32768,-32768, -102,-32768,-32768,-32768, +-32768, -139, 446,-32768, 662, 660,-32768,-32768, 1396, 1221, + 1085,-32768, 1416,-32768, 1166, 876,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 36, -32, -57,-32768,-32768,-32768, + 40, 1192,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 1287, -147,-32768,-32768,-32768, 112,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 482,-32768, +-32768,-32768,-32768,-32768,-32768, 480,-32768,-32768,-32768, 1419, +-32768,-32768,-32768,-32768, -198,-32768,-32768, -1150, -699, 691, +-32768,-32768,-32768,-32768, 1096, 775, -1364,-32768, -53,-32768, + 991, -19, -549, -40,-32768, -42,-32768,-32768, -157, 59, + -1283, -1241, -472,-32768, -1030, 220, -889,-32768,-32768, -56, + -312, -891,-32768, -831, -410, 1172,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, -349, -182,-32768,-32768,-32768, 1047, +-32768,-32768, -165,-32768, 432,-32768,-32768,-32768, 1276,-32768, +-32768, -518, -450, -408,-32768,-32768, -738, -520, -673,-32768, +-32768, -527,-32768,-32768,-32768,-32768, 1042, 1025,-32768, 785, + -741, 1027,-32768, 75, 1326,-32768, -898, 41, -1, 102, + 1452,-32768,-32768, 1836, 1203, 478, 20, -131, -341, -3, + 400,-32768 }; -#define YYLAST 12201 +#define YYLAST 12123 static const short yytable[] = { 129, - 707, 219, 148, 258, 342, 240, 596, 256, 965, 204, - 182, 1107, 1098, 775, 191, 182, 526, 195, 1046, 249, - 484, 182, 691, 786, 705, 209, 211, 1314, 946, 709, - 262, 1003, 1004, 718, 824, 1128, 826, 827, 1412, 1413, - 695, 320, 1009, 1040, 1516, 818, 1041, 6, 1407, 7, - 487, 695, 488, 333, 703, 496, 149, 460, 716, 819, - 858, 1114, 393, 1254, 819, 819, 1516, 337, 466, 819, - 13, 655, 1517, 736, 410, 1524, 711, 1448, 182, 147, - 852, 853, 854, 855, 856, 498, 470, 489, 181, 1129, - 14, 966, 165, 192, 1517, 1130, 1013, 871, 1070, 201, - 467, 794, 512, 1491, 774, 186, 496, 1014, 384, 819, - 17, 388, 1195, 1454, 1455, 656, 1469, 1453, 1525, 1115, - 493, 494, 343, 513, 19, 499, 657, 182, 795, 84, - 148, 148, 712, 1521, 223, 225, 498, 148, 182, 187, - 816, 242, 85, 1435, 1050, 182, 148, 500, 1518, 148, - 178, 148, 223, 225, 1477, 1051, 215, 1449, 148, 148, - 1430, 820, 338, 431, 1492, 370, 820, 820, 909, 1202, - 1518, 820, 335, 1221, 182, 1502, 499, 514, 1436, 196, - 1132, 1298, 1299, 1300, 1301, 1302, 1303, 1493, 1551, 200, - 825, 1470, 1133, 182, 865, 1398, 195, 578, 500, 1212, - 359, 1399, 182, 556, 360, 218, 706, 220, 221, 1408, - 198, 820, 202, 461, 226, 490, 227, 461, 1210, 1358, - 557, 995, 263, 245, 1134, 1503, 250, 202, 251, 1135, - 1136, 1137, 1138, 1139, 1140, 1141, 259, 265, 1018, 195, - 381, 1145, 1146, 1142, 868, 202, 1520, 148, 1456, 859, - 202, 1187, 269, 717, 1554, 1042, 1553, 860, 861, 862, - 863, -553, 326, 148, 263, -521, 148, 389, 864, 166, - 1371, 341, 751, -779, 943, -520, 265, 809, -786, -553, - 344, 1457, 167, -521, 1367, 1466, 1055, 859, 1047, 869, - 1327, 870, 202, -520, 435, 860, 861, 862, 863, 810, - 1057, 1058, 1059, 1060, 1061, 1062, 864, 811, 812, 813, - 814, 403, 724, 725, 320, 1372, 1380, 1373, 815, 469, - 472, 472, 214, -551, 378, 1384, 1385, 1386, 1387, 1388, - 1389, 1390, 1391, 404, 1395, 480, 182, 804, 805, 806, - 807, -551, 650, 1005, 651, 182, 205, 1304, 405, 95, - 538, 508, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 528, - 723, 228, 791, 1271, 242, 1272, 1312, 1478, 1479, 82, - 148, 182, 732, 906, 733, 98, 148, 792, 148, 970, - 1026, 83, 555, 973, 911, 1343, 859, 216, 169, 652, - 1507, 653, 596, 243, 860, 861, 862, 863, 526, 263, - 406, 257, 526, 1354, 793, 864, 1356, 1028, 1029, 260, - 1273, 594, 1274, 478, 481, 263, 609, 810, 1037, 734, - 170, 735, 170, 486, 974, 811, 812, 813, 814, 1063, - 266, 267, 1044, 1129, 270, 626, 815, 648, 268,-32768, - 596, 171, 271, 171, 1318, 975, 830, 546, 1097, 547, - 1198, 1199, 1200, 550, 1468, 551, 1065, 1496, 202, 700, - 1497, 700, 1498, 563, 564, 565, 443, 831, 1419, 336, - 573, 1121, 339, 1122, 1123, 1124, 1125, 1126, 1127, 952, - 340, 172, 580, 172, 953, 976, 736, 1217, 1218, 1219, - 914, 915,-32768, 148, 348, 173, 954, 173, 346, 977, - 811, 812, 813, 814, 130, 610, 202, 611, 1443, 164, - 1327, 815, 1224, 745, 431, 746, 185, 761, 431, 762, - 193, 772, 431, 773, 1132, 347, 431, 1189, -779, 458, - 431, 455, 456, 1193, 431, 326, 1133, 955, 431, 182, - 457, 350, 431, 353, 351, 813, 814, 355, 771, 956, - 862, 863, 1012, 957, 815, 771, 174, 447, 174, 864, - 358, 1020, 1021, 1022, 1023, 1024, 1025, 1540, 1134, 448, - 728, 958, 362, 1541, 1542, 700, 1138, 1139, 1140, 1141, - 365, 594, 594, 594, 594, 363, 832, 1142, 263, 367, - 1183, 833, 834, 835, 836, 837, 838, 839, 441, 368, - 753,-32768, 753, 753, 753, 753, 371, 256, 256, 453, - 454, 455, 456, 372, 1140, 1141, 952, 763, 980, 784, - 457, 785, 1203, 1142, 720, 721, 722, 374, 320, 320, - 375, 1310, 1311, 954, 648, 648, 648, 648, 648, 320, - 1312, 531, 442, 798, 532, 799, 1111, 443, 1112, 1304, - 732, 648, 1113, 444, 533,-32768,-32768, 1308, 1309, 1310, - 1311, 1268, 88, 380, 534, 535, 382, 737, 1312, 1270, - 391, 1275, 1276, 1031, 955, 1277, 1278, 1279, 1280, 1281, - 1282, 1283, 1284, 536, 90, 1288, 956, 386, 390, 182, - 957, 182, 1293, 772, 398, 1147, 917, 394, 395, 94, - 95, 461, 480, 1190, 700, 396, 399, 1285, 958, 400, - 148, 1330, 401, 921, 1246, 921, 923, 924, 148, 772, - 1247, 1289, 409, 942, 968, 413, 98, 555, 921, 1248, - 951, 415, 416, 568, 569, 182, 417, 1249, 447, 1513, - 419, 528, 989, 989, 772, 528, 1290, 1374, 1250, 1375, - 448, 102, 436, 438, 242, 990, 990, 242, 1251, 439, - 1334, 148, 463, 148, 999, 458, 1108, 900, 555, 905, - 1433, 465, 1434, 1252, 464, 1006, 1007, 1344, 482, 492, - 478, 752, 449, 754, 755, 756, 757, 919,-32768,-32768, - 453, 454, 455, 456, 1351, 926, 594, 594, 6, 509, - 7, 457, 517, 17, 529, 594, 594, 594, 594, 594, - 594, 543, 544, 964, 1128, 374, 1370, 1476, 552, 876, - 979, 13, 1129, 879, 1526, 559, 1527, 882, 753, 753, - 1534, 885, 1535, 561, 263, 888, 566, 574, 996, 891, - 998, 14, 648, 894, 579, 594, 598, 897, 320, 326, - 326, 575, 576, 1008, 648, 648, 648, 648, 648, 648, - 326, 17, 577, 457, 606, 441, 1332, 1011, 1129, 607, - 1333, 608, 695, 1304, 1130, 19, 708, 1392, 1305, 1306, - 1307, 1308, 1309, 1310, 1311, 710, 714, 716, 727, 729, - 1131, 730, 1312, 731, 739, 1383, 741, 182, 742, 740, - 1102, 747, 479, 700, 750, 744, 758, 759, 760, 442, - 764, 1045, 765, 1132, 443, 1428, 1048, 1049, 1483, 766, --32768, 780, 789, 779, 767, 1133, 942, 776, 942, 942, - 942, 942, 942, 942, 782, 1427, 810, 1129, 796, 783, - 555, 555, 787, 1130, 811, 812, 813, 814, 797, 148, - 225, 788, 335, 1171, 790, 815, 800,-32768, 1019, 1132, - 801, 823, 842, 907, 802, 1138, 1139, 1140, 1141, 803, - 817, 1133, 1446, 1447, 846, 905, 1142, 1182, 808, 913, - 822, 844,-32768, 829, 845, 1266, 847, 848, 849, 1291, - 860, 861, 862, 863, 850, 1467, 851, 1403, 866, 867, - 874, 864, 875, 1134, 877, 447, 878, 1411, 1135, 1136, - 1137, 1138, 1139, 1140, 1141, 880, 881, 448, 883, 884, - 886, 887, 1142, 889, 927, 1066, 1152, 890, 1132, 908, - 948, 892, 1072, 1073, 969, 1075, 1076, 1537, 1078, 1079, - 1133, 1081, 1082, 971, 1084, 1085, 893, 1087, 1088, 449, - 1090, 1091, 979, 1093, 1094, 993, 895, 453, 454, 455, - 456, 896, 944, 945, 1000, 815, 648, 1032, 457, 326, - 1034, 1038, 1134, 1035, 127, 1036, 1039, 127,-32768,-32768, - 1138, 1139, 1140, 1141, 864, 127, 1074, 1071, 1100, 127, - 127, 1142, 127, 1077, 810, 182, 127, 626, 1099, 1080, - 127, 127, 811, 812, 813, 814, 1083, 148, 1086, 859, - 1089, 1092, 148, 815, 1095, 1103, 942, 860, 861, 862, - 863, 1104, 1109, 1116, 942, 1117, 942, 942, 864, 1118, - 942, 942, 942, 942, 942, 942, 942, 942, 1120, 1144, - 942, -786, 1148, 1149, 148, 1151, 1169, 942, 1170, 1174, - 1179, 1180, 1176, 127, 1181, 1184, 225, 225, 225, 225, - 225, 225, 1319, 1186, 1322, 1188, 1191, 1192, 1194,-32768, - 1196, 1197, 1201, 905, 1211, 1205, 182, 1308, 1309, 1310, - 1311, 1209, 1329, 1213, 1261, 1214, 1223, 1215, 1312, 1264, - 1216, 1255, 1220, 1222, 1229, 1230, 1204, 1231, 1232, 1233, - 1206, 1234, 127, 1235, 1236, 127, 127, 1237, 1238, 127, - 127, 1239, 127, 127, 1550, 1240, 127, 1241, 1242, 1257, - 127, 127, 1243, 1244, 127, 1258, 127, 127, 127, 1225, - 1260, 1262, 1263, 127, 127, 1267, 1426, 1142, 1292, 1315, - 1295, 1296, 1297, 1366, 1313, 1317, 1331, 1335, 1336, 127, - 1337, 182, 1338, 1362, 1321, 1304, 1340, 1341, 1345, 225, - 1305, 1306, 1307, 1308, 1309, 1310, 1311, 440, 127, 479, - 1346, 127, 441, 1347, 1312, 254, 1349, 127, 1352, 1505, - 232, 233, 234, 235, 236, 237, 238, 1357, 1364, 1350, - 941, 225, 1368, 1369, 1376, 1377, 1378, 1312, 1396, 1401, - 225, 225, 225, 225, 225, 225, 225, 225, 1530, 225, - 1402, 1404, 1405, 1410, 127, 1422, 442, 1424, 1406, 1420, - 1421, 443, 127, 1414, 1415, 1416, 1361, 444, 1417, 905, - 1431, 1437, 1432, 1442, 1546, 1461, 320, 445, 127, 1464, - 1465, 127, 127, 446, 1472, 1473, 1449, 1480, 1481, 1484, - 1482, 1490, 1515, 182, 1523, 407, 1536, 1545, 1547, 1552, - 1556, 1557, 213, 1339, 357, 1381, 1382, 1342, 510, 738, - 942, 425, 1429, 963, 473, 1173, 920, 244, 440, 947, - 922, 1172, 1294, 441, 1489, 1441, 1522, 1471, 950, 1495, - 1544, 1178, 992, 207, 991, 345, 485, 148, 440, 184, - 700, 777, 700, 441, 1445, 385, 148, 1506, 1531, 1444, - 127, 127, 447, 379, 255, 1002, 1362, 1460, 1177, 212, - 127, 511, 1538, 693, 448, 1514, 127, 442, 1532, 225, - 941, 905, 443, 1459, 127, 1539, 1355, 1548, 444, 127, - 1452, 910, 424, 1207, 252, 127, 127, 442, 445, 704, - 1475, 127, 443, 127, 446, 1501, 449, 127, 444, 694, - 1488, 450, 451, 452, 453, 454, 455, 456, 445, 0, - 1256, 570, 0, 0, 1440, 457, 441, 1512, 1056, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1361, - 0, 0, 0, 941, 0, 941, 941, 941, 941, 941, - 941, 0, 0, 0, 0, 0, 0, 0, 0, 1501, - 127, 1488, 0, 0, 0, 0, 1543, 941, 0, 224, - 442, 0, 0, 447, 0, 443, 0, 0, 425, 0, - 1512, 444, 1549, 1487, 127, 448, 127, 253, 0, 0, - 0, 445, 0, 447, 0, 0, 0, 0, 0, 0, - 1511, 0, 0, 0, 0, 448, 0, 326, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 449, 127, 0, - 0, 0, 450, 451, 452, 453, 454, 455, 456, 425, - 0, 0, 0, 0, 1487, 0, 457, 449, 0, 1533, - 0, 0, 450, 451, 452, 453, 454, 455, 456, 0, - 0, 0, 0, 1511, 0, 0, 457, 0, 0, 0, - 0, 0, 0, 0, 127, 0, 447, 88, 279, 0, - 0, 0, 0, 127, 420, 0, 0, 1129, 448, 0, - 127, 283, 0, 1130, 941, 0, 0, 0, 0, 90, - 0, 0, 0, 284, 0, 0, 0, 0, 0, 0, - 127, 0, 0, 0, 94, 95, 0, 0, 0, 0, - 449, 0, 0, 0, 289, 450, 451, 452, 453, 454, - 455, 456, 0, 0, 0, 0, 0, 0, 0, 457, - 0, 98, 0, 941, 0, 0, 421, 293, 0, 0, - 0, 941, 0, 941, 941, 0, 0, 941, 941, 941, - 941, 941, 941, 941, 941, 0, 102, 941, 0, 0, - 0, 422, 0, 0, 941, 0, 0, 0, 1132, 0, - 0, 0, 0, 941, 941, 941, 941, 941, 941, 0, - 1133, 0, 411, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, - 427, 0, 428, 429, 430, 434, 0, 0, 0, 0, - 0, 0, 1134, 0, 127, 0, 127, 1135, 1136, 1137, - 1138, 1139, 1140, 1141, 0, 0, 0, 127, 423, 127, - 0, 1142, 0, 0, 0, 127, 941, 1128, 127, 150, - 127, 127, 127, 127, 0, 592, 0, 0, 0, 0, - 0, 151, 127, 127, 0, 127, 152, 0, 0, 0, - 127, 0, 0, 153, 0, 154, 127, 545, 155, 0, - 127, 646, 0, 0, 0, 0, 941, 156, 0, 127, - 127, 127, 127, 0, 157, 560, 127, 158, 127, 127, - 0, 1129, 0, 127, 0, 0, 0, 1130, 0, 425, - 127, 127, 0, 0, 159, 160, 0, 0, 941, 0, - 0, 161, 162, 1131, 603, 0, 1128, 941, 941, 941, - 941, 941, 941, 941, 941, 0, 941, 0, 0, 0, - 0, 0, 0, 0, 0, 628, 425, 0, 0, 654, - 0, 658, 0, 0, 662, 666, 670, 674, 678, 682, - 686, 690, 441, 692, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 941, 0, 475, 0, 0, 0, 0, - 1129, 0, 0, 0, 0, 0, 1130, 0, 0, 0, - 0, 0, 1132, 0, 0, 425, 0, 941, 425, 0, - 0, 0, 1131, 0, 1133, 0, 442, 0, 0, 0, - 0, 443, 0, 0, 0, 0, 0, 444, 0, 0, - 0, 0, 0, 0, 0, 592, 592, 592, 592, 0, - 0, 0, 127, 0, 0, 127, 1134, 0, 127, 0, - 0, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 0, 0, - 0, 591, 425, 0, 0, 1142, 941, 0, 1143, 0, + 342, 219, 148, 707, 258, 240, 775, 596, 1107, 1098, + 182, 256, 1046, 526, 191, 182, 786, 195, 965, 249, + 1314, 182, 320, 262, 705, 209, 211, 718, 1443, 709, + 484, 946, 858, 1003, 1004, 695, 1298, 1299, 1300, 1301, + 1302, 1303, 1404, 695, 1009, 204, 691, 1040, 1409, 1410, + 1041, 466, 487, 819, 488, 703, 496, 460, 819, 819, + 333, 818, 1013, 470, 804, 805, 806, 807, 1254, 966, + 819, 824, 496, 826, 827, 716, 711, -546, 182, 794, + 337, 556, 1483, 467, 1471, 1472, 498, 84, 181, 489, + 732, 393, 733, 192, 1462, -546, 1114, 736, 557, 201, + 85, 149, 498, 410, 774, 1499, 795, 147, 1444, 384, + 1050, 1121, 388, 1122, 1123, 1124, 1125, 1126, 1127, 852, + 853, 854, 855, 856, 1448, 819, 499, 182, 1014, 170, + 148, 148, 712, 655, 223, 225, 871, 148, 182, 1364, + 816, 242, 499, 1484, 431, 182, 148, 178, 500, 148, + 171, 148, 223, 225, 1115, 820, 215, 909, 148, 148, + 820, 820, 1202, 1221, 500, 169, 1485, 1449, 1450, 1463, + 165, 1377, 820, 186, 182, 338, 1051, 656, 1451, 196, + 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 657, 1392, + 172, 825, 1070, 182, 865, 198, 195, 170, 343, 512, + 1514, 706, 182, 1405, 173, 218, 1470, 187, 335, 461, + 202, 1452, 1210, 461, 995, 263, 227, 490, 171, 202, + 513, 859, 202, 245, 1358, 974, 578, 820, 202, 860, + 861, 862, 863, 1425, 1430, 220, 221, 166, 868, 195, + 864, 370, 226, 1515, 1145, 1146, 975, 148, 200, 1368, + 167, 1395, 269, 1187, 250, 1541, 251, 1396, 172, 1042, + 403, 263, 326, 148, 259, 174, 148, 389, 943, 1431, + 717, 341, 173, 1459, 514, 1018, 381, 359, 609, 1012, + 344, 360, 404, 869, -514, 870, 976, 1327, 1020, 1021, + 1022, 1023, 1024, 1025, 1369, 320, 1370, 405, 95, 1542, + 977, 1268, -514, 6, 1461, 7, 263, 493, 494, 1270, + -513, 1275, 1276, -544, 751, 1277, 1278, 1279, 1280, 1281, + 1282, 1283, 1284, 1055, 98, 1288, 13, 1047, -513, -772, + 435, -544, 1293, 174, -779, 480, 182, 263, 82, 1057, + 1058, 1059, 1060, 1061, 1062, 182, 14, 202, 952, 406, + 83, 508, 378, 953, 1044, 469, 472, 472, 1354, 528, + 723, 1356, 1195, 205, 242, 954, 17, 1005, 914, 915, + 148, 182, 1488, 202, 1212, 1489, 148, 1490, 148, 1343, + 19, 859, 555, 906, 202, 734, 538, 735, 952, 860, + 861, 862, 863, 596, 911, 526, 440, 724, 725, 526, + 864, 441, 791, 970, 1026, 954, 955, 973, 1028, 1029, + 745, 594, 746, 478, 481, 455, 456, 792, 956, 1037, + 1304, 214, 957, 486, 457, 1305, 1306, 1307, 1308, 1309, + 1310, 1311, 1128, 216, 761, 626, 762, 648, 228, 1312, + 958, 596, 813, 814, 793, 442, 955, 243, 1097, 547, + 443, 815, 257, 1063, 1318, 260, 444, 1065, 956, 700, + 267, 700, 957, -772, 458, 1416, 445, 650, 440, 651, + 266, 268, 446, 441, 772, 546, 773, 6, 270, 7, + 958, 550, 1271, 551, 1272, 130, 1129, 1198, 1199, 1200, + 164, 271, 1130, 148, 784, 431, 785, 185, 336, 431, + 13, 193, 1438, 431, 1327, 339, 1530, 431, 1131, 340, + 736, 431, 1531, 1532, 652, 431, 653, 442, 346, 431, + 14, 809, 443, 431, 1217, 1218, 1219, 347, 444, 1273, + 1189, 1274, 348, 862, 863, 326, 1193, 351, 445, 182, + 17, 447, 864, 263, 446, 1183, 350, 353, 771, 810, + 355, 1224, 1423, 448, 19, 771, 362, 811, 812, 813, + 814, 859, 358, 367, 1140, 1141, 363, 365, 815, 860, + 861, 862, 863, 1142, 368, 700, 371, 1132, 1310, 1311, + 864, 594, 594, 594, 594, 449, 798, 1312, 799, 1133, + 450, 451, 452, 453, 454, 455, 456, 441, 728, 720, + 721, 722, 372, 374, 457, 1494, 375, 1056, 380, 320, + 320, 256, 256, 447, 1111, 382, 1112, 763, 980, 386, + 320, 1134, 88, 1203, 390, 448, 1135, 1136, 1137, 1138, + 1139, 1140, 1141, 391, 648, 648, 648, 648, 648,-32768, + 1142, 442, 409, 1143, 90, 265, 443, 811, 812, 813, + 814, 648, 444, 398, 1031, 1495, 394, 449, 815, 94, + 95, 810, 450, 451, 452, 453, 454, 455, 456, 811, + 812, 813, 814, 732, 439, 1113, 457, 395, 509, 1523, + 815, 396, 531, 399, 265, 532, 98, 400, 830, 182, + 772, 182, 1147, 568, 569, 533, 752, 401, 754, 755, + 756, 757, 480, 413, 700, 534, 535, 415, 416, 831, + 148, 102, 417, 921, 1330, 921, 923, 924, 148, 461, + 772, 1190, 1289, 942, 536, 419, 436, 555, 921, 438, + 951, 1285, 917, 463, 1505, 182, 772, 447, 1290, 464, + 1129, 528, 1371, 458, 1372, 528,-32768, 1108, 1428, 448, + 1429, 374, 465, 1469, 242, 990, 990, 242, 482, 492, + 968, 148, 17, 148, 999, 1128, 517, 900, 555, 905, + 1516, 1524, 1517, 1525, 529, 1006, 1007, 543, 989, 989, + 478, 449, 544, 552, 1334, 559, 450, 451, 452, 453, + 454, 455, 456, 561, 1351, 263, 594, 594, 566, 574, + 457, 1344, 579, 575, 576, 594, 594, 594, 594, 594, + 594, 577, 598, 964, 457, 919, 695, 608, 606, 1129, + 607, 710, 708, 926, 714, 1130, 716, 1128, 832, 320, + 727, 1132, 729, 833, 834, 835, 836, 837, 838, 839, + 730, 1131, 648, 1133, 731, 594, 739, 740, 1359, 326, + 326, 741, 742, 747, 648, 648, 648, 648, 648, 648, + 326, 744, 750, 758, 759, 764, 996, 760, 998, 765, + 766, 563, 564, 565, 767, 1134, 1332, 776, 573, 779, + 1333, 1129, 780, 1138, 1139, 1140, 1141, 1130, 782, 783, + 580, 1128, 787, 1246, 1142, 789, 1129, 182, 788, 1247, + 1102, 1389, 1130, 700, 1476, 790, 796, 797, 1248, 800, + 1132, 801, 802, 610, 823, 611, 1249, 808, 803, 817, + 842, 822, 1133, 844, 829, 846, 942, 1250, 942, 942, + 942, 942, 942, 942, 913, 845, 847, 1251, 848, 849, + 555, 555, 850, 851, 866, 1129, 867, 874, 875, 148, + 225, 1130, 1252, 1171, 1134, 877, 1422, 878, 880, 1135, + 1136, 1137, 1138, 1139, 1140, 1141, 881, 1131, 883, 884, + 886, 887, 1132, 1142, 889, 905, 1269, 1182, 890, 892, + 893, 927, 907, 948, 1133, 1266, 908, 1132, 335, 895, + 1291, 969, 971, 1441, 1442, 254, 896, 993, 1000, 1133, + 232, 233, 234, 235, 236, 237, 238, 1400, 753, 944, + 753, 753, 753, 753, 1460, 945, 1134, 1408, 815, 1032, + 1034, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1035, 1036, + 1038, 1134, 1527, 1039, 864, 1142, 1132,-32768,-32768, 1138, + 1139, 1140, 1141, 1071, 1100, 1074, 1077, 1080, 1133, 127, + 1142, 1104, 127, 1103, 1152, 1083, 1086, 1089, 1092, 1095, + 127, 1116, 1099, 1109, 127, 127, 648, 127, 1117, 326, + 1120, 127, 1118,-32768, 1144, 127, 127, -779, 1149, 1148, + 1134, 860, 861, 862, 863, 1135, 1136, 1137, 1138, 1139, + 1140, 1141, 864, 1151, 1170, 182, 1169, 626, 1174, 1142, + 810, 1179, 1376, 1176, 1181, 1180, 1184, 148, 811, 812, + 813, 814, 148, 1186, 1188, 1191, 942, 1192, 1194, 815, + 443, 1196, 1019, 1197, 942, 1201, 942, 942, 127, 1211, + 942, 942, 942, 942, 942, 942, 942, 942, 1205, 1209, + 942, 1129, 1213, 1304, 148, 1214, 1215, 942, 1305, 1306, + 1307, 1308, 1309, 1310, 1311, 1216, 225, 225, 225, 225, + 225, 225, 1312, 1220, 1222, 1380, 1128, 1255, 1367, 1223, + 1229, 1257, 1230, 905, 1231, 1232, 182, 127, 1233, 1234, + 127, 127, 1329, 1235, 127, 127, 1236, 127, 127, 1258, + 1237, 127, 1238, 1239, 1240, 127, 127, 1241, 1319, 127, + 1322, 127, 127, 127, 1242, 1243, 1244, 1260, 127, 127, + 1262, 447, 1261, 1263, 1539, 1267, 1142, 1264, 1315, 1295, + 1129, 1296, 1292, 448, 127, 1297, 1130, 1313, 979, 1317, + 810, 1331, 1132, 1421, 1335, 1350, 753, 753, 811, 812, + 813, 814, 1131, 127, 1133, 1336, 127, 1337, 1338, 815, + 1340, 182, 127, 1341, 1321,-32768, 1345, 1346, 1347, 225, + 1349, 1008, 859, 453, 454, 455, 456, 1352, 1497, 1357, + 860, 861, 862, 863, 457, 1011,-32768, 1361, 1366, 1363, + 1128, 864, 1373, 737, 1138, 1139, 1140, 1141, 1365, 127, + 1375, 225, 1374, 1312, 1393, 1142, 1520, 127, 1399, 1398, + 225, 225, 225, 225, 225, 225, 225, 225, 1401, 225, + 320, 1132, 1402, 127, 1403, 1411, 127, 127, 1407, 1045, + 1535, 1412, 1413, 1133, 1048, 1049, 1414, 1417,-32768, 905, + 407, 1419, 1426, 1427, 1129, 1432, 1308, 1309, 1310, 1311, + 1130, 1437, 1454, 1457, 1458, 1466, 425, 1312, 1465, 1444, + 1473, 1129, 1475, 182, 1474, 1134, 1131, 1130, 1477, 1482, + 1135, 1136, 1137, 1138, 1139, 1140, 1141, 942, 1507, 1424, + 1513, 1544, 1526, 1536, 1142, 1534, 1540, 1545, 213, 738, + 475, 1304, 510, 357, 963, 127, 127,-32768,-32768, 1308, + 1309, 1310, 1311, 1173, 148, 127, 473, 700, 244, 700, + 1312, 127, 920, 148, 947, 922, 1172, 1481, 1294, 127, + 1512, 1464, 1487, 1533, 127, 950, 1178, 441, 1436, 991, + 127, 127, 992, 207, 225, 1132, 127, 345, 127, 485, + 184, 905, 127, 385, 777, 876, 1498, 1133, 1440, 879, + 1521, 1439, 1132, 882, 379, 255, 570, 885, 1177, 212, + 693, 888, 1528, 511, 1133, 891, 591, 1506, 1522, 894, + 979, 442, 1002, 897, 1529, 1447, 443, 1537, 1355, 1134, + 1504, 424,-32768, 1207, 1135, 1136, 1137, 1138, 1139, 1140, + 1141, 252, 645, 1468, 1493, 127, 1134, 694, 1142, 704, + 910, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 0, 1435, + 1256, 0, 0, 425, 0, 1142, 0, 1304, 0, 127, + 0, 127, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 441, + 1504, 0, 1538, 0, 0, 0, 1312, 131, 0, 0, + 0, 0, 0, 0, 0, 1493, 0, 132, 0, 133, + 0, 479, 0, 127, 134, 0, 0, 0, 0, 0, + 326, 135, 0, 136, 425, 0, 137, 447, 0, 0, + 0, 0, 411, 442, 0, 138, 0, 0, 443, 448, + 0, 0, 139, 0, 444, -304, 0, 426, 0, 0, + 427, 0, 428, 429, 430, 434, 0, 0, 0, 127, + 224, 0, 140, 0, 0, 0, 0, 0, 127, 141, + 142, 449, 0, 0, 0, 127, 0, 143, 253, 453, + 454, 455, 456, 0, 0, 0, 0, 0, 0, 0, + 457, 0, 0, 0, 0, 127, 591, 591, 591, 591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1132, 0, 0, 0, 127, 127, 645, 646, 646, - 646, 646, 646, 1133, 127, 0, 0, 0, 127, 0, - 0, 0, 0, 0, 0, 646, 0, 0, 0, 0, - 0, 0, 447, 0, 603, 0, 603, 603, 0, 0, - 0, 0, 127, 841, 448, 1134, 0, 0, 0, 0, - 1135, 1136, 1137, 1138, 1139, 1140, 1141, 0, 0, 0, - 0, 0, 0, 0, 1142, 0, 0, 1269, 1128, 0, - 0, 0, 0, 0, 0, 0, 449, 0, 857, 0, - 0, 450, 451, 452, 453, 454, 455, 456, 0, 0, - 0, 0, 873, 0, 0, 457, 434, 939, 0, 0, - 434, 0, 0, 0, 434, 0, 0, 0, 434, 0, - 0, 0, 434, 0, 0, 0, 434, 0, 0, 0, - 434, 0, 1129, 0, 434, 0, 0, 0, 1130, 0, - 0, 0, 425, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 440, 0, 1131, 0, 0, 441, 0, 0, - 0, 591, 591, 591, 591, 0, 0, 0, 0, 0, - 127, 0, 127, 1128, 0, 0, 0, 0, 0, 0, - 592, 592, 127, 0, 0, 0, 0, 127, 0, 592, - 592, 592, 592, 592, 592, 0, 0, 0, 0, 0, - 0, 442, 0, 0, 0, 0, 443, 0, 0, 0, - 0, 0, 444, 425, 645, 645, 645, 645, 645, 127, - 0, 0, 445, 1132, 0, 0, 646, 1129, 446, 592, - 0, 645, 0, 1130, 1010, 1133, 0, 0, 646, 646, - 646, 646, 646, 646, 0, 0, 0, 0, 603, 1131, - 0, 127, 0, 0, 0, 0, 0, 127, 0, 0, - 0, 0, 0, 0, 1030, 0, 425, 1134, 0, 0, - 0, 0, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 0, - 0, 0, 475, 425, 0, 0, 1142, 0, 0, 1379, - 0, 0, 0, 0, 425, 0, 603, 447, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 448, - 939, 0, 939, 939, 939, 939, 939, 939, 1132, 0, - 0, 0, 0, 0, 0, 0, 127, 0, 127, 0, - 1133, 0, 593, 0, 1167, 0, 0, 0, 0, 0, - 0, 449, 0, 1096, 0, 0, 450, 451, 452, 453, - 454, 455, 456, 0, 0, 0, 0, 0, 647, 0, - 457, -581, 1134, 0, 0, 0, 0, 1135, 1136, 1137, - 1138, 1139, 1140, 1141, 0, 0, 591, 591, 0, 0, - 0, 1142, 0, 425, 0, 591, 591, 591, 591, 591, - 591, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 440, 0, 0, 0, 0, 441, + 0, 1066, 0, 0, 0, 0, 0, 545, 1072, 1073, + 0, 1075, 1076, 0, 1078, 1079, 0, 1081, 1082, 447, + 1084, 1085, 0, 1087, 1088, 560, 1090, 1091, 0, 1093, + 1094, 448, 0, 0, 0, 0, 0, 0, 0, 645, + 645, 645, 645, 645, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 603, 0, 645, 0, 0, 0, + 0, 0, 0, 449, 0, 0, 0, 0, 0,-32768, +-32768, 453, 454, 455, 456, 628, 0, 0, 0, 654, + 0, 658, 457, 0, 662, 666, 670, 674, 678, 682, + 686, 690, 0, 692, 0, 0, 0, 0, 0, 127, + 0, 127, 0, 0, 0, 0, 0, 475, 0, 0, + 0, 0, 127, 0, 127, 0, 0, 0, 0, 0, + 127, 0, 0, 127, 0, 127, 127, 127, 127, 0, + 0, 0, 0, 1378, 1379, 0, 0, 127, 127, 441, + 127, 0, 0, 0, 0, 127, 0, 0, 0, 0, + 0, 127, 0, 0, 0, 127, 0, 0, 0, 0, + 0, 0, 0, 0, 127, 127, 127, 127, 0, 0, + 0, 127, 1204, 127, 127, 0, 1206, 0, 127, 0, + 0, 0, 0, 442, 425, 127, 127, 0, 443, 0, + 0, 0, 0, 0, 444, 440, 0, 0, 0, 0, + 441, 591, 591, 0, 445, 1225, 0, 0, 0, 0, + 591, 591, 591, 591, 591, 591, 0, 0, 0, 0, + 0, 425, 0, 440, 0, 0, 592, 0, 441, 0, + 0, 0, 0, 0, 603, 0, 603, 603, 0, 0, + 0, 0, 0, 841, 442, 0, 0, 645, 0, 443, + 591, 0, 646, 0, 0, 444, 0, 0, 0, 645, + 645, 645, 645, 645, 645, 445, 0, 0, 479, 0, + 425, 446, 442, 425, 0, 0, 0, 443, 857, 447, + 0, 0, 0, 444, 0, 0, 0, 0, 0, 941, + 0, 448, 873, 445, 0, 0, 434, 0, 0, 446, + 434, 0, 0, 0, 434, 0, 0, 127, 434, 0, + 127, 1503, 434, 127, 0, 0, 434, 0, 0, 0, + 434, 0, 0, 449, 434, 0, 0, 425, 450, 451, + 452, 453, 454, 455, 456, 0, 0, 0, 0, 1339, + 447, 0, 457, 1342, 0, 0, 0, 0, 0, 0, + 127, 127, 448, 0, 0, 0, 0, 0, 0, 127, + 0, 1503, 0, 127, 0, 0, 0, 0, 447, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 425, 645, 0, 0, 591, 0, 0, 127, 0, - 0, 0, 0, 0, 645, 645, 645, 645, 645, 645, - 0, 425, 0, 0, 0, 0, 0, 127, 0, 0, - 646, 0, 0, 442, 0, 0, 0, 0, 443, 0, - 603, 603, 603, 0, 444, 0, 0, 0, 0, 0, - 0, 0, 127, 0, 445, 127, 0, 127, 425, 425, - 446, 127, 0, 0, 0, 0, 0, 1208, 0, 0, - 0, 127, 127, 0, 0, 0, 0, 603, 603, 603, - 939, 425, 593, 593, 593, 593, 0, 0, 939, 0, - 939, 939, 0, 0, 939, 939, 939, 939, 939, 939, - 939, 939, 0, 0, 939, 0, 0, 0, 0, 0, - 0, 939, 0, 0, 0, 127, 0, 0, 0, 0, - 1167, 1167, 1167, 1167, 1167, 1167, 0, 0, 0, 447, - 0, 0, 127, 0, 0, 647, 647, 647, 647, 647, - 0, 448, 440, 0, 0, 0, 1328, 441, 0, 0, - 0, 0, 647, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, - 0, 127, 0, 449, 0, 0, 0, 0, 450, 451, - 452, 453, 454, 455, 456, 127, 0, 127, 0, 0, - 0, 442, 457, -580, 0, 0, 443, 0, 0, 0, - 0, 0, 444, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 445, 0, 0, 0, 0, 0, 446, 0, - 0, 0, 0, 1167, 940, 0, 645, 0, 0, 0, + 448, 0, 0, 0, 449, 0, 0, 127, 0, 450, + 451, 452, 453, 454, 455, 456, 592, 592, 592, 592, + 0, 0, 0, 457, -574, 0, 0, 0, 440, 0, + 0, 1508, 449, 441, 0, 0, 0, 450, 451, 452, + 453, 454, 455, 456, 1010, 0, 0, 0, 0, 941, + 0, 457, -573, 0, 0, 0, 0, 0, 603, 1509, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 646, + 646, 646, 646, 646, 1030, 0, 0, 442, 0, 0, + 0, 0, 443, 0, 150, 0, 646, 0, 444, 0, + 0, 645, 0, 0, 0, 0, 151, 425, 445, 0, + 0, 152, 0, 0, 446, 0, 603, 0, 153, 0, + 154, 0, 941, 155, 941, 941, 941, 941, 941, 941, + 0, 0, 156, 0, 0, 127, 0, 127, 0, 157, + 0, 0, 158, 0, 0, 1510, 941, 127, 0, 0, + 88, 279, 127, 0, 0, 0, 0, 420, 0, 159, + 160, 0, 0, 1096, 283, 0, 161, 162, 939, 0, + 0, 0, 90, 0, 0, 0, 284, 0, 425, 0, + 0, 0, 0, 447, 127, 0, 0, 94, 95, 0, + 0, 0, 0, 0, 0, 448, 0, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 98, 0, 127, 0, 0, 421, + 293, 0, 127, 0, 0, 440, 0, 449, 0, 0, + 441, 425, 450, 451, 452, 453, 454, 455, 456, 102, + 593, 592, 592, 0, 422, 0, 457, 0, 425, 0, + 592, 592, 592, 592, 592, 592, 0, 0, 0, 425, + 0, 0, 0, 941, 0, 0, 647, 0, 0, 0, + 0, 0, 0, 0, 442, 0, 0, 0, 0, 443, + 603, 603, 603, 0, 0, 444, 0, 646, 0, 0, + 592, 127, 0, 0, 0, 445, 0, 0, 0, 646, + 646, 646, 646, 646, 646, 0, 0, 1208, 0, 0, + 0, 423, 941, 0, 0, 0, 0, 603, 603, 603, + 941, 0, 941, 941, 0, 0, 941, 941, 941, 941, + 941, 941, 941, 941, 0, 0, 941, 0, 0, 0, + 0, 0, 0, 941, 0, 0, 0, 0, 425, 0, + 0, 0, 941, 941, 941, 941, 941, 941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1167, 0, 0, 0, 0, - 0, 0, 0, 0, 1167, 1167, 1167, 1167, 1167, 1167, - 1167, 1167, 0, 1167, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1363, 0, 0, 0, 447, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 593, 593, 448, - 0, 0, 0, 0, 0, 0, 593, 593, 593, 593, - 593, 593, 0, 0, 0, 0, 0, 0, 0, 0, + 447, 939, 0, 939, 939, 939, 939, 939, 939, 0, + 0, 0, 448, 0, 0, 0, 425, 0, 0, 0, + 0, 0, 0, 127, 0, 1167, 0, 0, 0, 440, + 0, 778, 0, 425, 441, 0, 0, 0, 0, 127, + 593, 593, 593, 593, 449, 941, 0, 0, 0, 450, + 451, 452, 453, 454, 455, 456, 0, 0, 0, 0, + 0, 0, 0, 457, 127, 0, 0, 127, 0, 127, + 425, 425, 0, 127, 0, 0, 0, 0, 442, 0, + 0, 0, 0, 443, 0, 941, 0, 0, 0, 444, + 0, 425, 0, 647, 647, 647, 647, 647, 0, 445, + 0, 0, 0, 0, 0, 446, 0, 0, 0, 0, + 647, 0, 0, 0, 0, 0, 0, 941, 0, 0, + 0, 0, 0, 0, 0, 0, 941, 941, 941, 941, + 941, 941, 941, 941, 0, 941, 0, 0, 0, 0, + 127, 646, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 449, 0, 0, 939, 0, 450, 451, 452, 453, - 454, 455, 456, 647, 898, 0, 593, 0, 0, 899, - 457, 0, 0, 0, 0, 647, 647, 647, 647, 647, - 647, 0, 273, 274, 1069, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 88, 279, - 0, 0, 0, 0, 0, 420, 0, 0, 0, 0, - 0, 0, 283, 1167, 0, 0, 0, 0, 0, 0, - 90, 0, 0, 0, 284, 0, 0, 0, 87, 0, - 0, 0, 0, 0, 0, 94, 95, 0, 285, 0, - 286, 929, 273, 274, 0, 289, 0, 940, 0, 940, - 940, 940, 940, 940, 940, 0, 0, 0, 88, 279, - 0, 0, 98, 0, 0, 280, 0, 421, 293, 0, - 0, 1168, 283, 0, 0, 0, 0, 0, 0, 0, - 90, 296, 0, 0, 284, 0, 0, 102, 91, 92, - 0, 0, 422, 0, 93, 94, 95, 0, 285, 0, - 286, 0, 930, 0, 931, 289, 0, 96, 0, 0, - 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, - 0, 0, 98, 0, 0, 1508, 0, 292, 293, 100, - 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 300, 296, 0, 0, 0, 0, 0, 102, 103, 297, - 104, 298, 299, 0, 0, 0, 0, 0, 0, 423, - 106, 0, 0, 107, 108, 109, 0, 110, 0, 0, - 0, 111, 0, 112, 113, 0, 0, 0, 0, 0, - 0, 0, 114, 115, 116, 0, 0, 647, 1228, 0, - 440, 117, 778, 118, 0, 441, 0, 119, 0, 0, - 300, 0, 120, 121, 0, 0, 0, 0, 0, 122, - 123, 0, 124, 0, 0, 0, 0, 125, 0, 301, - 202, 932, 263, 303, 304, 0, 0, 0, 0, 0, - 933, 0, 0, 934, 935, 936, 0, 940, 0, 442, - 0, 0, 937, 1286, 443, 940, 0, 940, 940, 0, - 444, 940, 940, 940, 940, 940, 940, 940, 940, 131, - 445, 940, 0, 0, 0, 0, 446, 0, 940, 132, - 0, 133, 0, 0, 0, 0, 134, 1168, 1168, 1168, - 1168, 1168, 1168, 135, 0, 136, 0, 0, 137, 0, - 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, - 0, 0, 0, 0, 139, 0, 0, -304, 0, 0, + 0, 0, 941, 0, 447, 0, 0, 0, 0, 0, + 0, 0, 940, 0, 0, 0, 448, 0, 0, 0, + 127, 939, 127, 941, 0, 0, 0, 0, 0, 939, + 0, 939, 939, 0, 0, 939, 939, 939, 939, 939, + 939, 939, 939, 0, 0, 939, 0, 0, 449, 0, + 0, 0, 939, 450, 451, 452, 453, 454, 455, 456, + 0, 1167, 1167, 1167, 1167, 1167, 1167, 457, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 440, + 941, 0, 0, 0, 441, 593, 593, 1328, 0, 0, + 0, 0, 0, 0, 593, 593, 593, 593, 593, 593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 140, 0, 0, 0, 0, 0, - 0, 141, 142, 0, 0, 447, 0, 0, 0, 143, - 1348, 0, 0, 0, 0, 0, 0, 448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 442, 0, + 0, 647, 0, 443, 593, 0, 0, 0, 0, 444, + 0, 0, 0, 647, 647, 647, 647, 647, 647, 445, + 0, 0, 1069, 0, 0, 446, 0, 0, 0, 0, + 0, 0, 0, 0, 1167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 449, - 1168, 0, 0, 0, 450, 451, 452, 453, 454, 455, - 456, 0, 0, 0, 0, 0, 0, 0, 457, 0, + 0, 0, 1480, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1167, 0, 1500, 0, + 0, 0, 0, 87, 0, 1167, 1167, 1167, 1167, 1167, + 1167, 1167, 1167, 0, 1167, 940, 0, 940, 940, 940, + 940, 940, 940, 0, 447, 0, 0, 179, 0, 0, + 0, 0, 1480, 88, 0, 0, 448, 0, 0, 1168, + 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, + 0, 0, 0, 91, 92, 0, 0, 0, 449, 93, + 94, 95, 939, 450, 451, 452, 453, 454, 455, 456, + 0, 898, 96, 0, 0, 0, 899, 457, 0, 0, + 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, + 0, 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1168, 0, 0, 0, 0, 0, 0, 0, - 87, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 0, - 1168, 0, 0, 272, 273, 274, 0, 0, 0, 0, - 0, 0, 0, 0, 179, 275, 276, 277, 278, 0, - 88, 279, 0, 0, 0, 0, 0, 280, 0, 0, - 0, 281, 282, 0, 283, 0, 0, 1418, 0, 0, - 0, 0, 90, 0, 0, 0, 284, 0, 0, 0, - 91, 92, 0, 0, 0, 0, 93, 94, 95, 0, - 285, 940, 286, 0, 287, 0, 288, 289, 0, 96, - 0, 0, 0, 0, 290, 0, 0, 97, 0, 0, - 0, 0, 0, 0, 98, 0, 0, 291, 0, 292, - 293, 100, 101, 0, 0, 0, 294, 0, 0, 0, - 295, 0, 0, 296, 0, 0, 0, 0, 0, 102, - 103, 297, 104, 298, 299, 0, 0, 0, 0, 0, - 1168, 0, 106, 0, 0, 107, 108, 109, 0, 110, - 0, 0, 0, 111, 0, 112, 113, 0, 0, 0, - 0, 0, 0, 0, 114, 115, 116, 0, 180, 0, - 0, 0, 0, 117, 0, 118, 0, 0, 0, 119, - 0, 0, 300, 0, 120, 121, 0, 0, 0, 0, - 0, 122, 123, 0, 124, 0, 0, 0, 0, 125, - 0, 301, 202, 302, 263, 303, 304, 87, 0, 0, - 0, 0, 305, 701, 0, 307, 308, 309, 0, 0, - 272, 273, 274, 0, 310, 702, 0, 0, 0, 0, + 0, 440, 102, 103, 0, 104, 441, 105, 0, 1167, + 0, 0, 0, 0, 0, 106, 0, 0, 107, 108, + 109, 0, 110, 0, 0, 0, 111, 0, 112, 113, + 0, 0, 0, 0, 0, 647, 1228, 114, 115, 116, + 0, 180, 0, 0, 828, 0, 117, 0, 118, 0, + 442, 0, 119, 0, 0, 443, 0, 120, 121, 0, + 0, 444, 0, 0, 122, 123, 0, 124, 0, 0, + 0, 445, 125, 0, 126, 0, 0, 446, 0, 0, + 0, 0, 0, 0, 0, 940, 0, 0, 0, 0, + 0, 0, 0, 940, 0, 940, 940, 901, 0, 940, + 940, 940, 940, 940, 940, 940, 940, 0, 0, 940, + 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, + 0, 0, 0, 0, 0, 1168, 1168, 1168, 1168, 1168, + 1168, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 447, 0, 0, 273, + 274, 0, 0, 0, 0, 0, 0, 0, 448, 0, + 0, 0, 0, 0, 0, 88, 279, 0, 0, 0, + 0, 0, 420, 0, 0, 0, 0, 0, 0, 283, + 0, 0, 0, 0, 0, 0, 0, 90, 1348, 0, + 449, 284, 0, 0, 0, 450, 451, 452, 453, 454, + 455, 456, 94, 95, 0, 285, 0, 286, 0, 457, + 0, 0, 289, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1168, 98, + 0, 0, 0, 0, 421, 293, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, + 0, 0, 0, 0, 102, 0, 0, 0, 0, 422, + 1168, 0, 0, 0, 0, 0, 0, 87, 0, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 0, 1168, 0, + 272, 273, 274, 0, 0, 0, 0, 0, 0, 0, 0, 179, 275, 276, 277, 278, 0, 88, 279, 0, - 0, 0, 0, 0, 280, 0, 0, 0, 281, 282, - 0, 283, 0, 0, 0, 0, 0, 0, 0, 90, - 0, 0, 0, 284, 0, 0, 0, 91, 92, 0, - 0, 0, 0, 93, 94, 95, 0, 285, 0, 286, + 0, 0, 0, 0, 280, 0, 0, 300, 281, 282, + 0, 283, 0, 0, 0, 1415, 0, 0, 0, 90, + 0, 0, 0, 284, 0, 0, 423, 91, 92, 0, + 0, 0, 0, 93, 94, 95, 940, 285, 0, 286, 0, 287, 0, 288, 289, 0, 96, 0, 0, 0, 0, 290, 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, 291, 0, 292, 293, 100, 101, 0, 0, 0, 294, 0, 0, 0, 295, 0, 0, 296, 0, 0, 0, 0, 0, 102, 103, 297, 104, - 298, 299, 0, 0, 0, 0, 0, 0, 0, 106, + 298, 299, 0, 1168, 0, 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, 111, 0, 112, 113, 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, 0, 180, 0, 0, 0, 0, @@ -1842,8 +1806,8 @@ static const short yytable[] = { 129, 0, 120, 121, 0, 0, 0, 0, 0, 122, 123, 0, 124, 0, 0, 0, 0, 125, 0, 301, 202, 302, 263, 303, 304, 87, 0, 0, 0, 0, 305, - 0, 0, 307, 308, 309, 0, 0, 272, 273, 274, - 0, 310, 1027, 0, 0, 0, 0, 0, 179, 275, + 701, 0, 307, 308, 309, 0, 0, 272, 273, 274, + 0, 310, 702, 0, 0, 0, 0, 0, 179, 275, 276, 277, 278, 0, 88, 279, 0, 0, 0, 0, 0, 280, 0, 0, 0, 281, 282, 0, 283, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, @@ -1858,18 +1822,55 @@ static const short yytable[] = { 129, 108, 109, 0, 110, 0, 0, 0, 111, 0, 112, 113, 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, 0, 180, 0, 0, 0, 0, 117, 0, 118, + 0, 0, 0, 119, 0, 0, 300, 0, 120, 121, + 0, 0, 0, 0, 0, 122, 123, 0, 124, 0, + 0, 0, 0, 125, 0, 301, 202, 302, 263, 303, + 304, 87, 0, 0, 0, 0, 305, 0, 0, 307, + 308, 309, 0, 0, 272, 273, 274, 0, 310, 1027, + 0, 0, 0, 0, 0, 179, 275, 276, 277, 278, + 0, 88, 279, 0, 0, 0, 0, 0, 280, 0, + 0, 0, 281, 282, 0, 283, 0, 0, 0, 0, + 0, 0, 0, 90, 0, 0, 0, 284, 0, 0, + 0, 91, 92, 0, 0, 0, 0, 93, 94, 95, + 0, 285, 0, 286, 0, 287, 0, 288, 289, 0, + 96, 0, 0, 0, 0, 290, 0, 0, 97, 0, + 0, 0, 0, 0, 0, 98, 0, 0, 291, 0, + 292, 293, 100, 101, 0, 0, 0, 294, 0, 0, + 0, 295, 0, 0, 296, 0, 0, 0, 0, 0, + 102, 103, 297, 104, 298, 299, 0, 0, 0, 0, + 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, + 110, 0, 0, 0, 111, 0, 112, 113, 0, 0, + 0, 0, 0, 0, 0, 114, 115, 116, 0, 180, + 0, 0, 0, 0, 117, 0, 118, 0, 0, 0, + 119, 0, 0, 300, 87, 120, 121, 0, 0, 0, + 0, 0, 122, 123, 0, 124, 0, 1153, 273, 274, + 125, 0, 301, 202, 302, 263, 303, 304, 0, 1154, + 1155, 1156, 1157, 305, 88, 279, 307, 308, 309, 0, + 0, 280, 0, 0, 0, 310, 1064, 0, 283, 0, + 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, + 284, 0, 0, 0, 91, 92, 0, 0, 0, 0, + 93, 94, 95, 0, 285, 0, 286, 0, 0, 0, + 1158, 289, 0, 96, 0, 0, 0, 0, 0, 0, + 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, + 0, 0, 0, 292, 293, 100, 101, 0, 0, 0, + 0, 0, 0, 0, 1159, 0, 0, 296, 0, 0, + 0, 0, 0, 102, 103, 297, 104, 298, 299, 0, + 0, 0, 0, 0, 0, 0, 106, 0, 0, 107, + 108, 109, 0, 110, 0, 0, 0, 111, 0, 112, + 113, 0, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 0, 0, 0, 0, 0, 0, 117, 0, 118, 0, 0, 0, 119, 0, 0, 300, 87, 120, 121, 0, 0, 0, 0, 0, 122, 123, 0, 124, 0, - 1153, 273, 274, 125, 0, 301, 202, 302, 263, 303, - 304, 0, 1154, 1155, 1156, 1157, 305, 88, 279, 307, - 308, 309, 0, 0, 280, 0, 0, 0, 310, 1064, + 929, 273, 274, 125, 0, 301, 202, 1160, 263, 303, + 304, 0, 0, 0, 0, 0, 1161, 88, 279, 1162, + 1163, 1164, 0, 0, 280, 0, 0, 0, 1165, 1390, 0, 283, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 284, 0, 0, 0, 91, 92, 0, 0, 0, 0, 93, 94, 95, 0, 285, 0, 286, - 0, 0, 0, 1158, 289, 0, 96, 0, 0, 0, + 0, 930, 0, 931, 289, 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 292, 293, 100, 101, - 0, 0, 0, 0, 0, 0, 0, 1159, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 102, 103, 297, 104, 298, 299, 0, 0, 0, 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, @@ -1878,9 +1879,9 @@ static const short yytable[] = { 129, 117, 0, 118, 0, 0, 0, 119, 0, 0, 300, 87, 120, 121, 0, 0, 0, 0, 0, 122, 123, 0, 124, 0, 0, 273, 274, 125, 0, 301, 202, - 1160, 263, 303, 304, 0, 0, 0, 0, 0, 1161, - 88, 519, 1162, 1163, 1164, 0, 0, 520, 0, 0, - 0, 1165, 1393, 0, 521, 0, 0, 0, 0, 0, + 932, 263, 303, 304, 0, 0, 0, 0, 0, 933, + 88, 519, 934, 935, 936, 0, 0, 520, 0, 0, + 0, 937, 1286, 0, 521, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 91, 92, 0, 0, 0, 0, 93, 94, 95, 0, 285, 0, 286, 0, 0, 0, 0, 522, 0, 96, @@ -2336,96 +2337,144 @@ static const short yytable[] = { 129, 932, 263, 303, 304, 0, 0, 0, 0, 0, 933, 88, 279, 934, 935, 936, 0, 0, 280, 0, 0, 0, 937, 0, 0, 283, 0, 0, 0, 0, 0, - 0, 0, 90, 0, 0, 0, 284, 0, 0, 0, - 91, 92, 0, 0, 0, 0, 93, 94, 95, 0, + 0, 0, 90, 0, 0, 0, 284, 0, 440, 0, + 91, 92, 0, 441, 0, 0, 93, 94, 95, 0, 285, 0, 286, 0, 930, 0, 931, 289, 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 292, - 293, 100, 101, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 296, 0, 0, 0, 0, 0, 102, - 103, 297, 104, 298, 299, 0, 0, 0, 0, 0, - 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, - 0, 0, 0, 111, 0, 112, 113, 0, 0, 87, - 0, 0, 0, 0, 114, 115, 116, 0, 0, 0, - 0, 0, 0, 117, 0, 118, 0, 0, 0, 119, - 0, 440, 300, 179, 120, 121, 441, 0, 0, 88, - 0, 122, 123, 0, 124, 0, 89, 0, 0, 125, + 293, 100, 101, 0, 0, 0, 0, 442, 0, 0, + 0, 0, 443, 296, 0, 0, 0, 0, 444, 102, + 103, 297, 104, 298, 299, 0, 0, 0, 445, 0, + 0, 0, 106, 0, 446, 107, 108, 109, 0, 110, + 0, 0, 0, 111, 0, 112, 113, 0, 0, 0, + 0, 0, 0, 0, 114, 115, 116, 0, 0, 440, + 0, 0, 0, 117, 441, 118, 0, 0, 0, 119, + 0, 0, 300, 0, 120, 121, 0, 0, 0, 0, + 0, 122, 123, 0, 124, 0, 0, 0, 0, 125, 0, 301, 202,-32768, 263, 303, 304, 0, 0, 0, - 0, 90, 933, 0, 0, 934, 935, 936, 0, 91, - 92, 0, 0, 0, 937, 93, 94, 95, 0, 0, - 442, 0, 0, 0, 0, 443, 0, 0, 96, 0, - 0, 444, 0, 0, 0, 0, 97, 0, 0, 0, - 0, 445, 0, 98, 0, 0, 0, 446, 99, 0, - 100, 101, 0, 0, 0, 0, 0, 0, 0, 440, - 0, 0, 0, 0, 441, 0, 0, 0, 102, 103, - 0, 104, 0, 105, 0, 0, 0, 0, 0, 0, - 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, - 0, 0, 111, 0, 112, 113, 0, 0, 0, 0, - 0, 0, 828, 114, 115, 116, 0, 180, 442, 0, - 0, 0, 117, 443, 118, 0, 447, 0, 119, 444, - 0, 0, 0, 120, 121, 0, 0, 440, 448, 445, - 122, 123, 441, 124, 0, 446, 0, 0, 125, 0, - 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 933, 447, 0, 934, 935, 936, 442, 0, + 0, 0, 0, 443, 937, 448, 0, 0, 0, 444, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 445, + 0, 0, 0, 0, 0, 446, 0, 0, 0, 0, + 0, 87, 0, 0, 0, 0, 0, 449, 0, 0, + 0, 0, 450, 451, 452, 453, 454, 455, 456, 0, + 0, 0, 0, 0, 0, 1245, 457, 0, 0, 0, + 0, 88, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 449, 0, 0, 901, 0, 450, 451, 452, 453, 454, - 455, 456, 0, 0, 0, 0, 442, 0, 1245, 457, - 0, 443, 0, 0, 0, 0, 0, 444, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 445, 0, 0, - 0, 0, 0, 446, 447, 0, 0, 0, 0, 87, + 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, + 0, 91, 92, 0, 447, 0, 0, 93, 94, 95, 0, 0, 0, 0, 0, 0, 448, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, - 0, 0, 0, 0, 0, 0, 89, 0, 449, 0, + 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, + 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, + 99, 0, 100, 101, 0, 0, 0, 0, 449, 0, 0, 0, 0, 450, 451, 452, 453, 454, 455, 456, - 0, 90, 0, 0, 0, 0, 0, 457, 0, 91, - 92, 0, 447, 0, 0, 93, 94, 95, 0, 0, - 0, 0, 0, 0, 448, 0, 0, 0, 96, 0, - 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, - 0, 0, 0, 98, 0, 0, 0, 0, 99, 0, - 100, 101, 0, 0, 0, 0, 449, 0, 0, 0, - 0, 450, 451, 452, 453, 454, 455, 456, 102, 103, - 0, 104, 0, 105, 0, 457, 0, 0, 0, 0, - 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, - 0, 0, 111, 0, 112, 113, 0, 0, 0, 0, - 0, 0, 87, 114, 115, 116, 0, 0, 0, 0, - 0, 0, 117, 0, 118, 0, 0, 0, 119, 0, - 0, 981, 0, 120, 121, 0, 0, 0, 0, 0, - 122, 123, 88, 124, 0, 539, 0, 0, 125, 89, - 126, 202, 254, 263, 0, 982, 0, 232, 233, 234, - 235, 983, 237, 238, 90, 0, 0, 0, 0, 0, - 0, 229, 91, 92, 0, 0, 0, 0, 93, 94, - 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, - 230, 0, 0, 0, 0, 0, 98, 0, 0, 0, - 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, + 102, 103, 0, 104, 0, 105, 0, 457, 0, 0, + 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, + 110, 0, 0, 0, 111, 0, 112, 113, 0, 0, + 0, 0, 0, 0, 87, 114, 115, 116, 0, 0, + 0, 0, 0, 0, 117, 0, 118, 0, 0, 0, + 119, 0, 0, 981, 0, 120, 121, 0, 0, 0, + 0, 0, 122, 123, 88, 124, 0, 539, 0, 0, + 125, 89, 126, 202, 254, 263, 0, 982, 0, 232, + 233, 234, 235, 983, 237, 238, 90, 0, 0, 0, + 0, 0, 0, 229, 91, 92, 0, 0, 0, 0, + 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, + 0, 97, 230, 0, 0, 0, 0, 0, 98, 0, + 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 102, 103, 0, 104, 0, 105, 0, 0, 0, - 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, - 0, 110, 0, 0, 0, 111, 0, 112, 113, 0, - 0, 0, 0, 0, 0, 87, 114, 115, 116, 0, - 0, 0, 0, 0, 0, 117, 0, 118, 0, 0, - 0, 119, 0, 0, 0, 0, 120, 121, 0, 0, - 0, 0, 0, 122, 123, 88, 124, 0, 0, 0, - 0, 125, 89, 126, 0, 231, 0, 0, 0, 0, - 232, 233, 234, 235, 236, 237, 238, 90, 0, 0, - 0, 0, 0, 0, 229, 91, 92, 0, 0, 0, - 0, 93, 94, 95, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, - 0, 0, 97, 230, 0, 0, 0, 0, 0, 98, - 0, 0, 0, 0, 99, 0, 100, 101, 0, 0, + 0, 0, 0, 102, 103, 0, 104, 0, 105, 0, + 0, 0, 0, 0, 0, 0, 106, 0, 0, 107, + 108, 109, 0, 110, 0, 0, 0, 111, 0, 112, + 113, 0, 0, 0, 0, 0, 0, 87, 114, 115, + 116, 0, 0, 0, 0, 0, 0, 117, 0, 118, + 0, 0, 0, 119, 0, 0, 0, 0, 120, 121, + 0, 0, 0, 0, 0, 122, 123, 88, 124, 0, + 0, 0, 0, 125, 89, 126, 0, 231, 0, 0, + 0, 0, 232, 233, 234, 235, 236, 237, 238, 90, + 0, 0, 0, 0, 0, 0, 229, 91, 92, 0, + 0, 0, 0, 93, 94, 95, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, + 0, 0, 0, 0, 97, 230, 0, 0, 0, 0, + 0, 98, 0, 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 103, 0, 104, 0, 105, - 0, 0, 0, 0, 0, 0, 0, 106, 0, 0, - 107, 108, 109, 0, 110, 0, 0, 0, 111, 0, - 112, 113, 0, 0, 0, 0, 0, 0, 87, 114, - 115, 116, 0, 0, 0, 0, 0, 0, 117, 0, - 118, 0, 0, 0, 119, 0, 0, 0, 0, 120, - 121, 0, 179, 0, 0, 0, 122, 123, 88, 124, - 0, 0, 0, 0, 125, 89, 126, 0, 231, 0, - 0, 0, 0, 232, 233, 234, 235, 236, 237, 238, - 90, 0, 0, 0, 0, 0, 0, 0, 91, 92, - 0, 0, 0, 0, 93, 94, 95, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, + 0, 0, 0, 0, 0, 0, 102, 103, 0, 104, + 0, 105, 0, 0, 0, 0, 0, 0, 0, 106, + 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, + 111, 0, 112, 113, 0, 0, 0, 0, 0, 0, + 87, 114, 115, 116, 0, 0, 0, 0, 0, 0, + 117, 0, 118, 0, 0, 0, 119, 0, 0, 0, + 0, 120, 121, 0, 179, 0, 0, 0, 122, 123, + 88, 124, 0, 0, 0, 0, 125, 89, 126, 0, + 231, 0, 0, 0, 0, 232, 233, 234, 235, 236, + 237, 238, 90, 0, 0, 0, 0, 0, 0, 0, + 91, 92, 0, 0, 0, 0, 93, 94, 95, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, + 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, + 0, 0, 0, 0, 98, 0, 0, 0, 0, 99, + 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, + 103, 0, 104, 0, 105, 0, 0, 0, 0, 0, + 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, + 87, 0, 0, 111, 0, 112, 113, 0, 0, 0, + 0, 0, 0, 0, 114, 115, 116, 0, 180, 0, + 0, 0, 0, 117, 0, 118, 0, 0, 0, 119, + 88, 0, 0, 0, 120, 121, 0, 89, 0, 0, + 0, 122, 123, 0, 124, 0, 0, 0, 0, 125, + 0, 126, 90, 0, 0, 303, 0, 0, 0, 0, + 91, 92, 0, 474, 0, 0, 93, 94, 95, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, + 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, + 0, 0, 0, 0, 98, 0, 0, 0, 0, 99, + 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, + 103, 0, 104, 0, 105, 0, 0, 87, 0, 0, + 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, + 0, 0, 0, 111, 0, 112, 113, 0, 0, 0, + 0, 0, 0, 0, 114, 115, 116, 88, 0, 0, + 0, 0, 0, 117, 89, 118, 0, 0, 0, 119, + 0, 0, 0, 0, 120, 121, 0, 0, 0, 90, + 0, 122, 123, 0, 124, 0, 0, 91, 92, 125, + 0, 126, 0, 93, 94, 95, 0, 0, 0, 0, + 0, 0, 0, 376, 0, 0, 96, 0, 0, 0, + 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, + 0, 98, 0, 0, 0, 0, 99, 0, 100, 101, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 102, 103, 0, 104, + 0, 105, 0, 0, 87, 0, 0, 0, 0, 106, + 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, + 111, 0, 112, 113, 0, 0, 0, 0, 0, 0, + 0, 114, 115, 116, 88, 0, 0, 0, 0, 0, + 117, 89, 118, 0, 0, 0, 119, 0, 0, 0, + 0, 120, 121, 0, 0, 0, 90, 0, 122, 123, + 0, 124, 0, 0, 91, 92, 125, 0, 126, 0, + 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, + 697, 0, 0, 96, 0, 0, 0, 0, 0, 0, + 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, + 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 102, 103, 0, 104, 0, 105, 0, + 0, 87, 0, 0, 0, 0, 106, 0, 0, 107, + 108, 109, 0, 110, 0, 0, 0, 111, 0, 112, + 113, 0, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 88, 0, 0, 0, 0, 0, 117, 89, 118, + 0, 0, 0, 119, 0, 0, 0, 0, 120, 121, + 0, 0, 0, 90, 0, 122, 123, 0, 124, 0, + 0, 91, 92, 125, 0, 126, 0, 93, 94, 95, + 0, 0, 0, 0, 0, 0, 0, 912, 0, 0, + 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, + 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, + 99, 0, 100, 101, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 102, 103, 0, 104, 0, 105, 0, 0, 87, 0, + 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, + 110, 0, 0, 0, 111, 0, 112, 113, 0, 0, + 0, 0, 179, 0, 0, 114, 115, 116, 88, 0, + 0, 0, 0, 0, 117, 89, 118, 0, 0, 0, + 119, 0, 0, 0, 0, 120, 121, 0, 0, 0, + 90, 0, 122, 123, 0, 124, 0, 0, 91, 92, + 125, 0, 126, 0, 93, 94, 95, 0, 0, 0, + 0, 0, 0, 0, 1106, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2438,33 +2487,62 @@ static const short yytable[] = { 129, 0, 0, 120, 121, 0, 89, 0, 0, 0, 122, 123, 0, 124, 0, 0, 0, 0, 125, 0, 126, 90, 0, 0, 303, 0, 0, 0, 0, 91, 92, - 0, 474, 0, 0, 93, 94, 95, 0, 0, 0, + 0, 0, 0, 0, 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, - 104, 0, 105, 0, 0, 87, 0, 0, 0, 0, + 104, 0, 105, 0, 0, 0, 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, 0, - 0, 111, 0, 112, 113, 0, 0, 0, 0, 0, - 0, 0, 114, 115, 116, 88, 0, 0, 0, 0, - 0, 117, 89, 118, 0, 0, 0, 119, 0, 0, - 0, 0, 120, 121, 0, 0, 0, 90, 0, 122, - 123, 0, 124, 0, 0, 91, 92, 125, 0, 126, + 0, 111, 0, 112, 113, 0, 0, 87, 0, 0, + 0, 0, 114, 115, 116, 0, 0, 0, 0, 0, + 0, 117, 0, 118, 0, 0, 0, 119, 612, 0, + 613, 0, 120, 121, 0, 0, 0, 88, 0, 122, + 123, 0, 124, 0, 89, 0, 0, 125, 0, 126, + 0, 0, 263, 614, 0, 0, 0, 615, 0, 90, + 0, 0, 0, 0, 0, 0, 0, 91, 92, 0, + 0, 0, 0, 93, 94, 95, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 96, 0, 616, 0, + 0, 617, 618, 0, 97, 0, 0, 0, 0, 0, + 0, 98, 0, 0, 0, 619, 99, 0, 100, 101, + 0, 0, 620, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 102, 103, 621, 104, + 622, 105, 0, 0, 87, 0, 0, 0, 0, 106, + 623, 0, 107, 108, 109, 0, 110, 0, 273, 274, + 111, 0, 112, 113, 0, 0, 0, 0, 0, 624, + 0, 114, 115, 116, 88, 519, 0, 0, 0, 0, + 117, 520, 118, 0, 0, 0, 119, 0, 521, 0, + 0, 120, 121, 0, 0, 0, 90, 0, 122, 123, + 625, 124, 0, 0, 91, 92, 125, 0, 126, 0, + 93, 94, 95, 0, 285, 0, 286, 0, 0, 0, + 0, 522, 0, 96, 0, 0, 0, 0, 0, 0, + 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, + 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 0, 102, 103, 0, 104, 0, 105, 0, + 0, 0, 0, 0, 0, 0, 106, 0, 0, 107, + 108, 109, 0, 110, 0, 87, 0, 111, 0, 112, + 113, 0, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 496, 0, 0, 0, 0, 497, 117, 0, 118, + 0, 0, 0, 119, 0, 88, 0, 0, 120, 121, + 0, 0, 89, 0, 0, 122, 123, 0, 124, 0, + 0, 498, 0, 125, 0, 126, 0, 90, 0, 0, + 0, 0, 0, 0, 0, 91, 92, 0, 0, 0, 0, 93, 94, 95, 0, 0, 0, 0, 0, 0, - 0, 376, 0, 0, 96, 0, 0, 0, 0, 0, - 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, + 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, + 0, 499, 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 99, 0, 100, 101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, 104, 0, 105, 0, 0, 87, 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, 111, 0, - 112, 113, 0, 0, 0, 0, 0, 0, 0, 114, + 112, 113, 0, 0, 0, 0, 179, 0, 0, 114, 115, 116, 88, 0, 0, 0, 0, 0, 117, 89, 118, 0, 0, 0, 119, 0, 0, 0, 0, 120, 121, 0, 0, 0, 90, 0, 122, 123, 0, 124, 0, 0, 91, 92, 125, 0, 126, 0, 93, 94, - 95, 0, 0, 0, 0, 0, 0, 0, 697, 0, + 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, @@ -2473,88 +2551,45 @@ static const short yytable[] = { 129, 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, 111, 0, 112, 113, 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, 88, - 0, 0, 0, 0, 0, 117, 89, 118, 0, 0, - 0, 119, 0, 0, 0, 0, 120, 121, 0, 0, + 180, 0, 0, 0, 0, 117, 89, 118, 0, 0, + 0, 119, 0, 0, 0, 0, 120, 121, 0, 768, 0, 90, 0, 122, 123, 0, 124, 0, 0, 91, 92, 125, 0, 126, 0, 93, 94, 95, 0, 0, - 0, 0, 0, 0, 0, 912, 0, 0, 96, 0, - 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, + 0, 0, 0, 0, 0, 0, 97, 0, 769, 0, 0, 0, 0, 98, 0, 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, 104, 0, 105, 0, 0, 87, 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, 111, 0, 112, 113, 0, 0, 0, 0, - 179, 0, 0, 114, 115, 116, 88, 0, 0, 0, + 0, 0, 0, 114, 115, 116, 88, 0, 0, 0, 0, 0, 117, 89, 118, 0, 0, 0, 119, 0, 0, 0, 0, 120, 121, 0, 0, 0, 90, 0, 122, 123, 0, 124, 0, 0, 91, 92, 125, 0, - 126, 0, 93, 94, 95, 0, 0, 0, 0, 0, - 0, 0, 1106, 0, 0, 96, 0, 0, 0, 0, - 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, - 98, 0, 0, 0, 0, 99, 0, 100, 101, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 102, 103, 0, 104, 0, - 105, 0, 0, 0, 0, 0, 0, 0, 106, 0, - 0, 107, 108, 109, 0, 110, 87, 0, 0, 111, - 0, 112, 113, 0, 0, 0, 0, 0, 0, 0, - 114, 115, 116, 0, 180, 0, 0, 0, 0, 117, - 0, 118, 0, 0, 0, 119, 88, 0, 0, 0, - 120, 121, 0, 89, 0, 0, 0, 122, 123, 0, - 124, 0, 0, 0, 0, 125, 0, 126, 90, 0, - 0, 303, 0, 0, 0, 0, 91, 92, 0, 0, - 0, 0, 93, 94, 95, 0, 0, 0, 0, 0, + 126, 0, 93, 94, 95, 189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, - 98, 0, 0, 0, 0, 99, 0, 100, 101, 0, + 98, 0, 0, 0, 0, 190, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, 104, 0, - 105, 0, 0, 0, 0, 0, 0, 0, 106, 0, + 105, 0, 0, 87, 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, 111, - 0, 112, 113, 0, 0, 87, 0, 0, 0, 0, - 114, 115, 116, 0, 0, 0, 0, 0, 0, 117, - 0, 118, 0, 0, 0, 119, 612, 0, 613, 0, - 120, 121, 0, 0, 0, 88, 0, 122, 123, 0, - 124, 0, 89, 0, 0, 125, 0, 126, 0, 0, - 263, 614, 0, 0, 0, 615, 0, 90, 0, 0, - 0, 0, 0, 0, 0, 91, 92, 0, 0, 0, - 0, 93, 94, 95, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 96, 0, 616, 0, 0, 617, - 618, 0, 97, 0, 0, 0, 0, 0, 0, 98, - 0, 0, 0, 619, 99, 0, 100, 101, 0, 0, - 620, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 103, 621, 104, 622, 105, - 0, 0, 87, 0, 0, 0, 0, 106, 623, 0, - 107, 108, 109, 0, 110, 0, 273, 274, 111, 0, - 112, 113, 0, 0, 0, 0, 0, 624, 0, 114, - 115, 116, 88, 519, 0, 0, 0, 0, 117, 520, - 118, 0, 0, 0, 119, 0, 521, 0, 0, 120, - 121, 0, 0, 0, 90, 0, 122, 123, 625, 124, - 0, 0, 91, 92, 125, 0, 126, 0, 93, 94, - 95, 0, 285, 0, 286, 0, 0, 0, 0, 522, - 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, - 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, - 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, - 0, 102, 103, 0, 104, 0, 105, 0, 0, 0, - 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, - 0, 110, 0, 87, 0, 111, 0, 112, 113, 0, - 0, 0, 0, 0, 0, 0, 114, 115, 116, 496, - 0, 0, 0, 0, 497, 117, 0, 118, 0, 0, - 0, 119, 0, 88, 0, 0, 120, 121, 0, 0, - 89, 0, 0, 122, 123, 0, 124, 0, 0, 498, - 0, 125, 0, 126, 0, 90, 0, 0, 0, 0, - 0, 0, 0, 91, 92, 0, 0, 0, 0, 93, + 0, 112, 113, 0, 0, 0, 0, 0, 0, 0, + 114, 115, 116, 88, 0, 0, 0, 0, 0, 117, + 89, 118, 0, 0, 0, 119, 0, 0, 0, 0, + 120, 121, 0, 0, 0, 90, 0, 122, 123, 0, + 124, 0, 0, 91, 92, 125, 0, 126, 0, 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 96, 0, 0, 0, 0, 0, 0, 499, + 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, 0, - 0, 500, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, 104, 0, 105, 0, 0, 87, 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, 111, 0, 112, 113, - 0, 0, 0, 0, 179, 0, 0, 114, 115, 116, - 88, 0, 0, 0, 0, 0, 117, 89, 118, 0, + 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, + 88, 0, 548, 0, 0, 0, 117, 89, 118, 0, 0, 0, 119, 0, 0, 0, 0, 120, 121, 0, 0, 0, 90, 0, 122, 123, 0, 124, 0, 0, 91, 92, 125, 0, 126, 0, 93, 94, 95, 0, @@ -2564,15 +2599,15 @@ static const short yytable[] = { 129, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, 104, 0, 105, 0, 0, 87, 0, 0, - 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, + 0, 0, 106, 1101, 0, 107, 108, 109, 0, 110, 0, 0, 0, 111, 0, 112, 113, 0, 0, 0, - 0, 0, 0, 0, 114, 115, 116, 88, 180, 0, + 0, 0, 0, 0, 114, 115, 116, 88, 0, 997, 0, 0, 0, 117, 89, 118, 0, 0, 0, 119, - 0, 0, 0, 0, 120, 121, 0, 768, 0, 90, + 0, 0, 0, 0, 120, 121, 0, 0, 0, 90, 0, 122, 123, 0, 124, 0, 0, 91, 92, 125, 0, 126, 0, 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, - 0, 0, 0, 0, 97, 0, 769, 0, 0, 0, + 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, 104, @@ -2583,10 +2618,10 @@ static const short yytable[] = { 129, 117, 89, 118, 0, 0, 0, 119, 0, 0, 0, 0, 120, 121, 0, 0, 0, 90, 0, 122, 123, 0, 124, 0, 0, 91, 92, 125, 0, 126, 0, - 93, 94, 95, 189, 0, 0, 0, 0, 0, 0, + 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, - 0, 0, 0, 190, 0, 100, 101, 0, 0, 0, + 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, 104, 0, 105, 0, 0, 87, 0, 0, 0, 0, 106, 0, 0, 107, @@ -2599,466 +2634,387 @@ static const short yytable[] = { 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, - 99, 0, 100, 101, 0, 0, 0, 0, 0, 0, + 208, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, 104, 0, 105, 0, 0, 87, 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, 111, 0, 112, 113, 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, 88, 0, - 548, 0, 0, 0, 117, 89, 118, 0, 0, 0, + 0, 0, 0, 0, 117, 89, 118, 0, 0, 0, 119, 0, 0, 0, 0, 120, 121, 0, 0, 0, 90, 0, 122, 123, 0, 124, 0, 0, 91, 92, 125, 0, 126, 0, 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, - 0, 0, 98, 0, 0, 0, 0, 99, 0, 100, + 0, 0, 98, 0, 0, 0, 0, 210, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, - 104, 0, 105, 0, 0, 87, 0, 0, 0, 0, - 106, 1101, 0, 107, 108, 109, 0, 110, 0, 0, - 0, 111, 0, 112, 113, 0, 0, 0, 0, 0, - 0, 0, 114, 115, 116, 88, 0, 997, 0, 0, - 0, 117, 89, 118, 0, 0, 0, 119, 0, 0, + 104, 0, 105, 0, 0, 0, 0, 0, 0, 0, + 106, 0, 0, 107, 108, 109, 0, 110, 0, 273, + 274, 111, 0, 112, 113, 0, 0, 0, 0, 0, + 0, 0, 114, 115, 116, 88, 279, 0, 0, 0, + 0, 117, 420, 118, 0, 0, 0, 119, 0, 283, 0, 0, 120, 121, 0, 0, 0, 90, 0, 122, - 123, 0, 124, 0, 0, 91, 92, 125, 0, 126, - 0, 93, 94, 95, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, - 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, - 0, 0, 0, 0, 99, 0, 100, 101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 103, 0, 104, 0, 105, - 0, 0, 87, 0, 0, 0, 0, 106, 0, 0, - 107, 108, 109, 0, 110, 0, 0, 0, 111, 0, - 112, 113, 0, 0, 0, 0, 0, 0, 0, 114, - 115, 116, 88, 0, 0, 0, 0, 0, 117, 89, - 118, 0, 0, 0, 119, 0, 0, 0, 0, 120, - 121, 0, 0, 0, 90, 0, 122, 123, 0, 124, - 0, 0, 91, 92, 125, 0, 126, 0, 93, 94, - 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, - 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, - 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 102, 103, 0, 104, 0, 105, 0, 0, 87, - 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, - 0, 110, 0, 0, 0, 111, 0, 112, 113, 0, - 0, 0, 0, 0, 0, 0, 114, 115, 116, 88, - 0, 0, 0, 0, 0, 117, 89, 118, 0, 0, - 0, 119, 0, 0, 0, 0, 120, 121, 0, 0, - 0, 90, 0, 122, 123, 0, 124, 0, 0, 91, - 92, 125, 0, 126, 0, 93, 94, 95, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, - 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, - 0, 0, 0, 98, 0, 0, 0, 0, 208, 0, - 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, - 0, 104, 0, 105, 0, 0, 87, 0, 0, 0, - 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, - 0, 0, 111, 0, 112, 113, 0, 0, 0, 0, - 0, 0, 0, 114, 115, 116, 88, 0, 0, 0, - 0, 0, 117, 89, 118, 0, 0, 0, 119, 0, - 0, 0, 0, 120, 121, 0, 0, 0, 90, 0, - 122, 123, 0, 124, 0, 0, 91, 92, 125, 0, - 126, 0, 93, 94, 95, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, - 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, - 98, 0, 0, 0, 0, 210, 0, 100, 101, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 102, 103, 0, 104, 0, - 105, 0, 0, 0, 0, 0, 0, 0, 106, 0, - 0, 107, 108, 109, 0, 110, 0, 273, 274, 111, - 0, 112, 113, 0, 0, 0, 0, 0, 0, 0, - 114, 115, 116, 88, 279, 0, 0, 0, 0, 117, - 420, 118, 0, 0, 0, 119, 0, 283, 0, 0, - 120, 121, 0, 0, 0, 90, 0, 122, 123, 284, - 124, 0, 0, 0, 0, 125, 0, 126, 0, 0, - 94, 95, 0, 285, 0, 286, 0, 273, 274, 0, - 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 88, 279, 0, 0, 98, 566, 0, - 420, 0, 421, 293, 0, 0, 0, 283, 0, 0, - 0, 0, 0, 0, 0, 90, 296, 0, 0, 284, - 0, 0, 102, 0, 297, 0, 298, 422, 0, 0, - 94, 95, 0, 285, 0, 286, 0, 0, 0, 0, - 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, - 0, 0, 421, 293, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 300, 296, 0, 0, 2, - 0, 0, 102, 0, 297, 0, 298, 422, 3, 0, - 0, 4, 0, 5, 423, 202, 0, 263, 303, 304, - 0, 0, 0, 6, 0, 7, 0, 0, 0, 8, - 9, 10, 0, 0, 11, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 0, 0, 13, 0, 0, 0, - 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, - 0, 0, 0, 0, 423, 202, 0, 263, 303, 304, - 0, 0, 15, 0, 16, 0, 17, 18, 0, 0, + 123, 284, 124, 0, 0, 0, 0, 125, 0, 126, + 0, 0, 94, 95, 0, 285, 0, 286, 0, 273, + 274, 0, 289, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 88, 279, 0, 0, 98, + 566, 0, 420, 0, 421, 293, 0, 0, 0, 283, + 0, 0, 0, 0, 0, 0, 0, 90, 296, 0, + 0, 284, 0, 0, 102, 0, 297, 0, 298, 422, + 0, 0, 94, 95, 0, 285, 0, 286, 0, 0, + 0, 0, 289, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, + 0, 0, 0, 0, 421, 293, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 300, 296, 0, + 0, 2, 0, 0, 102, 0, 297, 0, 298, 422, + 3, 0, 0, 4, 0, 5, 423, 202, 0, 263, + 303, 304, 0, 0, 0, 6, 0, 7, 0, 0, + 0, 8, 9, 10, 0, 0, 11, 0, 0, 0, + 0, 0, 12, 0, 0, 0, 0, 0, 13, 0, + 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, + 0, 0, 0, 0, 0, 0, 423, 202, 0, 263, + 303, 304, 0, 0, 15, 0, 16, 0, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 21, 22, 0, 0, 0, 0, - 0, 23, 24, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 25, 26, 27, 0, 0, 0, 28, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, - 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, - 31 + 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, + 0, 0, 0, 0, 0, 0, 21, 22, 0, 0, + 0, 0, 0, 23, 24, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 25, 26, 27, 0, 0, 0, + 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 0, 0, 0, 0, 0, 30, 0, 0, 0, + 0, 0, 31 }; static const short yycheck[] = { 3, - 476, 133, 6, 162, 199, 145, 416, 159, 740, 26, - 14, 907, 901, 556, 18, 19, 363, 21, 844, 151, - 343, 25, 457, 566, 475, 29, 30, 1171, 731, 480, - 5, 775, 776, 487, 599, 7, 601, 602, 1332, 1333, - 50, 188, 786, 5, 10, 50, 8, 35, 48, 37, - 4, 50, 6, 36, 464, 19, 50, 60, 22, 114, - 7, 41, 274, 1099, 114, 114, 10, 106, 36, 114, - 58, 12, 38, 508, 286, 36, 50, 114, 82, 6, - 638, 639, 640, 641, 642, 49, 36, 41, 14, 61, - 78, 36, 168, 19, 38, 67, 801, 655, 7, 25, - 68, 70, 37, 15, 555, 5, 19, 802, 267, 114, - 98, 270, 9, 1412, 1413, 56, 37, 1411, 79, 99, - 188, 189, 200, 58, 112, 89, 67, 131, 97, 108, - 134, 135, 106, 1488, 138, 139, 49, 141, 142, 39, - 591, 145, 121, 51, 849, 149, 150, 111, 114, 153, - 60, 155, 156, 157, 1453, 850, 82, 194, 162, 163, - 9, 216, 201, 310, 76, 243, 216, 216, 218, 218, - 114, 216, 189, 218, 178, 163, 89, 112, 86, 134, - 152, 1160, 1161, 1162, 1163, 1164, 1165, 99, 1543, 149, - 600, 112, 164, 197, 645, 172, 200, 409, 111, 9, - 129, 178, 206, 98, 133, 131, 216, 134, 135, 209, - 183, 216, 195, 216, 141, 169, 142, 216, 1044, 1255, - 115, 764, 197, 149, 196, 213, 153, 195, 155, 201, - 202, 203, 204, 205, 206, 207, 163, 168, 803, 243, - 257, 944, 945, 215, 79, 195, 212, 251, 81, 196, - 195, 995, 178, 217, 1553, 217, 1550, 204, 205, 206, - 207, 195, 188, 267, 197, 195, 270, 271, 215, 132, - 79, 197, 205, 212, 728, 195, 207, 56, 217, 213, - 206, 114, 145, 213, 1263, 1429, 851, 196, 846, 124, - 1186, 126, 195, 213, 311, 204, 205, 206, 207, 196, - 858, 859, 860, 861, 862, 863, 215, 204, 205, 206, - 207, 33, 190, 191, 461, 124, 1295, 126, 215, 336, - 337, 338, 210, 195, 251, 1304, 1305, 1306, 1307, 1308, - 1309, 1310, 1311, 55, 1313, 339, 340, 585, 586, 587, - 588, 213, 77, 778, 79, 349, 101, 196, 70, 71, - 367, 355, 201, 202, 203, 204, 205, 206, 207, 363, - 492, 167, 55, 77, 368, 79, 215, 1454, 1455, 101, - 374, 375, 216, 696, 218, 97, 380, 70, 382, 745, - 815, 113, 386, 749, 707, 1211, 196, 194, 5, 124, - 1477, 126, 802, 149, 204, 205, 206, 207, 745, 197, - 122, 64, 749, 1248, 97, 215, 1251, 817, 818, 194, - 124, 415, 126, 339, 340, 197, 214, 196, 828, 216, - 37, 218, 37, 349, 37, 204, 205, 206, 207, 864, - 90, 81, 214, 61, 81, 439, 215, 441, 216, 67, - 850, 58, 81, 58, 1176, 58, 56, 374, 899, 375, - 1015, 1016, 1017, 380, 1433, 382, 866, 194, 195, 463, - 197, 465, 199, 394, 395, 396, 61, 77, 1357, 123, - 401, 930, 99, 932, 933, 934, 935, 936, 937, 19, - 81, 98, 413, 98, 24, 98, 921, 1052, 1053, 1054, - 179, 180, 196, 497, 131, 112, 36, 112, 123, 112, - 204, 205, 206, 207, 4, 436, 195, 438, 1404, 9, - 1406, 215, 1070, 216, 661, 218, 16, 216, 665, 218, - 20, 216, 669, 218, 152, 123, 673, 1003, 212, 213, - 677, 206, 207, 1009, 681, 461, 164, 77, 685, 543, - 215, 210, 689, 120, 206, 206, 207, 217, 552, 89, - 206, 207, 800, 93, 215, 559, 173, 152, 173, 215, - 9, 809, 810, 811, 812, 813, 814, 196, 196, 164, - 497, 111, 120, 202, 203, 579, 204, 205, 206, 207, - 9, 585, 586, 587, 588, 217, 196, 215, 197, 64, - 199, 201, 202, 203, 204, 205, 206, 207, 12, 217, - 531, 196, 533, 534, 535, 536, 32, 759, 760, 204, - 205, 206, 207, 119, 206, 207, 19, 543, 758, 216, - 215, 218, 1032, 215, 488, 489, 490, 216, 775, 776, - 81, 206, 207, 36, 638, 639, 640, 641, 642, 786, - 215, 135, 56, 216, 138, 218, 216, 61, 218, 196, - 216, 655, 218, 67, 148, 202, 203, 204, 205, 206, - 207, 1120, 33, 217, 158, 159, 56, 509, 215, 1128, - 117, 1130, 1131, 820, 77, 1134, 1135, 1136, 1137, 1138, - 1139, 1140, 1141, 177, 55, 1144, 89, 217, 217, 693, - 93, 695, 1151, 216, 88, 218, 713, 217, 217, 70, - 71, 216, 706, 218, 708, 217, 217, 1142, 111, 217, - 714, 1187, 217, 717, 51, 719, 720, 721, 722, 216, - 57, 218, 18, 727, 741, 217, 97, 731, 732, 66, - 734, 217, 217, 104, 105, 739, 120, 74, 152, 1483, - 217, 745, 759, 760, 216, 749, 218, 216, 85, 218, - 164, 122, 213, 217, 758, 759, 760, 761, 95, 9, - 1195, 765, 212, 767, 768, 213, 913, 693, 772, 695, - 216, 212, 218, 110, 217, 779, 780, 1212, 120, 187, - 706, 531, 196, 533, 534, 535, 536, 714, 202, 203, - 204, 205, 206, 207, 1245, 722, 800, 801, 35, 9, - 37, 215, 157, 98, 171, 809, 810, 811, 812, 813, - 814, 81, 48, 739, 7, 216, 9, 218, 106, 661, - 751, 58, 61, 665, 216, 50, 218, 669, 759, 760, - 216, 673, 218, 18, 197, 677, 98, 106, 765, 681, - 767, 78, 846, 685, 212, 849, 102, 689, 995, 775, - 776, 106, 106, 784, 858, 859, 860, 861, 862, 863, - 786, 98, 106, 215, 218, 12, 1189, 798, 61, 218, - 1193, 216, 50, 196, 67, 112, 212, 1312, 201, 202, - 203, 204, 205, 206, 207, 165, 217, 22, 217, 63, - 83, 63, 215, 217, 81, 218, 201, 901, 185, 83, - 904, 175, 339, 907, 81, 88, 147, 201, 201, 56, - 98, 842, 216, 152, 61, 1374, 847, 848, 1461, 218, - 67, 21, 50, 99, 216, 164, 930, 217, 932, 933, - 934, 935, 936, 937, 218, 1370, 196, 61, 97, 218, - 944, 945, 218, 67, 204, 205, 206, 207, 71, 953, - 954, 218, 969, 957, 218, 215, 217, 196, 218, 152, - 217, 123, 213, 212, 217, 204, 205, 206, 207, 217, - 217, 164, 1407, 1408, 217, 901, 215, 981, 218, 201, - 218, 214, 196, 218, 218, 1117, 217, 217, 217, 1148, - 204, 205, 206, 207, 217, 1430, 217, 1320, 217, 217, - 217, 215, 217, 196, 217, 152, 217, 1330, 201, 202, - 203, 204, 205, 206, 207, 217, 217, 164, 217, 217, - 217, 217, 215, 217, 56, 867, 953, 217, 152, 218, - 150, 217, 874, 875, 201, 877, 878, 1513, 880, 881, - 164, 883, 884, 120, 886, 887, 217, 889, 890, 196, - 892, 893, 983, 895, 896, 114, 217, 204, 205, 206, - 207, 217, 217, 217, 120, 215, 1070, 48, 215, 995, - 218, 217, 196, 218, 3, 218, 56, 6, 202, 203, - 204, 205, 206, 207, 215, 14, 218, 217, 26, 18, - 19, 215, 21, 218, 196, 1099, 25, 1101, 216, 218, - 29, 30, 204, 205, 206, 207, 218, 1111, 218, 196, - 218, 218, 1116, 215, 218, 206, 1120, 204, 205, 206, - 207, 53, 114, 106, 1128, 53, 1130, 1131, 215, 192, + 199, 133, 6, 476, 162, 145, 556, 416, 907, 901, + 14, 159, 844, 363, 18, 19, 566, 21, 740, 151, + 1171, 25, 188, 5, 475, 29, 30, 487, 114, 480, + 343, 731, 7, 775, 776, 50, 1160, 1161, 1162, 1163, + 1164, 1165, 48, 50, 786, 26, 457, 5, 1332, 1333, + 8, 36, 4, 114, 6, 464, 19, 60, 114, 114, + 36, 50, 801, 36, 585, 586, 587, 588, 1099, 36, + 114, 599, 19, 601, 602, 22, 50, 195, 82, 70, + 106, 98, 15, 68, 1449, 1450, 49, 108, 14, 41, + 216, 274, 218, 19, 37, 213, 41, 508, 115, 25, + 121, 50, 49, 286, 555, 1470, 97, 6, 194, 267, + 849, 930, 270, 932, 933, 934, 935, 936, 937, 638, + 639, 640, 641, 642, 1408, 114, 89, 131, 802, 37, + 134, 135, 106, 12, 138, 139, 655, 141, 142, 1263, + 591, 145, 89, 76, 310, 149, 150, 60, 111, 153, + 58, 155, 156, 157, 99, 216, 82, 218, 162, 163, + 216, 216, 218, 218, 111, 5, 99, 1409, 1410, 112, + 168, 1295, 216, 5, 178, 201, 850, 56, 81, 134, + 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 67, 1313, + 98, 600, 7, 197, 645, 183, 200, 37, 200, 37, + 36, 216, 206, 209, 112, 131, 1448, 39, 189, 216, + 195, 114, 1044, 216, 764, 197, 142, 169, 58, 195, + 58, 196, 195, 149, 1255, 37, 409, 216, 195, 204, + 205, 206, 207, 9, 51, 134, 135, 132, 79, 243, + 215, 243, 141, 79, 944, 945, 58, 251, 149, 79, + 145, 172, 178, 995, 153, 1539, 155, 178, 98, 217, + 33, 197, 188, 267, 163, 173, 270, 271, 728, 86, + 217, 197, 112, 1424, 112, 803, 257, 129, 214, 800, + 206, 133, 55, 124, 195, 126, 98, 1186, 809, 810, + 811, 812, 813, 814, 124, 461, 126, 70, 71, 1541, + 112, 1120, 213, 35, 1428, 37, 197, 188, 189, 1128, + 195, 1130, 1131, 195, 205, 1134, 1135, 1136, 1137, 1138, + 1139, 1140, 1141, 851, 97, 1144, 58, 846, 213, 212, + 311, 213, 1151, 173, 217, 339, 340, 197, 101, 858, + 859, 860, 861, 862, 863, 349, 78, 195, 19, 122, + 113, 355, 251, 24, 214, 336, 337, 338, 1248, 363, + 492, 1251, 9, 101, 368, 36, 98, 778, 179, 180, + 374, 375, 194, 195, 9, 197, 380, 199, 382, 1211, + 112, 196, 386, 696, 195, 216, 367, 218, 19, 204, + 205, 206, 207, 802, 707, 745, 7, 190, 191, 749, + 215, 12, 55, 745, 815, 36, 77, 749, 817, 818, + 216, 415, 218, 339, 340, 206, 207, 70, 89, 828, + 196, 210, 93, 349, 215, 201, 202, 203, 204, 205, + 206, 207, 7, 194, 216, 439, 218, 441, 167, 215, + 111, 850, 206, 207, 97, 56, 77, 149, 899, 375, + 61, 215, 64, 864, 1176, 194, 67, 866, 89, 463, + 81, 465, 93, 212, 213, 1357, 77, 77, 7, 79, + 90, 216, 83, 12, 216, 374, 218, 35, 81, 37, + 111, 380, 77, 382, 79, 4, 61, 1015, 1016, 1017, + 9, 81, 67, 497, 216, 661, 218, 16, 123, 665, + 58, 20, 1401, 669, 1403, 99, 196, 673, 83, 81, + 921, 677, 202, 203, 124, 681, 126, 56, 123, 685, + 78, 56, 61, 689, 1052, 1053, 1054, 123, 67, 124, + 1003, 126, 131, 206, 207, 461, 1009, 206, 77, 543, + 98, 152, 215, 197, 83, 199, 210, 120, 552, 196, + 217, 1070, 1371, 164, 112, 559, 120, 204, 205, 206, + 207, 196, 9, 64, 206, 207, 217, 9, 215, 204, + 205, 206, 207, 215, 217, 579, 32, 152, 206, 207, + 215, 585, 586, 587, 588, 196, 216, 215, 218, 164, + 201, 202, 203, 204, 205, 206, 207, 12, 497, 488, + 489, 490, 119, 216, 215, 163, 81, 218, 217, 775, + 776, 759, 760, 152, 216, 56, 218, 543, 758, 217, + 786, 196, 33, 1032, 217, 164, 201, 202, 203, 204, + 205, 206, 207, 117, 638, 639, 640, 641, 642, 196, + 215, 56, 18, 218, 55, 168, 61, 204, 205, 206, + 207, 655, 67, 88, 820, 213, 217, 196, 215, 70, + 71, 196, 201, 202, 203, 204, 205, 206, 207, 204, + 205, 206, 207, 216, 9, 218, 215, 217, 9, 218, + 215, 217, 135, 217, 207, 138, 97, 217, 56, 693, + 216, 695, 218, 104, 105, 148, 531, 217, 533, 534, + 535, 536, 706, 217, 708, 158, 159, 217, 217, 77, + 714, 122, 120, 717, 1187, 719, 720, 721, 722, 216, + 216, 218, 218, 727, 177, 217, 213, 731, 732, 217, + 734, 1142, 713, 212, 1476, 739, 216, 152, 218, 217, + 61, 745, 216, 213, 218, 749, 67, 913, 216, 164, + 218, 216, 212, 218, 758, 759, 760, 761, 120, 187, + 741, 765, 98, 767, 768, 7, 157, 693, 772, 695, + 216, 216, 218, 218, 171, 779, 780, 81, 759, 760, + 706, 196, 48, 106, 1195, 50, 201, 202, 203, 204, + 205, 206, 207, 18, 1245, 197, 800, 801, 98, 106, + 215, 1212, 212, 106, 106, 809, 810, 811, 812, 813, + 814, 106, 102, 739, 215, 714, 50, 216, 218, 61, + 218, 165, 212, 722, 217, 67, 22, 7, 196, 995, + 217, 152, 63, 201, 202, 203, 204, 205, 206, 207, + 63, 83, 846, 164, 217, 849, 81, 83, 1257, 775, + 776, 201, 185, 175, 858, 859, 860, 861, 862, 863, + 786, 88, 81, 147, 201, 98, 765, 201, 767, 216, + 218, 394, 395, 396, 216, 196, 1189, 217, 401, 99, + 1193, 61, 21, 204, 205, 206, 207, 67, 218, 218, + 413, 7, 218, 51, 215, 50, 61, 901, 218, 57, + 904, 1312, 67, 907, 1454, 218, 97, 71, 66, 217, + 152, 217, 217, 436, 123, 438, 74, 218, 217, 217, + 213, 218, 164, 214, 218, 217, 930, 85, 932, 933, + 934, 935, 936, 937, 201, 218, 217, 95, 217, 217, + 944, 945, 217, 217, 217, 61, 217, 217, 217, 953, + 954, 67, 110, 957, 196, 217, 1367, 217, 217, 201, + 202, 203, 204, 205, 206, 207, 217, 83, 217, 217, + 217, 217, 152, 215, 217, 901, 218, 981, 217, 217, + 217, 56, 212, 150, 164, 1117, 218, 152, 969, 217, + 1148, 201, 120, 1404, 1405, 196, 217, 114, 120, 164, + 201, 202, 203, 204, 205, 206, 207, 1320, 531, 217, + 533, 534, 535, 536, 1425, 217, 196, 1330, 215, 48, + 218, 201, 202, 203, 204, 205, 206, 207, 218, 218, + 217, 196, 1505, 56, 215, 215, 152, 202, 203, 204, + 205, 206, 207, 217, 26, 218, 218, 218, 164, 3, + 215, 53, 6, 206, 953, 218, 218, 218, 218, 218, + 14, 106, 216, 114, 18, 19, 1070, 21, 53, 995, + 217, 25, 192, 196, 217, 29, 30, 217, 186, 217, + 196, 204, 205, 206, 207, 201, 202, 203, 204, 205, + 206, 207, 215, 217, 63, 1099, 79, 1101, 48, 215, + 196, 9, 218, 83, 153, 106, 194, 1111, 204, 205, + 206, 207, 1116, 217, 52, 218, 1120, 218, 218, 215, + 61, 218, 218, 218, 1128, 218, 1130, 1131, 82, 214, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 217, 217, - 1144, 217, 217, 186, 1148, 217, 79, 1151, 63, 48, - 9, 106, 83, 82, 153, 194, 1160, 1161, 1162, 1163, - 1164, 1165, 1179, 217, 1181, 52, 218, 218, 218, 196, - 218, 218, 218, 1099, 214, 217, 1180, 204, 205, 206, - 207, 217, 1186, 218, 1111, 218, 216, 218, 215, 1116, - 218, 62, 218, 218, 218, 218, 1038, 218, 218, 218, - 1042, 218, 131, 218, 218, 134, 135, 218, 218, 138, - 139, 218, 141, 142, 1537, 218, 145, 218, 218, 14, - 149, 150, 218, 218, 153, 54, 155, 156, 157, 1071, - 140, 36, 36, 162, 163, 193, 1368, 215, 201, 142, - 217, 217, 217, 1260, 217, 43, 82, 218, 218, 178, - 218, 1255, 218, 1257, 1180, 196, 218, 218, 218, 1263, - 201, 202, 203, 204, 205, 206, 207, 7, 197, 706, - 218, 200, 12, 218, 215, 196, 218, 206, 85, 1474, - 201, 202, 203, 204, 205, 206, 207, 62, 110, 216, - 727, 1295, 216, 195, 93, 218, 162, 215, 69, 91, - 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1503, 1313, - 64, 212, 218, 217, 243, 5, 56, 84, 216, 216, - 212, 61, 251, 218, 218, 218, 1257, 67, 218, 1255, - 218, 81, 218, 141, 1529, 98, 1483, 77, 267, 14, - 218, 270, 271, 83, 217, 151, 194, 217, 217, 110, - 218, 218, 216, 1357, 3, 284, 212, 214, 210, 210, - 0, 0, 32, 1205, 219, 1296, 1297, 1209, 357, 510, - 1374, 300, 1376, 738, 338, 963, 717, 147, 7, 732, - 719, 960, 1152, 12, 1466, 1402, 1489, 1439, 734, 1470, - 1526, 971, 761, 28, 760, 207, 345, 1401, 7, 15, - 1404, 559, 1406, 12, 1406, 268, 1410, 1476, 1506, 1405, - 339, 340, 152, 253, 159, 772, 1420, 1421, 969, 31, - 349, 358, 1514, 460, 164, 1484, 355, 56, 1507, 1433, - 867, 1357, 61, 1420, 363, 1515, 1249, 1534, 67, 368, - 1410, 706, 300, 1042, 156, 374, 375, 56, 77, 465, - 1448, 380, 61, 382, 83, 1472, 196, 386, 67, 461, - 1464, 201, 202, 203, 204, 205, 206, 207, 77, -1, - 1101, 400, -1, -1, 1401, 215, 12, 1481, 218, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1420, - -1, -1, -1, 930, -1, 932, 933, 934, 935, 936, - 937, -1, -1, -1, -1, -1, -1, -1, -1, 1526, - 439, 1515, -1, -1, -1, -1, 1520, 954, -1, 139, - 56, -1, -1, 152, -1, 61, -1, -1, 457, -1, - 1534, 67, 1536, 1464, 463, 164, 465, 157, -1, -1, - -1, 77, -1, 152, -1, -1, -1, -1, -1, -1, - 1481, -1, -1, -1, -1, 164, -1, 1483, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 196, 497, -1, - -1, -1, 201, 202, 203, 204, 205, 206, 207, 508, - -1, -1, -1, -1, 1515, -1, 215, 196, -1, 218, - -1, -1, 201, 202, 203, 204, 205, 206, 207, -1, - -1, -1, -1, 1534, -1, -1, 215, -1, -1, -1, - -1, -1, -1, -1, 543, -1, 152, 33, 34, -1, - -1, -1, -1, 552, 40, -1, -1, 61, 164, -1, - 559, 47, -1, 67, 1071, -1, -1, -1, -1, 55, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, - 579, -1, -1, -1, 70, 71, -1, -1, -1, -1, - 196, -1, -1, -1, 80, 201, 202, 203, 204, 205, - 206, 207, -1, -1, -1, -1, -1, -1, -1, 215, - -1, 97, -1, 1120, -1, -1, 102, 103, -1, -1, - -1, 1128, -1, 1130, 1131, -1, -1, 1134, 1135, 1136, - 1137, 1138, 1139, 1140, 1141, -1, 122, 1144, -1, -1, - -1, 127, -1, -1, 1151, -1, -1, -1, 152, -1, - -1, -1, -1, 1160, 1161, 1162, 1163, 1164, 1165, -1, - 164, -1, 287, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 302, -1, -1, - 305, -1, 307, 308, 309, 310, -1, -1, -1, -1, - -1, -1, 196, -1, 693, -1, 695, 201, 202, 203, - 204, 205, 206, 207, -1, -1, -1, 706, 194, 708, - -1, 215, -1, -1, -1, 714, 1223, 7, 717, 101, - 719, 720, 721, 722, -1, 415, -1, -1, -1, -1, - -1, 113, 731, 732, -1, 734, 118, -1, -1, -1, - 739, -1, -1, 125, -1, 127, 745, 372, 130, -1, - 749, 441, -1, -1, -1, -1, 1263, 139, -1, 758, - 759, 760, 761, -1, 146, 390, 765, 149, 767, 768, - -1, 61, -1, 772, -1, -1, -1, 67, -1, 778, - 779, 780, -1, -1, 166, 167, -1, -1, 1295, -1, - -1, 173, 174, 83, 419, -1, 7, 1304, 1305, 1306, - 1307, 1308, 1309, 1310, 1311, -1, 1313, -1, -1, -1, - -1, -1, -1, -1, -1, 440, 815, -1, -1, 444, - -1, 446, -1, -1, 449, 450, 451, 452, 453, 454, - 455, 456, 12, 458, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1350, -1, 339, -1, -1, -1, -1, - 61, -1, -1, -1, -1, -1, 67, -1, -1, -1, - -1, -1, 152, -1, -1, 864, -1, 1374, 867, -1, - -1, -1, 83, -1, 164, -1, 56, -1, -1, -1, - -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, - -1, -1, -1, -1, -1, 585, 586, 587, 588, -1, - -1, -1, 901, -1, -1, 904, 196, -1, 907, -1, - -1, 201, 202, 203, 204, 205, 206, 207, -1, -1, - -1, 415, 921, -1, -1, 215, 1433, -1, 218, -1, + 1144, 61, 218, 196, 1148, 218, 218, 1151, 201, 202, + 203, 204, 205, 206, 207, 218, 1160, 1161, 1162, 1163, + 1164, 1165, 215, 218, 218, 218, 7, 62, 9, 216, + 218, 14, 218, 1099, 218, 218, 1180, 131, 218, 218, + 134, 135, 1186, 218, 138, 139, 218, 141, 142, 54, + 218, 145, 218, 218, 218, 149, 150, 218, 1179, 153, + 1181, 155, 156, 157, 218, 218, 218, 140, 162, 163, + 36, 152, 1111, 36, 1527, 193, 215, 1116, 142, 217, + 61, 217, 201, 164, 178, 217, 67, 217, 751, 43, + 196, 82, 152, 1365, 218, 216, 759, 760, 204, 205, + 206, 207, 83, 197, 164, 218, 200, 218, 218, 215, + 218, 1255, 206, 218, 1180, 196, 218, 218, 218, 1263, + 218, 784, 196, 204, 205, 206, 207, 85, 1467, 62, + 204, 205, 206, 207, 215, 798, 196, 110, 195, 1260, + 7, 215, 93, 509, 204, 205, 206, 207, 216, 243, + 162, 1295, 218, 215, 69, 215, 1495, 251, 64, 91, + 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 212, 1313, + 1476, 152, 218, 267, 216, 218, 270, 271, 217, 842, + 1519, 218, 218, 164, 847, 848, 218, 5, 196, 1255, + 284, 84, 218, 218, 61, 81, 204, 205, 206, 207, + 67, 141, 98, 14, 218, 151, 300, 215, 217, 194, + 217, 61, 218, 1357, 217, 196, 83, 67, 110, 218, + 201, 202, 203, 204, 205, 206, 207, 1371, 216, 1373, + 3, 0, 212, 210, 215, 214, 210, 0, 32, 510, + 339, 196, 357, 219, 738, 339, 340, 202, 203, 204, + 205, 206, 207, 963, 1398, 349, 338, 1401, 147, 1403, + 215, 355, 717, 1407, 732, 719, 960, 1459, 1152, 363, + 1481, 1434, 1463, 1516, 368, 734, 971, 12, 1399, 760, + 374, 375, 761, 28, 1428, 152, 380, 207, 382, 345, + 15, 1357, 386, 268, 559, 661, 1469, 164, 1403, 665, + 1498, 1402, 152, 669, 253, 159, 400, 673, 969, 31, + 460, 677, 1506, 358, 164, 681, 415, 1477, 1499, 685, + 983, 56, 772, 689, 1507, 1407, 61, 1524, 1249, 196, + 1474, 300, 67, 1042, 201, 202, 203, 204, 205, 206, + 207, 156, 441, 1443, 1465, 439, 196, 461, 215, 465, + 706, 201, 202, 203, 204, 205, 206, 207, -1, 1398, + 1101, -1, -1, 457, -1, 215, -1, 196, -1, 463, + -1, 465, 201, 202, 203, 204, 205, 206, 207, 12, + 1524, -1, 1526, -1, -1, -1, 215, 101, -1, -1, + -1, -1, -1, -1, -1, 1516, -1, 111, -1, 113, + -1, 339, -1, 497, 118, -1, -1, -1, -1, -1, + 1476, 125, -1, 127, 508, -1, 130, 152, -1, -1, + -1, -1, 287, 56, -1, 139, -1, -1, 61, 164, + -1, -1, 146, -1, 67, 149, -1, 302, -1, -1, + 305, -1, 307, 308, 309, 310, -1, -1, -1, 543, + 139, -1, 166, -1, -1, -1, -1, -1, 552, 173, + 174, 196, -1, -1, -1, 559, -1, 181, 157, 204, + 205, 206, 207, -1, -1, -1, -1, -1, -1, -1, + 215, -1, -1, -1, -1, 579, 585, 586, 587, 588, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 152, -1, -1, -1, 944, 945, 441, 638, 639, - 640, 641, 642, 164, 953, -1, -1, -1, 957, -1, - -1, -1, -1, -1, -1, 655, -1, -1, -1, -1, - -1, -1, 152, -1, 599, -1, 601, 602, -1, -1, - -1, -1, 981, 608, 164, 196, -1, -1, -1, -1, - 201, 202, 203, 204, 205, 206, 207, -1, -1, -1, - -1, -1, -1, -1, 215, -1, -1, 218, 7, -1, - -1, -1, -1, -1, -1, -1, 196, -1, 643, -1, - -1, 201, 202, 203, 204, 205, 206, 207, -1, -1, - -1, -1, 657, -1, -1, 215, 661, 727, -1, -1, - 665, -1, -1, -1, 669, -1, -1, -1, 673, -1, - -1, -1, 677, -1, -1, -1, 681, -1, -1, -1, - 685, -1, 61, -1, 689, -1, -1, -1, 67, -1, - -1, -1, 1071, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 7, -1, 83, -1, -1, 12, -1, -1, - -1, 585, 586, 587, 588, -1, -1, -1, -1, -1, - 1099, -1, 1101, 7, -1, -1, -1, -1, -1, -1, - 800, 801, 1111, -1, -1, -1, -1, 1116, -1, 809, - 810, 811, 812, 813, 814, -1, -1, -1, -1, -1, - -1, 56, -1, -1, -1, -1, 61, -1, -1, -1, - -1, -1, 67, 1142, 638, 639, 640, 641, 642, 1148, - -1, -1, 77, 152, -1, -1, 846, 61, 83, 849, - -1, 655, -1, 67, 789, 164, -1, -1, 858, 859, - 860, 861, 862, 863, -1, -1, -1, -1, 803, 83, - -1, 1180, -1, -1, -1, -1, -1, 1186, -1, -1, - -1, -1, -1, -1, 819, -1, 1195, 196, -1, -1, - -1, -1, 201, 202, 203, 204, 205, 206, 207, -1, - -1, -1, 706, 1212, -1, -1, 215, -1, -1, 218, - -1, -1, -1, -1, 1223, -1, 851, 152, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 164, - 930, -1, 932, 933, 934, 935, 936, 937, 152, -1, - -1, -1, -1, -1, -1, -1, 1255, -1, 1257, -1, - 164, -1, 415, -1, 954, -1, -1, -1, -1, -1, - -1, 196, -1, 898, -1, -1, 201, 202, 203, 204, - 205, 206, 207, -1, -1, -1, -1, -1, 441, -1, - 215, 216, 196, -1, -1, -1, -1, 201, 202, 203, - 204, 205, 206, 207, -1, -1, 800, 801, -1, -1, - -1, 215, -1, 1312, -1, 809, 810, 811, 812, 813, - 814, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 7, -1, -1, -1, -1, 12, + -1, 867, -1, -1, -1, -1, -1, 372, 874, 875, + -1, 877, 878, -1, 880, 881, -1, 883, 884, 152, + 886, 887, -1, 889, 890, 390, 892, 893, -1, 895, + 896, 164, -1, -1, -1, -1, -1, -1, -1, 638, + 639, 640, 641, 642, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 419, -1, 655, -1, -1, -1, + -1, -1, -1, 196, -1, -1, -1, -1, -1, 202, + 203, 204, 205, 206, 207, 440, -1, -1, -1, 444, + -1, 446, 215, -1, 449, 450, 451, 452, 453, 454, + 455, 456, -1, 458, -1, -1, -1, -1, -1, 693, + -1, 695, -1, -1, -1, -1, -1, 706, -1, -1, + -1, -1, 706, -1, 708, -1, -1, -1, -1, -1, + 714, -1, -1, 717, -1, 719, 720, 721, 722, -1, + -1, -1, -1, 1296, 1297, -1, -1, 731, 732, 12, + 734, -1, -1, -1, -1, 739, -1, -1, -1, -1, + -1, 745, -1, -1, -1, 749, -1, -1, -1, -1, + -1, -1, -1, -1, 758, 759, 760, 761, -1, -1, + -1, 765, 1038, 767, 768, -1, 1042, -1, 772, -1, + -1, -1, -1, 56, 778, 779, 780, -1, 61, -1, + -1, -1, -1, -1, 67, 7, -1, -1, -1, -1, + 12, 800, 801, -1, 77, 1071, -1, -1, -1, -1, + 809, 810, 811, 812, 813, 814, -1, -1, -1, -1, + -1, 815, -1, 7, -1, -1, 415, -1, 12, -1, + -1, -1, -1, -1, 599, -1, 601, 602, -1, -1, + -1, -1, -1, 608, 56, -1, -1, 846, -1, 61, + 849, -1, 441, -1, -1, 67, -1, -1, -1, 858, + 859, 860, 861, 862, 863, 77, -1, -1, 706, -1, + 864, 83, 56, 867, -1, -1, -1, 61, 643, 152, + -1, -1, -1, 67, -1, -1, -1, -1, -1, 727, + -1, 164, 657, 77, -1, -1, 661, -1, -1, 83, + 665, -1, -1, -1, 669, -1, -1, 901, 673, -1, + 904, 1474, 677, 907, -1, -1, 681, -1, -1, -1, + 685, -1, -1, 196, 689, -1, -1, 921, 201, 202, + 203, 204, 205, 206, 207, -1, -1, -1, -1, 1205, + 152, -1, 215, 1209, -1, -1, -1, -1, -1, -1, + 944, 945, 164, -1, -1, -1, -1, -1, -1, 953, + -1, 1524, -1, 957, -1, -1, -1, -1, 152, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1350, 846, -1, -1, 849, -1, -1, 1357, -1, - -1, -1, -1, -1, 858, 859, 860, 861, 862, 863, - -1, 1370, -1, -1, -1, -1, -1, 1376, -1, -1, - 1070, -1, -1, 56, -1, -1, -1, -1, 61, -1, - 1015, 1016, 1017, -1, 67, -1, -1, -1, -1, -1, - -1, -1, 1401, -1, 77, 1404, -1, 1406, 1407, 1408, - 83, 1410, -1, -1, -1, -1, -1, 1042, -1, -1, - -1, 1420, 1421, -1, -1, -1, -1, 1052, 1053, 1054, - 1120, 1430, 585, 586, 587, 588, -1, -1, 1128, -1, - 1130, 1131, -1, -1, 1134, 1135, 1136, 1137, 1138, 1139, - 1140, 1141, -1, -1, 1144, -1, -1, -1, -1, -1, - -1, 1151, -1, -1, -1, 1464, -1, -1, -1, -1, - 1160, 1161, 1162, 1163, 1164, 1165, -1, -1, -1, 152, - -1, -1, 1481, -1, -1, 638, 639, 640, 641, 642, - -1, 164, 7, -1, -1, -1, 1186, 12, -1, -1, - -1, -1, 655, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1515, -1, -1, -1, - -1, 1520, -1, 196, -1, -1, -1, -1, 201, 202, - 203, 204, 205, 206, 207, 1534, -1, 1536, -1, -1, - -1, 56, 215, 216, -1, -1, 61, -1, -1, -1, - -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 77, -1, -1, -1, -1, -1, 83, -1, - -1, -1, -1, 1263, 727, -1, 1070, -1, -1, -1, + 164, -1, -1, -1, 196, -1, -1, 981, -1, 201, + 202, 203, 204, 205, 206, 207, 585, 586, 587, 588, + -1, -1, -1, 215, 216, -1, -1, -1, 7, -1, + -1, 10, 196, 12, -1, -1, -1, 201, 202, 203, + 204, 205, 206, 207, 789, -1, -1, -1, -1, 867, + -1, 215, 216, -1, -1, -1, -1, -1, 803, 38, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 638, + 639, 640, 641, 642, 819, -1, -1, 56, -1, -1, + -1, -1, 61, -1, 101, -1, 655, -1, 67, -1, + -1, 1070, -1, -1, -1, -1, 113, 1071, 77, -1, + -1, 118, -1, -1, 83, -1, 851, -1, 125, -1, + 127, -1, 930, 130, 932, 933, 934, 935, 936, 937, + -1, -1, 139, -1, -1, 1099, -1, 1101, -1, 146, + -1, -1, 149, -1, -1, 114, 954, 1111, -1, -1, + 33, 34, 1116, -1, -1, -1, -1, 40, -1, 166, + 167, -1, -1, 898, 47, -1, 173, 174, 727, -1, + -1, -1, 55, -1, -1, -1, 59, -1, 1142, -1, + -1, -1, -1, 152, 1148, -1, -1, 70, 71, -1, + -1, -1, -1, -1, -1, 164, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 97, -1, 1180, -1, -1, 102, + 103, -1, 1186, -1, -1, 7, -1, 196, -1, -1, + 12, 1195, 201, 202, 203, 204, 205, 206, 207, 122, + 415, 800, 801, -1, 127, -1, 215, -1, 1212, -1, + 809, 810, 811, 812, 813, 814, -1, -1, -1, 1223, + -1, -1, -1, 1071, -1, -1, 441, -1, -1, -1, + -1, -1, -1, -1, 56, -1, -1, -1, -1, 61, + 1015, 1016, 1017, -1, -1, 67, -1, 846, -1, -1, + 849, 1255, -1, -1, -1, 77, -1, -1, -1, 858, + 859, 860, 861, 862, 863, -1, -1, 1042, -1, -1, + -1, 194, 1120, -1, -1, -1, -1, 1052, 1053, 1054, + 1128, -1, 1130, 1131, -1, -1, 1134, 1135, 1136, 1137, + 1138, 1139, 1140, 1141, -1, -1, 1144, -1, -1, -1, + -1, -1, -1, 1151, -1, -1, -1, -1, 1312, -1, + -1, -1, 1160, 1161, 1162, 1163, 1164, 1165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1295, -1, -1, -1, -1, - -1, -1, -1, -1, 1304, 1305, 1306, 1307, 1308, 1309, - 1310, 1311, -1, 1313, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1258, -1, -1, -1, 152, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 800, 801, 164, - -1, -1, -1, -1, -1, -1, 809, 810, 811, 812, - 813, 814, -1, -1, -1, -1, -1, -1, -1, -1, + 152, 930, -1, 932, 933, 934, 935, 936, 937, -1, + -1, -1, 164, -1, -1, -1, 1350, -1, -1, -1, + -1, -1, -1, 1357, -1, 954, -1, -1, -1, 7, + -1, 9, -1, 1367, 12, -1, -1, -1, -1, 1373, + 585, 586, 587, 588, 196, 1223, -1, -1, -1, 201, + 202, 203, 204, 205, 206, 207, -1, -1, -1, -1, + -1, -1, -1, 215, 1398, -1, -1, 1401, -1, 1403, + 1404, 1405, -1, 1407, -1, -1, -1, -1, 56, -1, + -1, -1, -1, 61, -1, 1263, -1, -1, -1, 67, + -1, 1425, -1, 638, 639, 640, 641, 642, -1, 77, + -1, -1, -1, -1, -1, 83, -1, -1, -1, -1, + 655, -1, -1, -1, -1, -1, -1, 1295, -1, -1, + -1, -1, -1, -1, -1, -1, 1304, 1305, 1306, 1307, + 1308, 1309, 1310, 1311, -1, 1313, -1, -1, -1, -1, + 1474, 1070, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1258, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 196, -1, -1, 1374, -1, 201, 202, 203, 204, - 205, 206, 207, 846, 209, -1, 849, -1, -1, 214, - 215, -1, -1, -1, -1, 858, 859, 860, 861, 862, - 863, -1, 17, 18, 867, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 33, 34, - -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, - -1, -1, 47, 1433, -1, -1, -1, -1, -1, -1, - 55, -1, -1, -1, 59, -1, -1, -1, 3, -1, - -1, -1, -1, -1, -1, 70, 71, -1, 73, -1, - 75, 16, 17, 18, -1, 80, -1, 930, -1, 932, - 933, 934, 935, 936, 937, -1, -1, -1, 33, 34, - -1, -1, 97, -1, -1, 40, -1, 102, 103, -1, - -1, 954, 47, -1, -1, -1, -1, -1, -1, -1, - 55, 116, -1, -1, 59, -1, -1, 122, 63, 64, - -1, -1, 127, -1, 69, 70, 71, -1, 73, -1, - 75, -1, 77, -1, 79, 80, -1, 82, -1, -1, - -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, - -1, -1, 97, -1, -1, 1480, -1, 102, 103, 104, - 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 175, 116, -1, -1, -1, -1, -1, 122, 123, 124, - 125, 126, 127, -1, -1, -1, -1, -1, -1, 194, - 135, -1, -1, 138, 139, 140, -1, 142, -1, -1, - -1, 146, -1, 148, 149, -1, -1, -1, -1, -1, - -1, -1, 157, 158, 159, -1, -1, 1070, 1071, -1, - 7, 166, 9, 168, -1, 12, -1, 172, -1, -1, - 175, -1, 177, 178, -1, -1, -1, -1, -1, 184, - 185, -1, 187, -1, -1, -1, -1, 192, -1, 194, - 195, 196, 197, 198, 199, -1, -1, -1, -1, -1, - 205, -1, -1, 208, 209, 210, -1, 1120, -1, 56, - -1, -1, 217, 218, 61, 1128, -1, 1130, 1131, -1, - 67, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 101, - 77, 1144, -1, -1, -1, -1, 83, -1, 1151, 111, - -1, 113, -1, -1, -1, -1, 118, 1160, 1161, 1162, - 1163, 1164, 1165, 125, -1, 127, -1, -1, 130, -1, - -1, -1, -1, -1, -1, -1, -1, 139, -1, -1, - -1, -1, -1, -1, 146, -1, -1, 149, -1, -1, + -1, -1, 1350, -1, 152, -1, -1, -1, -1, -1, + -1, -1, 727, -1, -1, -1, 164, -1, -1, -1, + 1524, 1120, 1526, 1371, -1, -1, -1, -1, -1, 1128, + -1, 1130, 1131, -1, -1, 1134, 1135, 1136, 1137, 1138, + 1139, 1140, 1141, -1, -1, 1144, -1, -1, 196, -1, + -1, -1, 1151, 201, 202, 203, 204, 205, 206, 207, + -1, 1160, 1161, 1162, 1163, 1164, 1165, 215, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 7, + 1428, -1, -1, -1, 12, 800, 801, 1186, -1, -1, + -1, -1, -1, -1, 809, 810, 811, 812, 813, 814, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 166, -1, -1, -1, -1, -1, - -1, 173, 174, -1, -1, 152, -1, -1, -1, 181, - 1223, -1, -1, -1, -1, -1, -1, 164, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 56, -1, + -1, 846, -1, 61, 849, -1, -1, -1, -1, 67, + -1, -1, -1, 858, 859, 860, 861, 862, 863, 77, + -1, -1, 867, -1, -1, 83, -1, -1, -1, -1, + -1, -1, -1, -1, 1263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 196, - 1263, -1, -1, -1, 201, 202, 203, 204, 205, 206, - 207, -1, -1, -1, -1, -1, -1, -1, 215, -1, + -1, -1, 1457, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1295, -1, 1473, -1, + -1, -1, -1, 3, -1, 1304, 1305, 1306, 1307, 1308, + 1309, 1310, 1311, -1, 1313, 930, -1, 932, 933, 934, + 935, 936, 937, -1, 152, -1, -1, 27, -1, -1, + -1, -1, 1507, 33, -1, -1, 164, -1, -1, 954, + 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 55, -1, -1, -1, -1, + -1, -1, -1, 63, 64, -1, -1, -1, 196, 69, + 70, 71, 1371, 201, 202, 203, 204, 205, 206, 207, + -1, 209, 82, -1, -1, -1, 214, 215, -1, -1, + 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, + -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1295, -1, -1, -1, -1, -1, -1, -1, - 3, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, -1, - 1313, -1, -1, 16, 17, 18, -1, -1, -1, -1, - -1, -1, -1, -1, 27, 28, 29, 30, 31, -1, - 33, 34, -1, -1, -1, -1, -1, 40, -1, -1, - -1, 44, 45, -1, 47, -1, -1, 1350, -1, -1, - -1, -1, 55, -1, -1, -1, 59, -1, -1, -1, - 63, 64, -1, -1, -1, -1, 69, 70, 71, -1, - 73, 1374, 75, -1, 77, -1, 79, 80, -1, 82, - -1, -1, -1, -1, 87, -1, -1, 90, -1, -1, - -1, -1, -1, -1, 97, -1, -1, 100, -1, 102, - 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, - 113, -1, -1, 116, -1, -1, -1, -1, -1, 122, - 123, 124, 125, 126, 127, -1, -1, -1, -1, -1, - 1433, -1, 135, -1, -1, 138, 139, 140, -1, 142, - -1, -1, -1, 146, -1, 148, 149, -1, -1, -1, - -1, -1, -1, -1, 157, 158, 159, -1, 161, -1, - -1, -1, -1, 166, -1, 168, -1, -1, -1, 172, - -1, -1, 175, -1, 177, 178, -1, -1, -1, -1, - -1, 184, 185, -1, 187, -1, -1, -1, -1, 192, - -1, 194, 195, 196, 197, 198, 199, 3, -1, -1, - -1, -1, 205, 206, -1, 208, 209, 210, -1, -1, - 16, 17, 18, -1, 217, 218, -1, -1, -1, -1, + -1, 7, 122, 123, -1, 125, 12, 127, -1, 1428, + -1, -1, -1, -1, -1, 135, -1, -1, 138, 139, + 140, -1, 142, -1, -1, -1, 146, -1, 148, 149, + -1, -1, -1, -1, -1, 1070, 1071, 157, 158, 159, + -1, 161, -1, -1, 50, -1, 166, -1, 168, -1, + 56, -1, 172, -1, -1, 61, -1, 177, 178, -1, + -1, 67, -1, -1, 184, 185, -1, 187, -1, -1, + -1, 77, 192, -1, 194, -1, -1, 83, -1, -1, + -1, -1, -1, -1, -1, 1120, -1, -1, -1, -1, + -1, -1, -1, 1128, -1, 1130, 1131, 217, -1, 1134, + 1135, 1136, 1137, 1138, 1139, 1140, 1141, -1, -1, 1144, + -1, -1, -1, -1, -1, -1, 1151, -1, -1, -1, + -1, -1, -1, -1, -1, 1160, 1161, 1162, 1163, 1164, + 1165, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 152, -1, -1, 17, + 18, -1, -1, -1, -1, -1, -1, -1, 164, -1, + -1, -1, -1, -1, -1, 33, 34, -1, -1, -1, + -1, -1, 40, -1, -1, -1, -1, -1, -1, 47, + -1, -1, -1, -1, -1, -1, -1, 55, 1223, -1, + 196, 59, -1, -1, -1, 201, 202, 203, 204, 205, + 206, 207, 70, 71, -1, 73, -1, 75, -1, 215, + -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1263, 97, + -1, -1, -1, -1, 102, 103, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, + -1, -1, -1, -1, 122, -1, -1, -1, -1, 127, + 1295, -1, -1, -1, -1, -1, -1, 3, -1, 1304, + 1305, 1306, 1307, 1308, 1309, 1310, 1311, -1, 1313, -1, + 16, 17, 18, -1, -1, -1, -1, -1, -1, -1, -1, 27, 28, 29, 30, 31, -1, 33, 34, -1, - -1, -1, -1, -1, 40, -1, -1, -1, 44, 45, - -1, 47, -1, -1, -1, -1, -1, -1, -1, 55, - -1, -1, -1, 59, -1, -1, -1, 63, 64, -1, - -1, -1, -1, 69, 70, 71, -1, 73, -1, 75, + -1, -1, -1, -1, 40, -1, -1, 175, 44, 45, + -1, 47, -1, -1, -1, 1350, -1, -1, -1, 55, + -1, -1, -1, 59, -1, -1, 194, 63, 64, -1, + -1, -1, -1, 69, 70, 71, 1371, 73, -1, 75, -1, 77, -1, 79, 80, -1, 82, -1, -1, -1, -1, 87, -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, -1, -1, 116, -1, -1, -1, -1, -1, 122, 123, 124, 125, - 126, 127, -1, -1, -1, -1, -1, -1, -1, 135, + 126, 127, -1, 1428, -1, -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, -1, -1, 146, -1, 148, 149, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, -1, 161, -1, -1, -1, -1, @@ -3066,7 +3022,7 @@ static const short yycheck[] = { 3, -1, 177, 178, -1, -1, -1, -1, -1, 184, 185, -1, 187, -1, -1, -1, -1, 192, -1, 194, 195, 196, 197, 198, 199, 3, -1, -1, -1, -1, 205, - -1, -1, 208, 209, 210, -1, -1, 16, 17, 18, + 206, -1, 208, 209, 210, -1, -1, 16, 17, 18, -1, 217, 218, -1, -1, -1, -1, -1, 27, 28, 29, 30, 31, -1, 33, 34, -1, -1, -1, -1, -1, 40, -1, -1, -1, 44, 45, -1, 47, -1, @@ -3082,18 +3038,55 @@ static const short yycheck[] = { 3, 139, 140, -1, 142, -1, -1, -1, 146, -1, 148, 149, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, -1, 161, -1, -1, -1, -1, 166, -1, 168, + -1, -1, -1, 172, -1, -1, 175, -1, 177, 178, + -1, -1, -1, -1, -1, 184, 185, -1, 187, -1, + -1, -1, -1, 192, -1, 194, 195, 196, 197, 198, + 199, 3, -1, -1, -1, -1, 205, -1, -1, 208, + 209, 210, -1, -1, 16, 17, 18, -1, 217, 218, + -1, -1, -1, -1, -1, 27, 28, 29, 30, 31, + -1, 33, 34, -1, -1, -1, -1, -1, 40, -1, + -1, -1, 44, 45, -1, 47, -1, -1, -1, -1, + -1, -1, -1, 55, -1, -1, -1, 59, -1, -1, + -1, 63, 64, -1, -1, -1, -1, 69, 70, 71, + -1, 73, -1, 75, -1, 77, -1, 79, 80, -1, + 82, -1, -1, -1, -1, 87, -1, -1, 90, -1, + -1, -1, -1, -1, -1, 97, -1, -1, 100, -1, + 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, + -1, 113, -1, -1, 116, -1, -1, -1, -1, -1, + 122, 123, 124, 125, 126, 127, -1, -1, -1, -1, + -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, + 142, -1, -1, -1, 146, -1, 148, 149, -1, -1, + -1, -1, -1, -1, -1, 157, 158, 159, -1, 161, + -1, -1, -1, -1, 166, -1, 168, -1, -1, -1, + 172, -1, -1, 175, 3, 177, 178, -1, -1, -1, + -1, -1, 184, 185, -1, 187, -1, 16, 17, 18, + 192, -1, 194, 195, 196, 197, 198, 199, -1, 28, + 29, 30, 31, 205, 33, 34, 208, 209, 210, -1, + -1, 40, -1, -1, -1, 217, 218, -1, 47, -1, + -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, + 59, -1, -1, -1, 63, 64, -1, -1, -1, -1, + 69, 70, 71, -1, 73, -1, 75, -1, -1, -1, + 79, 80, -1, 82, -1, -1, -1, -1, -1, -1, + -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, + -1, -1, -1, 102, 103, 104, 105, -1, -1, -1, + -1, -1, -1, -1, 113, -1, -1, 116, -1, -1, + -1, -1, -1, 122, 123, 124, 125, 126, 127, -1, + -1, -1, -1, -1, -1, -1, 135, -1, -1, 138, + 139, 140, -1, 142, -1, -1, -1, 146, -1, 148, + 149, -1, -1, -1, -1, -1, -1, -1, 157, 158, + 159, -1, -1, -1, -1, -1, -1, 166, -1, 168, -1, -1, -1, 172, -1, -1, 175, 3, 177, 178, -1, -1, -1, -1, -1, 184, 185, -1, 187, -1, 16, 17, 18, 192, -1, 194, 195, 196, 197, 198, - 199, -1, 28, 29, 30, 31, 205, 33, 34, 208, + 199, -1, -1, -1, -1, -1, 205, 33, 34, 208, 209, 210, -1, -1, 40, -1, -1, -1, 217, 218, -1, 47, -1, -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, 59, -1, -1, -1, 63, 64, -1, -1, -1, -1, 69, 70, 71, -1, 73, -1, 75, - -1, -1, -1, 79, 80, -1, 82, -1, -1, -1, + -1, 77, -1, 79, 80, -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, 103, 104, 105, - -1, -1, -1, -1, -1, -1, -1, 113, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, -1, -1, @@ -3560,96 +3553,144 @@ static const short yycheck[] = { 3, 196, 197, 198, 199, -1, -1, -1, -1, -1, 205, 33, 34, 208, 209, 210, -1, -1, 40, -1, -1, -1, 217, -1, -1, 47, -1, -1, -1, -1, -1, - -1, -1, 55, -1, -1, -1, 59, -1, -1, -1, - 63, 64, -1, -1, -1, -1, 69, 70, 71, -1, + -1, -1, 55, -1, -1, -1, 59, -1, 7, -1, + 63, 64, -1, 12, -1, -1, 69, 70, 71, -1, 73, -1, 75, -1, 77, -1, 79, 80, -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, - 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 116, -1, -1, -1, -1, -1, 122, - 123, 124, 125, 126, 127, -1, -1, -1, -1, -1, - -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, - -1, -1, -1, 146, -1, 148, 149, -1, -1, 3, - -1, -1, -1, -1, 157, 158, 159, -1, -1, -1, - -1, -1, -1, 166, -1, 168, -1, -1, -1, 172, - -1, 7, 175, 27, 177, 178, 12, -1, -1, 33, - -1, 184, 185, -1, 187, -1, 40, -1, -1, 192, + 103, 104, 105, -1, -1, -1, -1, 56, -1, -1, + -1, -1, 61, 116, -1, -1, -1, -1, 67, 122, + 123, 124, 125, 126, 127, -1, -1, -1, 77, -1, + -1, -1, 135, -1, 83, 138, 139, 140, -1, 142, + -1, -1, -1, 146, -1, 148, 149, -1, -1, -1, + -1, -1, -1, -1, 157, 158, 159, -1, -1, 7, + -1, -1, -1, 166, 12, 168, -1, -1, -1, 172, + -1, -1, 175, -1, 177, 178, -1, -1, -1, -1, + -1, 184, 185, -1, 187, -1, -1, -1, -1, 192, -1, 194, 195, 196, 197, 198, 199, -1, -1, -1, - -1, 55, 205, -1, -1, 208, 209, 210, -1, 63, - 64, -1, -1, -1, 217, 69, 70, 71, -1, -1, - 56, -1, -1, -1, -1, 61, -1, -1, 82, -1, - -1, 67, -1, -1, -1, -1, 90, -1, -1, -1, - -1, 77, -1, 97, -1, -1, -1, 83, 102, -1, - 104, 105, -1, -1, -1, -1, -1, -1, -1, 7, - -1, -1, -1, -1, 12, -1, -1, -1, 122, 123, - -1, 125, -1, 127, -1, -1, -1, -1, -1, -1, - -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, - -1, -1, 146, -1, 148, 149, -1, -1, -1, -1, - -1, -1, 50, 157, 158, 159, -1, 161, 56, -1, - -1, -1, 166, 61, 168, -1, 152, -1, 172, 67, - -1, -1, -1, 177, 178, -1, -1, 7, 164, 77, - 184, 185, 12, 187, -1, 83, -1, -1, 192, -1, - 194, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 205, 152, -1, 208, 209, 210, 56, -1, + -1, -1, -1, 61, 217, 164, -1, -1, -1, 67, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 77, + -1, -1, -1, -1, -1, 83, -1, -1, -1, -1, + -1, 3, -1, -1, -1, -1, -1, 196, -1, -1, + -1, -1, 201, 202, 203, 204, 205, 206, 207, -1, + -1, -1, -1, -1, -1, 214, 215, -1, -1, -1, + -1, 33, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 196, -1, -1, 217, -1, 201, 202, 203, 204, 205, - 206, 207, -1, -1, -1, -1, 56, -1, 214, 215, - -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, - -1, -1, -1, 83, 152, -1, -1, -1, -1, 3, + -1, -1, -1, 55, -1, -1, -1, -1, -1, -1, + -1, 63, 64, -1, 152, -1, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, 164, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - -1, -1, -1, -1, -1, -1, 40, -1, 196, -1, + 82, -1, -1, -1, -1, -1, -1, -1, 90, -1, + -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, + 102, -1, 104, 105, -1, -1, -1, -1, 196, -1, -1, -1, -1, 201, 202, 203, 204, 205, 206, 207, - -1, 55, -1, -1, -1, -1, -1, 215, -1, 63, - 64, -1, 152, -1, -1, 69, 70, 71, -1, -1, - -1, -1, -1, -1, 164, -1, -1, -1, 82, -1, - -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, - -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, - 104, 105, -1, -1, -1, -1, 196, -1, -1, -1, - -1, 201, 202, 203, 204, 205, 206, 207, 122, 123, - -1, 125, -1, 127, -1, 215, -1, -1, -1, -1, - -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, - -1, -1, 146, -1, 148, 149, -1, -1, -1, -1, - -1, -1, 3, 157, 158, 159, -1, -1, -1, -1, - -1, -1, 166, -1, 168, -1, -1, -1, 172, -1, - -1, 175, -1, 177, 178, -1, -1, -1, -1, -1, - 184, 185, 33, 187, -1, 36, -1, -1, 192, 40, - 194, 195, 196, 197, -1, 199, -1, 201, 202, 203, - 204, 205, 206, 207, 55, -1, -1, -1, -1, -1, - -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, - 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, - 91, -1, -1, -1, -1, -1, 97, -1, -1, -1, - -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, + 122, 123, -1, 125, -1, 127, -1, 215, -1, -1, + -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, + 142, -1, -1, -1, 146, -1, 148, 149, -1, -1, + -1, -1, -1, -1, 3, 157, 158, 159, -1, -1, + -1, -1, -1, -1, 166, -1, 168, -1, -1, -1, + 172, -1, -1, 175, -1, 177, 178, -1, -1, -1, + -1, -1, 184, 185, 33, 187, -1, 36, -1, -1, + 192, 40, 194, 195, 196, 197, -1, 199, -1, 201, + 202, 203, 204, 205, 206, 207, 55, -1, -1, -1, + -1, -1, -1, 62, 63, 64, -1, -1, -1, -1, + 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, + -1, 90, 91, -1, -1, -1, -1, -1, 97, -1, + -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 122, 123, -1, 125, -1, 127, -1, -1, -1, - -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, - -1, 142, -1, -1, -1, 146, -1, 148, 149, -1, - -1, -1, -1, -1, -1, 3, 157, 158, 159, -1, - -1, -1, -1, -1, -1, 166, -1, 168, -1, -1, - -1, 172, -1, -1, -1, -1, 177, 178, -1, -1, - -1, -1, -1, 184, 185, 33, 187, -1, -1, -1, - -1, 192, 40, 194, -1, 196, -1, -1, -1, -1, - 201, 202, 203, 204, 205, 206, 207, 55, -1, -1, - -1, -1, -1, -1, 62, 63, 64, -1, -1, -1, - -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, - -1, -1, 90, 91, -1, -1, -1, -1, -1, 97, - -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, + -1, -1, -1, 122, 123, -1, 125, -1, 127, -1, + -1, -1, -1, -1, -1, -1, 135, -1, -1, 138, + 139, 140, -1, 142, -1, -1, -1, 146, -1, 148, + 149, -1, -1, -1, -1, -1, -1, 3, 157, 158, + 159, -1, -1, -1, -1, -1, -1, 166, -1, 168, + -1, -1, -1, 172, -1, -1, -1, -1, 177, 178, + -1, -1, -1, -1, -1, 184, 185, 33, 187, -1, + -1, -1, -1, 192, 40, 194, -1, 196, -1, -1, + -1, -1, 201, 202, 203, 204, 205, 206, 207, 55, + -1, -1, -1, -1, -1, -1, 62, 63, 64, -1, + -1, -1, -1, 69, 70, 71, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, + -1, -1, -1, -1, 90, 91, -1, -1, -1, -1, + -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 122, 123, -1, 125, -1, 127, - -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, - 138, 139, 140, -1, 142, -1, -1, -1, 146, -1, - 148, 149, -1, -1, -1, -1, -1, -1, 3, 157, - 158, 159, -1, -1, -1, -1, -1, -1, 166, -1, - 168, -1, -1, -1, 172, -1, -1, -1, -1, 177, - 178, -1, 27, -1, -1, -1, 184, 185, 33, 187, - -1, -1, -1, -1, 192, 40, 194, -1, 196, -1, - -1, -1, -1, 201, 202, 203, 204, 205, 206, 207, - 55, -1, -1, -1, -1, -1, -1, -1, 63, 64, - -1, -1, -1, -1, 69, 70, 71, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, + -1, -1, -1, -1, -1, -1, 122, 123, -1, 125, + -1, 127, -1, -1, -1, -1, -1, -1, -1, 135, + -1, -1, 138, 139, 140, -1, 142, -1, -1, -1, + 146, -1, 148, 149, -1, -1, -1, -1, -1, -1, + 3, 157, 158, 159, -1, -1, -1, -1, -1, -1, + 166, -1, 168, -1, -1, -1, 172, -1, -1, -1, + -1, 177, 178, -1, 27, -1, -1, -1, 184, 185, + 33, 187, -1, -1, -1, -1, 192, 40, 194, -1, + 196, -1, -1, -1, -1, 201, 202, 203, 204, 205, + 206, 207, 55, -1, -1, -1, -1, -1, -1, -1, + 63, 64, -1, -1, -1, -1, 69, 70, 71, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, + -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, + -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, + -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, + 123, -1, 125, -1, 127, -1, -1, -1, -1, -1, + -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, + 3, -1, -1, 146, -1, 148, 149, -1, -1, -1, + -1, -1, -1, -1, 157, 158, 159, -1, 161, -1, + -1, -1, -1, 166, -1, 168, -1, -1, -1, 172, + 33, -1, -1, -1, 177, 178, -1, 40, -1, -1, + -1, 184, 185, -1, 187, -1, -1, -1, -1, 192, + -1, 194, 55, -1, -1, 198, -1, -1, -1, -1, + 63, 64, -1, 206, -1, -1, 69, 70, 71, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, + -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, + -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, + -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, + 123, -1, 125, -1, 127, -1, -1, 3, -1, -1, + -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, + -1, -1, -1, 146, -1, 148, 149, -1, -1, -1, + -1, -1, -1, -1, 157, 158, 159, 33, -1, -1, + -1, -1, -1, 166, 40, 168, -1, -1, -1, 172, + -1, -1, -1, -1, 177, 178, -1, -1, -1, 55, + -1, 184, 185, -1, 187, -1, -1, 63, 64, 192, + -1, 194, -1, 69, 70, 71, -1, -1, -1, -1, + -1, -1, -1, 206, -1, -1, 82, -1, -1, -1, + -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, + -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 122, 123, -1, 125, + -1, 127, -1, -1, 3, -1, -1, -1, -1, 135, + -1, -1, 138, 139, 140, -1, 142, -1, -1, -1, + 146, -1, 148, 149, -1, -1, -1, -1, -1, -1, + -1, 157, 158, 159, 33, -1, -1, -1, -1, -1, + 166, 40, 168, -1, -1, -1, 172, -1, -1, -1, + -1, 177, 178, -1, -1, -1, 55, -1, 184, 185, + -1, 187, -1, -1, 63, 64, 192, -1, 194, -1, + 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, + 206, -1, -1, 82, -1, -1, -1, -1, -1, -1, + -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, + -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 122, 123, -1, 125, -1, 127, -1, + -1, 3, -1, -1, -1, -1, 135, -1, -1, 138, + 139, 140, -1, 142, -1, -1, -1, 146, -1, 148, + 149, -1, -1, -1, -1, -1, -1, -1, 157, 158, + 159, 33, -1, -1, -1, -1, -1, 166, 40, 168, + -1, -1, -1, 172, -1, -1, -1, -1, 177, 178, + -1, -1, -1, 55, -1, 184, 185, -1, 187, -1, + -1, 63, 64, 192, -1, 194, -1, 69, 70, 71, + -1, -1, -1, -1, -1, -1, -1, 206, -1, -1, + 82, -1, -1, -1, -1, -1, -1, -1, 90, -1, + -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, + 102, -1, 104, 105, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 122, 123, -1, 125, -1, 127, -1, -1, 3, -1, + -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, + 142, -1, -1, -1, 146, -1, 148, 149, -1, -1, + -1, -1, 27, -1, -1, 157, 158, 159, 33, -1, + -1, -1, -1, -1, 166, 40, 168, -1, -1, -1, + 172, -1, -1, -1, -1, 177, 178, -1, -1, -1, + 55, -1, 184, 185, -1, 187, -1, -1, 63, 64, + 192, -1, 194, -1, 69, 70, 71, -1, -1, -1, + -1, -1, -1, -1, 206, -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -3662,33 +3703,62 @@ static const short yycheck[] = { 3, -1, -1, 177, 178, -1, 40, -1, -1, -1, 184, 185, -1, 187, -1, -1, -1, -1, 192, -1, 194, 55, -1, -1, 198, -1, -1, -1, -1, 63, 64, - -1, 206, -1, -1, 69, 70, 71, -1, -1, -1, + -1, -1, -1, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, - 125, -1, 127, -1, -1, 3, -1, -1, -1, -1, + 125, -1, 127, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, -1, - -1, 146, -1, 148, 149, -1, -1, -1, -1, -1, - -1, -1, 157, 158, 159, 33, -1, -1, -1, -1, - -1, 166, 40, 168, -1, -1, -1, 172, -1, -1, - -1, -1, 177, 178, -1, -1, -1, 55, -1, 184, - 185, -1, 187, -1, -1, 63, 64, 192, -1, 194, + -1, 146, -1, 148, 149, -1, -1, 3, -1, -1, + -1, -1, 157, 158, 159, -1, -1, -1, -1, -1, + -1, 166, -1, 168, -1, -1, -1, 172, 24, -1, + 26, -1, 177, 178, -1, -1, -1, 33, -1, 184, + 185, -1, 187, -1, 40, -1, -1, 192, -1, 194, + -1, -1, 197, 49, -1, -1, -1, 53, -1, 55, + -1, -1, -1, -1, -1, -1, -1, 63, 64, -1, + -1, -1, -1, 69, 70, 71, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 82, -1, 84, -1, + -1, 87, 88, -1, 90, -1, -1, -1, -1, -1, + -1, 97, -1, -1, -1, 101, 102, -1, 104, 105, + -1, -1, 108, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 122, 123, 124, 125, + 126, 127, -1, -1, 3, -1, -1, -1, -1, 135, + 136, -1, 138, 139, 140, -1, 142, -1, 17, 18, + 146, -1, 148, 149, -1, -1, -1, -1, -1, 155, + -1, 157, 158, 159, 33, 34, -1, -1, -1, -1, + 166, 40, 168, -1, -1, -1, 172, -1, 47, -1, + -1, 177, 178, -1, -1, -1, 55, -1, 184, 185, + 186, 187, -1, -1, 63, 64, 192, -1, 194, -1, + 69, 70, 71, -1, 73, -1, 75, -1, -1, -1, + -1, 80, -1, 82, -1, -1, -1, -1, -1, -1, + -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, + -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, + -1, -1, -1, 122, 123, -1, 125, -1, 127, -1, + -1, -1, -1, -1, -1, -1, 135, -1, -1, 138, + 139, 140, -1, 142, -1, 3, -1, 146, -1, 148, + 149, -1, -1, -1, -1, -1, -1, -1, 157, 158, + 159, 19, -1, -1, -1, -1, 24, 166, -1, 168, + -1, -1, -1, 172, -1, 33, -1, -1, 177, 178, + -1, -1, 40, -1, -1, 184, 185, -1, 187, -1, + -1, 49, -1, 192, -1, 194, -1, 55, -1, -1, + -1, -1, -1, -1, -1, 63, 64, -1, -1, -1, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, - -1, 206, -1, -1, 82, -1, -1, -1, -1, -1, - -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, + -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, + -1, 89, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, 125, -1, 127, -1, -1, 3, -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, -1, -1, 146, -1, - 148, 149, -1, -1, -1, -1, -1, -1, -1, 157, + 148, 149, -1, -1, -1, -1, 27, -1, -1, 157, 158, 159, 33, -1, -1, -1, -1, -1, 166, 40, 168, -1, -1, -1, 172, -1, -1, -1, -1, 177, 178, -1, -1, -1, 55, -1, 184, 185, -1, 187, -1, -1, 63, 64, 192, -1, 194, -1, 69, 70, - 71, -1, -1, -1, -1, -1, -1, -1, 206, -1, + 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, @@ -3697,88 +3767,45 @@ static const short yycheck[] = { 3, -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, -1, -1, 146, -1, 148, 149, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 33, - -1, -1, -1, -1, -1, 166, 40, 168, -1, -1, - -1, 172, -1, -1, -1, -1, 177, 178, -1, -1, + 161, -1, -1, -1, -1, 166, 40, 168, -1, -1, + -1, 172, -1, -1, -1, -1, 177, 178, -1, 53, -1, 55, -1, 184, 185, -1, 187, -1, -1, 63, 64, 192, -1, 194, -1, 69, 70, 71, -1, -1, - -1, -1, -1, -1, -1, 206, -1, -1, 82, -1, - -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, + -1, -1, -1, -1, -1, -1, 90, -1, 92, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, 125, -1, 127, -1, -1, 3, -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, -1, -1, 146, -1, 148, 149, -1, -1, -1, -1, - 27, -1, -1, 157, 158, 159, 33, -1, -1, -1, + -1, -1, -1, 157, 158, 159, 33, -1, -1, -1, -1, -1, 166, 40, 168, -1, -1, -1, 172, -1, -1, -1, -1, 177, 178, -1, -1, -1, 55, -1, 184, 185, -1, 187, -1, -1, 63, 64, 192, -1, - 194, -1, 69, 70, 71, -1, -1, -1, -1, -1, - -1, -1, 206, -1, -1, 82, -1, -1, -1, -1, - -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, - 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 122, 123, -1, 125, -1, - 127, -1, -1, -1, -1, -1, -1, -1, 135, -1, - -1, 138, 139, 140, -1, 142, 3, -1, -1, 146, - -1, 148, 149, -1, -1, -1, -1, -1, -1, -1, - 157, 158, 159, -1, 161, -1, -1, -1, -1, 166, - -1, 168, -1, -1, -1, 172, 33, -1, -1, -1, - 177, 178, -1, 40, -1, -1, -1, 184, 185, -1, - 187, -1, -1, -1, -1, 192, -1, 194, 55, -1, - -1, 198, -1, -1, -1, -1, 63, 64, -1, -1, - -1, -1, 69, 70, 71, -1, -1, -1, -1, -1, + 194, -1, 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, 125, -1, - 127, -1, -1, -1, -1, -1, -1, -1, 135, -1, + 127, -1, -1, 3, -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, -1, -1, 146, - -1, 148, 149, -1, -1, 3, -1, -1, -1, -1, - 157, 158, 159, -1, -1, -1, -1, -1, -1, 166, - -1, 168, -1, -1, -1, 172, 24, -1, 26, -1, - 177, 178, -1, -1, -1, 33, -1, 184, 185, -1, - 187, -1, 40, -1, -1, 192, -1, 194, -1, -1, - 197, 49, -1, -1, -1, 53, -1, 55, -1, -1, - -1, -1, -1, -1, -1, 63, 64, -1, -1, -1, - -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 82, -1, 84, -1, -1, 87, - 88, -1, 90, -1, -1, -1, -1, -1, -1, 97, - -1, -1, -1, 101, 102, -1, 104, 105, -1, -1, - 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, - -1, -1, 3, -1, -1, -1, -1, 135, 136, -1, - 138, 139, 140, -1, 142, -1, 17, 18, 146, -1, - 148, 149, -1, -1, -1, -1, -1, 155, -1, 157, - 158, 159, 33, 34, -1, -1, -1, -1, 166, 40, - 168, -1, -1, -1, 172, -1, 47, -1, -1, 177, - 178, -1, -1, -1, 55, -1, 184, 185, 186, 187, - -1, -1, 63, 64, 192, -1, 194, -1, 69, 70, - 71, -1, 73, -1, 75, -1, -1, -1, -1, 80, - -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, - -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, - -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, - -1, 122, 123, -1, 125, -1, 127, -1, -1, -1, - -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, - -1, 142, -1, 3, -1, 146, -1, 148, 149, -1, - -1, -1, -1, -1, -1, -1, 157, 158, 159, 19, - -1, -1, -1, -1, 24, 166, -1, 168, -1, -1, - -1, 172, -1, 33, -1, -1, 177, 178, -1, -1, - 40, -1, -1, 184, 185, -1, 187, -1, -1, 49, - -1, 192, -1, 194, -1, 55, -1, -1, -1, -1, - -1, -1, -1, 63, 64, -1, -1, -1, -1, 69, + -1, 148, 149, -1, -1, -1, -1, -1, -1, -1, + 157, 158, 159, 33, -1, -1, -1, -1, -1, 166, + 40, 168, -1, -1, -1, 172, -1, -1, -1, -1, + 177, 178, -1, -1, -1, 55, -1, 184, 185, -1, + 187, -1, -1, 63, 64, 192, -1, 194, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 82, -1, -1, -1, -1, -1, -1, 89, + -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, - -1, 111, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, 125, -1, 127, -1, -1, 3, -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, -1, -1, 146, -1, 148, 149, - -1, -1, -1, -1, 27, -1, -1, 157, 158, 159, - 33, -1, -1, -1, -1, -1, 166, 40, 168, -1, + -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, + 33, -1, 162, -1, -1, -1, 166, 40, 168, -1, -1, -1, 172, -1, -1, -1, -1, 177, 178, -1, -1, -1, 55, -1, 184, 185, -1, 187, -1, -1, 63, 64, 192, -1, 194, -1, 69, 70, 71, -1, @@ -3788,15 +3815,15 @@ static const short yycheck[] = { 3, -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, 125, -1, 127, -1, -1, 3, -1, -1, - -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, + -1, -1, 135, 9, -1, 138, 139, 140, -1, 142, -1, -1, -1, 146, -1, 148, 149, -1, -1, -1, - -1, -1, -1, -1, 157, 158, 159, 33, 161, -1, + -1, -1, -1, -1, 157, 158, 159, 33, -1, 162, -1, -1, -1, 166, 40, 168, -1, -1, -1, 172, - -1, -1, -1, -1, 177, 178, -1, 53, -1, 55, + -1, -1, -1, -1, 177, 178, -1, -1, -1, 55, -1, 184, 185, -1, 187, -1, -1, 63, 64, 192, -1, 194, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, - -1, -1, -1, -1, 90, -1, 92, -1, -1, -1, + -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, 125, @@ -3807,7 +3834,7 @@ static const short yycheck[] = { 3, 166, 40, 168, -1, -1, -1, 172, -1, -1, -1, -1, 177, 178, -1, -1, -1, 55, -1, 184, 185, -1, 187, -1, -1, 63, 64, 192, -1, 194, -1, - 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, + 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, @@ -3829,7 +3856,7 @@ static const short yycheck[] = { 3, -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, -1, -1, 146, -1, 148, 149, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 33, -1, - 162, -1, -1, -1, 166, 40, 168, -1, -1, -1, + -1, -1, -1, -1, 166, 40, 168, -1, -1, -1, 172, -1, -1, -1, -1, 177, 178, -1, -1, -1, 55, -1, 184, 185, -1, 187, -1, -1, 63, 64, 192, -1, 194, -1, 69, 70, 71, -1, -1, -1, @@ -3838,93 +3865,42 @@ static const short yycheck[] = { 3, -1, -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, - 125, -1, 127, -1, -1, 3, -1, -1, -1, -1, - 135, 9, -1, 138, 139, 140, -1, 142, -1, -1, - -1, 146, -1, 148, 149, -1, -1, -1, -1, -1, - -1, -1, 157, 158, 159, 33, -1, 162, -1, -1, - -1, 166, 40, 168, -1, -1, -1, 172, -1, -1, + 125, -1, 127, -1, -1, -1, -1, -1, -1, -1, + 135, -1, -1, 138, 139, 140, -1, 142, -1, 17, + 18, 146, -1, 148, 149, -1, -1, -1, -1, -1, + -1, -1, 157, 158, 159, 33, 34, -1, -1, -1, + -1, 166, 40, 168, -1, -1, -1, 172, -1, 47, -1, -1, 177, 178, -1, -1, -1, 55, -1, 184, - 185, -1, 187, -1, -1, 63, 64, 192, -1, 194, - -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, - -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, - -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 122, 123, -1, 125, -1, 127, - -1, -1, 3, -1, -1, -1, -1, 135, -1, -1, - 138, 139, 140, -1, 142, -1, -1, -1, 146, -1, - 148, 149, -1, -1, -1, -1, -1, -1, -1, 157, - 158, 159, 33, -1, -1, -1, -1, -1, 166, 40, - 168, -1, -1, -1, 172, -1, -1, -1, -1, 177, - 178, -1, -1, -1, 55, -1, 184, 185, -1, 187, - -1, -1, 63, 64, 192, -1, 194, -1, 69, 70, - 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, - -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, - -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 122, 123, -1, 125, -1, 127, -1, -1, 3, - -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, - -1, 142, -1, -1, -1, 146, -1, 148, 149, -1, - -1, -1, -1, -1, -1, -1, 157, 158, 159, 33, - -1, -1, -1, -1, -1, 166, 40, 168, -1, -1, - -1, 172, -1, -1, -1, -1, 177, 178, -1, -1, - -1, 55, -1, 184, 185, -1, 187, -1, -1, 63, - 64, 192, -1, 194, -1, 69, 70, 71, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, - -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, - -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, - 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, - -1, 125, -1, 127, -1, -1, 3, -1, -1, -1, - -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, - -1, -1, 146, -1, 148, 149, -1, -1, -1, -1, - -1, -1, -1, 157, 158, 159, 33, -1, -1, -1, - -1, -1, 166, 40, 168, -1, -1, -1, 172, -1, - -1, -1, -1, 177, 178, -1, -1, -1, 55, -1, - 184, 185, -1, 187, -1, -1, 63, 64, 192, -1, - 194, -1, 69, 70, 71, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, - -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, - 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 122, 123, -1, 125, -1, - 127, -1, -1, -1, -1, -1, -1, -1, 135, -1, - -1, 138, 139, 140, -1, 142, -1, 17, 18, 146, - -1, 148, 149, -1, -1, -1, -1, -1, -1, -1, - 157, 158, 159, 33, 34, -1, -1, -1, -1, 166, - 40, 168, -1, -1, -1, 172, -1, 47, -1, -1, - 177, 178, -1, -1, -1, 55, -1, 184, 185, 59, - 187, -1, -1, -1, -1, 192, -1, 194, -1, -1, - 70, 71, -1, 73, -1, 75, -1, 17, 18, -1, - 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, 34, -1, -1, 97, 98, -1, - 40, -1, 102, 103, -1, -1, -1, 47, -1, -1, - -1, -1, -1, -1, -1, 55, 116, -1, -1, 59, - -1, -1, 122, -1, 124, -1, 126, 127, -1, -1, - 70, 71, -1, 73, -1, 75, -1, -1, -1, -1, - 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, - -1, -1, 102, 103, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 6, 175, 116, -1, -1, 11, - -1, -1, 122, -1, 124, -1, 126, 127, 20, -1, - -1, 23, -1, 25, 194, 195, -1, 197, 198, 199, - -1, -1, -1, 35, -1, 37, -1, -1, -1, 41, - 42, 43, -1, -1, 46, -1, -1, -1, -1, -1, - 52, -1, -1, -1, -1, -1, 58, -1, -1, -1, - -1, -1, -1, -1, -1, 175, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 78, -1, -1, -1, - -1, -1, -1, -1, 194, 195, -1, 197, 198, 199, - -1, -1, 94, -1, 96, -1, 98, 99, -1, -1, + 185, 59, 187, -1, -1, -1, -1, 192, -1, 194, + -1, -1, 70, 71, -1, 73, -1, 75, -1, 17, + 18, -1, 80, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 33, 34, -1, -1, 97, + 98, -1, 40, -1, 102, 103, -1, -1, -1, 47, + -1, -1, -1, -1, -1, -1, -1, 55, 116, -1, + -1, 59, -1, -1, 122, -1, 124, -1, 126, 127, + -1, -1, 70, 71, -1, 73, -1, 75, -1, -1, + -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, + -1, -1, -1, -1, 102, 103, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 6, 175, 116, -1, + -1, 11, -1, -1, 122, -1, 124, -1, 126, 127, + 20, -1, -1, 23, -1, 25, 194, 195, -1, 197, + 198, 199, -1, -1, -1, 35, -1, 37, -1, -1, + -1, 41, 42, 43, -1, -1, 46, -1, -1, -1, + -1, -1, 52, -1, -1, -1, -1, -1, 58, -1, + -1, -1, -1, -1, -1, -1, -1, 175, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 78, -1, + -1, -1, -1, -1, -1, -1, 194, 195, -1, 197, + 198, 199, -1, -1, 94, -1, 96, -1, 98, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 128, -1, -1, -1, - -1, -1, -1, -1, 136, 137, -1, -1, -1, -1, - -1, 143, 144, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 154, 155, 156, -1, -1, -1, 160, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 170, -1, - -1, -1, -1, -1, 176, -1, -1, -1, -1, -1, - 182 + -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 128, -1, + -1, -1, -1, -1, -1, -1, 136, 137, -1, -1, + -1, -1, -1, 143, 144, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 154, 155, 156, -1, -1, -1, + 160, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 170, -1, -1, -1, -1, -1, 176, -1, -1, -1, + -1, -1, 182 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/local/bison/bison.simple" @@ -6796,279 +6772,216 @@ case 453: #line 2521 "gram.y" { yyval.sortgroupby = makeNode(SortGroupBy); - yyval.sortgroupby->resno = 0; - yyval.sortgroupby->range = NULL; - yyval.sortgroupby->name = yyvsp[-1].str; + yyval.sortgroupby->node = yyvsp[-1].node; yyval.sortgroupby->useOp = yyvsp[0].str; ; break;} case 454: -#line 2529 "gram.y" -{ - yyval.sortgroupby = makeNode(SortGroupBy); - yyval.sortgroupby->resno = 0; - yyval.sortgroupby->range = yyvsp[-3].str; - yyval.sortgroupby->name = yyvsp[-1].str; - yyval.sortgroupby->useOp = yyvsp[0].str; - ; +#line 2528 "gram.y" +{ yyval.str = yyvsp[0].str; ; break;} case 455: -#line 2537 "gram.y" -{ - yyval.sortgroupby = makeNode(SortGroupBy); - yyval.sortgroupby->resno = yyvsp[-1].ival; - yyval.sortgroupby->range = NULL; - yyval.sortgroupby->name = NULL; - yyval.sortgroupby->useOp = yyvsp[0].str; - ; +#line 2529 "gram.y" +{ yyval.str = "<"; ; break;} case 456: -#line 2546 "gram.y" -{ yyval.str = yyvsp[0].str; ; +#line 2530 "gram.y" +{ yyval.str = ">"; ; break;} case 457: -#line 2547 "gram.y" +#line 2531 "gram.y" { yyval.str = "<"; ; break;} case 458: -#line 2548 "gram.y" +#line 2532 "gram.y" { yyval.str = ">"; ; break;} case 459: -#line 2549 "gram.y" -{ yyval.str = "<"; ; - break;} -case 460: -#line 2550 "gram.y" -{ yyval.str = ">"; ; - break;} -case 461: -#line 2551 "gram.y" +#line 2533 "gram.y" { yyval.str = "<"; /*default*/ ; break;} -case 462: -#line 2561 "gram.y" +case 460: +#line 2543 "gram.y" { yyval.boolean = TRUE; ; break;} -case 463: -#line 2562 "gram.y" +case 461: +#line 2544 "gram.y" { yyval.boolean = FALSE; ; break;} -case 465: -#line 2568 "gram.y" +case 463: +#line 2550 "gram.y" { yyval.list = lcons(makeString(yyvsp[0].str),NIL); ; break;} -case 466: -#line 2570 "gram.y" +case 464: +#line 2552 "gram.y" { yyval.list = lappend(yyvsp[-2].list,makeString(yyvsp[0].str)); ; break;} -case 467: -#line 2573 "gram.y" +case 465: +#line 2555 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 468: -#line 2574 "gram.y" +case 466: +#line 2556 "gram.y" { yyval.list = NIL; ; break;} -case 469: -#line 2577 "gram.y" -{ yyval.list = lcons(yyvsp[0].sortgroupby, NIL); ; - break;} -case 470: -#line 2578 "gram.y" -{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].sortgroupby); ; - break;} -case 471: -#line 2582 "gram.y" -{ - yyval.sortgroupby = makeNode(SortGroupBy); - yyval.sortgroupby->resno = 0; - yyval.sortgroupby->range = NULL; - yyval.sortgroupby->name = yyvsp[0].str; - yyval.sortgroupby->useOp = NULL; - ; - break;} -case 472: -#line 2590 "gram.y" -{ - yyval.sortgroupby = makeNode(SortGroupBy); - yyval.sortgroupby->resno = 0; - yyval.sortgroupby->range = yyvsp[-2].str; - yyval.sortgroupby->name = yyvsp[0].str; - yyval.sortgroupby->useOp = NULL; - ; - break;} -case 473: -#line 2598 "gram.y" -{ - yyval.sortgroupby = makeNode(SortGroupBy); - yyval.sortgroupby->resno = yyvsp[0].ival; - yyval.sortgroupby->range = NULL; - yyval.sortgroupby->name = NULL; - yyval.sortgroupby->useOp = NULL; - ; - break;} -case 474: -#line 2608 "gram.y" +case 467: +#line 2560 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 475: -#line 2611 "gram.y" +case 468: +#line 2563 "gram.y" { yyval.node = NULL; ; break;} -case 476: -#line 2624 "gram.y" +case 469: +#line 2576 "gram.y" { yyval.list = NIL; elog(ERROR,"JOIN not yet implemented"); ; break;} -case 477: -#line 2628 "gram.y" +case 470: +#line 2580 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 478: -#line 2629 "gram.y" +case 471: +#line 2581 "gram.y" { yyval.list = NIL; ; break;} -case 479: -#line 2633 "gram.y" +case 472: +#line 2585 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].range); ; break;} -case 480: -#line 2635 "gram.y" +case 473: +#line 2587 "gram.y" { elog(ERROR,"CROSS JOIN not yet implemented"); ; break;} -case 481: -#line 2637 "gram.y" +case 474: +#line 2589 "gram.y" { yyval.list = lcons(yyvsp[0].range, NIL); ; break;} -case 482: -#line 2641 "gram.y" +case 475: +#line 2593 "gram.y" { yyval.range = makeNode(RangeVar); yyval.range->relExpr = yyvsp[-2].relexp; yyval.range->name = yyvsp[0].str; ; break;} -case 483: -#line 2647 "gram.y" +case 476: +#line 2599 "gram.y" { yyval.range = makeNode(RangeVar); yyval.range->relExpr = yyvsp[-1].relexp; yyval.range->name = yyvsp[0].str; ; break;} -case 484: -#line 2653 "gram.y" +case 477: +#line 2605 "gram.y" { yyval.range = makeNode(RangeVar); yyval.range->relExpr = yyvsp[0].relexp; yyval.range->name = NULL; ; break;} -case 485: -#line 2660 "gram.y" +case 478: +#line 2612 "gram.y" { yyval.str = NULL; ; break;} -case 486: -#line 2662 "gram.y" +case 479: +#line 2614 "gram.y" { elog(ERROR,"FULL OUTER JOIN not yet implemented"); ; break;} -case 487: -#line 2664 "gram.y" +case 480: +#line 2616 "gram.y" { elog(ERROR,"LEFT OUTER JOIN not yet implemented"); ; break;} -case 488: -#line 2666 "gram.y" +case 481: +#line 2618 "gram.y" { elog(ERROR,"RIGHT OUTER JOIN not yet implemented"); ; break;} -case 489: -#line 2668 "gram.y" +case 482: +#line 2620 "gram.y" { elog(ERROR,"OUTER JOIN not yet implemented"); ; break;} -case 490: -#line 2670 "gram.y" +case 483: +#line 2622 "gram.y" { elog(ERROR,"INNER JOIN not yet implemented"); ; break;} -case 491: -#line 2672 "gram.y" +case 484: +#line 2624 "gram.y" { elog(ERROR,"UNION JOIN not yet implemented"); ; break;} -case 492: -#line 2674 "gram.y" +case 485: +#line 2626 "gram.y" { elog(ERROR,"INNER JOIN not yet implemented"); ; break;} -case 493: -#line 2677 "gram.y" +case 486: +#line 2629 "gram.y" { yyval.str = NULL; ; break;} -case 494: -#line 2678 "gram.y" +case 487: +#line 2630 "gram.y" { yyval.str = NULL; /* no qualifiers */ ; break;} -case 495: -#line 2681 "gram.y" +case 488: +#line 2633 "gram.y" { yyval.str = NULL; ; break;} -case 496: -#line 2682 "gram.y" +case 489: +#line 2634 "gram.y" { yyval.str = NULL; ; break;} -case 497: -#line 2683 "gram.y" +case 490: +#line 2635 "gram.y" { yyval.str = NULL; /* no qualifiers */ ; break;} -case 498: -#line 2686 "gram.y" -{ yyval.list = lcons(yyvsp[0].sortgroupby, NIL); ; +case 491: +#line 2638 "gram.y" +{ yyval.list = lcons(yyvsp[0].joinusing, NIL); ; break;} -case 499: -#line 2687 "gram.y" -{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].sortgroupby); ; +case 492: +#line 2639 "gram.y" +{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].joinusing); ; break;} -case 500: -#line 2691 "gram.y" +case 493: +#line 2651 "gram.y" { - yyval.sortgroupby = makeNode(SortGroupBy); - yyval.sortgroupby->resno = 0; - yyval.sortgroupby->range = NULL; - yyval.sortgroupby->name = yyvsp[0].str; - yyval.sortgroupby->useOp = NULL; + yyval.joinusing = makeNode(JoinUsing); + yyval.joinusing->resno = 0; + yyval.joinusing->range = NULL; + yyval.joinusing->name = yyvsp[0].str; ; break;} -case 501: -#line 2699 "gram.y" +case 494: +#line 2658 "gram.y" { - yyval.sortgroupby = makeNode(SortGroupBy); - yyval.sortgroupby->resno = 0; - yyval.sortgroupby->range = yyvsp[-2].str; - yyval.sortgroupby->name = yyvsp[0].str; - yyval.sortgroupby->useOp = NULL; + yyval.joinusing = makeNode(JoinUsing); + yyval.joinusing->resno = 0; + yyval.joinusing->range = yyvsp[-2].str; + yyval.joinusing->name = yyvsp[0].str; ; break;} -case 502: -#line 2707 "gram.y" +case 495: +#line 2665 "gram.y" { - yyval.sortgroupby = makeNode(SortGroupBy); - yyval.sortgroupby->resno = yyvsp[0].ival; - yyval.sortgroupby->range = NULL; - yyval.sortgroupby->name = NULL; - yyval.sortgroupby->useOp = NULL; + yyval.joinusing = makeNode(JoinUsing); + yyval.joinusing->resno = yyvsp[0].ival; + yyval.joinusing->range = NULL; + yyval.joinusing->name = NULL; ; break;} -case 503: -#line 2716 "gram.y" +case 496: +#line 2673 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 504: -#line 2717 "gram.y" +case 497: +#line 2674 "gram.y" { yyval.node = NULL; /* no qualifiers */ ; break;} -case 505: -#line 2721 "gram.y" +case 498: +#line 2678 "gram.y" { /* normal relations */ yyval.relexp = makeNode(RelExpr); @@ -7076,8 +6989,8 @@ case 505: yyval.relexp->inh = FALSE; ; break;} -case 506: -#line 2728 "gram.y" +case 499: +#line 2685 "gram.y" { /* inheritance query */ yyval.relexp = makeNode(RelExpr); @@ -7085,32 +6998,32 @@ case 506: yyval.relexp->inh = TRUE; ; break;} -case 507: -#line 2736 "gram.y" +case 500: +#line 2693 "gram.y" { yyval.list = lcons(makeInteger(-1), yyvsp[0].list); ; break;} -case 508: -#line 2738 "gram.y" +case 501: +#line 2695 "gram.y" { yyval.list = lcons(makeInteger(yyvsp[-2].ival), yyvsp[0].list); ; break;} -case 509: -#line 2740 "gram.y" +case 502: +#line 2697 "gram.y" { yyval.list = NIL; ; break;} -case 510: -#line 2744 "gram.y" +case 503: +#line 2701 "gram.y" { yyval.list = lcons(makeInteger(-1), yyvsp[0].list); ; break;} -case 511: -#line 2746 "gram.y" +case 504: +#line 2703 "gram.y" { yyval.list = lcons(makeInteger(yyvsp[-2].ival), yyvsp[0].list); ; break;} -case 512: -#line 2748 "gram.y" +case 505: +#line 2705 "gram.y" { yyval.list = NIL; ; break;} -case 513: -#line 2763 "gram.y" +case 506: +#line 2720 "gram.y" { yyval.typnam = yyvsp[-1].typnam; yyval.typnam->arrayBounds = yyvsp[0].list; @@ -7133,78 +7046,78 @@ case 513: yyval.typnam->setof = FALSE; ; break;} -case 515: -#line 2786 "gram.y" +case 508: +#line 2743 "gram.y" { yyval.typnam = yyvsp[0].typnam; yyval.typnam->setof = TRUE; ; break;} -case 519: -#line 2798 "gram.y" +case 512: +#line 2755 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType(yyvsp[0].str); yyval.typnam->typmod = -1; ; break;} -case 520: -#line 2805 "gram.y" +case 513: +#line 2762 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 521: -#line 2806 "gram.y" +case 514: +#line 2763 "gram.y" { yyval.str = xlateSqlType("type"); ; break;} -case 522: -#line 2816 "gram.y" +case 515: +#line 2773 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType(yyvsp[0].str); yyval.typnam->typmod = -1; ; break;} -case 523: -#line 2822 "gram.y" +case 516: +#line 2779 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("float"); ; break;} -case 524: -#line 2827 "gram.y" +case 517: +#line 2784 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("integer"); yyval.typnam->typmod = -1; ; break;} -case 525: -#line 2833 "gram.y" +case 518: +#line 2790 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("integer"); yyval.typnam->typmod = -1; ; break;} -case 526: -#line 2841 "gram.y" +case 519: +#line 2798 "gram.y" { yyval.str = xlateSqlType("float8"); ; break;} -case 527: -#line 2843 "gram.y" +case 520: +#line 2800 "gram.y" { yyval.str = xlateSqlType("float8"); ; break;} -case 528: -#line 2845 "gram.y" +case 521: +#line 2802 "gram.y" { yyval.str = xlateSqlType("decimal"); ; break;} -case 529: -#line 2847 "gram.y" +case 522: +#line 2804 "gram.y" { yyval.str = xlateSqlType("numeric"); ; break;} -case 530: -#line 2851 "gram.y" +case 523: +#line 2808 "gram.y" { if (yyvsp[-1].ival < 1) elog(ERROR,"precision for FLOAT must be at least 1"); @@ -7216,14 +7129,14 @@ case 530: elog(ERROR,"precision for FLOAT must be less than 16"); ; break;} -case 531: -#line 2862 "gram.y" +case 524: +#line 2819 "gram.y" { yyval.str = xlateSqlType("float8"); ; break;} -case 532: -#line 2868 "gram.y" +case 525: +#line 2825 "gram.y" { if (yyvsp[-3].ival != 9) elog(ERROR,"NUMERIC precision %d must be 9",yyvsp[-3].ival); @@ -7231,21 +7144,21 @@ case 532: elog(ERROR,"NUMERIC scale %d must be zero",yyvsp[-1].ival); ; break;} -case 533: -#line 2875 "gram.y" +case 526: +#line 2832 "gram.y" { if (yyvsp[-1].ival != 9) elog(ERROR,"NUMERIC precision %d must be 9",yyvsp[-1].ival); ; break;} -case 534: -#line 2880 "gram.y" +case 527: +#line 2837 "gram.y" { yyval.str = NULL; ; break;} -case 535: -#line 2886 "gram.y" +case 528: +#line 2843 "gram.y" { if (yyvsp[-3].ival > 9) elog(ERROR,"DECIMAL precision %d exceeds implementation limit of 9",yyvsp[-3].ival); @@ -7254,22 +7167,22 @@ case 535: yyval.str = NULL; ; break;} -case 536: -#line 2894 "gram.y" +case 529: +#line 2851 "gram.y" { if (yyvsp[-1].ival > 9) elog(ERROR,"DECIMAL precision %d exceeds implementation limit of 9",yyvsp[-1].ival); yyval.str = NULL; ; break;} -case 537: -#line 2900 "gram.y" +case 530: +#line 2857 "gram.y" { yyval.str = NULL; ; break;} -case 538: -#line 2913 "gram.y" +case 531: +#line 2870 "gram.y" { yyval.typnam = makeNode(TypeName); if (strcasecmp(yyvsp[-3].str, "char") == 0) @@ -7297,8 +7210,8 @@ case 538: yyval.typnam->typmod = VARHDRSZ + yyvsp[-1].ival; ; break;} -case 539: -#line 2940 "gram.y" +case 532: +#line 2897 "gram.y" { yyval.typnam = makeNode(TypeName); /* Let's try to make all single-character types into bpchar(1) @@ -7316,8 +7229,8 @@ case 539: } ; break;} -case 540: -#line 2959 "gram.y" +case 533: +#line 2916 "gram.y" { char *type, *c; if ((yyvsp[-1].str == NULL) || (strcasecmp(yyvsp[-1].str, "sql_text") == 0)) { @@ -7338,56 +7251,56 @@ case 540: yyval.str = type; ; break;} -case 541: -#line 2978 "gram.y" +case 534: +#line 2935 "gram.y" { yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ; break;} -case 542: -#line 2979 "gram.y" +case 535: +#line 2936 "gram.y" { yyval.str = xlateSqlType("varchar"); ; break;} -case 543: -#line 2980 "gram.y" +case 536: +#line 2937 "gram.y" { yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ; break;} -case 544: -#line 2981 "gram.y" +case 537: +#line 2938 "gram.y" { yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ; break;} -case 545: -#line 2984 "gram.y" +case 538: +#line 2941 "gram.y" { yyval.boolean = TRUE; ; break;} -case 546: -#line 2985 "gram.y" +case 539: +#line 2942 "gram.y" { yyval.boolean = FALSE; ; break;} -case 547: -#line 2988 "gram.y" +case 540: +#line 2945 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 548: -#line 2989 "gram.y" +case 541: +#line 2946 "gram.y" { yyval.str = NULL; ; break;} -case 549: -#line 2992 "gram.y" +case 542: +#line 2949 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 550: -#line 2993 "gram.y" +case 543: +#line 2950 "gram.y" { yyval.str = NULL; ; break;} -case 551: -#line 2997 "gram.y" +case 544: +#line 2954 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType(yyvsp[0].str); yyval.typnam->typmod = -1; ; break;} -case 552: -#line 3003 "gram.y" +case 545: +#line 2960 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("timestamp"); @@ -7395,104 +7308,104 @@ case 552: yyval.typnam->typmod = -1; ; break;} -case 553: -#line 3010 "gram.y" +case 546: +#line 2967 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("time"); yyval.typnam->typmod = -1; ; break;} -case 554: -#line 3016 "gram.y" +case 547: +#line 2973 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("interval"); yyval.typnam->typmod = -1; ; break;} -case 555: -#line 3023 "gram.y" +case 548: +#line 2980 "gram.y" { yyval.str = "year"; ; break;} -case 556: -#line 3024 "gram.y" +case 549: +#line 2981 "gram.y" { yyval.str = "month"; ; break;} -case 557: -#line 3025 "gram.y" +case 550: +#line 2982 "gram.y" { yyval.str = "day"; ; break;} -case 558: -#line 3026 "gram.y" +case 551: +#line 2983 "gram.y" { yyval.str = "hour"; ; break;} -case 559: -#line 3027 "gram.y" +case 552: +#line 2984 "gram.y" { yyval.str = "minute"; ; break;} -case 560: -#line 3028 "gram.y" +case 553: +#line 2985 "gram.y" { yyval.str = "second"; ; break;} -case 561: -#line 3031 "gram.y" +case 554: +#line 2988 "gram.y" { yyval.boolean = TRUE; ; break;} -case 562: -#line 3032 "gram.y" +case 555: +#line 2989 "gram.y" { yyval.boolean = FALSE; ; break;} -case 563: -#line 3035 "gram.y" +case 556: +#line 2992 "gram.y" { yyval.list = lcons(yyvsp[0].str, NIL); ; break;} -case 564: -#line 3036 "gram.y" +case 557: +#line 2993 "gram.y" { yyval.list = NIL; ; break;} -case 565: -#line 3037 "gram.y" +case 558: +#line 2994 "gram.y" { yyval.list = NIL; ; break;} -case 566: -#line 3038 "gram.y" +case 559: +#line 2995 "gram.y" { yyval.list = NIL; ; break;} -case 567: -#line 3039 "gram.y" +case 560: +#line 2996 "gram.y" { yyval.list = NIL; ; break;} -case 568: -#line 3040 "gram.y" +case 561: +#line 2997 "gram.y" { yyval.list = NIL; ; break;} -case 569: -#line 3041 "gram.y" +case 562: +#line 2998 "gram.y" { yyval.list = NIL; ; break;} -case 570: -#line 3042 "gram.y" +case 563: +#line 2999 "gram.y" { yyval.list = NIL; ; break;} -case 571: -#line 3043 "gram.y" +case 564: +#line 3000 "gram.y" { yyval.list = NIL; ; break;} -case 572: -#line 3054 "gram.y" +case 565: +#line 3011 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 573: -#line 3056 "gram.y" +case 566: +#line 3013 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_Null; yyval.node = (Node *)n; ; break;} -case 574: -#line 3073 "gram.y" +case 567: +#line 3030 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = yyvsp[-5].list; @@ -7503,8 +7416,8 @@ case 574: yyval.node = (Node *)n; ; break;} -case 575: -#line 3083 "gram.y" +case 568: +#line 3040 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = yyvsp[-6].list; @@ -7515,8 +7428,8 @@ case 575: yyval.node = (Node *)n; ; break;} -case 576: -#line 3093 "gram.y" +case 569: +#line 3050 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = yyvsp[-6].list; @@ -7530,8 +7443,8 @@ case 576: yyval.node = (Node *)n; ; break;} -case 577: -#line 3106 "gram.y" +case 570: +#line 3063 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = yyvsp[-5].list; @@ -7545,87 +7458,87 @@ case 577: yyval.node = (Node *)n; ; break;} -case 578: -#line 3119 "gram.y" +case 571: +#line 3076 "gram.y" { yyval.node = makeRowExpr(yyvsp[-3].str, yyvsp[-5].list, yyvsp[-1].list); ; break;} -case 579: -#line 3125 "gram.y" +case 572: +#line 3082 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ; break;} -case 580: -#line 3131 "gram.y" +case 573: +#line 3088 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ; break;} -case 581: -#line 3135 "gram.y" +case 574: +#line 3092 "gram.y" { yyval.list = lcons(yyvsp[0].node, NIL); ; break;} -case 582: -#line 3140 "gram.y" +case 575: +#line 3097 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 583: -#line 3141 "gram.y" +case 576: +#line 3098 "gram.y" { yyval.str = "<"; ; break;} -case 584: -#line 3142 "gram.y" +case 577: +#line 3099 "gram.y" { yyval.str = "="; ; break;} -case 585: -#line 3143 "gram.y" +case 578: +#line 3100 "gram.y" { yyval.str = ">"; ; break;} -case 586: -#line 3144 "gram.y" +case 579: +#line 3101 "gram.y" { yyval.str = "+"; ; break;} -case 587: -#line 3145 "gram.y" +case 580: +#line 3102 "gram.y" { yyval.str = "-"; ; break;} -case 588: -#line 3146 "gram.y" +case 581: +#line 3103 "gram.y" { yyval.str = "*"; ; break;} -case 589: -#line 3147 "gram.y" +case 582: +#line 3104 "gram.y" { yyval.str = "/"; ; break;} -case 590: -#line 3150 "gram.y" +case 583: +#line 3107 "gram.y" { yyval.ival = ANY_SUBLINK; ; break;} -case 591: -#line 3151 "gram.y" +case 584: +#line 3108 "gram.y" { yyval.ival = ALL_SUBLINK; ; break;} -case 592: -#line 3163 "gram.y" +case 585: +#line 3120 "gram.y" { yyvsp[-1].attr->indirection = yyvsp[0].list; yyval.node = (Node *)yyvsp[-1].attr; ; break;} -case 593: -#line 3168 "gram.y" +case 586: +#line 3125 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 594: -#line 3170 "gram.y" +case 587: +#line 3127 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 595: -#line 3172 "gram.y" +case 588: +#line 3129 "gram.y" { /* could be a column name or a relation_name */ Ident *n = makeNode(Ident); @@ -7634,52 +7547,52 @@ case 595: yyval.node = (Node *)n; ; break;} -case 596: -#line 3180 "gram.y" +case 589: +#line 3137 "gram.y" { yyval.node = makeA_Expr(OP, "-", NULL, yyvsp[0].node); ; break;} -case 597: -#line 3182 "gram.y" +case 590: +#line 3139 "gram.y" { yyval.node = makeA_Expr(OP, "+", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 598: -#line 3184 "gram.y" +case 591: +#line 3141 "gram.y" { yyval.node = makeA_Expr(OP, "-", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 599: -#line 3186 "gram.y" +case 592: +#line 3143 "gram.y" { yyval.node = makeA_Expr(OP, "/", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 600: -#line 3188 "gram.y" +case 593: +#line 3145 "gram.y" { yyval.node = makeA_Expr(OP, "*", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 601: -#line 3190 "gram.y" +case 594: +#line 3147 "gram.y" { yyval.node = makeA_Expr(OP, "<", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 602: -#line 3192 "gram.y" +case 595: +#line 3149 "gram.y" { yyval.node = makeA_Expr(OP, ">", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 603: -#line 3194 "gram.y" +case 596: +#line 3151 "gram.y" { yyval.node = makeA_Expr(OP, "=", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 604: -#line 3196 "gram.y" +case 597: +#line 3153 "gram.y" { yyval.node = makeA_Expr(OP, ":", NULL, yyvsp[0].node); ; break;} -case 605: -#line 3198 "gram.y" +case 598: +#line 3155 "gram.y" { yyval.node = makeA_Expr(OP, ";", NULL, yyvsp[0].node); ; break;} -case 606: -#line 3200 "gram.y" +case 599: +#line 3157 "gram.y" { yyval.node = makeA_Expr(OP, "|", NULL, yyvsp[0].node); ; break;} -case 607: -#line 3202 "gram.y" +case 600: +#line 3159 "gram.y" { yyval.node = (Node *)yyvsp[-2].node; /* AexprConst can be either A_Const or ParamNo */ @@ -7696,8 +7609,8 @@ case 607: } ; break;} -case 608: -#line 3218 "gram.y" +case 601: +#line 3175 "gram.y" { yyval.node = (Node *)yyvsp[-3].node; /* AexprConst can be either A_Const or ParamNo */ @@ -7714,32 +7627,32 @@ case 608: } ; break;} -case 609: -#line 3234 "gram.y" +case 602: +#line 3191 "gram.y" { yyval.node = yyvsp[-1].node; ; break;} -case 610: -#line 3236 "gram.y" +case 603: +#line 3193 "gram.y" { yyval.node = makeIndexable(yyvsp[-1].str,yyvsp[-2].node,yyvsp[0].node); ; break;} -case 611: -#line 3238 "gram.y" +case 604: +#line 3195 "gram.y" { yyval.node = makeIndexable("~~", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 612: -#line 3240 "gram.y" +case 605: +#line 3197 "gram.y" { yyval.node = makeA_Expr(OP, "!~~", yyvsp[-3].node, yyvsp[0].node); ; break;} -case 613: -#line 3242 "gram.y" +case 606: +#line 3199 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[-1].str, NULL, yyvsp[0].node); ; break;} -case 614: -#line 3244 "gram.y" +case 607: +#line 3201 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[0].str, yyvsp[-1].node, NULL); ; break;} -case 615: -#line 3246 "gram.y" +case 608: +#line 3203 "gram.y" { /* cheap hack for aggregate (eg. count) */ FuncCall *n = makeNode(FuncCall); @@ -7752,8 +7665,8 @@ case 615: yyval.node = (Node *)n; ; break;} -case 616: -#line 3258 "gram.y" +case 609: +#line 3215 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-2].str; @@ -7761,8 +7674,8 @@ case 616: yyval.node = (Node *)n; ; break;} -case 617: -#line 3265 "gram.y" +case 610: +#line 3222 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-3].str; @@ -7770,8 +7683,8 @@ case 617: yyval.node = (Node *)n; ; break;} -case 618: -#line 3272 "gram.y" +case 611: +#line 3229 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -7787,8 +7700,8 @@ case 618: yyval.node = (Node *)n; ; break;} -case 619: -#line 3287 "gram.y" +case 612: +#line 3244 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -7804,8 +7717,8 @@ case 619: yyval.node = (Node *)n; ; break;} -case 620: -#line 3302 "gram.y" +case 613: +#line 3259 "gram.y" { FuncCall *n = makeNode(FuncCall); A_Const *s = makeNode(A_Const); @@ -7828,8 +7741,8 @@ case 620: yyval.node = (Node *)n; ; break;} -case 621: -#line 3324 "gram.y" +case 614: +#line 3281 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -7845,8 +7758,8 @@ case 621: yyval.node = (Node *)n; ; break;} -case 622: -#line 3339 "gram.y" +case 615: +#line 3296 "gram.y" { FuncCall *n = makeNode(FuncCall); A_Const *s = makeNode(A_Const); @@ -7869,8 +7782,8 @@ case 622: yyval.node = (Node *)n; ; break;} -case 623: -#line 3361 "gram.y" +case 616: +#line 3318 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "getpgusername"; @@ -7878,8 +7791,8 @@ case 623: yyval.node = (Node *)n; ; break;} -case 624: -#line 3368 "gram.y" +case 617: +#line 3325 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "getpgusername"; @@ -7887,8 +7800,8 @@ case 624: yyval.node = (Node *)n; ; break;} -case 625: -#line 3375 "gram.y" +case 618: +#line 3332 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = NIL; @@ -7899,8 +7812,8 @@ case 625: yyval.node = (Node *)n; ; break;} -case 626: -#line 3385 "gram.y" +case 619: +#line 3342 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "date_part"; @@ -7908,8 +7821,8 @@ case 626: yyval.node = (Node *)n; ; break;} -case 627: -#line 3392 "gram.y" +case 620: +#line 3349 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "strpos"; @@ -7917,8 +7830,8 @@ case 627: yyval.node = (Node *)n; ; break;} -case 628: -#line 3399 "gram.y" +case 621: +#line 3356 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "substr"; @@ -7926,8 +7839,8 @@ case 628: yyval.node = (Node *)n; ; break;} -case 629: -#line 3407 "gram.y" +case 622: +#line 3364 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "btrim"; @@ -7935,8 +7848,8 @@ case 629: yyval.node = (Node *)n; ; break;} -case 630: -#line 3414 "gram.y" +case 623: +#line 3371 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "ltrim"; @@ -7944,8 +7857,8 @@ case 630: yyval.node = (Node *)n; ; break;} -case 631: -#line 3421 "gram.y" +case 624: +#line 3378 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "rtrim"; @@ -7953,8 +7866,8 @@ case 631: yyval.node = (Node *)n; ; break;} -case 632: -#line 3428 "gram.y" +case 625: +#line 3385 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "btrim"; @@ -7962,24 +7875,24 @@ case 632: yyval.node = (Node *)n; ; break;} -case 633: -#line 3435 "gram.y" +case 626: +#line 3392 "gram.y" { yyval.node = makeA_Expr(ISNULL, NULL, yyvsp[-1].node, NULL); ; break;} -case 634: -#line 3437 "gram.y" +case 627: +#line 3394 "gram.y" { yyval.node = makeA_Expr(ISNULL, NULL, yyvsp[-2].node, NULL); ; break;} -case 635: -#line 3439 "gram.y" +case 628: +#line 3396 "gram.y" { yyval.node = makeA_Expr(NOTNULL, NULL, yyvsp[-1].node, NULL); ; break;} -case 636: -#line 3441 "gram.y" +case 629: +#line 3398 "gram.y" { yyval.node = makeA_Expr(NOTNULL, NULL, yyvsp[-3].node, NULL); ; break;} -case 637: -#line 3448 "gram.y" +case 630: +#line 3405 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -7990,8 +7903,8 @@ case 637: yyval.node = makeA_Expr(OP, "=", yyvsp[-2].node,(Node *)n); ; break;} -case 638: -#line 3458 "gram.y" +case 631: +#line 3415 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -8002,8 +7915,8 @@ case 638: yyval.node = makeA_Expr(OP, "=", yyvsp[-3].node,(Node *)n); ; break;} -case 639: -#line 3468 "gram.y" +case 632: +#line 3425 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -8014,8 +7927,8 @@ case 639: yyval.node = makeA_Expr(OP, "=", yyvsp[-2].node,(Node *)n); ; break;} -case 640: -#line 3478 "gram.y" +case 633: +#line 3435 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -8026,28 +7939,28 @@ case 640: yyval.node = makeA_Expr(OP, "=", yyvsp[-3].node,(Node *)n); ; break;} -case 641: -#line 3488 "gram.y" +case 634: +#line 3445 "gram.y" { yyval.node = makeA_Expr(AND, NULL, makeA_Expr(OP, ">=", yyvsp[-4].node, yyvsp[-2].node), makeA_Expr(OP, "<=", yyvsp[-4].node, yyvsp[0].node)); ; break;} -case 642: -#line 3494 "gram.y" +case 635: +#line 3451 "gram.y" { yyval.node = makeA_Expr(OR, NULL, makeA_Expr(OP, "<", yyvsp[-5].node, yyvsp[-2].node), makeA_Expr(OP, ">", yyvsp[-5].node, yyvsp[0].node)); ; break;} -case 643: -#line 3499 "gram.y" +case 636: +#line 3456 "gram.y" { saved_In_Expr = lcons(yyvsp[-1].node,saved_In_Expr); ; break;} -case 644: -#line 3500 "gram.y" +case 637: +#line 3457 "gram.y" { saved_In_Expr = lnext(saved_In_Expr); if (nodeTag(yyvsp[-1].node) == T_SubLink) @@ -8062,12 +7975,12 @@ case 644: else yyval.node = yyvsp[-1].node; ; break;} -case 645: -#line 3513 "gram.y" +case 638: +#line 3470 "gram.y" { saved_In_Expr = lcons(yyvsp[-2].node,saved_In_Expr); ; break;} -case 646: -#line 3514 "gram.y" +case 639: +#line 3471 "gram.y" { saved_In_Expr = lnext(saved_In_Expr); if (nodeTag(yyvsp[-1].node) == T_SubLink) @@ -8082,8 +7995,8 @@ case 646: else yyval.node = yyvsp[-1].node; ; break;} -case 647: -#line 3528 "gram.y" +case 640: +#line 3485 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); @@ -8094,8 +8007,8 @@ case 647: yyval.node = (Node *)n; ; break;} -case 648: -#line 3538 "gram.y" +case 641: +#line 3495 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); @@ -8106,8 +8019,8 @@ case 648: yyval.node = (Node *)n; ; break;} -case 649: -#line 3548 "gram.y" +case 642: +#line 3505 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); @@ -8118,8 +8031,8 @@ case 649: yyval.node = (Node *)n; ; break;} -case 650: -#line 3558 "gram.y" +case 643: +#line 3515 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); @@ -8130,8 +8043,8 @@ case 650: yyval.node = (Node *)n; ; break;} -case 651: -#line 3568 "gram.y" +case 644: +#line 3525 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); @@ -8142,8 +8055,8 @@ case 651: yyval.node = (Node *)n; ; break;} -case 652: -#line 3578 "gram.y" +case 645: +#line 3535 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); @@ -8154,8 +8067,8 @@ case 652: yyval.node = (Node *)n; ; break;} -case 653: -#line 3588 "gram.y" +case 646: +#line 3545 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); @@ -8166,8 +8079,8 @@ case 653: yyval.node = (Node *)n; ; break;} -case 654: -#line 3598 "gram.y" +case 647: +#line 3555 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); @@ -8178,8 +8091,8 @@ case 654: yyval.node = (Node *)n; ; break;} -case 655: -#line 3608 "gram.y" +case 648: +#line 3565 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -8190,8 +8103,8 @@ case 655: yyval.node = (Node *)n; ; break;} -case 656: -#line 3618 "gram.y" +case 649: +#line 3575 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -8202,8 +8115,8 @@ case 656: yyval.node = (Node *)n; ; break;} -case 657: -#line 3628 "gram.y" +case 650: +#line 3585 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -8214,8 +8127,8 @@ case 657: yyval.node = (Node *)n; ; break;} -case 658: -#line 3638 "gram.y" +case 651: +#line 3595 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -8226,8 +8139,8 @@ case 658: yyval.node = (Node *)n; ; break;} -case 659: -#line 3648 "gram.y" +case 652: +#line 3605 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -8238,8 +8151,8 @@ case 659: yyval.node = (Node *)n; ; break;} -case 660: -#line 3658 "gram.y" +case 653: +#line 3615 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -8250,8 +8163,8 @@ case 660: yyval.node = (Node *)n; ; break;} -case 661: -#line 3668 "gram.y" +case 654: +#line 3625 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -8262,8 +8175,8 @@ case 661: yyval.node = (Node *)n; ; break;} -case 662: -#line 3678 "gram.y" +case 655: +#line 3635 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -8274,8 +8187,8 @@ case 662: yyval.node = (Node *)n; ; break;} -case 663: -#line 3688 "gram.y" +case 656: +#line 3645 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -8286,8 +8199,8 @@ case 663: yyval.node = (Node *)n; ; break;} -case 664: -#line 3698 "gram.y" +case 657: +#line 3655 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -8298,8 +8211,8 @@ case 664: yyval.node = (Node *)n; ; break;} -case 665: -#line 3708 "gram.y" +case 658: +#line 3665 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -8310,8 +8223,8 @@ case 665: yyval.node = (Node *)n; ; break;} -case 666: -#line 3718 "gram.y" +case 659: +#line 3675 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -8322,8 +8235,8 @@ case 666: yyval.node = (Node *)n; ; break;} -case 667: -#line 3728 "gram.y" +case 660: +#line 3685 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -8334,8 +8247,8 @@ case 667: yyval.node = (Node *)n; ; break;} -case 668: -#line 3738 "gram.y" +case 661: +#line 3695 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -8346,8 +8259,8 @@ case 668: yyval.node = (Node *)n; ; break;} -case 669: -#line 3748 "gram.y" +case 662: +#line 3705 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -8358,8 +8271,8 @@ case 669: yyval.node = (Node *)n; ; break;} -case 670: -#line 3758 "gram.y" +case 663: +#line 3715 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -8370,31 +8283,31 @@ case 670: yyval.node = (Node *)n; ; break;} -case 671: -#line 3768 "gram.y" +case 664: +#line 3725 "gram.y" { yyval.node = makeA_Expr(AND, NULL, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 672: -#line 3770 "gram.y" +case 665: +#line 3727 "gram.y" { yyval.node = makeA_Expr(OR, NULL, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 673: -#line 3772 "gram.y" +case 666: +#line 3729 "gram.y" { yyval.node = makeA_Expr(NOT, NULL, NULL, yyvsp[0].node); ; break;} -case 674: -#line 3782 "gram.y" +case 667: +#line 3739 "gram.y" { yyvsp[-1].attr->indirection = yyvsp[0].list; yyval.node = (Node *)yyvsp[-1].attr; ; break;} -case 675: -#line 3787 "gram.y" +case 668: +#line 3744 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 676: -#line 3789 "gram.y" +case 669: +#line 3746 "gram.y" { /* could be a column name or a relation_name */ Ident *n = makeNode(Ident); @@ -8403,40 +8316,40 @@ case 676: yyval.node = (Node *)n; ; break;} -case 677: -#line 3797 "gram.y" +case 670: +#line 3754 "gram.y" { yyval.node = makeA_Expr(OP, "-", NULL, yyvsp[0].node); ; break;} -case 678: -#line 3799 "gram.y" +case 671: +#line 3756 "gram.y" { yyval.node = makeA_Expr(OP, "+", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 679: -#line 3801 "gram.y" +case 672: +#line 3758 "gram.y" { yyval.node = makeA_Expr(OP, "-", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 680: -#line 3803 "gram.y" +case 673: +#line 3760 "gram.y" { yyval.node = makeA_Expr(OP, "/", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 681: -#line 3805 "gram.y" +case 674: +#line 3762 "gram.y" { yyval.node = makeA_Expr(OP, "*", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 682: -#line 3807 "gram.y" +case 675: +#line 3764 "gram.y" { yyval.node = makeA_Expr(OP, ":", NULL, yyvsp[0].node); ; break;} -case 683: -#line 3809 "gram.y" +case 676: +#line 3766 "gram.y" { yyval.node = makeA_Expr(OP, ";", NULL, yyvsp[0].node); ; break;} -case 684: -#line 3811 "gram.y" +case 677: +#line 3768 "gram.y" { yyval.node = makeA_Expr(OP, "|", NULL, yyvsp[0].node); ; break;} -case 685: -#line 3813 "gram.y" +case 678: +#line 3770 "gram.y" { yyval.node = (Node *)yyvsp[-2].node; /* AexprConst can be either A_Const or ParamNo */ @@ -8453,8 +8366,8 @@ case 685: } ; break;} -case 686: -#line 3829 "gram.y" +case 679: +#line 3786 "gram.y" { yyval.node = (Node *)yyvsp[-3].node; /* AexprConst can be either A_Const or ParamNo */ @@ -8471,24 +8384,24 @@ case 686: } ; break;} -case 687: -#line 3845 "gram.y" +case 680: +#line 3802 "gram.y" { yyval.node = yyvsp[-1].node; ; break;} -case 688: -#line 3847 "gram.y" +case 681: +#line 3804 "gram.y" { yyval.node = makeIndexable(yyvsp[-1].str,yyvsp[-2].node,yyvsp[0].node); ; break;} -case 689: -#line 3849 "gram.y" +case 682: +#line 3806 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[-1].str, NULL, yyvsp[0].node); ; break;} -case 690: -#line 3851 "gram.y" +case 683: +#line 3808 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[0].str, yyvsp[-1].node, NULL); ; break;} -case 691: -#line 3853 "gram.y" +case 684: +#line 3810 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-2].str; @@ -8496,8 +8409,8 @@ case 691: yyval.node = (Node *)n; ; break;} -case 692: -#line 3860 "gram.y" +case 685: +#line 3817 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-3].str; @@ -8505,8 +8418,8 @@ case 692: yyval.node = (Node *)n; ; break;} -case 693: -#line 3867 "gram.y" +case 686: +#line 3824 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -8522,8 +8435,8 @@ case 693: yyval.node = (Node *)n; ; break;} -case 694: -#line 3882 "gram.y" +case 687: +#line 3839 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -8539,8 +8452,8 @@ case 694: yyval.node = (Node *)n; ; break;} -case 695: -#line 3897 "gram.y" +case 688: +#line 3854 "gram.y" { FuncCall *n = makeNode(FuncCall); A_Const *s = makeNode(A_Const); @@ -8563,8 +8476,8 @@ case 695: yyval.node = (Node *)n; ; break;} -case 696: -#line 3919 "gram.y" +case 689: +#line 3876 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -8580,8 +8493,8 @@ case 696: yyval.node = (Node *)n; ; break;} -case 697: -#line 3934 "gram.y" +case 690: +#line 3891 "gram.y" { FuncCall *n = makeNode(FuncCall); A_Const *s = makeNode(A_Const); @@ -8604,8 +8517,8 @@ case 697: yyval.node = (Node *)n; ; break;} -case 698: -#line 3956 "gram.y" +case 691: +#line 3913 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "getpgusername"; @@ -8613,8 +8526,8 @@ case 698: yyval.node = (Node *)n; ; break;} -case 699: -#line 3963 "gram.y" +case 692: +#line 3920 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "getpgusername"; @@ -8622,8 +8535,8 @@ case 699: yyval.node = (Node *)n; ; break;} -case 700: -#line 3970 "gram.y" +case 693: +#line 3927 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "strpos"; @@ -8631,8 +8544,8 @@ case 700: yyval.node = (Node *)n; ; break;} -case 701: -#line 3977 "gram.y" +case 694: +#line 3934 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "substr"; @@ -8640,8 +8553,8 @@ case 701: yyval.node = (Node *)n; ; break;} -case 702: -#line 3985 "gram.y" +case 695: +#line 3942 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "btrim"; @@ -8649,8 +8562,8 @@ case 702: yyval.node = (Node *)n; ; break;} -case 703: -#line 3992 "gram.y" +case 696: +#line 3949 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "ltrim"; @@ -8658,8 +8571,8 @@ case 703: yyval.node = (Node *)n; ; break;} -case 704: -#line 3999 "gram.y" +case 697: +#line 3956 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "rtrim"; @@ -8667,8 +8580,8 @@ case 704: yyval.node = (Node *)n; ; break;} -case 705: -#line 4006 "gram.y" +case 698: +#line 3963 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "btrim"; @@ -8676,8 +8589,8 @@ case 705: yyval.node = (Node *)n; ; break;} -case 706: -#line 4015 "gram.y" +case 699: +#line 3972 "gram.y" { A_Indices *ai = makeNode(A_Indices); ai->lidx = NULL; @@ -8685,8 +8598,8 @@ case 706: yyval.list = lcons(ai, yyvsp[0].list); ; break;} -case 707: -#line 4022 "gram.y" +case 700: +#line 3979 "gram.y" { A_Indices *ai = makeNode(A_Indices); ai->lidx = yyvsp[-4].node; @@ -8694,24 +8607,24 @@ case 707: yyval.list = lcons(ai, yyvsp[0].list); ; break;} -case 708: -#line 4029 "gram.y" +case 701: +#line 3986 "gram.y" { yyval.list = NIL; ; break;} -case 709: -#line 4033 "gram.y" +case 702: +#line 3990 "gram.y" { yyval.list = lcons(yyvsp[0].node, NIL); ; break;} -case 710: -#line 4035 "gram.y" +case 703: +#line 3992 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ; break;} -case 711: -#line 4037 "gram.y" +case 704: +#line 3994 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ; break;} -case 712: -#line 4041 "gram.y" +case 705: +#line 3998 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -8719,67 +8632,67 @@ case 712: yyval.list = lappend(lcons((Node *)n,NIL), yyvsp[0].node); ; break;} -case 713: -#line 4048 "gram.y" +case 706: +#line 4005 "gram.y" { yyval.list = NIL; ; break;} -case 714: -#line 4051 "gram.y" +case 707: +#line 4008 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 715: -#line 4052 "gram.y" +case 708: +#line 4009 "gram.y" { yyval.str = "tz_hour"; ; break;} -case 716: -#line 4053 "gram.y" +case 709: +#line 4010 "gram.y" { yyval.str = "tz_minute"; ; break;} -case 717: -#line 4057 "gram.y" +case 710: +#line 4014 "gram.y" { yyval.list = makeList(yyvsp[0].node, yyvsp[-2].node, -1); ; break;} -case 718: -#line 4059 "gram.y" +case 711: +#line 4016 "gram.y" { yyval.list = NIL; ; break;} -case 719: -#line 4063 "gram.y" +case 712: +#line 4020 "gram.y" { yyvsp[-1].attr->indirection = yyvsp[0].list; yyval.node = (Node *)yyvsp[-1].attr; ; break;} -case 720: -#line 4068 "gram.y" +case 713: +#line 4025 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 721: -#line 4070 "gram.y" +case 714: +#line 4027 "gram.y" { yyval.node = makeA_Expr(OP, "-", NULL, yyvsp[0].node); ; break;} -case 722: -#line 4072 "gram.y" +case 715: +#line 4029 "gram.y" { yyval.node = makeA_Expr(OP, "+", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 723: -#line 4074 "gram.y" +case 716: +#line 4031 "gram.y" { yyval.node = makeA_Expr(OP, "-", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 724: -#line 4076 "gram.y" +case 717: +#line 4033 "gram.y" { yyval.node = makeA_Expr(OP, "/", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 725: -#line 4078 "gram.y" +case 718: +#line 4035 "gram.y" { yyval.node = makeA_Expr(OP, "*", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 726: -#line 4080 "gram.y" +case 719: +#line 4037 "gram.y" { yyval.node = makeA_Expr(OP, "|", NULL, yyvsp[0].node); ; break;} -case 727: -#line 4082 "gram.y" +case 720: +#line 4039 "gram.y" { yyval.node = (Node *)yyvsp[-2].node; /* AexprConst can be either A_Const or ParamNo */ @@ -8796,8 +8709,8 @@ case 727: } ; break;} -case 728: -#line 4098 "gram.y" +case 721: +#line 4055 "gram.y" { yyval.node = (Node *)yyvsp[-3].node; /* AexprConst can be either A_Const or ParamNo */ @@ -8814,24 +8727,24 @@ case 728: } ; break;} -case 729: -#line 4114 "gram.y" +case 722: +#line 4071 "gram.y" { yyval.node = yyvsp[-1].node; ; break;} -case 730: -#line 4116 "gram.y" +case 723: +#line 4073 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[-1].str, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 731: -#line 4118 "gram.y" +case 724: +#line 4075 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[-1].str, NULL, yyvsp[0].node); ; break;} -case 732: -#line 4120 "gram.y" +case 725: +#line 4077 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[0].str, yyvsp[-1].node, NULL); ; break;} -case 733: -#line 4122 "gram.y" +case 726: +#line 4079 "gram.y" { /* could be a column name or a relation_name */ Ident *n = makeNode(Ident); @@ -8840,8 +8753,8 @@ case 733: yyval.node = (Node *)n; ; break;} -case 734: -#line 4130 "gram.y" +case 727: +#line 4087 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-2].str; @@ -8849,8 +8762,8 @@ case 734: yyval.node = (Node *)n; ; break;} -case 735: -#line 4137 "gram.y" +case 728: +#line 4094 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-3].str; @@ -8858,8 +8771,8 @@ case 735: yyval.node = (Node *)n; ; break;} -case 736: -#line 4144 "gram.y" +case 729: +#line 4101 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "strpos"; @@ -8867,8 +8780,8 @@ case 736: yyval.node = (Node *)n; ; break;} -case 737: -#line 4151 "gram.y" +case 730: +#line 4108 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "substr"; @@ -8876,8 +8789,8 @@ case 737: yyval.node = (Node *)n; ; break;} -case 738: -#line 4159 "gram.y" +case 731: +#line 4116 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "btrim"; @@ -8885,8 +8798,8 @@ case 738: yyval.node = (Node *)n; ; break;} -case 739: -#line 4166 "gram.y" +case 732: +#line 4123 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "ltrim"; @@ -8894,8 +8807,8 @@ case 739: yyval.node = (Node *)n; ; break;} -case 740: -#line 4173 "gram.y" +case 733: +#line 4130 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "rtrim"; @@ -8903,8 +8816,8 @@ case 740: yyval.node = (Node *)n; ; break;} -case 741: -#line 4180 "gram.y" +case 734: +#line 4137 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "btrim"; @@ -8912,22 +8825,22 @@ case 741: yyval.node = (Node *)n; ; break;} -case 742: -#line 4189 "gram.y" +case 735: +#line 4146 "gram.y" { yyval.list = nconc(nconc(yyvsp[-2].list,yyvsp[-1].list),yyvsp[0].list); ; break;} -case 743: -#line 4193 "gram.y" +case 736: +#line 4150 "gram.y" { yyval.list = NIL; ; break;} -case 744: -#line 4197 "gram.y" +case 737: +#line 4154 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 745: -#line 4199 "gram.y" +case 738: +#line 4156 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_Integer; @@ -8935,72 +8848,72 @@ case 745: yyval.list = lcons((Node *)n,NIL); ; break;} -case 746: -#line 4208 "gram.y" +case 739: +#line 4165 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 747: -#line 4210 "gram.y" +case 740: +#line 4167 "gram.y" { yyval.list = NIL; ; break;} -case 748: -#line 4214 "gram.y" +case 741: +#line 4171 "gram.y" { yyval.list = lappend(yyvsp[0].list, yyvsp[-2].node); ; break;} -case 749: -#line 4216 "gram.y" +case 742: +#line 4173 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 750: -#line 4218 "gram.y" +case 743: +#line 4175 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 751: -#line 4222 "gram.y" +case 744: +#line 4179 "gram.y" { SubLink *n = makeNode(SubLink); n->subselect = yyvsp[0].node; yyval.node = (Node *)n; ; break;} -case 752: -#line 4228 "gram.y" +case 745: +#line 4185 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 753: -#line 4232 "gram.y" +case 746: +#line 4189 "gram.y" { yyval.node = makeA_Expr(OP, "=", lfirst(saved_In_Expr), yyvsp[0].node); ; break;} -case 754: -#line 4234 "gram.y" +case 747: +#line 4191 "gram.y" { yyval.node = makeA_Expr(OR, NULL, yyvsp[-2].node, makeA_Expr(OP, "=", lfirst(saved_In_Expr), yyvsp[0].node)); ; break;} -case 755: -#line 4240 "gram.y" +case 748: +#line 4197 "gram.y" { SubLink *n = makeNode(SubLink); n->subselect = yyvsp[0].node; yyval.node = (Node *)n; ; break;} -case 756: -#line 4246 "gram.y" +case 749: +#line 4203 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 757: -#line 4250 "gram.y" +case 750: +#line 4207 "gram.y" { yyval.node = makeA_Expr(OP, "<>", lfirst(saved_In_Expr), yyvsp[0].node); ; break;} -case 758: -#line 4252 "gram.y" +case 751: +#line 4209 "gram.y" { yyval.node = makeA_Expr(AND, NULL, yyvsp[-2].node, makeA_Expr(OP, "<>", lfirst(saved_In_Expr), yyvsp[0].node)); ; break;} -case 759: -#line 4258 "gram.y" +case 752: +#line 4215 "gram.y" { yyval.attr = makeNode(Attr); yyval.attr->relname = yyvsp[-2].str; @@ -9009,8 +8922,8 @@ case 759: yyval.attr->indirection = NULL; ; break;} -case 760: -#line 4266 "gram.y" +case 753: +#line 4223 "gram.y" { yyval.attr = makeNode(Attr); yyval.attr->relname = NULL; @@ -9019,28 +8932,28 @@ case 760: yyval.attr->indirection = NULL; ; break;} -case 761: -#line 4276 "gram.y" +case 754: +#line 4233 "gram.y" { yyval.list = lcons(makeString(yyvsp[0].str), NIL); ; break;} -case 762: -#line 4278 "gram.y" +case 755: +#line 4235 "gram.y" { yyval.list = lappend(yyvsp[-2].list, makeString(yyvsp[0].str)); ; break;} -case 763: -#line 4280 "gram.y" +case 756: +#line 4237 "gram.y" { yyval.list = lappend(yyvsp[-2].list, makeString("*")); ; break;} -case 764: -#line 4291 "gram.y" +case 757: +#line 4248 "gram.y" { yyval.list = lappend(yyvsp[-2].list,yyvsp[0].target); ; break;} -case 765: -#line 4293 "gram.y" +case 758: +#line 4250 "gram.y" { yyval.list = lcons(yyvsp[0].target, NIL); ; break;} -case 766: -#line 4295 "gram.y" +case 759: +#line 4252 "gram.y" { ResTarget *rt = makeNode(ResTarget); Attr *att = makeNode(Attr); @@ -9054,8 +8967,8 @@ case 766: yyval.list = lcons(rt, NIL); ; break;} -case 767: -#line 4310 "gram.y" +case 760: +#line 4267 "gram.y" { yyval.target = makeNode(ResTarget); yyval.target->name = yyvsp[-3].str; @@ -9063,8 +8976,8 @@ case 767: yyval.target->val = (Node *)yyvsp[0].node; ; break;} -case 768: -#line 4317 "gram.y" +case 761: +#line 4274 "gram.y" { yyval.target = makeNode(ResTarget); yyval.target->name = NULL; @@ -9072,8 +8985,8 @@ case 768: yyval.target->val = (Node *)yyvsp[-1].attr; ; break;} -case 769: -#line 4324 "gram.y" +case 762: +#line 4281 "gram.y" { Attr *att = makeNode(Attr); att->relname = yyvsp[-2].str; @@ -9086,16 +8999,16 @@ case 769: yyval.target->val = (Node *)att; ; break;} -case 770: -#line 4343 "gram.y" +case 763: +#line 4300 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].target); ; break;} -case 771: -#line 4345 "gram.y" +case 764: +#line 4302 "gram.y" { yyval.list = lcons(yyvsp[0].target, NIL); ; break;} -case 772: -#line 4350 "gram.y" +case 765: +#line 4307 "gram.y" { yyval.target = makeNode(ResTarget); yyval.target->name = yyvsp[0].str; @@ -9103,8 +9016,8 @@ case 772: yyval.target->val = (Node *)yyvsp[-2].node; ; break;} -case 773: -#line 4357 "gram.y" +case 766: +#line 4314 "gram.y" { yyval.target = makeNode(ResTarget); yyval.target->name = NULL; @@ -9112,8 +9025,8 @@ case 773: yyval.target->val = (Node *)yyvsp[0].node; ; break;} -case 774: -#line 4364 "gram.y" +case 767: +#line 4321 "gram.y" { Attr *att = makeNode(Attr); att->relname = yyvsp[-2].str; @@ -9126,8 +9039,8 @@ case 774: yyval.target->val = (Node *)att; ; break;} -case 775: -#line 4376 "gram.y" +case 768: +#line 4333 "gram.y" { Attr *att = makeNode(Attr); att->relname = "*"; @@ -9140,23 +9053,23 @@ case 775: yyval.target->val = (Node *)att; ; break;} -case 776: -#line 4389 "gram.y" +case 769: +#line 4346 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 777: -#line 4390 "gram.y" +case 770: +#line 4347 "gram.y" { yyval.str = NULL; ; break;} -case 778: -#line 4394 "gram.y" +case 771: +#line 4351 "gram.y" { yyval.str = yyvsp[0].str; StrNCpy(saved_relname, yyvsp[0].str, NAMEDATALEN); ; break;} -case 779: -#line 4399 "gram.y" +case 772: +#line 4356 "gram.y" { /* disallow refs to variable system tables */ if (strcmp(LogRelationName, yyvsp[0].str) == 0 @@ -9167,44 +9080,44 @@ case 779: StrNCpy(saved_relname, yyvsp[0].str, NAMEDATALEN); ; break;} -case 780: -#line 4410 "gram.y" +case 773: +#line 4367 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 781: -#line 4411 "gram.y" +case 774: +#line 4368 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 782: -#line 4412 "gram.y" +case 775: +#line 4369 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 783: -#line 4413 "gram.y" +case 776: +#line 4370 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 784: -#line 4414 "gram.y" +case 777: +#line 4371 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 785: -#line 4420 "gram.y" +case 778: +#line 4377 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 786: -#line 4421 "gram.y" +case 779: +#line 4378 "gram.y" { yyval.str = xlateSqlFunc(yyvsp[0].str); ; break;} -case 787: -#line 4423 "gram.y" +case 780: +#line 4380 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 788: -#line 4424 "gram.y" +case 781: +#line 4381 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 789: -#line 4430 "gram.y" +case 782: +#line 4387 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_Integer; @@ -9212,8 +9125,8 @@ case 789: yyval.node = (Node *)n; ; break;} -case 790: -#line 4437 "gram.y" +case 783: +#line 4394 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_Float; @@ -9221,8 +9134,8 @@ case 790: yyval.node = (Node *)n; ; break;} -case 791: -#line 4444 "gram.y" +case 784: +#line 4401 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -9230,8 +9143,8 @@ case 791: yyval.node = (Node *)n; ; break;} -case 792: -#line 4451 "gram.y" +case 785: +#line 4408 "gram.y" { A_Const *n = makeNode(A_Const); n->typename = yyvsp[-1].typnam; @@ -9240,12 +9153,12 @@ case 792: yyval.node = (Node *)n; ; break;} -case 793: -#line 4459 "gram.y" +case 786: +#line 4416 "gram.y" { yyval.node = (Node *)yyvsp[0].paramno; ; break;} -case 794: -#line 4461 "gram.y" +case 787: +#line 4418 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -9256,8 +9169,8 @@ case 794: yyval.node = (Node *)n; ; break;} -case 795: -#line 4471 "gram.y" +case 788: +#line 4428 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -9268,239 +9181,239 @@ case 795: yyval.node = (Node *)n; ; break;} -case 796: -#line 4483 "gram.y" +case 789: +#line 4440 "gram.y" { yyval.paramno = makeNode(ParamNo); yyval.paramno->number = yyvsp[0].ival; ; break;} -case 797: -#line 4489 "gram.y" +case 790: +#line 4446 "gram.y" { yyval.ival = yyvsp[0].ival; ; break;} -case 798: -#line 4490 "gram.y" +case 791: +#line 4447 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 799: -#line 4491 "gram.y" +case 792: +#line 4448 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 800: -#line 4499 "gram.y" +case 793: +#line 4456 "gram.y" { yyval.str = xlateSqlType(yyvsp[0].str); ; break;} -case 801: -#line 4501 "gram.y" +case 794: +#line 4458 "gram.y" { yyval.str = xlateSqlType(yyvsp[0].str); ; break;} -case 802: -#line 4503 "gram.y" +case 795: +#line 4460 "gram.y" { yyval.str = xlateSqlType(yyvsp[0].str); ; break;} -case 803: -#line 4513 "gram.y" +case 796: +#line 4470 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 804: -#line 4514 "gram.y" +case 797: +#line 4471 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 805: -#line 4515 "gram.y" +case 798: +#line 4472 "gram.y" { yyval.str = "action"; ; break;} -case 806: -#line 4516 "gram.y" +case 799: +#line 4473 "gram.y" { yyval.str = "cache"; ; break;} -case 807: -#line 4517 "gram.y" +case 800: +#line 4474 "gram.y" { yyval.str = "cycle"; ; break;} -case 808: -#line 4518 "gram.y" +case 801: +#line 4475 "gram.y" { yyval.str = "database"; ; break;} -case 809: -#line 4519 "gram.y" +case 802: +#line 4476 "gram.y" { yyval.str = "delimiters"; ; break;} -case 810: -#line 4520 "gram.y" +case 803: +#line 4477 "gram.y" { yyval.str = "double"; ; break;} -case 811: -#line 4521 "gram.y" +case 804: +#line 4478 "gram.y" { yyval.str = "each"; ; break;} -case 812: -#line 4522 "gram.y" +case 805: +#line 4479 "gram.y" { yyval.str = "encoding"; ; break;} -case 813: -#line 4523 "gram.y" +case 806: +#line 4480 "gram.y" { yyval.str = "function"; ; break;} -case 814: -#line 4524 "gram.y" +case 807: +#line 4481 "gram.y" { yyval.str = "increment"; ; break;} -case 815: -#line 4525 "gram.y" +case 808: +#line 4482 "gram.y" { yyval.str = "index"; ; break;} -case 816: -#line 4526 "gram.y" +case 809: +#line 4483 "gram.y" { yyval.str = "key"; ; break;} -case 817: -#line 4527 "gram.y" +case 810: +#line 4484 "gram.y" { yyval.str = "language"; ; break;} -case 818: -#line 4528 "gram.y" +case 811: +#line 4485 "gram.y" { yyval.str = "location"; ; break;} -case 819: -#line 4529 "gram.y" +case 812: +#line 4486 "gram.y" { yyval.str = "match"; ; break;} -case 820: -#line 4530 "gram.y" +case 813: +#line 4487 "gram.y" { yyval.str = "maxvalue"; ; break;} -case 821: -#line 4531 "gram.y" +case 814: +#line 4488 "gram.y" { yyval.str = "minvalue"; ; break;} -case 822: -#line 4532 "gram.y" +case 815: +#line 4489 "gram.y" { yyval.str = "operator"; ; break;} -case 823: -#line 4533 "gram.y" +case 816: +#line 4490 "gram.y" { yyval.str = "option"; ; break;} -case 824: -#line 4534 "gram.y" +case 817: +#line 4491 "gram.y" { yyval.str = "password"; ; break;} -case 825: -#line 4535 "gram.y" +case 818: +#line 4492 "gram.y" { yyval.str = "privileges"; ; break;} -case 826: -#line 4536 "gram.y" +case 819: +#line 4493 "gram.y" { yyval.str = "recipe"; ; break;} -case 827: -#line 4537 "gram.y" +case 820: +#line 4494 "gram.y" { yyval.str = "row"; ; break;} -case 828: -#line 4538 "gram.y" +case 821: +#line 4495 "gram.y" { yyval.str = "start"; ; break;} -case 829: -#line 4539 "gram.y" +case 822: +#line 4496 "gram.y" { yyval.str = "statement"; ; break;} -case 830: -#line 4540 "gram.y" +case 823: +#line 4497 "gram.y" { yyval.str = "time"; ; break;} -case 831: -#line 4541 "gram.y" +case 824: +#line 4498 "gram.y" { yyval.str = "timezone_hour"; ; break;} -case 832: -#line 4542 "gram.y" +case 825: +#line 4499 "gram.y" { yyval.str = "timezone_minute"; ; break;} -case 833: -#line 4543 "gram.y" +case 826: +#line 4500 "gram.y" { yyval.str = "trigger"; ; break;} -case 834: -#line 4544 "gram.y" +case 827: +#line 4501 "gram.y" { yyval.str = "type"; ; break;} -case 835: -#line 4545 "gram.y" +case 828: +#line 4502 "gram.y" { yyval.str = "valid"; ; break;} -case 836: -#line 4546 "gram.y" +case 829: +#line 4503 "gram.y" { yyval.str = "version"; ; break;} -case 837: -#line 4547 "gram.y" +case 830: +#line 4504 "gram.y" { yyval.str = "zone"; ; break;} -case 838: -#line 4560 "gram.y" +case 831: +#line 4517 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 839: -#line 4561 "gram.y" +case 832: +#line 4518 "gram.y" { yyval.str = "archive"; ; break;} -case 840: -#line 4562 "gram.y" +case 833: +#line 4519 "gram.y" { yyval.str = "cluster"; ; break;} -case 841: -#line 4563 "gram.y" +case 834: +#line 4520 "gram.y" { yyval.str = "constraint"; ; break;} -case 842: -#line 4564 "gram.y" +case 835: +#line 4521 "gram.y" { yyval.str = "cross"; ; break;} -case 843: -#line 4565 "gram.y" +case 836: +#line 4522 "gram.y" { yyval.str = "foreign"; ; break;} -case 844: -#line 4566 "gram.y" +case 837: +#line 4523 "gram.y" { yyval.str = "group"; ; break;} -case 845: -#line 4567 "gram.y" +case 838: +#line 4524 "gram.y" { yyval.str = "load"; ; break;} -case 846: -#line 4568 "gram.y" +case 839: +#line 4525 "gram.y" { yyval.str = "order"; ; break;} -case 847: -#line 4569 "gram.y" +case 840: +#line 4526 "gram.y" { yyval.str = "position"; ; break;} -case 848: -#line 4570 "gram.y" +case 841: +#line 4527 "gram.y" { yyval.str = "precision"; ; break;} -case 849: -#line 4571 "gram.y" +case 842: +#line 4528 "gram.y" { yyval.str = "table"; ; break;} -case 850: -#line 4572 "gram.y" +case 843: +#line 4529 "gram.y" { yyval.str = "transaction"; ; break;} -case 851: -#line 4573 "gram.y" +case 844: +#line 4530 "gram.y" { yyval.str = "true"; ; break;} -case 852: -#line 4574 "gram.y" +case 845: +#line 4531 "gram.y" { yyval.str = "false"; ; break;} -case 853: -#line 4578 "gram.y" +case 846: +#line 4535 "gram.y" { if (QueryIsRule) yyval.str = "*CURRENT*"; @@ -9508,8 +9421,8 @@ case 853: elog(ERROR,"CURRENT used in non-rule query"); ; break;} -case 854: -#line 4585 "gram.y" +case 847: +#line 4542 "gram.y" { if (QueryIsRule) yyval.str = "*NEW*"; @@ -9715,7 +9628,7 @@ yyerrhandle: yystate = yyn; goto yynewstate; } -#line 4593 "gram.y" +#line 4550 "gram.y" static Node * diff --git a/src/backend/parser/parse.h b/src/backend/parser/parse.h index 5ce1d6f299..d5e888e499 100644 --- a/src/backend/parser/parse.h +++ b/src/backend/parser/parse.h @@ -16,6 +16,7 @@ typedef union DefElem *defelt; ParamString *param; SortGroupBy *sortgroupby; + JoinUsing *joinusing; IndexElem *ielem; RangeVar *range; RelExpr *relexp; diff --git a/src/backend/storage/large_object/inv_api.c b/src/backend/storage/large_object/inv_api.c index 3924330c35..f06bb5968a 100644 --- a/src/backend/storage/large_object/inv_api.c +++ b/src/backend/storage/large_object/inv_api.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.32 1998/07/27 19:38:11 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.33 1998/08/06 05:12:45 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -153,7 +153,7 @@ inv_create(int flags) * be located on whatever storage manager the user requested. */ - heap_create_with_catalog(objname, tupdesc); + heap_create_with_catalog(objname, tupdesc, RELKIND_LOBJECT); /* make the relation visible in this transaction */ CommandCounterIncrement(); diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c index 94f44a7385..75d51086d3 100644 --- a/src/backend/tcop/utility.c +++ b/src/backend/tcop/utility.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.44 1998/07/26 04:30:48 scrappy Exp $ + * $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.45 1998/08/06 05:12:48 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -173,7 +173,7 @@ ProcessUtility(Node *parsetree, *ps_status = commandTag = "CREATE"; CHECK_IF_ABORTED(); - DefineRelation((CreateStmt *) parsetree); + DefineRelation((CreateStmt *) parsetree, RELKIND_RELATION); break; case T_DestroyStmt: diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index ad68b9fcde..b3f0bbeba6 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -21,7 +21,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.78 1998/07/19 05:24:49 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.79 1998/08/06 05:12:51 momjian Exp $ * * Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb * @@ -1418,7 +1418,7 @@ getTables(int *numTables, FuncInfo *finfo, int numFuncs) "from pg_class, pg_user " "where relowner = usesysid and " "(relkind = 'r' or relkind = 'S') and relname !~ '^pg_' " - "and relname !~ '^xin[xv][0-9]+' order by oid"); + "order by oid"); res = PQexec(g_conn, query); if (!res || @@ -1879,7 +1879,7 @@ getIndices(int *numIndices) "from pg_index i, pg_class t1, pg_class t2, pg_am a " "where t1.oid = i.indexrelid and t2.oid = i.indrelid " "and t1.relam = a.oid and i.indexrelid > '%d'::oid " - "and t2.relname !~ '^pg_' and t1.relname !~ '^xinx'", + "and t2.relname !~ '^pg_' and t1.relkind != 'l'", g_last_builtin_oid); res = PQexec(g_conn, query); diff --git a/src/bin/psql/psql.c b/src/bin/psql/psql.c index 0b4c78a7e6..b3f692780e 100644 --- a/src/bin/psql/psql.c +++ b/src/bin/psql/psql.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.151 1998/08/05 16:23:40 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.152 1998/08/06 05:12:55 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -408,7 +408,6 @@ tableList(PsqlSettings *pset, bool deep_tablelist, char info_type, strcat(listbuf, " and relname !~ '^pg_'"); else strcat(listbuf, " and relname ~ '^pg_'"); - strcat(listbuf, " and relname !~ '^xin[vx][0-9]+'"); strcat(listbuf, " and usesysid = relowner"); strcat(listbuf, " ORDER BY relname "); if (!(res = PSQLexec(pset, listbuf))) @@ -544,7 +543,6 @@ rightsList(PsqlSettings *pset) strcat(listbuf, "FROM pg_class, pg_user "); strcat(listbuf, "WHERE ( relkind = 'r' OR relkind = 'i' OR relkind = 'S') "); strcat(listbuf, " and relname !~ '^pg_'"); - strcat(listbuf, " and relname !~ '^xin[vx][0-9]+'"); strcat(listbuf, " and usesysid = relowner"); strcat(listbuf, " ORDER BY relname "); if (!(res = PSQLexec(pset, listbuf))) diff --git a/src/include/catalog/heap.h b/src/include/catalog/heap.h index e43ac0cd0e..3caebe7444 100644 --- a/src/include/catalog/heap.h +++ b/src/include/catalog/heap.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: heap.h,v 1.12 1998/02/26 04:40:38 momjian Exp $ + * $Id: heap.h,v 1.13 1998/08/06 05:13:01 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -17,7 +17,8 @@ extern Relation heap_create(char *relname, TupleDesc att); -extern Oid heap_create_with_catalog(char relname[], TupleDesc tupdesc); +extern Oid heap_create_with_catalog(char *relname, + TupleDesc tupdesc, char relkind); extern void heap_destroy_with_catalog(char relname[]); extern void heap_destroy(Relation r); diff --git a/src/include/catalog/pg_attribute_mb.h b/src/include/catalog/pg_attribute_mb.h index de5adbae3e..c7cbfa30ec 100644 --- a/src/include/catalog/pg_attribute_mb.h +++ b/src/include/catalog/pg_attribute_mb.h @@ -7,474 +7,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: pg_attribute_mb.h,v 1.1 1998/07/27 03:21:57 scrappy Exp $ - * - * NOTES - * the genbki.sh script reads this file and generates .bki - * information from the DATA() statements. - * - * utils/cache/relcache.c requires some hard-coded tuple descriptors - * for some of the system catalogs so if the schema for any of - * these changes, be sure and change the appropriate Schema_xxx - * macros! -cim 2/5/91 - * - *------------------------------------------------------------------------- - */ -#ifndef PG_ATTRIBUTE_H -#define PG_ATTRIBUTE_H - -/* ---------------- - * postgres.h contains the system type definintions and the - * CATALOG(), BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ - -/* ---------------- - * pg_attribute definition. cpp turns this into - * typedef struct FormData_pg_attribute - * - * If you change the following, make sure you change the structs for - * system attributes in heap.c and index.c also. - * ---------------- - */ -CATALOG(pg_attribute) BOOTSTRAP -{ - Oid attrelid; - NameData attname; - Oid atttypid; - - /* - * atttypid is the OID of the instance in Catalog Class pg_type that - * defines the data type of this attribute (e.g. int4). Information - * in that instance is redundant with the attlen, attbyval, and - * attalign attributes of this instance, so they had better match or - * Postgres will fail. - */ - float4 attdisbursion; - int2 attlen; - - /* - * attlen is a copy of the typlen field from pg_type for this - * attribute. See atttypid above. See struct TypeTupleFormData for - * definition. - */ - int2 attnum; - - /* - * attnum is the "attribute number" for the attribute: A value that - * uniquely identifies this attribute within its class. For user - * attributes, Attribute numbers are greater than 0 and not greater - * than the number of attributes in the class. I.e. if the Class - * pg_class says that Class XYZ has 10 attributes, then the user - * attribute numbers in Class pg_attribute must be 1-10. - * - * System attributes have attribute numbers less than 0 that are unique - * within the class, but not constrained to any particular range. - * - * Note that (attnum - 1) is often used as the index to an array. - */ - int4 attnelems; - - int4 attcacheoff; - - /* - * fastgetattr() uses attcacheoff to cache byte offsets of attributes - * in heap tuples. The data actually stored in pg_attribute (-1) - * indicates no cached value. But when we copy these tuples into a - * tuple descriptor, we may then update attcacheoff in the copies. - * This speeds up the attribute walking process. - */ - - int4 atttypmod; - - /* - * atttypmod records type-specific modifications supplied at table - * creation time, and passes it to input and output functions as the - * third argument. - */ - - bool attbyval; - - /* - * attbyval is a copy of the typbyval field from pg_type for this - * attribute. See atttypid above. See struct TypeTupleFormData for - * definition. - */ - bool attisset; - char attalign; - - /* - * attalign is a copy of the typalign field from pg_type for this - * attribute. See atttypid above. See struct TypeTupleFormData for - * definition. - */ - bool attnotnull; - - /* This flag represents the "NOT NULL" constraint */ - bool atthasdef; - - /* Has DEFAULT value or not */ -} FormData_pg_attribute; - -/* - * someone should figure out how to do this properly. (The problem is - * the size of the C struct is not the same as the size of the tuple.) - */ -#define ATTRIBUTE_TUPLE_SIZE \ - (offsetof(FormData_pg_attribute,atthasdef) + sizeof(char)) - -/* ---------------- - * Form_pg_attribute corresponds to a pointer to a tuple with - * the format of pg_attribute relation. - * ---------------- - */ -typedef FormData_pg_attribute *AttributeTupleForm; - -/* ---------------- - * compiler constants for pg_attribute - * ---------------- - */ - -#define Natts_pg_attribute 14 -#define Anum_pg_attribute_attrelid 1 -#define Anum_pg_attribute_attname 2 -#define Anum_pg_attribute_atttypid 3 -#define Anum_pg_attribute_attdisbursion 4 -#define Anum_pg_attribute_attlen 5 -#define Anum_pg_attribute_attnum 6 -#define Anum_pg_attribute_attnelems 7 -#define Anum_pg_attribute_attcacheoff 8 -#define Anum_pg_attribute_atttypmod 9 -#define Anum_pg_attribute_attbyval 10 -#define Anum_pg_attribute_attisset 11 -#define Anum_pg_attribute_attalign 12 -#define Anum_pg_attribute_attnotnull 13 -#define Anum_pg_attribute_atthasdef 14 - - -/* ---------------- - * SCHEMA_ macros for declaring hardcoded tuple descriptors. - * these are used in utils/cache/relcache.c - * ---------------- -#define SCHEMA_NAME(x) CppConcat(Name_,x) -#define SCHEMA_DESC(x) CppConcat(Desc_,x) -#define SCHEMA_NATTS(x) CppConcat(Natts_,x) -#define SCHEMA_DEF(x) \ - FormData_pg_attribute \ - SCHEMA_DESC(x) [ SCHEMA_NATTS(x) ] = \ - { \ - CppConcat(Schema_,x) \ - } - */ - -/* ---------------- - * initial contents of pg_attribute - * ---------------- - */ - -/* ---------------- - * pg_type schema - * ---------------- - */ -#define Schema_pg_type \ -{ 1247, {"typname"}, 19, 0, NAMEDATALEN, 1, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }, \ -{ 1247, {"typowner"}, 26, 0, 4, 2, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1247, {"typlen"}, 21, 0, 2, 3, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \ -{ 1247, {"typprtlen"}, 21, 0, 2, 4, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \ -{ 1247, {"typbyval"}, 16, 0, 1, 5, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1247, {"typtype"}, 18, 0, 1, 6, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1247, {"typisdefined"}, 16, 0, 1, 7, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1247, {"typdelim"}, 18, 0, 1, 8, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1247, {"typrelid"}, 26, 0, 4, 9, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1247, {"typelem"}, 26, 0, 4, 10, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1247, {"typinput"}, 24, 0, 4, 11, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1247, {"typoutput"}, 24, 0, 4, 12, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1247, {"typreceive"}, 24, 0, 4, 13, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1247, {"typsend"}, 24, 0, 4, 14, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1247, {"typalign"}, 18, 0, 1, 15, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1247, {"typdefault"}, 25, 0, -1, 16, 0, -1, -1, '\0' , '\0', 'i', '\0', '\0' } - -DATA(insert OID = 0 ( 1247 typname 19 0 NAMEDATALEN 1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1247 typowner 26 0 4 2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1247 typlen 21 0 2 3 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1247 typprtlen 21 0 2 4 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1247 typbyval 16 0 1 5 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1247 typtype 18 0 1 6 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1247 typisdefined 16 0 1 7 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1247 typdelim 18 0 1 8 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1247 typrelid 26 0 4 9 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1247 typelem 26 0 4 10 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1247 typinput 24 0 4 11 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1247 typoutput 24 0 4 12 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1247 typreceive 24 0 4 13 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1247 typsend 24 0 4 14 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1247 typalign 18 0 1 15 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1247 typdefault 25 0 -1 16 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1247 ctid 27 0 6 -1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1247 oid 26 0 4 -2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1247 xmin 28 0 4 -3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1247 cmin 29 0 4 -4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1247 xmax 28 0 4 -5 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1247 cmax 29 0 4 -6 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_database - * ---------------- - */ -DATA(insert OID = 0 ( 1262 datname 19 0 NAMEDATALEN 1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1262 datdba 23 0 4 2 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1262 encoding 23 0 4 3 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1262 datpath 25 0 -1 4 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1262 ctid 27 0 6 -1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1262 oid 26 0 4 -2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1262 xmin 28 0 4 -3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1262 cmin 29 0 4 -4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1262 xmax 28 0 4 -5 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1262 cmax 29 0 4 -6 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_proc - * ---------------- - */ -#define Schema_pg_proc \ -{ 1255, {"proname"}, 19, 0, NAMEDATALEN, 1, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }, \ -{ 1255, {"proowner"}, 26, 0, 4, 2, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1255, {"prolang"}, 26, 0, 4, 3, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1255, {"proisinh"}, 16, 0, 1, 4, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1255, {"proistrusted"}, 16, 0, 1, 5, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1255, {"proiscachable"}, 16, 0, 1, 6, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1255, {"pronargs"}, 21, 0, 2, 7, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \ -{ 1255, {"proretset"}, 16, 0, 1, 8, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1255, {"prorettype"}, 26, 0, 4, 9, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1255, {"proargtypes"}, 30, 0, 32, 10, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }, \ -{ 1255, {"probyte_pct"}, 23, 0, 4, 11, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1255, {"properbyte_cpu"}, 23, 0, 4, 12, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1255, {"propercall_cpu"}, 23, 0, 4, 13, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1255, {"prooutin_ratio"}, 23, 0, 4, 14, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1255, {"prosrc"}, 25, 0, -1, 15, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }, \ -{ 1255, {"probin"}, 17, 0, -1, 16, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' } - -DATA(insert OID = 0 ( 1255 proname 19 0 NAMEDATALEN 1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1255 proowner 26 0 4 2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1255 prolang 26 0 4 3 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1255 proisinh 16 0 1 4 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1255 proistrusted 16 0 1 5 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1255 proiscachable 16 0 1 6 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1255 pronargs 21 0 2 7 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1255 proretset 16 0 1 8 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1255 prorettype 26 0 4 9 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1255 proargtypes 30 0 32 10 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1255 probyte_pct 23 0 4 11 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1255 properbyte_cpu 23 0 4 12 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1255 propercall_cpu 23 0 4 13 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1255 prooutin_ratio 23 0 4 14 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1255 prosrc 25 0 -1 15 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1255 probin 17 0 -1 16 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1255 ctid 27 0 6 -1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1255 oid 26 0 4 -2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1255 xmin 28 0 4 -3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1255 cmin 29 0 4 -4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1255 xmax 28 0 4 -5 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1255 cmax 29 0 4 -6 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_shadow - * ---------------- - */ -DATA(insert OID = 0 ( 1260 usename 19 0 NAMEDATALEN 1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1260 usesysid 23 0 4 2 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1260 usecreatedb 16 0 1 3 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1260 usetrace 16 0 1 4 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1260 usesuper 16 0 1 5 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1260 usecatupd 16 0 1 6 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1260 passwd 25 0 -1 7 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1260 valuntil 702 0 4 8 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1260 ctid 27 0 6 -1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1260 oid 26 0 4 -2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1260 xmin 28 0 4 -3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1260 cmin 29 0 4 -4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1260 xmax 28 0 4 -5 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1260 cmax 29 0 4 -6 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_group - * ---------------- - */ -DATA(insert OID = 0 ( 1261 groname 19 0 NAMEDATALEN 1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1261 grosysid 23 0 4 2 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1261 grolist 1007 0 -1 3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1261 ctid 27 0 6 -1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1261 oid 26 0 4 -2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1261 xmin 28 0 4 -3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1261 cmin 29 0 4 -4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1261 xmax 28 0 4 -5 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1261 cmax 29 0 4 -6 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_attribute - * ---------------- - */ -#define Schema_pg_attribute \ -{ 1249, {"attrelid"}, 26, 0, 4, 1, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1249, {"attname"}, 19, 0, NAMEDATALEN, 2, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }, \ -{ 1249, {"atttypid"}, 26, 0, 4, 3, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1249, {"attdisbursion"}, 700, 0, 4, 4, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }, \ -{ 1249, {"attlen"}, 21, 0, 2, 5, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \ -{ 1249, {"attnum"}, 21, 0, 2, 6, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \ -{ 1249, {"attnelems"}, 23, 0, 4, 7, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1249, {"attcacheoff"}, 23, 0, 4, 8, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1249, {"atttypmod"}, 21, 0, 4, 9, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \ -{ 1249, {"attbyval"}, 16, 0, 1, 10, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1249, {"attisset"}, 16, 0, 1, 11, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1249, {"attalign"}, 18, 0, 1, 12, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1249, {"attnotnull"}, 16, 0, 1, 13, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1249, {"atthasdef"}, 16, 0, 1, 14, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' } - -DATA(insert OID = 0 ( 1249 attrelid 26 0 4 1 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1249 attname 19 0 NAMEDATALEN 2 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1249 atttypid 26 0 4 3 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1249 attdisbursion 700 0 4 4 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1249 attlen 21 0 2 5 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1249 attnum 21 0 2 6 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1249 attnelems 23 0 4 7 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1249 attcacheoff 23 0 4 8 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1249 atttypmod 21 0 4 9 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1249 attbyval 16 0 1 10 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1249 attisset 16 0 1 11 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1249 attalign 18 0 1 12 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1249 attnotnull 16 0 1 13 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1249 atthasdef 16 0 1 14 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1249 ctid 27 0 6 -1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1249 oid 26 0 4 -2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1249 xmin 28 0 4 -3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1249 cmin 29 0 4 -4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1249 xmax 28 0 4 -5 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1249 cmax 29 0 4 -6 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_class - * ---------------- - */ -#define Schema_pg_class \ -{ 1259, {"relname"}, 19, 0, NAMEDATALEN, 1, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }, \ -{ 1259, {"reltype"}, 26, 0, 4, 2, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1259, {"relowner"}, 26, 0, 4, 3, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1259, {"relam"}, 26, 0, 4, 4, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1259, {"relpages"}, 23, 0, 4, 5, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1259, {"reltuples"}, 23, 0, 4, 6, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1259, {"relhasindex"}, 16, 0, 1, 7, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1259, {"relisshared"}, 16, 0, 1, 8, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1259, {"relkind"}, 18, 0, 1, 9, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1259, {"relnatts"}, 21, 0, 2, 10, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \ -{ 1259, {"relchecks"}, 21, 0, 2, 11, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \ -{ 1259, {"reltriggers"}, 21, 0, 2, 12, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \ -{ 1259, {"relhasrules"}, 16, 0, 1, 13, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1259, {"relacl"}, 1034, 0, -1, 14, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' } - -DATA(insert OID = 0 ( 1259 relname 19 0 NAMEDATALEN 1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1259 reltype 26 0 4 2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1259 relowner 26 0 4 3 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1259 relam 26 0 4 4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1259 relpages 23 0 4 5 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1259 reltuples 23 0 4 6 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1259 relhasindex 16 0 1 7 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1259 relisshared 16 0 1 8 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1259 relkind 18 0 1 9 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1259 relnatts 21 0 2 10 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1259 relchecks 21 0 2 11 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1259 reltriggers 21 0 2 12 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1259 relhasrules 16 0 1 13 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1259 relacl 1034 0 -1 14 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1259 ctid 27 0 6 -1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1259 oid 26 0 4 -2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1259 xmin 28 0 4 -3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1259 cmin 29 0 4 -4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1259 xmax 28 0 4 -5 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1259 cmax 29 0 4 -6 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_attrdef - * ---------------- - */ -DATA(insert OID = 0 ( 1215 adrelid 26 0 4 1 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1215 adnum 21 0 2 2 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1215 adbin 25 0 -1 3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1215 adsrc 25 0 -1 4 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1215 ctid 27 0 6 -1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1215 oid 26 0 4 -2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1215 xmin 28 0 4 -3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1215 cmin 29 0 4 -4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1215 xmax 28 0 4 -5 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1215 cmax 29 0 4 -6 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_relcheck - * ---------------- - */ -DATA(insert OID = 0 ( 1216 rcrelid 26 0 4 1 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1216 rcname 19 0 NAMEDATALEN 2 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1216 rcbin 25 0 -1 3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1216 rcsrc 25 0 -1 4 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1216 ctid 27 0 6 -1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1216 oid 26 0 4 -2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1216 xmin 28 0 4 -3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1216 cmin 29 0 4 -4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1216 xmax 28 0 4 -5 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1216 cmax 29 0 4 -6 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_trigger - * ---------------- - */ -DATA(insert OID = 0 ( 1219 tgrelid 26 0 4 1 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1219 tgname 19 0 NAMEDATALEN 2 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1219 tgfoid 26 0 4 3 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1219 tgtype 21 0 2 4 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1219 tgnargs 21 0 2 5 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1219 tgattr 22 0 16 6 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1219 tgargs 17 0 -1 7 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1219 ctid 27 0 6 -1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1219 oid 26 0 4 -2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1219 xmin 28 0 4 -3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1219 cmin 29 0 4 -4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1219 xmax 28 0 4 -5 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1219 cmax 29 0 4 -6 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_variable - this relation is modified by special purpose access - * method code. The following is garbage but is needed - * so that the reldesc code works properly. - * ---------------- - */ -#define Schema_pg_variable \ -{ 1264, {"varfoo"}, 26, 0, 4, 1, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' } - -DATA(insert OID = 0 ( 1264 varfoo 26 0 4 1 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_log - this relation is modified by special purpose access - * method code. The following is garbage but is needed - * so that the reldesc code works properly. - * ---------------- - */ -#define Schema_pg_log \ -{ 1269, {"logfoo"}, 26, 0, 4, 1, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' } - -DATA(insert OID = 0 ( 1269 logfoo 26 0 4 1 0 -1 -1 t f i f f)); - -#endif /* PG_ATTRIBUTE_H */ - -/*------------------------------------------------------------------------- - * - * pg_attribute.h-- - * definition of the system "attribute" relation (pg_attribute) - * along with the relation's initial contents. - * - * - * Copyright (c) 1994, Regents of the University of California - * - * $Id: pg_attribute_mb.h,v 1.1 1998/07/27 03:21:57 scrappy Exp $ + * $Id: pg_attribute_mb.h,v 1.2 1998/08/06 05:13:03 momjian Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki diff --git a/src/include/catalog/pg_class.h b/src/include/catalog/pg_class.h index 223c60f894..1702a2e0e1 100644 --- a/src/include/catalog/pg_class.h +++ b/src/include/catalog/pg_class.h @@ -7,7 +7,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: pg_class.h,v 1.20 1998/02/26 04:40:52 momjian Exp $ + * $Id: pg_class.h,v 1.21 1998/08/06 05:13:05 momjian Exp $ * * NOTES * ``pg_relation'' is being replaced by ``pg_class''. currently @@ -157,6 +157,7 @@ DESCR(""); #define RelOid_pg_trigger 1219 #define RELKIND_INDEX 'i' /* secondary index */ +#define RELKIND_LOBJECT 'l' /* large objects */ #define RELKIND_RELATION 'r' /* cataloged heap */ #define RELKIND_SPECIAL 's' /* special (non-heap) */ #define RELKIND_SEQUENCE 'S' /* SEQUENCE relation */ diff --git a/src/include/catalog/pg_class_mb.h b/src/include/catalog/pg_class_mb.h index 09bc745d12..5135e4403a 100644 --- a/src/include/catalog/pg_class_mb.h +++ b/src/include/catalog/pg_class_mb.h @@ -7,172 +7,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: pg_class_mb.h,v 1.1 1998/07/27 03:21:58 scrappy Exp $ - * - * NOTES - * ``pg_relation'' is being replaced by ``pg_class''. currently - * we are only changing the name in the catalogs but someday the - * code will be changed too. -cim 2/26/90 - * [it finally happens. -ay 11/5/94] - * - * the genbki.sh script reads this file and generates .bki - * information from the DATA() statements. - * - *------------------------------------------------------------------------- - */ -#ifndef PG_RELATION_H -#define PG_RELATION_H - -/* ---------------- - * postgres.h contains the system type definintions and the - * CATALOG(), BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ - -/* ---------------- - * pg_class definition. cpp turns this into - * typedef struct FormData_pg_class - * - * Note: the #if 0, #endif around the BKI_BEGIN.. END block - * below keeps cpp from seeing what is meant for the - * genbki script: pg_relation is now called pg_class, but - * only in the catalogs -cim 2/26/90 - * ---------------- - */ - -/* ---------------- - * This structure is actually variable-length (the last attribute is - * a POSTGRES array). Hence, sizeof(FormData_pg_class) does not - * describe the fixed-length or actual size of the structure. - * FormData_pg_class.relacl may not be correctly aligned, either, - * if aclitem and struct varlena don't align together. Hence, - * you MUST use heap_getattr() to get the relacl field. - * ---------------- - */ -CATALOG(pg_class) BOOTSTRAP -{ - NameData relname; - Oid reltype; - Oid relowner; - Oid relam; - int4 relpages; - int4 reltuples; - bool relhasindex; - bool relisshared; - char relkind; - int2 relnatts; - - /* - * relnatts is the number of user attributes this class has. There - * must be exactly this many instances in Class pg_attribute for this - * class which have attnum > 0 (= user attribute). - */ - int2 relchecks; /* # of CHECK constraints, not stored in - * db? */ - int2 reltriggers; /* # of TRIGGERs */ - bool relhasrules; - aclitem relacl[1]; /* this is here for the catalog */ -} FormData_pg_class; - -#define CLASS_TUPLE_SIZE \ - (offsetof(FormData_pg_class,relhasrules) + sizeof(bool)) - -/* ---------------- - * Form_pg_class corresponds to a pointer to a tuple with - * the format of pg_class relation. - * ---------------- - */ -typedef FormData_pg_class *Form_pg_class; - -/* ---------------- - * compiler constants for pg_class - * ---------------- - */ - -/* ---------------- - * Natts_pg_class_fixed is used to tell routines that insert new - * pg_class tuples (as opposed to replacing old ones) that there's no - * relacl field. - * ---------------- - */ -#define Natts_pg_class_fixed 13 -#define Natts_pg_class 14 -#define Anum_pg_class_relname 1 -#define Anum_pg_class_reltype 2 -#define Anum_pg_class_relowner 3 -#define Anum_pg_class_relam 4 -#define Anum_pg_class_relpages 5 -#define Anum_pg_class_reltuples 6 -#define Anum_pg_class_relhasindex 7 -#define Anum_pg_class_relisshared 8 -#define Anum_pg_class_relkind 9 -#define Anum_pg_class_relnatts 10 -#define Anum_pg_class_relchecks 11 -#define Anum_pg_class_reltriggers 12 -#define Anum_pg_class_relhasrules 13 -#define Anum_pg_class_relacl 14 - -/* ---------------- - * initial contents of pg_class - * ---------------- - */ - -DATA(insert OID = 1247 ( pg_type 71 PGUID 0 0 0 f f r 16 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1249 ( pg_attribute 75 PGUID 0 0 0 f f r 14 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1255 ( pg_proc 81 PGUID 0 0 0 f f r 16 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1259 ( pg_class 83 PGUID 0 0 0 f f r 14 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1260 ( pg_shadow 86 PGUID 0 0 0 f t r 8 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1261 ( pg_group 87 PGUID 0 0 0 f t s 3 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1262 ( pg_database 88 PGUID 0 0 0 f t r 4 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1264 ( pg_variable 90 PGUID 0 0 0 f t s 2 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1269 ( pg_log 99 PGUID 0 0 0 f t s 1 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1215 ( pg_attrdef 109 PGUID 0 0 0 t t r 4 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1216 ( pg_relcheck 110 PGUID 0 0 0 t t r 4 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1219 ( pg_trigger 111 PGUID 0 0 0 t t r 7 0 0 f _null_ )); -DESCR(""); - -#define RelOid_pg_type 1247 -#define RelOid_pg_attribute 1249 -#define RelOid_pg_proc 1255 -#define RelOid_pg_class 1259 -#define RelOid_pg_shadow 1260 -#define RelOid_pg_group 1261 -#define RelOid_pg_database 1262 -#define RelOid_pg_variable 1264 -#define RelOid_pg_log 1269 -#define RelOid_pg_attrdef 1215 -#define RelOid_pg_relcheck 1216 -#define RelOid_pg_trigger 1219 - -#define RELKIND_INDEX 'i' /* secondary index */ -#define RELKIND_RELATION 'r' /* cataloged heap */ -#define RELKIND_SPECIAL 's' /* special (non-heap) */ -#define RELKIND_SEQUENCE 'S' /* SEQUENCE relation */ -#define RELKIND_UNCATALOGED 'u' /* temporary heap */ - -#endif /* PG_RELATION_H */ -/*------------------------------------------------------------------------- - * - * pg_class.h-- - * definition of the system "relation" relation (pg_class) - * along with the relation's initial contents. - * - * - * Copyright (c) 1994, Regents of the University of California - * - * $Id: pg_class_mb.h,v 1.1 1998/07/27 03:21:58 scrappy Exp $ + * $Id: pg_class_mb.h,v 1.2 1998/08/06 05:13:07 momjian Exp $ * * NOTES * ``pg_relation'' is being replaced by ``pg_class''. currently diff --git a/src/include/catalog/pg_database_mb.h b/src/include/catalog/pg_database_mb.h index a9ff602a6f..0b778a5d50 100644 --- a/src/include/catalog/pg_database_mb.h +++ b/src/include/catalog/pg_database_mb.h @@ -7,65 +7,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: pg_database_mb.h,v 1.1 1998/07/27 03:21:58 scrappy Exp $ - * - * NOTES - * the genbki.sh script reads this file and generates .bki - * information from the DATA() statements. - * - *------------------------------------------------------------------------- - */ -#ifndef PG_DATABASE_H -#define PG_DATABASE_H - -/* ---------------- - * postgres.h contains the system type definintions and the - * CATALOG(), BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ - -/* ---------------- - * pg_database definition. cpp turns this into - * typedef struct FormData_pg_database - * ---------------- - */ -CATALOG(pg_database) BOOTSTRAP -{ - NameData datname; - int4 datdba; - int4 encoding; - text datpath; /* VARIABLE LENGTH FIELD */ -} FormData_pg_database; -/* ---------------- - * Form_pg_database corresponds to a pointer to a tuple with - * the format of pg_database relation. - * ---------------- - */ -typedef FormData_pg_database *Form_pg_database; - -/* ---------------- - * compiler constants for pg_database - * ---------------- - */ -#define Natts_pg_database 4 -#define Anum_pg_database_datname 1 -#define Anum_pg_database_datdba 2 -#define Anum_pg_database_encoding 3 -#define Anum_pg_database_datpath 4 - - -#endif /* PG_DATABASE_H */ -/*------------------------------------------------------------------------- - * - * pg_database.h-- - * definition of the system "database" relation (pg_database) - * along with the relation's initial contents. - * - * - * Copyright (c) 1994, Regents of the University of California - * - * $Id: pg_database_mb.h,v 1.1 1998/07/27 03:21:58 scrappy Exp $ + * $Id: pg_database_mb.h,v 1.2 1998/08/06 05:13:09 momjian Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki diff --git a/src/include/commands/creatinh.h b/src/include/commands/creatinh.h index 21208ad958..f4e5f39668 100644 --- a/src/include/commands/creatinh.h +++ b/src/include/commands/creatinh.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: creatinh.h,v 1.6 1997/11/26 01:12:12 momjian Exp $ + * $Id: creatinh.h,v 1.7 1998/08/06 05:13:10 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -15,7 +15,7 @@ #include "nodes/parsenodes.h" -extern void DefineRelation(CreateStmt *stmt); +extern void DefineRelation(CreateStmt *stmt, char relkind); extern void RemoveRelation(char *name); #endif /* CREATINH_H */ diff --git a/src/tools/backend/flow.fig b/src/tools/backend/flow.fig index f661b84446..35124b1f05 100644 --- a/src/tools/backend/flow.fig +++ b/src/tools/backend/flow.fig @@ -92,12 +92,12 @@ Inches 0 0 2.00 150.00 180.00 0 0 2.00 150.00 180.00 4660 1524 5295 1293 -2 1 0 2 31 7 0 0 -1 0.000 0 0 -1 1 0 2 - 0 0 2.00 150.00 180.00 - 2550 3300 2550 4275 2 1 0 2 8 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 2.00 150.00 180.00 2550 7275 2550 7875 +2 1 0 2 31 7 0 0 -1 0.000 0 0 -1 1 0 2 + 0 0 2.00 150.00 180.00 + 2550 3300 2550 4275 3 0 0 2 8 7 0 0 -1 0.000 0 1 0 8 0 0 2.00 150.00 150.00 1350 9375 1050 9375 825 9000 825 4425 1050 4050 1500 3975 @@ -106,25 +106,25 @@ Inches 0 0 2.00 150.00 150.00 7650 5775 8250 5475 8250 4575 7725 3975 3525 3975 2850 3975 2700 4275 -4 1 -1 0 0 28 18 0.0000 4 195 1050 1560 11190 Utilities\001 -4 1 -1 0 0 28 18 0.0000 4 240 2325 7965 11190 Storage Managers\001 -4 1 -1 0 0 0 18 0.0000 4 255 840 4725 11175 Catalog\001 -4 1 -1 0 0 28 18 0.0000 4 195 2100 3135 12405 Access Methods\001 -4 1 7 0 0 28 18 0.0000 4 195 1980 2535 7230 Generate Paths\001 -4 1 7 0 0 28 18 0.0000 4 195 1485 6450 6030 Commands\001 -4 1 7 0 0 28 18 0.0000 4 195 1830 2565 8445 Generate Plan\001 -4 1 -1 0 0 28 18 0.0000 4 195 1470 2535 1965 Postmaster\001 -4 1 -1 0 0 28 18 0.0000 4 240 1110 6435 3150 Postgres\001 -4 1 -1 0 0 28 18 0.0000 4 240 1110 2550 3165 Postgres\001 -4 1 7 0 0 28 18 0.0000 4 195 1275 2565 6945 Rewrite &\001 -4 1 7 0 0 28 18 0.0000 4 255 1500 2565 5865 Traffic Cop\001 -4 1 7 0 0 28 18 0.0000 4 195 825 2535 4650 Parser\001 -4 1 7 0 0 28 18 0.0000 4 195 1890 2550 8175 Choose Path &\001 -4 1 7 0 0 28 18 0.0000 4 195 1140 2535 9495 Executor\001 +4 1 -1 0 0 16 18 0.0000 4 210 900 1560 11190 Utilities\001 +4 1 -1 0 0 16 18 0.0000 4 270 2265 7965 11190 Storage Managers\001 +4 1 -1 0 0 16 18 0.0000 4 270 960 4725 11175 Catalog\001 +4 1 -1 0 0 16 18 0.0000 4 210 2070 3135 12405 Access Methods\001 +4 1 7 0 0 16 18 0.0000 4 210 1380 6450 6030 Commands\001 +4 1 7 0 0 16 18 0.0000 4 210 1725 2565 8445 Generate Plan\001 +4 1 -1 0 0 16 18 0.0000 4 270 1110 6435 3150 Postgres\001 +4 1 -1 0 0 16 18 0.0000 4 270 1110 2550 3165 Postgres\001 +4 1 7 0 0 16 18 0.0000 4 210 1200 2565 6945 Rewrite &\001 +4 1 7 0 0 16 18 0.0000 4 270 1410 2565 5865 Traffic Cop\001 +4 1 7 0 0 16 18 0.0000 4 210 780 2535 4650 Parser\001 +4 1 7 0 0 16 18 0.0000 4 210 1110 2535 9495 Executor\001 4 1 8 0 0 28 18 0.0000 4 240 795 4455 5700 utility\001 -4 1 7 0 0 28 18 0.0000 4 240 825 6450 5745 Utility\001 -4 1 -1 0 0 28 18 0.0000 4 195 630 2520 765 Main\001 +4 1 7 0 0 16 18 0.0000 4 270 705 6450 5745 Utility\001 +4 1 -1 0 0 16 18 0.0000 4 210 585 2520 765 Main\001 4 1 8 0 0 28 18 0.0000 4 240 1125 2565 6435 complex\001 -4 1 -1 0 0 0 18 0.0000 4 225 1425 6450 12375 Nodes / Lists\001 -4 1 7 0 0 0 18 0.0000 4 255 645 6450 1350 Libpq\001 -4 1 -1 0 0 0 18 0.0000 4 255 1095 1650 13650 Bootstrap\001 +4 1 -1 0 0 16 18 0.0000 4 210 1605 6450 12375 Nodes / Lists\001 +4 1 7 0 0 16 18 0.0000 4 270 705 6450 1350 Libpq\001 +4 1 7 0 0 16 18 0.0000 4 210 1890 2535 7230 Generate Paths\001 +4 1 7 0 0 16 18 0.0000 4 210 1875 2550 8175 Choose Path &\001 +4 1 -1 0 0 16 18 0.0000 4 270 1230 1650 13650 Bootstrap\001 +4 1 -1 0 0 16 18 0.0000 4 210 1380 2535 1965 Postmaster\001 diff --git a/src/tools/backend/flow.jpg b/src/tools/backend/flow.jpg index 2706cfcddf9df05fdc467837b3d8f6484c051be4..f744394d879699c9597ddc9d697dcb778036c7ee 100644 GIT binary patch literal 71332 zcmeGEbwE~K(?5!DI;2awOG3K4k(6$v8$m#j5)`Dn8>G9WTR@QR7L;xfC8W;<*m~d3 z`@Fy3Ip6cgSsV5>Yi8E0wby)R*1GoIa5;JT0YH%wzb6iWfdK#*=m0J+019H_d)Br# zb`Hiy#3pt&*2L=fWr@wL^-YbriA}6*obEocwZ5DIL;zT5Xc%ZHSQr=>I5=2%1Pnxk zTelE!(9n@F2ylrA32^c8iOKI$5tGu9;p0A2ryIt92E=#73{Jdzyn0`5d3_NdUlQ%^7(*(DjS<*9w$#`x!$y04N>WxuOSWOqw^^ z)bI!bh`37Y&8AD9U$uVz0B=}$dV2~0SmzS9ACN;fJO+{G^4aI95kG5vqhWI(_V}Ar zN^k0IR!xxy7wX@HKYv2GoA6ly0Q}j0=?EhLz&RGq2!iAg;rwnlY6ziO$)Jh)UcgjB z#_J8fRv}hk2mzp!BnIlrIKQXUhwpj-0Hw;Kx$SqufY1=P^<@WuHTciPEVR#b?LPp> zX#`(>(gy4Q>@Z^;)H8U^122rT_}MRNhQzU&BO5ZjR?qWRldD$fVqnD zn4+vJX{gup#;7~~&J6*&7>&Z0eJO0)U$7Sf!anj*nTY z8%MvMj48Lp-;}R-cRp{{jD&%C%h2rNvK|nUyZEEuJ6hfU2lX3mkPvok7|IDWyHApa z_|HyPJpZPT-$5j|se7lY{aT1E+FHDqA+N9?ksHpM`qV@4k0xM!hWmx|1C}}8CIAe# zPOx~f{Uj9KTQ0X*q10%IW{h{1&0n4|#!&g0b~_a@M_15gjJqAvkF5YIom zG?~5jvkA!6gxv!>_UaBdXagygkbW6R12B`7`(Nn~=%?>Bfx-&xmc{->wKqr#Cbs9o z@?{o))lzLvuWsN*RDD);1%iG2>Id>DAmXZkHv}&7djj^U67-{S1Q=5q6K3(j1$E|B zwAPt@9pmp}0paOJfui{X@Uxr^X(3I00=CU>Nc;ppSl;GH0)$5aO+{_f^5eyOBf`5!N|$n)hM8DzgZht zbO2a&IfnIiALu8^5Uk^=*Dj36evoTz`E9g!R2EMUhXt=X03hY^9h!3dKor=$Pfkbk z4xU$B04z3RspbUdng*S~F{$M2006<6Ayx-eB{xUgy%HfBA<$iY0svasbnOjwbH;sA zF*_6YGv_xNLLMuz-u^e{*D4ss@D&Bkt7-hF4KTec85I4oIma<~<>F-SRn_MB{Dj~4 ziu$F1)7mC) z^~2DYuY25!tnC&OQ#pUO0+?6MKgi$=wl^PLnbia!`#nm=^bcA9B>9ZRH}97`X%4n3 zdV=7mHbc2RfesVsWcEvd&u4P@;6Tf`Z3_UTgQz+ge>UiqBmM|&-4jCFa@zJJ8Dxm4 zq<=XF8~l}SJ#Q_v-^hy-{^+j__`3Fy1n&Oa7?PfwLyhmC7i`e>B++aXfI*yCWf=)W zWN*qF)?q{~C_&yo#|DsMW5&PqQSRXm)sY)0>?;E>@dJZ34W&O@0x!|+k*R4RfVrJp zRont_K5XVnN%9nFI$h+eObga|;*qn~0%#es@kl&+{nRPDI_YqNNh?1zJq_UPfBNFh zvggmnP#o4GwX4QG9q@J2r|SV=zV2+r#SZL2j*5?4ns{-8z{tMdjlOfz`K`d7pW6aZ zPm@(~K0O{Zc@HQ8(>|5qh&hUr-7l;g$58<`Ca7uk?OUzqC?YAJb2z{%y`wH^+=) zsju`@EhmgqseYN}D>j%`iAs!i+FvK#rJ3xG%;dLGX{y4g5Q8^&D-a7^B**?5eci{=# zDx{+rA}u;dvCOYqM*9dryj(cef%ah0o`z0l$s4Gu_aG018VsGZ$*XSL3N zFT+7@I$f7tL_7b`^9ENwf#&Jc#;CZ{yFrIyhBMN1wGPuKrcwm_$r5U|z%472fjciA zcd$eeo8#}wSb(mve(89esjG?>iY-V+5oHsO2nGzjeR3!k^T_5%VVx3OiB z#hgU93ykRZ5`r_5HgX9~`C>U*KofvVpQ*L2yHT>X0l}Hr@0>SHrVD^SwTF;QO==ki zz*l2e53t>Afq%Wkt9hgtHqZqKO$CG(K3$nbQuC-(7<&gbj`b{4*S@z-?(Mw-vAD#I zF%!y@8iou(s7rvTcdh(b5VYIkY!s_>1i;!JANTGrfj7$)ARG&RTy{LwWB?^hw!SJc zkP@Zoz=-iDkYNBbW-IOey60WSI8E`5{zUP&$@X{!oINt_XR9jF2`z-}4o}?Thx$Q7 z_#23>EZo59iu$$uLj!QW$_e)UAv zXP?^haRDVG`EC3lyuwz`U>vg$I{4;@pDdTt)>TYlbeK50efS?X2Y}VOr&j4y5V^pLyNr)0Y+M7wTWYrF!cU329k$M7mVl5#5Tj*VVdQOoS_*!^jo z{{R-y9`7q`e$u@r|NqyZaH6<}UtaI`4*n6q{|69Q*E*S|W-&n@1|gPFuvp2ySB@iG zVBC+cP+?K=-=dI!fxdt(q%&Z&{!NOKMxnMo_wt(~wW7reM6$HiN@OvEDf^%abNo&n zw?CKpf0z?8HC>|h6Q(5DIdrU{TjI4=pv_IW@4Y^@gf}KdVeMmPpSezM-;VihhX0!A zzHU6$ovk^zo@MIjv(Qu&8X!QUhGzi0qjY1am<&8}MfPr*21xtZ9V zO$=&*P%7nECnD`3BFseq!1e2^NgX)*7{bsn}-y6P0}k@uIC-&+3a8$e}q z$~+c(2-mh*VmSLo6{eQ|S?6-gukC&dO3-4;vum76?qYeBvj75Qwt~lgPF6nmM~qV> z)ePzFTJ^wI?Dy|7eEll&&Dihb#_oOHEaS4?<8+<|Y;)S^WXfjtrV~tO)0ZVAr;ps3 zciqe%1pXCcT@G&QGiRm1w@eJ@kR;0v8ps4m7^^1m*R+Yda2|_X5C#A_&1^8H3Ht!p z_q`}+oM0^cPZJqH(w_?)r@LHr>Ne=+MdbS>v9;r$Wk1spxDJl^Pa}j|K;LY38Zb`J zf@4>Imj9r^iWxYFGKN2&``-dF!Thzj7TJDCf2QEZrUiel{{sz1Sht&W{(bd>MztcH zDf&@OSWlYZ0&O#{3v9*AWDsHw`?FRpUxfhag!M>D*Z1DXX55yez6;sjeDr_+ zLzh)eW~H7o4b&9&g}D1uQBMGZ3*Dpd${=K{(8ZdU;SMYl@AOlr_; zEq6aE88)gEK%D+K34rMe^^_M|^3${F0hphqVH@3suUZPLWlRLYPbNDbdIDKV$D5|? zbR@DyqTRBEy2Ez?R8xL0x%&YAicX{|faGWwm4MR=cS|o+t`#(}*%Cxg0CU+UO^{WCVkanCm911+o z8v+Dqti*?v?6Tjg0O^SJcy?FX_xd-2P3*Am8x8ydweMU=&Fwn-sUN`+s8cQHdJT~8 zD%Zr24okuh1Onp4Gplr8Q`$F0bL!6Q;m88e#N6FPb@{Vd@>R9yh|iXutE1`WDh4E5vbdPyJ=Qg8e;XL zDtLFSCHs4^C1bq{V`^r5Q~uo$pq5~_vqB&8e2(D(>j4*TI5R!CWqj^yw8*qnbRD+I z#J5e4_y`;H04NHM8J%_t^CGD+I@R0+4Y32#Ifh!M@FL95I$d6DJLZGX94j?dg5NE} zf0ol3QfUcfdd@-BHY_8b=^TX6SH_(U>0pvbUE$#1vgZk4M7_6mA|$rpVxd`bz@~NLzRXu-K`~Rs9dVs@<0)Rn)Lqb7-LqXj<$AJLAA;B=9 z&@qWoP|;ZLGYSebv5}CHv4}yFQ!wjc*?NK=?ZASb_<%uyUji|%(@YWf26WT!{>Ot@ zhTQat#Yk#-^5OY$aKCGA2ivS{K`qZ9$Ck7Idz(4Oy7EjOuGC;NQof#ey6VJ3-uB(< z-JWbq!H#N@h8coF)$Qszo5{~;5=vrO&LdM?(e%7sX`MX#HG$H86~CUc=l9;A|G~Xh zdWM3!xnZcDIA5?HaAMFDSCUQpABb!crs7s6`2OGzkM6e3cqp8=IjB$EiL&(j5^N

;VSiy4 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 literal 71617 zcmeFZbzD{5)-bwA0cns{x}>C}B&EASLP8Mf2Bndf4nab?OBw_e5Jb8gq`N^v$!`%V z#(B;;?|bj>yMNrd*P46GF~=A)M$EZl@6(~vNdQ$`SWFmzfB*mp@B^Hl0OUkOVx|`6 zRyO*2M31e^O^H-xrHBkobqw@5i5{Dn+tWX_Fg+aw?gMbJu-9N=;I3V}1`iL1fQX5N zc>OveE;IU=RV^5 zg_4o!qDa$0IprJzKuImK$sep~zAOL$7DJizb6I%3L$4i+y(* zEyw<-1ORlW@x<=Ai2jY`vH?i?w+^rE@@?bj(3yKpX#ptVhy(NCZ$y7%d11keu`;KA zQH6N7b%|GN&h2l6Dg%!OY60L)rvwr+SRZB7UUEjpfw2H$&r;LDgYFCHBEO-!W?V*e ziQ&<cLEuK}q@3G16%@(lg&eR%)0v>N>Q)zz zA=O>6rKJp@+}PCydfA<|%&EX3wnqwuoU>fXZY*>b?C}}Kk#tgKZQUY$q$P>Dg^wo^ z{|v4B1*J+g60=YL-nJV6Jh#eFmAt}t4nkIc+q>0-h#RO7Br%-@1!Jv6UZ_Iuy*T!R z?RO3Uc;PgGqPfC%Q4z0|xi(k(ClNT3A=%dzT=HUK=s+A{*R6!p*{b(h#8e*nvA| z`rjca*OEa6fwKfz?LWig2FTeP;HwQ;kC&&1F~5o#u)`jFI>>0=oVrR2c$GT1s((16 zP5$~0_sGl*nl49WP)a#Kf41DF88I%lGY?bvD#2=vHbg#Xc_8;hT1W63v z+4m=Z$-l^;Jts-4p`$njD3z-nZ=98pP66H;k*>+}x~mzhLV7P@O829ky;Lv`#E#An z*c|cl-Fs>F+9gpRQ9lCsU|=I}=CsXY-W|N-;-Fh2olD^?EPGW1l!?6N9RRrYc5ja$ z-ouCwKxoxz+xr&R1^c$t<+bv&twWGnd8Hru_@+VRTK5h+hk0pUzJ`MJx%vH&gmkx> zX2$?6-;^_MG=~p}?%X}d<*5K5ns=O@Rvm@FJbV`!ZRxJgZMh%|;I!5DrcW#sjN(0f zpJP(t>;}MFdVZb%AqxahZ5BI7zP-<% z1Rr4dF#mJnnFs)?Pi@d&H&JP2*f0v`uYG_LH2iQ(DE{i49Jn=maE&kub)&-1d1vIy zm-%2*E8pVI;2~r!^FpaXFxqQb4;dg~8NP}Y%NQYj2mm(sv}h7L=Z$0ededz=_6FR3 z*W|e>;Q9xB4qO6|N@Lq7Zp~=r1T;jUN23z7Z*4{n48(8pycSWh0Ish)8osJ%>}J55E5eCeP~rnLx1CmSW=C&; zMg&~r|F}$-Qve|2zv(c@Ai7bx`#`@1+GwTzm{%BBe3pABVr&@Aq)}sE%KTg2Y#}{k zyh48A8_+6?=D(gzmQabmbIxa_~}{0)8UX+TubHp$6!tY*6h6?{}|n2`e1UbW}9ckuq#fFqn@TL zW?~y2wv^S2JY3UZ4~jfrGz~)p z6nVcj@s7PKK$px~KNJ*<63)p{3qW*PI`|u{0#M#7U!s?qV8Fz__ke$T| zjWQv7Cf58p_1p6|52?=zO8i~KN{C(a4Gt-dfJ8w`+g5Cs;W$5!=xXEw*_$@G8 zM2kSpr>+@`wYUv?M_9Q7ckiU}H!ADh2q5PHnthL*6nESoMz9gJ*e#C)^~z zfsNB4`x&V;rd@ZCdipTyFR}jb_T)a*vbI;Mu1+w|onou^h&X~|$+R!kIIYK~O;0>^ zhE{w{_b;*gU+4`S!NuC~+fcybUmfI(?7wGdcUUc+-TN<^_}78@?{nftV~~Gu8QhUp znwFLPjM2Zg_*X5n2*)vW?_~K)K300{lbi^Kl=lnqj_E~9T+4X_lnW%Vq3bevPR#c4^P*&;x1jSFek|lOd%DDuD8|rr0H}Xdfl#y1AxEw?ZN^X z>BApIeCT0m)$kUUZM;wQV2-3%b&xg?E0{SU$?}=@uY&%$XCpVK7vO^*FA5dwktwCO zhs+;5N}YdQszas5(x$NSGmu`9dGi`}W?6nMz;0H<5g+HKved7WKy`~Cf5KR3cS3P> zL8I)<&!|k*1qZ44dT6af%W}yBa#;PMzw8VNj$GbXc4xdf+4UXY?#IYR}vy8X)cYbOB~by55ARvyuv^Q9i3FDQLn2yQ*2 z#QdHDz{T4Bn}FX83<~!Z+fuM5huJAm0^F1#FKy|h&K_WG8KiD-Pu0}9XKt(e@NYX= z0QhbX9Q48d_^x0Gyj+hVcsY8B1B%?58t_a$X#Z{N3Lsg!wEFaeirQOc&n zI1XGI&l9woX=UFq%XdN04lB!Sqj$a+;Yvnrvx=Tv7NHciOwKI#JVD`vM$}%y0Bq*_ z;l#@V1Xh(<+@2KQ_hNFTgISsOWeGqtE?er<`_a15+Iy>(AC-91Uj;XQ(&EviTWf~P zf~?R2DLgeKd;mnKFX%W$!&(!dGkoTB&Z`Blc^N^}>cAIi&04^a>dW#rEyw_-d!?Kb zUm(;m-tcq*Z(>aSMqV*L=+C5sz?`f_o12C|Iup>raH1V_8SqFTtya{o_)hW#Tiv!Zat7^q`TnG!vCV7PITVjSqAeggMQt?swuME zOQV<6MymQ@P+uLsJhOL}j6Yw@SAXALDjSC_HvltY!qgrTy~M5)N*Kt@)sW{6&(wr)*Cj(qo4 z5Cu1DaZw@827bS}fMEqEFM$6GIV&dD&gES<1GKJ3ogshg12RqdVwW>v_C?(_rS10& zO6`q*rNpjT>e)ZO17uBp3$Lt#|4`B~fYYFVx3T19jVNGK!#uNl6i4(o&MC)}*9@+` z0NlMX7r|!$n_)U5j&e-a>kRX506A*j$)zUT^KX0vAXD1Lfi_r&f=DA3S@DmpWc5Cj zs9Ji)bS?=ZLd5XPiNBXrk^5_WOhh-X8YjN6{k>nOY3d8ab>{DlYL|24+#qGa^wb2d_>6 zPvYiVGp^U#9^l91@cKJa^S4Ye8L@V9=O>RW)BT#!R61KK{((IwB2t90|H7IlZ8Ko| z@wKIa#)Cnue*@f2vSR9Cz4lIh(w2dLt)}TDX{>#Q##Udtc6pZ|#Ui%(6u|vTC(-37 z)i;$m8%74erwH@s*(z`<<#&pwZ>JGL$H$_Ez31{j1XD9`cZp-boIX zJC$`$O&|4Bb!0jxd>t}Cb$r%Aifg8NuhL6XAU{b(HYZc5@AmQyTZBq4+wZ`Ynmnh{ zj5&38S_BJsVs^feVV2z@!xg>Wf#!_7a2a)q_%bPOlNg78LNAq=@-RJq@@aJZz!g_4 zxlOeBD_5~Sb8)$$t50)|19P8|5|ZkX=|;vD!{*0S(UJ_Jw$5ppHV*5C!UZeAH$;UL zlbGMetStKsC0;p;*%?Peb@|# zNUoHctlx})BfU5)ciEUT=5IinSt03bDFcNEeFL_v z|8E0FE7&6p91$&d0`S{WwvU{&>n$Hrjp_O6%#Ib!lCpVN+HaaXM|-Ma8_1@b1AQH~ zvM#@nsCi0T)Q-c~>nM&=S7S}1Se0LubpXlMLsNV3zXeEXm0lF4wx;RWtQMUDmbSD- zO=QYXFijz)X8FRQy+tE$?wha+;gmdTwAT4R65Y$@@eE5tI=g-03Ga)9xnQMX#DiT#ksdJ<}`J3VqD8oS3dj;tcRG5pjJ^?urZdhT2Z*^)v~i$LGWFqHq@r5_mrh9;IJOc*D7$@^#ChgVQ`|{qXC^mp2Z)!PvPMm42~} z6R~!ZyH2izL3v-pgJKsQ-=C20#+#l3XzyJ6DI4Qn6AfSs64*@K|GdA&kh@AZ`Qpbc z{{WQfed}&+1~`77{vQ?mWu!IciY8-iog)H#a#yDRhaUb0Q1p4sz&Bb>p8~51#Zo)m z6Rzk79TedWx7uG%AJK;CA~v%R=Qb!r@x0{VQp1;_wWB0rTdSA1U)g`)`zWKp(@NOm zlPp|=)Sdouh~l&kHeLAE8cF+2g*cI0R;rePo;>a6vn{d0KD09?LiNElsZ2Ml!J>WU zVQM*qH${I7hj`{vT%ocz9(suCp1xv1_|iZM55u9wor4b{VkCkJ_|u(u{A7MTPh(IG zM+75ga2^oMWjVwzJ$=xdtcu+Kw1l-~dbW4%(+ShJc+U6?qDJQtr|G*Z5iP8w?Vr!p z8tiivjDIV(IO+sF)pdrZU_o}<-FCUUaB$^*y)^G3qw??@>EcG#Rw^Hf3SK0KI-Ihn zyla1VKEWIf%UUb($yeml2-}?GF8uZa=J1%sjKo+Gxq~m&Z^k@L6nlnuuKQEqQRAod zFG*~k!Fpx-V6ZZ0mfyXny+Mai;*f#CcaS3$E1W<^|CCSr-Uz0QdPZg>>aEmv$l>Bv zSvyXy`DAR2tzKSN(sPv%u0E}LT4=M~c*P(uEmI*|r~Vg%yfo1_0!}CTm2Z(Q%vjdl z0-Y!yooP%TtJC-GE_M`8^6TAe0U24+TH6Fi2mWH^umNdVqG>mJY0vE2=Nr1wbs!_ji3rcB=44rL^hVDih7d=LFPN{8{8|JKM4$_R7n z5Nlda>rho;o#B8jXc>H~JhnG?s+*hd`g-zX&y<{7`pKvEnrXH-2dUra&TYlD@PA_@R4ehjwADPJI;YV`v!vK%C z-Gi`}RE^pM@JKR*YXX+grqZnVZ0HK`x*XI=(bgnGd`s0Do}B`r^$`cAiO9M#hfdPx zp@Mg4%Wg||X)YipEweRNehX&<&SDHUfkz;IQkYbWDy5>%wfsQ}epkTq2w6454m3@Y zg4Z;cjGQ0tE^I(Kt_VU4XcVUa#$UBMKfdEic~P^L`K(;8Q{~gvr9LE9?v0+1I-CO8 zGGP}H`h9Uh`E%+kYrtg?QmrI~w*SDm{&R7-tbiQ~`rfdgv%#5)Z~{1|5}6;Y`_MGS zn5d21e1=|~BLbn67fz#8m>NCKuyqkZqXsMsmnt3}tBr7R870$prlIS37aS#~vK=e% zJ@!ft3@W`Yo0BaYkZ2@Cw3GQNq?=WyQE>tkct_X8VY9>&F#@-u^i}Y70v3=hz4$v=ldMU3alFRiP8pXKJu!d_i$Tlo`X}HRVqO-N;()!HzzL-1khMy0waX;lsq3>A^vc~im`sVmI!86-x z=f3zdob(nvy3b~qS&$*^>_P?*+KPb)?@{1`Qp6RKn z?Rn}kT>RaU_As60N_{YgkJLV;uaS$-OGy8kFxNud8TM@Ml6s>6oRwt8~0WlV#j#j2;x~_!pExD)vA@x9-YUt zE9>>2EBMcV2~LlyrX!C~fo|t10P`*5jyFIU=755^JsZ_2Zt4G`FlY)9;H4W*!!_*J z+#AU;%`W@@UY4m1=ei>l<-z>5ydrkH!F&eAN@UZMFotJ%^ovk6cQgJ+p=!dh&}s!X z&vzxqeKjkD2Zv#o+9$`SP217f=Jv_Waq6l`=O55` zqNvKN+D6{g_j#Z*@B@%iuA=2^MJ}q(Em*k%wD2x>zKvlc{)P6EiCb;k=?@lq4|uo$ z?Y)Qq)E%6hKg9jnz&Yl1iZp@wfmzSU(k+oq_EyMbO`U;I4l(o(dbphN{HMUmXPIuh zxUPKk;X9CtqG$v`sL-!vpJBQrj5;pO-xEmDWq=d&LtbGcmU~c)kmO&TGGX0qS+i7S zaxDF@%#E0wx+!7CV9Prlwb3D5m5K^J7;1o#NV@kF7_3Z4Uh9iKU@E`~N}b%tCs2Z3 zYr@jSW3mfMfD1~nCCu0xKXA@owGVwPuH|dUkO#Ov7El=f*4?>q26(^1)UNLvxedBiPukI}2E zP~%Zfl7n$gIi&pN#NtX!cQ1~V{oj*Y z19%d#TabPgKxw}PjoMD|Z-{>g#DTo^p|vjhNZlR4_>Y^y@y0n!W_$5?GwQ9~QMWlt zDCO2+)=}t9=C7?|RVPnsf}37eKZ4y1eoI4P4*OL%^!Y818&_=l(oR{`w*ItJTF&MX zmZ=F{bLOd^PVj?a^%p1jZnfgeS%k6U4-XuoiFk=~{W{d45W_p@sD=oFYtwvn;2DYX z9q7Lu-w$j>Q7&0M1@ePL;2@S^0*`i$LM$k|f_v!x@c)-|vRc16H-w6u7!aP*FwYdHX(uY8B0$tDOgh z8^s5Aox`hyve_89m;O6#f5TxJKw|Zf((YCLXMm+IyHV>zh?ofNeF@6VMH&Z$@#p1< zdH)35=4`qpxkh!=SRlsz#vnQDAt7Uq^ZoMZw>a@g{lT8?lWa6XwuHH#{4-yszS?qG z!~W*-Ncq6Wgd@2N({q)Yxk*0409|Uf=TQ*zlNT7e2u!c4Y_#US1*$LKGSTfa`wY_S z?%pk9>s@D_)KJC7g8Arfsr^rYTyMU(((T4X*8?B$Zm|Fw_=FDP8ayl%93&(p)Y+Y9 z@Wp*JXmm^>VmWz?8;tyx?xBU7sCSsb`^GRNOag-1I?t2px=E*Wt;p^xT;4neU;XEW zIHLDs()ohGW&b}ouIVk2edKi$Gh}v$dLV4BHytoO*O_<<06B9So55JTA#8M1w+b;@ zq=FKKv$EM2;n`DzsuK85Aeti!!@p$+>WQP`^2XQ*i`P>v!Atgd+4Fepr)EaTF$iz_ zhPdpAGj%cfSLV*&l~k+Wn>E~iF*V2C#>f8;y!Z)9Mp>PDTNejHC*)z++{&_MacT- z%cv5)_%(^c6&YA#Yp9jnW^fUB(E<^fxVw)NnlRR5ud^(Xy4yYte;2`uxy~uEhe$gd zI>&1|bzNgxDC4GuC$Dy0<=ct7UIMA-Ef1=|tuQ2OPT1h}k?lK3Ku2lhi1>JR~7|q|^TZ zkjb!TGzAJXhx_QhXrHAH%#oZPavf?(QoAV!-ZA0pSr~TQhwZD#EBBS3qb?Or{#6#S zgnY+s_7kX(XP&#+*@}kjA(C0MBjT9-2?K(8sZ6V{v&}viTodF*BNj2#l87_Gq(oU{ zQm#h`tByq?YQZ9$gunJmMy;x$dRiPh1wM*L?ISg%ZY-4r#%y*^IGxXNKwPvMmVQZ1 zqLsiQJu1ibIg_sR$XG?${VaST4rJ_wTfm5iVDaFhe2Q4ZbA1_#9@+HVlOl3c;wZf} z1-msjPU1yB1TOIdjT!AEc31weG91O1vqOfkvIWPTQ*WdmN^j9VpdP|{Uff5%fG$gp zBl&iFfLe?TbNIen0=aTTvfu`M09 zwQ*fj;t>3$`dp^ib;(|zd{#77xS8=cOFX-Qwvv-_(C>TM?ahxLzIBzmE+{S9o_FW+bJFT1ZR_F`z%|!C%XiDm#PuF>hbCmkgIkfyxrnSESubsZ)mBwjlG#d_;7Mv!MN(~1QB`euToQU#jn3g zbFI4v(fY8@0&{TV>?kGd6Lb_sAF^Jd&iLla-$;?}fJ{ET*^rq=#Y}^I&l4GKRq!>l zm{}Yg{#trtcY}iF;avpd{TKgF9davT7MO3oQo5aW42GO?m*_2G4&jk&MT=NRy&zlg zk=8etdP+(zF^e%KINl`v_jUIjk~jS zA`4N-GMF_8-a(u(+-K6YcyIR=UL2nGs1kAJ5XB2mlZ3R#cawLITtCE=$$6pt7%`e) z5K|dl!Z%`$@?$$sn~!pE>PJSA-B6s1PQ2hU-i&Hs?-^yM%5h>n1&&3kD!!(~;7=&= zPCb6+EIucfg^`cB2F1ql%(mk30t0$edbySqPx0%)UiUosDb+{i@ zjl~KI=U6|kpy+Ie*f@D(M-9PxRc9zxe;9w?m9=>Q0s?8(-gG5@-kDDIx11$ zylk^m{Xg9fbG^YO(SuzqL1$&V*BAa(Y)EPDL`Tyoi;P`{sbU%JLl08xsGQRtPCBFi ztA9EL)6%kyBo%Nzw*9-4mtJs)En_&L6i#an`3Bhuy4{UuuCG+ovc+5`j%D75KAl@f z{))7bb!AKvd#Av%^N#-~1`GRIb7wJL&(~fLwdQXOWCz6ISlc_3iiI~bBDqXZ7gC97 zcBCeJkp6Hvan;w@?0azNp&b;Cd|D}<8$Vmyn^$jP7ekM-3c|}4J0e@Xy?qMY$uCtj zuC=yRPL-}uDEYf}oU0V~ZEI^@{ZB)JzZcjTM=t0QhOJzzC~>vs-wCN(A`Qfp5i$w) zws4DiESEcKWHF!m?=0%~=KozIS9*F*I_ZjRw~Zi{IG>&5>i%}ZP$Rqfw;2%rX^f*3 zru6i>&(+0as zZFIuISgp~jkL4B#L&PDf7wu#i2EJZ$m6H7)fyJ2OoYGGt%N%r@Up})y@%;QIJL6TK z$3a7i^aC2rxsmAG=;4B&c@qv0Y-vd1)M%IM#HCee?tZRWBp>Jrmt;9{UBpi{4MQw} z$?a)o>*K-~S9E2prI(x*w+lP+sjsF3uidTR6w7iGt+aNfwUNC%1!|k_4hA^--d4<% zGM~G>?F!F@P+ikTlcz*_3i#K2&7#~=D9K*Nt6~kbMILYG+vy{ga@qRV$L3htZX9L( zlMG2Jv<@Cf(WOccxrt*3F~=N!vM>k7=$|&4V0*0fQH=M+>$Iio@4ni5)f{By6sz{D zXqgq*@{sS@p8_}AewwUI<;k1rBmz33v3I4|ojNZb;k^B)(^FhcEgcMp0UH1AtlyrM z@^Ek*Cd(n!EkU>{));K!=jp{7AQ00?EcFOAy%6;I^V3&B6?E+H=cSVql=?TM%S9^M z+B5x}OrDj4nxF%rnW)OE&UN@^`GhNdG)_3Bi=Q?uc#exDAWVw6#||sR$_715q2xqs zRSb{B0j=bDw1B+C>kQB*b){e4{YG&Y=f0fa?oD@eE7o?o51bICtQZk?pVzKv@4UgK z40vi58h-CF38SJOF6bR{SkD#M72(wEiAcQsak3Wahn6DqL5V9C`WPvCwk|qMp88@2 ziMd2Re$*^z@!i}Mmdwm6`MJmyKB#gB@8186kr|&|RkkKXwJXq;WVQ)uW8m`^%ExAZ z#w_Q-UDq3Gp`26FT~}6;zs8Cy&Puk;re^UH9a&UUtzGV4Ek}P9axFE8MUMMc|Igs4 zuwIk%HM2!bnk?vG7~x0;%_FEn($G&XPwmCEGavwkHP4t7iR5i^&cso ztt*-Z>q(;sUTgBds`JJ9B2nP3Or*wzXtX-O8mO7}2aTsiiHFr*pBA?_b%5?Xb?z@G z<^ZGh_Y>|VOL0v2_tJ0Q2*x;|`JJ2cg}FLs|DlU&tNkkrz?pM>awgeo{d{F5F$_09 z;ab9zj2H7Y-skw~iGfd%%{Ef+Xu$1cd_#$pf*$xXx^DGzuy~sUpOyZzy~0oBe2^iv z&48C9n)T|>?MGj+_*wIN^!;PQ;UGFAgwcImZ2YNh%=s%Yh(~D+y^FN8 zm-SO8VVbuYnhuw+gB~vZG-`P;fc&mhv6rl~uPm9B4e9rU!zsgb@s2xw+D3}7m_}OKT?)wyzq=PdNP0W z^_&OUusdvASn>W0wx%8@G8J)8js&=NjgSW(SKv@hs~erIcq8uyl?glG$G znA)MA0>|S(&bkO%&e>nR^vqNLmnUHqi3xu18ZVOWSl0Tw{Ni%>%Aoo0k{n_%d!@CrbbZ|yK6smP>#P$3<<*!pJK`X zJrk9p@$9MiBlGa363j`0f%uc*T*zO!sG*%d$O=-t{9vf@pJrIky#$wTH)aw*o4S$u zvhpR9kiZ@K@Wd>2DFsZ*!KTnSk|0j<1(7czPLhsME7*7uAaJ*o+yr@A4t$N_=)irP zDsQGccAGAR*c~}vv55zr>6JD&^cQ{opqHqw!v$cEz!-+&%%Y{dmlG7OC&fd*&tFTH zOll!FV&@U)iGi9N=r(OwLL=%oJIzAnX@iJ zKJARtv)4CP4-o{C06jqw*&tZBnUwCz9AZrbKL^&^H$Ny53YYS|Q$N>twjm>|Z1I>n zJ0EVtJGq-72<)TlbjJ_#@Q#~{y0lwhmVI;mG%#iNv4UW+EO`~Xm+u&01ecIQ3;cD` z;nOT)RQ}A=5N_5RzE1r^>t~ig{4Z24j}@JBB|436iMR4DV=#LZ`V@#H=_$dq@%selMb-4->$rn*d?yNS)oq3WLJi2Z29Ula?$E|q(lCjQ$!^jwf(>_P zWig;3Frm8)!J9+~kWXSLJVawnbSdB~8|qll_-M|0lLfcO=N^jV4u{Iq431qhTpWBQ z)#`kLtGr*Lh)y+tHw(zX+c21+GksL%8vpHqEV_mH_;9ekOE^VoJWS)cM49n^f{$}{ zZCpPM98@tLayL>jzfp?0Xn($!FAbzobMvEw<$7m&wuD&} ztmSQ?pq4py*1zw6+-yiL#3{LsRFEziEERGh@IXy6ZV-dr^t!&Wc;|yt0HTkxI8Mxc z_Yj6$Z)clo80b+Jdziv}r`4D|EJDo#PJWc%h&0gL_o-L$xXaDGs@@XflElQA3Dm9Y z2GvDdC0PyEr;%1jaqFrA3}Dw8mp$T+I2YgVoQZ!@YiIn;3Eniw6piu zAz@+RV8MS90*~`QB0@u#!z6;nAZBFZN4+B}A6j^Wgqcsr(tQ(#RN%fg_=IAL#lr3R z*7>{bkY|r4P8cx6EqSsVK34t@4v*A|$|zR|8#Wfn#1BH6n9)joA7%(^)mMsD_TTXi zwN867k}}f0km^^We^Tn+jy^%QMTr)VjdKE($3mPCH81j#o)OZ^ry~+|mH`zEse5bF;tR9`Yg=rG_CsLT5nMZH$*t=D4ld^rlUz>Xlku`?ZoUCs5cvxv6vtN?5mL zDq~l3zS2FCCEDw|Url|`vrqCDhBeXlVOB(w{TBlLta7@khgt7iYMwLV*<+Gear+T& zQKd~p6)=bza&M3?AyK}YeMg+SUmcao62Bj|;~hS}{V=4*aa^JYPsXv?;l9|$Gg_C> zKau~IU+{>3{i&X`vsrAK&Ioz+oByaiW*NW3pp)nJ)5sAqSUkKW|E_CSdf_w8DY&19 z#q<8=!=v__8>aW|+bHX;5nuPH@kK9}n45IIT5-ibCe+%B#N>XI6=N45IBP(6OzXYS z5wEE=^{@f_J^EnHlMfao&-JU?ArQ!t0+ZZgrDU5zG&af9PZXVTlRWD&2q(b%7pDNG z0U`@`lv*Z5Hhuwor_oV0Pg!7b6qi%?^V&MJloyU|srMAQ@otzuVg5|Lei9jqShyWg zv^YMTz&LQiaKKYDLm#*n{RM$m)nWoYo|JJ@2FWKC4uChg#f#ZwF+$MX)YkO6syc#5 z=VJhQQznKJlUj47-7o{$h-FL`f{Q?_NILbd+b%zkdS4P}^qS2#li^9Mu-Zla%~=t5 z{4XvyR%JSm9lx-=z~jJu8Cm@v|WohcvPBl~e`ZB81P^t%CFsL(;v_8x(;(oR#`OYm~Xp#z^!gn~Gyk88$ zTtd+%Jv!MgXS=#V$9wvd)jl_p*VZU~`Ia*J0C)*0Q?L2}%AEI^(_LO)DV@aqYtQTX z*HK`+J;rWbN4i#V4+{^);wdf5t;tQ*C){Xny)sPXFO2wMd4BTs5DXvpAe@Vz2 zs%tP)>ur~cRAkwVP!m4tjyLVF2D>dIj5EHLkzKdQJ=2SN;b^L4Jr;J4No7k+0imnl91_#j)~l(CkUz7 z=JGsD1*JCnf4mno%`s&$>(fc|s7chz7faP$|JO{9v{U;!Ds3TT>mOMHRw40F=NPhx zCBbHe)%}G*ftj^y7Kq;^=6ih_L7v3D*JzD2=AJV5Nn%B*{ zdHXT)=A^Bk%c!264}=g&Nc93X3vz;?7qgFhSfk}^<6(#Y6a1%AE)kO zUMlWN#b0PIQTmf6-{SJmhi(qhwAKUpf;PK zd>6bmb1f*Xvf7cE#{vxN~@h0haiexraK!VE1p^1H{)G?Gl%W_Sv~$EWevy9)BQU}Apj z8*H_DLhr9dO(lKwLhlvzlbejrv5|lC>>ZMOU(|-36e+RUXC3Qho!Wdm1otRPSVT$m zlB&5&5epwqE+MD=?8X}sM+}?+6Eo5G?Vrtp8(cO*4lSg@+hR0c-~BKkV-&TZz#S%_ zAI$ujwd8Fqc<(#4j_qyn5C$Q;X^w*-1%5`0@e|{l+}pDA+tV^EEu~0ld`=5tY$eN@ zX9n1O_)PtlfFLbjQN#7$GU8i~z#nFR?ge^ZOZ|{b^XZtsJHTt){2>7}H4eg>Y-Dd< zvBQJxVa`;SlWdDsC)edTE<(bCY@hccpH32Wf_p%8g;hlGM8EXS;NWAWVrR;YWsfBH z+cFdVcWLk|KoOTcA$k1RA?nBWn9S&M%ri_l7)c1CY?C_4mkN~@yMkR$v!8GZi0g3F1_v8d z`7U_XhwmLMs=N4|WM-6nzMK#~%ds0*L*9kwMBJ_BvZC{qoc%2zp4Ix2K3&bY=<2wL z8K0=A9*JQgVKy2?+~()Sk55LF?mto6qtmwb4Bm;wvb?TbSR5rN8k}2NgIEZLz#p6z zajC6FdQ1b?+)F4Ws|81?DFxz~W!gFM>pdF3)ND*96p`xPg~8AhUj586p-hv}Ay#lK zrJm6(QO|eG&kwNKota3)<>;H%F}fCD{a)sU#03;b0em&m}5tY1~(Fv zm~^q$hLZYa-n`??bIsA00-&nnMbQ^!5asw+H^Ofssrl+a0>)Z}^Dxb8 zejZWZTno!4v^hRjNWK%@bbKu5#0=(2Ca>jrT@`QDz0KHIj@e^rgWBH}>grqqaRfu2 z@T6!yp@#=aH&e6`%9IoXPEM%1Ro5nuk7a%94qT2Dr&{EBcz2ahoItbU@A?FCDfwc_ z_^XC|pWt7t$cCP$?>yvEuI+YJ_!x1W8AE9GwS2Gg#f0S-j#B3i7&yuCzp(~3w^_Sc zXip#EBD1u(@D!|)O7-ICZ2^wtqPsTOZj+-)s4G;Y$)t;6-Ukca_`~rnmx} zo}9SeFKQ}9)a^(wnw=E*?nr!oXUUzkchXzVonmE3M{km<-+bRNEgyZ+1Mxj7^s1aM zamSN`%sf~c$}OS9Pf>MGPJv7(asQPXWqUC`OUsw#J3@PAm$SjU*BntY>-o@N~ZfhgU#ML)kh*f z+_eJ|_~4qbfr@^5E$CiG7J{i8JAUi@5uErgMzr$7A<1Xo)wM@dM2a=en_ntBPKq zJ10uK@~4ncFzlR1oLrN*w)YaMl#Gm%{&hra!`libZ42eIo)5GRBz zfu=F%#iR`(l&810W%pAyu8qIAwPSA=x?jA3yr1mzjsv;U=rTEDC|oAK1#+p&B$NE3 zTCner)Wv~pXw#a5|0TX5N|A|RtP)}VExo4bMBMz%Yt;LsU7P|7-JPj6Us@deva)t$ zlAn1WEle2n-YY(9Xer?x8^`L@hCYgef+9O!n;_Y@Et75p4sP-0 z{mSNDq&2iYuFuy_0lo5E7Ij+M|N0pN{2Li2gv<>ITb-q$r*Xd_ZXDaQdS=o6U!xAJP(NHv`~nm z6^U?#SoK+)i&{;+fs-q74X`!QobiAtk-IW zAHTHMnn$6ah9EeDM({}`Ydk#Sz35&)YkA8^m;!Hv9z8f%Vmok%*TL~OX@a8`0LRLN z4NgQz6*zn^aL{y5#6Nh}ps73jTgo5eFihXxOfUYjld1n4Dm(Y}bC!%XL_?VooSuXd z#x&k1kHlTN8Y7OAz`q>0kEgKb{U26eTa!^LeT=lNGO(<|%Ucll)&8K$S$2b6TN2qC z=4IAx*-yea5cBCM7>!z-MZEpLX#RR#!cVUl z2yr7TTjV=)tu}dV_x%+YQ{@s_W$bZs!@ZG|OwpXlix%eJQ8;(S7!$md7lVfsnSx-b zBo}|0w#DQF#n7W;1#S_2Vk-$nv7h%)lNijyGVt5FB)lnjGt&JTLY!H_JNoOvi^x{; z{$)`gjY@j;tk&sg5=eLoIkO~z(~Du)qWGCA5++znc^HRHOpLZ!v2ny@qsdWH#`10D zLQSGf@4D}`G&&y3El7(u!GCr55Lrx?D*2IQx{H+zI2|6%XD!-dK)D&+)wP z`M&2q_pb|kPbRb0tTnS|)^BFdOlB5{_E7d8?$YZQ`HQ;0n8|;;0rkCN4L6yc#Y1(1 zY==`UI_PTXq{bhTQlW7Mr9$67*wx;dvyOZQXXd#p*D%w z3435=uXEtG@IUA4RC8wXFbc~I1N0oKJE?-Z(J1JH1T6HLXJ3t$bdt<@bxF&wxyq+a zt7S+Py%fyr>XIc~n_at(>r8Qq2VuVj}U%GBFv0EYbD?&Ud_Jizh$Wk+hYe3GW?nfheh zn$1}s5Js%*{~l!Pc_f;YLN~kYGP&+hWOHu5mF~@Z2(CU@ZQRkJ#1f60JvpCLHz+5y zu>2i>^2^in=p}CF_>X-aW(f;y*DOVnoW@-)OC2dlpLSPM+u^uPyU#9yHk`84iV6mo zdWbEbjS`2=JT1QT3TgDA^U~u<@w{Bpd(nQOS4@%u$J&SP%}e!kukPj{q4#-qNNy7! z3HQ}+SFLW$>$biMtM@aO0$5*X z#dD!jrK?`n)GahU1TV7aQ1>|g2g*>l`XTG+X_z;^d#PM=Kb6Nw~eo)&A? zA+^&TQiUOpgY6YQHSP8!Jma?wwEF7*mr;6^+>PzUL`)GaFSkmv$2AA>nR2H;?w5TL z_n$>*Q6kv8Qzer0J-Neyyk6+j{u=H7l(4@@LioQ48fQJ>Uhgv5?D6_TQ17F0ksIVk z2qr1K$h=+{+a&*kB{(H1rte6Q(8p`%g3Oi5&((t4)UhO7te$x0uw_&hoCo2Whcl&r zwEBE~YT%%Y#6aEs+ts31_rib><0*74>0{#{zb6$+G92&c=Q0b;^9_5D6?H$-lZ znAXWRSptHt5WO+I#!Fv|&A)umT^(IWN)f-VbW2~Kx=N8^_oJl_LmUMcU+_5|lfdUU zaH_@&8?u9Fqdr_|-qxTRGqJL7dgS!|2M@gRgVeQgp1KgRrro>qL|geUo?e(x)`v`| z5a-cMF@7}) zC#tg>Ge^i)ih*7AEXhZ6o9Qd0T=;)OHq;s(&GaXY{Fm(iMcV&s@>VZ(*tLXsg^WJs z4T9l*X~}_K4?ZpZzKY~d)O3N)9^x~gHRG8NPrg;j-Tk{j7a7c!R`wW*A+x;D*#T|W znU}ita+IgYlsro?V@QbMn+IiH@60!6ah3OZ1tvXv#~Ixkeg%g^Vsn4C zWnRMlv2uv!2i?=9yCo^@QTmf(w0-xZ^!>8W))*B$vzNd5EgsvgWtsE$o!;j@crEom z4YsSgNMd8+{QPC#g@dR1@)}nU78FKrAJ_@fXg z`m3?uqS>r@Xeord{h*OKQuY!Obhz+%+VXVhkP8KCv<0bK4^(X5IRC@~gga(uHM3Wj zuLNR-J5d_qeWVhkD#+O+T+L$vw1er^63%7;pj7P`juSOw<7T+ z$T>sB>&FJHR~`+E*rQT=CPKHnZly0jse4yQDObHw#zyOz6f3W-QBcPFU?gpMwf~GC zM!zn_8(L4{8xP4cR1^VG6feT>Laq+xGHFJzyruufuXwYd1K$zW2uKQlJAq__DA)h0r*h+U~ZUv6ev< z?2Z|@D&nG}a43JwYs=g8ot80@88qQdA?6plWBsCeuNgV&GN#e^oT)+Uo;yD zpB;p}@xLZ(j!G-iSps><4SMe8F<4~oXoMTc>o+o%n@c6;Th29^MZup=Gbs`{eRrq5 zj`t93s{9PgnG9t(=R@w5!DW}l9c@xCgnU=){SHf)QLQ`py4Cx+J-^x>1VQ^VOM3d`vL2_8Uy}4$_aw+WI5((2YQFfl^^N4 z0wF#Gi))emEH)=c^UtY+ahNgx{_|1+gv*dCbvB28=(O&>4Seps=N8i}Tt53}umjJ2 z8AyjQu){LQUhby0dqC2}CR_cy%!wYS>v0df=<}aJYxMhReSQt&|A`e;1VN8qpL%%x z(^y9U$#d(txf>G=J>F~^I+aA7(=0k`uR6Iu?(5JzyB5M9_RvyA`he?TxLxhoS-|_r zc?Hky+D%TX{Lq=TLIws%q3+|?bqiGz*+0=PZJ!Hrq*D}+=T4^z-Kr{kJb0=fYoPLz zF7eRunMmzxTz>XHYSzz{hFIl_OA}TIB@{^1ItTbKq(5t;5d-CvcX)@O4wE;yXGj#G zEB%`q_)Go$M^O%S!BDuM&8$&Q!RbjAXYl!rO-}is@!b^ChaYb=avJtQjuCLIy&<@H zN3#){Qi90E>L9Fv_owF{A_%<718Xr+cvKalmfjD8*=v17B^c)~h)dY7F(@uPnl~mH zRljZwCDd@|wmzXQxv}jAH`?!UR~|Ox&{(B}%7>x_#VfL-Hwn@vLswZ8ZV3n&zsng$ z?V@tq7OzyZFz7P(` z@i;*_3fefIUaOaoG@#FQhJgmV5W_41K3!>j0ibSah~||bjiGRP#!^B`7bOc{Af$rN z*X?pE((sssfJraIW-lpehxJmqU=Z0&IcS~%-O?LP-RHroQ#Vl=rMwl%FsY1BQeFT zCeN7fO6IW%n&GPBG{(m(E*P}E>zx`cbSlUcPJHX0zLuCSJB@HFf^uT|>|fT2k;-87 zavogegxviM;4^3_DA;)09jI#vYN*4mXjvB->5rbYesBAyfq!baOwuveRiaNgx3R=A z?~IW0uPjhE7%ruXXH62r^4_fhp7)uCXA+dEnjjxJJ>ScUr&}6HYN*3~$bP{za&2Zi|>F^l`?I;e+arI|YJtW8}# zbdWft^uyA__pGfBUFcq0qc~P*09R5sn}!C(y;qo3isHx6R=pK``oEZ%wNycIu3V_dJCx?G2PjHIx zyWr-nzTY4u5e?OG1!DNd!|;C0Kf`R|P4I^c$!W$y$OVe45F2R~U6MBz7p{ z8A`AtCBj@Vol9X>?z|SzDuJHD6s*rC7=eg>OMh>0kw5DZ1;(Q(bDpJTJ(@{CFxy;! z^Kvd~RS++Y!6Kp&5rQ|%)R}tO`H*#F&I&l+eSO-!Q!( zr$_Tj^@3{D4^%qz^1_8Lusrs2@mXtThRfB`MPfJ!COF_-ASIg8aB(t))AU7Pllqe8 zs;@cR+)C`mRKDYTLNp;2E_jlR#8qz`zK|KkRMBptmnoDWTp@#IB7{8rRctH+0{sN! ziybAP+TwH*N`-0BWL$dbD-?O!+c(W=i2txAk_CHM1_y}GhpqQPV?Q4+w|S%>aF8u zLnbH5lHHV6`+n|u{EXb{T1*d3QIN3cu_NTfPRY-tKheHakg0J`_~$3){RPGis0TrP z-Ly|_)22br7r<{3g%1Ksv_R!c5QjrU%$eo-Ah-OmS}#pr6NemXyuNYtTZoGzrYB!T zu6ytV+@$(#cUk%y4!e~L2nGuylZm2XW@979uyP@>rn`%dlNtS{M>i5os$Y~{524{r zGJjF>bB;UDJynp^tQvA;(YpU~o+0s+!l=D1W?b3w!w5MEfaCv-dy3$5sJ;J};)3BIvwMbjsFuK&kxRNqV zVd3RT=&VQojIA!g6R5$3}2T zQ5+ZZ=~ksnYd)zIs%-D3aNKg+*CE;IXrLla*>h47m@;&pX42qK1IW%muEoq`}@oRc0@7sS2N~6E0>u6$Zbkq^TtDM8xlXj$c zqTTWp5!l83Ff0yuvAqE!bgzzprUYTRd8cG zJb1GUWhl&`geWahOF|?t+^c?Tl<2G@%iQ2n?4E|=&rHKWDqy1@7Q#lKXaVEE#aMb? zO9Zw}hKJS14~cE+!Rrh%rcJw4kCvj)mo#z4{#$W3PmP>^ti`i9r%qmT9618rpCiT8 zv%!oYiL)r;^n@JPfHCcfEuv4tWAaZxT9CVmG%m%kxBO}Vzkv+B+p(e74*f7a+Oz8) zK01SYda58hxxe%)e(BLo+yCe`{$K3MUC8`Vg+MExPEOH&c^Mdty&PTBxQryv<3D|5 zxShI4ABK4UNOAH(>^+!}3q$nNg;nK#+IgBoGuKY@S8n zXuSH?+xL@HXAfR7ItH#kB3w}@T^JHQjjLiTuuMB!KFCj%J4ZZ zl;;xvQ6%uy!z?NsH;NKM+ybB|sB}gBmaqaSd%dU(dX}Ph%4FI~UJ)ol$(QBhO($Xg z(eF;^^-9jOi8Pt?>diL{a#t?15tn`zwXIz=s!nr6>~vqhm%pvOQb}PhZl51erDAkK z*!p9~asIsSKAt1+LpFtC6sAx-(r}XJ(d&koj1`emgVuxUx5m)gvGBDR zx}^tNB4nO$oRQkJ&mrY1Di%hNL9P~r=iG9BvEi0Eq`!b zBfftz7HGyp|hgfz?&GEp2Aw z2#)ZmLuiNDSVo5UJ0H1VUZ6RG0SS)CsC7~}@yhDu15EM!ZOPv2?NpR)X$yWe13L7( ztSGKF!^{;SVEVm&xvK zk~pUsyL76Ifp|8dcV0lpOBQDdS-FsEJd3_GStvEjMX-^Z@$Me_2dFb<0y#Gep4s+- z%^?1Bp$51qjZ*g-Hr)jOQEtYf zvo)~w!ueIFe0=->yjPRNq{HZwY=v%l<%tUZBw|f#Alh{iB)xYqhSSjvTWHyE4^vlU zEOiFpQqvc42~BWI@8cErz7NAIwzVU60={M?bQ^YMX6yMX*LzxKqUk1xE6?}!BD}N2 zRv3-(*el5I)+yn*La8Q(DCU(=pp$|js;ffJ7FJ;M3QMpWL$F%mX!~gRVFi3$DN_nu zObe?tu;T;OTj#KCsZye#xX6AIDd4fr-q)c9)OhqdH*IYn8&10jRoH@RS_P8MCz6ez+;4Qu&!LSt(TrarPCM&n z6DOg?Eo+nhf6&iQLefj0m*K9KG;tU8hZF58?o|^)pGG6(+_o>;2$2*9jU0u(xVyf# zwp}(tQZ|uVhdyvQs^Xj*hhA=&$W%2v8`R3rsXI}1eWL2>Be?5ePu@#8@`5-$f`3piZ9{; ze1cS?l6gwG9Ge#H%bbrW8)W?iQkvMer%9<-nZo)9!lRXHFS?RIOl3CTA`+@JM^q%Q zgItXmGM8xD;5fAOmb|>l#TOz~1am(aok<0o0KCt(7mm<+jmXj5Mw#W0mPp0m=gpCM z#;nEd%VLpMdgWEQ9}f{{q-?&VGTQr~W7WOZI>>G<&$ns};e+}D3)2^N+Z-we{Awt* zEn2jmNZ)RYcW_I*=4yn{=!KU%iy98=dOln9iXIV@;p%f3Jb5xk~Q31?oyEWM^lcs8U1M{Eq*%NlK2EhL6SiJ3>N-l z6xVia$}21qI<9FrI%N&!WQXD1aE@k5DZ=`6;nK%o4^KTkT0l5?T2d;O&giv#&m_8)Lbu%*e>tOL>WJ!=?R677pCGhrWeC?JNz(0Rk5l3O{b%?v}SQ zN!@ZYOEh)9`s9|`-2#~jg2vi&n(Hej1lY4DuwZAYtHAkQgbTx6Y3 zHDM$xC|%2)Tc1C81ezxuyTjP+JBarqpJr{hYi&FpbU{McHS0ys}vsz5#x{(d?qHPwpgG^ zrtqi;>|Q0sX<^*mdx8R*gJ(eLX{(QE#W5%OaghYi`YhD(K*!MxC1*}{nTF%ATuM{L zB;0X2T)8hM4={K^IxNsHEDPZjs&H#WzHKPZD3g?94(G$MPIwL}byN&T_xqiWWr1Bz zuTdYDHybPwz1g&eDUwN{q>-joJ)RfQ%huvAoWX+Xlugvs$HHEB8fv*g3^^Q}h4b~c zxxI{ag=KhMai0M#rgMpTIzvYU#ERXw6={uQc^L*{rVCeLf&m6{ipChdc^&-hJ-%4)@MrOimL9?! z5P=Pc7m-(a>W}SJfZfJlGHkf6?cievX&+jq?+>3nuYF$SG<}M|3;*_-0Sbh4f;kqq zkiTNV#lf%R-uRzxC|x%)*$?dU^6Y=TS@IY`?l|MPWPgt>mM|=ixVBAN$k}J+zcofo zlEa_=V>9wc8-TEFJR8*?=aU6-K}X&XUH$m-%YuY{IKfy}=UDMgTt)#opLb?mzU}}J z_OKsf0?LZ>i0BvG1ux=svh!DTav3Nr-LX-3)4xoZhkuzc@00-J%90EWbMi`OjYv4J zLd7k3rnsGATVU7%wY&@^~2LgF^vV&t0pzQ9M22Nl+H{x8DgYKh(}-5BN$jE zwq0JEU!EbZNxGRLUED;MUmi_=Z0_m?*($uCda;`4fucF3|1lO^_5d_YO^77uVNo%0co%mhCYj|*B8AECsSKaC1YOi4aE^UD2Jm}%lg_#v-r z7tQ;4*2ia7IoH#l)d45?dw9i2jux%pZ~|!r&D*CW>yzqh{3nj&bsmT>}ov^!fKreg-Ux zbNO5sE`M4zBvfgfc;y<@*rS*_Y19oy&%&24hL5sl99zN?9-?Ea4U&QIh0f4gouFH1 z*VeOU7L~7wW=NaTj#^IS_~L7HE2~SZ%+?*@;#N@b%_U$w8Eyf5WFzi$-mqT9X8_$w zkq@v-ARNw92y3}^T}xK+sH$XkIzHDjbAF6jxJC|ZEgs;ZKFJUSK|*T%;2y0lH50_a z(xPi|t|r-8^7vx+=Pa+Aj|P`%2NzlkTk58;W2*=i9!y%>?k5sKmNj5usxFGa7NH*@8%i4;U6JlKOO8-eoX5aSE$ z$(KXEb6FfTwaXSxpFZ6GaNtY-%b4cyFmwdXAS0b1pS}8`EaKaGl8s~olTl-Z^u<=` z5#>w9^3ul&y|E{NldBSg(jI6EgxXo__cz7{1d;BsJbMHne1+uHr)M`M>UoKy3NrsY zK>QhQzF?tn^R(d+nC|fEzlPMmO85zo=@<+0(zN;L)IMp8E7ZW;6Y>L+n>g)>Lw=hJ zY_XpKsjTcBR?W>Xy`ou z6JhsP6^tE%!74_}9qSGyo0krsJ{Ube#BkL+8ss<_l~h4bAXCh*xXg&Gb5km9bcXj* zDpiq{nW?&DCM_xGWATKGOe4dopKe{L4f!Y(lbdn%JsQ({pJzlKy^kF zDYi}v21Z9(Q$7qIDD%<{ek)l4Lz$nVs^(*Qqy7AdBM@Gv zhT-X(bjXq`b3YvysK!e?E>MM^%Yv%+)6=*$*S9;?RT+YMdD0F8e|$jQ-!|4EbF?Nc zr9W}PoEFGqDBGTIwG}>74?hJX`4nEMOBT)^qDt-eHn8rNbKZkRrU$^1gsLkMR+=*B z2KJ3&Cpz25Pl`Gzz>90@O4fAenf;=y>;)EHbj<{8uZ^bU@lycPxDx8|AtSBn1125G2 zyRMlb=_qoLEUy9HnGYm)KSAp|-&cl*NRuCGE!tu$f@-PcQdLur?bscEPXITHT9&@= zw_Uac4EO;LuO!X73DW6w-K^&%9lA3fPI8iMQ8W$7F~JkmSS?FR>LM3?{UTVjEzH=_ z^70!Rs~Uubq_I$z3ZgTdguf@K#k}q5c{M89SLQ7{GL$4NkDfYelo5Q9(K`jMx*J~fiS!x0bTwZ3@3a0Kz&E|2v zz$2>qyfT6u`sYPL6(6J1B^TM*4+eZnah8v${RotN!+HezQEd=RX6Uri6Ll51>75s7 z68EfA&XSp_^X{6H0+XNG%!Q+Q4`%12b6d2v3D`)xe(nt*oMoRKhy*v^$sVFOBJC+wH zHQtxy-x$h=&7ZoR=6#Yo^V}WaX!&@H3qRKj-SZmq{1A-*25R9+7a7Ts2DHDc-J#@G0E>VhJ-h&c1wd-LvjPcN7(a zxrDxddTE$L7gQz5lX&!(DftJVR1gjKDYBPO;^_{f?2_^c*`EPj@3wXg;^e8w1RFiy zFKXLHnS`mF$i_{b?`Etbn1DE-xq4u}_`^Md_EP*)h59z*ue%~eNxzgL`^C|h?cKL2YrKdZ9xl=5f!#;pTt3mC-A;4RaGy6Y?nm=xmP1p z-(Uwsedp>$J_>1aL`O1M$e(}9FL?)nvQHnXFXPfsO0Gx&yrygs0)I922C zmhM18(Cwe%G&(tL@k&I=K6xr{CNCv(m zDYYH5Y-|aPC%~rtsKgWg;^6ALFU~05)OPS-TcWE|(4!0oM|Y8xy^W?TGrRh>P49Vm z^cbZ+8GvRi4rASu7>+VhI`GEU;0L>h@4QpIsY8-B#?Ez>gsXV6TG;^vQ@WU}x8k_ud!))HVo}B9A821$L!BqE`*O6iwGoO|LLf z>#b7iN9Exa?H~JMZl{h;OC}tfNj@Za=N=_AQ<`#N;7m?z=7W!D44X*A^&YUMDCH%| zJ|<>oD*n^OBkuIarRnlmh50lgtdZyH=-J^6bVvy8HQ87h;znKON15&`+t7pgU%AVm zn5nh2xybsTB|Ul{k=-e6(Ql~UZ#HK~Tl%~b+w3-x8h)l&)%6O&AD!xBaCe=~f7V%g zzWI8!V#vVKW2p(~r~OOH?;a|@>%JdVHCvUnaxsv2&0RnXnrES!-+7fS#Xi~E|HAOc z^+u_9-ejGUzMPv32|ZL2n)8Wxusqv@bmKi{SKJFc z82(^xTS9{8yT_C)2@OL6KmglWAUS{ub_d(ELv2g86rma1=?b&tN$mrhF$rB&xbZ0Q zmYD3-!wOc6$~?kr;*k!+2jED)L?fdE+7oiaC+9#8O@{)g(NukEi}SAy#JB#}j;1k% zVR+7p^tku%eu&grpD4gyYS#^gJAeyGoh;5g=yv;33q?)n`pja+m22DN4iG8kOk^$yEdyR%>ecew!lu&(bCAJ5&ps-Mr zmHh7Y#Y3k$lKo`!m`>W-oK9w``>LtuRHrgaA3axVZ7M_>X!sUMx(?c?{y@&8sXlzb z)AjxhsU%KX{7EOuEi>_0-K$H-XH>7YUvT#OIJCB1H2h-38%aEDa8;L-G})FjQy5Qr z=spa=85?l^02yUDK}G@!qh0*U`e@^5)x^1P61c7C9&JhDV`bsPk+bO~#mmZqmk}`} zxDOy&B%M`U$Prx%L57m>eZctu9n1FRP&{80ZS6KFAtBaiH9pQ=BPC5hFLI905~EcN zAel1mQzqduL2{Xp^lI0;-(JbP*T-A77mjXH%Z}oB2^FLkHihKU_n1~0S3^D0q_2o_ zkcfyD_l7nia%#P@2cR zLEO}c#F*?eph7+dWiRmP-TkG7M(+H0(bye!YKCL+oR8{6n4?{KS*LD!_e^s$N()?- zqtub3Yl4W-^)zAohC5m%&wd7oX%;t(Cym1zNk(>G1tIus%!%)1Y3?j(Vy;W0+`v{# zWzHe%nlmE}A^q~70m1DWoswZdFpMV@Kn+0i(MrcU7?Q6qmt|iyx_7*Kscy`7!cEa# zj`Lc6isb_xG25#rc|Pjvh&lZugPpcg*HM--CxH_s4dQ8UXdZ5?csB>lzz+kS9(0_e z(y1R!dqWKkNnr=ezWlEf>LS| z<3nLVs?Ok3iEK#3F~}j;9Y5bJr5m7Vi;FKLimI%EiD-f@lWsO zGV?9HWy4#LEpZ{Q&N@0QEF+{kx%$B!Qz^+gJtt83>NIF~g^iUVp5*PBNq`$Bbar!+ zFV7Hg>7#F?O}{>1&a-Nhso7idkyd1KW2AoBlxO33b4=H6Jz5Uqa@(#xha>zUIp;Id zY$}t6H?L$iClTai6+1l17W7f@yFik}yO^3~95-@o+4l`)f}|Tj05^WiZmsOOsD5Fg zFXXt5r2c8yx|$emz%V|M4W+3EpzR_|>{?T3KWED@5q@H9*&}mvG$`K`d>;DTQ{JDX zgC`=36(A5sUd%fGrdg1SjZqXE)_9+q9CBLV^=E*ge`lc-_bU|NN%pR}jW^QLV7EsGwLF*WC-RO=m z`z-ddm##Hh`}kW7AmLgEb1DJcSv!}c{Ne23F}NlDE`xV*2b2`lp0L}A=0v0)=?pmP z?qYjglD?0;ES#@*%EltTf=+&ebQ7eTF7eLS=Uf#_(C-{7vq5d0Pmz*5A?_#}q+r!7 z!U(L$(6t#J)h$X~0>(-=02sZ2mFV*cwpF8>@Gr$p^cKiu<(8BI|kjbLQ~ls@EiQaL_jOPZ6GuTMgtj zIUj?oV|c?-(8JMhP63MR>Dm&X&YjyNn`g&rambuh(lI*=5ta(~005AJxhNb3Slj{# zguT!}9;LB$Ly=BW$R`m`Jbnix2gZ3vh*#8x2JDfiLHv>7n$$rD6*Y&U4kQ2wd1O+_ zV@8lt+uyO`8%9{1p42(W_$`=xXRt_5X*B3vej@2^C-)6yh=j(m2wGu*E^sOIj8+9h z{b8OAa(;J!OSPAUJ##}^zpGM0k*y*pl73#aMvJ18seohojhWm{6&gP#UOT=#a=cv@ zSFv1}aMy_{J?So_G;175&&=p$fPEpm{KwHUTeyNix}MFZE?+&BF!VdLLB;J{Lv7fh zF%s{pR&hM#(sM4`?HWUDW+7F)x;a!>4S+Pz`C^@z$@=+nc=e_DRbRa(;gGssNKVTWj9YlI@h~s6pFcq(Vz|Jr2=tv%3kpPVNR3G4!<<|g=_7j}$o-U5#Les+>Fl5i>6`wSLuAOS< zE8wO6Xq+eM6pMz3)8W|r;+$zGxr{+{0{M<$G!V!)D`nRr#xq+&=^e*jtPM1shCs=X z;TBkz$_}cF-*tAe(uK3so6>M4yt%dSW$Qx~7h)CrEQ#qc@hFTWy9as9g3w+;pp)K( zp0lMK)%04kZR@hJY0}HS`>x=e(zsdUx*I&ae&8I#dMYi(H?T0UTFV;QJGy)+z=_27 z(MOxFXbW3Q8qE>HW+0Ck7B;ut$F=zN@j>Y@AkX@EfYIHvb8*5Ry}e!AD% z_96#)4ln_+h#vyCMU!ep^u|9cq*6z$0EMrLSmjIqKpj zwh0D;hpG9P{j92{xuEM*3z27p#nAcr5)@)J2F;LTxo5-r!^ED{ z+q4uSeS}QT@UlrvNWKG}gc@o#qSXR4Pm<$xry*_Z_j)GlcXeu$)=}?|Ndt{O_^bg zD>gc{2}&0MdU8np`mxnk8qP>MhddKH5FaUj-F&e*buowf4dgv)wCFx^vn5RZCi`J4 z*c!l-*NH0*TA*Q9(5nu83ii2@nQsP98t^mu5ZNJ_eFP9Aw72`kWWzi|t^d-Y{n4Tb za6al|52Fa*1j#)Y09?svt~o@C$M>c&Cy+U_2@se)J=W*EIdZ$MS)S@9ue#jNVG_8V zh1nBqEes9Y99XOPegxEX}|se$nM;D+wTDuLH1G8wt{#PY5hQGgKRYpgc(7=DhH*9>+}| zWzI9Y4;HLJH~;O0=o{{{M49p<_wQNB0D_+VLt~-b%3DQzeo^)&nnI>t#64R>VOr!| z=If+POtfXhx<=kDMQ}#n$ZW zcARw4ikQb9skVq&*20skmmPrTFL&^UX?fC+21knB_Hz|_3Kovh96LrckuJ#z(Dz|Q zAP9XY$~-mqd*ekG!3^~3$U0@2;~ddfS##0%ICZG?n5Yj%h4aNN@VDk(u#n#OrAc}( zJA#m81q65oCG&R-(`D1jp)Xw2k;zHKdx0VZBGmV~i;w7KJc9pJ>A%->XENwvVL!5g zh@chPu*Z_etmZBpC?C5Wvr?Wm$g8~+#-%TqysHo1cf6C$CU&VS|Go_viI&t>C2C94 z`XH16AkO5b?+*xeOzSomF?Z3@HA?A zwpcAS@Sz6nWOiAXk+T2UhbO+>EAHN&f?&naSFY6U+Q$QRH=Z%!pCJkn<*~d z8W*)D-g1lg8W2*%!AL$Sz_5#OyMZ`kD)BNjDD>!9$?!O+9mTd>^`bCNuxgnu%_3yX z@R2t)9j~LxXMojv3|4C{_QfsMgt#2*oqPhrjr>cpU=joRu6$`uiHlI;7CJN_b_12> zg(rV;P%q|r6UkzHURH5W|II0llh9=&vB{MSZ*5@hoZlrLqLWzAF68h&?_3*AY2ffVl zHl_ihyXCNH?)(_9gA$%Oq-=yU69Yx!wq6tq!=YP1Qxk@yb%j!GQGTx{WJyvo5DTNY z`+@rbFD~+R7!Fbo-pS?Lf|0poHOz)3%ybLwkZ*F018y1R<1v*y8TS`A&nQ+3FiY$v z=>Zq}8DU0o-jdD5f;PKrWM~k0#XQES5DtnIgAOR(v!6|0^m%-fIXM1Qf>`BOD8;(-#enAcAfXKzmZ3dfAMaPF9s@;vp z5RWl~AO+5hl7Zn?(v^0g!^e1JGJ5YX$J%kagDL$3;ZDvT3I^V0AfkP#>^|dL1;1{Ai=_1fLpCwlv9?Q ztPmUss(FEya@%z&ZUW1-gEDo3y4%p2QO{;@*^!A&d?z^t5Jg~$-I&>(je}O zZ@TStu2M3hDx`LxuXI$YN!`<)?zRImu1U0;-I}*nTba+s&DjHE>kA_k4a3XV#{OAOqpFpolV%IS)vZ&8 z+|kYD0k6FN7~%>88241ZI%^nZpOS#dj~@%2R$?zUM{6jLZF8AY%se>u zl6wt~zA3ro(~qJ`qZK7rpV2t4?A6%MsbqmGmAF_MGDwDUp7oN6W27Ln z6mYPCL_RpxIUoAGGnIbEkZPQ*29|GofYgiZX{rpd*vXm8?PBS~g)%Bz&zX~12%?L@ zV!{-;s!`YT9_-#X0g$p$^QcIY+vJ@9bjy)8&2*MRij9xZJ?n9qg@$XCC^W{RJfu%E zOX*z?mJDw~mDATiUaH65=Q~PbEKHiO>s(ihW`*3{qf|$b4%24dB_#)Xk$_Lb$8wNS zg?*Yus1-7n9r@&OYSV(mIjhE~*u>5biajKgX1`I4jqtG^IL8<{%`mH?PM84+Ik~~& z=<6rs$BihE0LBcLCoxCMP$UT15 z)@8s&24R}(=zOs$4cjRF2qW*L*nGTt)u`~$O{pVLDmT4lt2w`jH$znPQSH_P=B||X zyzyT3o_gh`WMFpbWG{`($LF)SJ0iY36Kh+7!yb^aR>0d2pkra5o2>DcAW(-!v`rmpBh z{8$IG9!3J`*AD3fbxJ1I?A_gw>2ZHf<}9a4dm0eAA926xAa3&#>qpw8 z{m#fVQgNHZ?>6tYL_hA)V5Xt&&(R!mwgA~lx0`Xrc5Vr@%gKsC{+=TL#6gUblwmN;RU)%Dj%N!*hN>H2K0EeksOq^X(uhgp{(Hr zqer+BvTVp21nlXqTrmpFLsRYXd$Fios;mD{ssYw|?BMl927mPF4YS!*!^=E(bhQvs zL6U0aAKtAzyrdfZ{bLvMULrXDK-+45ODvkW63U3U6(Tk9@DmW=%OUM_cns`6UIJfE zdidji|F_JVcnqQ)155j@oOl?16a&HV{#FYF1M58t!=rvH*6*9V^52Su!|?h;4S$Nv=d6Ls;MU;0l`f3jr| z0|RVPnD0D4#rn?Egc&IxbNGAs*N`va7aw7ze=C{os|15&!Lsk7ei8y5{Ugdw{;8kB zVfdpSEi)d(hx8>-#G@r!tmO&n2ZP7;J=>Ni9v{94e9%&Rf#`4hLpb`0mz+d*<&(Ex zBo}zal3hRh#P<&^=`B-MDQd~r7l{!wjyzwd%Y51L#sBpZBI^61a)9_1`pxh0#sBqE zC(?F^a2VdK_LnM*;WvZB3h@{|j066ON5#XLmZ@LV68DjW;T`ZbfN$x>e*5_D zg7KCZ*cu;^Zt!q#4u=0l>2X*T9y6*38-S&+r$R6Szle<^ip?m;W4_1uRV)k-!3beY zGJJ_?CTjBgMJxse!yEi1${A}+Q58jBZEqKMhVz<}Q(!3CFO7>RWb%x#AeszUvdO}~{ov^yS) z?$FY@gMkG)_Tcr20>5PwmPew*$=H)gOjvn&T0AVT7i-miR+Ok9ua?u`z4#OG;p5OrKsbuzbgHnO)2?TbVFaW`IGQ( z+0=W5f!zto#N&PyOKc{Th}OWEZScVCY}8-Ge#_>OXf&xJcX8FP5x+DOYd>lEl^XR& zHvjr?zOa4ECeibMn0xbhD7!y?_?pES3}%KHOAN-EeJ9HdgCRSKC}RmlLMo!nSjUpR zEZIr4*xHcnd&&|;QL>bzvJ}#CKSRr1-S_={e$VsA^Lk#dYtD79&-t9sbw1~O&ikBe z&L;IoVm6t#)ZFw~m;5vCH>0KFLkS%#nCKFIxxT517hu9=!ApLxL_bP1OT^3br3}&i z56R!uRMgvfu%zcO)2}k={%>l!$1ROLNOJpAY~+@jK_o4k!mb@5SJG4O^t8Ju&LM9 zB~GtzL*M;Bi9bB^^nm{YsN*G@@hRUM{XcF$r2i1~uP>1N5lYw+waFuf{>~}#!-Grf z`N3xR!=wMhW6bySMVsjQ?fS`o><7hI^amT`4-Zb@Cx6H$+c`Q0YSY`rnN(xCVdp(L zd@a>jgkFO5>#;F^s@|}%F)pPCmu)Pb_D!t$cq++}p5RmsToPJSUJ_`$%iem zXLFj*F)ecR-~x=%0}V5&M!3|2xD?TK#m!LNdpUbX(-H$nnu_~H3U`K8~r>u=%@wuK*_Uvgtys zmnk~tNSwbJJ93!g(qr-6*Uc|`<=PEuUj1L>1fd(wljgA~TSG7Iivt^WR-SJb)-TE} z;y$cu!+H2EF=?_Z>>1)7o*p{CYa=y6#fUw2jzNGc>7e=4GItmD_0!X|K z?s@-ut9nX*7)?4kf_;(f&IANi!J50?_abg4Ubuctrnvm@_FZ1{jz-pxHO~zW(*TO1GBmc zpL^xCzMYhAyBrstIzN!Xv_gXj7F;Cq? zY&14}(YL5o3!X4l5F~Ge{D1=6@#)FP?=(KY?bX|X+rVrN{=OUsi+f^P=A^5Bv_JCz zE4n3?icCA63>aaXftrU()oe_nR9BCHuC$M>r9m{7bTU$?*-&0?Psl_G3Wy1E5CbbI z9@#h4wpJmA=ecHLhCF5}Ok~<=Vn*L8rddP*%)5x4^Tl(Ds z7+fV>cq!_Jvili6efuCzWf}H^1xRm=V@4+$-Z_rz&ANLbc*%Z}a-56?go4rXP7E)1*fVxKTB5Ihmf_m$^R zE%uoF*Y{!dfu|m#6`daJzNhksV~~TQ;)ZQ6sWB=`D?@?Rm25{S_0)N@jVH+cVKog!-y{8QfS zO5jAcD5~m!)V)>&^rlUk$^dl(-vOfWjSI!vXS#0RSDI9}ASg~0hKVe6TW3&tV^@g~ z^0k{PO&%W+2rjUmCyMHYns@koXa0aMqpN6Dw%RH5p;vw%%DPi$;_nJfNf&^>yfn-tl%qX+} z@F_qubjs~USw=6Eaw84J&A5c2sOs#N{6RjNY=gD-5Hx503rVFBhVcoqMo zbi8Z?P4R-r#ry95F=oh)IDlW)62mC1HiC)8qyte&9$%!MI^U#G$<+q;(9aR}R^Ji| zS0KRP>Fq~~urChrB*Q!5YuM?%VEZHE&rga4kRV60rQw&-6Z3I;?9pJ|dcdv`i`~8K z5xpm2_w=@)j{OQhJ%%*g&YZ1p z>g=6xKDjM+f&B@rS#lAB=?%*6C``#<2o4K55VF9kF7i<0?llpzuS)ERn#)JX6d;lP zdbgGD&Cf^AS}`DF`Lm%|Mp0lQ0we63fDf6kXw{}w2?*2h>J2+FGD)x0Be?*K>uYyb zu5Mn*;+xbBLNZ#;Sb4W(b}QykmUQ0{zMesIICwzXyz}N&6a?%2N~=>RT>T)SXWRSv zE^#)f@L)jT-6AZYY=DO?f0HAVtn7&Ox``k3p%#rn3~FHUTjKv8kU0jWAG@k$UQK%C z6J|olZ5bWD#cE2qj#9^*WJ=~ji=!Bv?K-Fve*qkWetY3=L2(l8Z}{`abYx!?h=HigU<}V}X zLUuZJw{;2)V5tH{BpJ|Nd5wfX;A$3}OLl>lXc|70oHE7^Maj=o87dB4<+@Y({(;sW zbr&2D>pmc8B9o_i^ka;3PD&gqWEj(4+RJDiOPJfM8YO|nS-2jN21ErdDKBFW7X|DRCaZ%b*o)f+7^H z8!a*0;&Lo1#=J`LST|0RP#TLOmbjY;cjGOM;TSn+n(0wOrPk77L-&XipJ+ zpX;Hi5n06jUw|m8zynq3D3iQjXUC$nlpah^X-?i!{;`YQr)h-aNlS_O>N+b zH0LspgpX#(SWeQY?~%fr_L4J-mO{XSMS~Zd+k4U`8-6Mnm;-6Q=#3sDUrg@NKN{Ac zCoCjVpnz%53%`EoUH9dxMx`SaO*y5ZSVVdZ;mYHUZyK=Pd+#6y5w8S7Z`{q3{I!%W zYFSph)@HdptI=`e&T1>#^=GivnFuc*LDrBV7%*-QgL8sFJIj?G?f8?;=3fZ_nrZxN zr#J=n{Ro|z|rrW)+t}&9*4H^H8kG7)Dog$2%A&)XuHAV4Oc~b+1 zjtoNy^>D*g`ML8?WgKKJZE%QT4d54{*g{HRXe$7|jz_(N`YWc8fYlWt#=cgxNz zW>M?|eC{dsF_RrkDQrZ%2p@E~Q)RY`d@t*L+!8)bg@DwoNa3v&&GCA(mG_&OF2f0q zG|kM6oPpXGY^TwT!8(y}4vlcvTs@b0E9w*aYCVP5_&fbvou&(K!QcUOmdE82;bzwg za>gnd42G_uXfo>U3PDd%dkM1c9XTxO*E?YaU(eXBR%?i1_H&$ZapHV>rMwgz6uAS7 z)l(GC6dT#6RM7#JTp3m|9hsUcyr_4~^#0|_lObEC2H=~O3J;%)BPb%eJLdM_@x@#s zL)A>k1Wb6~u8a?v{}Z+fuT{ZFRMK@UBUxlvpk2riq@sEFa{;7i$0}2p9_9vD7V*td zWzU#vTb309p_@9`IF~8rw%TPWY^=L*$3eSo20UO|th>7nP6TF9gIGj3|@IWL~TzICQ@)1a0pAQKQ@_&p|}%C>IuR$bR=rT zH{84K#fL|c($o_b_pGE%Ut9%0(i&r`8lO}@i0p_Jj3z<77z+5)+|)10njoS;Vwu{L zzBlXC3&KUSEU9Ah@v){ZAD(O$ns|ehyQ>(S_Bv=eRv1XfRM+6#zTmq>pZ5UrT#O3y z$1Jh|WBwR(JHn{g3)y{HB@`r(Wi{#dJikJAk{rnp4NYz*)+QW!by5(20t8;h#$*JV z=YSa5`P!OU_&dem_TW(ttJmDeD{q|n{>E0QurOK^f=V!++hJJoIqo*gwCX4AO$cg3R3Sp2;7WP8e!_O{8i6#B3-bGQ#sbkD%k)(0-v z(CtZ+PCdd3cinl`A8_B_x1aTUN?Lhxk{)lRHXrU0pnLEe@S^bLFP=lD-|>PO9q9xdIRN+GXoS5(T`XCWGQ! z-0_|UQM(E?Yv84bz+K@s3D04!Rv_y8%v0Y?Lf>VG3P;f_tgll=uIc70(c43M?WQAu z29nD~p#Gk-o4pl7FT`w-EM3Eb7Q+D+$k0HG?Bm%~;4=Y#h-&|5j9@@YXD3 zLo4Lz&+1;7)%}UyUVbaSbOiWer(l_N0gim?0Um$b8Jshq|Gi|;olrrE!(KVAS|KI> zRe4flfl+J%WBx46n9}pQSx_e6@6OQoqLQ|+5VJqAkd)c+!f!71AHi1zGMMz9GB43LL>+o#15PTBU8|3JX;H4RHK^Yeu2|8LSCt(G^{0wg7DYqe8M=z00F&0t6uH8nrrZuIapj+0fnqU zZ+Cpxr#aX7WM?r+iG@SkY+oK1Co>E(q1s*vRPYo%&zAlFpL20T4Vop4l1qKcdHmVg z?bW(TiP(wALdEL*9;A8}RtO0rw>9-bz_;|6l#p+hmXmr{GIEzMe5S@xr7iKyuRn?~ zazM%9Aeoq6Cf79rlafZLU#GQ3{LHQNPu7A`EQgLAWDn#A2s~%U_Wit)SqXnX(5cA@ zyqV3UfZe~aoE<~AQ!08FeqIrHg;fYqW6y!(|8*ImK(xY_)@1iVA1I@Wi39@|lGh7_ zV@^wAcRi)coBR|DjVXZO7HvScCK>BMuBJR-xWB0yTn;I#ox~fHyGu3U4*L|-Ta|QU zxt(!QmnIOauO+9XBmfN8)&38hD1PsQGbtgcUWpjjq*a>h z_Gdvw2-F-3N1{*K@B^JM#>mFzIxb`flnB$r43B>_bOlUwhxGwhL!U^%i7Vxu{{0fb zl`2f5FHR*?4_}P`noioMu5t)ZnZKZuf5sH3WqwXPP8^Xi9U#g;n3Lh>Jl7&nctSYU z1u!6Kt4C}YlJFu0q;PXfn2=9EY)9l$*n?N?f?<**Ydc6o(I}or=<{EBC z*{_qib($Hv+E50bvt2$G)3fTh9%Sq(8fIHP(l|5bNcwkU8NK^4*k~c#{?34&>3wGj z*MeP~NO1kv&aLuK$MhO0oWgs>Nc~-$72Pl_!*4~oS$wN7!-8Ln7q9X=4{-!4Mr;fQ z>5})u3t&w~Kn?8r2S5WK&VMrKY1eZ-CqqsPqwq}D#%g$_zl6BFGD-$bg{l{eU+nkp zt+@8|VC%T>-S`$A5GUg9`y&qxfOFfztN=r95kJ{Eo~-CEfosK+J*|3|vb5^VkmQq1 zwikSRBID}=p822-_7qKUx=d`n#(Y{Cx{Yaj5e;h28pTHvOj#~96RQ{oUrUI3Ql}+? zcj!P9371X{L?<-A36N&BmZ^WhJB)k(aWxVw$4#gb9U-;ANLA)q9$8lIs&T@`N<=5* z0Z|3)wE`~H9WI}|C<^RaZ}h~uB@^)SD%b&Gax`+kTJ^f65C|SajOw-l<~fwNwKB54 zI*wO?0%%KzvYuBf6j>ci+zy>)c!YDCXp!Y}`u_aFNJwe~SgZ4L=o!0@yjPc19A^&Q z>K-|ga_O1K?ncA^CfoE-lPJz_6C|r|H)ee{V$ffseeQZ2ru*1nnt~EQM|7&4Fe^-! z=Izd+^oJg@Xh84Ud$MJl$`Seo8D>!4JYuJvQls>#gas153R(8(=+hS1u=G0?hnGV8 zj0JK%+fdW$ zkQ)JMy-mZZNK4!9r26U-O9QLuJV84W#=?o&^0IB45l9)P9G}yK9B%m{5FuVxjWLgfdm)& zNJ2{C;G#dZdTShEiTvD;vUOxF`1?S@Ue=hLM*yEJpy~wp)BT%__XJ5@;S=W92WF$#9&{I8Bo}u;Qso{EUz2a^ut?)k_9K!};w*bLvX4^j; z78l?A$FdssB*n!Dtu>bNB+8E!?ptscDv7RI>~z0QZ-jDOZ9$p zc2<8H5CEYCu6jl1mJ5amq2WaUh0?yiKpxv3FWe07uA(p{1hx^NoOn-DW!Y+xcLdkD z4B31Y>yY}hStfn4d}-sHPCOi8&eQJiHTkeLSI*t|1%N2F}--mP}y*iRA1$ch(Ag&m{%A z#-UIPxb8z8v9(4Rz7-Bb*X!R|%rR%kos$O`VM0`FE3RRCw(1SK^5hc430k#3_AKw^ zo8bsr11dg2;O^o#RH&8_(Lyy5`u*h0(5aix&#Pe{f}dj>(vZ#Kts%NS=M%p3Qvte zf?KM6Cqp|J%n<2e0s)#qQ)mH0S_6J=7P378fKk-!4c|XNVj93Z62QU>!VidW1r0JJ zyNdnk`r~1((DcVlb@~bx(fsuUZD`m_YwfX66yt3*FEwi&k>&N2A&A}SGs_N+9$3L0 z>#P}zd~%bj&dokel(8^S%~!~Q&#-Q7s4^bt{)KY)cSbd&rCL(R@3bG0|6u){jBO@b z-5OjM5S$KWXJ2Y$jCtByaxn!@fqj~hg?beemD#UL3xf)z0b_ENf3q1F|lK>1dTRd;VNMUt(;xq~j#7{FJb zZ${YNAoXgKjJ9R#sDFzS3#MZ$}&Pg_%Wyd(%r)$Ameyx!3%A~DtGhp*89D8C%sF#n&kMD04}pM_ zfLowB+U;6iqe=Q)!>NPnWl z#w*rpY%)$A+)gus`~}#g3;D-abL$@DM7!f5*M)a-^+hgsfIBT^N7uucCJlu_5rp|Q zas(D6?8*~e?LD?)q3nxn$LQ#|JeDwpSm-^x9@91S-Y8zP&DTP%sueHc{JKPSIsgRi zwTiU(Oe`SYZAuEDd4%K8E1et8e(p=Lz%FZLXn~18Ea)HH zKW*zDA*dMf(m6iRl&bXW%`EMTc+rA%Cr3*{o>OGU1trd$@*l0l^YBl)%l!q!A>V!0 z6HDMLQeQel-#QddRSt$aJfFvAj>9UxGSo1UJhE)eh2%vLkaM#GrqblSLDkEdQH%IDY^&{H?`9n%iZ*i+ubY-Vssid?$E;U#=>*$A!NJGm~m#4|>}oVFhl48^}`z@{=< zhmH;j3cQW9hjX`phPgGx3W$(!yMLfb)a?g>r`ks3 zW>WA(@T5A~3p5h=UB$B+_b_#PvN7ITYxoqh_Q6;Wlqreo&Fzs^q<@#`^oHkriYj@ z;i2d_#EaN2B*%0ScE5M^+eqFe!TSUlnpJlm8OTVA! z>vWU$G#Hdm#dih2UfnX{>W$CWw3DRz$Nn2;An3!xzKOJHtG}D8-`cLt2eD56cKz#L zFWVpPnO)U&J_p}wwzv=omVkJn8V+q2d)M`U?o8D61>zN7+%99UtN1_Eq5Ebi#es!Z+zV0WQThZgjl)AG5pod^>^ zQh3~Kpk9KC&lZ6M6_{gL@KiOGp|=SFEq+J^zmA3!yY~R#ti~m$-iv*PQ63iV!d+9I z8ab#feULrr(nG$0;8RJD=oSAxb|;YFQ625`cH)B14TYn}Kgjs>c-C9fKR`#m0Bo=_ zk7W9ncRTM#(|BI}>G>O5u=wGl8|jpgF#dG@EfK(vBmOieOJK5Cj;m9WW~m99B7Jf~ zM%6H|N)>HNC^sa>isq#9B#dfF0^wJm{Fx8Nu4Bia`M zJn^Qc8PL4BJ_lS(i`KeKM+A^(kjx*yX*C>*Mq3c^T#I$UKlNfbYAh@3j|2B zSh9=V=R;QpSS*e`FH4#c;2{*ndp$gLMBFG={&@}cb%IAc{o8su8rvjH1Mdgrj^47I zo?tp!`g+YH-P$<09-XWaDS(%_Z?JObv|7=Ly{$wsY(ARsvj)MtBGR`!UU%$!Gx+kUJeFsj6LBK1$#aWEfc?DE z=<<~>XaBRU9Z(RPFr1r9RQX5G>~B*q@^R@S?zH$`k}WG_nxecuCv|QG;2R`MiU`7o zbJ}$cy$l0ylCek6%}x3o3lJW1In6jQcm8~hU;WNIj_ih}Y{tL|(;Q4V;msUy+b^_8 z<$IPdZUV29`RU2ycaS37YRQ@2TDzmx*X*mDp29PB6-1n=J(K9=`p79e=HBm|dW|ff|TQK(c;;JFHtrhI18k@v}8N5D`Bq$hAO&PE8k%u5`H2Y?U6{I17gj4z1e$MQU4Zi zcr4CP7+_X8hhSRrC-`PfQR(#)2>=YAc4>B=5W}57D9>3l(ohZfa zVT$yg_*BnM*^}pyo^9)nb+t(NRIf~e&fa~h)^d}W3CPOx48M4l0(3^*pD88DniYh) zE_HE&F$aBa-vLASfaBHu>)%2d982dGOc75{37rVl zcm57{@|K&u*vCJ*&wtkds05Z%b`2kK%+%p){}uwnLE@Y^jih=qUTIMR^G^HpH!?m) z$u&e^cYe*!?~cE%`}-FO>rsVzO_4K({|NXQ<;SPW7F3LZoj$Xd|JLg~{mqO>%R;#c zC@9ws(qUHcLQthqvqECb^@UuHqsLd3W4cDR)EK~VGvA5~imiRjlp5jEgN#S+?6>6S zzS7)TfIq*p>Xo_g5Py6}4~9tB6B`jV#3emH^rq1?a~y|SR+$vuH3WpxU950>r&r{$DwN~4%z=- z6aE4QtEhf|0k}*N|K&5`;)49NJC@2iqaER{Y zT(GG&@A$8q)%G*7tOb*=3g)5-9cf~BQ12e_;WgX=(fq+=HV0%!Bfxfklr0r>H$;gA z&8K%DK=LH9JCg&fC*7T({n+i0hpBssY!S(DhRnp$EAgqh#seFrXxmog{)iKaBotY> zn{i_Bk-73wrkvj>w*2BqF`6n)mFm9hqPUrc1~Cqo{_c3@lYpFylDz@c4)oVW>70u@ zFG{4^q(xhB!!z(TP>!_HoSYoRpjvbDeFL}@atwkd9EM=IQ;q#B&!p1=6^zE^pYuVf ze>BB9>5j(N;T1j-4d$tZUlr?CjpV6Emt*7kE#+3R^t?^yj)cHA!rgz#+|4ZgEw|}} zqMd>+h0x!#ZuTFUXjS`h;cFXLAV}wm!xwy*Lrir*vxfVi+Z^N^QQ?R+53=`lKok0waOM#YUxlKYll%W5Lyt~{ zo*LXG|M)LJN959CSlwsc!^lPe2hU3md}Y86YYkEZ`@sW@J?^|?J-RCL2}34hW@=f#Y~%XH#lHjhP}gy`4``Yu|ErpL1dn1b30^Y@nB8k z(p-ds_?!BIzzIuD-?Hs$wruAwF`A7)O6RE$j^SVZ&j3J}W7L->mjA_QbDRcAKf3}< zAAEs>!J8*p(Es(MulE4x>phTI`a%zXYD(cExw>WWx!=;aaT*Y?wcvxRZ_&N|5)WB( zwg-c}hTFwpy_eFT28AQBcq;hEjrk;Npsiv79||DrB%ER7XR(LDtA@JB`AYM0_6qEN z>`7xU6JEIG@z`SbKl5BP3%Pr&DdLNG#yWd3ruF)ZsJd$~pN5@o6pFhzNq_!Cqb}0Z zIsq)dFYETC@16+T^iX!Shl@G(A%?l^lRMv22XF(H4)6W~jAy?>=FiazL||3TZv(=h zf;HA_M=IgAw)at7xuxcUx8!0BP)^`a?@l+UHg@WrRC|!R7S#>FAYIR%eNDUjTDo8o zUsdJc%#Jx{nw-f#+NA8ZfoQK^8#BxiKrUFAO}TS~F#YsY94TdxzD4A7 z!;I%7`mD4~0&C|``d9!Yy)I+w1ui=g%UR&j;wBt=*5s^|ZMpS@AGgGMYuhuu*!RSc z=c;<6OqU3hn1dAR2l^L7^2^Am<5AIza@5%y!`U=5RyN5r)ri%c@aBlX!JAc;C@Q7g zSVA$6eUa-gK&d4SU3P%-dhA7Qih7ZrreITqp4$XL0VptkI9>^Q>Eohe7k@4b>vz~S ztARgC*?>M_d~X4d=;2l@7`kC&TuCTAYlDUfHm*xQ?6WQ2o^XBGDCpz11Iy=?Y=Lc- zR^9wuVbL<+Hb0D1AHUhhI%|>i1FWcLhzgdM%C=VJ0x!6Z@5X}iD4+qx#$83JI9~!| zk;pR;6X)u-6C}ea{u3SqEh(uhv+>EnY!aV>ysKD{$fbMdZal`Oq0cr>_b@$RSsSSd zZ_V7;#Zs8D3w)?7vKumcwya&yqBOjnk67x4rM3DC?h0H z?JpG$Y!ls;pZKb5;6Tdz{p8l+z^Hk^9XrFabm;aB{iwOpSI%ko&n+g_k%nn?2#d_0 zhP&J=?U2gcVtcMYY4XGCN0s~UoTS=^ceyI&CAEHg{4h_U7I8{l;l|-H?2%Y#nV0ei zNjSq(I7yTkYln$gpRt-LOOa|rh6##)+k^hQn^e15u7o+-S{ph5gan#l;`dMbL>`Wv zAh$h=3BSUjMLqH8mWd|FjIpxeAcvmOa>%pM;85xN10)xUAylI{-qnM3?9_H$W zjiky2tva{n*ZV0uvJd3@N=GwP8;R|{@*q^-tjr+%; zvOO&gN<6IZB4By1%uA>{x!k?3xcJBk`?2*bLy4~h(+Y~!3&RVl z$`D4CSFKS~qby8-Vy?+&-fvaU)JUSxDph@74p9;BAOn6>{8jx5z_-`%!inqJ0ypcL zPt96SO%NBC=6rY!l&6Qq;~Qaq;l>W>zz2K(v!QvG_TFi0Z*9vh@7y(caG;z2LSNH! zc;{?K$_0K6#%Lz&3*o@>T!&@|GCQ6>>hAdaXWA0+r>-a3xj{9j$N>j}lPy<}48t>- zi&k;24^<0J)AuQP_UaT&=Dhl3YP2i6N!EA{oKvfyNUZC#0%lxG7I|q8aI~o~YyT^b zA`9bwL%pO@ii?L|SH%tli(N`@#cE9P!!>opQ~f<$^Wrf{q(Y*vgte;v{I2-z!j*^NfTgJFx}fZ%s%iJ@acvsP_;o$Lbesa%P@V# zJ452cytKT8C_yuzweNY7lO27Mk;vJ7Z`h5lzV+j2h^~+swqO@%A(z-36e!f%w=~#X z8?P66!BXb+8O<&!H{n_%ncV}Yqp~J@Vr>|y5$Bidl!t%%&r;PwDo=Z3v zOGWnvwIT}t<)QggroB8WC~z$FP)C7VM{pscu}rAUAI=ejjtoB?Pory->8}hFFq4 z(StmQ@;dHmlSH8;vRAX^w;8Cv5KZEC?V|tFdyPLi`&ivh7&Qn~*yqE#M@*0BO!@0P zj{#~T$taqBy6pbbg-r%E8Mk9#uJ%i+J^}FRT?+ReJU1#S=Com;i1QZHb_`RLkq|+- z!o?LM!9kRLkqp0<0C{>HV6g5hB}7xMr1tK8)HwRt~rBj98o8=igCgyUpHv z@9d;*us!p_fL1f);2Q5@f~_>L!Vq*PNSA9ioBvD+E=KW*%=92dzA&1rErHBt14Jd@ z+dEZO9`pP_9DWW^Wb+2Wh?E=CvQMTkGFluz7h5W&~G}Jp&=9Hb#N4GfNCNySsU9 zKJ?SOeO)p#_beRkW0u~?_wV1^zU-JQ7?I5p6@JiT+Xu2{P%|`JY1HLyUS7gaWog{WN}Sw(Oz<@0|Hs(#V)TxWRB>@VamT?GZ@;rELDwjZ$+4gMA=JXg z*+-LKmd-`#BQ=J|Zm&=|%JZ%RS;Uw~kD>$ifb;?pm;ykBPDWNGatsT*P ze*re{!e`;183-i2vgLl`?z6VMc|6>{MGd210bfiPm)_3gtoy3tY-NUN%Y<2i^ zuGb!<`gwkk@;vw9$_Y;f77D-%dA1qL=|+Vu4m`*i(oyT66N4S2pLPa0{pp?jB!MV3 z?%8*7Dtsa&z2S@-(WRh=gJ-)R1_MB0l5VqWFI|~0u{qaeB&1UwPquyIo9c+aAHXJr;C#iM}YsX$!c>5%eyep#*Q7)lfw6$ z3>niQ?A?1-#y_bZ$)A?%5{w)xqIkZ3@zV!J2GheAZ}>7PE!cF{1b z`O(0%a=?B0a;Ub_TJR9dNPEk}O2z0&SG!=HP7UKvCZf*~(VsWGv*a7++(3^z2}cYF zfDnbd*6#GPL*ema6z3=OB?xh5$f*}53OB{&nfp4>FsN{q%=1SfLKV>fZB$>Y*;V_x zRj3f-Y`@%sV^sp}Z8qB;3uKN_?Kyj%gW(&?8ECTV4hG5#{LrV~&w>la$Q|W8jz6d3V5dtk5R#ML?@X=>l88%jTysj0v1bdFG{0n?dj4Iz^b zMd-zp{@2mosOS_4jpJetmlv)$B?$9BT1wi_Z~er;o~QLXevdAo=-2Zm8?b!ALwl;) zDBNC9jxv#I;r!Ho89nV8(Xir^-)L?PSCc$BsWxQOv&-;!?tRhycan>(0H4J5lh?o+ zwCu}n7d@Xsp*?4N1)S8C`mzG^qfTfbUL0iOO|Grp!>h09bxg;kDSgO(mz_-~=jTuP zL&2Y#-k)H5b63E(_RRbA<<^#5xjmU0!>&9S5KP8n>cxfVL!{mL`x(>?pLjRQI(P)s z>jxiC2BnaNt<>L!PJhU`z`R`*w~BWU!d#*xe-ue%XxO-PF`D!^GfK#`b=B>05v6v# zuyY(NF&Et2Dj@?L#sVx5&gzvnUm=Tq-`X`LfCJ@nD6nhUFU|ClhJ2}V(V_I96U%A` zbXw*Z-<;}e3Y$QI%PE|5ZG6mqaRe?XHuI|Xr_fB#lAg<_@){N@lbqj!0C@nT;f*qz zs#D@^ez(%sAh#Ye4Qx+X79nlrp(G2`d>0Hm)=q6@nx3FZ#HYpsmg>FH7z+YK|)^jS0DPuDl-uq4~FbUJXKAPwdyJ5-@X5-a@kS4jO4wn z$J*;eN|7PptG=FWHF z=GOH~X7}-DnMg}|p0z?4V}Kc%M(aQ)VX1akDrA#R+z^YP{`pPV!#A8WNdj=njAJF$qj7HQl!3h*Q}*n`^N&s#@eF|IV7^l**8&ZCC2D z-nQ}2mzd^PeexUe^~9GRZ7N-M&52}&9@uan+n74(XUt>ycoOs>r`vw$7RR!ze8PA~ zN;n9gyUoyOL3i@l=krpE1EUfW_cT6f#l>{hhMN$ioZvXlisQz|u z`yTaDC&R_;&;H}hZ4O$m3YE!k?AtHQAf=jb^gZZwlVsw9C!fjOg>L=ikCOtBQipTo zjeuG;0$Ri#gkjcQ4or_51LPdk=MD@r+Xq7B30>HgGEbKjNfcYuD(>BZLs$+|>4>tB zlyB|FDUYT!I`G~;lExoc=jVOvLF$UjJ#W?ka-HSkZi;d>xHN%BT@S3`C>P_mEe8HF z!oBJMV*1iUEq2A{7o}Y<7~Sc1OvFefKNRN0N0PidCe(!YJTV;Nrro z)5kBxWOIE|IlVaT$gSIP@%mo351(pkK7Gx(=WAO3*qF0G(;WEHB!iznWna1khv#Zw zBYk2C+Y!*-;Y^-qH$(QJuRK@Wp3xHYUP@<(J`3PEEvHwqPYS3&l&-Tp@C!6cdF-_7 zExpfkFHC&HLf3PT9C=?Q|M+pI<(pF0vj$bItatp2RPDJswuS681xgo7Tmc4zz?-R3 zhG-htmngYv6W>@o1s!C28kUwWUznN zgV*hSX63A;R@OFfBytjob!xtQQ+Dx{IZfhDvHbF0Kg}Hu=34k*lN?^58U{)Vqx@a! z`030%$somy)B8E^8ze@a%R+2(T4dBYh&<5ABNZP*$0>SV?3!n$j^^gznXk6ERmqk6 z)IMTkqs119($@OFVIl0(i7I*FeGwCsl!P`ZzIOr7jiBjv#@{TK~^WW@RhBit^lpY>E4;B_LEJOJ3sNZwYX7^QJ@4i!J z-d9j;yDD^ANRj_nW!D+i)YffJ5)wiH2@nvx5koJA9+9d^=tTq}bZJUa6a%Or3WQz^ zy%(hlQlwbHMu_x|R24NMC{=nBke7SEd%y9$d*6FwykC2av&KH-{5W&2z4u&ePi|-Y z#lqbAcwKv32_fUow=WV`_JPwilgUmUB8_)vRA@5Voq~5ys0e%LRasOv;hSaJRg_0g zmdy<_{Wh))ELZH|9JoytBS3PF_40fkdPebQv!%s1UbE6a8kB{m$fYp>ORy!xUKAhoEKpkwFpT2BH z%z#SQUeVIxtbo(oS+2%=6#s=HtH%6=pIUu0ntP4eOGRUE0scal7Oz%_l4hFp*d4Ow zHo8;2lg83o_vT4>$n1!J4l> zV9+%B!3|9<^^!x8?{{w_jZl16XD$?*q*Po#?Xkr*?6p0|w+LWfJ0|S?{4E4>Xn3*Udp$sO?H?x#S9c!uv~}&ENKNp+M&&Qcy1Dhvg^tPl8kym_1&BR?tI(? z8|4xL4qs{|tN9v1oKr+q2SpN;(p!PzJStN8#xCpJ zvE7+}q;|*lmTd*q+c8VAq0>`U3mQs#*@~g%v}?+#l|l>;S}-kg@?{ zp}T=A9j`Ito;h~}hc@(z9^{^PQh?nKoe`z0?Iy=0Z z#DZh`o8h#a2H)L&l0-{RtN{SrtvnMkD{=JCe5;yos{-D?5%z)P+o@>+w;7Cmz-9Us zw>Eo>`C-xD|M~eeV?$pBw`QldgSM~bl>ly$2FD+Ed`07-= zXi^ELz4}8Zy1we3GN@FchW|yqMbZ~MYK-;RXK3#rM^v~Cvw?pGUyWARQF>?h-mnd6 z1ViDWL6Qx-th2{fCqITog!pM0a>zISzDuw8H(IiXCIk+RR0wJcsf~4wt#rCYPcu@N z;^?wT5fZ|0AVoZJFt$g%{(akn;2#a{7gyEuwApQjt>rWOl*^kHp2U-Uw{NXj%M3Nk zbWu(UEiN4?*{)L3yzCA@Ex*rw`QBvfmcBV`K8vAi<`C=12Zz!jB{#L!UKiXy9Q&>r zs2Jzh0RPPBioccjH>;ihSgP)c?TMV|ug)&XV8Jv3D=*p?g0EPjL-zp)7<{buS~zB5 zmk&G-agYX)WoXUJCK#@;SA}MiwpjP@c^25*w+@@wLSkL2qWoxv?)mXc*s2JqwBytQ^e+JATg~l-F9^q`x3)9gd$Hq1d&`EpNTopFZruAv^mp9P|(5nBx zVPyF2h7Go6VIL3)@H>nPncwq?Z91KO$XD{?C?{+(==racqdfu~v>pH5kk_0VygwGF zXo^W6HBRih_CyzFZ>_FMSrOf}xLUWuQ-kg^tLMngtW#OTH4b|sFT()y}GQSZD;DKt2{U_phSNDMo3b zAV1SghBI?;n`vMx8*rs-RrTFfAybKSBTLTPRpjfuZ6TXmU(X-^F}LhQH92S{wcg!z zv~&IO!h3F6+pt=v@PCPoYYTNEQo`W|Mc3u&f69^T_B^@R_n~7@w$MeUi5|Ysucy`o zv=kKhuekIrbqL8qX7jHHk;_EqJ6tZwL~I@m27o|uHrqiAXJ^D2L}YYo%vK@JG`fH$ z%zrxduh;*na!#`x$$_aQ%!ExI2@BU4pk9;`6N;Q&si)sRmqldh=oSiA+Brdcn623C z_2bDmuM|U{48P5(=T9#eclACDawI1gzFpnBwdg-pe>1Ujnt?CvKu}oIwN-n~`mmZ> z5{iTm&jINcak+NH>nla8d`7dDFsTytIX!^ z!jt8|x^IHiqNLObdTI)ri*Gi3OK3AZE%DaqO9FW@?Wn4%=Lf6L`dHp54PK7?+(9NV zPblgV(_jS(F6(@bpA76i<{%o#tY0Y_pLw4W?J2$fbPsOFilLdSssh3Z(sdlYVZ&j@ z#xHWF0zQHg;d-E%@OYi7iH!It0?KbCP*n^IJP>}*mxg(UR)%RyKrTmv$XhoO#7dlz z6=C5@9T9O~k}rz#GB1beH5wY5KF&^|R78ahPsJ&RVES^SFk$&6DmG zk45#{@iDrfM%S)U6cI(5I^2AKs9fg#_JuCNhenPQRN*lAgQ%QZIglmv=y@B!9o;T# zU@jcfjaj-v=EeKEa$RMpT(goTuyBAn1Xj(+zLL&pXqor$7xg4tm&+T??!Y-}t!0_D z4Fp*s+Dza!11rr0QWM7Oa>efbkfIA<;y&nE#lmet1^KiCl6O#|8VW@aXVE68Zg_^4 zLG6KD$tD8n7Hk*~X-{y{EJfB(YM=8Fn@(RrN7D8I5TWGg(a$H#4u84fb>j9D#q9{Z}xSVz5 zO_-F5AP$@<@JtIp~349CC6rVxLx=^;6P8y^SH)M^fKvKx9sN(gu@n0{00rLV}$xh%I*ZLQ5=a zV_9^8MmAFhUQkCRK-z0k!p`q~-q@M1(3G=TqAe17ZQa7e71)p$p#j9n11T0FS?=3X z@&#?>-5p2^BVqakzp}wRNBOa0h^g*8xRB+3fQJONc}Zenyg|Y`bCAspU`rx`bxH!f z->J*OQDcPQPv5Re3a9HL4tZfa=-=uU)Xt{d18H!jGFvK~zrJ-a*JIga$e20r=ySWq z+MiAZx5CkTf(nF!gZVYl`B1kE>rZ>Tnp@It5A(pSQVx3pWJ0a}B)!})dI3$!!eF%q zh-VIEz->u)YdVJhqgLg2smJn$%sm?gl2hMfnmg-<#;Tr8H(p> z*gb0UbAVRutMfa{w^f7^Jihh~g$(Zl9zFYj{o=X^n4;;S85}$Tw1a;%;tDK(lP_ESwPm;TIdhspqoGRp*tsORmx-QtxCj&? zHlOv6GLZFYV@CfW5drye?6$x(k6B#dLM&g20P#hlYiA%#(( zi{Z4mn)|#?A_Mc!>)a>K}Z_EEL7JPiGyByNnRg zYcmR+&Hd*6WfLw+%GbInvn3m3p%1-qDon}8A|_$J`i(*}QgY5~#nw=#ztHMrv67qZi}i)nCsiLpK(NwV&&q3Y|mV{qtzv{yeaoUOq|*#sx1{*8^yk)$xneK1YFaP`{XG-_mSa;lCIH= zD`iuHDyvyZ#v77+v2-fzgZGJ-)o_y;9`OzzkGt*xv)9u4*+2FP+!#%6a^Xzob;$RoJqEOuG-~sJU%?6A|VhMGxXGx@A z+A<+zb**nn8?hKQVp#aAXZ1LOQf`Y+zjI@4vJs;Tz_HTu)_ZRrcT0I$@a4?)aR6m9 zM-MYEDECN%#jzinl%2DCwU;YGH;=-el?eHsUSO*vs^8uG=n$h;Vb#vyBWW!a}sAkY>R0*S0^0+ajc} bCch0Vwv?LT5N;f1