From: Brendan O'Dea Date: Sun, 11 Sep 2005 19:43:14 +0000 (+1000) Subject: misc a2p fixes X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=4cec2b33f0aa04d807b9b31c6b4212fe462cd7d4;p=p5sagit%2Fp5-mst-13.2.git misc a2p fixes Message-ID: <20050911094314.GA15155@londo.c47.org> and remove the check_byacc target from the x2p makefile p4raw-id: //depot/perl@25534 --- diff --git a/x2p/Makefile.SH b/x2p/Makefile.SH index 30d9dd1..1b48753 100755 --- a/x2p/Makefile.SH +++ b/x2p/Makefile.SH @@ -111,12 +111,10 @@ a2p$(EXE_EXT): $(obj) a2p$(OBJ_EXT) # I now supply a2p.c with the kits, so the following section is # used only if you force byacc to run by saying -# make run_byacc +# make run_byacc +# byacc 1.8.2 or 1.9 are recommended. -check_byacc: - @$(BYACC) -V 2>&1 | grep 'version 1\.8\.2' - -run_byacc: FORCE check_byacc +run_byacc: FORCE @ echo Expect many shift/reduce and reduce/reduce conflicts $(BYACC) a2p.y rm -f a2p.c diff --git a/x2p/a2p.c b/x2p/a2p.c index 57df9bd..1098b1e 100644 --- a/x2p/a2p.c +++ b/x2p/a2p.c @@ -1,12 +1,19 @@ #ifndef lint -/* static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91"; */ +static const char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93"; #endif #define YYBYACC 1 +#define YYMAJOR 1 +#define YYMINOR 9 +#define yyclearin (yychar=(-1)) +#define yyerrok (yyerrflag=0) +#define YYRECOVERING (yyerrflag!=0) +extern int yyparse(void); +#define YYPREFIX "yy" #line 2 "a2p.y" /* $RCSfile: a2p.y,v $$Revision: 4.1 $$Date: 92/08/07 18:29:12 $ * - * Copyright (C) 1991, 1992, 1993, 1994, 1996, 1997, 1998, 1999, - * 2000, 2001, by Larry Wall and others + * Copyright (C) 1991, 1992, 1993, 1994, 1996, 1997, 1999, 2000, + * by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -21,7 +28,7 @@ int root; int begins = Nullop; int ends = Nullop; -#line 24 "y.tab.c" +#line 32 "y.tab.c" #define BEGIN 257 #define END 258 #define REGEX 259 @@ -71,6 +78,7 @@ int ends = Nullop; #define DECR 303 #define FIELD 304 #define VFIELD 305 +#define SVFIELD 306 #define YYERRCODE 256 short yylhs[] = { -1, 0, 3, 6, 6, 2, 2, 7, 7, 7, 7, @@ -81,12 +89,13 @@ short yylhs[] = { -1, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 17, 17, 17, 17, 10, 10, - 10, 19, 19, 19, 1, 1, 20, 20, 20, 20, - 4, 4, 21, 21, 22, 22, 22, 22, 5, 5, - 23, 23, 23, 23, 26, 26, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 27, - 27, 27, 25, 25, 25, 25, 25, 25, 25, 25, + 16, 16, 16, 16, 17, 17, 17, 17, 17, 10, + 10, 10, 19, 19, 19, 1, 1, 20, 20, 20, + 20, 4, 4, 21, 21, 22, 22, 22, 22, 5, + 5, 23, 23, 23, 23, 26, 26, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 27, 27, 27, 25, 25, 25, 25, 25, 25, 25, + 25, }; short yylen[] = { 2, 2, 6, 5, 2, 3, 0, 1, 5, 10, 4, @@ -97,210 +106,211 @@ short yylen[] = { 2, 2, 2, 2, 2, 3, 1, 2, 3, 4, 3, 4, 1, 3, 4, 4, 4, 4, 2, 8, 6, 8, 8, 6, 6, 6, 6, 6, 6, 6, 6, - 8, 8, 8, 8, 1, 4, 1, 2, 1, 1, - 0, 4, 4, 3, 2, 0, 1, 1, 1, 1, - 2, 0, 1, 1, 2, 2, 2, 2, 2, 0, - 3, 2, 2, 1, 1, 0, 1, 4, 2, 4, - 2, 1, 1, 1, 2, 1, 1, 2, 5, 1, - 1, 1, 6, 9, 6, 7, 10, 9, 6, 5, + 8, 8, 8, 8, 1, 4, 1, 1, 2, 1, + 1, 0, 4, 4, 3, 2, 0, 1, 1, 1, + 1, 2, 0, 1, 1, 2, 2, 2, 2, 2, + 0, 3, 2, 2, 1, 1, 0, 1, 4, 2, + 4, 2, 1, 1, 1, 2, 1, 1, 2, 5, + 1, 1, 1, 6, 9, 6, 7, 10, 9, 6, + 5, }; -short yydefred[] = { 96, - 0, 0, 98, 99, 100, 97, 0, 95, 0, 0, +short yydefred[] = { 97, + 0, 0, 99, 100, 101, 98, 0, 96, 0, 0, 31, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 41, 0, 0, 0, - 0, 0, 87, 0, 102, 0, 11, 0, 96, 0, - 0, 0, 17, 18, 19, 0, 0, 0, 102, 102, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 24, 51, - 52, 0, 0, 0, 0, 0, 0, 4, 0, 102, - 0, 102, 102, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, - 50, 0, 68, 0, 0, 0, 0, 63, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 103, 104, 0, 101, 55, 32, - 28, 21, 0, 0, 0, 0, 0, 0, 30, 0, - 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 102, 102, 0, 0, 64, - 65, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 13, 66, 86, 0, 0, 102, 0, 0, 0, 0, - 0, 0, 123, 122, 126, 0, 102, 0, 102, 10, - 102, 0, 109, 0, 114, 0, 0, 0, 22, 0, - 61, 94, 0, 0, 96, 3, 0, 0, 0, 0, - 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 102, 102, - 102, 102, 102, 8, 0, 0, 0, 0, 0, 73, - 0, 78, 0, 77, 0, 80, 0, 79, 0, 75, - 76, 0, 70, 0, 74, 131, 130, 132, 0, 0, - 0, 0, 0, 115, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, - 0, 0, 0, 102, 102, 102, 0, 0, 0, 102, - 72, 71, 82, 81, 84, 83, 0, 69, 0, 0, - 0, 0, 0, 0, 129, 0, 0, 0, 135, 139, - 0, 0, 0, 9, 102, 102, 0, 136, 0, 0, - 102, 134, 138, 0, 137, + 0, 0, 87, 0, 88, 103, 0, 11, 0, 97, + 0, 0, 0, 17, 18, 19, 0, 0, 0, 103, + 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, + 51, 52, 0, 0, 0, 0, 0, 0, 4, 0, + 103, 0, 103, 103, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 50, 0, 68, 0, 0, 0, 0, 63, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 104, 105, 0, 102, 55, + 32, 28, 21, 0, 0, 0, 0, 0, 0, 30, + 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 103, 103, 0, 0, + 64, 65, 67, 0, 0, 0, 0, 0, 0, 0, + 0, 13, 66, 86, 0, 0, 103, 0, 0, 0, + 0, 0, 0, 124, 123, 127, 0, 103, 0, 103, + 10, 103, 0, 110, 0, 115, 0, 0, 0, 22, + 0, 61, 95, 0, 0, 97, 3, 0, 0, 0, + 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, + 103, 103, 103, 103, 8, 0, 0, 0, 0, 0, + 73, 0, 78, 0, 77, 0, 80, 0, 79, 0, + 75, 76, 0, 70, 0, 74, 132, 131, 133, 0, + 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 103, 0, 0, 0, 103, 103, 103, 0, 0, 0, + 103, 72, 71, 82, 81, 84, 83, 0, 69, 0, + 0, 0, 0, 0, 0, 130, 0, 0, 0, 136, + 140, 0, 0, 0, 9, 103, 103, 0, 137, 0, + 0, 103, 135, 139, 0, 138, }; short yydgoto[] = { 1, - 2, 7, 37, 73, 127, 38, 39, 40, 170, 103, - 74, 192, 43, 44, 45, 46, 47, 48, 105, 8, - 128, 233, 193, 194, 195, 265, 259, + 2, 7, 38, 74, 128, 39, 40, 41, 171, 104, + 75, 193, 44, 45, 46, 47, 48, 49, 106, 8, + 129, 234, 194, 195, 196, 266, 260, }; short yysindex[] = { 0, - 0, -52, 0, 0, 0, 0, 2796, 0, -90, -86, - 0, 17, 25, 0, 38, 44, -57, 45, 47, 48, - -219, 49, 0, -1, 51, 52, 0, 7708, 7708, 6350, - -238, -238, 0, 7708, 0, 6350, 0, -165, 0, -21, - -12, 5968, 0, 0, 0, -32, -253, 7759, 0, 0, - 7372, 7759, 7759, 7708, 7708, 46, 7419, 7473, 7708, 65, - 7759, 7759, 7708, 7708, 6350, -54, -228, -54, 0, 0, - 0, -5, -185, -41, 71, 76, 80, 0, -52, 0, - 7708, 0, 0, 6350, 7708, 7528, 7708, 7708, 7708, -32, - -171, 7708, 7708, 7708, 7708, 7708, 7708, -152, 6350, 0, - 0, 6397, 0, 6481, 86, -185, -185, 0, 6528, 90, - 91, 6583, 184, 7708, 89, 6630, 93, 6673, 6716, 7759, - 94, 41, 6761, 6816, 0, 0, 5228, 0, 0, 0, - 0, 0, -185, 6863, 6015, 6015, -49, 6906, 0, 184, - 184, 184, 184, 0, -8, -8, -54, -54, -54, -54, - -238, -49, 6397, 5924, 28, 0, 0, 5320, 5411, 0, - 0, 0, -154, 184, 7708, 7708, 7708, 7708, 7575, 100, - 0, 0, 0, 7708, 7708, 0, 7759, 7759, 104, 105, - 117, 7708, 0, 0, 0, 7708, 0, -151, 0, 0, - 0, 7618, 0, -43, 0, 5495, 7708, -129, 0, 7708, - 0, 0, 3816, 3816, 0, 0, 29, 6062, 6119, 6203, - 6248, 122, 6949, 0, 6295, 6994, -185, -45, -45, 6350, - 6350, 4306, 7618, 7618, 4429, 81, -185, -185, 0, 0, - 0, 0, 0, 0, 7618, 7618, 7618, 7618, -52, 0, - 7665, 0, 7708, 0, 7708, 0, 7708, 0, 7708, 0, - 0, -96, 0, 7708, 0, 0, 0, 0, 7708, 7708, - -39, -37, 7049, 0, 108, -97, 7759, 5586, -185, -185, - -185, -185, -185, 136, 7096, 7139, 7182, 7227, 7282, 0, - 7329, 7618, 7618, 0, 0, 0, 3890, 138, 88, 0, - 0, 0, 0, 0, 0, 0, -185, 0, 4429, 4429, - 4429, 4306, -51, 6350, 0, -185, 5678, -89, 0, 0, - 141, 4306, -35, 0, 0, 0, 143, 0, 4429, 4429, - 0, 0, 0, 4429, 0, + 0, -52, 0, 0, 0, 0, 6281, 0, -83, -65, + 0, 27, 28, 0, 43, 46, 29, 48, 50, 51, + -218, 64, 0, -14, 65, 66, 0, 8153, 8153, 6722, + -176, -176, 0, 8153, 0, 0, 6722, 0, -165, 0, + -38, -13, 6376, 0, 0, 0, -32, -232, 8198, 0, + 0, 7770, 8198, 8198, 8153, 8153, 47, 7835, 7883, 8153, + 69, 8198, 8198, 8153, 8153, 6722, -57, -267, -57, 0, + 0, 0, -2, -210, -41, 79, 80, 85, 0, -52, + 0, 8153, 0, 0, 6722, 8153, 7931, 8153, 8153, 8153, + -32, -166, 8153, 8153, 8153, 8153, 8153, 8153, -150, 6722, + 0, 0, 6770, 0, 3731, 88, -210, -210, 0, 1055, + 93, 94, 6815, 184, 8153, 92, 6892, 96, 6939, 7003, + 8198, 97, 44, 7048, 7094, 0, 0, 5585, 0, 0, + 0, 0, 0, -210, 7172, 2108, 2108, -60, 7216, 0, + 184, 184, 184, 184, 0, 45, 45, -57, -57, -57, + -57, -176, -60, 6770, 6332, 32, 0, 0, 5632, 5700, + 0, 0, 0, -148, 184, 8153, 8153, 8153, 8153, 8001, + 102, 0, 0, 0, 8153, 8153, 0, 8198, 8198, 107, + 121, 127, 8153, 0, 0, 0, 8153, 0, -130, 0, + 0, 0, 8045, 0, -43, 0, 5899, 8153, -119, 0, + 8153, 0, 0, 1434, 1434, 0, 0, 37, 5431, 6447, + 6491, 6548, 134, 7281, 0, 6611, 7327, -210, -45, -45, + 6722, 6722, 2656, 8045, 8045, 4777, 90, -210, -210, 0, + 0, 0, 0, 0, 0, 8045, 8045, 8045, 8045, -52, + 0, 8105, 0, 8153, 0, 8153, 0, 8153, 0, 8153, + 0, 0, -96, 0, 8153, 0, 0, 0, 0, 8153, + 8153, -39, -37, 7371, 0, 124, -89, 8198, 5967, -210, + -210, -210, -210, -210, 144, 7449, 7493, 7560, 7604, 7648, + 0, 7726, 8045, 8045, 0, 0, 0, 6659, 146, 95, + 0, 0, 0, 0, 0, 0, 0, -210, 0, 4777, + 4777, 4777, 2656, -51, 6722, 0, -210, 6014, -85, 0, + 0, 151, 2656, -35, 0, 0, 0, 152, 0, 4777, + 4777, 0, 0, 0, 4777, 0, }; short yyrindex[] = { 0, - 0, 2452, 0, 0, 0, 0, 185, 0, 0, 0, - 0, 56, 0, 0, 111, 0, 2886, 0, 0, 0, + 0, 2742, 0, 0, 0, 0, 194, 0, 0, 0, + 0, 56, 0, 0, 111, 0, 3174, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2279, 0, 2328, - 2048, 4023, 0, 0, 0, 2120, 1671, 3590, 0, 0, - 0, 145, 145, 0, 0, 382, 0, 0, 0, 0, - 145, 95, 0, 0, 0, 818, 872, 946, 0, 0, - 0, 437, 5769, 0, -16, -10, 18, 0, 2511, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2170, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3951, 492, 5769, 5769, 0, 0, 0, - 0, 0, 2934, 0, 0, 0, 0, 0, 0, 145, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5769, 0, 0, 0, 2221, 0, 0, 2982, - 3222, 3267, 3312, 0, 1781, 1854, 1217, 1271, 1325, 1400, - 2619, 1726, 0, -23, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3381, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 102, 102, 0, 0, - 0, 171, 0, 0, 0, 174, 0, 0, 0, 0, - 0, 242, 0, 0, 0, 0, 0, 763, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4508, 248, 297, 0, - 0, 128, 350, 358, 0, 0, 5769, 4604, 0, 0, - 0, 0, 0, 0, 3657, 3705, 3760, 3866, 2561, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 130, 0, 0, 0, 95, 0, 4695, 4779, - 4870, 4962, 5053, 0, 0, 0, 0, 0, 0, 0, - 0, 398, 431, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5769, 0, 0, 0, - 0, 149, 0, 0, 0, 5137, 0, 5853, 0, 0, - 0, 149, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2475, 0, + 2531, 2375, 4311, 0, 0, 0, 2057, 1630, 3897, 0, + 0, 0, 154, 154, 0, 0, 382, 0, 0, 0, + 0, 154, 105, 0, 0, 0, 818, 872, 1143, 0, + 0, 0, 437, 6065, 0, -54, -49, -44, 0, 2798, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2324, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4263, 492, 6065, 6065, 0, 0, + 0, 0, 0, 3222, 0, 0, 0, 0, 0, 0, + 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6065, 0, 0, 0, 2425, 0, 0, + 3462, 3507, 3552, 3621, 0, 1956, 2007, 1197, 1251, 1522, + 1576, 3119, 1901, 0, -23, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3830, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 504, 504, 0, + 0, 0, 13, 0, 0, 0, 103, 0, 0, 0, + 0, 0, 123, 0, 0, 0, 0, 0, 763, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4830, 173, 242, + 0, 0, 140, 297, 350, 0, 0, 6065, 4878, 0, + 0, 0, 0, 0, 0, 3945, 4017, 4106, 4208, 2848, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 141, 0, 0, 0, 105, 0, 4952, + 5145, 5219, 5266, 5318, 0, 0, 0, 0, 0, 0, + 0, 0, 398, 484, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 6065, 0, 0, + 0, 0, 161, 0, 0, 0, 5534, 0, 6180, 0, + 0, 0, 161, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, }; short yygindex[] = { 0, - -30, 0, 0, 4250, -24, 0, 0, 0, 0, 397, - 24, 4208, -17, -15, -13, 7990, 4404, 0, -82, 0, - 0, 0, -173, -192, 0, -277, -28, + -17, 0, 0, 4597, -87, 0, 0, 0, 0, 12, + 23, 4555, -12, -8, -3, 8435, 4752, 0, -70, 0, + 0, 0, -124, -191, 0, -264, -7, }; -#define YYTABLESIZE 8273 -short yytable[] = { 129, - 85, 284, 55, 285, 96, 318, 6, 312, 79, 94, - 92, 81, 93, 81, 95, 232, 257, 16, 75, 155, - 76, 81, 77, 81, 311, 81, 280, 81, 96, 264, - 41, 84, 49, 94, 317, 99, 50, 85, 95, 97, - 85, 85, 85, 85, 85, 85, 17, 85, 100, 101, - 81, 266, 18, 69, 24, 62, 51, 98, 85, 85, - 85, 97, 85, 85, 52, 33, 34, 60, 202, 240, - 155, 157, 241, 100, 101, 125, 126, 53, 258, 98, - 19, 158, 159, 54, 57, 97, 58, 59, 61, 62, - 63, 64, 62, 85, 85, 78, 62, 62, 62, 62, - 62, 80, 62, 98, 120, 114, 98, 137, 196, 264, - 37, 130, 85, 62, 62, 62, 131, 62, 62, 264, - 132, 144, 152, 85, 85, 308, 309, 310, 151, 157, - 161, 162, 165, 173, 172, 75, 167, 76, 207, 77, - 214, 226, 91, 220, 221, 322, 323, 37, 62, 62, - 325, 37, 37, 37, 37, 37, 222, 37, 198, 199, - 91, 83, 250, 91, 125, 126, 287, 62, 37, 37, - 37, 267, 37, 37, 239, 288, 291, 304, 62, 62, - 305, 316, 315, 321, 1, 91, 116, 91, 117, 116, - 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 268, 37, 37, 0, 0, 3, 4, 5, - 0, 124, 0, 0, 127, 0, 229, 230, 231, 256, - 0, 0, 37, 65, 0, 91, 28, 0, 29, 124, - 0, 0, 127, 37, 37, 24, 0, 0, 82, 83, - 82, 83, 91, 261, 262, 0, 33, 34, 82, 83, - 82, 83, 82, 83, 82, 83, 0, 85, 85, 85, +#define YYTABLESIZE 8719 +short yytable[] = { 130, + 85, 285, 82, 286, 97, 319, 6, 313, 17, 95, + 93, 82, 94, 18, 96, 233, 258, 16, 19, 159, + 160, 82, 80, 82, 76, 82, 281, 82, 77, 42, + 85, 265, 156, 78, 101, 102, 98, 85, 312, 50, + 85, 85, 85, 85, 85, 85, 197, 85, 318, 82, + 126, 127, 70, 125, 99, 62, 100, 51, 85, 85, + 85, 98, 85, 85, 111, 112, 52, 53, 61, 101, + 102, 125, 203, 122, 123, 158, 63, 241, 259, 99, + 242, 97, 54, 156, 81, 55, 95, 58, 56, 59, + 60, 96, 62, 85, 85, 79, 62, 62, 62, 62, + 62, 267, 62, 62, 64, 65, 115, 138, 121, 99, + 37, 265, 85, 62, 62, 62, 24, 62, 62, 131, + 132, 265, 153, 85, 85, 133, 145, 33, 34, 35, + 152, 158, 172, 162, 163, 166, 174, 173, 98, 168, + 269, 76, 215, 128, 208, 77, 221, 37, 62, 62, + 78, 37, 37, 37, 37, 37, 99, 37, 199, 200, + 222, 128, 227, 118, 126, 127, 223, 62, 37, 37, + 37, 84, 37, 37, 251, 309, 310, 311, 62, 62, + 268, 118, 288, 289, 292, 305, 316, 306, 240, 219, + 220, 317, 322, 1, 92, 323, 324, 92, 117, 118, + 326, 117, 0, 37, 37, 0, 0, 3, 4, 5, + 308, 0, 261, 120, 0, 0, 230, 231, 232, 257, + 0, 0, 37, 66, 0, 0, 28, 0, 29, 83, + 84, 120, 0, 37, 37, 17, 17, 0, 83, 84, + 18, 18, 92, 262, 263, 19, 19, 0, 83, 84, + 83, 84, 83, 84, 83, 84, 0, 85, 85, 85, 85, 85, 85, 85, 85, 85, 16, 16, 85, 85, - 85, 0, 307, 17, 17, 85, 0, 82, 83, 18, - 18, 85, 117, 85, 85, 85, 85, 85, 119, 85, + 85, 0, 125, 125, 125, 85, 83, 84, 0, 290, + 0, 85, 122, 85, 85, 85, 85, 85, 0, 85, 85, 85, 85, 85, 85, 85, 85, 85, 0, 85, - 117, 85, 85, 85, 85, 85, 119, 19, 19, 0, - 303, 0, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 0, 0, 62, 62, 62, 0, 313, 0, 0, - 62, 0, 0, 0, 0, 0, 62, 121, 62, 62, + 122, 85, 85, 85, 85, 85, 85, 0, 0, 0, + 304, 0, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 24, 0, 62, 62, 62, 0, 314, 0, 0, + 62, 0, 33, 34, 35, 0, 62, 126, 62, 62, 62, 62, 62, 0, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 0, 62, 121, 62, 62, 62, 62, - 62, 91, 91, 91, 0, 0, 91, 37, 37, 37, + 62, 62, 62, 0, 62, 126, 62, 62, 62, 62, + 62, 62, 128, 128, 128, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, 0, 0, 37, 37, - 37, 57, 0, 0, 0, 37, 0, 0, 0, 0, - 125, 37, 0, 37, 37, 37, 37, 37, 128, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 125, 37, - 0, 37, 37, 37, 37, 37, 128, 0, 57, 0, + 37, 57, 118, 118, 118, 37, 0, 0, 0, 0, + 129, 37, 0, 37, 37, 37, 37, 37, 0, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 129, 37, + 0, 37, 37, 37, 37, 37, 37, 0, 57, 0, 0, 57, 57, 57, 57, 57, 57, 0, 57, 0, - 124, 124, 124, 127, 127, 127, 88, 0, 118, 57, - 57, 0, 0, 57, 57, 0, 12, 13, 110, 111, - 0, 14, 15, 16, 0, 0, 118, 121, 122, 0, + 0, 0, 120, 120, 120, 0, 89, 0, 119, 57, + 57, 0, 0, 57, 57, 0, 12, 13, 0, 0, + 0, 14, 15, 16, 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 17, 0, 18, 19, 20, 0, - 22, 120, 0, 88, 57, 57, 88, 88, 88, 88, - 88, 88, 27, 88, 0, 31, 32, 33, 34, 120, - 0, 90, 0, 57, 88, 88, 88, 0, 88, 88, - 0, 117, 117, 117, 57, 57, 0, 119, 119, 119, - 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 90, 88, - 88, 90, 90, 90, 90, 0, 90, 0, 90, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, - 90, 90, 0, 90, 90, 0, 121, 121, 121, 88, - 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 218, 219, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 90, 90, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 90, 0, 0, 0, 0, 0, 125, - 125, 125, 0, 0, 90, 90, 0, 128, 128, 128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 22, 0, 0, 89, 57, 57, 89, 89, 89, 89, + 89, 89, 27, 89, 0, 31, 32, 33, 34, 35, + 0, 91, 0, 57, 89, 89, 89, 0, 89, 89, + 0, 122, 122, 122, 57, 57, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 121, 0, 0, 0, 91, 89, + 89, 91, 91, 91, 91, 0, 91, 0, 91, 0, + 0, 0, 121, 0, 92, 0, 0, 0, 0, 91, + 91, 91, 0, 91, 91, 0, 126, 126, 126, 89, + 89, 0, 92, 0, 0, 92, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 91, 91, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 91, 0, 0, 0, 0, 0, 129, + 129, 129, 0, 0, 91, 91, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57, 57, 57, 57, 57, 57, 57, 0, 0, 57, - 57, 57, 0, 0, 0, 0, 57, 118, 118, 118, - 0, 0, 57, 289, 57, 57, 57, 57, 57, 0, + 57, 57, 0, 0, 0, 0, 57, 119, 119, 119, + 0, 0, 57, 0, 57, 57, 57, 57, 57, 0, 57, 57, 57, 57, 57, 57, 57, 57, 57, 0, - 57, 0, 57, 57, 57, 57, 57, 0, 0, 0, - 120, 120, 120, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 0, 0, 88, 88, 88, 0, 0, 0, - 0, 88, 0, 0, 0, 0, 0, 88, 0, 88, - 88, 88, 88, 88, 0, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 0, 88, 0, 88, 88, 88, - 88, 88, 0, 0, 0, 0, 0, 0, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 0, 0, 90, - 90, 90, 23, 0, 0, 0, 90, 0, 0, 0, - 0, 0, 90, 0, 90, 90, 90, 90, 90, 0, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 0, - 90, 0, 90, 90, 90, 90, 90, 0, 0, 23, + 57, 0, 57, 57, 57, 57, 57, 57, 0, 0, + 0, 0, 0, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 0, 0, 89, 89, 89, 0, 0, 0, + 0, 89, 0, 0, 0, 0, 0, 89, 0, 89, + 89, 89, 89, 89, 0, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 0, 89, 0, 89, 89, 89, + 89, 89, 89, 121, 121, 121, 0, 0, 91, 91, + 91, 91, 91, 91, 91, 91, 91, 0, 0, 91, + 91, 91, 23, 92, 92, 92, 91, 0, 92, 0, + 0, 0, 91, 0, 91, 91, 91, 91, 91, 0, + 91, 91, 91, 91, 91, 91, 91, 91, 91, 0, + 91, 0, 91, 91, 91, 91, 91, 91, 0, 23, 0, 0, 23, 23, 23, 23, 23, 23, 0, 23, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 23, 23, 23, 0, 23, 23, 0, 0, 0, 0, @@ -315,822 +325,866 @@ short yytable[] = { 129, 54, 39, 39, 39, 39, 39, 39, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 39, 39, 0, 39, 39, 0, 0, 0, 0, 0, - 54, 54, 0, 0, 0, 53, 0, 0, 0, 0, + 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 39, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 39, 0, 53, 53, 53, 53, 53, - 53, 0, 53, 0, 39, 39, 0, 0, 0, 0, - 0, 0, 0, 53, 53, 53, 0, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 23, 23, 23, 23, 23, 23, 23, 23, 0, 0, - 23, 23, 23, 0, 0, 0, 0, 23, 53, 0, + 23, 23, 23, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 23, 0, 23, 23, 23, 23, 23, 0, 23, 23, 0, 23, 23, 23, 23, 23, 23, - 0, 23, 0, 23, 23, 23, 23, 23, 53, 53, + 0, 23, 0, 23, 23, 23, 23, 23, 23, 0, 0, 0, 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 0, 0, 54, 54, 54, 0, 0, - 0, 0, 54, 0, 0, 0, 0, 0, 54, 0, + 0, 0, 54, 0, 66, 161, 0, 28, 54, 29, 54, 54, 54, 54, 54, 0, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 0, 54, 0, 54, 54, - 54, 54, 54, 0, 0, 0, 0, 0, 39, 39, + 54, 54, 54, 54, 54, 0, 54, 86, 54, 54, + 54, 54, 54, 54, 0, 0, 0, 0, 39, 39, 39, 39, 39, 39, 39, 39, 39, 0, 0, 39, - 39, 39, 0, 0, 0, 0, 39, 0, 0, 0, + 39, 39, 53, 0, 0, 0, 39, 0, 0, 0, 0, 0, 39, 0, 39, 39, 39, 39, 39, 0, 39, 39, 39, 39, 39, 39, 39, 39, 39, 0, - 39, 0, 39, 0, 0, 39, 39, 0, 0, 0, + 39, 0, 39, 0, 0, 39, 39, 39, 0, 53, + 0, 0, 53, 53, 53, 53, 53, 53, 0, 53, + 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, + 53, 53, 53, 0, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 0, 0, 53, 53, 53, 44, 0, 0, 0, - 53, 0, 0, 0, 0, 0, 53, 0, 53, 53, - 53, 53, 53, 0, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 0, 53, 0, 53, 53, 53, 53, - 53, 0, 0, 44, 0, 0, 44, 44, 44, 44, + 0, 0, 0, 44, 0, 53, 44, 44, 44, 44, 44, 44, 0, 44, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 44, 44, 44, 0, 44, 44, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 44, 45, 45, 45, 45, 45, 45, 0, 45, 0, 0, - 0, 0, 0, 0, 46, 0, 0, 0, 45, 45, - 45, 0, 45, 45, 0, 0, 0, 0, 0, 44, - 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 0, 45, 46, 46, 46, 46, 46, 46, - 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 46, 46, 46, 0, 46, 46, 0, 0, - 0, 0, 0, 45, 45, 0, 0, 0, 0, 47, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 47, 0, 0, 47, - 47, 47, 47, 47, 47, 0, 47, 46, 46, 0, - 0, 0, 0, 0, 0, 0, 0, 47, 47, 47, - 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, + 45, 0, 45, 45, 0, 0, 0, 12, 13, 44, + 44, 0, 14, 15, 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 0, 18, 19, 20, + 0, 22, 0, 45, 0, 0, 23, 24, 25, 26, + 0, 0, 0, 27, 0, 0, 31, 32, 33, 34, + 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 0, 0, + 53, 53, 53, 0, 0, 0, 0, 53, 0, 0, + 0, 0, 0, 53, 0, 53, 53, 53, 53, 53, + 0, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 0, 53, 0, 53, 53, 53, 53, 53, 53, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 0, 0, 44, 44, 44, 0, 0, 0, - 0, 44, 47, 0, 0, 0, 0, 44, 0, 44, + 0, 44, 0, 66, 0, 0, 28, 44, 29, 44, 44, 44, 44, 44, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 0, 44, 0, 44, 44, 44, - 44, 44, 47, 47, 0, 0, 0, 45, 45, 45, + 44, 44, 44, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 45, 45, - 45, 0, 0, 0, 0, 45, 0, 0, 0, 0, + 45, 46, 0, 0, 0, 45, 0, 0, 0, 0, 0, 45, 0, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, - 0, 45, 45, 45, 45, 45, 0, 0, 0, 0, - 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, - 0, 0, 46, 46, 46, 0, 0, 0, 0, 46, - 0, 0, 0, 0, 0, 46, 0, 46, 46, 46, - 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 0, 46, 0, 46, 46, 46, 46, 46, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 0, 0, 47, 47, 47, - 39, 0, 0, 0, 47, 0, 0, 0, 0, 0, - 47, 0, 47, 47, 47, 47, 47, 0, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 0, 47, 0, - 47, 47, 47, 47, 47, 0, 0, 39, 0, 0, - 39, 39, 39, 39, 39, 39, 0, 39, 0, 0, - 0, 0, 0, 0, 0, 36, 0, 0, 39, 39, - 39, 0, 39, 39, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 36, 39, 39, 36, 36, 36, 36, 36, - 36, 0, 36, 0, 0, 0, 0, 0, 0, 0, - 42, 0, 39, 36, 36, 36, 0, 36, 0, 0, - 0, 0, 0, 39, 39, 0, 0, 0, 0, 0, + 0, 45, 45, 45, 45, 45, 45, 0, 46, 0, + 0, 46, 46, 46, 46, 46, 46, 0, 46, 0, + 0, 0, 0, 0, 0, 47, 0, 0, 0, 46, + 46, 46, 0, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, - 42, 42, 0, 42, 42, 42, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 36, 42, 42, - 42, 0, 42, 42, 0, 0, 0, 0, 36, 36, - 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, + 0, 0, 47, 0, 46, 47, 47, 47, 47, 47, + 47, 0, 47, 0, 0, 0, 0, 0, 0, 39, + 0, 0, 0, 47, 47, 47, 0, 47, 47, 0, + 0, 0, 0, 0, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 43, 43, 0, 43, 43, 43, 0, - 0, 0, 0, 42, 42, 0, 0, 0, 0, 0, - 0, 43, 43, 43, 0, 43, 43, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 39, 0, 47, 39, + 39, 39, 39, 39, 39, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 0, 0, 39, 39, - 39, 0, 0, 0, 0, 39, 43, 0, 0, 0, - 0, 39, 0, 39, 39, 39, 39, 39, 0, 0, - 39, 39, 39, 39, 39, 39, 39, 39, 0, 39, - 0, 39, 0, 0, 39, 39, 43, 43, 0, 0, - 0, 0, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 0, 0, 36, 36, 36, 0, 0, 0, 0, - 36, 0, 0, 0, 0, 0, 36, 0, 36, 36, - 36, 36, 36, 0, 36, 0, 0, 36, 36, 36, - 36, 36, 36, 0, 36, 0, 36, 36, 36, 36, - 36, 0, 0, 0, 0, 0, 0, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 0, 14, 42, 42, - 42, 0, 0, 0, 0, 42, 0, 0, 0, 0, - 0, 42, 0, 42, 42, 42, 42, 42, 0, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 0, 42, - 0, 42, 42, 42, 42, 42, 0, 14, 0, 0, - 14, 0, 14, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, - 43, 43, 43, 43, 43, 43, 43, 43, 43, 33, - 0, 43, 43, 43, 0, 0, 0, 0, 43, 0, - 0, 0, 0, 0, 43, 0, 43, 43, 43, 43, - 43, 0, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 0, 43, 0, 43, 43, 43, 43, 43, 33, - 33, 0, 0, 33, 0, 0, 0, 0, 0, 34, - 14, 0, 0, 0, 0, 0, 0, 33, 33, 33, - 0, 33, 33, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, - 34, 0, 33, 34, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 0, 0, 0, 34, 34, 34, - 0, 34, 34, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 33, 33, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 34, 15, 0, 15, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 12, 15, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 34, 34, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, - 14, 14, 0, 0, 0, 14, 14, 14, 12, 0, - 0, 12, 0, 12, 0, 0, 0, 7, 14, 0, - 14, 14, 14, 14, 14, 0, 0, 12, 0, 14, - 14, 14, 14, 15, 0, 0, 14, 0, 14, 14, - 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, - 7, 0, 7, 0, 0, 0, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 0, 7, 33, 33, 33, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 12, 33, 33, 33, 33, 33, 0, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 0, 33, 0, - 33, 33, 33, 33, 33, 0, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 0, 0, 34, 34, 34, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 34, 6, 34, 34, 34, 34, 34, 0, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 0, 34, 0, - 34, 34, 34, 34, 34, 0, 0, 15, 15, 15, - 15, 15, 15, 15, 15, 0, 0, 0, 15, 15, - 15, 6, 0, 0, 6, 0, 6, 0, 0, 0, - 0, 15, 0, 15, 15, 15, 15, 15, 0, 0, - 5, 0, 15, 15, 15, 15, 0, 0, 0, 15, - 0, 15, 15, 15, 15, 15, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 12, 12, 12, 12, 0, - 12, 12, 12, 0, 0, 0, 12, 12, 12, 0, - 5, 0, 0, 5, 0, 5, 0, 0, 0, 12, - 2, 12, 12, 12, 12, 12, 0, 0, 0, 0, - 12, 12, 12, 12, 6, 0, 0, 12, 0, 12, - 12, 12, 12, 12, 7, 7, 7, 7, 7, 7, - 7, 7, 0, 0, 0, 7, 7, 7, 0, 0, - 2, 0, 0, 2, 0, 2, 0, 0, 7, 0, - 7, 7, 7, 7, 7, 0, 0, 0, 60, 7, - 7, 7, 7, 0, 0, 0, 7, 0, 7, 7, - 7, 7, 7, 5, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 60, 0, 0, 60, 60, - 60, 60, 60, 60, 0, 60, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 60, 60, 60, 0, - 60, 60, 0, 2, 0, 0, 0, 0, 0, 0, + 0, 39, 39, 0, 126, 127, 12, 13, 47, 47, + 0, 14, 15, 16, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 18, 19, 20, 0, + 22, 0, 39, 39, 0, 23, 24, 25, 26, 0, + 0, 0, 27, 0, 0, 31, 32, 33, 34, 35, + 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 39, 39, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 0, 0, 46, + 46, 46, 0, 0, 0, 0, 46, 0, 0, 0, + 0, 0, 46, 0, 46, 46, 46, 46, 46, 0, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, + 46, 0, 46, 46, 46, 46, 46, 46, 0, 0, + 0, 0, 47, 47, 47, 47, 47, 47, 47, 47, + 47, 0, 0, 47, 47, 47, 0, 0, 0, 0, + 47, 0, 0, 0, 0, 0, 47, 0, 47, 47, + 47, 47, 47, 0, 47, 47, 47, 47, 47, 47, + 47, 47, 47, 0, 47, 0, 47, 47, 47, 47, + 47, 47, 0, 0, 0, 0, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 0, 0, 39, 39, 39, + 36, 0, 0, 0, 39, 0, 0, 0, 0, 0, + 39, 0, 39, 39, 39, 39, 39, 0, 0, 39, + 39, 39, 39, 39, 39, 39, 39, 0, 39, 0, + 39, 0, 0, 39, 39, 39, 0, 36, 0, 0, + 36, 36, 36, 36, 36, 36, 0, 36, 0, 0, + 0, 0, 0, 0, 0, 42, 0, 0, 36, 36, + 36, 0, 36, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 36, 36, 42, 42, 0, 42, 42, + 42, 0, 0, 0, 0, 0, 43, 0, 0, 0, + 0, 0, 36, 42, 42, 42, 0, 42, 42, 0, + 0, 0, 0, 36, 36, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 43, 43, 42, 43, + 43, 43, 0, 0, 0, 0, 33, 0, 0, 0, + 0, 0, 0, 0, 43, 43, 43, 0, 43, 43, + 0, 0, 0, 0, 0, 0, 0, 0, 42, 42, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 33, 33, 0, 43, + 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 33, 33, 33, 0, 33, 33, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, + 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 37, 0, 33, + 28, 0, 29, 0, 0, 0, 0, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 0, 0, 36, 36, + 36, 0, 0, 0, 0, 36, 0, 0, 0, 33, + 33, 36, 0, 36, 36, 36, 36, 36, 0, 36, + 0, 0, 36, 36, 36, 36, 36, 36, 0, 36, + 0, 36, 36, 36, 36, 36, 36, 0, 0, 0, + 0, 0, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 0, 0, 42, 42, 42, 0, 0, 0, 0, + 42, 0, 0, 0, 0, 0, 42, 0, 42, 42, + 42, 42, 42, 0, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 0, 42, 0, 42, 42, 42, 42, + 42, 42, 0, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 0, 0, 43, 43, 43, 0, 0, 0, + 0, 43, 0, 0, 0, 0, 0, 43, 0, 43, + 43, 43, 43, 43, 0, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 0, 43, 0, 43, 43, 43, + 43, 43, 43, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 0, 34, 33, 33, 33, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 33, 0, 33, + 33, 33, 33, 33, 0, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 0, 33, 0, 33, 33, 33, + 33, 33, 33, 34, 34, 0, 11, 34, 126, 127, + 12, 13, 0, 0, 14, 14, 15, 16, 0, 0, + 0, 34, 34, 34, 0, 34, 34, 0, 17, 0, + 18, 19, 20, 0, 22, 0, 0, 0, 0, 23, + 24, 25, 26, 0, 0, 0, 27, 0, 30, 31, + 32, 33, 34, 35, 14, 0, 34, 14, 0, 14, + 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, + 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 34, 34, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 15, 0, 0, 15, 0, 15, + 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, + 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 12, 0, 0, 12, 0, 12, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 12, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 7, 0, 7, 0, 0, 0, 0, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 7, + 0, 34, 34, 34, 0, 0, 0, 12, 0, 0, + 0, 0, 0, 0, 34, 0, 34, 34, 34, 34, + 34, 0, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 0, 34, 0, 34, 34, 34, 34, 34, 34, + 0, 14, 14, 14, 14, 14, 14, 14, 14, 0, + 0, 0, 14, 14, 14, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 14, 0, 14, 14, 14, + 14, 14, 0, 0, 0, 0, 14, 14, 14, 14, + 0, 0, 0, 14, 0, 14, 14, 14, 14, 14, + 14, 15, 15, 15, 15, 15, 15, 15, 15, 0, + 0, 0, 15, 15, 15, 66, 0, 0, 28, 0, + 29, 0, 0, 0, 0, 15, 0, 15, 15, 15, + 15, 15, 0, 0, 0, 0, 15, 15, 15, 15, + 0, 0, 0, 15, 0, 15, 15, 15, 15, 15, + 15, 12, 12, 12, 12, 0, 12, 12, 12, 0, + 0, 6, 12, 12, 12, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 12, 0, 12, 12, 12, + 12, 12, 0, 0, 0, 0, 12, 12, 12, 12, + 0, 0, 0, 12, 0, 12, 12, 12, 12, 12, + 12, 6, 0, 0, 6, 0, 6, 7, 7, 7, + 7, 7, 7, 7, 7, 0, 0, 5, 7, 7, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7, 0, 7, 7, 7, 7, 7, 0, 0, + 0, 0, 7, 7, 7, 7, 0, 0, 0, 7, + 0, 7, 7, 7, 7, 7, 7, 5, 0, 0, + 5, 0, 5, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, + 2, 0, 2, 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, 12, 13, + 5, 178, 179, 14, 15, 16, 0, 0, 0, 0, + 0, 183, 184, 185, 186, 187, 17, 0, 18, 19, + 20, 0, 22, 189, 0, 0, 0, 23, 24, 25, + 26, 0, 0, 0, 27, 0, 0, 31, 32, 33, + 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, - 6, 60, 60, 0, 6, 6, 0, 0, 0, 6, + 6, 0, 0, 0, 6, 6, 0, 0, 0, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 60, 0, 6, 0, 6, 6, 6, 6, 6, 0, - 0, 60, 60, 6, 6, 6, 6, 0, 0, 0, - 6, 0, 6, 6, 6, 6, 6, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, - 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 0, 5, 5, 5, 5, 5, 0, 0, - 0, 0, 5, 5, 5, 5, 0, 0, 0, 5, - 0, 5, 5, 5, 5, 5, 0, 2, 2, 2, - 0, 0, 0, 2, 2, 0, 0, 0, 2, 2, - 2, 0, 0, 0, 0, 36, 0, 0, 28, 0, - 29, 2, 0, 2, 2, 2, 2, 2, 0, 0, - 0, 0, 2, 2, 2, 2, 0, 0, 0, 2, - 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, + 0, 0, 6, 0, 6, 6, 6, 6, 6, 0, + 0, 0, 0, 6, 6, 6, 6, 0, 0, 0, + 6, 0, 6, 6, 6, 6, 6, 6, 0, 0, + 0, 0, 0, 0, 5, 5, 5, 0, 0, 0, + 5, 5, 0, 0, 0, 5, 5, 5, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, + 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, + 5, 5, 5, 0, 0, 0, 5, 0, 5, 5, + 5, 5, 5, 5, 2, 2, 2, 0, 0, 0, + 2, 2, 0, 0, 0, 2, 2, 2, 60, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, + 2, 2, 2, 0, 0, 0, 2, 0, 2, 2, + 2, 2, 2, 2, 0, 60, 0, 0, 60, 60, + 60, 60, 60, 60, 0, 60, 0, 0, 0, 0, + 0, 0, 0, 56, 0, 0, 60, 60, 60, 0, + 60, 60, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56, 60, 60, 56, 56, 56, 56, 56, 56, 0, + 56, 58, 0, 0, 0, 0, 0, 0, 0, 0, + 60, 56, 56, 0, 0, 56, 56, 0, 0, 0, + 0, 60, 60, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, + 0, 0, 58, 58, 0, 58, 56, 56, 58, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, + 58, 58, 0, 58, 58, 56, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 56, 56, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 58, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 58, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 0, 56, 60, 60, 60, 0, + 60, 60, 60, 60, 0, 0, 60, 60, 60, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 60, 0, 60, 60, 60, 60, 60, 0, 60, 60, 60, - 60, 0, 60, 60, 60, 60, 0, 60, 35, 60, - 60, 60, 56, 0, 0, 56, 56, 56, 56, 56, - 56, 0, 56, 58, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 56, 0, 0, 56, 56, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 58, 0, 0, 0, 58, 58, 0, 58, 56, 56, - 58, 29, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 58, 58, 58, 0, 58, 58, 56, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, - 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, - 0, 0, 29, 29, 0, 29, 58, 58, 29, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, - 29, 29, 0, 29, 29, 58, 0, 0, 0, 0, - 0, 0, 9, 10, 11, 0, 58, 58, 12, 13, - 0, 0, 0, 14, 15, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 29, 29, 17, 0, 18, 19, - 20, 21, 22, 0, 0, 0, 0, 23, 24, 25, - 26, 0, 0, 29, 27, 0, 30, 31, 32, 33, - 34, 0, 0, 0, 29, 29, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 60, 0, 60, 60, 60, 60, 0, 60, 0, 60, + 60, 60, 0, 0, 0, 0, 0, 0, 0, 0, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 0, + 0, 56, 56, 56, 0, 0, 0, 0, 56, 0, + 0, 0, 0, 0, 56, 0, 56, 56, 56, 56, + 56, 29, 56, 56, 56, 56, 0, 56, 56, 56, + 56, 0, 56, 0, 56, 56, 56, 0, 58, 58, + 58, 58, 58, 58, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 58, 0, 29, 0, + 0, 0, 29, 29, 0, 29, 25, 58, 29, 0, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 29, + 29, 29, 58, 29, 29, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 25, 0, 0, 0, 25, 25, 0, + 25, 27, 0, 25, 29, 29, 0, 0, 0, 0, + 0, 0, 0, 0, 25, 25, 25, 0, 25, 25, + 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 29, 29, 0, 0, 27, 0, + 0, 0, 27, 27, 0, 27, 0, 0, 27, 25, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 27, + 27, 27, 0, 27, 27, 0, 0, 0, 25, 0, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 25, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 27, 27, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, + 0, 26, 26, 27, 26, 0, 0, 26, 0, 0, + 0, 0, 0, 0, 27, 27, 0, 0, 26, 26, + 26, 0, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 0, 0, 56, 56, 56, 0, 0, 0, 0, - 56, 0, 0, 0, 0, 0, 56, 0, 56, 56, - 56, 56, 56, 0, 56, 56, 56, 56, 0, 56, - 56, 56, 56, 0, 56, 0, 56, 56, 56, 0, - 58, 58, 58, 58, 58, 58, 0, 0, 58, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, - 0, 25, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 0, 0, 0, 58, 0, 0, 0, 29, 29, + 0, 0, 0, 26, 26, 0, 0, 0, 29, 29, 29, 29, 29, 29, 0, 0, 29, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 29, 0, 25, 0, - 0, 0, 25, 25, 0, 25, 27, 29, 25, 0, - 29, 29, 29, 29, 29, 29, 29, 29, 29, 25, - 25, 25, 29, 25, 25, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 27, 0, 0, 0, 27, 27, 0, - 27, 26, 0, 27, 25, 25, 0, 0, 0, 0, - 0, 0, 0, 0, 27, 27, 27, 0, 27, 27, - 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 25, 25, 0, 0, 26, 0, - 0, 0, 26, 26, 0, 26, 0, 0, 26, 27, - 27, 0, 0, 0, 0, 0, 0, 0, 0, 26, - 26, 26, 0, 26, 26, 0, 0, 0, 27, 0, - 59, 0, 0, 0, 0, 0, 0, 0, 0, 27, - 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 26, 26, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, - 0, 59, 59, 26, 59, 0, 0, 59, 0, 0, - 0, 0, 0, 0, 26, 26, 0, 0, 59, 59, - 59, 0, 59, 59, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 59, 59, 0, 0, 0, 25, 25, - 25, 25, 25, 25, 0, 0, 25, 0, 0, 0, - 0, 0, 59, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 0, 59, 59, 0, 0, 25, 0, 0, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, - 0, 0, 25, 27, 27, 27, 27, 27, 27, 0, - 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 27, 0, 0, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 0, 0, 0, 27, 26, 26, - 26, 26, 26, 26, 0, 0, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 26, 0, 0, 91, - 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, - 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, - 91, 91, 0, 91, 0, 0, 91, 59, 59, 59, - 59, 59, 59, 0, 0, 59, 0, 91, 91, 91, - 0, 91, 91, 0, 0, 59, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 59, 0, 0, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 0, 0, - 0, 59, 91, 91, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 20, 0, 0, 0, 20, 20, 0, - 20, 91, 0, 20, 35, 0, 0, 0, 0, 0, - 0, 0, 91, 91, 20, 20, 20, 0, 20, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 35, 0, 0, 0, 35, 35, 0, 35, 20, - 20, 35, 0, 0, 0, 0, 0, 0, 0, 92, - 0, 0, 35, 35, 35, 0, 35, 0, 20, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, - 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 92, 35, 35, 0, - 92, 92, 0, 92, 0, 0, 92, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 35, 92, 92, 92, - 0, 92, 0, 0, 0, 0, 0, 35, 35, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 91, 91, 91, 91, - 91, 91, 92, 92, 91, 65, 0, 0, 28, 0, - 29, 0, 0, 0, 91, 93, 0, 0, 0, 0, - 0, 92, 0, 0, 0, 91, 0, 0, 91, 91, - 91, 0, 92, 92, 0, 91, 91, 0, 0, 0, - 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 93, 0, 0, 0, 93, 93, 0, 93, - 0, 0, 93, 20, 20, 20, 20, 20, 20, 0, - 0, 20, 0, 93, 93, 93, 0, 93, 0, 36, - 0, 20, 28, 0, 29, 0, 0, 0, 0, 0, - 0, 0, 20, 0, 0, 20, 20, 20, 302, 0, - 89, 0, 20, 20, 0, 0, 0, 20, 93, 93, - 0, 35, 35, 35, 35, 35, 35, 0, 0, 35, - 0, 0, 0, 0, 0, 0, 0, 93, 0, 35, - 0, 0, 0, 0, 0, 0, 0, 89, 93, 93, - 35, 89, 89, 35, 35, 35, 0, 89, 0, 0, - 35, 35, 0, 0, 0, 35, 0, 0, 89, 89, - 89, 0, 89, 0, 0, 0, 92, 92, 92, 92, - 92, 92, 16, 0, 92, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, - 0, 0, 0, 89, 89, 92, 0, 0, 92, 92, - 92, 0, 0, 0, 0, 92, 92, 0, 0, 16, - 92, 0, 89, 16, 16, 0, 16, 0, 0, 16, - 0, 0, 0, 89, 89, 0, 125, 126, 12, 13, - 16, 16, 0, 14, 15, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 17, 0, 18, 19, - 20, 0, 22, 0, 0, 0, 0, 23, 24, 25, - 26, 0, 0, 0, 27, 16, 16, 31, 32, 33, - 34, 0, 93, 93, 93, 93, 93, 93, 0, 0, - 93, 0, 0, 0, 16, 0, 0, 0, 0, 0, - 93, 0, 0, 0, 0, 16, 16, 0, 11, 0, - 0, 93, 12, 13, 93, 93, 93, 14, 15, 16, - 0, 93, 93, 0, 0, 0, 93, 0, 0, 0, - 17, 0, 18, 19, 20, 0, 22, 0, 0, 0, - 0, 23, 24, 25, 26, 0, 0, 0, 27, 0, - 30, 31, 32, 33, 34, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 89, 89, 89, - 89, 89, 89, 0, 42, 89, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 89, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 89, 42, 0, 89, - 89, 89, 0, 42, 0, 0, 89, 89, 0, 0, - 0, 89, 0, 0, 0, 104, 0, 0, 109, 104, - 104, 112, 113, 0, 116, 118, 119, 0, 104, 104, - 123, 124, 42, 0, 0, 0, 0, 0, 0, 16, - 16, 16, 16, 16, 16, 0, 0, 16, 134, 0, - 0, 42, 138, 140, 141, 142, 143, 16, 106, 107, - 0, 0, 0, 0, 0, 0, 42, 0, 16, 154, - 0, 16, 16, 16, 0, 0, 0, 0, 0, 0, - 0, 164, 0, 16, 0, 0, 0, 104, 0, 133, - 0, 135, 136, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 42, 42, 0, 65, 0, 0, 28, 0, - 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 213, 0, 0, 0, - 0, 215, 216, 0, 104, 104, 0, 0, 0, 223, - 0, 0, 0, 224, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 235, 203, 204, 236, 0, 0, - 237, 238, 0, 0, 0, 0, 0, 0, 0, 0, - 56, 0, 0, 0, 0, 217, 0, 42, 42, 263, - 0, 67, 67, 0, 70, 71, 225, 67, 227, 0, - 228, 0, 0, 0, 0, 67, 0, 0, 275, 0, - 276, 0, 277, 0, 278, 0, 279, 0, 0, 0, - 0, 281, 0, 252, 0, 0, 282, 283, 65, 0, - 0, 28, 0, 29, 104, 0, 0, 0, 269, 270, - 271, 272, 273, 0, 0, 0, 0, 191, 0, 0, - 0, 0, 0, 0, 42, 67, 67, 67, 67, 67, - 67, 0, 0, 0, 0, 0, 0, 67, 0, 0, - 0, 42, 67, 0, 0, 67, 67, 0, 0, 67, - 0, 67, 67, 0, 0, 0, 67, 67, 0, 297, - 0, 0, 0, 299, 300, 301, 0, 67, 0, 306, - 0, 67, 0, 67, 67, 67, 67, 113, 0, 0, - 113, 189, 113, 0, 201, 0, 0, 67, 0, 0, - 0, 0, 0, 0, 319, 320, 113, 67, 12, 13, - 324, 177, 178, 14, 15, 16, 0, 0, 0, 0, - 0, 182, 183, 184, 185, 186, 17, 0, 18, 19, - 20, 0, 22, 188, 0, 67, 0, 23, 24, 25, - 26, 0, 0, 0, 27, 0, 0, 31, 32, 33, - 34, 67, 67, 67, 67, 0, 67, 0, 67, 67, - 0, 0, 0, 0, 0, 0, 67, 67, 0, 0, - 113, 0, 113, 0, 0, 0, 0, 0, 67, 67, - 67, 67, 0, 112, 0, 0, 112, 0, 112, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 112, 0, 0, 0, 67, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 67, - 67, 67, 67, 0, 67, 67, 67, 0, 176, 125, - 126, 12, 13, 0, 177, 178, 14, 15, 16, 179, - 0, 180, 181, 0, 182, 183, 184, 185, 186, 17, - 187, 18, 19, 20, 0, 22, 188, 0, 0, 0, - 23, 24, 25, 26, 0, 0, 112, 27, 112, 0, - 31, 32, 33, 34, 106, 0, 0, 106, 0, 106, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 106, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 113, 0, 0, + 0, 0, 26, 0, 0, 0, 29, 0, 0, 0, + 0, 0, 0, 26, 26, 0, 0, 29, 0, 0, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 0, + 0, 0, 29, 25, 25, 25, 25, 25, 25, 0, + 66, 25, 0, 28, 157, 29, 0, 0, 0, 0, + 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 25, 86, 0, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 0, 0, 0, 25, 27, 27, + 27, 27, 27, 27, 0, 0, 27, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 27, 0, 0, 59, + 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, + 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, + 59, 59, 0, 59, 0, 0, 59, 26, 26, 26, + 26, 26, 26, 0, 0, 26, 0, 59, 59, 59, + 0, 59, 59, 0, 0, 26, 92, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 26, 0, 0, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, + 0, 26, 59, 59, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 92, 0, 0, 0, 92, 92, 0, + 92, 59, 0, 92, 20, 0, 0, 0, 0, 0, + 0, 0, 59, 59, 92, 92, 92, 0, 92, 92, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 20, 0, 0, 0, 20, 20, 0, 20, 92, + 92, 20, 0, 12, 13, 0, 0, 0, 14, 15, + 16, 0, 20, 20, 20, 0, 20, 0, 92, 0, + 0, 17, 0, 18, 19, 20, 35, 22, 0, 92, + 92, 0, 23, 24, 25, 26, 0, 0, 0, 27, + 0, 0, 31, 32, 33, 34, 35, 20, 20, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 35, 0, 0, 20, 35, 35, 0, + 35, 0, 0, 35, 0, 0, 0, 20, 20, 0, + 0, 0, 0, 0, 35, 35, 35, 0, 35, 0, + 0, 0, 0, 0, 0, 0, 59, 59, 59, 59, + 59, 59, 0, 0, 59, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 59, 93, 0, 0, 0, 35, + 35, 0, 0, 0, 0, 59, 0, 0, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 0, 35, 0, + 59, 0, 0, 0, 0, 0, 0, 0, 0, 35, + 35, 0, 93, 0, 0, 0, 93, 93, 0, 93, + 0, 0, 93, 92, 92, 92, 92, 92, 92, 0, + 0, 92, 0, 93, 93, 93, 0, 93, 0, 0, + 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 92, 0, 0, 92, 92, 92, 0, 0, + 0, 0, 92, 92, 0, 0, 0, 92, 93, 93, + 0, 20, 20, 20, 20, 20, 20, 94, 0, 20, + 0, 0, 0, 0, 0, 0, 0, 93, 0, 20, + 0, 0, 0, 0, 0, 0, 0, 0, 93, 93, + 20, 0, 0, 20, 20, 20, 0, 0, 0, 0, + 20, 20, 0, 0, 94, 20, 0, 0, 94, 94, + 0, 94, 0, 0, 94, 0, 0, 0, 0, 0, + 0, 0, 90, 0, 0, 94, 94, 94, 0, 94, + 0, 0, 0, 35, 35, 35, 35, 35, 35, 0, + 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 35, 0, 0, 0, 0, 0, 0, 0, 90, + 94, 94, 35, 90, 90, 35, 35, 35, 0, 90, + 16, 0, 35, 35, 0, 0, 0, 35, 0, 94, + 90, 90, 90, 0, 90, 0, 0, 0, 0, 0, + 94, 94, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, + 0, 16, 16, 0, 16, 90, 90, 16, 0, 0, + 0, 0, 93, 93, 93, 93, 93, 93, 16, 16, + 93, 0, 0, 0, 90, 0, 0, 0, 0, 0, + 93, 0, 0, 0, 0, 90, 90, 0, 0, 0, + 0, 93, 0, 0, 93, 93, 93, 0, 0, 0, + 0, 93, 93, 16, 16, 0, 93, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 16, 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 94, 94, 94, 94, 94, + 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 0, 0, 94, 94, 94, 0, + 0, 0, 0, 94, 94, 0, 0, 0, 94, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, + 90, 90, 90, 90, 90, 0, 0, 90, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, + 0, 90, 90, 90, 0, 0, 0, 0, 90, 90, + 0, 43, 0, 90, 0, 0, 0, 16, 16, 16, + 16, 16, 16, 0, 0, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 43, 16, 0, 0, 0, 0, + 0, 43, 0, 0, 0, 0, 16, 0, 0, 16, + 16, 16, 0, 105, 0, 0, 110, 105, 105, 113, + 114, 16, 117, 119, 120, 0, 105, 105, 124, 125, + 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 135, 0, 0, 43, + 139, 141, 142, 143, 144, 0, 107, 108, 0, 0, + 0, 0, 0, 0, 43, 0, 0, 155, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, + 0, 0, 0, 0, 0, 105, 0, 134, 0, 136, + 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 43, 43, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 209, 210, 211, 212, 214, 0, 0, 0, 0, 216, + 217, 0, 105, 105, 0, 0, 0, 224, 0, 0, + 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 236, 204, 205, 237, 0, 0, 238, 239, + 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, + 0, 0, 0, 218, 0, 43, 43, 264, 0, 68, + 68, 0, 71, 72, 226, 68, 228, 0, 229, 0, + 0, 0, 0, 0, 68, 0, 276, 0, 277, 0, + 278, 0, 279, 0, 280, 0, 0, 0, 0, 282, + 0, 253, 0, 0, 283, 284, 66, 0, 0, 28, + 0, 29, 105, 0, 0, 0, 270, 271, 272, 273, + 274, 0, 0, 0, 0, 192, 0, 0, 0, 0, + 0, 0, 43, 0, 68, 68, 68, 68, 68, 68, + 0, 0, 0, 0, 0, 0, 68, 0, 0, 43, + 0, 68, 0, 0, 68, 68, 0, 0, 68, 114, + 68, 68, 114, 0, 114, 68, 68, 298, 0, 0, + 0, 300, 301, 302, 0, 0, 68, 307, 114, 0, + 68, 0, 68, 68, 68, 68, 0, 0, 0, 190, + 0, 0, 0, 202, 0, 0, 68, 0, 0, 0, + 0, 0, 320, 321, 0, 0, 68, 113, 325, 0, + 113, 0, 113, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 113, 0, 0, 0, + 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, + 0, 0, 114, 0, 114, 0, 0, 0, 0, 0, + 68, 68, 68, 68, 0, 68, 0, 68, 68, 0, + 0, 0, 0, 0, 0, 68, 68, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 68, 68, 68, + 68, 107, 0, 0, 107, 0, 107, 0, 0, 0, + 113, 0, 113, 0, 0, 0, 0, 0, 0, 0, + 107, 0, 0, 0, 0, 68, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 68, 68, 68, + 68, 68, 0, 68, 68, 68, 177, 126, 127, 12, + 13, 0, 178, 179, 14, 15, 16, 180, 0, 181, + 182, 0, 183, 184, 185, 186, 187, 17, 188, 18, + 19, 20, 0, 22, 189, 0, 0, 0, 23, 24, + 25, 26, 0, 0, 107, 27, 107, 0, 31, 32, + 33, 34, 35, 0, 0, 0, 0, 0, 0, 114, + 0, 0, 114, 114, 0, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 0, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 0, 114, 114, 0, 0, + 0, 114, 114, 114, 114, 0, 0, 0, 114, 0, + 0, 114, 114, 114, 114, 114, 0, 113, 0, 0, 113, 113, 0, 113, 113, 113, 113, 113, 113, 113, 113, 113, 0, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 0, 113, 113, 0, 0, 0, 113, 113, 113, 113, 0, 0, 0, 113, 0, 0, 113, - 113, 113, 113, 0, 0, 0, 0, 106, 107, 106, - 0, 107, 0, 107, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 107, 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, 112, 0, 0, 112, 112, 0, 112, - 112, 112, 112, 112, 112, 112, 112, 112, 0, 112, - 112, 112, 112, 112, 112, 112, 112, 112, 112, 0, - 112, 112, 0, 0, 0, 112, 112, 112, 112, 0, - 0, 107, 112, 107, 0, 112, 112, 112, 112, 108, - 0, 0, 108, 0, 108, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 108, 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, 106, 0, 0, 106, 106, 0, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 0, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 0, 106, 106, 0, 0, 0, 106, 106, 106, 106, - 0, 0, 108, 106, 108, 0, 106, 106, 106, 106, - 0, 105, 0, 0, 105, 0, 105, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 107, 0, - 0, 107, 107, 0, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 0, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 0, 107, 107, 0, 0, 0, - 107, 107, 107, 107, 0, 0, 0, 107, 0, 0, - 107, 107, 107, 107, 105, 0, 105, 0, 0, 0, - 0, 0, 111, 0, 0, 111, 0, 111, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 111, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, - 0, 0, 108, 108, 0, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 0, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 0, 108, 108, 0, 0, - 0, 108, 108, 108, 108, 0, 0, 0, 108, 0, - 0, 108, 108, 108, 108, 111, 140, 111, 0, 140, - 0, 140, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 140, 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, 105, 0, 0, 105, 105, 0, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 0, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 0, 105, 105, - 0, 0, 0, 105, 105, 105, 105, 0, 0, 140, - 105, 140, 0, 105, 105, 105, 105, 65, 0, 0, - 28, 0, 29, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, + 113, 113, 113, 113, 108, 0, 0, 108, 0, 108, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, + 0, 107, 0, 0, 107, 107, 0, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 0, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 0, 107, 107, + 0, 0, 0, 107, 107, 107, 107, 0, 0, 0, + 107, 0, 0, 107, 107, 107, 107, 107, 109, 0, + 0, 109, 0, 109, 0, 0, 0, 108, 0, 108, + 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 106, 0, 0, 106, 0, + 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 109, 0, 109, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 112, 0, 0, + 112, 0, 112, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 112, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 106, 0, + 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 108, 0, 0, 108, 108, 0, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 0, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 0, 108, 108, 0, 0, 0, 108, 108, 108, 108, + 112, 0, 112, 108, 0, 0, 108, 108, 108, 108, + 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 243, 0, 28, 244, 29, 0, 0, 109, 0, + 0, 109, 109, 0, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 86, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 0, 109, 109, 0, 0, 0, + 109, 109, 109, 109, 0, 0, 0, 109, 0, 0, + 109, 109, 109, 109, 109, 106, 0, 0, 106, 106, + 0, 106, 106, 106, 106, 106, 106, 106, 106, 106, + 0, 106, 106, 106, 106, 106, 106, 106, 106, 106, + 106, 0, 106, 106, 0, 0, 0, 106, 106, 106, + 106, 0, 0, 0, 106, 0, 0, 106, 106, 106, + 106, 106, 0, 141, 0, 0, 141, 112, 141, 0, + 112, 112, 0, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 141, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 0, 112, 112, 0, 0, 0, 112, + 112, 112, 112, 0, 0, 0, 112, 0, 0, 112, + 112, 112, 112, 112, 66, 0, 0, 28, 0, 29, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 141, 0, 141, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 66, 0, 0, 28, 0, 29, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 192, 0, 0, 12, 13, 0, 0, 0, 14, 15, + 16, 0, 0, 0, 0, 0, 0, 190, 0, 191, + 0, 17, 0, 18, 19, 20, 0, 22, 0, 0, + 0, 0, 23, 24, 25, 26, 0, 0, 0, 27, + 0, 0, 31, 32, 33, 34, 35, 0, 0, 66, + 0, 0, 28, 0, 29, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 190, 0, 206, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 111, 0, 0, 111, 111, 0, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 0, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 0, 111, - 111, 0, 0, 0, 111, 111, 111, 111, 0, 0, - 189, 111, 190, 0, 111, 111, 111, 111, 0, 65, - 0, 0, 28, 0, 29, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 191, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 140, 0, 0, 140, - 140, 0, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 0, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 0, 140, 140, 0, 0, 0, 140, 140, - 140, 140, 0, 0, 0, 140, 0, 0, 140, 140, - 140, 140, 189, 0, 205, 0, 0, 0, 0, 0, - 65, 0, 0, 28, 0, 29, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, - 12, 13, 0, 177, 178, 14, 15, 16, 179, 0, - 180, 181, 0, 182, 183, 184, 185, 186, 17, 187, - 18, 19, 20, 0, 22, 188, 0, 0, 0, 23, - 24, 25, 26, 0, 0, 0, 27, 0, 0, 31, - 32, 33, 34, 189, 65, 206, 0, 28, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 141, 0, 0, 141, 141, 0, 141, + 141, 141, 141, 141, 141, 141, 141, 141, 0, 141, + 141, 141, 141, 141, 141, 141, 141, 141, 141, 0, + 141, 141, 190, 0, 207, 141, 141, 141, 141, 0, + 0, 0, 141, 0, 0, 141, 141, 141, 141, 141, + 0, 0, 0, 0, 177, 0, 0, 12, 13, 0, + 178, 179, 14, 15, 16, 180, 0, 181, 182, 0, + 183, 184, 185, 186, 187, 17, 188, 18, 19, 20, + 0, 22, 189, 0, 0, 0, 23, 24, 25, 26, + 0, 0, 0, 27, 0, 0, 31, 32, 33, 34, + 35, 177, 0, 0, 12, 13, 0, 178, 179, 14, + 15, 16, 180, 0, 181, 182, 0, 183, 184, 185, + 186, 187, 17, 188, 18, 19, 20, 0, 22, 189, + 0, 0, 0, 23, 24, 25, 26, 0, 0, 0, + 27, 0, 0, 31, 32, 33, 34, 35, 66, 0, + 0, 28, 0, 29, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 192, 0, 177, + 0, 0, 12, 13, 0, 178, 179, 14, 15, 16, + 180, 0, 181, 182, 0, 183, 184, 185, 186, 187, + 17, 188, 18, 19, 20, 0, 22, 189, 0, 0, + 0, 23, 24, 25, 26, 0, 0, 0, 27, 0, + 0, 31, 32, 33, 34, 35, 66, 0, 0, 28, + 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 190, 0, 235, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, - 0, 0, 12, 13, 0, 177, 178, 14, 15, 16, - 179, 0, 180, 181, 0, 182, 183, 184, 185, 186, - 17, 187, 18, 19, 20, 0, 22, 188, 0, 0, - 0, 23, 24, 25, 26, 0, 0, 189, 27, 234, - 0, 31, 32, 33, 34, 65, 0, 0, 28, 0, - 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 66, 0, 0, 28, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 176, 0, 0, 12, 13, 0, 177, 178, 14, 15, - 16, 179, 0, 180, 181, 0, 182, 183, 184, 185, - 186, 17, 187, 18, 19, 20, 0, 22, 188, 0, - 0, 0, 23, 24, 25, 26, 0, 0, 189, 27, - 290, 0, 31, 32, 33, 34, 0, 65, 0, 0, - 28, 0, 29, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, + 0, 291, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 111, 0, 0, 111, 0, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 176, 0, 0, 12, 13, 0, - 177, 178, 14, 15, 16, 179, 0, 180, 181, 0, - 182, 183, 184, 185, 186, 17, 187, 18, 19, 20, - 0, 22, 188, 0, 0, 0, 23, 24, 25, 26, - 0, 0, 0, 27, 0, 0, 31, 32, 33, 34, - 189, 0, 314, 0, 0, 0, 0, 0, 110, 0, - 0, 110, 0, 110, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 110, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 176, 0, 0, 12, 13, - 0, 177, 178, 14, 15, 16, 179, 0, 180, 181, - 0, 182, 183, 184, 185, 186, 17, 187, 18, 19, - 20, 0, 22, 188, 0, 0, 0, 23, 24, 25, - 26, 0, 0, 0, 27, 0, 0, 31, 32, 33, - 34, 110, 133, 110, 0, 133, 0, 133, 0, 0, + 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 190, 0, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, + 0, 12, 13, 0, 178, 179, 14, 15, 16, 180, + 0, 181, 182, 0, 183, 184, 185, 186, 187, 17, + 188, 18, 19, 20, 0, 22, 189, 111, 0, 111, + 23, 24, 25, 26, 0, 0, 0, 27, 0, 0, + 31, 32, 33, 34, 35, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, + 0, 0, 134, 0, 134, 0, 177, 0, 0, 12, + 13, 0, 178, 179, 14, 15, 16, 180, 134, 181, + 182, 0, 183, 184, 185, 186, 187, 17, 188, 18, + 19, 20, 0, 22, 189, 0, 0, 0, 23, 24, + 25, 26, 0, 0, 0, 27, 0, 0, 31, 32, + 33, 34, 35, 177, 0, 0, 12, 13, 0, 178, + 179, 14, 15, 16, 180, 0, 181, 182, 0, 183, + 184, 185, 186, 187, 17, 188, 18, 19, 20, 0, + 22, 189, 134, 0, 134, 23, 24, 25, 26, 0, + 0, 0, 27, 0, 0, 31, 32, 33, 34, 35, + 37, 0, 0, 28, 111, 29, 0, 111, 111, 0, + 111, 111, 111, 111, 111, 111, 0, 111, 111, 0, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 0, 111, 111, 0, 0, 0, 111, 111, 111, 111, + 0, 0, 0, 111, 0, 0, 111, 111, 111, 111, + 111, 66, 0, 0, 28, 157, 29, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 89, 0, 90, 86, 0, 0, 0, 0, 0, + 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 66, 0, 0, 28, 0, + 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 89, 0, 90, 86, 134, + 0, 0, 134, 134, 0, 134, 134, 134, 134, 134, + 134, 0, 134, 134, 0, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 0, 134, 134, 0, 0, + 0, 134, 134, 134, 134, 0, 0, 0, 134, 0, + 0, 134, 134, 134, 134, 134, 66, 245, 0, 28, + 246, 29, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, - 12, 13, 0, 177, 178, 14, 15, 16, 179, 0, - 180, 181, 0, 182, 183, 184, 185, 186, 17, 187, - 18, 19, 20, 65, 22, 188, 28, 156, 29, 23, - 24, 25, 26, 0, 0, 133, 27, 133, 0, 31, - 32, 33, 34, 88, 0, 89, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, - 28, 0, 29, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 88, 110, 89, - 85, 110, 110, 0, 110, 110, 110, 110, 110, 110, - 0, 110, 110, 0, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 36, 110, 110, 28, 0, 29, - 110, 110, 110, 110, 0, 0, 0, 110, 0, 0, - 110, 110, 110, 110, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 65, 242, 0, 28, 243, 29, 0, 0, 0, - 0, 0, 133, 0, 0, 133, 133, 0, 133, 133, - 133, 133, 133, 133, 85, 133, 133, 0, 133, 133, - 133, 133, 133, 133, 133, 133, 133, 133, 0, 133, - 133, 0, 0, 0, 133, 133, 133, 133, 0, 0, - 0, 133, 0, 0, 133, 133, 133, 133, 65, 244, - 0, 28, 245, 29, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 85, 0, 0, 0, 0, 12, 13, 0, 0, - 0, 14, 15, 16, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 18, 19, 20, 0, - 22, 0, 0, 0, 0, 23, 24, 25, 26, 86, - 87, 0, 27, 0, 0, 31, 32, 33, 34, 0, - 12, 13, 0, 0, 0, 14, 15, 16, 0, 0, - 0, 0, 65, 246, 0, 28, 247, 29, 17, 0, + 66, 247, 0, 28, 248, 29, 0, 9, 10, 11, + 0, 0, 0, 12, 13, 0, 0, 0, 14, 15, + 16, 0, 0, 86, 0, 0, 0, 0, 0, 0, + 0, 17, 0, 18, 19, 20, 21, 22, 0, 0, + 0, 0, 23, 24, 25, 26, 0, 0, 0, 27, + 0, 30, 31, 32, 33, 34, 35, 66, 249, 0, + 28, 250, 29, 0, 12, 13, 0, 0, 0, 14, + 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 0, 17, 0, 18, 19, 20, 0, 22, 0, + 0, 0, 0, 23, 24, 25, 26, 87, 88, 0, + 27, 0, 0, 31, 32, 33, 34, 35, 12, 13, + 0, 0, 0, 14, 15, 16, 0, 0, 0, 0, + 66, 254, 0, 28, 255, 29, 17, 0, 18, 19, + 20, 0, 22, 0, 0, 0, 0, 23, 24, 25, + 26, 87, 88, 86, 27, 0, 0, 31, 32, 33, + 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, + 0, 28, 0, 29, 0, 0, 0, 0, 0, 12, + 13, 0, 0, 0, 14, 15, 16, 303, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 17, 0, 18, + 19, 20, 0, 22, 0, 0, 0, 0, 23, 24, + 25, 26, 0, 0, 0, 27, 0, 0, 31, 32, + 33, 34, 35, 12, 13, 0, 0, 0, 14, 15, + 16, 37, 0, 0, 28, 0, 29, 0, 0, 0, + 0, 17, 0, 18, 19, 20, 0, 22, 0, 0, + 0, 0, 23, 24, 25, 26, 0, 0, 0, 27, + 0, 0, 31, 32, 33, 34, 35, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 154, + 12, 13, 28, 0, 29, 14, 15, 16, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 18, 19, 20, 0, 22, 0, 0, 0, 0, 23, - 24, 25, 26, 86, 87, 85, 27, 0, 0, 31, - 32, 33, 34, 11, 0, 125, 126, 12, 13, 0, - 0, 0, 14, 15, 16, 0, 0, 65, 248, 0, - 28, 249, 29, 0, 0, 17, 0, 18, 19, 20, - 0, 22, 0, 0, 0, 0, 23, 24, 25, 26, - 85, 0, 0, 27, 0, 30, 31, 32, 33, 34, - 0, 0, 0, 0, 12, 13, 0, 0, 0, 14, - 15, 16, 0, 0, 65, 253, 0, 28, 254, 29, - 0, 0, 17, 0, 18, 19, 20, 0, 22, 0, - 0, 0, 0, 23, 24, 25, 26, 85, 0, 0, - 27, 0, 0, 31, 32, 33, 34, 0, 0, 0, + 24, 25, 26, 0, 0, 0, 27, 0, 0, 31, + 32, 33, 34, 35, 66, 0, 0, 28, 164, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 12, 13, 0, 0, 0, 14, 15, 16, 36, - 0, 0, 28, 0, 29, 0, 0, 0, 0, 17, + 0, 0, 0, 12, 13, 0, 0, 86, 14, 15, + 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 0, 18, 19, 20, 0, 22, 0, 0, + 0, 0, 23, 24, 25, 26, 0, 0, 0, 27, + 0, 0, 31, 32, 33, 34, 35, 11, 0, 0, + 0, 12, 13, 0, 0, 0, 14, 15, 16, 0, + 0, 66, 0, 0, 28, 167, 29, 0, 0, 17, 0, 18, 19, 20, 0, 22, 0, 0, 0, 0, - 23, 24, 25, 26, 0, 0, 0, 27, 0, 0, - 31, 32, 33, 34, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 153, 0, 0, 28, - 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, + 23, 24, 25, 26, 86, 0, 0, 27, 0, 30, + 31, 32, 33, 34, 35, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, + 11, 28, 169, 29, 12, 13, 0, 0, 0, 14, + 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 17, 0, 18, 19, 20, 0, 22, 0, + 0, 0, 0, 23, 24, 25, 26, 0, 0, 0, + 27, 0, 30, 31, 32, 33, 34, 35, 11, 0, + 0, 0, 12, 13, 0, 0, 0, 14, 15, 16, + 0, 0, 66, 0, 0, 28, 170, 29, 0, 0, + 17, 0, 18, 19, 20, 0, 22, 0, 0, 0, + 0, 23, 24, 25, 26, 86, 0, 0, 27, 0, + 30, 31, 32, 33, 34, 35, 0, 12, 13, 0, + 0, 0, 14, 15, 16, 0, 0, 66, 0, 0, + 28, 175, 29, 0, 0, 17, 0, 18, 19, 20, + 0, 22, 0, 0, 0, 0, 23, 24, 25, 26, + 86, 0, 0, 27, 0, 0, 31, 32, 33, 34, + 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 66, 0, 0, 28, 176, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 12, 13, 0, 0, 0, - 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 12, 13, 86, 0, 0, 14, + 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 17, 0, 18, 19, 20, 0, 22, 0, + 0, 0, 0, 23, 24, 25, 26, 0, 0, 0, + 27, 0, 0, 31, 32, 33, 34, 35, 0, 0, + 0, 12, 13, 0, 0, 0, 14, 15, 16, 0, + 0, 66, 0, 0, 28, 0, 29, 0, 0, 17, + 0, 18, 19, 20, 0, 22, 0, 0, 0, 198, + 23, 24, 25, 26, 86, 0, 0, 27, 0, 0, + 31, 32, 33, 34, 35, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 66, 0, 0, 28, 0, + 29, 0, 0, 0, 0, 12, 13, 0, 0, 0, + 14, 15, 16, 201, 0, 0, 0, 0, 86, 0, 0, 0, 0, 17, 0, 18, 19, 20, 0, 22, 0, 0, 0, 0, 23, 24, 25, 26, 0, 0, - 0, 27, 0, 0, 31, 32, 33, 34, 0, 0, + 0, 27, 0, 0, 31, 32, 33, 34, 35, 0, 12, 13, 0, 0, 0, 14, 15, 16, 0, 0, - 65, 0, 0, 28, 156, 29, 0, 0, 17, 0, + 66, 252, 0, 28, 0, 29, 0, 0, 17, 0, 18, 19, 20, 0, 22, 0, 0, 0, 0, 23, - 24, 25, 26, 85, 0, 0, 27, 0, 0, 31, - 32, 33, 34, 0, 0, 0, 0, 12, 13, 0, - 0, 0, 14, 15, 16, 0, 0, 65, 160, 0, - 28, 0, 29, 0, 0, 17, 0, 18, 19, 20, - 0, 22, 0, 0, 0, 0, 23, 24, 25, 26, - 85, 0, 0, 27, 0, 0, 31, 32, 33, 34, - 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, - 0, 0, 12, 13, 0, 0, 0, 14, 15, 16, - 0, 0, 65, 0, 0, 28, 163, 29, 0, 0, - 17, 0, 18, 19, 20, 0, 22, 0, 0, 0, - 0, 23, 24, 25, 26, 85, 0, 0, 27, 0, - 30, 31, 32, 33, 34, 11, 0, 0, 0, 12, - 13, 0, 0, 0, 14, 15, 16, 0, 0, 65, - 0, 0, 28, 166, 29, 0, 0, 17, 0, 18, - 19, 20, 0, 22, 0, 0, 0, 0, 23, 24, - 25, 26, 85, 0, 0, 27, 0, 30, 31, 32, - 33, 34, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 65, 0, 0, 28, 168, 29, 0, 0, + 24, 25, 26, 86, 0, 0, 27, 0, 0, 31, + 32, 33, 34, 35, 0, 0, 12, 13, 0, 0, + 0, 14, 15, 16, 0, 0, 66, 256, 0, 28, + 0, 29, 0, 0, 17, 0, 18, 19, 20, 0, + 22, 0, 0, 0, 0, 23, 24, 25, 26, 86, + 0, 0, 27, 0, 0, 31, 32, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, - 0, 0, 0, 12, 13, 0, 0, 0, 14, 15, - 16, 0, 0, 0, 0, 65, 0, 0, 28, 169, - 29, 17, 0, 18, 19, 20, 0, 22, 0, 0, - 0, 0, 23, 24, 25, 26, 0, 0, 85, 27, - 0, 0, 31, 32, 33, 34, 0, 0, 0, 0, - 12, 13, 0, 0, 0, 14, 15, 16, 0, 0, - 65, 0, 0, 28, 174, 29, 0, 0, 17, 0, - 18, 19, 20, 0, 22, 0, 0, 0, 0, 23, - 24, 25, 26, 85, 0, 0, 27, 0, 0, 31, - 32, 33, 34, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 12, 13, 0, 0, 0, - 14, 15, 16, 0, 0, 65, 0, 0, 28, 175, - 29, 0, 0, 17, 0, 18, 19, 20, 0, 22, - 0, 0, 0, 0, 23, 24, 25, 26, 85, 0, - 0, 27, 0, 0, 31, 32, 33, 34, 0, 0, - 0, 0, 12, 13, 0, 0, 0, 14, 15, 16, - 0, 0, 65, 0, 0, 28, 0, 29, 0, 0, - 17, 0, 18, 19, 20, 0, 22, 0, 0, 0, - 197, 23, 24, 25, 26, 85, 0, 0, 27, 0, - 0, 31, 32, 33, 34, 12, 13, 0, 0, 0, - 14, 15, 16, 0, 0, 65, 0, 0, 28, 0, - 29, 0, 0, 17, 0, 18, 19, 20, 0, 22, - 0, 0, 0, 200, 23, 24, 25, 26, 85, 0, - 0, 27, 0, 0, 31, 32, 33, 34, 12, 13, - 0, 0, 0, 14, 15, 16, 0, 0, 65, 251, + 66, 287, 0, 28, 0, 29, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 86, 12, 13, 0, 0, 0, 14, + 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 17, 0, 18, 19, 20, 0, 22, 0, + 0, 0, 0, 23, 24, 25, 26, 0, 0, 0, + 27, 0, 0, 31, 32, 33, 34, 35, 12, 13, + 0, 0, 0, 14, 15, 16, 0, 0, 66, 293, 0, 28, 0, 29, 0, 0, 17, 0, 18, 19, 20, 0, 22, 0, 0, 0, 0, 23, 24, 25, - 26, 85, 0, 0, 27, 0, 0, 31, 32, 33, - 34, 0, 0, 12, 13, 0, 0, 0, 14, 15, - 16, 0, 0, 65, 255, 0, 28, 0, 29, 0, + 26, 86, 0, 0, 27, 0, 0, 31, 32, 33, + 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 66, 294, 0, 28, 0, 29, 0, 0, + 0, 0, 0, 12, 13, 0, 0, 0, 14, 15, + 16, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 17, 0, 18, 19, 20, 0, 22, 0, 0, - 0, 0, 23, 24, 25, 26, 85, 0, 0, 27, - 0, 0, 31, 32, 33, 34, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 12, 13, - 0, 0, 0, 14, 15, 16, 0, 0, 65, 286, - 0, 28, 0, 29, 0, 0, 17, 0, 18, 19, - 20, 0, 22, 0, 0, 0, 0, 23, 24, 25, - 26, 85, 0, 0, 27, 0, 0, 31, 32, 33, - 34, 0, 0, 0, 0, 12, 13, 0, 0, 0, - 14, 15, 16, 0, 0, 65, 292, 0, 28, 0, - 29, 0, 0, 17, 0, 18, 19, 20, 0, 22, - 0, 0, 0, 0, 23, 24, 25, 26, 85, 0, - 0, 27, 0, 0, 31, 32, 33, 34, 12, 13, - 0, 0, 0, 14, 15, 16, 0, 0, 65, 293, - 0, 28, 0, 29, 0, 0, 17, 0, 18, 19, - 20, 0, 22, 0, 0, 0, 0, 23, 24, 25, - 26, 85, 0, 0, 27, 0, 0, 31, 32, 33, - 34, 12, 13, 0, 0, 0, 14, 15, 16, 0, - 0, 65, 294, 0, 28, 0, 29, 0, 0, 17, - 0, 18, 19, 20, 0, 22, 0, 0, 0, 0, - 23, 24, 25, 26, 85, 0, 0, 27, 0, 0, - 31, 32, 33, 34, 0, 0, 12, 13, 0, 0, - 0, 14, 15, 16, 0, 0, 65, 295, 0, 28, - 0, 29, 0, 0, 17, 0, 18, 19, 20, 0, - 22, 0, 0, 0, 0, 23, 24, 25, 26, 85, - 0, 0, 27, 0, 0, 31, 32, 33, 34, 0, + 0, 0, 23, 24, 25, 26, 0, 0, 0, 27, + 0, 0, 31, 32, 33, 34, 35, 0, 0, 12, + 13, 0, 0, 0, 14, 15, 16, 0, 0, 66, + 295, 0, 28, 0, 29, 0, 0, 17, 0, 18, + 19, 20, 0, 22, 0, 0, 0, 0, 23, 24, + 25, 26, 86, 0, 0, 27, 0, 0, 31, 32, + 33, 34, 35, 12, 13, 0, 0, 0, 14, 15, + 16, 0, 0, 66, 296, 0, 28, 0, 29, 0, + 0, 17, 0, 18, 19, 20, 0, 22, 0, 0, + 0, 0, 23, 24, 25, 26, 86, 0, 0, 27, + 0, 0, 31, 32, 33, 34, 35, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 66, 297, 0, + 28, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 12, 13, 0, 0, 0, 14, 15, 16, 0, - 0, 65, 296, 0, 28, 0, 29, 0, 0, 17, - 0, 18, 19, 20, 0, 22, 0, 0, 0, 0, - 23, 24, 25, 26, 85, 0, 0, 27, 0, 0, - 31, 32, 33, 34, 0, 0, 0, 0, 12, 13, - 0, 0, 0, 14, 15, 16, 0, 0, 65, 298, - 0, 28, 0, 29, 0, 0, 17, 0, 18, 19, - 20, 0, 22, 0, 0, 0, 0, 23, 24, 25, - 26, 85, 0, 0, 27, 0, 0, 31, 32, 33, - 34, 12, 13, 0, 0, 0, 14, 15, 16, 0, - 0, 65, 108, 0, 28, 0, 29, 0, 0, 17, - 0, 18, 19, 20, 0, 22, 0, 0, 0, 0, - 23, 24, 25, 26, 0, 0, 0, 27, 0, 0, - 31, 32, 33, 34, 12, 13, 0, 0, 0, 14, - 15, 16, 0, 0, 0, 0, 0, 0, 65, 0, - 0, 28, 17, 29, 18, 19, 20, 0, 22, 0, - 0, 0, 0, 23, 24, 25, 26, 0, 0, 0, - 27, 0, 0, 31, 32, 33, 34, 0, 0, 12, - 13, 0, 0, 0, 14, 15, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 18, - 19, 20, 65, 22, 0, 28, 0, 29, 23, 24, - 25, 26, 0, 0, 0, 27, 0, 0, 31, 32, - 33, 34, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 12, 13, 0, 0, 0, 14, - 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 0, 18, 19, 20, 65, 22, 0, - 28, 0, 29, 23, 24, 25, 26, 0, 0, 0, - 27, 0, 0, 31, 32, 33, 34, 0, 0, 0, - 0, 12, 13, 0, 0, 0, 14, 15, 16, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, - 0, 18, 19, 20, 65, 22, 0, 28, 0, 29, - 23, 24, 25, 26, 0, 0, 0, 27, 0, 0, - 31, 32, 33, 34, 12, 13, 0, 0, 0, 14, - 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 0, 18, 19, 20, 65, 22, 0, - 28, 0, 29, 23, 24, 25, 26, 0, 0, 0, - 27, 0, 0, 31, 32, 33, 34, 115, 0, 0, - 85, 12, 13, 0, 0, 0, 14, 15, 16, 0, + 86, 12, 13, 0, 0, 0, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, - 0, 18, 19, 20, 65, 22, 0, 28, 0, 29, + 0, 18, 19, 20, 0, 22, 0, 0, 0, 0, 23, 24, 25, 26, 0, 0, 0, 27, 0, 0, - 31, 32, 33, 34, 0, 0, 0, 0, 0, 0, - 0, 117, 0, 0, 0, 12, 13, 0, 0, 0, - 14, 15, 16, 0, 0, 0, 0, 65, 0, 0, - 28, 0, 29, 17, 0, 18, 19, 20, 0, 22, - 0, 0, 0, 0, 23, 24, 25, 26, 0, 0, - 0, 27, 0, 0, 31, 32, 33, 34, 0, 0, - 0, 0, 0, 0, 0, 0, 139, 0, 0, 0, - 12, 13, 0, 0, 0, 14, 15, 16, 102, 0, - 0, 28, 0, 29, 0, 0, 0, 0, 17, 0, + 31, 32, 33, 34, 35, 12, 13, 0, 0, 0, + 14, 15, 16, 0, 0, 66, 299, 0, 28, 0, + 29, 0, 0, 17, 0, 18, 19, 20, 0, 22, + 0, 0, 0, 0, 23, 24, 25, 26, 86, 0, + 0, 27, 0, 0, 31, 32, 33, 34, 35, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, + 109, 0, 28, 0, 29, 0, 0, 0, 0, 0, + 0, 0, 12, 13, 0, 0, 0, 14, 15, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 18, 19, 20, 0, 22, 0, 0, 0, + 0, 23, 24, 25, 26, 0, 0, 0, 27, 0, + 0, 31, 32, 33, 34, 35, 12, 13, 0, 0, + 0, 14, 15, 16, 66, 0, 0, 28, 0, 29, + 0, 0, 0, 0, 17, 0, 18, 19, 20, 0, + 22, 0, 0, 0, 0, 23, 24, 25, 26, 0, + 0, 0, 27, 0, 0, 31, 32, 33, 34, 35, + 12, 13, 0, 0, 0, 14, 15, 16, 0, 0, + 0, 0, 66, 0, 0, 28, 0, 29, 17, 0, 18, 19, 20, 0, 22, 0, 0, 0, 0, 23, 24, 25, 26, 0, 0, 0, 27, 0, 0, 31, - 32, 33, 34, 212, 0, 0, 0, 12, 13, 0, + 32, 33, 34, 35, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 0, 0, 28, 0, 29, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 12, 13, + 0, 0, 0, 14, 15, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 17, 0, 18, 19, + 20, 0, 22, 0, 0, 0, 0, 23, 24, 25, + 26, 0, 0, 0, 27, 0, 0, 31, 32, 33, + 34, 35, 12, 13, 0, 0, 0, 14, 15, 16, + 66, 0, 0, 28, 0, 29, 0, 0, 0, 0, + 17, 0, 18, 19, 20, 0, 22, 0, 0, 0, + 0, 23, 24, 25, 26, 0, 0, 0, 27, 0, + 0, 31, 32, 33, 34, 35, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 0, 0, 28, 0, 29, + 0, 0, 0, 116, 0, 0, 0, 12, 13, 0, + 0, 0, 14, 15, 16, 0, 0, 86, 0, 0, + 0, 0, 0, 0, 0, 17, 0, 18, 19, 20, + 0, 22, 0, 0, 0, 0, 23, 24, 25, 26, + 0, 0, 0, 27, 0, 0, 31, 32, 33, 34, + 35, 118, 0, 0, 66, 12, 13, 28, 0, 29, + 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 18, 19, 20, 0, 22, + 0, 0, 0, 0, 23, 24, 25, 26, 0, 0, + 0, 27, 0, 0, 31, 32, 33, 34, 35, 140, + 0, 0, 66, 12, 13, 28, 0, 29, 14, 15, + 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 0, 18, 19, 20, 0, 22, 0, 0, + 0, 0, 23, 24, 25, 26, 0, 0, 0, 27, + 0, 0, 31, 32, 33, 34, 35, 103, 0, 0, + 28, 0, 29, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, + 0, 0, 0, 12, 13, 0, 0, 0, 14, 15, + 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 0, 18, 19, 20, 0, 22, 0, 0, + 0, 0, 23, 24, 25, 26, 0, 0, 0, 27, + 0, 0, 31, 32, 33, 34, 35, 12, 13, 0, 0, 0, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 18, 19, 20, 0, 22, 0, 0, 0, 0, 23, 24, 25, 26, 0, 0, 0, 27, 0, 0, 31, 32, 33, 34, - 12, 13, 0, 0, 0, 14, 15, 16, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, - 18, 19, 20, 0, 22, 0, 0, 0, 0, 23, - 24, 25, 26, 0, 0, 0, 27, 0, 0, 31, - 32, 33, 34, 274, 0, 0, 0, 12, 13, 0, + 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 275, 0, 0, 0, 12, 13, 0, 0, 0, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 18, 19, 20, 0, 22, 0, 0, 0, 0, 23, 24, 25, 26, 0, 0, 0, 27, 0, 0, 31, 32, 33, 34, - 12, 13, 0, 0, 0, 14, 15, 16, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, + 35, 0, 0, 0, 0, 12, 13, 0, 0, 0, + 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 18, 19, 20, 0, 22, + 0, 0, 0, 0, 23, 24, 25, 26, 0, 0, + 0, 27, 0, 0, 31, 32, 33, 34, 35, 0, + 12, 13, 67, 69, 0, 14, 15, 16, 73, 0, + 0, 0, 0, 0, 0, 0, 0, 91, 17, 0, 18, 19, 20, 0, 22, 0, 0, 0, 0, 23, 24, 25, 26, 0, 0, 0, 27, 0, 0, 31, - 32, 33, 34, 0, 0, 0, 0, 66, 68, 0, - 0, 12, 13, 72, 0, 0, 14, 15, 16, 0, - 0, 90, 0, 0, 0, 0, 0, 0, 0, 17, - 0, 18, 19, 20, 0, 22, 0, 0, 0, 0, - 23, 24, 25, 26, 0, 0, 0, 27, 0, 0, - 31, 32, 33, 34, 0, 0, 0, 0, 0, 0, + 32, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 145, 146, 147, 148, 149, 150, 0, 0, 0, - 0, 0, 0, 90, 0, 0, 0, 0, 90, 0, - 0, 90, 90, 0, 0, 90, 0, 90, 90, 0, - 0, 0, 90, 90, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 90, 0, 0, 0, 90, 0, 90, - 90, 90, 90, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 146, 147, 148, + 149, 150, 151, 0, 0, 0, 0, 0, 0, 91, + 0, 0, 0, 0, 91, 0, 0, 91, 91, 0, + 0, 91, 0, 91, 91, 0, 0, 0, 91, 91, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, + 0, 0, 0, 91, 0, 91, 91, 91, 91, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 90, 90, 90, - 90, 0, 90, 0, 90, 90, 0, 0, 0, 0, - 0, 0, 90, 90, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 90, 90, 90, 90, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 91, 91, 91, 91, 0, 91, 0, + 91, 91, 0, 0, 0, 0, 0, 0, 91, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 90, 90, 90, 90, 90, 0, - 90, 90, 90, + 91, 91, 91, 91, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 91, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 91, 91, 91, 91, 91, 0, 91, 91, 91, }; short yycheck[] = { 41, - 0, 41, 60, 41, 37, 41, 59, 59, 39, 42, - 43, 63, 45, 63, 47, 59, 62, 41, 36, 102, - 36, 63, 36, 63, 302, 63, 123, 63, 37, 222, - 7, 44, 123, 42, 312, 289, 123, 37, 47, 94, - 40, 41, 42, 43, 44, 45, 63, 47, 302, 303, - 63, 225, 63, 30, 293, 0, 40, 112, 58, 59, - 60, 94, 62, 63, 40, 304, 305, 287, 41, 41, - 153, 44, 44, 302, 303, 261, 262, 40, 124, 112, - 63, 106, 107, 40, 40, 94, 40, 40, 40, 91, - 40, 40, 37, 93, 94, 261, 41, 42, 43, 44, - 45, 123, 47, 112, 40, 60, 112, 84, 133, 302, - 0, 41, 112, 58, 59, 60, 41, 62, 63, 312, - 41, 293, 99, 123, 124, 299, 300, 301, 281, 44, - 41, 41, 44, 93, 41, 153, 44, 153, 293, 153, - 41, 293, 41, 40, 40, 319, 320, 37, 93, 94, - 324, 41, 42, 43, 44, 45, 40, 47, 135, 136, - 59, 291, 41, 62, 261, 262, 59, 112, 58, 59, - 60, 91, 62, 63, 205, 273, 41, 40, 123, 124, - 93, 41, 272, 41, 0, 41, 59, 93, 59, 41, - 219, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 227, 93, 94, -1, -1, 260, 261, 262, - -1, 41, -1, -1, 41, -1, 260, 261, 262, 265, - -1, -1, 112, 40, -1, 124, 43, -1, 45, 59, - -1, -1, 59, 123, 124, 293, -1, -1, 290, 291, - 290, 291, 275, 220, 221, -1, 304, 305, 290, 291, + 0, 41, 63, 41, 37, 41, 59, 59, 63, 42, + 43, 63, 45, 63, 47, 59, 62, 41, 63, 107, + 108, 63, 40, 63, 37, 63, 123, 63, 37, 7, + 44, 223, 103, 37, 302, 303, 94, 37, 303, 123, + 40, 41, 42, 43, 44, 45, 134, 47, 313, 63, + 261, 262, 30, 41, 112, 0, 289, 123, 58, 59, + 60, 94, 62, 63, 53, 54, 40, 40, 287, 302, + 303, 59, 41, 62, 63, 44, 91, 41, 124, 112, + 44, 37, 40, 154, 123, 40, 42, 40, 60, 40, + 40, 47, 37, 93, 94, 261, 41, 42, 43, 44, + 45, 226, 47, 40, 40, 40, 60, 85, 40, 112, + 0, 303, 112, 58, 59, 60, 293, 62, 63, 41, + 41, 313, 100, 123, 124, 41, 293, 304, 305, 306, + 281, 44, 121, 41, 41, 44, 93, 41, 94, 44, + 228, 154, 41, 41, 293, 154, 40, 37, 93, 94, + 154, 41, 42, 43, 44, 45, 112, 47, 136, 137, + 40, 59, 293, 41, 261, 262, 40, 112, 58, 59, + 60, 291, 62, 63, 41, 300, 301, 302, 123, 124, + 91, 59, 59, 273, 41, 40, 272, 93, 206, 178, + 179, 41, 41, 0, 41, 320, 321, 93, 59, 59, + 325, 41, -1, 93, 94, -1, -1, 260, 261, 262, + 298, -1, 220, 41, -1, -1, 260, 261, 262, 265, + -1, -1, 112, 40, -1, -1, 43, -1, 45, 290, + 291, 59, -1, 123, 124, 290, 291, -1, 290, 291, + 290, 291, 275, 221, 222, 290, 291, -1, 290, 291, 290, 291, 290, 291, 290, 291, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 290, 291, 268, 269, - 270, -1, 297, 290, 291, 275, -1, 290, 291, 290, - 291, 281, 41, 283, 284, 285, 286, 287, 41, 289, + 270, -1, 260, 261, 262, 275, 290, 291, -1, 268, + -1, 281, 41, 283, 284, 285, 286, 287, -1, 289, 290, 291, 292, 293, 294, 295, 296, 297, -1, 299, - 59, 301, 302, 303, 304, 305, 59, 290, 291, -1, - 287, -1, 257, 258, 259, 260, 261, 262, 263, 264, - 265, -1, -1, 268, 269, 270, -1, 304, -1, -1, - 275, -1, -1, -1, -1, -1, 281, 41, 283, 284, + 59, 301, 302, 303, 304, 305, 306, -1, -1, -1, + 288, -1, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 293, -1, 268, 269, 270, -1, 305, -1, -1, + 275, -1, 304, 305, 306, -1, 281, 41, 283, 284, 285, 286, 287, -1, 289, 290, 291, 292, 293, 294, 295, 296, 297, -1, 299, 59, 301, 302, 303, 304, - 305, 260, 261, 262, -1, -1, 265, 257, 258, 259, + 305, 306, 260, 261, 262, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, 268, 269, - 270, 0, -1, -1, -1, 275, -1, -1, -1, -1, - 41, 281, -1, 283, 284, 285, 286, 287, 41, 289, + 270, 0, 260, 261, 262, 275, -1, -1, -1, -1, + 41, 281, -1, 283, 284, 285, 286, 287, -1, 289, 290, 291, 292, 293, 294, 295, 296, 297, 59, 299, - -1, 301, 302, 303, 304, 305, 59, -1, 37, -1, + -1, 301, 302, 303, 304, 305, 306, -1, 37, -1, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, - 260, 261, 262, 260, 261, 262, 0, -1, 41, 58, - 59, -1, -1, 62, 63, -1, 263, 264, 52, 53, - -1, 268, 269, 270, -1, -1, 59, 61, 62, -1, + -1, -1, 260, 261, 262, -1, 0, -1, 41, 58, + 59, -1, -1, 62, 63, -1, 263, 264, -1, -1, + -1, 268, 269, 270, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, 281, -1, 283, 284, 285, -1, - 287, 41, -1, 37, 93, 94, 40, 41, 42, 43, - 44, 45, 299, 47, -1, 302, 303, 304, 305, 59, + 287, -1, -1, 37, 93, 94, 40, 41, 42, 43, + 44, 45, 299, 47, -1, 302, 303, 304, 305, 306, -1, 0, -1, 112, 58, 59, 60, -1, 62, 63, - -1, 260, 261, 262, 123, 124, -1, 260, 261, 262, - -1, -1, -1, -1, -1, -1, 120, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 37, 93, + -1, 260, 261, 262, 123, 124, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 41, -1, -1, -1, 37, 93, 94, 40, 41, 42, 43, -1, 45, -1, 47, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, + -1, -1, 59, -1, 41, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -1, 260, 261, 262, 123, - 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 177, 178, -1, -1, -1, -1, -1, + 124, -1, 59, -1, -1, 62, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, -1, -1, 260, - 261, 262, -1, -1, 123, 124, -1, 260, 261, 262, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 261, 262, -1, -1, 123, 124, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, 268, 269, 270, -1, -1, -1, -1, 275, 260, 261, 262, - -1, -1, 281, 267, 283, 284, 285, 286, 287, -1, + -1, -1, 281, -1, 283, 284, 285, 286, 287, -1, 289, 290, 291, 292, 293, 294, 295, 296, 297, -1, - 299, -1, 301, 302, 303, 304, 305, -1, -1, -1, - 260, 261, 262, 257, 258, 259, 260, 261, 262, 263, + 299, -1, 301, 302, 303, 304, 305, 306, -1, -1, + -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, 268, 269, 270, -1, -1, -1, -1, 275, -1, -1, -1, -1, -1, 281, -1, 283, 284, 285, 286, 287, -1, 289, 290, 291, 292, 293, 294, 295, 296, 297, -1, 299, -1, 301, 302, 303, - 304, 305, -1, -1, -1, -1, -1, -1, 257, 258, + 304, 305, 306, 260, 261, 262, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, 268, - 269, 270, 0, -1, -1, -1, 275, -1, -1, -1, + 269, 270, 0, 260, 261, 262, 275, -1, 265, -1, -1, -1, 281, -1, 283, 284, 285, 286, 287, -1, 289, 290, 291, 292, 293, 294, 295, 296, 297, -1, - 299, -1, 301, 302, 303, 304, 305, -1, -1, 37, + 299, -1, 301, 302, 303, 304, 305, 306, -1, 37, -1, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, 58, 59, 60, -1, 62, 63, -1, -1, -1, -1, @@ -1145,236 +1199,260 @@ short yycheck[] = { 41, 93, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -1, -1, -1, -1, -1, - 123, 124, -1, -1, -1, 0, -1, -1, -1, -1, + 123, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 37, 112, -1, 40, 41, 42, 43, 44, - 45, -1, 47, -1, 123, 124, -1, -1, -1, -1, - -1, -1, -1, 58, 59, 60, -1, 62, 63, -1, + -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, 124, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, - 268, 269, 270, -1, -1, -1, -1, 275, 93, -1, + 268, 269, 270, -1, -1, -1, -1, 275, -1, -1, -1, -1, -1, 281, -1, 283, 284, 285, 286, 287, -1, 289, 290, -1, 292, 293, 294, 295, 296, 297, - -1, 299, -1, 301, 302, 303, 304, 305, 123, 124, + -1, 299, -1, 301, 302, 303, 304, 305, 306, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, 268, 269, 270, -1, -1, - -1, -1, 275, -1, -1, -1, -1, -1, 281, -1, + -1, -1, 275, -1, 40, 41, -1, 43, 281, 45, 283, 284, 285, 286, 287, -1, 289, 290, 291, 292, - 293, 294, 295, 296, 297, -1, 299, -1, 301, 302, - 303, 304, 305, -1, -1, -1, -1, -1, 257, 258, + 293, 294, 295, 296, 297, -1, 299, 63, 301, 302, + 303, 304, 305, 306, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, 268, - 269, 270, -1, -1, -1, -1, 275, -1, -1, -1, + 269, 270, 0, -1, -1, -1, 275, -1, -1, -1, -1, -1, 281, -1, 283, 284, 285, 286, 287, -1, 289, 290, 291, 292, 293, 294, 295, 296, 297, -1, - 299, -1, 301, -1, -1, 304, 305, -1, -1, -1, + 299, -1, 301, -1, -1, 304, 305, 306, -1, 37, + -1, -1, 40, 41, 42, 43, 44, 45, -1, 47, + -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, + 58, 59, 60, -1, 62, 63, -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, 257, 258, 259, 260, 261, 262, 263, 264, - 265, -1, -1, 268, 269, 270, 0, -1, -1, -1, - 275, -1, -1, -1, -1, -1, 281, -1, 283, 284, - 285, 286, 287, -1, 289, 290, 291, 292, 293, 294, - 295, 296, 297, -1, 299, -1, 301, 302, 303, 304, - 305, -1, -1, 37, -1, -1, 40, 41, 42, 43, + -1, -1, -1, 37, -1, 93, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, 58, 59, 60, -1, 62, 63, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 123, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, 93, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, - -1, -1, -1, -1, 0, -1, -1, -1, 58, 59, - 60, -1, 62, 63, -1, -1, -1, -1, -1, 123, - 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 37, -1, 93, 40, 41, 42, 43, 44, 45, - -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 58, 59, 60, -1, 62, 63, -1, -1, - -1, -1, -1, 123, 124, -1, -1, -1, -1, 0, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 93, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, + 60, -1, 62, 63, -1, -1, -1, 263, 264, 123, + 124, -1, 268, 269, 270, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 281, -1, 283, 284, 285, + -1, 287, -1, 93, -1, -1, 292, 293, 294, 295, + -1, -1, -1, 299, -1, -1, 302, 303, 304, 305, + 306, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 123, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 37, -1, -1, 40, - 41, 42, 43, 44, 45, -1, 47, 123, 124, -1, - -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, - -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, + 268, 269, 270, -1, -1, -1, -1, 275, -1, -1, + -1, -1, -1, 281, -1, 283, 284, 285, 286, 287, + -1, 289, 290, 291, 292, 293, 294, 295, 296, 297, + -1, 299, -1, 301, 302, 303, 304, 305, 306, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, 268, 269, 270, -1, -1, -1, - -1, 275, 93, -1, -1, -1, -1, 281, -1, 283, + -1, 275, -1, 40, -1, -1, 43, 281, 45, 283, 284, 285, 286, 287, -1, 289, 290, 291, 292, 293, 294, 295, 296, 297, -1, 299, -1, 301, 302, 303, - 304, 305, 123, 124, -1, -1, -1, 257, 258, 259, + 304, 305, 306, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, 268, 269, - 270, -1, -1, -1, -1, 275, -1, -1, -1, -1, + 270, 0, -1, -1, -1, 275, -1, -1, -1, -1, -1, 281, -1, 283, 284, 285, 286, 287, -1, 289, 290, 291, 292, 293, 294, 295, 296, 297, -1, 299, - -1, 301, 302, 303, 304, 305, -1, -1, -1, -1, - -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, - -1, -1, 268, 269, 270, -1, -1, -1, -1, 275, - -1, -1, -1, -1, -1, 281, -1, 283, 284, 285, - 286, 287, -1, 289, 290, 291, 292, 293, 294, 295, - 296, 297, -1, 299, -1, 301, 302, 303, 304, 305, + -1, 301, 302, 303, 304, 305, 306, -1, 37, -1, + -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, + -1, -1, -1, -1, -1, 0, -1, -1, -1, 58, + 59, 60, -1, 62, 63, -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, 257, 258, 259, 260, + -1, -1, 37, -1, 93, 40, 41, 42, 43, 44, + 45, -1, 47, -1, -1, -1, -1, -1, -1, 0, + -1, -1, -1, 58, 59, 60, -1, 62, 63, -1, + -1, -1, -1, -1, 123, 124, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 37, -1, 93, 40, + 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, + -1, 62, 63, -1, 261, 262, 263, 264, 123, 124, + -1, 268, 269, 270, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 281, -1, 283, 284, 285, -1, + 287, -1, 93, 94, -1, 292, 293, 294, 295, -1, + -1, -1, 299, -1, -1, 302, 303, 304, 305, 306, + -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, 124, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, + 259, 260, 261, 262, 263, 264, 265, -1, -1, 268, + 269, 270, -1, -1, -1, -1, 275, -1, -1, -1, + -1, -1, 281, -1, 283, 284, 285, 286, 287, -1, + 289, 290, 291, 292, 293, 294, 295, 296, 297, -1, + 299, -1, 301, 302, 303, 304, 305, 306, -1, -1, + -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, + 265, -1, -1, 268, 269, 270, -1, -1, -1, -1, + 275, -1, -1, -1, -1, -1, 281, -1, 283, 284, + 285, 286, 287, -1, 289, 290, 291, 292, 293, 294, + 295, 296, 297, -1, 299, -1, 301, 302, 303, 304, + 305, 306, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, 268, 269, 270, 0, -1, -1, -1, 275, -1, -1, -1, -1, -1, - 281, -1, 283, 284, 285, 286, 287, -1, 289, 290, + 281, -1, 283, 284, 285, 286, 287, -1, -1, 290, 291, 292, 293, 294, 295, 296, 297, -1, 299, -1, - 301, 302, 303, 304, 305, -1, -1, 37, -1, -1, + 301, -1, -1, 304, 305, 306, -1, 37, -1, -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, 58, 59, - 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, + 60, -1, 62, -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, 37, 93, 94, 40, 41, 42, 43, 44, - 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, - 0, -1, 112, 58, 59, 60, -1, 62, -1, -1, + -1, -1, -1, 93, 94, 40, 41, -1, 43, 44, + 45, -1, -1, -1, -1, -1, 0, -1, -1, -1, + -1, -1, 112, 58, 59, 60, -1, 62, 63, -1, -1, -1, -1, 123, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, - 40, 41, -1, 43, 44, 45, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 112, 58, 59, - 60, -1, 62, 63, -1, -1, -1, -1, 123, 124, - -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 93, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 40, 41, 93, 43, + 44, 45, -1, -1, -1, -1, 0, -1, -1, -1, + -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, + -1, -1, -1, -1, -1, -1, -1, -1, 123, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 40, 41, -1, 43, 44, 45, -1, - -1, -1, -1, 123, 124, -1, -1, -1, -1, -1, - -1, 58, 59, 60, -1, 62, 63, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 93, + 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, + 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 40, -1, 93, + 43, -1, 45, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, 268, 269, - 270, -1, -1, -1, -1, 275, 93, -1, -1, -1, - -1, 281, -1, 283, 284, 285, 286, 287, -1, -1, - 290, 291, 292, 293, 294, 295, 296, 297, -1, 299, - -1, 301, -1, -1, 304, 305, 123, 124, -1, -1, + 270, -1, -1, -1, -1, 275, -1, -1, -1, 123, + 124, 281, -1, 283, 284, 285, 286, 287, -1, 289, + -1, -1, 292, 293, 294, 295, 296, 297, -1, 299, + -1, 301, 302, 303, 304, 305, 306, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, 268, 269, 270, -1, -1, -1, -1, 275, -1, -1, -1, -1, -1, 281, -1, 283, 284, - 285, 286, 287, -1, 289, -1, -1, 292, 293, 294, + 285, 286, 287, -1, 289, 290, 291, 292, 293, 294, 295, 296, 297, -1, 299, -1, 301, 302, 303, 304, - 305, -1, -1, -1, -1, -1, -1, 257, 258, 259, - 260, 261, 262, 263, 264, 265, -1, 0, 268, 269, - 270, -1, -1, -1, -1, 275, -1, -1, -1, -1, - -1, 281, -1, 283, 284, 285, 286, 287, -1, 289, - 290, 291, 292, 293, 294, 295, 296, 297, -1, 299, - -1, 301, 302, 303, 304, 305, -1, 40, -1, -1, - 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 0, - -1, 268, 269, 270, -1, -1, -1, -1, 275, -1, - -1, -1, -1, -1, 281, -1, 283, 284, 285, 286, - 287, -1, 289, 290, 291, 292, 293, 294, 295, 296, - 297, -1, 299, -1, 301, 302, 303, 304, 305, 40, - 41, -1, -1, 44, -1, -1, -1, -1, -1, 0, - 123, -1, -1, -1, -1, -1, -1, 58, 59, 60, - -1, 62, 63, -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, 40, - 41, -1, 93, 44, -1, -1, -1, -1, -1, -1, - 0, -1, -1, -1, -1, -1, -1, 58, 59, 60, - -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 123, 124, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 40, -1, 93, 43, -1, 45, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 0, 59, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 123, 124, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, - 263, 264, -1, -1, -1, 268, 269, 270, 40, -1, - -1, 43, -1, 45, -1, -1, -1, 0, 281, -1, - 283, 284, 285, 286, 287, -1, -1, 59, -1, 292, - 293, 294, 295, 123, -1, -1, 299, -1, 301, 302, - 303, 304, 305, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, - 43, -1, 45, -1, -1, -1, 257, 258, 259, 260, - 261, 262, 263, 264, 265, -1, 59, 268, 269, 270, + 305, 306, -1, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, -1, 268, 269, 270, -1, -1, -1, + -1, 275, -1, -1, -1, -1, -1, 281, -1, 283, + 284, 285, 286, 287, -1, 289, 290, 291, 292, 293, + 294, 295, 296, 297, -1, 299, -1, 301, 302, 303, + 304, 305, 306, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 0, 268, 269, 270, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 281, -1, 283, + 284, 285, 286, 287, -1, 289, 290, 291, 292, 293, + 294, 295, 296, 297, -1, 299, -1, 301, 302, 303, + 304, 305, 306, 40, 41, -1, 259, 44, 261, 262, + 263, 264, -1, -1, 0, 268, 269, 270, -1, -1, + -1, 58, 59, 60, -1, 62, 63, -1, 281, -1, + 283, 284, 285, -1, 287, -1, -1, -1, -1, 292, + 293, 294, 295, -1, -1, -1, 299, -1, 301, 302, + 303, 304, 305, 306, 40, -1, 93, 43, -1, 45, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 281, 123, 283, 284, 285, 286, 287, -1, 289, 290, - 291, 292, 293, 294, 295, 296, 297, -1, 299, -1, - 301, 302, 303, 304, 305, -1, 257, 258, 259, 260, - 261, 262, 263, 264, 265, -1, -1, 268, 269, 270, + -1, -1, -1, -1, 40, -1, -1, 43, -1, 45, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 281, 0, 283, 284, 285, 286, 287, -1, 289, 290, - 291, 292, 293, 294, 295, 296, 297, -1, 299, -1, - 301, 302, 303, 304, 305, -1, -1, 257, 258, 259, - 260, 261, 262, 263, 264, -1, -1, -1, 268, 269, - 270, 40, -1, -1, 43, -1, 45, -1, -1, -1, - -1, 281, -1, 283, 284, 285, 286, 287, -1, -1, - 0, -1, 292, 293, 294, 295, -1, -1, -1, 299, - -1, 301, 302, 303, 304, 305, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 257, 258, 259, 260, -1, - 262, 263, 264, -1, -1, -1, 268, 269, 270, -1, - 40, -1, -1, 43, -1, 45, -1, -1, -1, 281, - 0, 283, 284, 285, 286, 287, -1, -1, -1, -1, - 292, 293, 294, 295, 123, -1, -1, 299, -1, 301, - 302, 303, 304, 305, 257, 258, 259, 260, 261, 262, - 263, 264, -1, -1, -1, 268, 269, 270, -1, -1, - 40, -1, -1, 43, -1, 45, -1, -1, 281, -1, - 283, 284, 285, 286, 287, -1, -1, -1, 0, 292, - 293, 294, 295, -1, -1, -1, 299, -1, 301, 302, - 303, 304, 305, 123, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 40, -1, -1, 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 37, -1, -1, 40, 41, - 42, 43, 44, 45, -1, 47, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, - 62, 63, -1, 123, -1, -1, -1, -1, -1, -1, + 0, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, - 259, 93, 94, -1, 263, 264, -1, -1, -1, 268, - 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, - 112, -1, 281, -1, 283, 284, 285, 286, 287, -1, - -1, 123, 124, 292, 293, 294, 295, -1, -1, -1, - 299, -1, 301, 302, 303, 304, 305, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, - -1, -1, -1, 263, 264, -1, -1, -1, 268, 269, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 40, -1, -1, 43, -1, 45, -1, -1, -1, -1, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 59, + -1, 268, 269, 270, -1, -1, -1, 123, -1, -1, + -1, -1, -1, -1, 281, -1, 283, 284, 285, 286, + 287, -1, 289, 290, 291, 292, 293, 294, 295, 296, + 297, -1, 299, -1, 301, 302, 303, 304, 305, 306, + -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, + -1, -1, 268, 269, 270, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 281, -1, 283, 284, 285, + 286, 287, -1, -1, -1, -1, 292, 293, 294, 295, + -1, -1, -1, 299, -1, 301, 302, 303, 304, 305, + 306, 257, 258, 259, 260, 261, 262, 263, 264, -1, + -1, -1, 268, 269, 270, 40, -1, -1, 43, -1, + 45, -1, -1, -1, -1, 281, -1, 283, 284, 285, + 286, 287, -1, -1, -1, -1, 292, 293, 294, 295, + -1, -1, -1, 299, -1, 301, 302, 303, 304, 305, + 306, 257, 258, 259, 260, -1, 262, 263, 264, -1, + -1, 0, 268, 269, 270, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 281, -1, 283, 284, 285, + 286, 287, -1, -1, -1, -1, 292, 293, 294, 295, + -1, -1, -1, 299, -1, 301, 302, 303, 304, 305, + 306, 40, -1, -1, 43, -1, 45, 257, 258, 259, + 260, 261, 262, 263, 264, -1, -1, 0, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 281, -1, 283, 284, 285, 286, 287, -1, -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, - -1, 301, 302, 303, 304, 305, -1, 257, 258, 259, - -1, -1, -1, 263, 264, -1, -1, -1, 268, 269, - 270, -1, -1, -1, -1, 40, -1, -1, 43, -1, - 45, 281, -1, 283, 284, 285, 286, 287, -1, -1, - -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, - -1, 301, 302, 303, 304, 305, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, - 262, 263, 264, 265, -1, 0, 268, 269, 270, -1, - -1, -1, -1, 275, -1, -1, -1, -1, -1, 281, - -1, 283, 284, 285, 286, 287, -1, 289, 290, 291, - 292, -1, 294, 295, 296, 297, -1, 299, 123, 301, - 302, 303, 37, -1, -1, 40, 41, 42, 43, 44, - 45, -1, 47, 0, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 58, 59, -1, -1, 62, 63, -1, + -1, 301, 302, 303, 304, 305, 306, 40, -1, -1, + 43, -1, 45, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 37, -1, -1, -1, 41, 42, -1, 44, 93, 94, + -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, + 43, -1, 45, -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, 263, 264, + 123, 266, 267, 268, 269, 270, -1, -1, -1, -1, + -1, 276, 277, 278, 279, 280, 281, -1, 283, 284, + 285, -1, 287, 288, -1, -1, -1, 292, 293, 294, + 295, -1, -1, -1, 299, -1, -1, 302, 303, 304, + 305, 306, -1, -1, -1, -1, -1, -1, -1, -1, + 123, -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, 257, 258, + 259, -1, -1, -1, 263, 264, -1, -1, -1, 268, + 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 281, -1, 283, 284, 285, 286, 287, -1, + -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, + 299, -1, 301, 302, 303, 304, 305, 306, -1, -1, + -1, -1, -1, -1, 257, 258, 259, -1, -1, -1, + 263, 264, -1, -1, -1, 268, 269, 270, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 281, -1, + 283, 284, 285, 286, 287, -1, -1, -1, -1, 292, + 293, 294, 295, -1, -1, -1, 299, -1, 301, 302, + 303, 304, 305, 306, 257, 258, 259, -1, -1, -1, + 263, 264, -1, -1, -1, 268, 269, 270, 0, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 281, -1, + 283, 284, 285, 286, 287, -1, -1, -1, -1, 292, + 293, 294, 295, -1, -1, -1, 299, -1, 301, 302, + 303, 304, 305, 306, -1, 37, -1, -1, 40, 41, + 42, 43, 44, 45, -1, 47, -1, -1, -1, -1, + -1, -1, -1, 0, -1, -1, 58, 59, 60, -1, + 62, 63, -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, + 37, 93, 94, 40, 41, 42, 43, 44, 45, -1, 47, 0, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 58, 59, 60, -1, 62, 63, 112, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 123, 124, + 112, 58, 59, -1, -1, 62, 63, -1, -1, -1, + -1, 123, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, 41, 42, -1, 44, 93, 94, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, 112, -1, -1, -1, -1, - -1, -1, 257, 258, 259, -1, 123, 124, 263, 264, - -1, -1, -1, 268, 269, 270, -1, -1, -1, -1, - -1, -1, -1, -1, 93, 94, 281, -1, 283, 284, - 285, 286, 287, -1, -1, -1, -1, 292, 293, 294, - 295, -1, -1, 112, 299, -1, 301, 302, 303, 304, - 305, -1, -1, -1, 123, 124, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, - 265, -1, -1, 268, 269, 270, -1, -1, -1, -1, - 275, -1, -1, -1, -1, -1, 281, -1, 283, 284, - 285, 286, 287, -1, 289, 290, 291, 292, -1, 294, - 295, 296, 297, -1, 299, -1, 301, 302, 303, -1, - 257, 258, 259, 260, 261, 262, -1, -1, 265, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 275, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 286, - -1, 0, 289, 290, 291, 292, 293, 294, 295, 296, - 297, -1, -1, -1, 301, -1, -1, -1, 257, 258, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, + 262, 263, 264, 265, -1, -1, 268, 269, 270, -1, + -1, -1, -1, 275, -1, -1, -1, -1, -1, 281, + -1, 283, 284, 285, 286, 287, -1, 289, 290, 291, + 292, -1, 294, 295, 296, 297, -1, 299, -1, 301, + 302, 303, -1, -1, -1, -1, -1, -1, -1, -1, + 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, + -1, 268, 269, 270, -1, -1, -1, -1, 275, -1, + -1, -1, -1, -1, 281, -1, 283, 284, 285, 286, + 287, 0, 289, 290, 291, 292, -1, 294, 295, 296, + 297, -1, 299, -1, 301, 302, 303, -1, 257, 258, 259, 260, 261, 262, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, 275, -1, 37, -1, -1, -1, 41, 42, -1, 44, 0, 286, 47, -1, @@ -1404,9 +1482,9 @@ short yycheck[] = { 41, -1, -1, -1, 123, 124, -1, -1, 286, -1, -1, 289, 290, 291, 292, 293, 294, 295, 296, 297, -1, -1, -1, 301, 257, 258, 259, 260, 261, 262, -1, - -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, + 40, 265, -1, 43, 44, 45, -1, -1, -1, -1, -1, 275, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 286, -1, -1, 289, 290, 291, 292, 293, + -1, -1, 286, 63, -1, 289, 290, 291, 292, 293, 294, 295, 296, 297, -1, -1, -1, 301, 257, 258, 259, 260, 261, 262, -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, 275, -1, -1, 0, @@ -1422,469 +1500,489 @@ short yycheck[] = { 41, -1, 301, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, 41, 42, -1, 44, 112, -1, 47, 0, -1, -1, -1, -1, -1, - -1, -1, 123, 124, 58, 59, 60, -1, 62, -1, + -1, -1, 123, 124, 58, 59, 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, 41, 42, -1, 44, 93, - 94, 47, -1, -1, -1, -1, -1, -1, -1, 0, - -1, -1, 58, 59, 60, -1, 62, -1, 112, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, - 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 37, 93, 94, -1, - 41, 42, -1, 44, -1, -1, 47, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, 58, 59, 60, - -1, 62, -1, -1, -1, -1, -1, 123, 124, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 94, 47, -1, 263, 264, -1, -1, -1, 268, 269, + 270, -1, 58, 59, 60, -1, 62, -1, 112, -1, + -1, 281, -1, 283, 284, 285, 0, 287, -1, 123, + 124, -1, 292, 293, 294, 295, -1, -1, -1, 299, + -1, -1, 302, 303, 304, 305, 306, 93, 94, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 37, -1, -1, 112, 41, 42, -1, + 44, -1, -1, 47, -1, -1, -1, 123, 124, -1, + -1, -1, -1, -1, 58, 59, 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, - 261, 262, 93, 94, 265, 40, -1, -1, 43, -1, - 45, -1, -1, -1, 275, 0, -1, -1, -1, -1, - -1, 112, -1, -1, -1, 286, -1, -1, 289, 290, - 291, -1, 123, 124, -1, 296, 297, -1, -1, -1, - 301, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 37, -1, -1, -1, 41, 42, -1, 44, + 261, 262, -1, -1, 265, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 275, 0, -1, -1, -1, 93, + 94, -1, -1, -1, -1, 286, -1, -1, 289, 290, + 291, 292, 293, 294, 295, 296, 297, -1, 112, -1, + 301, -1, -1, -1, -1, -1, -1, -1, -1, 123, + 124, -1, 37, -1, -1, -1, 41, 42, -1, 44, -1, -1, 47, 257, 258, 259, 260, 261, 262, -1, - -1, 265, -1, 58, 59, 60, -1, 62, -1, 40, - -1, 275, 43, -1, 45, -1, -1, -1, -1, -1, - -1, -1, 286, -1, -1, 289, 290, 291, 59, -1, - 0, -1, 296, 297, -1, -1, -1, 301, 93, 94, - -1, 257, 258, 259, 260, 261, 262, -1, -1, 265, + -1, 265, -1, 58, 59, 60, -1, 62, -1, -1, + -1, 275, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 286, -1, -1, 289, 290, 291, -1, -1, + -1, -1, 296, 297, -1, -1, -1, 301, 93, 94, + -1, 257, 258, 259, 260, 261, 262, 0, -1, 265, -1, -1, -1, -1, -1, -1, -1, 112, -1, 275, - -1, -1, -1, -1, -1, -1, -1, 37, 123, 124, - 286, 41, 42, 289, 290, 291, -1, 47, -1, -1, - 296, 297, -1, -1, -1, 301, -1, -1, 58, 59, - 60, -1, 62, -1, -1, -1, 257, 258, 259, 260, - 261, 262, 0, -1, 265, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 275, -1, -1, -1, -1, -1, - -1, -1, -1, 93, 94, 286, -1, -1, 289, 290, - 291, -1, -1, -1, -1, 296, 297, -1, -1, 37, - 301, -1, 112, 41, 42, -1, 44, -1, -1, 47, - -1, -1, -1, 123, 124, -1, 261, 262, 263, 264, - 58, 59, -1, 268, 269, 270, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 281, -1, 283, 284, - 285, -1, 287, -1, -1, -1, -1, 292, 293, 294, - 295, -1, -1, -1, 299, 93, 94, 302, 303, 304, - 305, -1, 257, 258, 259, 260, 261, 262, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, 124, + 286, -1, -1, 289, 290, 291, -1, -1, -1, -1, + 296, 297, -1, -1, 37, 301, -1, -1, 41, 42, + -1, 44, -1, -1, 47, -1, -1, -1, -1, -1, + -1, -1, 0, -1, -1, 58, 59, 60, -1, 62, + -1, -1, -1, 257, 258, 259, 260, 261, 262, -1, + -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 275, -1, -1, -1, -1, -1, -1, -1, 37, + 93, 94, 286, 41, 42, 289, 290, 291, -1, 47, + 0, -1, 296, 297, -1, -1, -1, 301, -1, 112, + 58, 59, 60, -1, 62, -1, -1, -1, -1, -1, + 123, 124, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, + -1, 41, 42, -1, 44, 93, 94, 47, -1, -1, + -1, -1, 257, 258, 259, 260, 261, 262, 58, 59, 265, -1, -1, -1, 112, -1, -1, -1, -1, -1, - 275, -1, -1, -1, -1, 123, 124, -1, 259, -1, - -1, 286, 263, 264, 289, 290, 291, 268, 269, 270, - -1, 296, 297, -1, -1, -1, 301, -1, -1, -1, - 281, -1, 283, 284, 285, -1, 287, -1, -1, -1, - -1, 292, 293, 294, 295, -1, -1, -1, 299, -1, - 301, 302, 303, 304, 305, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, - 260, 261, 262, -1, 7, 265, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 275, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 286, 30, -1, 289, - 290, 291, -1, 36, -1, -1, 296, 297, -1, -1, - -1, 301, -1, -1, -1, 48, -1, -1, 51, 52, - 53, 54, 55, -1, 57, 58, 59, -1, 61, 62, - 63, 64, 65, -1, -1, -1, -1, -1, -1, 257, - 258, 259, 260, 261, 262, -1, -1, 265, 81, -1, - -1, 84, 85, 86, 87, 88, 89, 275, 49, 50, - -1, -1, -1, -1, -1, -1, 99, -1, 286, 102, - -1, 289, 290, 291, -1, -1, -1, -1, -1, -1, - -1, 114, -1, 301, -1, -1, -1, 120, -1, 80, - -1, 82, 83, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 135, 136, -1, 40, -1, -1, 43, -1, - 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 153, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 165, 166, 167, 168, 169, -1, -1, -1, - -1, 174, 175, -1, 177, 178, -1, -1, -1, 182, - -1, -1, -1, 186, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 197, 156, 157, 200, -1, -1, - 203, 204, -1, -1, -1, -1, -1, -1, -1, -1, - 17, -1, -1, -1, -1, 176, -1, 220, 221, 222, - -1, 28, 29, -1, 31, 32, 187, 34, 189, -1, - 191, -1, -1, -1, -1, 42, -1, -1, 241, -1, - 243, -1, 245, -1, 247, -1, 249, -1, -1, -1, - -1, 254, -1, 214, -1, -1, 259, 260, 40, -1, - -1, 43, -1, 45, 267, -1, -1, -1, 229, 230, - 231, 232, 233, -1, -1, -1, -1, 59, -1, -1, - -1, -1, -1, -1, 287, 92, 93, 94, 95, 96, - 97, -1, -1, -1, -1, -1, -1, 104, -1, -1, - -1, 304, 109, -1, -1, 112, 113, -1, -1, 116, - -1, 118, 119, -1, -1, -1, 123, 124, -1, 280, - -1, -1, -1, 284, 285, 286, -1, 134, -1, 290, - -1, 138, -1, 140, 141, 142, 143, 40, -1, -1, - 43, 123, 45, -1, 151, -1, -1, 154, -1, -1, - -1, -1, -1, -1, 315, 316, 59, 164, 263, 264, - 321, 266, 267, 268, 269, 270, -1, -1, -1, -1, - -1, 276, 277, 278, 279, 280, 281, -1, 283, 284, - 285, -1, 287, 288, -1, 192, -1, 292, 293, 294, - 295, -1, -1, -1, 299, -1, -1, 302, 303, 304, - 305, 208, 209, 210, 211, -1, 213, -1, 215, 216, - -1, -1, -1, -1, -1, -1, 223, 224, -1, -1, - 123, -1, 125, -1, -1, -1, -1, -1, 235, 236, - 237, 238, -1, 40, -1, -1, 43, -1, 45, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 59, -1, -1, -1, 263, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 275, 276, - 277, 278, 279, -1, 281, 282, 283, -1, 260, 261, - 262, 263, 264, -1, 266, 267, 268, 269, 270, 271, - -1, 273, 274, -1, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, -1, 287, 288, -1, -1, -1, - 292, 293, 294, 295, -1, -1, 123, 299, 125, -1, - 302, 303, 304, 305, 40, -1, -1, 43, -1, 45, + 275, -1, -1, -1, -1, 123, 124, -1, -1, -1, + -1, 286, -1, -1, 289, 290, 291, -1, -1, -1, + -1, 296, 297, 93, 94, -1, 301, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, + -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 123, 124, -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, 257, 258, 259, 260, 261, 262, + -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 275, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 286, -1, -1, 289, 290, 291, -1, + -1, -1, -1, 296, 297, -1, -1, -1, 301, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, + 258, 259, 260, 261, 262, -1, -1, 265, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 275, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 286, -1, + -1, 289, 290, 291, -1, -1, -1, -1, 296, 297, + -1, 7, -1, 301, -1, -1, -1, 257, 258, 259, + 260, 261, 262, -1, -1, 265, -1, -1, -1, -1, + -1, -1, -1, -1, 30, 275, -1, -1, -1, -1, + -1, 37, -1, -1, -1, -1, 286, -1, -1, 289, + 290, 291, -1, 49, -1, -1, 52, 53, 54, 55, + 56, 301, 58, 59, 60, -1, 62, 63, 64, 65, + 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 82, -1, -1, 85, + 86, 87, 88, 89, 90, -1, 50, 51, -1, -1, + -1, -1, -1, -1, 100, -1, -1, 103, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, + -1, -1, -1, -1, -1, 121, -1, 81, -1, 83, + 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 136, 137, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 154, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 166, 167, 168, 169, 170, -1, -1, -1, -1, 175, + 176, -1, 178, 179, -1, -1, -1, 183, -1, -1, + -1, 187, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 198, 157, 158, 201, -1, -1, 204, 205, + -1, -1, -1, -1, -1, -1, -1, -1, 17, -1, + -1, -1, -1, 177, -1, 221, 222, 223, -1, 28, + 29, -1, 31, 32, 188, 34, 190, -1, 192, -1, + -1, -1, -1, -1, 43, -1, 242, -1, 244, -1, + 246, -1, 248, -1, 250, -1, -1, -1, -1, 255, + -1, 215, -1, -1, 260, 261, 40, -1, -1, 43, + -1, 45, 268, -1, -1, -1, 230, 231, 232, 233, + 234, -1, -1, -1, -1, 59, -1, -1, -1, -1, + -1, -1, 288, -1, 93, 94, 95, 96, 97, 98, + -1, -1, -1, -1, -1, -1, 105, -1, -1, 305, + -1, 110, -1, -1, 113, 114, -1, -1, 117, 40, + 119, 120, 43, -1, 45, 124, 125, 281, -1, -1, + -1, 285, 286, 287, -1, -1, 135, 291, 59, -1, + 139, -1, 141, 142, 143, 144, -1, -1, -1, 123, + -1, -1, -1, 152, -1, -1, 155, -1, -1, -1, + -1, -1, 316, 317, -1, -1, 165, 40, 322, -1, + 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, + -1, -1, -1, -1, 193, -1, -1, -1, -1, -1, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, + 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, + -1, -1, -1, -1, -1, 224, 225, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 236, 237, 238, + 239, 40, -1, -1, 43, -1, 45, -1, -1, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + 59, -1, -1, -1, -1, 264, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 276, 277, 278, + 279, 280, -1, 282, 283, 284, 260, 261, 262, 263, + 264, -1, 266, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, -1, 287, 288, -1, -1, -1, 292, 293, + 294, 295, -1, -1, 123, 299, 125, -1, 302, 303, + 304, 305, 306, -1, -1, -1, -1, -1, -1, 260, + -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, + 271, 272, 273, 274, -1, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, -1, 287, 288, -1, -1, + -1, 292, 293, 294, 295, -1, -1, -1, 299, -1, + -1, 302, 303, 304, 305, 306, -1, 260, -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, -1, -1, 302, - 303, 304, 305, -1, -1, -1, -1, 123, 40, 125, - -1, 43, -1, 45, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, + 303, 304, 305, 306, 40, -1, -1, 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, 260, -1, -1, 263, 264, -1, 266, 267, 268, + 269, 270, 271, 272, 273, 274, -1, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, + -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, + 299, -1, -1, 302, 303, 304, 305, 306, 40, -1, + -1, 43, -1, 45, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 260, -1, -1, 263, 264, -1, 266, - 267, 268, 269, 270, 271, 272, 273, 274, -1, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, - 287, 288, -1, -1, -1, 292, 293, 294, 295, -1, - -1, 123, 299, 125, -1, 302, 303, 304, 305, 40, - -1, -1, 43, -1, 45, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 40, -1, -1, 43, -1, + 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, + 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, -1, -1, -1, 292, 293, 294, 295, - -1, -1, 123, 299, 125, -1, 302, 303, 304, 305, - -1, 40, -1, -1, 43, -1, 45, -1, -1, -1, + 123, -1, 125, 299, -1, -1, 302, 303, 304, 305, + 306, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, + 40, 41, -1, 43, 44, 45, -1, -1, 260, -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, 271, - 272, 273, 274, -1, 276, 277, 278, 279, 280, 281, + 272, 273, 274, 63, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, -1, -1, - 302, 303, 304, 305, 123, -1, 125, -1, -1, -1, - -1, -1, 40, -1, -1, 43, -1, 45, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, - 271, 272, 273, 274, -1, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, -1, 287, 288, -1, -1, - -1, 292, 293, 294, 295, -1, -1, -1, 299, -1, - -1, 302, 303, 304, 305, 123, 40, 125, -1, 43, - -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -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, 260, -1, -1, 263, 264, -1, 266, 267, 268, - 269, 270, 271, 272, 273, 274, -1, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, - -1, -1, -1, 292, 293, 294, 295, -1, -1, 123, - 299, 125, -1, 302, 303, 304, 305, 40, -1, -1, - 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -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, 260, -1, -1, 263, 264, -1, 266, 267, - 268, 269, 270, 271, 272, 273, 274, -1, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, - 288, -1, -1, -1, 292, 293, 294, 295, -1, -1, - 123, 299, 125, -1, 302, 303, 304, 305, -1, 40, - -1, -1, 43, -1, 45, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 260, -1, -1, 263, - 264, -1, 266, 267, 268, 269, 270, 271, 272, 273, - 274, -1, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, -1, 287, 288, -1, -1, -1, 292, 293, - 294, 295, -1, -1, -1, 299, -1, -1, 302, 303, - 304, 305, 123, -1, 125, -1, -1, -1, -1, -1, - 40, -1, -1, 43, -1, 45, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, - 263, 264, -1, 266, 267, 268, 269, 270, 271, -1, - 273, 274, -1, 276, 277, 278, 279, 280, 281, 282, + 302, 303, 304, 305, 306, 260, -1, -1, 263, 264, + -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, + -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, -1, 287, 288, -1, -1, -1, 292, 293, 294, + 295, -1, -1, -1, 299, -1, -1, 302, 303, 304, + 305, 306, -1, 40, -1, -1, 43, 260, 45, -1, + 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 59, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, -1, -1, 302, - 303, 304, 305, 123, 40, 125, -1, 43, -1, 45, + 303, 304, 305, 306, 40, -1, -1, 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, - -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, - 271, -1, 273, 274, -1, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, -1, 287, 288, -1, -1, - -1, 292, 293, 294, 295, -1, -1, 123, 299, 125, - -1, 302, 303, 304, 305, 40, -1, -1, 43, -1, - 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, 40, -1, -1, 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 59, -1, -1, 263, 264, -1, -1, -1, 268, 269, + 270, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, + -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, + -1, -1, 302, 303, 304, 305, 306, -1, -1, 40, + -1, -1, 43, -1, 45, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 260, -1, -1, 263, 264, -1, 266, 267, 268, 269, - 270, 271, -1, 273, 274, -1, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, -1, 287, 288, -1, - -1, -1, 292, 293, 294, 295, -1, -1, 123, 299, - 125, -1, 302, 303, 304, 305, -1, 40, -1, -1, - 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -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, 260, -1, -1, 263, 264, -1, 266, + 267, 268, 269, 270, 271, 272, 273, 274, -1, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, + 287, 288, 123, -1, 125, 292, 293, 294, 295, -1, + -1, -1, 299, -1, -1, 302, 303, 304, 305, 306, -1, -1, -1, -1, 260, -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, 271, -1, 273, 274, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, -1, -1, 302, 303, 304, 305, - 123, -1, 125, -1, -1, -1, -1, -1, 40, -1, + 306, 260, -1, -1, 263, 264, -1, 266, 267, 268, + 269, 270, 271, -1, 273, 274, -1, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, + -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, + 299, -1, -1, 302, 303, 304, 305, 306, 40, -1, -1, 43, -1, 45, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, -1, 260, + -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, + 271, -1, 273, 274, -1, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, -1, 287, 288, -1, -1, + -1, 292, 293, 294, 295, -1, -1, -1, 299, -1, + -1, 302, 303, 304, 305, 306, 40, -1, -1, 43, + -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 123, -1, 125, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 260, -1, -1, 263, 264, - -1, 266, 267, 268, 269, 270, 271, -1, 273, 274, - -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, -1, 287, 288, -1, -1, -1, 292, 293, 294, - 295, -1, -1, -1, 299, -1, -1, 302, 303, 304, - 305, 123, 40, 125, -1, 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 40, -1, -1, 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, - 263, 264, -1, 266, 267, 268, 269, 270, 271, -1, - 273, 274, -1, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 40, 287, 288, 43, 44, 45, 292, - 293, 294, 295, -1, -1, 123, 299, 125, -1, 302, - 303, 304, 305, 60, -1, 62, 63, -1, -1, -1, + -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, + -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 40, -1, -1, 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, - 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 60, 260, 62, - 63, 263, 264, -1, 266, 267, 268, 269, 270, 271, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, + -1, 263, 264, -1, 266, 267, 268, 269, 270, 271, -1, 273, 274, -1, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 40, 287, 288, 43, -1, 45, + 282, 283, 284, 285, -1, 287, 288, 123, -1, 125, 292, 293, 294, 295, -1, -1, -1, 299, -1, -1, - 302, 303, 304, 305, -1, -1, -1, -1, -1, -1, + 302, 303, 304, 305, 306, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, + -1, -1, 43, -1, 45, -1, 260, -1, -1, 263, + 264, -1, 266, 267, 268, 269, 270, 271, 59, 273, + 274, -1, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, -1, 287, 288, -1, -1, -1, 292, 293, + 294, 295, -1, -1, -1, 299, -1, -1, 302, 303, + 304, 305, 306, 260, -1, -1, 263, 264, -1, 266, + 267, 268, 269, 270, 271, -1, 273, 274, -1, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, + 287, 288, 123, -1, 125, 292, 293, 294, 295, -1, + -1, -1, 299, -1, -1, 302, 303, 304, 305, 306, + 40, -1, -1, 43, 260, 45, -1, 263, 264, -1, + 266, 267, 268, 269, 270, 271, -1, 273, 274, -1, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + -1, 287, 288, -1, -1, -1, 292, 293, 294, 295, + -1, -1, -1, 299, -1, -1, 302, 303, 304, 305, + 306, 40, -1, -1, 43, 44, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 60, -1, 62, 63, -1, -1, -1, -1, -1, + -1, -1, -1, 123, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 40, -1, -1, 43, -1, + 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 60, -1, 62, 63, 260, + -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, + 271, -1, 273, 274, -1, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, -1, 287, 288, -1, -1, + -1, 292, 293, 294, 295, -1, -1, -1, 299, -1, + -1, 302, 303, 304, 305, 306, 40, 41, -1, 43, + 44, 45, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 40, 41, -1, 43, 44, 45, -1, -1, -1, - -1, -1, 260, -1, -1, 263, 264, -1, 266, 267, - 268, 269, 270, 271, 63, 273, 274, -1, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, -1, 287, - 288, -1, -1, -1, 292, 293, 294, 295, -1, -1, - -1, 299, -1, -1, 302, 303, 304, 305, 40, 41, - -1, 43, 44, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 63, -1, -1, -1, -1, 263, 264, -1, -1, - -1, 268, 269, 270, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 281, -1, 283, 284, 285, -1, - 287, -1, -1, -1, -1, 292, 293, 294, 295, 296, - 297, -1, 299, -1, -1, 302, 303, 304, 305, -1, - 263, 264, -1, -1, -1, 268, 269, 270, -1, -1, - -1, -1, 40, 41, -1, 43, 44, 45, 281, -1, + 40, 41, -1, 43, 44, 45, -1, 257, 258, 259, + -1, -1, -1, 263, 264, -1, -1, -1, 268, 269, + 270, -1, -1, 63, -1, -1, -1, -1, -1, -1, + -1, 281, -1, 283, 284, 285, 286, 287, -1, -1, + -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, + -1, 301, 302, 303, 304, 305, 306, 40, 41, -1, + 43, 44, 45, -1, 263, 264, -1, -1, -1, 268, + 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, + 63, -1, 281, -1, 283, 284, 285, -1, 287, -1, + -1, -1, -1, 292, 293, 294, 295, 296, 297, -1, + 299, -1, -1, 302, 303, 304, 305, 306, 263, 264, + -1, -1, -1, 268, 269, 270, -1, -1, -1, -1, + 40, 41, -1, 43, 44, 45, 281, -1, 283, 284, + 285, -1, 287, -1, -1, -1, -1, 292, 293, 294, + 295, 296, 297, 63, 299, -1, -1, 302, 303, 304, + 305, 306, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, + -1, 43, -1, 45, -1, -1, -1, -1, -1, 263, + 264, -1, -1, -1, 268, 269, 270, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 281, -1, 283, + 284, 285, -1, 287, -1, -1, -1, -1, 292, 293, + 294, 295, -1, -1, -1, 299, -1, -1, 302, 303, + 304, 305, 306, 263, 264, -1, -1, -1, 268, 269, + 270, 40, -1, -1, 43, -1, 45, -1, -1, -1, + -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, + -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, + -1, -1, 302, 303, 304, 305, 306, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, + 263, 264, 43, -1, 45, 268, 269, 270, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, -1, -1, 292, - 293, 294, 295, 296, 297, 63, 299, -1, -1, 302, - 303, 304, 305, 259, -1, 261, 262, 263, 264, -1, - -1, -1, 268, 269, 270, -1, -1, 40, 41, -1, - 43, 44, 45, -1, -1, 281, -1, 283, 284, 285, - -1, 287, -1, -1, -1, -1, 292, 293, 294, 295, - 63, -1, -1, 299, -1, 301, 302, 303, 304, 305, - -1, -1, -1, -1, 263, 264, -1, -1, -1, 268, - 269, 270, -1, -1, 40, 41, -1, 43, 44, 45, - -1, -1, 281, -1, 283, 284, 285, -1, 287, -1, - -1, -1, -1, 292, 293, 294, 295, 63, -1, -1, - 299, -1, -1, 302, 303, 304, 305, -1, -1, -1, + 293, 294, 295, -1, -1, -1, 299, -1, -1, 302, + 303, 304, 305, 306, 40, -1, -1, 43, 44, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 263, 264, -1, -1, -1, 268, 269, 270, 40, - -1, -1, 43, -1, 45, -1, -1, -1, -1, 281, + -1, -1, -1, 263, 264, -1, -1, 63, 268, 269, + 270, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, + -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, + -1, -1, 302, 303, 304, 305, 306, 259, -1, -1, + -1, 263, 264, -1, -1, -1, 268, 269, 270, -1, + -1, 40, -1, -1, 43, 44, 45, -1, -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, -1, -1, - 292, 293, 294, 295, -1, -1, -1, 299, -1, -1, - 302, 303, 304, 305, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 40, -1, -1, 43, - -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 263, 264, -1, -1, -1, - 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 281, -1, 283, 284, 285, -1, 287, - -1, -1, -1, -1, 292, 293, 294, 295, -1, -1, - -1, 299, -1, -1, 302, 303, 304, 305, -1, -1, - 263, 264, -1, -1, -1, 268, 269, 270, -1, -1, - 40, -1, -1, 43, 44, 45, -1, -1, 281, -1, - 283, 284, 285, -1, 287, -1, -1, -1, -1, 292, - 293, 294, 295, 63, -1, -1, 299, -1, -1, 302, - 303, 304, 305, -1, -1, -1, -1, 263, 264, -1, - -1, -1, 268, 269, 270, -1, -1, 40, 41, -1, - 43, -1, 45, -1, -1, 281, -1, 283, 284, 285, - -1, 287, -1, -1, -1, -1, 292, 293, 294, 295, - 63, -1, -1, 299, -1, -1, 302, 303, 304, 305, - -1, -1, -1, -1, -1, -1, -1, -1, 259, -1, + 292, 293, 294, 295, 63, -1, -1, 299, -1, 301, + 302, 303, 304, 305, 306, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, + 259, 43, 44, 45, 263, 264, -1, -1, -1, 268, + 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 63, 281, -1, 283, 284, 285, -1, 287, -1, + -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, + 299, -1, 301, 302, 303, 304, 305, 306, 259, -1, -1, -1, 263, 264, -1, -1, -1, 268, 269, 270, -1, -1, 40, -1, -1, 43, 44, 45, -1, -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, -1, -1, 292, 293, 294, 295, 63, -1, -1, 299, -1, - 301, 302, 303, 304, 305, 259, -1, -1, -1, 263, - 264, -1, -1, -1, 268, 269, 270, -1, -1, 40, - -1, -1, 43, 44, 45, -1, -1, 281, -1, 283, - 284, 285, -1, 287, -1, -1, -1, -1, 292, 293, - 294, 295, 63, -1, -1, 299, -1, 301, 302, 303, - 304, 305, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 40, -1, -1, 43, 44, 45, -1, -1, + 301, 302, 303, 304, 305, 306, -1, 263, 264, -1, + -1, -1, 268, 269, 270, -1, -1, 40, -1, -1, + 43, 44, 45, -1, -1, 281, -1, 283, 284, 285, + -1, 287, -1, -1, -1, -1, 292, 293, 294, 295, + 63, -1, -1, 299, -1, -1, 302, 303, 304, 305, + 306, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 40, -1, -1, 43, 44, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 63, -1, -1, -1, -1, - -1, -1, -1, 263, 264, -1, -1, -1, 268, 269, - 270, -1, -1, -1, -1, 40, -1, -1, 43, 44, - 45, 281, -1, 283, 284, 285, -1, 287, -1, -1, - -1, -1, 292, 293, 294, 295, -1, -1, 63, 299, - -1, -1, 302, 303, 304, 305, -1, -1, -1, -1, + -1, -1, -1, -1, 263, 264, 63, -1, -1, 268, + 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 281, -1, 283, 284, 285, -1, 287, -1, + -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, + 299, -1, -1, 302, 303, 304, 305, 306, -1, -1, + -1, 263, 264, -1, -1, -1, 268, 269, 270, -1, + -1, 40, -1, -1, 43, -1, 45, -1, -1, 281, + -1, 283, 284, 285, -1, 287, -1, -1, -1, 58, + 292, 293, 294, 295, 63, -1, -1, 299, -1, -1, + 302, 303, 304, 305, 306, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 40, -1, -1, 43, -1, + 45, -1, -1, -1, -1, 263, 264, -1, -1, -1, + 268, 269, 270, 58, -1, -1, -1, -1, 63, -1, + -1, -1, -1, 281, -1, 283, 284, 285, -1, 287, + -1, -1, -1, -1, 292, 293, 294, 295, -1, -1, + -1, 299, -1, -1, 302, 303, 304, 305, 306, -1, 263, 264, -1, -1, -1, 268, 269, 270, -1, -1, - 40, -1, -1, 43, 44, 45, -1, -1, 281, -1, + 40, 41, -1, 43, -1, 45, -1, -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, -1, -1, 292, 293, 294, 295, 63, -1, -1, 299, -1, -1, 302, - 303, 304, 305, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 263, 264, -1, -1, -1, - 268, 269, 270, -1, -1, 40, -1, -1, 43, 44, - 45, -1, -1, 281, -1, 283, 284, 285, -1, 287, - -1, -1, -1, -1, 292, 293, 294, 295, 63, -1, - -1, 299, -1, -1, 302, 303, 304, 305, -1, -1, - -1, -1, 263, 264, -1, -1, -1, 268, 269, 270, - -1, -1, 40, -1, -1, 43, -1, 45, -1, -1, - 281, -1, 283, 284, 285, -1, 287, -1, -1, -1, - 58, 292, 293, 294, 295, 63, -1, -1, 299, -1, - -1, 302, 303, 304, 305, 263, 264, -1, -1, -1, - 268, 269, 270, -1, -1, 40, -1, -1, 43, -1, - 45, -1, -1, 281, -1, 283, 284, 285, -1, 287, - -1, -1, -1, 58, 292, 293, 294, 295, 63, -1, - -1, 299, -1, -1, 302, 303, 304, 305, 263, 264, - -1, -1, -1, 268, 269, 270, -1, -1, 40, 41, - -1, 43, -1, 45, -1, -1, 281, -1, 283, 284, - 285, -1, 287, -1, -1, -1, -1, 292, 293, 294, - 295, 63, -1, -1, 299, -1, -1, 302, 303, 304, - 305, -1, -1, 263, 264, -1, -1, -1, 268, 269, - 270, -1, -1, 40, 41, -1, 43, -1, 45, -1, - -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, - -1, -1, 292, 293, 294, 295, 63, -1, -1, 299, - -1, -1, 302, 303, 304, 305, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 263, 264, - -1, -1, -1, 268, 269, 270, -1, -1, 40, 41, - -1, 43, -1, 45, -1, -1, 281, -1, 283, 284, - 285, -1, 287, -1, -1, -1, -1, 292, 293, 294, - 295, 63, -1, -1, 299, -1, -1, 302, 303, 304, - 305, -1, -1, -1, -1, 263, 264, -1, -1, -1, - 268, 269, 270, -1, -1, 40, 41, -1, 43, -1, - 45, -1, -1, 281, -1, 283, 284, 285, -1, 287, - -1, -1, -1, -1, 292, 293, 294, 295, 63, -1, - -1, 299, -1, -1, 302, 303, 304, 305, 263, 264, - -1, -1, -1, 268, 269, 270, -1, -1, 40, 41, - -1, 43, -1, 45, -1, -1, 281, -1, 283, 284, - 285, -1, 287, -1, -1, -1, -1, 292, 293, 294, - 295, 63, -1, -1, 299, -1, -1, 302, 303, 304, - 305, 263, 264, -1, -1, -1, 268, 269, 270, -1, - -1, 40, 41, -1, 43, -1, 45, -1, -1, 281, - -1, 283, 284, 285, -1, 287, -1, -1, -1, -1, - 292, 293, 294, 295, 63, -1, -1, 299, -1, -1, - 302, 303, 304, 305, -1, -1, 263, 264, -1, -1, + 303, 304, 305, 306, -1, -1, 263, 264, -1, -1, -1, 268, 269, 270, -1, -1, 40, 41, -1, 43, -1, 45, -1, -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, -1, -1, 292, 293, 294, 295, 63, - -1, -1, 299, -1, -1, 302, 303, 304, 305, -1, + -1, -1, 299, -1, -1, 302, 303, 304, 305, 306, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 263, 264, -1, -1, -1, 268, 269, 270, -1, - -1, 40, 41, -1, 43, -1, 45, -1, -1, 281, - -1, 283, 284, 285, -1, 287, -1, -1, -1, -1, - 292, 293, 294, 295, 63, -1, -1, 299, -1, -1, - 302, 303, 304, 305, -1, -1, -1, -1, 263, 264, + 40, 41, -1, 43, -1, 45, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 63, 263, 264, -1, -1, -1, 268, + 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 281, -1, 283, 284, 285, -1, 287, -1, + -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, + 299, -1, -1, 302, 303, 304, 305, 306, 263, 264, -1, -1, -1, 268, 269, 270, -1, -1, 40, 41, -1, 43, -1, 45, -1, -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, -1, -1, 292, 293, 294, 295, 63, -1, -1, 299, -1, -1, 302, 303, 304, - 305, 263, 264, -1, -1, -1, 268, 269, 270, -1, - -1, 40, 41, -1, 43, -1, 45, -1, -1, 281, - -1, 283, 284, 285, -1, 287, -1, -1, -1, -1, - 292, 293, 294, 295, -1, -1, -1, 299, -1, -1, - 302, 303, 304, 305, 263, 264, -1, -1, -1, 268, - 269, 270, -1, -1, -1, -1, -1, -1, 40, -1, - -1, 43, 281, 45, 283, 284, 285, -1, 287, -1, - -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, - 299, -1, -1, 302, 303, 304, 305, -1, -1, 263, - 264, -1, -1, -1, 268, 269, 270, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 281, -1, 283, - 284, 285, 40, 287, -1, 43, -1, 45, 292, 293, - 294, 295, -1, -1, -1, 299, -1, -1, 302, 303, - 304, 305, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 263, 264, -1, -1, -1, 268, - 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 281, -1, 283, 284, 285, 40, 287, -1, - 43, -1, 45, 292, 293, 294, 295, -1, -1, -1, - 299, -1, -1, 302, 303, 304, 305, -1, -1, -1, - -1, 263, 264, -1, -1, -1, 268, 269, 270, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 281, - -1, 283, 284, 285, 40, 287, -1, 43, -1, 45, - 292, 293, 294, 295, -1, -1, -1, 299, -1, -1, - 302, 303, 304, 305, 263, 264, -1, -1, -1, 268, - 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 281, -1, 283, 284, 285, 40, 287, -1, - 43, -1, 45, 292, 293, 294, 295, -1, -1, -1, - 299, -1, -1, 302, 303, 304, 305, 259, -1, -1, + 305, 306, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, -1, 45, -1, -1, + -1, -1, -1, 263, 264, -1, -1, -1, 268, 269, + 270, -1, -1, -1, -1, 63, -1, -1, -1, -1, + -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, + -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, + -1, -1, 302, 303, 304, 305, 306, -1, -1, 263, + 264, -1, -1, -1, 268, 269, 270, -1, -1, 40, + 41, -1, 43, -1, 45, -1, -1, 281, -1, 283, + 284, 285, -1, 287, -1, -1, -1, -1, 292, 293, + 294, 295, 63, -1, -1, 299, -1, -1, 302, 303, + 304, 305, 306, 263, 264, -1, -1, -1, 268, 269, + 270, -1, -1, 40, 41, -1, 43, -1, 45, -1, + -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, + -1, -1, 292, 293, 294, 295, 63, -1, -1, 299, + -1, -1, 302, 303, 304, 305, 306, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, + 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, 263, 264, -1, -1, -1, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 281, - -1, 283, 284, 285, 40, 287, -1, 43, -1, 45, + -1, 283, 284, 285, -1, 287, -1, -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, -1, -1, - 302, 303, 304, 305, -1, -1, -1, -1, -1, -1, - -1, 259, -1, -1, -1, 263, 264, -1, -1, -1, - 268, 269, 270, -1, -1, -1, -1, 40, -1, -1, - 43, -1, 45, 281, -1, 283, 284, 285, -1, 287, - -1, -1, -1, -1, 292, 293, 294, 295, -1, -1, - -1, 299, -1, -1, 302, 303, 304, 305, -1, -1, - -1, -1, -1, -1, -1, -1, 259, -1, -1, -1, - 263, 264, -1, -1, -1, 268, 269, 270, 40, -1, - -1, 43, -1, 45, -1, -1, -1, -1, 281, -1, + 302, 303, 304, 305, 306, 263, 264, -1, -1, -1, + 268, 269, 270, -1, -1, 40, 41, -1, 43, -1, + 45, -1, -1, 281, -1, 283, 284, 285, -1, 287, + -1, -1, -1, -1, 292, 293, 294, 295, 63, -1, + -1, 299, -1, -1, 302, 303, 304, 305, 306, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, + 41, -1, 43, -1, 45, -1, -1, -1, -1, -1, + -1, -1, 263, 264, -1, -1, -1, 268, 269, 270, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 281, -1, 283, 284, 285, -1, 287, -1, -1, -1, + -1, 292, 293, 294, 295, -1, -1, -1, 299, -1, + -1, 302, 303, 304, 305, 306, 263, 264, -1, -1, + -1, 268, 269, 270, 40, -1, -1, 43, -1, 45, + -1, -1, -1, -1, 281, -1, 283, 284, 285, -1, + 287, -1, -1, -1, -1, 292, 293, 294, 295, -1, + -1, -1, 299, -1, -1, 302, 303, 304, 305, 306, + 263, 264, -1, -1, -1, 268, 269, 270, -1, -1, + -1, -1, 40, -1, -1, 43, -1, 45, 281, -1, 283, 284, 285, -1, 287, -1, -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, -1, -1, 302, - 303, 304, 305, 259, -1, -1, -1, 263, 264, -1, + 303, 304, 305, 306, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 40, -1, -1, 43, -1, 45, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 263, 264, + -1, -1, -1, 268, 269, 270, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 281, -1, 283, 284, + 285, -1, 287, -1, -1, -1, -1, 292, 293, 294, + 295, -1, -1, -1, 299, -1, -1, 302, 303, 304, + 305, 306, 263, 264, -1, -1, -1, 268, 269, 270, + 40, -1, -1, 43, -1, 45, -1, -1, -1, -1, + 281, -1, 283, 284, 285, -1, 287, -1, -1, -1, + -1, 292, 293, 294, 295, -1, -1, -1, 299, -1, + -1, 302, 303, 304, 305, 306, -1, -1, -1, -1, + -1, -1, -1, -1, 40, -1, -1, 43, -1, 45, + -1, -1, -1, 259, -1, -1, -1, 263, 264, -1, + -1, -1, 268, 269, 270, -1, -1, 63, -1, -1, + -1, -1, -1, -1, -1, 281, -1, 283, 284, 285, + -1, 287, -1, -1, -1, -1, 292, 293, 294, 295, + -1, -1, -1, 299, -1, -1, 302, 303, 304, 305, + 306, 259, -1, -1, 40, 263, 264, 43, -1, 45, + 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 281, -1, 283, 284, 285, -1, 287, + -1, -1, -1, -1, 292, 293, 294, 295, -1, -1, + -1, 299, -1, -1, 302, 303, 304, 305, 306, 259, + -1, -1, 40, 263, 264, 43, -1, 45, 268, 269, + 270, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, + -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, + -1, -1, 302, 303, 304, 305, 306, 40, -1, -1, + 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 259, + -1, -1, -1, 263, 264, -1, -1, -1, 268, 269, + 270, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, + -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, + -1, -1, 302, 303, 304, 305, 306, 263, 264, -1, -1, -1, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, -1, -1, 302, 303, 304, 305, - 263, 264, -1, -1, -1, 268, 269, 270, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 281, -1, - 283, 284, 285, -1, 287, -1, -1, -1, -1, 292, - 293, 294, 295, -1, -1, -1, 299, -1, -1, 302, - 303, 304, 305, 259, -1, -1, -1, 263, 264, -1, + 306, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 259, -1, -1, -1, 263, 264, -1, -1, -1, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, -1, -1, 302, 303, 304, 305, - 263, 264, -1, -1, -1, 268, 269, 270, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 281, -1, + 306, -1, -1, -1, -1, 263, 264, -1, -1, -1, + 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 281, -1, 283, 284, 285, -1, 287, + -1, -1, -1, -1, 292, 293, 294, 295, -1, -1, + -1, 299, -1, -1, 302, 303, 304, 305, 306, -1, + 263, 264, 28, 29, -1, 268, 269, 270, 34, -1, + -1, -1, -1, -1, -1, -1, -1, 43, 281, -1, 283, 284, 285, -1, 287, -1, -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, -1, -1, 302, - 303, 304, 305, -1, -1, -1, -1, 28, 29, -1, - -1, 263, 264, 34, -1, -1, 268, 269, 270, -1, - -1, 42, -1, -1, -1, -1, -1, -1, -1, 281, - -1, 283, 284, 285, -1, 287, -1, -1, -1, -1, - 292, 293, 294, 295, -1, -1, -1, 299, -1, -1, - 302, 303, 304, 305, -1, -1, -1, -1, -1, -1, + 303, 304, 305, 306, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, + 96, 97, 98, -1, -1, -1, -1, -1, -1, 105, + -1, -1, -1, -1, 110, -1, -1, 113, 114, -1, + -1, 117, -1, 119, 120, -1, -1, -1, 124, 125, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, + -1, -1, -1, 139, -1, 141, 142, 143, 144, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 155, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 92, 93, 94, 95, 96, 97, -1, -1, -1, - -1, -1, -1, 104, -1, -1, -1, -1, 109, -1, - -1, 112, 113, -1, -1, 116, -1, 118, 119, -1, - -1, -1, 123, 124, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 134, -1, -1, -1, 138, -1, 140, - 141, 142, 143, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 154, -1, -1, -1, -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, -1, 193, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 192, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 208, 209, 210, - 211, -1, 213, -1, 215, 216, -1, -1, -1, -1, - -1, -1, 223, 224, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 235, 236, 237, 238, -1, -1, + -1, -1, -1, 209, 210, 211, 212, -1, 214, -1, + 216, 217, -1, -1, -1, -1, -1, -1, 224, 225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 236, 237, 238, 239, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 275, 276, 277, 278, 279, -1, - 281, 282, 283, + -1, -1, -1, -1, -1, -1, -1, -1, 264, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 276, 277, 278, 279, 280, -1, 282, 283, 284, }; #define YYFINAL 1 #ifndef YYDEBUG #define YYDEBUG 0 #endif -#define YYMAXTOKEN 305 +#define YYMAXTOKEN 306 #if YYDEBUG char *yyname[] = { "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -1899,7 +1997,7 @@ char *yyname[] = { "SPRINTF_NEW","SPLIT","IF","ELSE","WHILE","FOR","IN","EXIT","NEXT","BREAK", "CONTINUE","RET","GETLINE","DO","SUB","GSUB","MATCH","FUNCTION","USERFUN", "DELETE","ASGNOP","OROR","ANDAND","NUMBER","VAR","SUBSTR","INDEX","MATCHOP", -"RELOP","OR","STRING","UMINUS","NOT","INCR","DECR","FIELD","VFIELD", +"RELOP","OR","STRING","UMINUS","NOT","INCR","DECR","FIELD","VFIELD","SVFIELD", }; char *yyrule[] = { "$accept : program", @@ -1990,6 +2088,7 @@ char *yyrule[] = { "variable : VAR", "variable : VAR '[' expr_list ']'", "variable : FIELD", +"variable : SVFIELD", "variable : VFIELD term", "expr_list : expr", "expr_list : clist", @@ -2048,12 +2147,9 @@ char *yyrule[] = { #ifndef YYSTYPE typedef int YYSTYPE; #endif -#define yyclearin (yychar=(-1)) -#define yyerrok (yyerrflag=0) #ifdef YYSTACKSIZE -#ifndef YYMAXDEPTH +#undef YYMAXDEPTH #define YYMAXDEPTH YYSTACKSIZE -#endif #else #ifdef YYMAXDEPTH #define YYSTACKSIZE YYMAXDEPTH @@ -2073,21 +2169,23 @@ YYSTYPE yylval; short yyss[YYSTACKSIZE]; YYSTYPE yyvs[YYSTACKSIZE]; #define yystacksize YYSTACKSIZE -#line 401 "a2p.y" +#line 429 "a2p.y" int yyparse (void); #include "a2py.c" -#line 2081 "y.tab.c" +#line 2178 "y.tab.c" #define YYABORT goto yyabort +#define YYREJECT goto yyabort #define YYACCEPT goto yyaccept #define YYERROR goto yyerrlab int -yyparse() +yyparse(void) { register int yym, yyn, yystate; #if YYDEBUG register char *yys; + extern char *getenv(); if ((yys = getenv("YYDEBUG"))) { @@ -2106,7 +2204,7 @@ yyparse() *yyssp = yystate = 0; yyloop: - if ((yyn = yydefred[yystate])) goto yyreduce; + if (((yyn = yydefred[yystate])) != 0) goto yyreduce; if (yychar < 0) { if ((yychar = yylex()) < 0) yychar = 0; @@ -2116,8 +2214,8 @@ yyloop: yys = 0; if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; - printf("yydebug: state %d, reading %d (%s)\n", yystate, - yychar, yys); + printf("%sdebug: state %d, reading %d (%s)\n", + YYPREFIX, yystate, yychar, yys); } #endif } @@ -2126,8 +2224,8 @@ yyloop: { #if YYDEBUG if (yydebug) - printf("yydebug: state %d, shifting to state %d\n", - yystate, yytable[yyn]); + printf("%sdebug: state %d, shifting to state %d\n", + YYPREFIX, yystate, yytable[yyn]); #endif if (yyssp >= yyss + yystacksize - 1) { @@ -2167,8 +2265,8 @@ yyinrecovery: { #if YYDEBUG if (yydebug) - printf("yydebug: state %d, error recovery shifting\ - to state %d\n", *yyssp, yytable[yyn]); + printf("%sdebug: state %d, error recovery shifting\ + to state %d\n", YYPREFIX, *yyssp, yytable[yyn]); #endif if (yyssp >= yyss + yystacksize - 1) { @@ -2182,8 +2280,8 @@ yyinrecovery: { #if YYDEBUG if (yydebug) - printf("yydebug: error recovery discarding state %d\n", - *yyssp); + printf("%sdebug: error recovery discarding state %d\n", + YYPREFIX, *yyssp); #endif if (yyssp <= yyss) goto yyabort; --yyssp; @@ -2200,8 +2298,8 @@ yyinrecovery: yys = 0; if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; - printf("yydebug: state %d, error recovery discards token %d (%s)\n", - yystate, yychar, yys); + printf("%sdebug: state %d, error recovery discards token %d (%s)\n", + YYPREFIX, yystate, yychar, yys); } #endif yychar = (-1); @@ -2210,544 +2308,573 @@ yyinrecovery: yyreduce: #if YYDEBUG if (yydebug) - printf("yydebug: state %d, reducing by rule %d (%s)\n", - yystate, yyn, yyrule[yyn]); + printf("%sdebug: state %d, reducing by rule %d (%s)\n", + YYPREFIX, yystate, yyn, yyrule[yyn]); #endif yym = yylen[yyn]; yyval = yyvsp[1-yym]; switch (yyn) { case 1: -#line 51 "a2p.y" +#line 52 "a2p.y" { root = oper4(OPROG,yyvsp[-1],begins,yyvsp[0],ends); } break; case 2: -#line 55 "a2p.y" +#line 56 "a2p.y" { begins = oper4(OJUNK,begins,yyvsp[-3],yyvsp[-2],yyvsp[0]); in_begin = FALSE; yyval = Nullop; } break; case 3: -#line 60 "a2p.y" +#line 61 "a2p.y" { ends = oper3(OJUNK,ends,yyvsp[-2],yyvsp[-1]); yyval = Nullop; } break; case 4: -#line 62 "a2p.y" +#line 63 "a2p.y" { yyval = yyvsp[-1]; } break; case 5: -#line 66 "a2p.y" +#line 67 "a2p.y" { yyval = oper3(OHUNKS,yyvsp[-2],yyvsp[-1],yyvsp[0]); } break; case 6: -#line 68 "a2p.y" +#line 69 "a2p.y" { yyval = Nullop; } break; case 7: -#line 72 "a2p.y" +#line 73 "a2p.y" { yyval = oper1(OHUNK,yyvsp[0]); need_entire = TRUE; } break; case 8: -#line 74 "a2p.y" +#line 75 "a2p.y" { yyval = oper2(OHUNK,yyvsp[-4],oper2(OJUNK,yyvsp[-2],yyvsp[-1])); } break; case 9: -#line 76 "a2p.y" +#line 77 "a2p.y" { fixfargs(yyvsp[-8],yyvsp[-6],0); yyval = oper5(OUSERDEF,yyvsp[-8],yyvsp[-6],yyvsp[-4],yyvsp[-2],yyvsp[-1]); } break; case 10: -#line 78 "a2p.y" +#line 79 "a2p.y" { yyval = oper2(OHUNK,Nullop,oper2(OJUNK,yyvsp[-2],yyvsp[-1])); } break; case 13: -#line 84 "a2p.y" +#line 85 "a2p.y" { yyval = rememberargs(yyval); } break; case 14: -#line 88 "a2p.y" +#line 89 "a2p.y" { yyval = oper1(OPAT,yyvsp[0]); } break; case 15: -#line 90 "a2p.y" +#line 91 "a2p.y" { yyval = oper2(ORANGE,yyvsp[-2],yyvsp[0]); } break; case 20: -#line 98 "a2p.y" +#line 99 "a2p.y" { yyval = oper3(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); } break; case 21: -#line 103 "a2p.y" +#line 104 "a2p.y" { yyval = oper1(OCPAREN,yyvsp[-1]); } break; case 22: -#line 105 "a2p.y" +#line 106 "a2p.y" { yyval = oper3(OCANDAND,yyvsp[-3],yyvsp[-1],yyvsp[0]); } break; case 23: -#line 107 "a2p.y" +#line 108 "a2p.y" { yyval = oper3(OCOROR,yyvsp[-3],yyvsp[-1],yyvsp[0]); } break; case 24: -#line 109 "a2p.y" +#line 110 "a2p.y" { yyval = oper1(OCNOT,yyvsp[0]); } break; case 25: -#line 113 "a2p.y" +#line 114 "a2p.y" { yyval = oper3(ORELOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); } break; case 26: -#line 115 "a2p.y" +#line 116 "a2p.y" { yyval = oper3(ORELOP,string(">",1),yyvsp[-2],yyvsp[0]); } break; case 27: -#line 117 "a2p.y" +#line 118 "a2p.y" { yyval = oper3(ORELOP,string("<",1),yyvsp[-2],yyvsp[0]); } break; case 28: -#line 119 "a2p.y" +#line 120 "a2p.y" { yyval = oper1(ORPAREN,yyvsp[-1]); } break; case 29: -#line 123 "a2p.y" +#line 124 "a2p.y" { yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); } break; case 30: -#line 125 "a2p.y" +#line 126 "a2p.y" { yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],oper1(OREGEX,yyvsp[0])); } break; case 31: -#line 127 "a2p.y" +#line 128 "a2p.y" { yyval = oper1(OREGEX,yyvsp[0]); } break; case 32: -#line 129 "a2p.y" +#line 130 "a2p.y" { yyval = oper1(OMPAREN,yyvsp[-1]); } break; case 33: -#line 133 "a2p.y" +#line 134 "a2p.y" { yyval = yyvsp[0]; } break; case 34: -#line 135 "a2p.y" +#line 136 "a2p.y" { yyval = oper2(OCONCAT,yyvsp[-1],yyvsp[0]); } break; case 35: -#line 137 "a2p.y" +#line 138 "a2p.y" { yyval = oper3(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); } break; case 36: -#line 139 "a2p.y" -{ yyval = oper3(OASSIGN,yyvsp[-1],yyvsp[-2],yyvsp[0]); - if ((ops[yyvsp[-2]].ival & 255) == OFLD) - lval_field = TRUE; - if ((ops[yyvsp[-2]].ival & 255) == OVFLD) - lval_field = TRUE; +#line 140 "a2p.y" +{ + yyval = oper3(OASSIGN,yyvsp[-1],yyvsp[-2],yyvsp[0]); + if ((ops[yyvsp[-2]].ival & 255) == OFLD) + lval_field = TRUE; + else if ((ops[yyvsp[-2]].ival & 255) == OVFLD) + lval_field = TRUE; } break; case 39: -#line 151 "a2p.y" +#line 153 "a2p.y" { yyval = yyvsp[0]; } break; case 40: -#line 153 "a2p.y" +#line 155 "a2p.y" { yyval = oper1(ONUM,yyvsp[0]); } break; case 41: -#line 155 "a2p.y" +#line 157 "a2p.y" { yyval = oper1(OSTR,yyvsp[0]); } break; case 42: -#line 157 "a2p.y" +#line 159 "a2p.y" { yyval = oper2(OADD,yyvsp[-2],yyvsp[0]); } break; case 43: -#line 159 "a2p.y" +#line 161 "a2p.y" { yyval = oper2(OSUBTRACT,yyvsp[-2],yyvsp[0]); } break; case 44: -#line 161 "a2p.y" +#line 163 "a2p.y" { yyval = oper2(OMULT,yyvsp[-2],yyvsp[0]); } break; case 45: -#line 163 "a2p.y" +#line 165 "a2p.y" { yyval = oper2(ODIV,yyvsp[-2],yyvsp[0]); } break; case 46: -#line 165 "a2p.y" +#line 167 "a2p.y" { yyval = oper2(OMOD,yyvsp[-2],yyvsp[0]); } break; case 47: -#line 167 "a2p.y" +#line 169 "a2p.y" { yyval = oper2(OPOW,yyvsp[-2],yyvsp[0]); } break; case 48: -#line 169 "a2p.y" +#line 171 "a2p.y" { yyval = oper2(ODEFINED,aryrefarg(yyvsp[0]),yyvsp[-2]); } break; case 49: -#line 171 "a2p.y" -{ yyval = oper1(OPOSTINCR,yyvsp[-1]); } +#line 173 "a2p.y" +{ + yyval = oper1(OPOSTINCR,yyvsp[-1]); + if ((ops[yyvsp[-1]].ival & 255) == OFLD) + lval_field = TRUE; + else if ((ops[yyvsp[-1]].ival & 255) == OVFLD) + lval_field = TRUE; + } break; case 50: -#line 173 "a2p.y" -{ yyval = oper1(OPOSTDECR,yyvsp[-1]); } +#line 181 "a2p.y" +{ + yyval = oper1(OPOSTDECR,yyvsp[-1]); + if ((ops[yyvsp[-1]].ival & 255) == OFLD) + lval_field = TRUE; + else if ((ops[yyvsp[-1]].ival & 255) == OVFLD) + lval_field = TRUE; + } break; case 51: -#line 175 "a2p.y" -{ yyval = oper1(OPREINCR,yyvsp[0]); } +#line 189 "a2p.y" +{ + yyval = oper1(OPREINCR,yyvsp[0]); + if ((ops[yyvsp[0]].ival & 255) == OFLD) + lval_field = TRUE; + else if ((ops[yyvsp[0]].ival & 255) == OVFLD) + lval_field = TRUE; + } break; case 52: -#line 177 "a2p.y" -{ yyval = oper1(OPREDECR,yyvsp[0]); } +#line 197 "a2p.y" +{ + yyval = oper1(OPREDECR,yyvsp[0]); + if ((ops[yyvsp[0]].ival & 255) == OFLD) + lval_field = TRUE; + else if ((ops[yyvsp[0]].ival & 255) == OVFLD) + lval_field = TRUE; + } break; case 53: -#line 179 "a2p.y" +#line 205 "a2p.y" { yyval = oper1(OUMINUS,yyvsp[0]); } break; case 54: -#line 181 "a2p.y" +#line 207 "a2p.y" { yyval = oper1(OUPLUS,yyvsp[0]); } break; case 55: -#line 183 "a2p.y" +#line 209 "a2p.y" { yyval = oper1(OPAREN,yyvsp[-1]); } break; case 56: -#line 185 "a2p.y" +#line 211 "a2p.y" { yyval = oper0(OGETLINE); } break; case 57: -#line 187 "a2p.y" +#line 213 "a2p.y" { yyval = oper1(OGETLINE,yyvsp[0]); } break; case 58: -#line 189 "a2p.y" +#line 215 "a2p.y" { yyval = oper3(OGETLINE,Nullop,string("<",1),yyvsp[0]); if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } break; case 59: -#line 192 "a2p.y" +#line 218 "a2p.y" { yyval = oper3(OGETLINE,yyvsp[-2],string("<",1),yyvsp[0]); if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } break; case 60: -#line 195 "a2p.y" +#line 221 "a2p.y" { yyval = oper3(OGETLINE,Nullop,string("|",1),yyvsp[-2]); if (ops[yyvsp[-2]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } break; case 61: -#line 198 "a2p.y" +#line 224 "a2p.y" { yyval = oper3(OGETLINE,yyvsp[0],string("|",1),yyvsp[-3]); if (ops[yyvsp[-3]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } break; case 62: -#line 201 "a2p.y" +#line 227 "a2p.y" { yyval = oper0(yyvsp[0]); need_entire = do_chop = TRUE; } break; case 63: -#line 203 "a2p.y" +#line 229 "a2p.y" { yyval = oper1(yyvsp[-2],Nullop); need_entire = do_chop = TRUE; } break; case 64: -#line 205 "a2p.y" +#line 231 "a2p.y" { yyval = oper1(yyvsp[-3],yyvsp[-1]); } break; case 65: -#line 207 "a2p.y" +#line 233 "a2p.y" { yyval = oper1(yyvsp[-3],yyvsp[-1]); } break; case 66: -#line 209 "a2p.y" +#line 235 "a2p.y" { yyval = oper2(OUSERFUN,yyvsp[-3],yyvsp[-1]); } break; case 67: -#line 211 "a2p.y" +#line 237 "a2p.y" { yyval = oper1(OSPRINTF,yyvsp[-1]); } break; case 68: -#line 213 "a2p.y" +#line 239 "a2p.y" { yyval = oper1(OSPRINTF,yyvsp[0]); } break; case 69: -#line 215 "a2p.y" +#line 241 "a2p.y" { yyval = oper3(OSUBSTR,yyvsp[-5],yyvsp[-3],yyvsp[-1]); } break; case 70: -#line 217 "a2p.y" +#line 243 "a2p.y" { yyval = oper2(OSUBSTR,yyvsp[-3],yyvsp[-1]); } break; case 71: -#line 219 "a2p.y" +#line 245 "a2p.y" { yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),yyvsp[-1]); } break; case 72: -#line 221 "a2p.y" +#line 247 "a2p.y" { yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),oper1(OREGEX,yyvsp[-1]));} break; case 73: -#line 223 "a2p.y" +#line 249 "a2p.y" { yyval = oper2(OSPLIT,yyvsp[-3],aryrefarg(numary(yyvsp[-1]))); } break; case 74: -#line 225 "a2p.y" +#line 251 "a2p.y" { yyval = oper2(OINDEX,yyvsp[-3],yyvsp[-1]); } break; case 75: -#line 227 "a2p.y" +#line 253 "a2p.y" { yyval = oper2(OMATCH,yyvsp[-3],oper1(OREGEX,yyvsp[-1])); } break; case 76: -#line 229 "a2p.y" +#line 255 "a2p.y" { yyval = oper2(OMATCH,yyvsp[-3],yyvsp[-1]); } break; case 77: -#line 231 "a2p.y" +#line 257 "a2p.y" { yyval = oper2(OSUB,yyvsp[-3],yyvsp[-1]); } break; case 78: -#line 233 "a2p.y" +#line 259 "a2p.y" { yyval = oper2(OSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); } break; case 79: -#line 235 "a2p.y" +#line 261 "a2p.y" { yyval = oper2(OGSUB,yyvsp[-3],yyvsp[-1]); } break; case 80: -#line 237 "a2p.y" +#line 263 "a2p.y" { yyval = oper2(OGSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); } break; case 81: -#line 239 "a2p.y" +#line 265 "a2p.y" { yyval = oper3(OSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); } break; case 82: -#line 241 "a2p.y" +#line 267 "a2p.y" { yyval = oper3(OSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); } break; case 83: -#line 243 "a2p.y" +#line 269 "a2p.y" { yyval = oper3(OGSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); } break; case 84: -#line 245 "a2p.y" +#line 271 "a2p.y" { yyval = oper3(OGSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); } break; case 85: -#line 249 "a2p.y" +#line 275 "a2p.y" { yyval = oper1(OVAR,yyvsp[0]); } break; case 86: -#line 251 "a2p.y" +#line 277 "a2p.y" { yyval = oper2(OVAR,aryrefarg(yyvsp[-3]),yyvsp[-1]); } break; case 87: -#line 253 "a2p.y" +#line 279 "a2p.y" { yyval = oper1(OFLD,yyvsp[0]); } break; case 88: -#line 255 "a2p.y" -{ yyval = oper1(OVFLD,yyvsp[0]); } +#line 281 "a2p.y" +{ yyval = oper1(OVFLD,oper1(OVAR,yyvsp[0])); } break; -case 91: -#line 262 "a2p.y" -{ yyval = Nullop; } +case 89: +#line 283 "a2p.y" +{ yyval = oper1(OVFLD,yyvsp[0]); } break; case 92: -#line 266 "a2p.y" -{ yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); } +#line 290 "a2p.y" +{ yyval = Nullop; } break; case 93: -#line 268 "a2p.y" +#line 294 "a2p.y" { yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); } break; case 94: -#line 270 "a2p.y" -{ yyval = yyvsp[-1]; } +#line 296 "a2p.y" +{ yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); } break; case 95: -#line 274 "a2p.y" -{ yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); } +#line 298 "a2p.y" +{ yyval = yyvsp[-1]; } break; case 96: -#line 276 "a2p.y" -{ yyval = Nullop; } +#line 302 "a2p.y" +{ yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); } break; case 97: -#line 280 "a2p.y" -{ yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); } +#line 304 "a2p.y" +{ yyval = Nullop; } break; case 98: -#line 282 "a2p.y" +#line 308 "a2p.y" { yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); } break; case 99: -#line 284 "a2p.y" -{ yyval = oper0(ONEWLINE); } +#line 310 "a2p.y" +{ yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); } break; case 100: -#line 286 "a2p.y" -{ yyval = oper1(OCOMMENT,yyvsp[0]); } +#line 312 "a2p.y" +{ yyval = oper0(ONEWLINE); } break; case 101: -#line 290 "a2p.y" -{ yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); } +#line 314 "a2p.y" +{ yyval = oper1(OCOMMENT,yyvsp[0]); } break; case 102: -#line 292 "a2p.y" -{ yyval = Nullop; } +#line 318 "a2p.y" +{ yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); } break; case 103: -#line 296 "a2p.y" -{ yyval = oper0(ONEWLINE); } +#line 320 "a2p.y" +{ yyval = Nullop; } break; case 104: -#line 298 "a2p.y" -{ yyval = oper1(OCOMMENT,yyvsp[0]); } +#line 324 "a2p.y" +{ yyval = oper0(ONEWLINE); } break; case 105: -#line 303 "a2p.y" -{ yyval = oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0]); } +#line 326 "a2p.y" +{ yyval = oper1(OCOMMENT,yyvsp[0]); } break; case 106: -#line 305 "a2p.y" -{ yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); } +#line 331 "a2p.y" +{ yyval = oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0]); } break; case 107: -#line 307 "a2p.y" +#line 333 "a2p.y" { yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); } break; case 108: -#line 309 "a2p.y" -{ yyval = oper2(OJUNK,oper1(OSCOMMENT,yyvsp[-1]),yyvsp[0]); } +#line 335 "a2p.y" +{ yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); } break; case 109: -#line 313 "a2p.y" -{ yyval = oper2(OSTATES,yyvsp[-1],yyvsp[0]); } +#line 337 "a2p.y" +{ yyval = oper2(OJUNK,oper1(OSCOMMENT,yyvsp[-1]),yyvsp[0]); } break; case 110: -#line 315 "a2p.y" -{ yyval = Nullop; } +#line 341 "a2p.y" +{ yyval = oper2(OSTATES,yyvsp[-1],yyvsp[0]); } break; case 111: -#line 320 "a2p.y" -{ yyval = oper2(OJUNK,oper2(OSTATE,yyvsp[-2],yyvsp[-1]),yyvsp[0]); } +#line 343 "a2p.y" +{ yyval = Nullop; } break; case 112: -#line 322 "a2p.y" -{ yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0])); } +#line 348 "a2p.y" +{ yyval = oper2(OJUNK,oper2(OSTATE,yyvsp[-2],yyvsp[-1]),yyvsp[0]); } break; case 113: -#line 324 "a2p.y" +#line 350 "a2p.y" +{ yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0])); } +break; +case 114: +#line 352 "a2p.y" { yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0])); } break; -case 116: -#line 330 "a2p.y" +case 117: +#line 358 "a2p.y" { yyval = Nullop; } break; -case 118: -#line 336 "a2p.y" +case 119: +#line 364 "a2p.y" { yyval = oper3(OPRINT,yyvsp[-2],yyvsp[-1],yyvsp[0]); do_opens = TRUE; saw_ORS = saw_OFS = TRUE; if (!yyvsp[-2]) need_entire = TRUE; if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } break; -case 119: -#line 342 "a2p.y" +case 120: +#line 370 "a2p.y" { yyval = oper1(OPRINT,yyvsp[0]); if (!yyvsp[0]) need_entire = TRUE; saw_ORS = saw_OFS = TRUE; } break; -case 120: -#line 347 "a2p.y" +case 121: +#line 375 "a2p.y" { yyval = oper3(OPRINTF,yyvsp[-2],yyvsp[-1],yyvsp[0]); do_opens = TRUE; if (!yyvsp[-2]) need_entire = TRUE; if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } break; -case 121: -#line 352 "a2p.y" +case 122: +#line 380 "a2p.y" { yyval = oper1(OPRINTF,yyvsp[0]); if (!yyvsp[0]) need_entire = TRUE; } break; -case 122: -#line 356 "a2p.y" +case 123: +#line 384 "a2p.y" { yyval = oper0(OBREAK); } break; -case 123: -#line 358 "a2p.y" +case 124: +#line 386 "a2p.y" { yyval = oper0(ONEXT); } break; -case 124: -#line 360 "a2p.y" +case 125: +#line 388 "a2p.y" { yyval = oper0(OEXIT); } break; -case 125: -#line 362 "a2p.y" +case 126: +#line 390 "a2p.y" { yyval = oper1(OEXIT,yyvsp[0]); } break; -case 126: -#line 364 "a2p.y" +case 127: +#line 392 "a2p.y" { yyval = oper0(OCONTINUE); } break; -case 127: -#line 366 "a2p.y" +case 128: +#line 394 "a2p.y" { yyval = oper0(ORETURN); } break; -case 128: -#line 368 "a2p.y" +case 129: +#line 396 "a2p.y" { yyval = oper1(ORETURN,yyvsp[0]); } break; -case 129: -#line 370 "a2p.y" +case 130: +#line 398 "a2p.y" { yyval = oper2(ODELETE,aryrefarg(yyvsp[-3]),yyvsp[-1]); } break; -case 130: -#line 374 "a2p.y" +case 131: +#line 402 "a2p.y" { yyval = oper1(OREDIR,string(">",1)); } break; -case 131: -#line 376 "a2p.y" +case 132: +#line 404 "a2p.y" { yyval = oper1(OREDIR,string(">>",2)); } break; -case 132: -#line 378 "a2p.y" +case 133: +#line 406 "a2p.y" { yyval = oper1(OREDIR,string("|",1)); } break; -case 133: -#line 383 "a2p.y" +case 134: +#line 411 "a2p.y" { yyval = oper2(OIF,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); } break; -case 134: -#line 385 "a2p.y" +case 135: +#line 413 "a2p.y" { yyval = oper3(OIF,yyvsp[-6],bl(yyvsp[-3],yyvsp[-4]),bl(yyvsp[0],yyvsp[-1])); } break; -case 135: -#line 387 "a2p.y" +case 136: +#line 415 "a2p.y" { yyval = oper2(OWHILE,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); } break; -case 136: -#line 389 "a2p.y" +case 137: +#line 417 "a2p.y" { yyval = oper2(ODO,bl(yyvsp[-4],yyvsp[-5]),yyvsp[-1]); } break; -case 137: -#line 391 "a2p.y" +case 138: +#line 419 "a2p.y" { yyval = oper4(OFOR,yyvsp[-7],yyvsp[-5],yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); } break; -case 138: -#line 393 "a2p.y" +case 139: +#line 421 "a2p.y" { yyval = oper4(OFOR,yyvsp[-6],string("",0),yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); } break; -case 139: -#line 395 "a2p.y" +case 140: +#line 423 "a2p.y" { yyval = oper2(OFORIN,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); } break; -case 140: -#line 397 "a2p.y" +case 141: +#line 425 "a2p.y" { yyval = oper3(OBLOCK,oper2(OJUNK,yyvsp[-3],yyvsp[-2]),Nullop,yyvsp[0]); } break; -#line 2751 "y.tab.c" +#line 2878 "y.tab.c" } yyssp -= yym; yystate = *yyssp; @@ -2757,8 +2884,8 @@ break; { #if YYDEBUG if (yydebug) - printf("yydebug: after reduction, shifting from state 0 to\ - state %d\n", YYFINAL); + printf("%sdebug: after reduction, shifting from state 0 to\ + state %d\n", YYPREFIX, YYFINAL); #endif yystate = YYFINAL; *++yyssp = YYFINAL; @@ -2772,8 +2899,8 @@ break; yys = 0; if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; - printf("yydebug: state %d, reading %d (%s)\n", - YYFINAL, yychar, yys); + printf("%sdebug: state %d, reading %d (%s)\n", + YYPREFIX, YYFINAL, yychar, yys); } #endif } @@ -2787,8 +2914,8 @@ break; yystate = yydgoto[yym]; #if YYDEBUG if (yydebug) - printf("yydebug: after reduction, shifting from state %d \ -to state %d\n", *yyssp, yystate); + printf("%sdebug: after reduction, shifting from state %d \ +to state %d\n", YYPREFIX, *yyssp, yystate); #endif if (yyssp >= yyss + yystacksize - 1) { diff --git a/x2p/a2p.y b/x2p/a2p.y index 8ae8953..74c42d8 100644 --- a/x2p/a2p.y +++ b/x2p/a2p.y @@ -44,7 +44,7 @@ int ends = Nullop; %left NOT %right '^' %left INCR DECR -%left FIELD VFIELD +%left FIELD VFIELD SVFIELD %% @@ -137,11 +137,12 @@ expr : term | expr '?' expr ':' expr { $$ = oper3(OCOND,$1,$3,$5); } | variable ASGNOP cond - { $$ = oper3(OASSIGN,$2,$1,$3); - if ((ops[$1].ival & 255) == OFLD) - lval_field = TRUE; - if ((ops[$1].ival & 255) == OVFLD) - lval_field = TRUE; + { + $$ = oper3(OASSIGN,$2,$1,$3); + if ((ops[$1].ival & 255) == OFLD) + lval_field = TRUE; + else if ((ops[$1].ival & 255) == OVFLD) + lval_field = TRUE; } ; @@ -169,13 +170,37 @@ term : variable | term IN VAR { $$ = oper2(ODEFINED,aryrefarg($3),$1); } | variable INCR - { $$ = oper1(OPOSTINCR,$1); } + { + $$ = oper1(OPOSTINCR,$1); + if ((ops[$1].ival & 255) == OFLD) + lval_field = TRUE; + else if ((ops[$1].ival & 255) == OVFLD) + lval_field = TRUE; + } | variable DECR - { $$ = oper1(OPOSTDECR,$1); } + { + $$ = oper1(OPOSTDECR,$1); + if ((ops[$1].ival & 255) == OFLD) + lval_field = TRUE; + else if ((ops[$1].ival & 255) == OVFLD) + lval_field = TRUE; + } | INCR variable - { $$ = oper1(OPREINCR,$2); } + { + $$ = oper1(OPREINCR,$2); + if ((ops[$2].ival & 255) == OFLD) + lval_field = TRUE; + else if ((ops[$2].ival & 255) == OVFLD) + lval_field = TRUE; + } | DECR variable - { $$ = oper1(OPREDECR,$2); } + { + $$ = oper1(OPREDECR,$2); + if ((ops[$2].ival & 255) == OFLD) + lval_field = TRUE; + else if ((ops[$2].ival & 255) == OVFLD) + lval_field = TRUE; + } | '-' term %prec UMINUS { $$ = oper1(OUMINUS,$2); } | '+' term %prec UMINUS @@ -252,6 +277,8 @@ variable: VAR { $$ = oper2(OVAR,aryrefarg($1),$3); } | FIELD { $$ = oper1(OFLD,$1); } + | SVFIELD + { $$ = oper1(OVFLD,oper1(OVAR,$1)); } | VFIELD term { $$ = oper1(OVFLD,$2); } ; diff --git a/x2p/a2py.c b/x2p/a2py.c index efec1ef..1c7fd0a 100644 --- a/x2p/a2py.c +++ b/x2p/a2py.c @@ -429,7 +429,14 @@ yylex(void) maxfld = tmp; XOP(FIELD); } + for (d = s; isALPHA(*s) || isDIGIT(*s) || *s == '_'; ) + s++; split_to_array = set_array_base = TRUE; + if (d != s) + { + yylval = string(d,s-d); + XTERM(SVFIELD); + } XOP(VFIELD); case '/': /* may either be division or pattern */ diff --git a/x2p/walk.c b/x2p/walk.c index de1743f..65015ac 100644 --- a/x2p/walk.c +++ b/x2p/walk.c @@ -660,13 +660,11 @@ sub Pick {\n\ str_cat(str,", "); str_scat(str,fstr=walk(1,level,ops[node+2].ival,&numarg,P_COMMA+1)); str_free(fstr); - str_cat(str,", "); if (len == 3) { + str_cat(str,", "); str_scat(str,fstr=walk(1,level,ops[node+3].ival,&numarg,P_COMMA+1)); str_free(fstr); } - else - str_cat(str,"999999"); str_cat(str,")"); break; case OSTRING: @@ -675,7 +673,7 @@ sub Pick {\n\ break; case OSPLIT: str = str_new(0); - limit = ", 9999)"; + limit = ", -1)"; numeric = 1; tmpstr = walk(1,level,ops[node+2].ival,&numarg,P_MIN); if (useval) @@ -1617,13 +1615,13 @@ emit_split(register STR *str, int level) str_cat(str,tokenbuf); } if (const_FS) { - sprintf(tokenbuf," = split(/[%c\\n]/, $_, 9999);\n",const_FS); + sprintf(tokenbuf," = split(/[%c\\n]/, $_, -1);\n",const_FS); str_cat(str,tokenbuf); } else if (saw_FS) - str_cat(str," = split($FS, $_, 9999);\n"); + str_cat(str," = split($FS, $_, -1);\n"); else - str_cat(str," = split(' ', $_, 9999);\n"); + str_cat(str," = split(' ', $_, -1);\n"); tab(str,level); }