/[svn]/linuxsampler/trunk/src/network/lscpparser.cpp
ViewVC logotype

Diff of /linuxsampler/trunk/src/network/lscpparser.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 123 by schoenebeck, Mon Jun 14 19:33:16 2004 UTC revision 1135 by iliev, Thu Mar 29 09:40:45 2007 UTC
# Line 1  Line 1 
1  /* A Bison parser, made by GNU Bison 1.875a.  */  /* A Bison parser, made by GNU Bison 2.3.  */
2    
3  /* Skeleton parser for Yacc-like parsing with Bison,  /* Skeleton implementation for Bison's Yacc-like parsers in C
4     Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.  
5       Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6       Free Software Foundation, Inc.
7    
8     This program is free software; you can redistribute it and/or modify     This program is free software; you can redistribute it and/or modify
9     it under the terms of the GNU General Public License as published by     it under the terms of the GNU General Public License as published by
# Line 15  Line 17 
17    
18     You should have received a copy of the GNU General Public License     You should have received a copy of the GNU General Public License
19     along with this program; if not, write to the Free Software     along with this program; if not, write to the Free Software
20     Foundation, Inc., 59 Temple Place - Suite 330,     Foundation, Inc., 51 Franklin Street, Fifth Floor,
21     Boston, MA 02111-1307, USA.  */     Boston, MA 02110-1301, USA.  */
22    
23    /* As a special exception, you may create a larger work that contains
24       part or all of the Bison parser skeleton and distribute that work
25       under terms of your choice, so long as that work isn't itself a
26       parser generator using the skeleton or a modified version thereof
27       as a parser skeleton.  Alternatively, if you modify or redistribute
28       the parser skeleton itself, you may (at your option) remove this
29       special exception, which will cause the skeleton and the resulting
30       Bison output files to be licensed under the GNU General Public
31       License without this special exception.
32    
33  /* As a special exception, when this file is copied by Bison into a     This special exception was added by the Free Software Foundation in
34     Bison output file, you may use that output file without restriction.     version 2.2 of Bison.  */
    This special exception was added by the Free Software Foundation  
    in version 1.24 of Bison.  */  
35    
36  /* Written by Richard Stallman by simplifying the original so called  /* C LALR(1) parser skeleton written by Richard Stallman, by
37     ``semantic'' parser.  */     simplifying the original so-called "semantic" parser.  */
38    
39  /* All symbols defined below should begin with yy or YY, to avoid  /* All symbols defined below should begin with yy or YY, to avoid
40     infringing on user name space.  This should be done even for local     infringing on user name space.  This should be done even for local
# Line 36  Line 46 
46  /* Identify Bison output.  */  /* Identify Bison output.  */
47  #define YYBISON 1  #define YYBISON 1
48    
49    /* Bison version.  */
50    #define YYBISON_VERSION "2.3"
51    
52  /* Skeleton name.  */  /* Skeleton name.  */
53  #define YYSKELETON_NAME "yacc.c"  #define YYSKELETON_NAME "yacc.c"
54    
# Line 47  Line 60 
60    
61    
62    
 /* Tokens.  */  
 #ifndef YYTOKENTYPE  
 # define YYTOKENTYPE  
    /* Put the tokens into the symbol table, so that GDB and other debuggers  
       know about them.  */  
    enum yytokentype {  
      CHAR = 258,  
      DOTNUM = 259,  
      NUMBER = 260,  
      SP = 261,  
      LF = 262,  
      CR = 263,  
      HASH = 264,  
      EQ = 265,  
      ADD = 266,  
      GET = 267,  
      CREATE = 268,  
      DESTROY = 269,  
      LIST = 270,  
      LOAD = 271,  
      REMOVE = 272,  
      SET = 273,  
      SUBSCRIBE = 274,  
      UNSUBSCRIBE = 275,  
      RESET = 276,  
      QUIT = 277,  
      CHANNEL = 278,  
      NOTIFICATION = 279,  
      AVAILABLE_ENGINES = 280,  
      AVAILABLE_AUDIO_OUTPUT_DRIVERS = 281,  
      CHANNELS = 282,  
      INFO = 283,  
      BUFFER_FILL = 284,  
      STREAM_COUNT = 285,  
      VOICE_COUNT = 286,  
      INSTRUMENT = 287,  
      ENGINE = 288,  
      AUDIO_OUTPUT_CHANNEL = 289,  
      AUDIO_OUTPUT_CHANNEL_PARAMETER = 290,  
      AUDIO_OUTPUT_DEVICE = 291,  
      AUDIO_OUTPUT_DEVICES = 292,  
      AUDIO_OUTPUT_DEVICE_PARAMETER = 293,  
      AUDIO_OUTPUT_DRIVER = 294,  
      AUDIO_OUTPUT_DRIVER_PARAMETER = 295,  
      MIDI_INPUT_PORT = 296,  
      MIDI_INPUT_CHANNEL = 297,  
      MIDI_INPUT_TYPE = 298,  
      VOLUME = 299,  
      BYTES = 300,  
      PERCENTAGE = 301  
    };  
 #endif  
 #define CHAR 258  
 #define DOTNUM 259  
 #define NUMBER 260  
 #define SP 261  
 #define LF 262  
 #define CR 263  
 #define HASH 264  
 #define EQ 265  
 #define ADD 266  
 #define GET 267  
 #define CREATE 268  
 #define DESTROY 269  
 #define LIST 270  
 #define LOAD 271  
 #define REMOVE 272  
 #define SET 273  
 #define SUBSCRIBE 274  
 #define UNSUBSCRIBE 275  
 #define RESET 276  
 #define QUIT 277  
 #define CHANNEL 278  
 #define NOTIFICATION 279  
 #define AVAILABLE_ENGINES 280  
 #define AVAILABLE_AUDIO_OUTPUT_DRIVERS 281  
 #define CHANNELS 282  
 #define INFO 283  
 #define BUFFER_FILL 284  
 #define STREAM_COUNT 285  
 #define VOICE_COUNT 286  
 #define INSTRUMENT 287  
 #define ENGINE 288  
 #define AUDIO_OUTPUT_CHANNEL 289  
 #define AUDIO_OUTPUT_CHANNEL_PARAMETER 290  
 #define AUDIO_OUTPUT_DEVICE 291  
 #define AUDIO_OUTPUT_DEVICES 292  
 #define AUDIO_OUTPUT_DEVICE_PARAMETER 293  
 #define AUDIO_OUTPUT_DRIVER 294  
 #define AUDIO_OUTPUT_DRIVER_PARAMETER 295  
 #define MIDI_INPUT_PORT 296  
 #define MIDI_INPUT_CHANNEL 297  
 #define MIDI_INPUT_TYPE 298  
 #define VOLUME 299  
 #define BYTES 300  
 #define PERCENTAGE 301  
63    
64    
65    
66    
67  /* Copy the first part of user declarations.  */  /* Copy the first part of user declarations.  */
68  #line 23 "lscp.y"  #line 31 "lscp.y"
69    
70    
71  #include "lscpparser.h"  #include "lscpparser.h"
72  #include "lscpserver.h"  #include "lscpserver.h"
73    #include "lscpevent.h"
 // as we need an reentrant scanner, we have to pass the pointer to the scanner with each yylex() call  
 #define YYLEX_PARAM ((yyparse_param_t*) yyparse_param)->pScanner  
74    
75  // to save us typing work in the rules action definitions  // to save us typing work in the rules action definitions
76  #define LSCPSERVER ((yyparse_param_t*) yyparse_param)->pServer  #define LSCPSERVER ((yyparse_param_t*) yyparse_param)->pServer
77    
78  // clears input buffer and restarts scanner.  // clears input buffer
79  void restart(yyparse_param_t* pparam, int& yychar);  void restart(yyparse_param_t* pparam, int& yychar);
80  #define RESTART restart((yyparse_param_t*) YYPARSE_PARAM, yychar)  #define RESTART restart((yyparse_param_t*) YYPARSE_PARAM, yychar)
81    
 // external reference to the main scanner function yylex()  
 extern YY_DECL;  
   
 // external reference to restart the lex scanner  
 extern void yyrestart(FILE* input_file, yyscan_t yyscanner);  
   
82  // we provide our own version of yyerror() so we don't have to link against the yacc library  // we provide our own version of yyerror() so we don't have to link against the yacc library
83  void yyerror(const char* s);  void yyerror(const char* s);
84    
85    static char buf[1024]; // input buffer to feed the parser with new characters
86    static int bytes = 0;  // current number of characters in the input buffer
87    static int ptr   = 0;  // current position in the input buffer
88    
89    // external reference to the function which actually reads from the socket
90    extern int GetLSCPCommand( void *buf, int max_size);
91    
92    // custom scanner function which reads from the socket
93    int yylex(YYSTYPE* yylval) {
94        // check if we have to read new characters
95        if (ptr >= bytes) {
96            bytes = GetLSCPCommand(buf, 1023);
97            ptr   = 0;
98            if (bytes < 0) {
99                bytes = 0;
100                return 0;
101            }
102        }
103        return (int) buf[ptr++];
104    }
105    
106    
107    
108  /* Enabling traces.  */  /* Enabling traces.  */
# Line 188  void yyerror(const char* s); Line 118  void yyerror(const char* s);
118  # define YYERROR_VERBOSE 0  # define YYERROR_VERBOSE 0
119  #endif  #endif
120    
121  #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)  /* Enabling the token table.  */
122    #ifndef YYTOKEN_TABLE
123    # define YYTOKEN_TABLE 0
124    #endif
125    
126    #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
127  typedef int YYSTYPE;  typedef int YYSTYPE;
128  # define yystype YYSTYPE /* obsolescent; will be withdrawn */  # define yystype YYSTYPE /* obsolescent; will be withdrawn */
129  # define YYSTYPE_IS_DECLARED 1  # define YYSTYPE_IS_DECLARED 1
# Line 200  typedef int YYSTYPE; Line 135  typedef int YYSTYPE;
135  /* Copy the second part of user declarations.  */  /* Copy the second part of user declarations.  */
136    
137    
138  /* Line 214 of yacc.c.  */  /* Line 216 of yacc.c.  */
139  #line 205 "y.tab.c"  #line 140 "y.tab.c"
140    
141  #if ! defined (yyoverflow) || YYERROR_VERBOSE  #ifdef short
142    # undef short
143    #endif
144    
145  /* The parser invokes alloca or malloc; define the necessary symbols.  */  #ifdef YYTYPE_UINT8
146    typedef YYTYPE_UINT8 yytype_uint8;
147    #else
148    typedef unsigned char yytype_uint8;
149    #endif
150    
151    #ifdef YYTYPE_INT8
152    typedef YYTYPE_INT8 yytype_int8;
153    #elif (defined __STDC__ || defined __C99__FUNC__ \
154         || defined __cplusplus || defined _MSC_VER)
155    typedef signed char yytype_int8;
156    #else
157    typedef short int yytype_int8;
158    #endif
159    
160  # if YYSTACK_USE_ALLOCA  #ifdef YYTYPE_UINT16
161  #  define YYSTACK_ALLOC alloca  typedef YYTYPE_UINT16 yytype_uint16;
162    #else
163    typedef unsigned short int yytype_uint16;
164    #endif
165    
166    #ifdef YYTYPE_INT16
167    typedef YYTYPE_INT16 yytype_int16;
168    #else
169    typedef short int yytype_int16;
170    #endif
171    
172    #ifndef YYSIZE_T
173    # ifdef __SIZE_TYPE__
174    #  define YYSIZE_T __SIZE_TYPE__
175    # elif defined size_t
176    #  define YYSIZE_T size_t
177    # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
178         || defined __cplusplus || defined _MSC_VER)
179    #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
180    #  define YYSIZE_T size_t
181  # else  # else
182  #  ifndef YYSTACK_USE_ALLOCA  #  define YYSIZE_T unsigned int
183  #   if defined (alloca) || defined (_ALLOCA_H)  # endif
184  #    define YYSTACK_ALLOC alloca  #endif
185    
186    #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
187    
188    #ifndef YY_
189    # if YYENABLE_NLS
190    #  if ENABLE_NLS
191    #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
192    #   define YY_(msgid) dgettext ("bison-runtime", msgid)
193    #  endif
194    # endif
195    # ifndef YY_
196    #  define YY_(msgid) msgid
197    # endif
198    #endif
199    
200    /* Suppress unused-variable warnings by "using" E.  */
201    #if ! defined lint || defined __GNUC__
202    # define YYUSE(e) ((void) (e))
203    #else
204    # define YYUSE(e) /* empty */
205    #endif
206    
207    /* Identity function, used to suppress warnings about constant conditions.  */
208    #ifndef lint
209    # define YYID(n) (n)
210    #else
211    #if (defined __STDC__ || defined __C99__FUNC__ \
212         || defined __cplusplus || defined _MSC_VER)
213    static int
214    YYID (int i)
215    #else
216    static int
217    YYID (i)
218        int i;
219    #endif
220    {
221      return i;
222    }
223    #endif
224    
225    #if ! defined yyoverflow || YYERROR_VERBOSE
226    
227    /* The parser invokes alloca or malloc; define the necessary symbols.  */
228    
229    # ifdef YYSTACK_USE_ALLOCA
230    #  if YYSTACK_USE_ALLOCA
231    #   ifdef __GNUC__
232    #    define YYSTACK_ALLOC __builtin_alloca
233    #   elif defined __BUILTIN_VA_ARG_INCR
234    #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
235    #   elif defined _AIX
236    #    define YYSTACK_ALLOC __alloca
237    #   elif defined _MSC_VER
238    #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
239    #    define alloca _alloca
240  #   else  #   else
241  #    ifdef __GNUC__  #    define YYSTACK_ALLOC alloca
242  #     define YYSTACK_ALLOC __builtin_alloca  #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
243         || defined __cplusplus || defined _MSC_VER)
244    #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
245    #     ifndef _STDLIB_H
246    #      define _STDLIB_H 1
247    #     endif
248  #    endif  #    endif
249  #   endif  #   endif
250  #  endif  #  endif
251  # endif  # endif
252    
253  # ifdef YYSTACK_ALLOC  # ifdef YYSTACK_ALLOC
254     /* Pacify GCC's `empty if-body' warning. */     /* Pacify GCC's `empty if-body' warning.  */
255  #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)  #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
256    #  ifndef YYSTACK_ALLOC_MAXIMUM
257        /* The OS might guarantee only one guard page at the bottom of the stack,
258           and a page size can be as small as 4096 bytes.  So we cannot safely
259           invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
260           to allow for a few compiler-allocated temporary stack slots.  */
261    #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
262    #  endif
263  # else  # else
264  #  if defined (__STDC__) || defined (__cplusplus)  #  define YYSTACK_ALLOC YYMALLOC
265    #  define YYSTACK_FREE YYFREE
266    #  ifndef YYSTACK_ALLOC_MAXIMUM
267    #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
268    #  endif
269    #  if (defined __cplusplus && ! defined _STDLIB_H \
270           && ! ((defined YYMALLOC || defined malloc) \
271                 && (defined YYFREE || defined free)))
272  #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */  #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
273  #   define YYSIZE_T size_t  #   ifndef _STDLIB_H
274    #    define _STDLIB_H 1
275    #   endif
276    #  endif
277    #  ifndef YYMALLOC
278    #   define YYMALLOC malloc
279    #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
280         || defined __cplusplus || defined _MSC_VER)
281    void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
282    #   endif
283    #  endif
284    #  ifndef YYFREE
285    #   define YYFREE free
286    #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
287         || defined __cplusplus || defined _MSC_VER)
288    void free (void *); /* INFRINGES ON USER NAME SPACE */
289    #   endif
290  #  endif  #  endif
 #  define YYSTACK_ALLOC malloc  
 #  define YYSTACK_FREE free  
291  # endif  # endif
292  #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */  #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
293    
294    
295  #if (! defined (yyoverflow) \  #if (! defined yyoverflow \
296       && (! defined (__cplusplus) \       && (! defined __cplusplus \
297           || (YYSTYPE_IS_TRIVIAL)))           || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
298    
299  /* A type that is properly aligned for any stack member.  */  /* A type that is properly aligned for any stack member.  */
300  union yyalloc  union yyalloc
301  {  {
302    short yyss;    yytype_int16 yyss;
303    YYSTYPE yyvs;    YYSTYPE yyvs;
304    };    };
305    
# Line 252  union yyalloc Line 309  union yyalloc
309  /* The size of an array large to enough to hold all stacks, each with  /* The size of an array large to enough to hold all stacks, each with
310     N elements.  */     N elements.  */
311  # define YYSTACK_BYTES(N) \  # define YYSTACK_BYTES(N) \
312       ((N) * (sizeof (short) + sizeof (YYSTYPE))                         \       ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
313        + YYSTACK_GAP_MAXIMUM)        + YYSTACK_GAP_MAXIMUM)
314    
315  /* Copy COUNT objects from FROM to TO.  The source and destination do  /* Copy COUNT objects from FROM to TO.  The source and destination do
316     not overlap.  */     not overlap.  */
317  # ifndef YYCOPY  # ifndef YYCOPY
318  #  if 1 < __GNUC__  #  if defined __GNUC__ && 1 < __GNUC__
319  #   define YYCOPY(To, From, Count) \  #   define YYCOPY(To, From, Count) \
320        __builtin_memcpy (To, From, (Count) * sizeof (*(From)))        __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
321  #  else  #  else
322  #   define YYCOPY(To, From, Count)              \  #   define YYCOPY(To, From, Count)              \
323        do                                        \        do                                        \
324          {                                       \          {                                       \
325            register YYSIZE_T yyi;                \            YYSIZE_T yyi;                         \
326            for (yyi = 0; yyi < (Count); yyi++)   \            for (yyi = 0; yyi < (Count); yyi++)   \
327              (To)[yyi] = (From)[yyi];            \              (To)[yyi] = (From)[yyi];            \
328          }                                       \          }                                       \
329        while (0)        while (YYID (0))
330  #  endif  #  endif
331  # endif  # endif
332    
# Line 287  union yyalloc Line 344  union yyalloc
344          yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \          yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
345          yyptr += yynewbytes / sizeof (*yyptr);                          \          yyptr += yynewbytes / sizeof (*yyptr);                          \
346        }                                                                 \        }                                                                 \
347      while (0)      while (YYID (0))
348    
349  #endif  #endif
350    
351  #if defined (__STDC__) || defined (__cplusplus)  /* YYFINAL -- State number of the termination state.  */
352     typedef signed char yysigned_char;  #define YYFINAL  46
 #else  
    typedef short yysigned_char;  
 #endif  
   
 /* YYFINAL -- State number of the termination state. */  
 #define YYFINAL  30  
353  /* YYLAST -- Last index in YYTABLE.  */  /* YYLAST -- Last index in YYTABLE.  */
354  #define YYLAST   222  #define YYLAST   4536
355    
356  /* YYNTOKENS -- Number of terminals. */  /* YYNTOKENS -- Number of terminals.  */
357  #define YYNTOKENS  47  #define YYNTOKENS  227
358  /* YYNNTS -- Number of nonterminals. */  /* YYNNTS -- Number of nonterminals.  */
359  #define YYNNTS  29  #define YYNNTS  143
360  /* YYNRULES -- Number of rules. */  /* YYNRULES -- Number of rules.  */
361  #define YYNRULES  81  #define YYNRULES  540
362  /* YYNRULES -- Number of states. */  /* YYNRULES -- Number of states.  */
363  #define YYNSTATES  225  #define YYNSTATES  1712
364    
365  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
366  #define YYUNDEFTOK  2  #define YYUNDEFTOK  2
367  #define YYMAXUTOK   301  #define YYMAXUTOK   257
368    
369  #define YYTRANSLATE(YYX)                                                \  #define YYTRANSLATE(YYX)                                                \
370    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
371    
372  /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */  /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
373  static const unsigned char yytranslate[] =  static const yytype_uint8 yytranslate[] =
374  {  {
375         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
376         225,     2,     2,   226,     2,     2,     2,     2,     2,     2,
377         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
378         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,         2,     2,   224,    71,   223,     3,    72,    73,    74,   222,
379         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        75,    76,    77,     7,     5,     8,     6,    78,     9,    10,
380         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        11,    12,    13,    14,    15,    16,    17,    18,    79,    80,
381         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        81,     4,    82,    83,    84,    19,    20,    21,    22,    23,
382         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
383         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
384         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        44,    85,    86,    87,    88,    89,     2,    45,    46,    47,
385         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
386         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
387         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        68,    69,    70,    90,    91,    92,    93,     2,    94,    95,
388         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
389         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
390         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
391         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
392         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
393         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
394         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
395         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
396         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
397         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
398         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
399         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
400         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       216,   217,   218,   219,   220,   221,     1,     2
        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,  
        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,  
       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,  
       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,  
       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,  
       45,    46  
401  };  };
402    
403  #if YYDEBUG  #if YYDEBUG
404  /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in  /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
405     YYRHS.  */     YYRHS.  */
406  static const unsigned short yyprhs[] =  static const yytype_uint16 yyprhs[] =
407  {  {
408         0,     0,     3,     5,     9,    14,    15,    17,    19,    21,         0,     0,     3,     6,    10,    11,    13,    15,    17,    19,
409        23,    26,    29,    32,    35,    39,    43,    47,    51,    55,        22,    25,    28,    31,    35,    39,    43,    47,    51,    55,
410        59,    65,    69,    75,    81,    87,    89,    91,    93,    99,        59,    63,    67,    71,    75,    79,    83,    87,    91,    93,
411       107,   117,   119,   125,   133,   143,   145,   151,   159,   165,        95,    97,    99,   103,   105,   107,   109,   111,   113,   115,
412       171,   177,   185,   193,   203,   213,   217,   223,   227,   231,       117,   119,   121,   123,   125,   127,   129,   131,   133,   135,
413       235,   241,   249,   255,   261,   267,   273,   277,   283,   285,       137,   139,   141,   143,   145,   147,   149,   151,   153,   155,
414       287,   289,   295,   299,   301,   303,   305,   307,   309,   311,       157,   159,   161,   163,   165,   167,   169,   171,   173,   175,
415       313,   315,   317,   319,   321,   323,   327,   329,   331,   334,       192,   211,   230,   251,   259,   263,   267,   271,   273,   275,
416       337,   339       281,   289,   299,   301,   307,   315,   325,   327,   329,   335,
417         341,   349,   359,   367,   377,   379,   385,   393,   399,   405,
418         411,   415,   417,   419,   423,   427,   437,   439,   445,   449,
419         457,   459,   467,   477,   485,   495,   499,   507,   517,   529,
420         539,   549,   553,   557,   563,   567,   573,   577,   583,   591,
421         595,   599,   603,   607,   611,   617,   621,   625,   631,   639,
422         645,   655,   661,   667,   673,   679,   685,   691,   697,   703,
423         709,   715,   716,   719,   723,   729,   731,   733,   735,   737,
424         739,   741,   743,   745,   749,   753,   755,   759,   765,   773,
425         777,   779,   781,   783,   785,   787,   789,   791,   793,   795,
426         797,   799,   801,   803,   805,   807,   809,   811,   813,   815,
427         817,   819,   821,   823,   825,   827,   831,   833,   835,   837,
428         839,   841,   843,   845,   848,   852,   857,   862,   864,   867,
429         869,   871,   873,   875,   877,   879,   881,   883,   885,   887,
430         889,   892,   895,   898,   901,   904,   907,   910,   913,   916,
431         918,   920,   922,   924,   926,   928,   930,   932,   934,   936,
432         938,   940,   942,   944,   946,   948,   950,   952,   954,   956,
433         958,   960,   962,   964,   966,   968,   970,   972,   974,   976,
434         978,   980,   982,   984,   986,   988,   990,   992,   994,   996,
435         998,  1000,  1002,  1004,  1006,  1008,  1010,  1012,  1014,  1016,
436        1018,  1020,  1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,
437        1038,  1040,  1042,  1044,  1046,  1048,  1050,  1052,  1054,  1056,
438        1058,  1060,  1062,  1064,  1066,  1068,  1070,  1072,  1074,  1076,
439        1078,  1080,  1082,  1084,  1086,  1088,  1090,  1092,  1094,  1096,
440        1098,  1100,  1102,  1104,  1106,  1108,  1110,  1112,  1114,  1116,
441        1118,  1120,  1122,  1124,  1126,  1128,  1130,  1132,  1134,  1136,
442        1138,  1140,  1142,  1144,  1146,  1148,  1150,  1152,  1154,  1156,
443        1158,  1160,  1162,  1164,  1166,  1168,  1170,  1172,  1174,  1176,
444        1178,  1180,  1182,  1184,  1186,  1188,  1190,  1192,  1194,  1196,
445        1198,  1200,  1202,  1204,  1206,  1208,  1210,  1212,  1214,  1216,
446        1218,  1220,  1222,  1224,  1226,  1228,  1230,  1232,  1234,  1236,
447        1238,  1240,  1242,  1244,  1246,  1248,  1250,  1252,  1254,  1256,
448        1258,  1260,  1262,  1264,  1266,  1268,  1270,  1272,  1274,  1276,
449        1278,  1280,  1282,  1284,  1286,  1288,  1290,  1292,  1294,  1296,
450        1298,  1300,  1302,  1304,  1306,  1308,  1310,  1312,  1314,  1316,
451        1318,  1320,  1322,  1324,  1326,  1328,  1330,  1332,  1334,  1336,
452        1338,  1340,  1342,  1344,  1346,  1348,  1350,  1352,  1354,  1356,
453        1358,  1361,  1364,  1368,  1372,  1374,  1376,  1378,  1382,  1386,
454        1390,  1396,  1402,  1409,  1417,  1422,  1427,  1431,  1436,  1444,
455        1454,  1461,  1465,  1475,  1487,  1494,  1502,  1520,  1551,  1560,
456        1565,  1591,  1616,  1640,  1663,  1689,  1714,  1736,  1757,  1771,
457        1784,  1798,  1811,  1823,  1836,  1848,  1866,  1888,  1900,  1911,
458        1918,  1928,  1943,  1954,  1984,  2005,  2025,  2055,  2075,  2106,
459        2127,  2145,  2174,  2202,  2228,  2247,  2265,  2293,  2309,  2326,
460        2346,  2367,  2385,  2401,  2420,  2436,  2447,  2463,  2471,  2480,
461        2487,  2494,  2500,  2505,  2510,  2516,  2527,  2533,  2547,  2552,
462        2557
463  };  };
464    
465  /* YYRHS -- A `-1'-separated list of the rules' RHS. */  /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
466  static const yysigned_char yyrhs[] =  static const yytype_int16 yyrhs[] =
467  {  {
468        48,     0,    -1,    49,    -1,    48,     7,    49,    -1,    48,       228,     0,    -1,   229,   284,    -1,   229,   285,   284,    -1,
469         8,     7,    49,    -1,    -1,    50,    -1,    51,    -1,     1,        -1,   230,    -1,   231,    -1,     1,    -1,     3,    -1,   230,
470        -1,     9,    -1,    50,     9,    -1,    50,     6,    -1,    50,         3,    -1,   230,   283,    -1,   230,   279,    -1,   230,   275,
471         5,    -1,    50,    75,    -1,    11,     6,    23,    -1,    12,        -1,   286,   283,   232,    -1,   288,   283,   235,    -1,   289,
472         6,    52,    -1,    13,     6,    54,    -1,    14,     6,    55,       283,   236,    -1,   287,   283,   238,    -1,   291,   283,   240,
473        -1,    15,     6,    60,    -1,    16,     6,    56,    -1,    17,        -1,   292,   283,   243,    -1,   293,   283,   249,    -1,   294,
474         6,    23,     6,    65,    -1,    18,     6,    53,    -1,    19,       283,   244,    -1,   299,   283,   237,    -1,   300,   283,   239,
475         6,    24,     6,    67,    -1,    20,     6,    24,     6,    70,        -1,   301,   283,   233,    -1,   302,   283,   234,    -1,   303,
476        -1,    21,     6,    23,     6,    65,    -1,    22,    -1,    25,       283,   281,    -1,   365,   283,   241,    -1,   290,   283,   242,
477        -1,    26,    -1,    39,     6,    28,     6,    75,    -1,    40,        -1,   365,    -1,   369,    -1,   304,    -1,   348,    -1,   348,
478         6,    28,     6,    75,     6,    75,    -1,    40,     6,    28,       283,   269,    -1,   309,    -1,   310,    -1,   311,    -1,   312,
479         6,    75,     6,    75,     6,    58,    -1,    37,    -1,    36,        -1,   317,    -1,   323,    -1,   322,    -1,   321,    -1,   318,
480         6,    28,     6,     5,    -1,    34,     6,    28,     6,     5,        -1,   319,    -1,   320,    -1,   313,    -1,   314,    -1,   315,
481         6,     5,    -1,    35,     6,    28,     6,     5,     6,     5,        -1,   316,    -1,   366,    -1,   324,    -1,   326,    -1,   309,
482         6,    75,    -1,    27,    -1,    23,     6,    28,     6,    65,        -1,   310,    -1,   311,    -1,   312,    -1,   317,    -1,   323,
483        -1,    23,     6,    29,     6,    59,     6,    65,    -1,    23,        -1,   322,    -1,   321,    -1,   318,    -1,   319,    -1,   320,
484         6,    30,     6,    65,    -1,    23,     6,    31,     6,    65,        -1,   313,    -1,   314,    -1,   315,    -1,   316,    -1,   366,
485        -1,    33,     6,    28,     6,    71,    -1,    38,     6,     5,        -1,   324,    -1,   326,    -1,   346,   283,   246,   259,   283,
486         6,    75,     6,    74,    -1,    38,     6,     5,     6,    75,       260,   283,   261,   283,   267,   283,   268,   283,   265,   283,
487        10,    74,    -1,    35,     6,     5,     6,     5,     6,    75,       263,    -1,   346,   283,   246,   259,   283,   260,   283,   261,
488         6,    74,    -1,    35,     6,     5,     6,     5,     6,    75,       283,   267,   283,   268,   283,   265,   283,   263,   283,   252,
489        10,    74,    -1,    23,     6,    57,    -1,    36,     6,    75,        -1,   346,   283,   246,   259,   283,   260,   283,   261,   283,
490         6,    58,    -1,    36,     6,     5,    -1,    32,     6,    61,       267,   283,   268,   283,   265,   283,   263,   283,   270,    -1,
491        -1,    33,     6,    62,    -1,    36,     6,    65,     6,     5,       346,   283,   246,   259,   283,   260,   283,   261,   283,   267,
492        -1,    34,     6,    65,     6,    68,     6,    68,    -1,    41,       283,   268,   283,   265,   283,   263,   283,   252,   283,   270,
493         6,    65,     6,    72,    -1,    42,     6,    65,     6,    69,        -1,   346,   283,   259,   283,   260,   283,   261,    -1,   304,
494        -1,    43,     6,    65,     6,    63,    -1,    44,     6,    65,       283,   264,    -1,   348,   283,   259,    -1,   348,   283,   295,
495         6,    64,    -1,    75,    10,    74,    -1,    58,     6,    75,        -1,   305,    -1,   340,    -1,   350,   283,   308,   283,   275,
496        10,    74,    -1,    45,    -1,    46,    -1,    37,    -1,    73,        -1,   345,   283,   308,   283,   275,   283,   275,    -1,   345,
497         6,    66,     6,    65,    -1,    71,     6,    65,    -1,    75,       283,   308,   283,   275,   283,   275,   283,   247,    -1,   306,
498        -1,     4,    -1,     5,    -1,     5,    -1,     5,    -1,     5,        -1,   336,   283,   308,   283,   275,    -1,   335,   283,   308,
499        -1,     5,    -1,     5,    -1,    74,    -1,    75,    -1,    74,       283,   275,   283,   275,    -1,   335,   283,   308,   283,   275,
500        -1,    74,    -1,    73,     6,    74,    -1,    75,    -1,     5,       283,   275,   283,   247,    -1,   333,    -1,   343,    -1,   334,
501        -1,    74,    75,    -1,    74,     5,    -1,     3,    -1,    75,       283,   308,   283,   279,    -1,   344,   283,   308,   283,   279,
502         3,    -1        -1,   351,   283,   308,   283,   279,   283,   279,    -1,   342,
503         283,   308,   283,   279,   283,   279,   283,   275,    -1,   338,
504         283,   308,   283,   279,   283,   279,    -1,   337,   283,   308,
505         283,   279,   283,   279,   283,   275,    -1,   307,    -1,   304,
506         283,   308,   283,   264,    -1,   304,   283,   321,   283,   248,
507         283,   264,    -1,   304,   283,   322,   283,   264,    -1,   304,
508         283,   323,   283,   264,    -1,   328,   283,   308,   283,   267,
509          -1,   358,   283,   308,    -1,   324,    -1,   325,    -1,   347,
510         283,   259,    -1,   347,   283,   295,    -1,   346,   283,   308,
511         283,   259,   283,   260,   283,   261,    -1,   349,    -1,   348,
512         283,   308,   283,   259,    -1,   357,   283,   264,    -1,   356,
513         283,   308,   283,   264,   283,   266,    -1,   359,    -1,   332,
514         283,   279,   283,   275,     4,   272,    -1,   337,   283,   279,
515         283,   279,   283,   275,     4,   272,    -1,   341,   283,   279,
516         283,   275,     4,   272,    -1,   342,   283,   279,   283,   279,
517         283,   275,     4,   272,    -1,   304,   283,   245,    -1,   348,
518         283,   367,   283,   259,   283,   269,    -1,   356,   283,   367,
519         283,   264,   283,   266,   283,   271,    -1,   356,   283,   338,
520         283,   264,   283,   266,   283,   254,   283,   254,    -1,   356,
521         283,   355,   283,   264,   283,   266,   283,   262,    -1,   356,
522         283,   360,   283,   264,   283,   266,   283,   263,    -1,   368,
523         283,   274,    -1,   359,   283,   263,    -1,   334,   283,   275,
524         283,   247,    -1,   334,   283,   275,    -1,   344,   283,   275,
525         283,   247,    -1,   344,   283,   275,    -1,   356,   283,   264,
526         283,   262,    -1,   356,   283,   264,   283,   262,   283,   271,
527          -1,   304,   283,   264,    -1,   347,   283,   259,    -1,   347,
528         283,   295,    -1,   334,   283,   279,    -1,   344,   283,   279,
529          -1,   356,   283,   264,   283,   266,    -1,   327,   283,   250,
530          -1,   328,   283,   251,    -1,   334,   283,   264,   283,   253,
531          -1,   338,   283,   264,   283,   254,   283,   254,    -1,   339,
532         283,   264,   283,   255,    -1,   354,   283,   264,   283,   253,
533         283,   256,   283,   257,    -1,   344,   283,   264,   283,   253,
534          -1,   351,   283,   264,   283,   256,    -1,   352,   283,   264,
535         283,   257,    -1,   353,   283,   264,   283,   258,    -1,   359,
536         283,   264,   283,   263,    -1,   361,   283,   264,   283,   274,
537          -1,   362,   283,   264,   283,   274,    -1,   348,   283,   264,
538         283,   259,    -1,   348,   283,   264,   283,   296,    -1,   348,
539         283,   264,   283,   297,    -1,    -1,   298,   283,    -1,   275,
540           4,   272,    -1,   247,   283,   275,     4,   272,    -1,   363,
541          -1,   364,    -1,   333,    -1,   343,    -1,   307,    -1,   305,
542          -1,   340,    -1,   306,    -1,   347,   283,   259,    -1,   347,
543         283,   295,    -1,   349,    -1,   357,   283,   264,    -1,   268,
544         283,   265,   283,   264,    -1,   298,   283,   268,   283,   265,
545         283,   264,    -1,   267,   283,   264,    -1,   329,    -1,   330,
546          -1,   331,    -1,   279,    -1,   279,    -1,   275,    -1,   279,
547          -1,   279,    -1,   295,    -1,   275,    -1,   279,    -1,   279,
548          -1,   279,    -1,   279,    -1,   276,    -1,   279,    -1,   279,
549          -1,   279,    -1,   279,    -1,   275,    -1,   282,    -1,   282,
550          -1,   282,    -1,   282,    -1,   273,    -1,   272,     5,   273,
551          -1,   275,    -1,   282,    -1,   279,    -1,   276,    -1,   279,
552          -1,   275,    -1,   280,    -1,   275,   280,    -1,   277,     6,
553         277,    -1,     7,   277,     6,   277,    -1,     8,   277,     6,
554         277,    -1,   278,    -1,   277,   278,    -1,     9,    -1,    10,
555          -1,    11,    -1,    12,    -1,    13,    -1,    14,    -1,    15,
556          -1,    16,    -1,    17,    -1,    18,    -1,   278,    -1,    10,
557         277,    -1,    11,   277,    -1,    12,   277,    -1,    13,   277,
558          -1,    14,   277,    -1,    15,   277,    -1,    16,   277,    -1,
559          17,   277,    -1,    18,   277,    -1,    19,    -1,    20,    -1,
560          21,    -1,    22,    -1,    23,    -1,    24,    -1,    25,    -1,
561          26,    -1,    27,    -1,    28,    -1,    29,    -1,    30,    -1,
562          31,    -1,    32,    -1,    33,    -1,    34,    -1,    35,    -1,
563          36,    -1,    37,    -1,    38,    -1,    39,    -1,    40,    -1,
564          41,    -1,    42,    -1,    43,    -1,    44,    -1,    45,    -1,
565          46,    -1,    47,    -1,    48,    -1,    49,    -1,    50,    -1,
566          51,    -1,    52,    -1,    53,    -1,    54,    -1,    55,    -1,
567          56,    -1,    57,    -1,    58,    -1,    59,    -1,    60,    -1,
568          61,    -1,    62,    -1,    63,    -1,    64,    -1,    65,    -1,
569          66,    -1,    67,    -1,    68,    -1,    69,    -1,    70,    -1,
570           9,    -1,    10,    -1,    11,    -1,    12,    -1,    13,    -1,
571          14,    -1,    15,    -1,    16,    -1,    17,    -1,    18,    -1,
572          71,    -1,     3,    -1,    72,    -1,    73,    -1,    74,    -1,
573          75,    -1,    76,    -1,    77,    -1,     7,    -1,     8,    -1,
574           6,    -1,     5,    -1,    78,    -1,    79,    -1,    80,    -1,
575          81,    -1,     4,    -1,    82,    -1,    83,    -1,    84,    -1,
576          85,    -1,    86,    -1,    87,    -1,    88,    -1,    89,    -1,
577          90,    -1,    91,    -1,    92,    -1,    93,    -1,    94,    -1,
578          95,    -1,    96,    -1,    97,    -1,    98,    -1,    99,    -1,
579         100,    -1,   101,    -1,   102,    -1,   103,    -1,   104,    -1,
580         105,    -1,   106,    -1,   107,    -1,   108,    -1,   109,    -1,
581         110,    -1,   111,    -1,   112,    -1,   113,    -1,   114,    -1,
582         115,    -1,   116,    -1,   117,    -1,   118,    -1,   119,    -1,
583         120,    -1,   121,    -1,   122,    -1,   123,    -1,   124,    -1,
584         125,    -1,   126,    -1,   127,    -1,   128,    -1,   129,    -1,
585         130,    -1,   131,    -1,   132,    -1,   133,    -1,   134,    -1,
586         135,    -1,   136,    -1,   137,    -1,   138,    -1,   139,    -1,
587         140,    -1,   141,    -1,   142,    -1,   143,    -1,   144,    -1,
588         145,    -1,   146,    -1,   147,    -1,   148,    -1,   149,    -1,
589         150,    -1,   151,    -1,   152,    -1,   153,    -1,   154,    -1,
590         155,    -1,   156,    -1,   157,    -1,   158,    -1,   159,    -1,
591         160,    -1,   161,    -1,   162,    -1,   163,    -1,   164,    -1,
592         165,    -1,   166,    -1,   167,    -1,   168,    -1,   169,    -1,
593         170,    -1,   171,    -1,   172,    -1,   173,    -1,   174,    -1,
594         175,    -1,   176,    -1,   177,    -1,   178,    -1,   179,    -1,
595         180,    -1,   181,    -1,   182,    -1,   183,    -1,   184,    -1,
596         185,    -1,   186,    -1,   187,    -1,   188,    -1,   189,    -1,
597         190,    -1,   191,    -1,   192,    -1,   193,    -1,   194,    -1,
598         195,    -1,   196,    -1,   197,    -1,   198,    -1,   199,    -1,
599         200,    -1,   201,    -1,   202,    -1,   203,    -1,   204,    -1,
600         205,    -1,   206,    -1,   207,    -1,   208,    -1,   209,    -1,
601         210,    -1,   211,    -1,   212,    -1,   213,    -1,   214,    -1,
602         215,    -1,   216,    -1,   217,    -1,   218,    -1,   219,    -1,
603         220,    -1,   221,    -1,   283,    -1,   275,    -1,   281,   283,
604          -1,   281,   275,    -1,   222,   281,   222,    -1,   223,   281,
605         223,    -1,   224,    -1,   225,    -1,   226,    -1,    19,    22,
606          22,    -1,    25,    23,    38,    -1,    31,    19,    34,    -1,
607          39,    32,    31,    19,    34,    -1,    21,    30,    23,    19,
608          36,    -1,    21,    36,    23,    19,    38,    23,    -1,    22,
609          23,    37,    38,    36,    33,    43,    -1,    30,    27,    37,
610          38,    -1,    30,    33,    19,    22,    -1,    19,    30,    30,
611          -1,    32,    33,    32,    23,    -1,    22,    23,    24,    19,
612          39,    30,    38,    -1,    32,    33,    32,    89,    31,    33,
613          22,    19,    30,    -1,    36,    23,    31,    33,    40,    23,
614          -1,    37,    23,    38,    -1,    37,    39,    20,    37,    21,
615          36,    27,    20,    23,    -1,    39,    32,    37,    39,    20,
616          37,    21,    36,    27,    20,    23,    -1,    37,    23,    30,
617          23,    21,    38,    -1,    21,    26,    19,    32,    32,    23,
618          30,    -1,    19,    40,    19,    27,    30,    19,    20,    30,
619          23,    89,    23,    32,    25,    27,    32,    23,    37,    -1,
620          19,    40,    19,    27,    30,    19,    20,    30,    23,    89,
621          19,    39,    22,    27,    33,    89,    33,    39,    38,    34,
622          39,    38,    89,    22,    36,    27,    40,    23,    36,    37,
623          -1,    21,    26,    19,    32,    32,    23,    30,    37,    -1,
624          27,    32,    24,    33,    -1,    19,    39,    22,    27,    33,
625          89,    33,    39,    38,    34,    39,    38,    89,    22,    23,
626          40,    27,    21,    23,    89,    21,    33,    39,    32,    38,
627          -1,    19,    39,    22,    27,    33,    89,    33,    39,    38,
628          34,    39,    38,    89,    22,    23,    40,    27,    21,    23,
629          89,    27,    32,    24,    33,    -1,    31,    27,    22,    27,
630          89,    27,    32,    34,    39,    38,    89,    22,    23,    40,
631          27,    21,    23,    89,    21,    33,    39,    32,    38,    -1,
632          31,    27,    22,    27,    89,    27,    32,    34,    39,    38,
633          89,    22,    23,    40,    27,    21,    23,    89,    27,    32,
634          24,    33,    -1,    31,    27,    22,    27,    89,    27,    32,
635          37,    38,    36,    39,    31,    23,    32,    38,    89,    31,
636          19,    34,    89,    21,    33,    39,    32,    38,    -1,    31,
637          27,    22,    27,    89,    27,    32,    37,    38,    36,    39,
638          31,    23,    32,    38,    89,    31,    19,    34,    89,    27,
639          32,    24,    33,    -1,    31,    27,    22,    27,    89,    27,
640          32,    37,    38,    36,    39,    31,    23,    32,    38,    89,
641          21,    33,    39,    32,    38,    -1,    31,    27,    22,    27,
642          89,    27,    32,    37,    38,    36,    39,    31,    23,    32,
643          38,    89,    27,    32,    24,    33,    -1,    21,    26,    19,
644          32,    32,    23,    30,    89,    21,    33,    39,    32,    38,
645          -1,    21,    26,    19,    32,    32,    23,    30,    89,    27,
646          32,    24,    33,    -1,    24,    42,    89,    37,    23,    32,
647          22,    89,    21,    33,    39,    32,    38,    -1,    24,    42,
648          89,    37,    23,    32,    22,    89,    27,    32,    24,    33,
649          -1,    20,    39,    24,    24,    23,    36,    89,    24,    27,
650          30,    30,    -1,    37,    38,    36,    23,    19,    31,    89,
651          21,    33,    39,    32,    38,    -1,    40,    33,    27,    21,
652          23,    89,    21,    33,    39,    32,    38,    -1,    38,    33,
653          38,    19,    30,    89,    40,    33,    27,    21,    23,    89,
654          21,    33,    39,    32,    38,    -1,    38,    33,    38,    19,
655          30,    89,    40,    33,    27,    21,    23,    89,    21,    33,
656          39,    32,    38,    89,    31,    19,    42,    -1,    25,    30,
657          33,    20,    19,    30,    89,    27,    32,    24,    33,    -1,
658          27,    32,    37,    38,    36,    39,    31,    23,    32,    38,
659          -1,    23,    32,    25,    27,    32,    23,    -1,    33,    32,
660          89,    22,    23,    31,    19,    32,    22,    -1,    33,    32,
661          89,    22,    23,    31,    19,    32,    22,    89,    26,    33,
662          30,    22,    -1,    34,    23,    36,    37,    27,    37,    38,
663          23,    32,    38,    -1,    19,    39,    22,    27,    33,    89,
664          33,    39,    38,    34,    39,    38,    89,    22,    23,    40,
665          27,    21,    23,    89,    34,    19,    36,    19,    31,    23,
666          38,    23,    36,    -1,    19,    39,    22,    27,    33,    89,
667          33,    39,    38,    34,    39,    38,    89,    22,    23,    40,
668          27,    21,    23,    37,    -1,    19,    39,    22,    27,    33,
669          89,    33,    39,    38,    34,    39,    38,    89,    22,    23,
670          40,    27,    21,    23,    -1,    19,    39,    22,    27,    33,
671          89,    33,    39,    38,    34,    39,    38,    89,    22,    36,
672          27,    40,    23,    36,    89,    34,    19,    36,    19,    31,
673          23,    38,    23,    36,    -1,    19,    39,    22,    27,    33,
674          89,    33,    39,    38,    34,    39,    38,    89,    22,    36,
675          27,    40,    23,    36,    -1,    19,    39,    22,    27,    33,
676          89,    33,    39,    38,    34,    39,    38,    89,    21,    26,
677          19,    32,    32,    23,    30,    89,    34,    19,    36,    19,
678          31,    23,    38,    23,    36,    -1,    19,    39,    22,    27,
679          33,    89,    33,    39,    38,    34,    39,    38,    89,    21,
680          26,    19,    32,    32,    23,    30,    -1,    19,    39,    22,
681          27,    33,    89,    33,    39,    38,    34,    39,    38,    89,
682          38,    43,    34,    23,    -1,    19,    40,    19,    27,    30,
683          19,    20,    30,    23,    89,    31,    27,    22,    27,    89,
684          27,    32,    34,    39,    38,    89,    22,    36,    27,    40,
685          23,    36,    37,    -1,    31,    27,    22,    27,    89,    27,
686          32,    34,    39,    38,    89,    22,    23,    40,    27,    21,
687          23,    89,    34,    19,    36,    19,    31,    23,    38,    23,
688          36,    -1,    31,    27,    22,    27,    89,    27,    32,    34,
689          39,    38,    89,    34,    33,    36,    38,    89,    34,    19,
690          36,    19,    31,    23,    38,    23,    36,    -1,    31,    27,
691          22,    27,    89,    27,    32,    34,    39,    38,    89,    22,
692          23,    40,    27,    21,    23,    37,    -1,    31,    27,    22,
693          27,    89,    27,    32,    34,    39,    38,    89,    22,    23,
694          40,    27,    21,    23,    -1,    31,    27,    22,    27,    89,
695          27,    32,    34,    39,    38,    89,    22,    36,    27,    40,
696          23,    36,    89,    34,    19,    36,    19,    31,    23,    38,
697          23,    36,    -1,    31,    27,    22,    27,    89,    27,    32,
698          37,    38,    36,    39,    31,    23,    32,    38,    -1,    31,
699          27,    22,    27,    89,    27,    32,    37,    38,    36,    39,
700          31,    23,    32,    38,    37,    -1,    31,    27,    22,    27,
701          89,    27,    32,    37,    38,    36,    39,    31,    23,    32,
702          38,    89,    31,    19,    34,    -1,    31,    27,    22,    27,
703          89,    27,    32,    37,    38,    36,    39,    31,    23,    32,
704          38,    89,    31,    19,    34,    37,    -1,    31,    27,    22,
705          27,    89,    27,    32,    34,    39,    38,    89,    22,    36,
706          27,    40,    23,    36,    -1,    31,    27,    22,    27,    89,
707          27,    32,    34,    39,    38,    89,    34,    33,    36,    38,
708          -1,    31,    27,    22,    27,    89,    27,    32,    34,    39,
709          38,    89,    21,    26,    19,    32,    32,    23,    30,    -1,
710          31,    27,    22,    27,    89,    27,    32,    34,    39,    38,
711          89,    38,    43,    34,    23,    -1,    31,    27,    22,    27,
712          89,    27,    32,    34,    39,    38,    -1,    31,    27,    22,
713          27,    89,    21,    33,    32,    38,    36,    33,    30,    30,
714          23,    36,    -1,    24,    42,    89,    37,    23,    32,    22,
715          -1,    24,    42,    89,    37,    23,    32,    22,    37,    -1,
716          37,    23,    36,    40,    23,    36,    -1,    40,    33,    30,
717          39,    31,    23,    -1,    30,    23,    40,    23,    30,    -1,
718          31,    39,    38,    23,    -1,    37,    33,    30,    33,    -1,
719          20,    43,    38,    23,    37,    -1,    34,    23,    36,    21,
720          23,    32,    38,    19,    25,    23,    -1,    36,    23,    37,
721          23,    38,    -1,    31,    27,    37,    21,    23,    30,    30,
722          19,    32,    23,    33,    39,    37,    -1,    32,    19,    31,
723          23,    -1,    23,    21,    26,    33,    -1,    35,    39,    27,
724          38,    -1
725  };  };
726    
727  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
728  static const unsigned char yyrline[] =  static const yytype_uint16 yyrline[] =
729  {  {
730         0,    75,    75,    76,    77,    80,    81,    82,    83,    86,         0,    97,    97,    98,   101,   102,   103,   104,   107,   108,
731        87,    88,    89,    90,    93,    94,    95,    96,    97,    98,       109,   110,   111,   114,   115,   116,   117,   118,   119,   120,
732        99,   100,   101,   102,   103,   104,   107,   108,   109,   110,       121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
733       111,   112,   113,   114,   115,   116,   117,   118,   119,   120,       133,   134,   135,   138,   139,   140,   141,   142,   143,   144,
734       121,   124,   125,   126,   127,   128,   131,   134,   137,   138,       145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
735       141,   142,   143,   144,   145,   146,   149,   150,   152,   153,       155,   158,   159,   160,   161,   162,   163,   164,   165,   166,
736       156,   159,   162,   165,   168,   169,   172,   175,   178,   181,       167,   168,   169,   170,   171,   172,   173,   174,   175,   178,
737       184,   187,   190,   193,   196,   197,   200,   201,   202,   203,       179,   180,   181,   184,   187,   188,   189,   192,   193,   194,
738       206,   207       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
739         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
740         215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
741         225,   228,   229,   230,   231,   232,   233,   234,   235,   236,
742         237,   238,   239,   242,   243,   244,   245,   246,   247,   250,
743         253,   254,   257,   258,   259,   262,   263,   266,   267,   268,
744         269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
745         279,   282,   283,   286,   287,   290,   291,   294,   295,   296,
746         297,   298,   299,   300,   301,   302,   303,   306,   307,   310,
747         313,   314,   315,   318,   321,   324,   327,   330,   331,   334,
748         337,   340,   343,   346,   349,   350,   353,   356,   359,   362,
749         365,   368,   371,   374,   377,   378,   381,   382,   383,   384,
750         392,   393,   396,   397,   400,   401,   402,   406,   407,   410,
751         411,   412,   413,   414,   415,   416,   417,   418,   419,   422,
752         423,   424,   425,   426,   427,   428,   429,   430,   431,   433,
753         433,   433,   433,   433,   433,   433,   433,   433,   433,   433,
754         433,   433,   433,   433,   433,   433,   433,   433,   433,   433,
755         433,   433,   433,   433,   433,   434,   434,   434,   434,   434,
756         434,   434,   434,   434,   434,   434,   434,   434,   434,   434,
757         434,   434,   434,   434,   434,   434,   434,   434,   434,   434,
758         434,   435,   435,   435,   435,   435,   435,   435,   435,   435,
759         435,   436,   436,   436,   436,   436,   436,   436,   436,   436,
760         436,   436,   436,   436,   437,   437,   437,   437,   437,   437,
761         437,   438,   438,   438,   438,   438,   439,   439,   439,   439,
762         440,   440,   440,   441,   441,   441,   442,   442,   442,   443,
763         443,   443,   444,   444,   444,   445,   445,   445,   446,   446,
764         446,   447,   447,   447,   448,   448,   448,   449,   449,   449,
765         450,   450,   450,   451,   451,   451,   452,   452,   452,   453,
766         453,   453,   454,   454,   454,   455,   455,   455,   456,   456,
767         456,   457,   457,   457,   458,   458,   458,   459,   459,   459,
768         460,   460,   460,   461,   461,   461,   462,   462,   462,   463,
769         463,   463,   464,   464,   464,   465,   465,   465,   466,   466,
770         466,   467,   467,   467,   468,   468,   468,   469,   469,   469,
771         470,   470,   470,   471,   471,   471,   472,   472,   472,   473,
772         473,   473,   474,   474,   474,   475,   475,   475,   476,   476,
773         476,   477,   477,   477,   478,   478,   478,   479,   479,   479,
774         480,   480,   480,   481,   481,   481,   482,   482,   485,   486,
775         487,   488,   491,   492,   498,   501,   504,   507,   510,   513,
776         516,   519,   522,   525,   528,   531,   534,   537,   540,   543,
777         546,   549,   552,   555,   558,   561,   564,   567,   570,   573,
778         576,   579,   582,   585,   588,   591,   594,   597,   600,   603,
779         606,   609,   612,   615,   618,   621,   624,   627,   630,   633,
780         636,   639,   642,   645,   648,   651,   654,   657,   660,   663,
781         666,   669,   672,   675,   678,   681,   684,   687,   690,   693,
782         696,   699,   702,   705,   708,   711,   714,   717,   720,   723,
783         726,   729,   732,   735,   738,   741,   744,   747,   750,   753,
784         756
785  };  };
786  #endif  #endif
787    
788  #if YYDEBUG || YYERROR_VERBOSE  #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
789  /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.  /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
790     First, the terminals, then, starting at YYNTOKENS, nonterminals. */     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
791  static const char *const yytname[] =  static const char *const yytname[] =
792  {  {
793    "$end", "error", "$undefined", "CHAR", "DOTNUM", "NUMBER", "SP", "LF",    "$end", "error", "$undefined", "'#'", "'='", "','", "'.'", "'+'", "'-'",
794    "CR", "HASH", "EQ", "ADD", "GET", "CREATE", "DESTROY", "LIST", "LOAD",    "'0'", "'1'", "'2'", "'3'", "'4'", "'5'", "'6'", "'7'", "'8'", "'9'",
795    "REMOVE", "SET", "SUBSCRIBE", "UNSUBSCRIBE", "RESET", "QUIT", "CHANNEL",    "'A'", "'B'", "'C'", "'D'", "'E'", "'F'", "'G'", "'H'", "'I'", "'J'",
796    "NOTIFICATION", "AVAILABLE_ENGINES", "AVAILABLE_AUDIO_OUTPUT_DRIVERS",    "'K'", "'L'", "'M'", "'N'", "'O'", "'P'", "'Q'", "'R'", "'S'", "'T'",
797    "CHANNELS", "INFO", "BUFFER_FILL", "STREAM_COUNT", "VOICE_COUNT",    "'U'", "'V'", "'W'", "'X'", "'Y'", "'Z'", "'a'", "'b'", "'c'", "'d'",
798    "INSTRUMENT", "ENGINE", "AUDIO_OUTPUT_CHANNEL",    "'e'", "'f'", "'g'", "'h'", "'i'", "'j'", "'k'", "'l'", "'m'", "'n'",
799    "AUDIO_OUTPUT_CHANNEL_PARAMETER", "AUDIO_OUTPUT_DEVICE",    "'o'", "'p'", "'q'", "'r'", "'s'", "'t'", "'u'", "'v'", "'w'", "'x'",
800    "AUDIO_OUTPUT_DEVICES", "AUDIO_OUTPUT_DEVICE_PARAMETER",    "'y'", "'z'", "'!'", "'$'", "'%'", "'&'", "'('", "')'", "'*'", "'/'",
801    "AUDIO_OUTPUT_DRIVER", "AUDIO_OUTPUT_DRIVER_PARAMETER",    "':'", "';'", "'<'", "'>'", "'?'", "'@'", "'['", "'\\\\'", "']'", "'^'",
802    "MIDI_INPUT_PORT", "MIDI_INPUT_CHANNEL", "MIDI_INPUT_TYPE", "VOLUME",    "'_'", "'{'", "'|'", "'}'", "'~'", "'\\200'", "'\\201'", "'\\202'",
803    "BYTES", "PERCENTAGE", "$accept", "input", "line", "comment", "command",    "'\\203'", "'\\204'", "'\\205'", "'\\206'", "'\\207'", "'\\210'",
804    "get_instruction", "set_instruction", "create_instruction",    "'\\211'", "'\\212'", "'\\213'", "'\\214'", "'\\215'", "'\\216'",
805    "destroy_instruction", "load_instruction", "set_chan_instruction",    "'\\217'", "'\\220'", "'\\221'", "'\\222'", "'\\223'", "'\\224'",
806    "key_val_list", "buffer_size_type", "list_instruction",    "'\\225'", "'\\226'", "'\\227'", "'\\230'", "'\\231'", "'\\232'",
807    "load_instr_args", "load_engine_args", "midi_input_type", "volume",    "'\\233'", "'\\234'", "'\\235'", "'\\236'", "'\\237'", "'\\240'",
808    "sampler_channel", "instrument_index", "udp_port",    "'\\241'", "'\\242'", "'\\243'", "'\\244'", "'\\245'", "'\\246'",
809    "audio_output_channel", "midi_input_channel", "session_id",    "'\\247'", "'\\250'", "'\\251'", "'\\252'", "'\\253'", "'\\254'",
810    "engine_name", "midi_input_port", "filename", "alpha_num_string",    "'\\255'", "'\\256'", "'\\257'", "'\\260'", "'\\261'", "'\\262'",
811    "string", 0    "'\\263'", "'\\264'", "'\\265'", "'\\266'", "'\\267'", "'\\270'",
812      "'\\271'", "'\\272'", "'\\273'", "'\\274'", "'\\275'", "'\\276'",
813      "'\\277'", "'\\300'", "'\\301'", "'\\302'", "'\\303'", "'\\304'",
814      "'\\305'", "'\\306'", "'\\307'", "'\\310'", "'\\311'", "'\\312'",
815      "'\\313'", "'\\314'", "'\\315'", "'\\316'", "'\\317'", "'\\320'",
816      "'\\321'", "'\\322'", "'\\323'", "'\\324'", "'\\325'", "'\\326'",
817      "'\\327'", "'\\330'", "'\\331'", "'\\332'", "'\\333'", "'\\334'",
818      "'\\335'", "'\\336'", "'\\337'", "'\\340'", "'\\341'", "'\\342'",
819      "'\\343'", "'\\344'", "'\\345'", "'\\346'", "'\\347'", "'\\350'",
820      "'\\351'", "'\\352'", "'\\353'", "'\\354'", "'\\355'", "'\\356'",
821      "'\\357'", "'\\360'", "'\\361'", "'\\362'", "'\\363'", "'\\364'",
822      "'\\365'", "'\\366'", "'\\367'", "'\\370'", "'\\371'", "'\\372'",
823      "'\\373'", "'\\374'", "'\\375'", "'\\376'", "'\\377'", "'''", "'\"'",
824      "' '", "'\\n'", "'\\r'", "$accept", "input", "line", "comment",
825      "command", "add_instruction", "subscribe_event", "unsubscribe_event",
826      "map_instruction", "unmap_instruction", "remove_instruction",
827      "get_instruction", "set_instruction", "create_instruction",
828      "reset_instruction", "clear_instruction", "destroy_instruction",
829      "load_instruction", "set_chan_instruction", "modal_arg", "key_val_list",
830      "buffer_size_type", "list_instruction", "load_instr_args",
831      "load_engine_args", "instr_load_mode", "device_index",
832      "audio_channel_index", "audio_output_type_name", "midi_input_port_index",
833      "midi_input_channel_index", "midi_input_type_name", "midi_map",
834      "midi_bank", "midi_prog", "midi_ctrl", "volume_value", "sampler_channel",
835      "instrument_index", "fx_send_id", "engine_name", "filename", "map_name",
836      "entry_name", "fx_send_name", "param_val_list", "param_val", "boolean",
837      "string", "dotnum", "digits", "digit", "number", "char", "text",
838      "stringval", "SP", "LF", "CR", "ADD", "GET", "MAP", "UNMAP", "CLEAR",
839      "CREATE", "DESTROY", "LIST", "LOAD", "ALL", "NONE", "DEFAULT",
840      "NON_MODAL", "REMOVE", "SET", "SUBSCRIBE", "UNSUBSCRIBE", "SELECT",
841      "CHANNEL", "AVAILABLE_ENGINES", "AVAILABLE_AUDIO_OUTPUT_DRIVERS",
842      "CHANNELS", "INFO", "AUDIO_OUTPUT_DEVICE_COUNT",
843      "AUDIO_OUTPUT_DEVICE_INFO", "MIDI_INPUT_DEVICE_COUNT",
844      "MIDI_INPUT_DEVICE_INFO", "MIDI_INSTRUMENT_MAP_COUNT",
845      "MIDI_INSTRUMENT_MAP_INFO", "MIDI_INSTRUMENT_COUNT",
846      "MIDI_INSTRUMENT_INFO", "CHANNEL_COUNT", "CHANNEL_INFO", "FX_SEND_COUNT",
847      "FX_SEND_INFO", "BUFFER_FILL", "STREAM_COUNT", "VOICE_COUNT",
848      "TOTAL_VOICE_COUNT", "TOTAL_VOICE_COUNT_MAX", "GLOBAL_INFO",
849      "INSTRUMENT", "ENGINE", "ON_DEMAND", "ON_DEMAND_HOLD", "PERSISTENT",
850      "AUDIO_OUTPUT_DEVICE_PARAMETER", "AUDIO_OUTPUT_DEVICES",
851      "AUDIO_OUTPUT_DEVICE", "AUDIO_OUTPUT_DRIVER_PARAMETER",
852      "AUDIO_OUTPUT_DRIVER", "AUDIO_OUTPUT_CHANNEL_PARAMETER",
853      "AUDIO_OUTPUT_CHANNEL", "AUDIO_OUTPUT_TYPE",
854      "AVAILABLE_MIDI_INPUT_DRIVERS", "MIDI_INPUT_DEVICE_PARAMETER",
855      "MIDI_INPUT_PORT_PARAMETER", "MIDI_INPUT_DEVICES", "MIDI_INPUT_DEVICE",
856      "MIDI_INPUT_DRIVER_PARAMETER", "MIDI_INSTRUMENT", "MIDI_INSTRUMENTS",
857      "MIDI_INSTRUMENT_MAP", "MIDI_INSTRUMENT_MAPS", "MIDI_INPUT_DRIVER",
858      "MIDI_INPUT_PORT", "MIDI_INPUT_CHANNEL", "MIDI_INPUT_TYPE", "MIDI_INPUT",
859      "MIDI_CONTROLLER", "FX_SEND", "FX_SENDS", "SERVER", "VOLUME", "LEVEL",
860      "MUTE", "SOLO", "BYTES", "PERCENTAGE", "RESET", "MISCELLANEOUS", "NAME",
861      "ECHO", "QUIT", 0
862  };  };
863  #endif  #endif
864    
865  # ifdef YYPRINT  # ifdef YYPRINT
866  /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to  /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
867     token YYLEX-NUM.  */     token YYLEX-NUM.  */
868  static const unsigned short yytoknum[] =  static const yytype_uint16 yytoknum[] =
869  {  {
870         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,         0,   256,   257,    35,    61,    44,    46,    43,    45,    48,
871       265,   266,   267,   268,   269,   270,   271,   272,   273,   274,        49,    50,    51,    52,    53,    54,    55,    56,    57,    65,
872       275,   276,   277,   278,   279,   280,   281,   282,   283,   284,        66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
873       285,   286,   287,   288,   289,   290,   291,   292,   293,   294,        76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
874       295,   296,   297,   298,   299,   300,   301        86,    87,    88,    89,    90,    97,    98,    99,   100,   101,
875         102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
876         112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
877         122,    33,    36,    37,    38,    40,    41,    42,    47,    58,
878          59,    60,    62,    63,    64,    91,    92,    93,    94,    95,
879         123,   124,   125,   126,   128,   129,   130,   131,   132,   133,
880         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
881         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
882         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
883         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
884         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
885         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
886         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
887         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
888         214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
889         224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
890         234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
891         244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
892         254,   255,    39,    34,    32,    10,    13
893  };  };
894  # endif  # endif
895    
896  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
897  static const unsigned char yyr1[] =  static const yytype_uint16 yyr1[] =
898  {  {
899         0,    47,    48,    48,    48,    49,    49,    49,    49,    50,         0,   227,   228,   228,   229,   229,   229,   229,   230,   230,
900        50,    50,    50,    50,    51,    51,    51,    51,    51,    51,       230,   230,   230,   231,   231,   231,   231,   231,   231,   231,
901        51,    51,    51,    51,    51,    51,    52,    52,    52,    52,       231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
902        52,    52,    52,    52,    52,    52,    52,    52,    52,    52,       232,   232,   232,   233,   233,   233,   233,   233,   233,   233,
903        52,    53,    53,    53,    53,    53,    54,    55,    56,    56,       233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
904        57,    57,    57,    57,    57,    57,    58,    58,    59,    59,       233,   234,   234,   234,   234,   234,   234,   234,   234,   234,
905        60,    61,    62,    63,    64,    64,    65,    66,    67,    68,       234,   234,   234,   234,   234,   234,   234,   234,   234,   235,
906        69,    70,    71,    72,    73,    73,    74,    74,    74,    74,       235,   235,   235,   236,   237,   237,   237,   238,   238,   238,
907        75,    75       238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
908         238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
909         238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
910         238,   239,   239,   239,   239,   239,   239,   239,   239,   239,
911         239,   239,   239,   240,   240,   240,   240,   240,   240,   241,
912         242,   242,   243,   243,   243,   244,   244,   245,   245,   245,
913         245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
914         245,   246,   246,   247,   247,   248,   248,   249,   249,   249,
915         249,   249,   249,   249,   249,   249,   249,   250,   250,   251,
916         252,   252,   252,   253,   254,   255,   256,   257,   257,   258,
917         259,   260,   261,   262,   263,   263,   264,   265,   266,   267,
918         268,   269,   270,   271,   272,   272,   273,   273,   273,   273,
919         274,   274,   275,   275,   276,   276,   276,   277,   277,   278,
920         278,   278,   278,   278,   278,   278,   278,   278,   278,   279,
921         279,   279,   279,   279,   279,   279,   279,   279,   279,   280,
922         280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
923         280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
924         280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
925         280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
926         280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
927         280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
928         280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
929         280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
930         280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
931         280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
932         280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
933         280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
934         280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
935         280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
936         280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
937         280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
938         280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
939         280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
940         280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
941         280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
942         280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
943         280,   280,   280,   280,   280,   280,   280,   280,   281,   281,
944         281,   281,   282,   282,   283,   284,   285,   286,   287,   288,
945         289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
946         299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
947         309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
948         319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
949         329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
950         339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
951         349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
952         359,   360,   361,   362,   363,   364,   365,   366,   367,   368,
953         369
954  };  };
955    
956  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
957  static const unsigned char yyr2[] =  static const yytype_uint8 yyr2[] =
958  {  {
959         0,     2,     1,     3,     4,     0,     1,     1,     1,     1,         0,     2,     2,     3,     0,     1,     1,     1,     1,     2,
960         2,     2,     2,     2,     3,     3,     3,     3,     3,     3,         2,     2,     2,     3,     3,     3,     3,     3,     3,     3,
961         5,     3,     5,     5,     5,     1,     1,     1,     5,     7,         3,     3,     3,     3,     3,     3,     3,     3,     1,     1,
962         9,     1,     5,     7,     9,     1,     5,     7,     5,     5,         1,     1,     3,     1,     1,     1,     1,     1,     1,     1,
963         5,     7,     7,     9,     9,     3,     5,     3,     3,     3,         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
964         5,     7,     5,     5,     5,     5,     3,     5,     1,     1,         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
965         1,     5,     3,     1,     1,     1,     1,     1,     1,     1,         1,     1,     1,     1,     1,     1,     1,     1,     1,    16,
966         1,     1,     1,     1,     1,     3,     1,     1,     2,     2,        18,    18,    20,     7,     3,     3,     3,     1,     1,     5,
967         1,     2         7,     9,     1,     5,     7,     9,     1,     1,     5,     5,
968           7,     9,     7,     9,     1,     5,     7,     5,     5,     5,
969           3,     1,     1,     3,     3,     9,     1,     5,     3,     7,
970           1,     7,     9,     7,     9,     3,     7,     9,    11,     9,
971           9,     3,     3,     5,     3,     5,     3,     5,     7,     3,
972           3,     3,     3,     3,     5,     3,     3,     5,     7,     5,
973           9,     5,     5,     5,     5,     5,     5,     5,     5,     5,
974           5,     0,     2,     3,     5,     1,     1,     1,     1,     1,
975           1,     1,     1,     3,     3,     1,     3,     5,     7,     3,
976           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
977           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
978           1,     1,     1,     1,     1,     3,     1,     1,     1,     1,
979           1,     1,     1,     2,     3,     4,     4,     1,     2,     1,
980           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
981           2,     2,     2,     2,     2,     2,     2,     2,     2,     1,
982           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
983           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
984           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
985           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
986           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
987           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
988           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
989           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
990           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
991           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
992           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
993           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
994           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
995           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
996           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
997           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
998           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
999           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1000           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1001           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1002           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1003           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1004           2,     2,     3,     3,     1,     1,     1,     3,     3,     3,
1005           5,     5,     6,     7,     4,     4,     3,     4,     7,     9,
1006           6,     3,     9,    11,     6,     7,    17,    30,     8,     4,
1007          25,    24,    23,    22,    25,    24,    21,    20,    13,    12,
1008          13,    12,    11,    12,    11,    17,    21,    11,    10,     6,
1009           9,    14,    10,    29,    20,    19,    29,    19,    30,    20,
1010          17,    28,    27,    25,    18,    17,    27,    15,    16,    19,
1011          20,    17,    15,    18,    15,    10,    15,     7,     8,     6,
1012           6,     5,     4,     4,     5,    10,     5,    13,     4,     4,
1013           4
1014  };  };
1015    
1016  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1017     STATE-NUM when YYTABLE doesn't specify something else to do.  Zero     STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1018     means the default is an error.  */     means the default is an error.  */
1019  static const unsigned char yydefact[] =  static const yytype_uint16 yydefact[] =
1020  {  {
1021         0,     8,     9,     0,     0,     0,     0,     0,     0,     0,         0,     7,     8,     0,     0,     0,     0,     0,     0,     0,
1022         0,     0,     0,     0,    25,     0,     2,     6,     7,     0,         0,     0,     0,     0,     0,     5,     6,     0,     0,     0,
1023           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1024           0,    28,    29,     0,     0,     0,     0,     0,     0,     0,
1025           0,     0,     0,     0,     0,     0,     1,   455,   456,     2,
1026           0,     9,   307,   302,   301,   299,   300,   209,   210,   211,
1027         212,   213,   214,   215,   216,   217,   218,   229,   230,   231,
1028         232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
1029         242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
1030         252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
1031         262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
1032         272,   273,   274,   275,   276,   277,   278,   279,   280,   291,
1033         293,   294,   295,   296,   297,   298,   303,   304,   305,   306,
1034         308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
1035         318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
1036         328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
1037         338,   339,   340,   341,   342,   343,   344,   345,   346,   347,
1038         348,   349,   350,   351,   352,   353,   354,   355,   356,   357,
1039         358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
1040         368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
1041         378,   379,   380,   381,   382,   383,   384,   385,   386,   387,
1042         388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
1043         398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
1044         408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
1045         418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
1046         428,   429,   430,   431,   432,   433,   434,   435,   436,   437,
1047         438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
1048         454,    12,   219,    11,   202,    10,     0,     0,     0,     0,
1049           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1050           0,   457,     0,     0,     0,   458,     0,     0,   459,     0,
1051           0,     0,     0,   471,     0,     0,     0,     3,   209,   210,
1052         211,   212,   213,   214,   215,   216,   217,   218,   220,   207,
1053         221,   222,   223,   224,   225,   226,   227,   228,   292,   281,
1054         282,   283,   284,   285,   286,   287,   288,   289,   290,   203,
1055           0,     0,    13,    30,    31,     0,     0,     0,     0,     0,
1056           0,     0,     0,    16,     0,    77,    82,    94,   101,   102,
1057           0,    86,     0,     0,     0,     0,     0,    78,     0,    87,
1058           0,     0,     0,     0,     0,   106,     0,     0,     0,     0,
1059           0,   110,     0,    14,     0,    15,     0,     0,    27,     0,
1060           0,     0,     0,    17,     0,     0,     0,    18,     0,     0,
1061           0,     0,     0,     0,     0,    19,   160,   162,   159,   157,
1062         161,   158,     0,   165,     0,     0,    20,     0,     0,    21,
1063           0,     0,     0,     0,     0,    22,     0,     0,     0,     0,
1064           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1065           0,     0,     0,     0,    23,    33,    34,    35,    36,    44,
1066          45,    46,    47,    37,    41,    42,    43,    40,    39,    38,
1067          49,    50,    48,    24,    51,    52,    53,    54,    62,    63,
1068          64,    65,    55,    59,    60,    61,    58,    57,    56,    67,
1069          68,    66,   449,    25,   448,    26,     0,     0,     0,     0,
1070         464,   465,   540,     0,     0,     0,     0,     0,     0,   208,
1071           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1072           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1073           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1074           0,   151,     0,     0,     0,     0,     0,     0,     0,     0,
1075           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1076           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1077           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1078           0,     0,     0,     0,     0,     0,   451,   450,     0,   461,
1079           0,     0,     0,   536,     0,     0,   460,     0,     0,     0,
1080           0,     0,    32,   191,     0,     0,     0,     0,     0,     0,
1081           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1082           0,     0,     0,     0,     0,     0,     0,     0,   210,   211,
1083         212,   213,   214,   215,   216,   217,   218,     0,   103,   180,
1084         104,     0,     0,     0,     0,   108,   186,   100,     0,     0,
1085           0,     0,     0,     0,   130,   131,     0,     0,     0,   124,
1086         126,     0,   132,   133,     0,     0,     0,     0,     0,   163,
1087         164,   166,     0,   135,     0,   190,     0,   136,     0,   189,
1088          74,    75,    76,     0,     0,     0,     0,     0,     0,   115,
1089           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1090           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1091           0,     0,     0,     0,     0,     0,     0,   122,   184,     0,
1092         207,   185,   121,   201,   200,     0,     0,     0,     0,     0,
1093           0,     0,     0,     0,     0,   129,   462,     0,   470,   474,
1094           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1095           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1096           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1097           0,     0,     0,     0,     0,     0,     0,     0,   152,     0,
1098           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1099           0,     0,     0,     0,     0,     0,     0,   539,     0,     0,
1100           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1101           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1102         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1103         1,     0,     0,    80,    12,    11,    10,    13,    14,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1104        26,    27,    35,     0,     0,     0,     0,    31,     0,     0,         0,   463,     0,     0,     0,     0,   452,   453,     0,     0,
1105        15,     0,    16,     0,    17,    60,    18,     0,     0,    19,         0,     0,     0,     0,     0,     0,     0,     0,    95,     0,
1106         0,     0,     0,     0,    21,     0,     0,     0,     3,     0,         0,     0,   155,   156,    97,    98,    99,    88,     0,    83,
1107        81,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,    89,     0,     0,   466,   107,    79,     0,
1108         0,     0,     0,     0,     0,     0,     0,     0,     0,     4,         0,     0,     0,     0,     0,   181,     0,     0,     0,     0,
1109         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,       123,     0,   125,   127,   183,   134,   188,     0,     0,     0,
1110         0,    47,    77,    48,     0,    74,    76,    49,     0,    72,         0,     0,     0,   187,     0,   169,     0,     0,     0,     0,
1111        66,    20,     0,     0,     0,     0,     0,     0,    45,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1112         0,    68,    22,    23,    71,    24,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1113         0,     0,     0,     0,     0,     0,     0,     0,    79,    78,         0,     0,     0,     0,     0,     0,     0,     0,     0,   204,
1114         0,     0,     0,     0,     0,     0,     0,     0,     0,    36,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1115        58,    59,     0,    38,    39,    40,     0,     0,    32,    28,         0,     0,     0,     0,     0,     0,     0,   499,     0,     0,
1116         0,    46,     0,    77,     0,    75,    62,     0,     0,     0,       529,     0,   530,   479,     0,     0,     0,     0,     0,     0,
1117         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1118         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1119         0,    37,    33,     0,    29,     0,    56,    61,    69,     0,         0,     0,     0,     0,     0,     0,     0,   532,   533,     0,
1120        50,    52,    73,    70,    53,    54,    63,    64,    65,    55,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1121         0,    41,    42,     0,     0,     0,     0,     0,     0,    34,         0,     0,     0,     0,     0,   538,     0,     0,     0,     0,
1122        30,    57,    51,    43,    44         0,     0,     0,     0,   205,   206,     0,     0,     0,     0,
1123           0,     0,     0,     0,     0,     0,   472,     0,   475,     0,
1124           0,     0,   475,   527,     0,     0,     0,     0,    96,    84,
1125           0,    92,     0,    80,     0,    90,   109,     0,     0,     0,
1126          73,   182,     0,     0,   527,     0,     0,   299,   300,   153,
1127         194,   196,   199,   198,   197,   128,   193,     0,     0,     0,
1128           0,     0,   167,     0,     0,     0,     0,     0,   137,   173,
1129           0,   174,   139,   175,   141,     0,     0,   148,   149,   150,
1130         142,   176,   143,   177,   178,   144,   179,     0,   145,   146,
1131         147,   111,     0,   113,     0,   116,     0,   531,     0,     0,
1132           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1133           0,     0,     0,     0,     0,     0,     0,   478,   528,     0,
1134           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1135           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1136           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1137           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1138           0,     0,     0,     0,     0,     0,     0,     0,     0,   473,
1139           0,     0,     0,     0,     0,     0,   534,     0,    85,    93,
1140          91,    81,   105,     0,     0,     0,     0,     0,     0,   154,
1141         195,     0,     0,     0,     0,   168,     0,     0,     0,     0,
1142         138,     0,     0,     0,   112,   114,     0,     0,     0,   119,
1143         120,   117,     0,     0,     0,     0,     0,     0,     0,     0,
1144           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1145           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1146           0,   498,     0,     0,     0,     0,     0,   467,     0,     0,
1147           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1148           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1149           0,     0,     0,     0,     0,   469,     0,     0,     0,     0,
1150           0,     0,     0,     0,     0,     0,     0,     0,   140,     0,
1151           0,   118,     0,   492,     0,     0,     0,     0,   497,     0,
1152           0,     0,     0,     0,   494,     0,     0,     0,     0,     0,
1153           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1154           0,     0,     0,     0,     0,     0,     0,   525,     0,     0,
1155           0,     0,     0,   489,     0,   491,     0,     0,     0,   493,
1156           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1157           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1158           0,     0,     0,     0,     0,   468,     0,     0,     0,   488,
1159         490,     0,     0,   537,     0,     0,     0,     0,     0,     0,
1160           0,     0,     0,     0,     0,     0,   535,     0,     0,     0,
1161           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1162           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1163           0,     0,     0,     0,     0,     0,     0,     0,   522,   517,
1164           0,   517,     0,     0,     0,     0,     0,     0,     0,     0,
1165           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1166           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1167           0,     0,     0,   518,     0,     0,    69,     0,     0,     0,
1168           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1169           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1170         476,     0,   515,   521,     0,     0,   495,     0,     0,   515,
1171           0,     0,     0,     0,     0,     0,     0,     0,     0,   522,
1172         524,   526,     0,     0,     0,     0,     0,   495,     0,     0,
1173           0,     0,     0,     0,   514,     0,     0,     0,     0,     0,
1174           0,    70,    71,   192,   170,   171,   172,     0,     0,     0,
1175           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1176           0,   519,     0,   505,   507,     0,     0,     0,     0,   519,
1177           0,     0,     0,     0,   505,     0,     0,     0,     0,     0,
1178           0,   510,     0,     0,     0,     0,     0,     0,     0,   509,
1179         504,     0,     0,     0,     0,     0,   520,     0,     0,     0,
1180          72,     0,     0,     0,     0,   523,     0,     0,     0,     0,
1181         487,     0,     0,     0,     0,     0,     0,     0,   496,     0,
1182           0,     0,     0,     0,     0,     0,     0,     0,   486,     0,
1183           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1184           0,   509,     0,     0,     0,   483,     0,     0,     0,     0,
1185           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1186         482,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1187           0,     0,     0,     0,   481,     0,   485,     0,     0,     0,
1188           0,     0,   513,     0,     0,     0,     0,   480,   484,     0,
1189           0,     0,     0,     0,   500,     0,     0,     0,     0,     0,
1190           0,     0,   516,     0,   502,     0,   512,     0,     0,     0,
1191         511,     0,     0,     0,   506,     0,     0,   503,   508,   477,
1192           0,   501
1193  };  };
1194    
1195  /* YYDEFGOTO[NTERM-NUM]. */  /* YYDEFGOTO[NTERM-NUM].  */
1196  static const short yydefgoto[] =  static const yytype_int16 yydefgoto[] =
1197  {  {
1198        -1,    15,    16,    17,    18,    50,    64,    52,    54,    59,        -1,    13,    14,    15,    16,   342,   444,   463,   383,   385,
1199       118,   161,   152,    56,   103,   107,   205,   209,   111,   164,       419,   353,   425,   393,   485,   388,   397,   416,   679,   640,
1200       122,   199,   204,   123,   108,   201,   104,   105,   106       880,   851,   405,   663,   667,  1531,  1078,  1080,  1082,  1090,
1201        1092,  1095,   628,   874,  1050,   883,   707,   635,   892,   885,
1202         668,   664,   592,  1532,  1065,  1059,  1060,   712,  1061,  1062,
1203         709,   272,   636,   274,   483,  1064,   973,    49,    50,    17,
1204          18,    19,    20,    21,    22,    23,    24,    25,  1094,  1088,
1205        1089,   641,    26,    27,    28,    29,    30,   343,   355,   356,
1206         357,   604,   445,   446,   447,   448,   449,   450,   451,   452,
1207         453,   454,   455,   456,   457,   458,   459,   358,   359,   461,
1208         417,   360,  1534,  1535,  1536,   427,   361,   362,   363,   364,
1209         365,   366,   682,   367,   429,   368,   369,   370,   371,   372,
1210         373,   344,   375,   376,   377,   686,   687,   688,   702,   378,
1211         379,   380,   381,   703,   690,   691,   852,   853,    31,   462,
1212         697,   434,    32
1213  };  };
1214    
1215  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1216     STATE-NUM.  */     STATE-NUM.  */
1217  #define YYPACT_NINF -86  #define YYPACT_NINF -1105
1218  static const short yypact[] =  static const yytype_int16 yypact[] =
1219  {  {
1220         3,   -86,   -86,    21,    25,    43,    67,    86,    91,    96,        45, -1105, -1105,   104,   156,    36,   179,   100,   197,   181,
1221       105,   106,   108,   109,   -86,    28,   -86,    84,   -86,   -14,       214,    48,   223,   257,    10,  2117, -1105,    44,    44,    44,
1222         7,    80,    85,    83,     5,    87,    22,    99,   100,   102,        44,    44,    44,    44,    44,    44,    44,    44,    44,    44,
1223       -86,     3,   115,   -86,   -86,   -86,   -86,   123,   -86,   121,        44,    44, -1105,   242,   249,   255,   262,   263,   269,   261,
1224       -86,   -86,   -86,   122,   128,   129,   130,   -86,   131,   132,       252,   288,   128,    27,   314,   162, -1105, -1105, -1105, -1105,
1225       -86,   133,   -86,   134,   -86,   -86,   -86,   135,   136,   -86,       113, -1105, -1105, -1105, -1105, -1105, -1105, -1105,   594,   594,
1226       137,   138,   139,   140,   -86,   141,   143,   144,   -86,     3,       594,   594,   594,   594,   594,   594,   594, -1105, -1105, -1105,
1227       -86,   -23,   101,   124,   125,   126,   127,   142,   148,   151,     -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1228        45,   148,   152,    38,   153,   154,   155,    45,   152,   -86,     -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1229       157,   158,   159,   160,   161,   162,   166,   167,   168,   169,     -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1230        23,   -86,   -86,   -86,   170,    93,   123,   -86,   171,   123,     -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1231       -86,   -86,   172,   174,   175,   176,   177,   178,   -86,   180,     -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1232       181,   -86,   -86,   -86,    93,   -86,   152,    40,   152,   152,     -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1233       148,   183,   184,   185,   148,   148,   148,    98,   -86,   123,     -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1234       152,   152,   152,   152,   152,   152,   152,   186,   148,   -86,     -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1235       -86,   -86,   187,   -86,   -86,   -86,   192,   193,   -86,   123,     -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1236        72,   194,    73,   195,   196,    93,   -86,   197,   199,   202,     -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1237       203,   204,   205,   206,    52,   152,   208,   209,   148,   148,     -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1238        45,   152,   210,   211,    45,   212,   148,   104,   148,    45,     -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1239        45,   -86,   -86,   213,    88,    74,    93,   -86,   -86,   214,     -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1240       -86,   -86,    93,   -86,   -86,   -86,   123,   -86,   -86,   -86,     -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1241        53,    93,    93,   148,   148,    45,   210,    45,    45,   123,     -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1242       194,    93,   -86,    93,    93     -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1243       -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1244       -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1245       -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1246       -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1247       -1105,  2782, -1105, -1105, -1105, -1105,    69,   166,   311,   311,
1248         315,   188,   188,   137,    70,    69,   177,   129,   129,  2339,
1249         331, -1105,   335,   341,   330, -1105,   332,   350, -1105,   337,
1250         340,   353,   354, -1105,   345,   359,   348, -1105, -1105, -1105,
1251       -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,   594, -1105,
1252         594,   594,   594,   594,   594,   594,   594,   594, -1105, -1105,
1253       -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1254         362,   363, -1105, -1105,    44,   243,   365,   360,   351,   367,
1255         372,   368,   374, -1105,    44, -1105, -1105, -1105, -1105, -1105,
1256          44, -1105,    44,    44,    44,    44,    44, -1105,    44, -1105,
1257          44,    44,    44,    44,    44, -1105,    44,    44,    44,    44,
1258          44, -1105,   369, -1105,    44, -1105,    44,   371, -1105,    44,
1259         361,   366,   382, -1105,    44,    44,    44, -1105,    44,    44,
1260          44,   245,   384,   379,   395, -1105, -1105, -1105, -1105, -1105,
1261       -1105, -1105,    44, -1105,    44,   401, -1105,    44,    44, -1105,
1262          44,    44,   396,   423,   418, -1105,    44,    44,    44,    44,
1263          44,    44,    44,    44,    44,   407,   408,   422,   409,   419,
1264         426,   417,   424,   425, -1105, -1105, -1105, -1105, -1105, -1105,
1265       -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1266       -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1267       -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1268       -1105, -1105,  2782,  2339, -1105, -1105,    44,   420,   421,   428,
1269       -1105, -1105, -1105,   427,   431,   439,   440,   432,   442, -1105,
1270         446,   448,    82,   450,   454,   455,   451,   388,   456,   443,
1271         444,   464,    59,   453,   453,   453,   453,   453,   453,   453,
1272         453,   453,   453,   568,   453,   453,   453,   453,   645,   453,
1273         474,   465,   645,   477,   568,   478,   412,   494,  2782,  2782,
1274         645,   645,   645,   645,   495,   483,   429,   498,   568,   645,
1275         482,     0,  2782,   645,   568,   499,   496,   501,    54,   645,
1276         645,   645,   645,   492,   132,   497,  3001,   504,   503,   509,
1277         441,   500,    55,   502,   493,   505,  2782, -1105,   645, -1105,
1278         512,   506,   514, -1105,   507,   510, -1105,   511,   508,   515,
1279        2339,  2339, -1105, -1105,   520,   522,   519,   525,   516,   527,
1280         517,   536,   521,   526,    44,    44,    44,    44,    44,    44,
1281          44,    44,    44,    44,    44,    44,    44,    44,   594,   594,
1282         594,   594,   594,   594,   594,   594,   594,   529, -1105, -1105,
1283       -1105,    44,    44,    44,    44, -1105, -1105, -1105,   538,   533,
1284         645,    44,    44,   542, -1105, -1105,   543,   534,   545,  2339,
1285        2339,    44, -1105, -1105,    44,   546,   556,   537,   586, -1105,
1286       -1105, -1105,   576, -1105,    44, -1105,    44, -1105,    44,  2782,
1287       -1105, -1105, -1105,   588,   589,   596,   582,   144,   591, -1105,
1288          44,    44,    44,    44,    44,    44,    44,    44,    44,    44,
1289          44,    44,    44,    44,    44,    44,   606,    44,   590,   518,
1290         601,    44,    44,    44,    44,   594,   594, -1105, -1105,   215,
1291          37, -1105, -1105,  2782, -1105,   603,   607,   600,   604,   613,
1292         610,   617,   620,   621,   623, -1105, -1105,   605, -1105, -1105,
1293         619,   626,   618,   563,  1673,  1895,   631,   653,   652,   659,
1294         662,   608,   669,   663,   664,   670,   645,   103,   645,   645,
1295        2782,   645,  2782,  2782,   645,   645,   645,   645,  2782,   645,
1296         666,   645,  2782,   645,   645,   609,   676,    44, -1105,   645,
1297         622,   677,   686,   624,  2782,  2782,   645,   645,   679,   682,
1298         692,   627,   681,   645,    82,   645,   685, -1105,   632,   700,
1299         701,   687,   694,   645,   645,   645,   645,   645,   645,   645,
1300         645,   645,   645,   645,   645,  2782,   645,  2782,   645,   695,
1301         645,   705,   688,   708,   645,   645,   645,   645,   414,   475,
1302         594,   698,   709,   711,   710,   725,   656,   723,   728,   718,
1303         726, -1105,   730,   715,   731,   733, -1105, -1105,   673,   736,
1304         741,   743,   735,   745,   732,   684,   747,   742, -1105,   734,
1305         751,    44, -1105, -1105, -1105, -1105, -1105, -1105,  2339,  2782,
1306          44,    44,    44, -1105,  2339,    44, -1105, -1105,  2782,    44,
1307          44,   749,   691,   645,    44, -1105,   754,   693,   752,   756,
1308          44,  3220,    44,    44, -1105, -1105, -1105,   699,   766,   758,
1309         764,   753,    44, -1105,    44, -1105,   704,   767,   768,   769,
1310         774,   765,    44,    44,    44,    44,    44,    44,    44,    44,
1311          44,    44,    44,    44,  3439,    44,  3658,    44,   776,    44,
1312         773,   778,   775,    44,    44,    44,    44,   594,   594,   594,
1313         714,   770,   781,   779,   777,   786,   784,   785,   716,   729,
1314         792,   790,   789,   788,   791,   803,   796, -1105,   805,   797,
1315       -1105,   793, -1105, -1105,   794,   795,   645,  2782,   645,   645,
1316         645,  2782,   645,   645,   645,   798,   804,    44,   645,   802,
1317         806,   815,   808,  2782,  2561,    82,   809,   811,   816,   812,
1318         817,   645,   645,   818,   820,   823,   739, -1105, -1105,   645,
1319         645,  2782,   645,    99,   645,   568,  2782,   645,   497,  3001,
1320        3001,  2561,  2782,  2561,  2782, -1105,    82,   824,   828,   771,
1321         645,   645,   645,   645,   594,   594,   829,   772,   833,   831,
1322         780,   832,   835,   782,   826,   846, -1105,   850, -1105,   836,
1323         837,   842,   841,   843,    61,   848,   851,   861, -1105,  2339,
1324          44, -1105,    44,  2339,    44, -1105, -1105,   847,   852,   645,
1325       -1105, -1105,   862,   844, -1105,   869,  3877,   594,   594,   900,
1326       -1105,  2782, -1105, -1105, -1105, -1105, -1105,   867,   841,   843,
1327         118,   884, -1105,    44,   873,   136,   825,   886, -1105, -1105,
1328          44, -1105, -1105,  2782, -1105,   892,   883, -1105, -1105, -1105,
1329       -1105, -1105, -1105, -1105, -1105, -1105,  2782,    44, -1105, -1105,
1330       -1105,   900,  4096,   900,  4315, -1105,   830, -1105,   896,    44,
1331          44,    44,    44,   879,   897,   834,   838,   893,   157,   903,
1332         904,   891,   895,   906,   888,   894,   907, -1105, -1105,   898,
1333         901,   911,   905,   908,  2782,  2782,  2782,  2782,   645,   909,
1334         919,    44,   910,   912,   914,  2561,  2561,   913,   915,   917,
1335         924,   645,   920,   918,   916,   927,   645,   921,   935,   645,
1336        2561,  2561,   936,   938,   645,   645,   497,    82,   930,   945,
1337         108,   227,   941,   939,   937,   942,   944,   952,   943, -1105,
1338         947,   899,   854,   948,   949,   923, -1105,   955,    44,  2782,
1339        2782,    44, -1105,   953,   961,  2782,   954,   959,   950,   900,
1340       -1105,   964,   966,   970,   969, -1105,   976,   973,   977,   210,
1341       -1105,   962,   994,    44,   900,   900,   982,   990,    44, -1105,
1342       -1105, -1105,   989,   996,   997,   999,  1000,  1003,   922,   998,
1343        1001,  1015,  1002,  1018,  1008,  1009,  1010,   222,   958,  1011,
1344        1019,  1014,  1016,  1023,    44,  1017,  1020,   965,  1021,   968,
1345        1022, -1105,  1024,   975,  1028,  1029,  1030, -1105,   568,  1034,
1346        1035,   645,  1036,  1032,  1037,  1043,  1038,  1050,  1045,   991,
1347        1040,  1048,  1051,  1061,  1047,  1056,  1053,  1049,  1057,  1065,
1348         150,  1062,  1012,  1079,  1068, -1105,    82,  1069,  1064,  1081,
1349        1066,  1083,  1075,  1071,   212,  1076,  1073,  1082, -1105,  1084,
1350        1077, -1105,  1078, -1105,  1088,  1089,  1091,  1092, -1105,  1093,
1351        1090,  1085,  1094,  1039, -1105,  1106,  1044,  1112,  1110,  1114,
1352          65,  1104,  1118,  1121,  1119,  1120,    44,  1122,  1060,  1123,
1353        1063,  1127,  1128,  1067,  1130,  1124,  1115,  1070,  1117,  1125,
1354        1132,  1080,  1134, -1105,  1137, -1105,  1147,  1153,  1140, -1105,
1355        1139,  1146,   292,  1152,  1154,  1155,  1143,  1157,  1144,  1156,
1356        1158,  1162,  1160,   645,  1161,  1164,  1149,  1165,  1150,  1163,
1357         296,  1159,  1166,  1167,    98, -1105,  1168,  1170,  1172, -1105,
1358       -1105,  1169,  1175, -1105,  1171,  1173,  1182,   102,  1177,  1180,
1359        1107,  1174,  1176,  1179,  1181,  1183, -1105,  1185,    44,  1186,
1360        1190,  1191,  1197,  1194,  1187,  1200,  1204,  1201,  1193,  1108,
1361        1208,  1202,  1196,  1148,  1206,  1217,  1214,  1205,  1207,  1178,
1362        1225,  1209,  1218,  1184,  1224,  1221,  1229,  1228,  1189,    17,
1363        1220, -1105,   497,  1216,  1219,  1235,  1226,  1236,    18,  1239,
1364        1230,  1243,  1189,    40,  1246,  1232,  1237,  1248,  1249,  1234,
1365        1254,  1192,  1247,  1252,  1256,  1253,  1244,  1257,  1255,  1259,
1366        1263,  1258,  1261, -1105,  1262,  1251,    44,  1269,  1274,  1271,
1367        1276,  1270,  1268,  1275,  1280,  1278,  1264,  1273,  1272,  1283,
1368        1277,  1281,  1286,    97,  1282,  1293,  1287,  1294,  1291,  1279,
1369       -1105,  1289,  1284,  1238,  1305,  1306,  1240,    16,  1307, -1105,
1370        1309,  1284,  1312,  1300,  1313,  1260,  1314,  1301,  1304, -1105,
1371       -1105, -1105,  1316,  1265,  1308,  1310,  1319, -1105,  1311,  1317,
1372        1320,  1315,  1318,  1321, -1105,  1323,  1322,  1325,  1324,  1329,
1373        1327,    44, -1105, -1105, -1105, -1105, -1105,  1330,  1339,  1332,
1374        1340,  1341,  1333,  1336,  1346,  1347,  1348,   239,  1334,  1328,
1375        1342, -1105,  1345,  1343,  1288,  1344,  1349,  1360,  1362,  1351,
1376        1363,  1295,  1350,    82, -1105,  1343,  1351,  1355,  1302,  1370,
1377        1358, -1105,  1364,  1303,  1365,  1361,  1367,  1368,  1326,  1331,
1378       -1105,  1366,  1356,  1335,  1369,  1371, -1105,  1354,  1375,  1372,
1379       -1105,  1331,  1373,  1374,  1380, -1105,   246,  1377,  1382,  1376,
1380       -1105,   248,  1378,  1385,  1379,  1386,  1392,  1390, -1105,  1395,
1381        1394,  1400,  1403,  1393,  1396,  1398,  1399,  1402, -1105,  1405,
1382        1401,  1406,  1391,  1337,  1404,  1397,  1407,  1408,  1409,  1411,
1383        1412, -1105,  1410,  1418,  1414, -1105,  1415,  1420,  1419,  1413,
1384        1426,  1423,  1433,  1434,  1417,  1421,  1439,  1437,  1429,  1430,
1385       -1105,  1432,  1435,  1443,  1436,  1438,  1425,  1428,  1441,  1440,
1386        1446,  1442,  1445,  1447, -1105,  1448, -1105,  1444,  1455,  1454,
1387        1464,  1465, -1105,  1467,  1458,  1468,  1469, -1105, -1105,  1470,
1388        1456,  1459,  1460,  1462,  1381,  1457,  1466,  1471,  1472,  1477,
1389        1479,  1474, -1105,  1480, -1105,  1482, -1105,  1485,  1473,  1476,
1390       -1105,  1484,  1486,  1487, -1105,  1478,  1483, -1105, -1105, -1105,
1391        1481, -1105
1392  };  };
1393    
1394  /* YYPGOTO[NTERM-NUM].  */  /* YYPGOTO[NTERM-NUM].  */
1395  static const yysigned_char yypgoto[] =  static const yytype_int16 yypgoto[] =
1396  {  {
1397       -86,   -86,   -30,   -86,   -86,   -86,   -86,   -86,   -86,   -86,     -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1398       -86,   -22,   -86,   -86,   -86,   -86,   -86,   -86,   -75,   -86,     -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,
1399       -86,     2,   -86,   -86,    92,   -86,   -86,   -85,   -17      -748, -1105, -1105, -1105, -1105, -1105,  -929, -1104, -1105,   185,
1400          89, -1105,  -510,  -840, -1004,   183,  -978,  -506,  -959,  -908,
1401        -732,  -783,   523,  -217,   357,  -950,   375,  -663,   480,  -546,
1402          81,   116,     2,   458,  -250,  -477,   -15,  1475, -1105, -1105,
1403       -1105, -1105, -1105, -1105, -1105, -1105, -1105, -1105,  -465, -1105,
1404       -1105,   967, -1105, -1105, -1105, -1105, -1105,   -72,  1245,  1250,
1405        1266,  -194,  1242,  1267,  1285,  1290,  1292,  1296,  1297,  1298,
1406        1299,  1338,  1352,  1353,  -262,  -260,  -247,    56, -1105,  1357,
1407       -1105,  1359, -1105, -1105, -1105, -1105,  1383,  -246, -1105, -1105,
1408        1241,  -349, -1105,  1384, -1105,  1387,  1388,  -242, -1105,    88,
1409         -24,  -256,  1389, -1105,   974, -1105, -1105, -1105, -1105,    -5,
1410        1613, -1105,  -255, -1105, -1105, -1105, -1105, -1105, -1105,  1829,
1411         956, -1105, -1105
1412  };  };
1413    
1414  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1415     positive, shift that token.  If negative, reduce the rule which     positive, shift that token.  If negative, reduce the rule which
1416     number is the opposite.  If zero, do what YYDEFACT says.     number is the opposite.  If zero, do what YYDEFACT says.
1417     If YYTABLE_NINF, syntax error.  */     If YYTABLE_NINF, syntax error.  */
1418  #define YYTABLE_NINF -68  #define YYTABLE_NINF -220
1419  static const short yytable[] =  static const yytype_int16 yytable[] =
1420  {  {
1421        37,    68,   124,    -5,     1,    90,    91,    92,    93,    38,       275,   894,   276,   277,   278,   279,   280,   281,   282,   283,
1422        -5,    -5,     2,   125,     3,     4,     5,     6,     7,     8,       284,   285,   286,   287,   288,   289,   290,   273,   856,   708,
1423         9,    10,    11,    12,    13,    14,    70,    19,    30,   136,      1098,   374,   642,  1073,   644,   593,   476,   882,   477,   421,
1424        39,    20,    40,    41,    42,    31,    32,    57,    58,    89,       431,   433,   639,   967,   651,   394,   398,   654,   659,   395,
1425        43,    44,    45,    46,    47,    61,    48,    49,    33,    21,       399,   478,  -219,   661,   671,  1141,     1,   670,     2,  1529,
1426       102,   149,   165,   153,   154,    70,    70,    62,   189,   217,      1530,  1101,  1210,  1103,  1463,  1463,  1046,   302,   630,    36,
1427        63,   100,   190,   218,   109,   166,   167,   168,   169,   170,      1218,  1475,  1400,  1084,     3,   303,     4,     5,  1097,   645,
1428       171,   172,   112,    22,   113,    70,    70,    70,   178,   114,         6,    43,   725,   676,   665,     7,     8,   720,  1476,   436,
1429       115,   116,   117,   180,   215,   150,   151,    33,   139,    34,         9,    10,    11,   660,    12,   677,   603,    44,  1356,   672,
1430        35,    70,    23,    36,   214,   196,    33,    24,   138,   202,       340,   678,   721,   347,   352,  1129,   441,   415,  1130,   443,
1431       191,    33,    25,   163,   211,   212,   197,   139,   207,   208,       341,  1357,  1109,  1110,  1111,  1112,  1464,  1471,   308,   618,
1432        60,    26,    27,   109,    28,    29,    51,   159,   160,   162,       619,   620,   621,   622,   623,   624,   625,   626,  1514,  1410,
1433        55,    53,    69,    65,    66,    67,    70,    71,    72,    94,      1329,  1085,  1044,   849,  1515,  1421,    33,    38,  1516,  1224,
1434       221,   174,   223,   224,    73,    74,    75,    76,    77,    78,       767,  1086,  1411,    39,  1192,  1225,  1412,   850,  1422,   318,
1435        79,    80,    81,    82,    83,    84,    85,    86,   139,    87,       320,   321,   322,   323,   324,   325,   326,   327,   435,   436,
1436        88,    33,    95,    96,    97,    98,   101,   110,   119,   120,       437,   698,  1148,   438,   439,  1149,   401,  1301,   402,   300,
1437       121,   194,   195,   126,   127,   128,   129,   130,   131,   206,       440,   403,   699,   700,   696,   301,   441,   442,   404,   443,
1438        99,   210,   132,   133,   134,   135,   137,   140,   141,   139,      1153,   790,  1320,  1124,   319,   319,   319,   319,   319,   319,
1439       142,   143,   144,   145,   146,   139,   147,   148,   156,   157,       319,   319,   319,   791,  1321,   345,    34,   346,  1220,   347,
1440       158,   173,   220,   175,   139,   139,   219,   162,   176,   177,       348,  1173,    35,   305,  1174,  1199,   422,   349,   340,   306,
1441       179,   -67,   181,   182,   139,   183,   139,   139,   184,   185,       423,   391,    37,   350,   351,   354,   352,   390,   424,   681,
1442       186,   187,   188,   192,   193,   198,   200,   203,   222,   213,      1214,  1215,   391,   420,   426,   701,    40,   352,   486,   392,
1443       216,     0,   155        41,   820,   590,   591,   308,   309,   310,   311,   312,   313,
1444         314,   315,   316,   317,  1334,    47,    48,    42,   590,   591,
1445         848,  1277,   854,   855,  1255,  1278,  1335,  1124,  1226,   865,
1446         605,   867,   606,  1279,  1227,    45,   389,    46,   870,   412,
1447        1574,  -219,  -219,  -219,   291,   607,  1575,  1614,   270,  1619,
1448          -4,    -4,   292,  1615,   484,  1620,   396,   400,   293,   895,
1449         297,   432,   503,   504,   544,   504,   298,   902,   903,   904,
1450         905,   906,   907,   908,   909,   910,   911,   912,   913,   294,
1451         919,   295,   684,   689,   590,   591,   296,   665,   923,   924,
1452         925,   926,   680,  1386,  1387,   299,   683,  1405,  1406,   608,
1453         609,   610,   611,   612,   613,   614,   615,   616,   617,   502,
1454         631,   632,   633,   634,   304,   637,  1099,  1100,    47,   512,
1455         734,   735,   382,   460,   479,   513,   387,   514,   515,   516,
1456         517,   518,   340,   519,   487,   520,   521,   522,   523,   524,
1457         488,   525,   526,   527,   528,   529,   384,   386,   489,   531,
1458         490,   532,   491,   493,   534,   492,   494,   495,   497,   538,
1459         539,   540,   496,   541,   542,   543,  1188,   498,   500,  1191,
1460         501,   505,   506,   507,   508,   509,   530,   548,   533,   549,
1461         535,   510,   551,   552,  1398,   553,   554,   511,   536,   537,
1462         545,   558,   559,   560,   561,   562,   563,   564,   565,   566,
1463         927,   546,   547,   308,   309,   310,   311,   312,   313,   314,
1464         315,   316,   317,   550,   499,   555,   499,   499,   499,   499,
1465         499,   499,   499,   499,   556,   557,   567,   568,   569,   571,
1466        1038,   570,   708,   572,  1466,   573,   579,   574,   575,   580,
1467         584,   585,   587,  1244,   581,   588,   586,   582,   577,   583,
1468         589,   578,   594,   595,   596,  1072,   597,   598,   599,   600,
1469         603,   928,   601,  1087,   308,   309,   310,   311,   312,   313,
1470         314,   315,   316,   317,   602,   271,   638,   639,  1066,   643,
1471         646,   647,   656,  1326,   705,   706,   308,   618,   619,   620,
1472         621,   622,   623,   624,   625,   626,   648,   655,   657,   662,
1473         658,   673,   674,   675,   696,   629,   715,   716,   717,   593,
1474         718,   723,   724,   719,   629,   726,   629,   728,   722,   727,
1475         732,   812,   733,   652,   653,   729,   730,   736,   731,   737,
1476         629,   738,   739,   740,   741,   743,   629,   742,   745,   760,
1477         744,   692,   693,   694,   695,   765,   766,   711,   714,   770,
1478         771,   772,   773,   778,   780,   484,   484,   308,   618,   619,
1479         620,   621,   622,   623,   624,   625,   626,   627,   779,   746,
1480         747,   748,   749,   750,   751,   752,   753,   754,   755,   756,
1481         757,   758,   759,   308,   309,   310,   311,   312,   313,   314,
1482         315,   316,   317,   781,   782,   786,   761,   762,   763,   764,
1483         708,   789,   787,   788,   792,   809,   768,   769,   813,   811,
1484         821,   822,   823,   825,   774,   775,   776,   826,   827,   777,
1485         829,   824,   629,   828,   830,  1205,   832,   833,   831,   783,
1486         834,   784,   835,   785,   308,   618,   619,   620,   621,   622,
1487         623,   624,   625,   626,   838,   793,   794,   795,   796,   797,
1488         798,   799,   800,   801,   802,   803,   804,   805,   806,   807,
1489         808,   710,   810,   839,   840,   842,   814,   815,   816,   817,
1490        1066,   841,   844,   845,   847,   846,   866,   843,   871,   318,
1491         320,   321,   322,   323,   324,   325,   326,   327,   872,   878,
1492         877,   876,   887,   879,   888,   889,   890,   891,   896,   577,
1493         577,   897,   898,   899,   901,   900,   918,   920,   921,   339,
1494         922,   930,   931,   933,   319,   319,   319,   319,   319,   319,
1495         319,   319,   319,   932,   934,   935,   936,   937,   938,   939,
1496         940,   941,   873,   857,   942,   945,   860,   861,   862,   863,
1497         943,   629,   944,   629,   946,   869,   947,   948,   950,   482,
1498         952,   875,   949,   951,   955,   953,   965,   954,   884,   886,
1499         966,   969,   970,   972,   971,   893,   818,   819,   976,   977,
1500         978,   979,   980,   983,   984,   985,   986,   987,   988,  1005,
1501        1007,  1008,  1009,  1016,  1018,  1024,  1017,  1020,   915,   665,
1502         917,  1019,   629,  1021,  1022,  1026,  1023,  1027,  1025,  1028,
1503        1029,   319,   319,  1031,  1030,   499,  1032,  1033,  1077,  1034,
1504        1047,  1037,  1036,  1035,  1052,  1048,   956,  1054,  1069,  1053,
1505        1055,  1068,  1067,   957,  1070,   958,   959,   960,  1071,   961,
1506         962,  1074,  1075,  1116,   963,   964,  1076,  1106,  1107,   968,
1507        1108,  1114,  1113,  1115,  1118,  1119,  1121,  1122,   975,  1117,
1508        1123,  1120,  1126,  1124,  1132,   875,  1125,   981,  1127,   982,
1509        1128,  1131,  1133,  1143,  1139,  1140,   708,   989,   990,   991,
1510         992,   993,   994,   995,   996,   997,   998,   999,  1000,  1142,
1511        1002,   929,  1004,  1144,  1006,  1146,  1147,  1150,  1010,  1011,
1512        1012,  1013,  1152,  1155,  1154,  1157,  1158,  1163,  1168,  1162,
1513        1172,  1169,  1175,  1170,  1177,  1176,  1180,  1171,  1178,  1179,
1514        1182,  1187,  1181,  1236,   499,   499,   319,  1183,  1185,  1184,
1515         339,  1194,  1186,  1237,  1240,  1211,  1268,  1193,  1196,  1208,
1516        1197,  1201,  1049,  1198,  1202,  1203,  1204,  1207,  1206,  1209,
1517        1040,  1041,  1042,   576,   875,  1045,   886,  1212,  1222,  1216,
1518        1051,  1217,  1223,  1228,  1231,  1230,  1063,  1232,  1229,  1233,
1519        1243,  1256,  1234,  1235,   893,  1239,  1238,  1241,  1247,  1242,
1520        1245,  1079,  1081,  1246,  1079,   629,  1091,  1093,  1248,  1079,
1521         711,   714,   714,  1063,  1249,  1063,  1250,  1251,  1014,  1015,
1522        1252,  1253,   886,   886,   886,   886,  1254,  1257,   649,   650,
1523        1533,  1259,  1260,  1262,  1134,  1135,  1263,  1136,  1137,  1138,
1524        1264,  1265,   669,  1266,   339,  1267,  1269,  1270,  1271,  1273,
1525        1274,  1272,  1282,   319,   319,   499,   713,  1280,  1275,  1276,
1526        1281,  1051,  1283,  1285,  1289,  1284,  1287,  1291,  1151,  1288,
1527        1290,  1292,  1303,  1293,  1294,  1156,  1295,  1305,  1296,  1297,
1528         482,   482,  1299,  1300,  1307,  1302,  1304,  1306,  1308,  1310,
1529        1309,  1311,  1159,  1312,  1313,  1314,  1533,  1315,  1317,  1318,
1530         710,  1316,  1319,  1322,  1164,  1165,  1166,  1167,  1324,  1325,
1531        1327,  1323,  1328,  1329,  1330,  1331,  1332,   339,   339,  1333,
1532        1336,  1337,  1338,  1340,   710,  1346,  1341,   710,  1339,   710,
1533        1342,  1347,  1343,  1344,  1348,  1345,  1195,   339,  1350,  1351,
1534         499,   499,  1349,  1352,  1353,  1354,  1355,  1358,   818,   819,
1535        1051,  1359,  1360,  1362,  1361,  1364,  1366,  1063,  1063,  1365,
1536        1368,  1369,  1367,  1371,  1373,  1375,  1370,  1372,  1081,  1374,
1537        1384,  1091,  1063,  1063,  1376,  1377,  1081,   884,   711,  1378,
1538        1381,   339,  1379,   319,   319,  1380,  1382,  1383,  1385,  1388,
1539        1393,  1389,  1390,  1391,  1392,  1396,  1400,  1402,  1394,  1401,
1540        1403,  1395,  1397,  1399,  1415,  1404,  1425,  1443,  1258,  1407,
1541        1414,  1426,  1408,  1261,  1418,  1409,  1413,  1417,  1420,  1416,
1542        1423,  1419,  1424,  1434,   576,   576,  1427,  1428,  1435,  1429,
1543        1436,  1437,  1430,  1431,  1433,  1438,  1439,  1440,  1441,  1286,
1544         669,  1442,   858,   859,  1444,  1445,  1448,  1447,   864,  1446,
1545        1449,  1450,   868,  1451,  1454,  1456,  1452,  1458,  1459,  1455,
1546        1460,  1461,  1465,  1463,   881,   881,  1468,  1470,  1472,  1467,
1547        1093,   710,   710,  1081,  1474,  1477,  1469,  1453,  1478,  1475,
1548        1473,  1479,  1480,  1457,  1481,  1482,   710,   710,  1462,  1484,
1549        1487,  1483,   710,  1485,  1488,   914,  1492,   916,  1486,  1496,
1550        1489,  1491,  1490,  1495,  1493,  1494,  1498,  1499,  1500,  1501,
1551        1503,  1502,  1504,  1505,  1506,  1508,  1510,  1507,  1512,  1513,
1552        1509,  1363,  1518,  1511,  1521,  1520,   339,   339,  1522,  1519,
1553        1517,  1524,   339,  1523,  1526,  1527,   339,  1525,  1537,  1528,
1554        1538,  1539,  1540,  1543,  1541,  1544,  1545,  1546,  1550,   339,
1555        1552,  1548,  1549,  1553,  1213,  1551,  1590,  1298,  1219,  1542,
1556        1562,  1554,  1577,  1564,  1547,  1560,  1555,  1557,  1558,  1559,
1557        1556,  1561,  1565,  1567,  1568,   893,  1566,  1569,  1570,  1571,
1558        1572,  1573,   339,  1576,   339,  1579,  1578,  1581,  1582,  1584,
1559        1580,  1585,  1587,  1432,  1588,  1591,  1589,  1583,  1586,  1593,
1560        1594,  1592,  1596,  1598,  1595,  1604,  1608,  1609,  1597,  1599,
1561        1603,  1600,  1607,  1613,  1622,  1606,  1617,  1611,  1624,  1610,
1562        1612,  1625,  1621,  1626,  1618,  1601,  1616,  1623,  1627,  1629,
1563        1602,  1628,  1630,  1631,  1605,  1638,  1640,  1639,  1642,  1632,
1564        1633,  1634,  1654,  1637,   711,  1635,  1659,  1039,  1636,  1644,
1565        1641,  1043,  1649,  1647,  1652,  1643,  1645,  1646,  1655,  1648,
1566        1656,  1497,  1650,  1056,  1651,  1653,  1657,  1658,  1661,  1660,
1567        1662,  1663,  1667,  1664,  1665,  1670,  1671,  1668,  1666,  1674,
1568        1693,  1083,  1673,  1675,  1669,  1679,  1096,  1672,  1680,   713,
1569         713,  1681,  1102,  1676,  1104,  1677,  1678,  1682,  1683,  1684,
1570        1685,  1686,  1687,  1688,  1689,  1694,  1691,   339,  1692,  1690,
1571        1698,   339,  1699,  1711,  1695,  1702,  1701,  1696,  1703,  1704,
1572        1697,  1700,  1705,  1710,   339,  1709,  1563,  1706,   666,   339,
1573         704,  1200,  1707,  1708,  1221,   307,     0,   428,   406,  1105,
1574         464,     0,   685,   407,     0,     0,     0,     0,     0,     0,
1575           0,   339,     0,     0,     0,     0,     0,     0,   710,   408,
1576           0,     0,     0,     0,   339,   465,     0,     0,     0,     0,
1577         339,     0,   339,     0,     0,     0,     0,     0,     0,     0,
1578           0,     0,     0,   466,     0,     0,     0,     0,   467,     0,
1579         468,     0,     0,     0,   469,   470,   471,   472,     0,     0,
1580           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1581           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1582           0,     0,     0,     0,   881,  1189,  1190,   881,     0,     0,
1583           0,     0,     0,     0,     0,     0,   473,     0,     0,     0,
1584           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1585         474,   475,     0,   418,     0,   480,     0,   339,   339,     0,
1586           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1587           0,     0,     0,     0,     0,     0,   409,   410,     0,     0,
1588           0,   411,   413,   430,     0,   669,   328,    52,    53,    54,
1589          55,    56,   329,   330,   331,   332,   333,   334,   335,   336,
1590         337,   338,    67,    68,    69,    70,    71,    72,    73,    74,
1591          75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1592          85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1593          95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1594         105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1595         115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1596         125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1597         135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1598         145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1599         155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1600         165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1601         175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1602         185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1603         195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1604         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1605         215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1606         225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1607         235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1608         245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1609         255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1610         265,   266,   267,   268,   269,   836,   414,   270,   328,    52,
1611          53,    54,    55,    56,   329,   330,   331,   332,   333,   334,
1612         335,   336,   337,   338,    67,    68,    69,    70,    71,    72,
1613          73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1614          83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1615          93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1616         103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1617         113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1618         123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1619         133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1620         143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
1621         153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
1622         163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
1623         173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1624         183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1625         193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1626         203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
1627         213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
1628         223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
1629         233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
1630         243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
1631         253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
1632         263,   264,   265,   266,   267,   268,   269,   481,   837,   270,
1633          51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1634          61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1635          71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1636          81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1637          91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1638         101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1639         111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
1640         121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
1641         131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1642         141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
1643         151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
1644         161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
1645         171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
1646         181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
1647         191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
1648         201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
1649         211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
1650         221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
1651         231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
1652         241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
1653         251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
1654         261,   262,   263,   264,   265,   266,   267,   268,   269,     0,
1655           0,   270,   328,    52,    53,    54,    55,    56,   329,   330,
1656         331,   332,   333,   334,   335,   336,   337,   338,    67,    68,
1657          69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1658          79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1659          89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1660          99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1661         109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1662         119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1663         129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1664         139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1665         149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1666         159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
1667         169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1668         179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1669         189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1670         199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1671         209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
1672         219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
1673         229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
1674         239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
1675         249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
1676         259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
1677         269,     0,     0,   270,   328,    52,    53,    54,  1057,  1058,
1678          57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1679          67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1680          77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1681          87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1682          97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1683         107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1684         117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1685         127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1686         137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1687         147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1688         157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
1689         167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1690         177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1691         187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1692         197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1693         207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
1694         217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
1695         227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
1696         237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
1697         247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
1698         257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
1699         267,   268,   269,   590,   591,   328,    52,    53,    54,    55,
1700          56,   329,   330,   331,   332,   333,   334,   335,   336,   337,
1701         338,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1702          76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1703          86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1704          96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1705         106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1706         116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1707         126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1708         136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1709         146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1710         156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1711         166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1712         176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1713         186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1714         196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1715         206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1716         216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1717         226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1718         236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1719         246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1720         256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
1721         266,   267,   268,   269,   328,    52,    53,    54,    55,    56,
1722          57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1723          67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1724          77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1725          87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1726          97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1727         107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1728         117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1729         127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1730         137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1731         147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1732         157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
1733         167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1734         177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1735         187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1736         197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1737         207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
1738         217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
1739         227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
1740         237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
1741         247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
1742         257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
1743         267,   268,   269,   328,   974,    53,    54,    55,    56,   329,
1744         330,   331,   332,   333,   334,   335,   336,   337,   338,    67,
1745          68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1746          78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1747          88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1748          98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1749         108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1750         118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1751         128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1752         138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
1753         148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
1754         158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
1755         168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1756         178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1757         188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1758         198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1759         208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1760         218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
1761         228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
1762         238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
1763         248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1764         258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
1765         268,   269,   328,  1001,    53,    54,    55,    56,   329,   330,
1766         331,   332,   333,   334,   335,   336,   337,   338,    67,    68,
1767          69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1768          79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1769          89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1770          99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1771         109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1772         119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1773         129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1774         139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1775         149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1776         159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
1777         169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1778         179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1779         189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1780         199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1781         209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
1782         219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
1783         229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
1784         239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
1785         249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
1786         259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
1787         269,   328,  1003,    53,    54,    55,    56,   329,   330,   331,
1788         332,   333,   334,   335,   336,   337,   338,    67,    68,    69,
1789          70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1790          80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1791          90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1792         100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1793         110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1794         120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1795         130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1796         140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1797         150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
1798         160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
1799         170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1800         180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1801         190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1802         200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1803         210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1804         220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1805         230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
1806         240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1807         250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
1808         260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
1809         328,  1145,    53,    54,    55,    56,   329,   330,   331,   332,
1810         333,   334,   335,   336,   337,   338,    67,    68,    69,    70,
1811          71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1812          81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1813          91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1814         101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1815         111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
1816         121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
1817         131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1818         141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
1819         151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
1820         161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
1821         171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
1822         181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
1823         191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
1824         201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
1825         211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
1826         221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
1827         231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
1828         241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
1829         251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
1830         261,   262,   263,   264,   265,   266,   267,   268,   269,   328,
1831        1160,    53,    54,    55,    56,   329,   330,   331,   332,   333,
1832         334,   335,   336,   337,   338,    67,    68,    69,    70,    71,
1833          72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1834          82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1835          92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1836         102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1837         112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1838         122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1839         132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1840         142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1841         152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1842         162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1843         172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1844         182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1845         192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1846         202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1847         212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1848         222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
1849         232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
1850         242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
1851         252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
1852         262,   263,   264,   265,   266,   267,   268,   269,   328,  1161,
1853          53,    54,    55,    56,   329,   330,   331,   332,   333,   334,
1854         335,   336,   337,   338,    67,    68,    69,    70,    71,    72,
1855          73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1856          83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1857          93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1858         103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1859         113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1860         123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1861         133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1862         143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
1863         153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
1864         163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
1865         173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1866         183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1867         193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1868         203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
1869         213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
1870         223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
1871         233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
1872         243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
1873         253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
1874         263,   264,   265,   266,   267,   268,   269
1875  };  };
1876    
1877  static const short yycheck[] =  static const yytype_int16 yycheck[] =
1878  {  {
1879        17,    31,    87,     0,     1,    28,    29,    30,    31,    23,        15,   784,    17,    18,    19,    20,    21,    22,    23,    24,
1880         7,     8,     9,    88,    11,    12,    13,    14,    15,    16,        25,    26,    27,    28,    29,    30,    31,    15,   750,   565,
1881        17,    18,    19,    20,    21,    22,     3,     6,     0,     6,       998,   277,   532,   982,   534,   502,   288,   775,   288,   285,
1882        23,     6,    25,    26,    27,     7,     8,    32,    33,    69,       286,   286,    32,   873,   540,   281,   282,   543,   548,   281,
1883        33,    34,    35,    36,    37,    23,    39,    40,     3,     6,       282,   288,     5,   549,   554,  1049,     1,   553,     3,    33,
1884         5,   126,   137,   128,   129,     3,     3,    35,     6,     6,        34,  1001,  1156,  1003,    37,    37,   964,    30,   523,    23,
1885        38,    78,    10,    10,    81,   140,   141,   142,   143,   144,      1164,    21,    22,   992,    19,    38,    21,    22,   997,   534,
1886       145,   146,    34,     6,    36,     3,     3,     3,     6,    41,        25,    23,   578,    19,   551,    30,    31,    22,    38,    20,
1887        42,    43,    44,    10,    10,    45,    46,     3,   105,     5,        35,    36,    37,   548,    39,    31,    27,    39,    23,   554,
1888         6,     3,     6,     9,     6,   180,     3,     6,     5,   184,        21,    37,    37,    23,    40,    34,    37,    27,    37,    40,
1889       175,     3,     6,     5,   189,   190,   181,   124,     4,     5,        31,    36,  1010,  1011,  1012,  1013,    89,    89,     9,    10,
1890        23,     6,     6,   130,     6,     6,    36,   134,   135,   136,        11,    12,    13,    14,    15,    16,    17,    18,    21,    21,
1891        37,    36,     7,    24,    24,    23,     3,     6,     6,    28,        22,    22,   962,    20,    27,    23,    22,    27,    31,    21,
1892       215,   148,   217,   218,     6,     6,     6,     6,     6,     6,       640,    32,    34,    33,  1138,    27,    38,    34,    36,    58,
1893         6,     6,     6,     6,     6,     6,     6,     6,   165,     6,        59,    60,    61,    62,    63,    64,    65,    66,    19,    20,
1894         6,     3,    28,    28,    28,    28,     5,     5,     5,     5,        21,    19,    34,    24,    25,    37,    19,  1261,    21,    31,
1895         5,   178,   179,     6,     6,     6,     6,     6,     6,   186,        31,    24,    30,    31,    32,    37,    37,    38,    31,    40,
1896        28,   188,     6,     6,     6,     6,     6,     6,     6,   196,        34,    27,    22,    37,    58,    59,    60,    61,    62,    63,
1897         6,     6,     6,     6,     6,   202,     6,     6,     5,     5,        64,    65,    66,    39,    34,    19,    30,    21,  1166,    23,
1898         5,     5,   214,     6,   211,   212,   213,   214,     6,     6,        24,    34,    36,    31,    37,  1145,    19,    31,    21,    37,
1899         6,     6,     6,     6,   221,     6,   223,   224,     6,     6,        23,    24,    23,    37,    38,   277,    40,    19,    31,   558,
1900         6,     6,     6,     5,     5,     5,     5,     5,   216,     6,      1160,  1161,    24,   285,   286,   564,    19,    40,   290,    31,
1901         6,    -1,   130        39,     6,   222,   223,     9,    10,    11,    12,    13,    14,
1902          15,    16,    17,    18,    22,   225,   226,    23,   222,   223,
1903         746,    19,   748,   749,    34,    23,    34,    37,    21,   759,
1904         512,   761,   512,    31,    27,    32,   280,     0,   764,   283,
1905          21,   224,   225,   226,    22,   512,    27,    21,   224,    21,
1906         225,   226,    23,    27,   289,    27,   281,   282,    23,   785,
1907          19,   286,    39,    40,    39,    40,    34,   793,   794,   795,
1908         796,   797,   798,   799,   800,   801,   802,   803,   804,    37,
1909         810,    38,   558,   558,   222,   223,    37,   784,   814,   815,
1910         816,   817,   558,    21,    22,    27,   558,    21,    22,   513,
1911         514,   515,   516,   517,   518,   519,   520,   521,   522,   344,
1912         524,   525,   526,   527,    20,   529,   999,  1000,   225,   354,
1913         590,   591,    31,   287,   288,   360,    31,   362,   363,   364,
1914         365,   366,    21,   368,    19,   370,   371,   372,   373,   374,
1915          19,   376,   377,   378,   379,   380,   278,   279,    38,   384,
1916          38,   386,    22,    33,   389,    38,    23,    23,    19,   394,
1917         395,   396,    37,   398,   399,   400,  1134,    39,    26,  1137,
1918          27,    26,    32,    42,    27,    23,    27,   412,    27,   414,
1919          39,    33,   417,   418,  1363,   420,   421,    33,    42,    27,
1920          26,   426,   427,   428,   429,   430,   431,   432,   433,   434,
1921           6,    42,    27,     9,    10,    11,    12,    13,    14,    15,
1922          16,    17,    18,    32,   318,    39,   320,   321,   322,   323,
1923         324,   325,   326,   327,    21,    27,    39,    39,    26,    30,
1924         956,    42,   998,    27,  1432,    38,    36,    33,    33,    38,
1925          21,    21,    20,  1195,    36,    19,    34,    40,   483,    38,
1926          22,   486,    22,    19,    19,   981,    25,    89,    22,    36,
1927          27,     6,    38,   993,     9,    10,    11,    12,    13,    14,
1928          15,    16,    17,    18,    30,    15,    22,    32,   975,    22,
1929          22,    89,    19,  1286,     7,     8,     9,    10,    11,    12,
1930          13,    14,    15,    16,    17,    18,    22,    22,    89,    37,
1931          22,    22,    26,    22,    32,   523,    22,    24,    19,  1006,
1932          89,    38,    27,    33,   532,    23,   534,    23,    36,    33,
1933          32,    23,    27,   541,   542,    38,    36,    27,    37,    27,
1934         548,    32,    27,    37,    27,    19,   554,    40,    32,    30,
1935          39,   559,   560,   561,   562,    27,    33,   565,   566,    27,
1936          27,    37,    27,    27,    37,   590,   591,     9,    10,    11,
1937          12,    13,    14,    15,    16,    17,    18,    19,    32,   604,
1938         605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
1939         615,   616,   617,     9,    10,    11,    12,    13,    14,    15,
1940          16,    17,    18,    27,    38,    27,   631,   632,   633,   634,
1941        1166,    39,    33,    27,    33,    19,   641,   642,    27,    39,
1942          27,    24,    32,    20,   649,   650,   651,    27,    21,   654,
1943          19,    37,   640,    23,    21,  1151,    27,    21,    43,   664,
1944          32,   666,    89,   668,     9,    10,    11,    12,    13,    14,
1945          15,    16,    17,    18,    33,   680,   681,   682,   683,   684,
1946         685,   686,   687,   688,   689,   690,   691,   692,   693,   694,
1947         695,   565,   697,    30,    32,    23,   701,   702,   703,   704,
1948        1167,    32,    23,    30,    24,    31,    30,    89,    89,   618,
1949         619,   620,   621,   622,   623,   624,   625,   626,    32,    23,
1950          33,    89,    33,    89,    32,    23,    89,    36,    33,   734,
1951         735,    89,    22,    22,    30,    38,    31,    22,    40,   271,
1952          22,    33,    23,    23,   618,   619,   620,   621,   622,   623,
1953         624,   625,   626,    32,    19,    89,    23,    19,    30,    23,
1954          20,    36,   767,   751,    23,    19,   754,   755,   756,   757,
1955          27,   759,    89,   761,    23,   763,    23,    32,    36,   289,
1956          23,   769,    27,    89,    23,    33,    27,    43,   776,   777,
1957          89,    27,    89,    27,    32,   783,   705,   706,    89,    23,
1958          32,    27,    39,    89,    27,    27,    27,    23,    33,    23,
1959          27,    23,    27,    89,    23,    89,    36,    30,   806,  1286,
1960         808,    32,   810,    27,    30,    23,    31,    27,    89,    30,
1961          32,   705,   706,    20,    33,   709,    30,    22,    89,    32,
1962          32,    36,    38,    40,    32,    31,   851,    22,    22,    33,
1963          32,    30,    33,   858,    32,   860,   861,   862,    31,   864,
1964         865,    33,    32,    22,   869,   870,    33,    33,    30,   874,
1965          89,    89,    33,    30,    32,    30,    40,    21,   883,    89,
1966          20,    89,    30,    37,    23,   873,    39,   892,    37,   894,
1967          37,    33,    21,    39,    37,    33,  1432,   902,   903,   904,
1968         905,   906,   907,   908,   909,   910,   911,   912,   913,    37,
1969         915,   820,   917,    34,   919,     5,    39,    23,   923,   924,
1970         925,   926,    39,    27,    89,    23,    33,    21,    39,    89,
1971          27,    24,    19,    89,    33,    21,    38,    89,    33,    23,
1972          23,    23,    38,    34,   818,   819,   820,    39,    27,    38,
1973         482,    22,    37,    89,    21,    24,    24,    38,    38,    33,
1974          38,    38,   967,    39,    39,    38,    32,    39,    38,    32,
1975         958,   959,   960,   483,   962,   963,   964,    32,    38,    33,
1976         968,    33,    27,    32,    32,    38,   974,    33,    39,    27,
1977          19,    19,    39,    36,   982,    36,    38,    32,    38,    36,
1978          36,   989,   990,    34,   992,   993,   994,   995,    34,   997,
1979         998,   999,  1000,  1001,    38,  1003,    36,    38,   927,   928,
1980          34,    38,  1010,  1011,  1012,  1013,    39,    23,   538,   539,
1981        1497,    39,    32,    34,  1039,  1040,    30,  1042,  1043,  1044,
1982          33,    32,   552,    33,   576,    32,    38,    36,    23,    21,
1983          32,    39,    23,   927,   928,   929,   566,    89,    39,    39,
1984          39,  1049,    38,    30,    89,    39,    39,    89,  1073,    39,
1985          39,    39,    30,    39,    89,  1080,    38,    24,    39,    39,
1986         590,   591,    38,    38,    24,    39,    39,    39,    33,    39,
1987          89,    33,  1097,    32,    23,    38,  1563,    31,    39,    32,
1988         974,    38,    27,    31,  1109,  1110,  1111,  1112,    19,    31,
1989          31,    89,    38,    22,    38,    22,    31,   649,   650,    38,
1990          34,    38,    30,    36,   998,    22,    38,  1001,    34,  1003,
1991          32,    31,    33,    32,    39,    33,  1141,   669,    89,    23,
1992        1014,  1015,    38,    89,    22,    25,    22,    33,  1057,  1058,
1993        1138,    23,    21,    23,    25,    23,    23,  1145,  1146,    89,
1994          23,    23,    89,    23,    39,    38,    89,    33,  1156,    89,
1995          21,  1159,  1160,  1161,    39,    33,  1164,  1165,  1166,    89,
1996          23,   713,    38,  1057,  1058,    38,    23,    37,    32,    27,
1997          36,    27,    27,    40,    27,    23,    22,    22,    32,    40,
1998          40,    33,    32,    32,    22,    32,    89,    89,  1213,    40,
1999          30,    27,    36,  1218,    33,    38,    38,    32,    26,    40,
2000          33,    38,    32,    23,   734,   735,    40,    38,    27,    38,
2001          23,    27,    39,    38,    38,    38,    26,    23,    27,  1244,
2002         750,    38,   752,   753,    26,    33,    30,    89,   758,    43,
2003          23,    27,   762,    38,    19,    27,    39,    23,    27,    40,
2004          21,    23,    32,    37,   774,   775,    21,    21,    19,    40,
2005        1258,  1145,  1146,  1261,    21,    19,    40,    89,    36,    21,
2006          40,    34,    23,    89,    40,    21,  1160,  1161,    89,    32,
2007          27,    89,  1166,    31,    40,   805,    23,   807,    32,    38,
2008          33,    32,    37,    31,    36,    34,    27,    23,    27,    23,
2009          32,    31,    27,    23,    26,    32,    23,    43,    27,    23,
2010          38,  1326,    19,    36,    23,    21,   858,   859,    39,    32,
2011          38,    37,   864,    34,    19,    19,   868,    89,    21,    89,
2012          21,    19,    32,    19,    21,    34,    32,    21,    19,   881,
2013          23,    33,    32,    23,  1159,    34,  1563,  1258,  1165,    89,
2014          23,    36,    24,    23,    89,    31,    38,    34,    36,    34,
2015          39,    32,    23,    23,    23,  1363,    34,    34,    32,    23,
2016          23,    23,   914,    39,   916,    30,    34,    89,    34,    19,
2017          37,    19,    19,  1398,    89,    30,    36,    38,    37,    19,
2018          32,    89,    89,    32,    30,    39,    42,    22,    33,    32,
2019          34,    33,    31,    23,    19,    36,    24,    34,    22,    37,
2020          36,    19,    34,    23,    38,    89,    39,    38,    23,    19,
2021          89,    27,    19,    30,    89,    19,    89,    36,    31,    33,
2022          32,    32,    19,    32,  1432,    33,    19,   957,    33,    31,
2023          36,   961,    24,    31,    24,    38,    37,    36,    22,    39,
2024          27,  1466,    38,   973,    39,    36,    23,    23,    19,    38,
2025          23,    32,    19,    33,    32,    40,    38,    31,    33,    23,
2026          89,   991,    32,    31,    36,    31,   996,    36,    23,   999,
2027        1000,    27,  1002,    38,  1004,    38,    38,    23,    23,    22,
2028          32,    23,    23,    23,    38,    38,    36,  1039,    36,    40,
2029          23,  1043,    23,    22,    38,    23,    26,    36,    23,    36,
2030          38,    37,    36,    30,  1056,    37,  1531,    33,   551,  1061,
2031         564,  1146,    36,    36,  1167,    50,    -1,   286,   283,  1006,
2032         288,    -1,   558,   283,    -1,    -1,    -1,    -1,    -1,    -1,
2033          -1,  1083,    -1,    -1,    -1,    -1,    -1,    -1,  1432,   283,
2034          -1,    -1,    -1,    -1,  1096,   288,    -1,    -1,    -1,    -1,
2035        1102,    -1,  1104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2036          -1,    -1,    -1,   288,    -1,    -1,    -1,    -1,   288,    -1,
2037         288,    -1,    -1,    -1,   288,   288,   288,   288,    -1,    -1,
2038          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2039          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2040          -1,    -1,    -1,    -1,  1134,  1135,  1136,  1137,    -1,    -1,
2041          -1,    -1,    -1,    -1,    -1,    -1,   288,    -1,    -1,    -1,
2042          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2043         288,   288,    -1,   284,    -1,   288,    -1,  1189,  1190,    -1,
2044          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2045          -1,    -1,    -1,    -1,    -1,    -1,   283,   283,    -1,    -1,
2046          -1,   283,   283,   286,    -1,  1195,     3,     4,     5,     6,
2047           7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2048          17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
2049          27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2050          37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2051          47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2052          57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2053          67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2054          77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2055          87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2056          97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2057         107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
2058         117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2059         127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2060         137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2061         147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
2062         157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
2063         167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
2064         177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
2065         187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
2066         197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
2067         207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
2068         217,   218,   219,   220,   221,   222,   283,   224,     3,     4,
2069           5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2070          15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2071          25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2072          35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2073          45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2074          55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2075          65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2076          75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2077          85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2078          95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2079         105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2080         115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2081         125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2082         135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2083         145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2084         155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2085         165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2086         175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2087         185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2088         195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2089         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2090         215,   216,   217,   218,   219,   220,   221,   288,   223,   224,
2091           3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2092          13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2093          23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
2094          33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2095          43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2096          53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2097          63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2098          73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2099          83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2100          93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2101         103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2102         113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2103         123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2104         133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2105         143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2106         153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2107         163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2108         173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
2109         183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
2110         193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2111         203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2112         213,   214,   215,   216,   217,   218,   219,   220,   221,    -1,
2113          -1,   224,     3,     4,     5,     6,     7,     8,     9,    10,
2114          11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2115          21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
2116          31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2117          41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2118          51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2119          61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2120          71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2121          81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2122          91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2123         101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2124         111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2125         121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
2126         131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2127         141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2128         151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2129         161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2130         171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2131         181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
2132         191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
2133         201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
2134         211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
2135         221,    -1,    -1,   224,     3,     4,     5,     6,     7,     8,
2136           9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2137          19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
2138          29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2139          39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2140          49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2141          59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2142          69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2143          79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2144          89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
2145          99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2146         109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
2147         119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
2148         129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2149         139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2150         149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2151         159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2152         169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2153         179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
2154         189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
2155         199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
2156         209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
2157         219,   220,   221,   222,   223,     3,     4,     5,     6,     7,
2158           8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2159          18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
2160          28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2161          38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2162          48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2163          58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
2164          68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
2165          78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
2166          88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
2167          98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
2168         108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
2169         118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
2170         128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
2171         138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2172         148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
2173         158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2174         168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
2175         178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
2176         188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
2177         198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
2178         208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
2179         218,   219,   220,   221,     3,     4,     5,     6,     7,     8,
2180           9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2181          19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
2182          29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2183          39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2184          49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2185          59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2186          69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2187          79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2188          89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
2189          99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2190         109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
2191         119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
2192         129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2193         139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2194         149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2195         159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2196         169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2197         179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
2198         189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
2199         199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
2200         209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
2201         219,   220,   221,     3,     4,     5,     6,     7,     8,     9,
2202          10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2203          20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2204          30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
2205          40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2206          50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2207          60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2208          70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
2209          80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
2210          90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
2211         100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
2212         110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
2213         120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
2214         130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
2215         140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
2216         150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
2217         160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
2218         170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
2219         180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
2220         190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
2221         200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
2222         210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2223         220,   221,     3,     4,     5,     6,     7,     8,     9,    10,
2224          11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2225          21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
2226          31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2227          41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2228          51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2229          61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2230          71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2231          81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2232          91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2233         101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2234         111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2235         121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
2236         131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2237         141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2238         151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2239         161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2240         171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2241         181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
2242         191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
2243         201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
2244         211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
2245         221,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2246          12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2247          22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
2248          32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2249          42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2250          52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2251          62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2252          72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2253          82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2254          92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2255         102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
2256         112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2257         122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2258         132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2259         142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2260         152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2261         162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2262         172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2263         182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2264         192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
2265         202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
2266         212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
2267           3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2268          13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2269          23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
2270          33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2271          43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2272          53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2273          63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2274          73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2275          83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2276          93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2277         103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2278         113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2279         123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2280         133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2281         143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2282         153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2283         163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2284         173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
2285         183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
2286         193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2287         203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2288         213,   214,   215,   216,   217,   218,   219,   220,   221,     3,
2289           4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2290          14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2291          24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2292          34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2293          44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
2294          54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
2295          64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
2296          74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
2297          84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
2298          94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
2299         104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
2300         114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
2301         124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
2302         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
2303         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
2304         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
2305         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
2306         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
2307         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
2308         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
2309         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
2310         214,   215,   216,   217,   218,   219,   220,   221,     3,     4,
2311           5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2312          15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2313          25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2314          35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2315          45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2316          55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2317          65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2318          75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2319          85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2320          95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2321         105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2322         115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2323         125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2324         135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2325         145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2326         155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2327         165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2328         175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2329         185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2330         195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2331         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2332         215,   216,   217,   218,   219,   220,   221
2333  };  };
2334    
2335  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2336     symbol of state STATE-NUM.  */     symbol of state STATE-NUM.  */
2337  static const unsigned char yystos[] =  static const yytype_uint16 yystos[] =
2338  {  {
2339         0,     1,     9,    11,    12,    13,    14,    15,    16,    17,         0,     1,     3,    19,    21,    22,    25,    30,    31,    35,
2340        18,    19,    20,    21,    22,    48,    49,    50,    51,     6,        36,    37,    39,   228,   229,   230,   231,   286,   287,   288,
2341         6,     6,     6,     6,     6,     6,     6,     6,     6,     6,       289,   290,   291,   292,   293,   294,   299,   300,   301,   302,
2342         0,     7,     8,     3,     5,     6,     9,    75,    23,    23,       303,   365,   369,    22,    30,    36,    23,    23,    27,    33,
2343        25,    26,    27,    33,    34,    35,    36,    37,    39,    40,        19,    39,    23,    23,    39,    32,     0,   225,   226,   284,
2344        52,    36,    54,    36,    55,    37,    60,    32,    33,    56,       285,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2345        23,    23,    35,    38,    53,    24,    24,    23,    49,     7,        12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2346         3,     6,     6,     6,     6,     6,     6,     6,     6,     6,        22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
2347         6,     6,     6,     6,     6,     6,     6,     6,     6,    49,        32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2348        28,    29,    30,    31,    28,    28,    28,    28,    28,    28,        42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2349        75,     5,     5,    61,    73,    74,    75,    62,    71,    75,        52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2350         5,    65,    34,    36,    41,    42,    43,    44,    57,     5,        62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2351         5,     5,    67,    70,    74,    65,     6,     6,     6,     6,        72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2352         6,     6,     6,     6,     6,     6,     6,     6,     5,    75,        82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2353         6,     6,     6,     6,     6,     6,     6,     6,     6,    65,        92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2354        45,    46,    59,    65,    65,    71,     5,     5,     5,    75,       102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
2355        75,    58,    75,     5,    66,    74,    65,    65,    65,    65,       112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2356        65,    65,    65,     5,    75,     6,     6,     6,     6,     6,       122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2357        10,     6,     6,     6,     6,     6,     6,     6,     6,     6,       132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2358        10,    65,     5,     5,    75,    75,    74,    65,     5,    68,       142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2359         5,    72,    74,     5,    69,    63,    75,     4,     5,    64,       152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2360        75,    74,    74,     6,     6,    10,     6,     6,    10,    75,       162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2361        58,    74,    68,    74,    74       172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2362         182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2363         192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
2364         202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
2365         212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
2366         224,   275,   278,   279,   280,   283,   283,   283,   283,   283,
2367         283,   283,   283,   283,   283,   283,   283,   283,   283,   283,
2368         283,    22,    23,    23,    37,    38,    37,    19,    34,    27,
2369          31,    37,    30,    38,    20,    31,    37,   284,     9,    10,
2370          11,    12,    13,    14,    15,    16,    17,    18,   277,   278,
2371         277,   277,   277,   277,   277,   277,   277,   277,     3,     9,
2372          10,    11,    12,    13,    14,    15,    16,    17,    18,   280,
2373          21,    31,   232,   304,   348,    19,    21,    23,    24,    31,
2374          37,    38,    40,   238,   304,   305,   306,   307,   324,   325,
2375         328,   333,   334,   335,   336,   337,   338,   340,   342,   343,
2376         344,   345,   346,   347,   348,   349,   350,   351,   356,   357,
2377         358,   359,    31,   235,   346,   236,   346,    31,   242,   347,
2378          19,    24,    31,   240,   334,   344,   356,   243,   334,   344,
2379         356,    19,    21,    24,    31,   249,   305,   306,   307,   333,
2380         340,   343,   347,   349,   357,    27,   244,   327,   328,   237,
2381         304,   348,    19,    23,    31,   239,   304,   332,   337,   341,
2382         342,   348,   356,   359,   368,    19,    20,    21,    24,    25,
2383          31,    37,    38,    40,   233,   309,   310,   311,   312,   313,
2384         314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
2385         324,   326,   366,   234,   309,   310,   311,   312,   313,   314,
2386         315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
2387         326,   366,   275,   281,   283,   241,   304,    19,    19,    38,
2388          38,    22,    38,    33,    23,    23,    37,    19,    39,   278,
2389          26,    27,   283,    39,    40,    26,    32,    42,    27,    23,
2390          33,    33,   283,   283,   283,   283,   283,   283,   283,   283,
2391         283,   283,   283,   283,   283,   283,   283,   283,   283,   283,
2392          27,   283,   283,    27,   283,    39,    42,    27,   283,   283,
2393         283,   283,   283,   283,    39,    26,    42,    27,   283,   283,
2394          32,   283,   283,   283,   283,    39,    21,    27,   283,   283,
2395         283,   283,   283,   283,   283,   283,   283,    39,    39,    26,
2396          42,    30,    27,    38,    33,    33,   275,   283,   283,    36,
2397          38,    36,    40,    38,    21,    21,    34,    20,    19,    22,
2398         222,   223,   269,   282,    22,    19,    19,    25,    89,    22,
2399          36,    38,    30,    27,   308,   321,   322,   323,   308,   308,
2400         308,   308,   308,   308,   308,   308,   308,   308,    10,    11,
2401          12,    13,    14,    15,    16,    17,    18,    19,   259,   279,
2402         295,   308,   308,   308,   308,   264,   279,   308,    22,    32,
2403         246,   298,   259,    22,   259,   295,    22,    89,    22,   275,
2404         275,   264,   279,   279,   264,    22,    19,    89,    22,   259,
2405         295,   264,    37,   250,   268,   282,   298,   251,   267,   275,
2406         264,   259,   295,    22,    26,    22,    19,    31,    37,   245,
2407         334,   338,   339,   344,   348,   351,   352,   353,   354,   359,
2408         361,   362,   279,   279,   279,   279,    32,   367,    19,    30,
2409          31,   338,   355,   360,   367,     7,     8,   263,   276,   277,
2410         278,   279,   274,   275,   279,    22,    24,    19,    89,    33,
2411          22,    37,    36,    38,    27,   264,    23,    33,    23,    38,
2412          36,    37,    32,    27,   281,   281,    27,    27,    32,    27,
2413          37,    27,    40,    19,    39,    32,   283,   283,   283,   283,
2414         283,   283,   283,   283,   283,   283,   283,   283,   283,   283,
2415          30,   283,   283,   283,   283,    27,    33,   259,   283,   283,
2416          27,    27,    37,    27,   283,   283,   283,   283,    27,    32,
2417          37,    27,    38,   283,   283,   283,    27,    33,    27,    39,
2418          27,    39,    33,   283,   283,   283,   283,   283,   283,   283,
2419         283,   283,   283,   283,   283,   283,   283,   283,   283,    19,
2420         283,    39,    23,    27,   283,   283,   283,   283,   277,   277,
2421           6,    27,    24,    32,    37,    20,    27,    21,    23,    19,
2422          21,    43,    27,    21,    32,    89,   222,   223,    33,    30,
2423          32,    32,    23,    89,    23,    30,    31,    24,   264,    20,
2424          34,   248,   363,   364,   264,   264,   267,   279,   275,   275,
2425         279,   279,   279,   279,   275,   259,    30,   259,   275,   279,
2426         264,    89,    32,   283,   260,   279,    89,    33,    23,    89,
2427         247,   275,   247,   262,   279,   266,   279,    33,    32,    23,
2428          89,    36,   265,   279,   268,   264,    33,    89,    22,    22,
2429          38,    30,   264,   264,   264,   264,   264,   264,   264,   264,
2430         264,   264,   264,   264,   275,   279,   275,   279,    31,   259,
2431          22,    40,    22,   264,   264,   264,   264,     6,     6,   277,
2432          33,    23,    32,    23,    19,    89,    23,    19,    30,    23,
2433          20,    36,    23,    27,    89,    19,    23,    23,    32,    27,
2434          36,    89,    23,    33,    43,    23,   283,   283,   283,   283,
2435         283,   283,   283,   283,   283,    27,    89,   260,   283,    27,
2436          89,    32,    27,   283,     4,   283,    89,    23,    32,    27,
2437          39,   283,   283,    89,    27,    27,    27,    23,    33,   283,
2438         283,   283,   283,   283,   283,   283,   283,   283,   283,   283,
2439         283,     4,   283,     4,   283,    23,   283,    27,    23,    27,
2440         283,   283,   283,   283,   277,   277,    89,    36,    23,    32,
2441          30,    27,    30,    31,    89,    89,    23,    27,    30,    32,
2442          33,    20,    30,    22,    32,    40,    38,    36,   264,   275,
2443         279,   279,   279,   275,   260,   279,   266,    32,    31,   283,
2444         261,   279,    32,    33,    22,    32,   275,     7,     8,   272,
2445         273,   275,   276,   279,   282,   271,   282,    33,    30,    22,
2446          32,    31,   264,   265,    33,    32,    33,    89,   253,   279,
2447         254,   279,   255,   275,   253,    22,    32,   259,   296,   297,
2448         256,   279,   257,   279,   295,   258,   275,   253,   263,   274,
2449         274,   272,   275,   272,   275,   269,    33,    30,    89,   266,
2450         266,   266,   266,    33,    89,    30,    22,    89,    32,    30,
2451          89,    40,    21,    20,    37,    39,    30,    37,    37,    34,
2452          37,    33,    23,    21,   283,   283,   283,   283,   283,    37,
2453          33,   261,    37,    39,    34,     4,     5,    39,    34,    37,
2454          23,   283,    39,    34,    89,    27,   283,    23,    33,   283,
2455           4,     4,    89,    21,   283,   283,   283,   283,    39,    24,
2456          89,    89,    27,    34,    37,    19,    21,    33,    33,    23,
2457          38,    38,    23,    39,    38,    27,    37,    23,   247,   275,
2458         275,   247,   261,    38,    22,   283,    38,    38,    39,   272,
2459         273,    38,    39,    38,    32,   264,    38,    39,    33,    32,
2460         254,    24,    32,   256,   272,   272,    33,    33,   254,   262,
2461         263,   271,    38,    27,    21,    27,    21,    27,    32,    39,
2462          38,    32,    33,    27,    39,    36,    34,    89,    38,    36,
2463          21,    32,    36,    19,   267,    36,    34,    38,    34,    38,
2464          36,    38,    34,    38,    39,    34,    19,    23,   283,    39,
2465          32,   283,    34,    30,    33,    32,    33,    32,    24,    38,
2466          36,    23,    39,    21,    32,    39,    39,    19,    23,    31,
2467          89,    39,    23,    38,    39,    30,   283,    39,    39,    89,
2468          39,    89,    39,    39,    89,    38,    39,    39,   257,    38,
2469          38,   254,    39,    30,    39,    24,    39,    24,    33,    89,
2470          39,    33,    32,    23,    38,    31,    38,    39,    32,    27,
2471          22,    34,    31,    89,    19,    31,   268,    31,    38,    22,
2472          38,    22,    31,    38,    22,    34,    34,    38,    30,    34,
2473          36,    38,    32,    33,    32,    33,    22,    31,    39,    38,
2474          89,    23,    89,    22,    25,    22,    23,    36,    33,    23,
2475          21,    25,    23,   283,    23,    89,    23,    89,    23,    23,
2476          89,    23,    33,    39,    89,    38,    39,    33,    89,    38,
2477          38,    23,    23,    37,    21,    32,    21,    22,    27,    27,
2478          27,    40,    27,    36,    32,    33,    23,    32,   265,    32,
2479          22,    40,    22,    40,    32,    21,    22,    40,    36,    38,
2480          21,    34,    38,    38,    30,    22,    40,    32,    33,    38,
2481          26,    23,    36,    33,    32,    89,    27,    40,    38,    38,
2482          39,    38,   283,    38,    23,    27,    23,    27,    38,    26,
2483          23,    27,    38,    89,    26,    33,    43,    89,    30,    23,
2484          27,    38,    39,    89,    19,    40,    27,    89,    23,    27,
2485          21,    23,    89,    37,    89,    32,   263,    40,    21,    40,
2486          21,    89,    19,    40,    21,    21,    38,    19,    36,    34,
2487          23,    40,    21,    89,    32,    31,    32,    27,    40,    33,
2488          37,    32,    23,    36,    34,    31,    38,   283,    27,    23,
2489          27,    23,    31,    32,    27,    23,    26,    43,    32,    38,
2490          23,    36,    27,    23,    21,    27,    31,    38,    19,    32,
2491          21,    23,    39,    34,    37,    89,    19,    19,    89,    33,
2492          34,   252,   270,   282,   329,   330,   331,    21,    21,    19,
2493          32,    21,    89,    19,    34,    32,    21,    89,    33,    32,
2494          19,    34,    23,    23,    36,    38,    39,    34,    36,    34,
2495          31,    32,    23,   283,    23,    23,    34,    23,    23,    34,
2496          32,    23,    23,    23,    21,    27,    39,    24,    34,    30,
2497          37,    89,    34,    38,    19,    19,    37,    19,    89,    36,
2498         270,    30,    89,    19,    32,    30,    89,    33,    32,    32,
2499          33,    89,    89,    34,    39,    89,    36,    31,    42,    22,
2500          37,    34,    36,    23,    21,    27,    39,    24,    38,    21,
2501          27,    34,    19,    38,    22,    19,    23,    23,    27,    19,
2502          19,    30,    33,    32,    32,    33,    33,    32,    19,    36,
2503          89,    36,    31,    38,    31,    37,    36,    31,    39,    24,
2504          38,    39,    24,    36,    19,    22,    27,    23,    23,    19,
2505          38,    19,    23,    32,    33,    32,    33,    19,    31,    36,
2506          40,    38,    36,    32,    23,    31,    38,    38,    38,    31,
2507          23,    27,    23,    23,    22,    32,    23,    23,    23,    38,
2508          40,    36,    36,    89,    38,    38,    36,    38,    23,    23,
2509          37,    26,    23,    23,    36,    36,    33,    36,    36,    37,
2510          30,    22
2511  };  };
2512    
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)  
 # define YYSIZE_T __SIZE_TYPE__  
 #endif  
 #if ! defined (YYSIZE_T) && defined (size_t)  
 # define YYSIZE_T size_t  
 #endif  
 #if ! defined (YYSIZE_T)  
 # if defined (__STDC__) || defined (__cplusplus)  
 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */  
 #  define YYSIZE_T size_t  
 # endif  
 #endif  
 #if ! defined (YYSIZE_T)  
 # define YYSIZE_T unsigned int  
 #endif  
   
2513  #define yyerrok         (yyerrstatus = 0)  #define yyerrok         (yyerrstatus = 0)
2514  #define yyclearin       (yychar = YYEMPTY)  #define yyclearin       (yychar = YYEMPTY)
2515  #define YYEMPTY         (-2)  #define YYEMPTY         (-2)
# Line 680  static const unsigned char yystos[] = Line 2517  static const unsigned char yystos[] =
2517    
2518  #define YYACCEPT        goto yyacceptlab  #define YYACCEPT        goto yyacceptlab
2519  #define YYABORT         goto yyabortlab  #define YYABORT         goto yyabortlab
2520  #define YYERROR         goto yyerrlab1  #define YYERROR         goto yyerrorlab
2521    
2522    
2523  /* Like YYERROR except do call yyerror.  This remains here temporarily  /* Like YYERROR except do call yyerror.  This remains here temporarily
# Line 698  do                                                             \ Line 2535  do                                                             \
2535        yychar = (Token);                                         \        yychar = (Token);                                         \
2536        yylval = (Value);                                         \        yylval = (Value);                                         \
2537        yytoken = YYTRANSLATE (yychar);                           \        yytoken = YYTRANSLATE (yychar);                           \
2538        YYPOPSTACK;                                               \        YYPOPSTACK (1);                                           \
2539        goto yybackup;                                            \        goto yybackup;                                            \
2540      }                                                           \      }                                                           \
2541    else                                                          \    else                                                          \
2542      {                                                           \      {                                                           \
2543        yyerror ("syntax error: cannot back up");\        yyerror (YY_("syntax error: cannot back up")); \
2544        YYERROR;                                                  \        YYERROR;                                                  \
2545      }                                                           \      }                                                           \
2546  while (0)  while (YYID (0))
2547    
2548    
2549  #define YYTERROR        1  #define YYTERROR        1
2550  #define YYERRCODE       256  #define YYERRCODE       256
2551    
 /* YYLLOC_DEFAULT -- Compute the default location (before the actions  
    are run).  */  
2552    
2553    /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2554       If N is 0, then set CURRENT to the empty location which ends
2555       the previous symbol: RHS[0] (always defined).  */
2556    
2557    #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2558  #ifndef YYLLOC_DEFAULT  #ifndef YYLLOC_DEFAULT
2559  # define YYLLOC_DEFAULT(Current, Rhs, N)         \  # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2560    Current.first_line   = Rhs[1].first_line;      \      do                                                                  \
2561    Current.first_column = Rhs[1].first_column;    \        if (YYID (N))                                                    \
2562    Current.last_line    = Rhs[N].last_line;       \          {                                                               \
2563    Current.last_column  = Rhs[N].last_column;            (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2564              (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2565              (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2566              (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2567            }                                                               \
2568          else                                                              \
2569            {                                                               \
2570              (Current).first_line   = (Current).last_line   =              \
2571                YYRHSLOC (Rhs, 0).last_line;                                \
2572              (Current).first_column = (Current).last_column =              \
2573                YYRHSLOC (Rhs, 0).last_column;                              \
2574            }                                                               \
2575        while (YYID (0))
2576  #endif  #endif
2577    
2578    
2579    /* YY_LOCATION_PRINT -- Print the location on the stream.
2580       This macro was not mandated originally: define only if we know
2581       we won't break user code: when these are the locations we know.  */
2582    
2583    #ifndef YY_LOCATION_PRINT
2584    # if YYLTYPE_IS_TRIVIAL
2585    #  define YY_LOCATION_PRINT(File, Loc)                  \
2586         fprintf (File, "%d.%d-%d.%d",                      \
2587                  (Loc).first_line, (Loc).first_column,     \
2588                  (Loc).last_line,  (Loc).last_column)
2589    # else
2590    #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2591    # endif
2592    #endif
2593    
2594    
2595  /* YYLEX -- calling `yylex' with the right arguments.  */  /* YYLEX -- calling `yylex' with the right arguments.  */
2596    
2597  #ifdef YYLEX_PARAM  #ifdef YYLEX_PARAM
# Line 742  while (0) Line 2612  while (0)
2612  do {                                            \  do {                                            \
2613    if (yydebug)                                  \    if (yydebug)                                  \
2614      YYFPRINTF Args;                             \      YYFPRINTF Args;                             \
2615  } while (0)  } while (YYID (0))
2616    
2617  # define YYDSYMPRINT(Args)                      \  # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2618  do {                                            \  do {                                                                      \
2619    if (yydebug)                                  \    if (yydebug)                                                            \
2620      yysymprint Args;                            \      {                                                                     \
2621  } while (0)        YYFPRINTF (stderr, "%s ", Title);                                   \
2622          yy_symbol_print (stderr,                                            \
2623                      Type, Value); \
2624          YYFPRINTF (stderr, "\n");                                           \
2625        }                                                                     \
2626    } while (YYID (0))
2627    
2628  # define YYDSYMPRINTF(Title, Token, Value, Location)            \  
2629  do {                                                            \  /*--------------------------------.
2630    if (yydebug)                                                  \  | Print this symbol on YYOUTPUT.  |
2631      {                                                           \  `--------------------------------*/
2632        YYFPRINTF (stderr, "%s ", Title);                         \  
2633        yysymprint (stderr,                                       \  /*ARGSUSED*/
2634                    Token, Value);        \  #if (defined __STDC__ || defined __C99__FUNC__ \
2635        YYFPRINTF (stderr, "\n");                                 \       || defined __cplusplus || defined _MSC_VER)
2636      }                                                           \  static void
2637  } while (0)  yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2638    #else
2639    static void
2640    yy_symbol_value_print (yyoutput, yytype, yyvaluep)
2641        FILE *yyoutput;
2642        int yytype;
2643        YYSTYPE const * const yyvaluep;
2644    #endif
2645    {
2646      if (!yyvaluep)
2647        return;
2648    # ifdef YYPRINT
2649      if (yytype < YYNTOKENS)
2650        YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2651    # else
2652      YYUSE (yyoutput);
2653    # endif
2654      switch (yytype)
2655        {
2656          default:
2657            break;
2658        }
2659    }
2660    
2661    
2662    /*--------------------------------.
2663    | Print this symbol on YYOUTPUT.  |
2664    `--------------------------------*/
2665    
2666    #if (defined __STDC__ || defined __C99__FUNC__ \
2667         || defined __cplusplus || defined _MSC_VER)
2668    static void
2669    yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2670    #else
2671    static void
2672    yy_symbol_print (yyoutput, yytype, yyvaluep)
2673        FILE *yyoutput;
2674        int yytype;
2675        YYSTYPE const * const yyvaluep;
2676    #endif
2677    {
2678      if (yytype < YYNTOKENS)
2679        YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2680      else
2681        YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2682    
2683      yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2684      YYFPRINTF (yyoutput, ")");
2685    }
2686    
2687  /*------------------------------------------------------------------.  /*------------------------------------------------------------------.
2688  | yy_stack_print -- Print the state stack from its BOTTOM up to its |  | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2689  | TOP (cinluded).                                                   |  | TOP (included).                                                   |
2690  `------------------------------------------------------------------*/  `------------------------------------------------------------------*/
2691    
2692  #if defined (__STDC__) || defined (__cplusplus)  #if (defined __STDC__ || defined __C99__FUNC__ \
2693         || defined __cplusplus || defined _MSC_VER)
2694  static void  static void
2695  yy_stack_print (short *bottom, short *top)  yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
2696  #else  #else
2697  static void  static void
2698  yy_stack_print (bottom, top)  yy_stack_print (bottom, top)
2699      short *bottom;      yytype_int16 *bottom;
2700      short *top;      yytype_int16 *top;
2701  #endif  #endif
2702  {  {
2703    YYFPRINTF (stderr, "Stack now");    YYFPRINTF (stderr, "Stack now");
2704    for (/* Nothing. */; bottom <= top; ++bottom)    for (; bottom <= top; ++bottom)
2705      YYFPRINTF (stderr, " %d", *bottom);      YYFPRINTF (stderr, " %d", *bottom);
2706    YYFPRINTF (stderr, "\n");    YYFPRINTF (stderr, "\n");
2707  }  }
# Line 786  yy_stack_print (bottom, top) Line 2710  yy_stack_print (bottom, top)
2710  do {                                                            \  do {                                                            \
2711    if (yydebug)                                                  \    if (yydebug)                                                  \
2712      yy_stack_print ((Bottom), (Top));                           \      yy_stack_print ((Bottom), (Top));                           \
2713  } while (0)  } while (YYID (0))
2714    
2715    
2716  /*------------------------------------------------.  /*------------------------------------------------.
2717  | Report that the YYRULE is going to be reduced.  |  | Report that the YYRULE is going to be reduced.  |
2718  `------------------------------------------------*/  `------------------------------------------------*/
2719    
2720  #if defined (__STDC__) || defined (__cplusplus)  #if (defined __STDC__ || defined __C99__FUNC__ \
2721         || defined __cplusplus || defined _MSC_VER)
2722  static void  static void
2723  yy_reduce_print (int yyrule)  yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
2724  #else  #else
2725  static void  static void
2726  yy_reduce_print (yyrule)  yy_reduce_print (yyvsp, yyrule)
2727        YYSTYPE *yyvsp;
2728      int yyrule;      int yyrule;
2729  #endif  #endif
2730  {  {
2731      int yynrhs = yyr2[yyrule];
2732    int yyi;    int yyi;
2733    unsigned int yylineno = yyrline[yyrule];    unsigned long int yylno = yyrline[yyrule];
2734    YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2735               yyrule - 1, yylineno);               yyrule - 1, yylno);
2736    /* Print the symbols being reduced, and their result.  */    /* The symbols being reduced.  */
2737    for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)    for (yyi = 0; yyi < yynrhs; yyi++)
2738      YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);      {
2739    YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);        fprintf (stderr, "   $%d = ", yyi + 1);
2740          yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2741                           &(yyvsp[(yyi + 1) - (yynrhs)])
2742                                           );
2743          fprintf (stderr, "\n");
2744        }
2745  }  }
2746    
2747  # define YY_REDUCE_PRINT(Rule)          \  # define YY_REDUCE_PRINT(Rule)          \
2748  do {                                    \  do {                                    \
2749    if (yydebug)                          \    if (yydebug)                          \
2750      yy_reduce_print (Rule);             \      yy_reduce_print (yyvsp, Rule); \
2751  } while (0)  } while (YYID (0))
2752    
2753  /* Nonzero means print parse trace.  It is left uninitialized so that  /* Nonzero means print parse trace.  It is left uninitialized so that
2754     multiple parsers can coexist.  */     multiple parsers can coexist.  */
2755  int yydebug;  int yydebug;
2756  #else /* !YYDEBUG */  #else /* !YYDEBUG */
2757  # define YYDPRINTF(Args)  # define YYDPRINTF(Args)
2758  # define YYDSYMPRINT(Args)  # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
 # define YYDSYMPRINTF(Title, Token, Value, Location)  
2759  # define YY_STACK_PRINT(Bottom, Top)  # define YY_STACK_PRINT(Bottom, Top)
2760  # define YY_REDUCE_PRINT(Rule)  # define YY_REDUCE_PRINT(Rule)
2761  #endif /* !YYDEBUG */  #endif /* !YYDEBUG */
# Line 839  int yydebug; Line 2770  int yydebug;
2770     if the built-in stack extension method is used).     if the built-in stack extension method is used).
2771    
2772     Do not make this value too large; the results are undefined if     Do not make this value too large; the results are undefined if
2773     SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)     YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2774     evaluated with infinite-precision integer arithmetic.  */     evaluated with infinite-precision integer arithmetic.  */
2775    
 #if YYMAXDEPTH == 0  
 # undef YYMAXDEPTH  
 #endif  
   
2776  #ifndef YYMAXDEPTH  #ifndef YYMAXDEPTH
2777  # define YYMAXDEPTH 10000  # define YYMAXDEPTH 10000
2778  #endif  #endif
# Line 855  int yydebug; Line 2782  int yydebug;
2782  #if YYERROR_VERBOSE  #if YYERROR_VERBOSE
2783    
2784  # ifndef yystrlen  # ifndef yystrlen
2785  #  if defined (__GLIBC__) && defined (_STRING_H)  #  if defined __GLIBC__ && defined _STRING_H
2786  #   define yystrlen strlen  #   define yystrlen strlen
2787  #  else  #  else
2788  /* Return the length of YYSTR.  */  /* Return the length of YYSTR.  */
2789    #if (defined __STDC__ || defined __C99__FUNC__ \
2790         || defined __cplusplus || defined _MSC_VER)
2791  static YYSIZE_T  static YYSIZE_T
 #   if defined (__STDC__) || defined (__cplusplus)  
2792  yystrlen (const char *yystr)  yystrlen (const char *yystr)
2793  #   else  #else
2794    static YYSIZE_T
2795  yystrlen (yystr)  yystrlen (yystr)
2796       const char *yystr;      const char *yystr;
2797  #   endif  #endif
2798  {  {
2799    register const char *yys = yystr;    YYSIZE_T yylen;
2800      for (yylen = 0; yystr[yylen]; yylen++)
   while (*yys++ != '\0')  
2801      continue;      continue;
2802      return yylen;
   return yys - yystr - 1;  
2803  }  }
2804  #  endif  #  endif
2805  # endif  # endif
2806    
2807  # ifndef yystpcpy  # ifndef yystpcpy
2808  #  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)  #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2809  #   define yystpcpy stpcpy  #   define yystpcpy stpcpy
2810  #  else  #  else
2811  /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in  /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2812     YYDEST.  */     YYDEST.  */
2813    #if (defined __STDC__ || defined __C99__FUNC__ \
2814         || defined __cplusplus || defined _MSC_VER)
2815  static char *  static char *
 #   if defined (__STDC__) || defined (__cplusplus)  
2816  yystpcpy (char *yydest, const char *yysrc)  yystpcpy (char *yydest, const char *yysrc)
2817  #   else  #else
2818    static char *
2819  yystpcpy (yydest, yysrc)  yystpcpy (yydest, yysrc)
2820       char *yydest;      char *yydest;
2821       const char *yysrc;      const char *yysrc;
2822  #   endif  #endif
2823  {  {
2824    register char *yyd = yydest;    char *yyd = yydest;
2825    register const char *yys = yysrc;    const char *yys = yysrc;
2826    
2827    while ((*yyd++ = *yys++) != '\0')    while ((*yyd++ = *yys++) != '\0')
2828      continue;      continue;
# Line 903  yystpcpy (yydest, yysrc) Line 2832  yystpcpy (yydest, yysrc)
2832  #  endif  #  endif
2833  # endif  # endif
2834    
2835  #endif /* !YYERROR_VERBOSE */  # ifndef yytnamerr
2836    /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2837       quotes and backslashes, so that it's suitable for yyerror.  The
2838       heuristic is that double-quoting is unnecessary unless the string
2839       contains an apostrophe, a comma, or backslash (other than
2840       backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
2841       null, do not copy; instead, return the length of what the result
2842       would have been.  */
2843    static YYSIZE_T
2844    yytnamerr (char *yyres, const char *yystr)
2845    {
2846      if (*yystr == '"')
2847        {
2848          YYSIZE_T yyn = 0;
2849          char const *yyp = yystr;
2850    
2851          for (;;)
2852            switch (*++yyp)
2853              {
2854              case '\'':
2855              case ',':
2856                goto do_not_strip_quotes;
2857    
2858              case '\\':
2859                if (*++yyp != '\\')
2860                  goto do_not_strip_quotes;
2861                /* Fall through.  */
2862              default:
2863                if (yyres)
2864                  yyres[yyn] = *yyp;
2865                yyn++;
2866                break;
2867    
2868              case '"':
2869                if (yyres)
2870                  yyres[yyn] = '\0';
2871                return yyn;
2872              }
2873        do_not_strip_quotes: ;
2874        }
2875    
2876      if (! yyres)
2877        return yystrlen (yystr);
2878    
2879  #if YYDEBUG    return yystpcpy (yyres, yystr) - yyres;
2880  /*--------------------------------.  }
2881  | Print this symbol on YYOUTPUT.  |  # endif
 `--------------------------------*/  
2882    
2883  #if defined (__STDC__) || defined (__cplusplus)  /* Copy into YYRESULT an error message about the unexpected token
2884  static void     YYCHAR while in state YYSTATE.  Return the number of bytes copied,
2885  yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)     including the terminating null byte.  If YYRESULT is null, do not
2886  #else     copy anything; just return the number of bytes that would be
2887  static void     copied.  As a special case, return 0 if an ordinary "syntax error"
2888  yysymprint (yyoutput, yytype, yyvaluep)     message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
2889      FILE *yyoutput;     size calculation.  */
2890      int yytype;  static YYSIZE_T
2891      YYSTYPE *yyvaluep;  yysyntax_error (char *yyresult, int yystate, int yychar)
 #endif  
2892  {  {
2893    /* Pacify ``unused variable'' warnings.  */    int yyn = yypact[yystate];
   (void) yyvaluep;  
2894    
2895    if (yytype < YYNTOKENS)    if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
2896        return 0;
2897      else
2898      {      {
2899        YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);        int yytype = YYTRANSLATE (yychar);
2900  # ifdef YYPRINT        YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
2901        YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);        YYSIZE_T yysize = yysize0;
2902          YYSIZE_T yysize1;
2903          int yysize_overflow = 0;
2904          enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2905          char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2906          int yyx;
2907    
2908    # if 0
2909          /* This is so xgettext sees the translatable formats that are
2910             constructed on the fly.  */
2911          YY_("syntax error, unexpected %s");
2912          YY_("syntax error, unexpected %s, expecting %s");
2913          YY_("syntax error, unexpected %s, expecting %s or %s");
2914          YY_("syntax error, unexpected %s, expecting %s or %s or %s");
2915          YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
2916  # endif  # endif
2917      }        char *yyfmt;
2918    else        char const *yyf;
2919      YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);        static char const yyunexpected[] = "syntax error, unexpected %s";
2920          static char const yyexpecting[] = ", expecting %s";
2921          static char const yyor[] = " or %s";
2922          char yyformat[sizeof yyunexpected
2923                        + sizeof yyexpecting - 1
2924                        + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
2925                           * (sizeof yyor - 1))];
2926          char const *yyprefix = yyexpecting;
2927    
2928          /* Start YYX at -YYN if negative to avoid negative indexes in
2929             YYCHECK.  */
2930          int yyxbegin = yyn < 0 ? -yyn : 0;
2931    
2932          /* Stay within bounds of both yycheck and yytname.  */
2933          int yychecklim = YYLAST - yyn + 1;
2934          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2935          int yycount = 1;
2936    
2937          yyarg[0] = yytname[yytype];
2938          yyfmt = yystpcpy (yyformat, yyunexpected);
2939    
2940          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2941            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2942              {
2943                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2944                  {
2945                    yycount = 1;
2946                    yysize = yysize0;
2947                    yyformat[sizeof yyunexpected - 1] = '\0';
2948                    break;
2949                  }
2950                yyarg[yycount++] = yytname[yyx];
2951                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2952                yysize_overflow |= (yysize1 < yysize);
2953                yysize = yysize1;
2954                yyfmt = yystpcpy (yyfmt, yyprefix);
2955                yyprefix = yyor;
2956              }
2957    
2958          yyf = YY_(yyformat);
2959          yysize1 = yysize + yystrlen (yyf);
2960          yysize_overflow |= (yysize1 < yysize);
2961          yysize = yysize1;
2962    
2963    switch (yytype)        if (yysize_overflow)
2964      {          return YYSIZE_MAXIMUM;
2965        default:  
2966          break;        if (yyresult)
2967            {
2968              /* Avoid sprintf, as that infringes on the user's name space.
2969                 Don't have undefined behavior even if the translation
2970                 produced a string with the wrong number of "%s"s.  */
2971              char *yyp = yyresult;
2972              int yyi = 0;
2973              while ((*yyp = *yyf) != '\0')
2974                {
2975                  if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
2976                    {
2977                      yyp += yytnamerr (yyp, yyarg[yyi++]);
2978                      yyf += 2;
2979                    }
2980                  else
2981                    {
2982                      yyp++;
2983                      yyf++;
2984                    }
2985                }
2986            }
2987          return yysize;
2988      }      }
   YYFPRINTF (yyoutput, ")");  
2989  }  }
2990    #endif /* YYERROR_VERBOSE */
2991    
2992    
 #endif /* ! YYDEBUG */  
2993  /*-----------------------------------------------.  /*-----------------------------------------------.
2994  | Release the memory associated to this symbol.  |  | Release the memory associated to this symbol.  |
2995  `-----------------------------------------------*/  `-----------------------------------------------*/
2996    
2997  #if defined (__STDC__) || defined (__cplusplus)  /*ARGSUSED*/
2998    #if (defined __STDC__ || defined __C99__FUNC__ \
2999         || defined __cplusplus || defined _MSC_VER)
3000  static void  static void
3001  yydestruct (int yytype, YYSTYPE *yyvaluep)  yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
3002  #else  #else
3003  static void  static void
3004  yydestruct (yytype, yyvaluep)  yydestruct (yymsg, yytype, yyvaluep)
3005        const char *yymsg;
3006      int yytype;      int yytype;
3007      YYSTYPE *yyvaluep;      YYSTYPE *yyvaluep;
3008  #endif  #endif
3009  {  {
3010    /* Pacify ``unused variable'' warnings.  */    YYUSE (yyvaluep);
3011    (void) yyvaluep;  
3012      if (!yymsg)
3013        yymsg = "Deleting";
3014      YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3015    
3016    switch (yytype)    switch (yytype)
3017      {      {
3018    
3019        default:        default:
3020          break;          break;
3021      }      }
3022  }  }
3023    
# Line 974  yydestruct (yytype, yyvaluep) Line 3025  yydestruct (yytype, yyvaluep)
3025  /* Prevent warnings from -Wmissing-prototypes.  */  /* Prevent warnings from -Wmissing-prototypes.  */
3026    
3027  #ifdef YYPARSE_PARAM  #ifdef YYPARSE_PARAM
3028  # if defined (__STDC__) || defined (__cplusplus)  #if defined __STDC__ || defined __cplusplus
3029  int yyparse (void *YYPARSE_PARAM);  int yyparse (void *YYPARSE_PARAM);
3030  # else  #else
3031  int yyparse ();  int yyparse ();
3032  # endif  #endif
3033  #else /* ! YYPARSE_PARAM */  #else /* ! YYPARSE_PARAM */
3034  #if defined (__STDC__) || defined (__cplusplus)  #if defined __STDC__ || defined __cplusplus
3035  int yyparse (void);  int yyparse (void);
3036  #else  #else
3037  int yyparse ();  int yyparse ();
# Line 997  int yyparse (); Line 3048  int yyparse ();
3048  `----------*/  `----------*/
3049    
3050  #ifdef YYPARSE_PARAM  #ifdef YYPARSE_PARAM
3051  # if defined (__STDC__) || defined (__cplusplus)  #if (defined __STDC__ || defined __C99__FUNC__ \
3052  int yyparse (void *YYPARSE_PARAM)       || defined __cplusplus || defined _MSC_VER)
3053  # else  int
3054  int yyparse (YYPARSE_PARAM)  yyparse (void *YYPARSE_PARAM)
3055    void *YYPARSE_PARAM;  #else
3056  # endif  int
3057    yyparse (YYPARSE_PARAM)
3058        void *YYPARSE_PARAM;
3059    #endif
3060  #else /* ! YYPARSE_PARAM */  #else /* ! YYPARSE_PARAM */
3061  #if defined (__STDC__) || defined (__cplusplus)  #if (defined __STDC__ || defined __C99__FUNC__ \
3062         || defined __cplusplus || defined _MSC_VER)
3063  int  int
3064  yyparse (void)  yyparse (void)
3065  #else  #else
# Line 1014  yyparse () Line 3069  yyparse ()
3069  #endif  #endif
3070  #endif  #endif
3071  {  {
3072    /* The lookahead symbol.  */    /* The look-ahead symbol.  */
3073  int yychar;  int yychar;
3074    
3075  /* The semantic value of the lookahead symbol.  */  /* The semantic value of the look-ahead symbol.  */
3076  YYSTYPE yylval;  YYSTYPE yylval;
3077    
3078  /* Number of syntax errors so far.  */  /* Number of syntax errors so far.  */
3079  int yynerrs;  int yynerrs;
3080    
3081    register int yystate;    int yystate;
3082    register int yyn;    int yyn;
3083    int yyresult;    int yyresult;
3084    /* Number of tokens to shift before error messages enabled.  */    /* Number of tokens to shift before error messages enabled.  */
3085    int yyerrstatus;    int yyerrstatus;
3086    /* Lookahead token as an internal (translated) token number.  */    /* Look-ahead token as an internal (translated) token number.  */
3087    int yytoken = 0;    int yytoken = 0;
3088    #if YYERROR_VERBOSE
3089      /* Buffer for error messages, and its allocated size.  */
3090      char yymsgbuf[128];
3091      char *yymsg = yymsgbuf;
3092      YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
3093    #endif
3094    
3095    /* Three stacks and their tools:    /* Three stacks and their tools:
3096       `yyss': related to states,       `yyss': related to states,
# Line 1040  int yynerrs; Line 3101  int yynerrs;
3101       to reallocate them elsewhere.  */       to reallocate them elsewhere.  */
3102    
3103    /* The state stack.  */    /* The state stack.  */
3104    short yyssa[YYINITDEPTH];    yytype_int16 yyssa[YYINITDEPTH];
3105    short *yyss = yyssa;    yytype_int16 *yyss = yyssa;
3106    register short *yyssp;    yytype_int16 *yyssp;
3107    
3108    /* The semantic value stack.  */    /* The semantic value stack.  */
3109    YYSTYPE yyvsa[YYINITDEPTH];    YYSTYPE yyvsa[YYINITDEPTH];
3110    YYSTYPE *yyvs = yyvsa;    YYSTYPE *yyvs = yyvsa;
3111    register YYSTYPE *yyvsp;    YYSTYPE *yyvsp;
3112    
3113    
3114    
3115  #define YYPOPSTACK   (yyvsp--, yyssp--)  #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
3116    
3117    YYSIZE_T yystacksize = YYINITDEPTH;    YYSIZE_T yystacksize = YYINITDEPTH;
3118    
# Line 1060  int yynerrs; Line 3121  int yynerrs;
3121    YYSTYPE yyval;    YYSTYPE yyval;
3122    
3123    
3124    /* When reducing, the number of symbols on the RHS of the reduced    /* The number of symbols on the RHS of the reduced rule.
3125       rule.  */       Keep to zero when no symbol should be popped.  */
3126    int yylen;    int yylen = 0;
3127    
3128    YYDPRINTF ((stderr, "Starting parse\n"));    YYDPRINTF ((stderr, "Starting parse\n"));
3129    
# Line 1086  int yynerrs; Line 3147  int yynerrs;
3147  `------------------------------------------------------------*/  `------------------------------------------------------------*/
3148   yynewstate:   yynewstate:
3149    /* In all cases, when you get here, the value and location stacks    /* In all cases, when you get here, the value and location stacks
3150       have just been pushed. so pushing a state here evens the stacks.       have just been pushed.  So pushing a state here evens the stacks.  */
      */  
3151    yyssp++;    yyssp++;
3152    
3153   yysetstate:   yysetstate:
# Line 1100  int yynerrs; Line 3160  int yynerrs;
3160    
3161  #ifdef yyoverflow  #ifdef yyoverflow
3162        {        {
3163          /* Give user a chance to reallocate the stack. Use copies of          /* Give user a chance to reallocate the stack.  Use copies of
3164             these so that the &'s don't force the real ones into             these so that the &'s don't force the real ones into
3165             memory.  */             memory.  */
3166          YYSTYPE *yyvs1 = yyvs;          YYSTYPE *yyvs1 = yyvs;
3167          short *yyss1 = yyss;          yytype_int16 *yyss1 = yyss;
3168    
3169    
3170          /* Each stack pointer address is followed by the size of the          /* Each stack pointer address is followed by the size of the
3171             data in use in that stack, in bytes.  This used to be a             data in use in that stack, in bytes.  This used to be a
3172             conditional around just the two extra args, but that might             conditional around just the two extra args, but that might
3173             be undefined if yyoverflow is a macro.  */             be undefined if yyoverflow is a macro.  */
3174          yyoverflow ("parser stack overflow",          yyoverflow (YY_("memory exhausted"),
3175                      &yyss1, yysize * sizeof (*yyssp),                      &yyss1, yysize * sizeof (*yyssp),
3176                      &yyvs1, yysize * sizeof (*yyvsp),                      &yyvs1, yysize * sizeof (*yyvsp),
3177    
# Line 1122  int yynerrs; Line 3182  int yynerrs;
3182        }        }
3183  #else /* no yyoverflow */  #else /* no yyoverflow */
3184  # ifndef YYSTACK_RELOCATE  # ifndef YYSTACK_RELOCATE
3185        goto yyoverflowlab;        goto yyexhaustedlab;
3186  # else  # else
3187        /* Extend the stack our own way.  */        /* Extend the stack our own way.  */
3188        if (YYMAXDEPTH <= yystacksize)        if (YYMAXDEPTH <= yystacksize)
3189          goto yyoverflowlab;          goto yyexhaustedlab;
3190        yystacksize *= 2;        yystacksize *= 2;
3191        if (YYMAXDEPTH < yystacksize)        if (YYMAXDEPTH < yystacksize)
3192          yystacksize = YYMAXDEPTH;          yystacksize = YYMAXDEPTH;
3193    
3194        {        {
3195          short *yyss1 = yyss;          yytype_int16 *yyss1 = yyss;
3196          union yyalloc *yyptr =          union yyalloc *yyptr =
3197            (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));            (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3198          if (! yyptr)          if (! yyptr)
3199            goto yyoverflowlab;            goto yyexhaustedlab;
3200          YYSTACK_RELOCATE (yyss);          YYSTACK_RELOCATE (yyss);
3201          YYSTACK_RELOCATE (yyvs);          YYSTACK_RELOCATE (yyvs);
3202    
# Line 1167  int yynerrs; Line 3227  int yynerrs;
3227  `-----------*/  `-----------*/
3228  yybackup:  yybackup:
3229    
3230  /* Do appropriate processing given the current state.  */    /* Do appropriate processing given the current state.  Read a
3231  /* Read a lookahead token if we need one and don't already have one.  */       look-ahead token if we need one and don't already have one.  */
 /* yyresume: */  
   
   /* First try to decide what to do without reference to lookahead token.  */  
3232    
3233      /* First try to decide what to do without reference to look-ahead token.  */
3234    yyn = yypact[yystate];    yyn = yypact[yystate];
3235    if (yyn == YYPACT_NINF)    if (yyn == YYPACT_NINF)
3236      goto yydefault;      goto yydefault;
3237    
3238    /* Not known => get a lookahead token if don't already have one.  */    /* Not known => get a look-ahead token if don't already have one.  */
3239    
3240    /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */    /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
3241    if (yychar == YYEMPTY)    if (yychar == YYEMPTY)
3242      {      {
3243        YYDPRINTF ((stderr, "Reading a token: "));        YYDPRINTF ((stderr, "Reading a token: "));
# Line 1194  yybackup: Line 3252  yybackup:
3252    else    else
3253      {      {
3254        yytoken = YYTRANSLATE (yychar);        yytoken = YYTRANSLATE (yychar);
3255        YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);        YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3256      }      }
3257    
3258    /* If the proper action on seeing token YYTOKEN is to reduce or to    /* If the proper action on seeing token YYTOKEN is to reduce or to
# Line 1214  yybackup: Line 3272  yybackup:
3272    if (yyn == YYFINAL)    if (yyn == YYFINAL)
3273      YYACCEPT;      YYACCEPT;
3274    
   /* Shift the lookahead token.  */  
   YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));  
   
   /* Discard the token being shifted unless it is eof.  */  
   if (yychar != YYEOF)  
     yychar = YYEMPTY;  
   
   *++yyvsp = yylval;  
   
   
3275    /* Count tokens shifted since error; after three, turn off error    /* Count tokens shifted since error; after three, turn off error
3276       status.  */       status.  */
3277    if (yyerrstatus)    if (yyerrstatus)
3278      yyerrstatus--;      yyerrstatus--;
3279    
3280      /* Shift the look-ahead token.  */
3281      YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3282    
3283      /* Discard the shifted token unless it is eof.  */
3284      if (yychar != YYEOF)
3285        yychar = YYEMPTY;
3286    
3287    yystate = yyn;    yystate = yyn;
3288      *++yyvsp = yylval;
3289    
3290    goto yynewstate;    goto yynewstate;
3291    
3292    
# Line 1264  yyreduce: Line 3321  yyreduce:
3321    YY_REDUCE_PRINT (yyn);    YY_REDUCE_PRINT (yyn);
3322    switch (yyn)    switch (yyn)
3323      {      {
3324          case 7:          case 4:
3325  #line 82 "lscp.y"  #line 101 "lscp.y"
3326      { LSCPSERVER->AnswerClient(yyvsp[0].String); }      { return LSCP_DONE; }
3327        break;
3328    
3329      case 5:
3330    #line 102 "lscp.y"
3331        { return LSCP_DONE; }
3332      break;      break;
3333    
3334    case 8:    case 6:
3335  #line 83 "lscp.y"  #line 103 "lscp.y"
3336      { LSCPSERVER->AnswerClient("Err:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; }      { LSCPSERVER->AnswerClient((yyvsp[(1) - (1)].String)); return LSCP_DONE; }
3337        break;
3338    
3339      case 7:
3340    #line 104 "lscp.y"
3341        { LSCPSERVER->AnswerClient("ERR:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; }
3342        break;
3343    
3344      case 13:
3345    #line 114 "lscp.y"
3346        { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3347      break;      break;
3348    
3349    case 14:    case 14:
3350  #line 93 "lscp.y"  #line 115 "lscp.y"
3351      { yyval.String = LSCPSERVER->AddChannel();                  }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3352      break;      break;
3353    
3354    case 15:    case 15:
3355  #line 94 "lscp.y"  #line 116 "lscp.y"
3356      { yyval.String = yyvsp[0].String;                                        }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3357      break;      break;
3358    
3359    case 16:    case 16:
3360  #line 95 "lscp.y"  #line 117 "lscp.y"
3361      { yyval.String = yyvsp[0].String;                                        }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3362      break;      break;
3363    
3364    case 17:    case 17:
3365  #line 96 "lscp.y"  #line 118 "lscp.y"
3366      { yyval.String = yyvsp[0].String;                                        }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3367      break;      break;
3368    
3369    case 18:    case 18:
3370  #line 97 "lscp.y"  #line 119 "lscp.y"
3371      { yyval.String = yyvsp[0].String;                                        }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3372      break;      break;
3373    
3374    case 19:    case 19:
3375  #line 98 "lscp.y"  #line 120 "lscp.y"
3376      { yyval.String = yyvsp[0].String;                                        }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3377      break;      break;
3378    
3379    case 20:    case 20:
3380  #line 99 "lscp.y"  #line 121 "lscp.y"
3381      { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number);             }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3382      break;      break;
3383    
3384    case 21:    case 21:
3385  #line 100 "lscp.y"  #line 122 "lscp.y"
3386      { yyval.String = yyvsp[0].String;                                        }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3387      break;      break;
3388    
3389    case 22:    case 22:
3390  #line 101 "lscp.y"  #line 123 "lscp.y"
3391      { yyval.String = LSCPSERVER->SubscribeNotification(yyvsp[0].Number);     }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3392      break;      break;
3393    
3394    case 23:    case 23:
3395  #line 102 "lscp.y"  #line 124 "lscp.y"
3396      { yyval.String = LSCPSERVER->UnsubscribeNotification(yyvsp[0].String);   }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3397      break;      break;
3398    
3399    case 24:    case 24:
3400  #line 103 "lscp.y"  #line 125 "lscp.y"
3401      { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number);              }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3402      break;      break;
3403    
3404    case 25:    case 25:
3405  #line 104 "lscp.y"  #line 126 "lscp.y"
3406      { LSCPSERVER->AnswerClient("Bye!\r\n"); return 0; }      { (yyval.String) = LSCPSERVER->QueryDatabase((yyvsp[(3) - (3)].String));                     }
3407      break;      break;
3408    
3409    case 26:    case 26:
3410  #line 107 "lscp.y"  #line 127 "lscp.y"
3411      { yyval.String = LSCPSERVER->GetAvailableEngines();                          }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3412      break;      break;
3413    
3414    case 27:    case 27:
3415  #line 108 "lscp.y"  #line 128 "lscp.y"
3416      { yyval.String = LSCPSERVER->GetAvailableAudioOutputDrivers();               }      { (yyval.String) = (yyvsp[(3) - (3)].String);                                                }
3417      break;      break;
3418    
3419    case 28:    case 28:
3420  #line 109 "lscp.y"  #line 129 "lscp.y"
3421      { yyval.String = LSCPSERVER->GetAudioOutputDriverInfo(yyvsp[0].String);                   }      { (yyval.String) = LSCPSERVER->ResetSampler();                        }
3422      break;      break;
3423    
3424    case 29:    case 29:
3425  #line 110 "lscp.y"  #line 130 "lscp.y"
3426      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);      }      { LSCPSERVER->AnswerClient("Bye!\r\n"); return LSCP_QUIT; }
3427      break;      break;
3428    
3429    case 30:    case 30:
3430  #line 111 "lscp.y"  #line 133 "lscp.y"
3431      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);  }      { (yyval.String) = LSCPSERVER->AddChannel();                          }
3432      break;      break;
3433    
3434    case 31:    case 31:
3435  #line 112 "lscp.y"  #line 134 "lscp.y"
3436      { yyval.String = LSCPSERVER->GetAudioOutputDeviceCount();                    }      { (yyval.String) = LSCPSERVER->AddMidiInstrumentMap();                }
3437      break;      break;
3438    
3439    case 32:    case 32:
3440  #line 113 "lscp.y"  #line 135 "lscp.y"
3441      { yyval.String = LSCPSERVER->GetAudioOutputDeviceInfo(yyvsp[0].Number);                   }      { (yyval.String) = LSCPSERVER->AddMidiInstrumentMap((yyvsp[(3) - (3)].String));              }
3442      break;      break;
3443    
3444    case 33:    case 33:
3445  #line 114 "lscp.y"  #line 138 "lscp.y"
3446      { yyval.String = LSCPSERVER->GetAudioOutputChannelInfo(yyvsp[-2].Number, yyvsp[0].Number);              }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_audio_device_count);   }
3447      break;      break;
3448    
3449    case 34:    case 34:
3450  #line 115 "lscp.y"  #line 139 "lscp.y"
3451      { yyval.String = LSCPSERVER->GetAudioOutputChannelParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String); }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_audio_device_info);    }
3452      break;      break;
3453    
3454    case 35:    case 35:
3455  #line 116 "lscp.y"  #line 140 "lscp.y"
3456      { yyval.String = LSCPSERVER->GetChannels();                                  }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_device_count);    }
3457      break;      break;
3458    
3459    case 36:    case 36:
3460  #line 117 "lscp.y"  #line 141 "lscp.y"
3461      { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number);                             }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_device_info);     }
3462      break;      break;
3463    
3464    case 37:    case 37:
3465  #line 118 "lscp.y"  #line 142 "lscp.y"
3466      { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number);                          }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_channel_count);        }
3467      break;      break;
3468    
3469    case 38:    case 38:
3470  #line 119 "lscp.y"  #line 143 "lscp.y"
3471      { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number);                             }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_voice_count);          }
3472      break;      break;
3473    
3474    case 39:    case 39:
3475  #line 120 "lscp.y"  #line 144 "lscp.y"
3476      { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number);                              }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_stream_count);         }
3477      break;      break;
3478    
3479    case 40:    case 40:
3480  #line 121 "lscp.y"  #line 145 "lscp.y"
3481      { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String);                              }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_buffer_fill);          }
3482      break;      break;
3483    
3484    case 41:    case 41:
3485  #line 124 "lscp.y"  #line 146 "lscp.y"
3486      { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);      }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_channel_info);         }
3487      break;      break;
3488    
3489    case 42:    case 42:
3490  #line 125 "lscp.y"  #line 147 "lscp.y"
3491      { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);      }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_fx_send_count);        }
3492      break;      break;
3493    
3494    case 43:    case 43:
3495  #line 126 "lscp.y"  #line 148 "lscp.y"
3496      { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_fx_send_info);         }
3497      break;      break;
3498    
3499    case 44:    case 44:
3500  #line 127 "lscp.y"  #line 149 "lscp.y"
3501      { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_instr_map_count); }
3502      break;      break;
3503    
3504    case 45:    case 45:
3505  #line 128 "lscp.y"  #line 150 "lscp.y"
3506      { yyval.String = yyvsp[0].String;                                                         }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_instr_map_info);  }
3507      break;      break;
3508    
3509    case 46:    case 46:
3510  #line 131 "lscp.y"  #line 151 "lscp.y"
3511      { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_instr_count);     }
3512      break;      break;
3513    
3514    case 47:    case 47:
3515  #line 134 "lscp.y"  #line 152 "lscp.y"
3516      { yyval.String = LSCPSERVER->DestroyAudioOutputDevice(yyvsp[0].Number); }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_instr_info);      }
3517      break;      break;
3518    
3519    case 48:    case 48:
3520  #line 137 "lscp.y"  #line 153 "lscp.y"
3521      { yyval.String = yyvsp[0].String; }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_misc);                 }
3522      break;      break;
3523    
3524    case 49:    case 49:
3525  #line 138 "lscp.y"  #line 154 "lscp.y"
3526      { yyval.String = yyvsp[0].String; }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_total_voice_count);    }
3527      break;      break;
3528    
3529    case 50:    case 50:
3530  #line 141 "lscp.y"  #line 155 "lscp.y"
3531      { yyval.String = LSCPSERVER->SetAudioOutputDevice(yyvsp[0].Number, yyvsp[-2].Number);      }      { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_global_info);          }
3532      break;      break;
3533    
3534    case 51:    case 51:
3535  #line 142 "lscp.y"  #line 158 "lscp.y"
3536      { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-4].Number); }      { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_audio_device_count);   }
3537      break;      break;
3538    
3539    case 52:    case 52:
3540  #line 143 "lscp.y"  #line 159 "lscp.y"
3541      { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].String, yyvsp[-2].Number);          }      { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_audio_device_info);    }
3542      break;      break;
3543    
3544    case 53:    case 53:
3545  #line 144 "lscp.y"  #line 160 "lscp.y"
3546      { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number);       }      { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_device_count);    }
3547      break;      break;
3548    
3549    case 54:    case 54:
3550  #line 145 "lscp.y"  #line 161 "lscp.y"
3551      { yyval.String = LSCPSERVER->SetMIDIInputType(yyvsp[0].String, yyvsp[-2].Number);          }      { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_device_info);     }
3552      break;      break;
3553    
3554    case 55:    case 55:
3555  #line 146 "lscp.y"  #line 162 "lscp.y"
3556      { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number);                 }      { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_channel_count);        }
3557      break;      break;
3558    
3559    case 56:    case 56:
3560  #line 149 "lscp.y"  #line 163 "lscp.y"
3561      { yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String;          }      { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_voice_count);          }
3562      break;      break;
3563    
3564    case 57:    case 57:
3565  #line 150 "lscp.y"  #line 164 "lscp.y"
3566      { yyval.KeyValList = yyvsp[-4].KeyValList; yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; }      { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_stream_count);         }
3567      break;      break;
3568    
3569    case 58:    case 58:
3570  #line 152 "lscp.y"  #line 165 "lscp.y"
3571      { yyval.FillResponse = fill_response_bytes;      }      { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_buffer_fill);          }
3572      break;      break;
3573    
3574    case 59:    case 59:
3575  #line 153 "lscp.y"  #line 166 "lscp.y"
3576      { yyval.FillResponse = fill_response_percentage; }      { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_channel_info);         }
3577      break;      break;
3578    
3579    case 60:    case 60:
3580  #line 156 "lscp.y"  #line 167 "lscp.y"
3581      { yyval.String = LSCPSERVER->GetAudioOutputDevices(); }      { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_fx_send_count);        }
3582      break;      break;
3583    
3584    case 61:    case 61:
3585  #line 159 "lscp.y"  #line 168 "lscp.y"
3586      { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number); }      { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_fx_send_info);         }
3587      break;      break;
3588    
3589    case 62:    case 62:
3590  #line 162 "lscp.y"  #line 169 "lscp.y"
3591      { yyval.String = LSCPSERVER->LoadEngine(yyvsp[-2].String, yyvsp[0].Number); }      { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_instr_map_count); }
3592        break;
3593    
3594      case 63:
3595    #line 170 "lscp.y"
3596        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_instr_map_info);  }
3597        break;
3598    
3599      case 64:
3600    #line 171 "lscp.y"
3601        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_instr_count);     }
3602      break;      break;
3603    
3604    case 65:    case 65:
3605  #line 169 "lscp.y"  #line 172 "lscp.y"
3606      { yyval.Dotnum = yyvsp[0].Number; }      { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_instr_info);      }
3607        break;
3608    
3609      case 66:
3610    #line 173 "lscp.y"
3611        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_misc);                 }
3612        break;
3613    
3614      case 67:
3615    #line 174 "lscp.y"
3616        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_total_voice_count);    }
3617        break;
3618    
3619      case 68:
3620    #line 175 "lscp.y"
3621        { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_global_info);          }
3622        break;
3623    
3624      case 69:
3625    #line 178 "lscp.y"
3626        { (yyval.String) = LSCPSERVER->AddOrReplaceMIDIInstrumentMapping((yyvsp[(4) - (16)].Number),(yyvsp[(6) - (16)].Number),(yyvsp[(8) - (16)].Number),(yyvsp[(10) - (16)].String),(yyvsp[(12) - (16)].String),(yyvsp[(14) - (16)].Number),(yyvsp[(16) - (16)].Dotnum),MidiInstrumentMapper::VOID,"",(yyvsp[(3) - (16)].Bool)); }
3627        break;
3628    
3629      case 70:
3630    #line 179 "lscp.y"
3631        { (yyval.String) = LSCPSERVER->AddOrReplaceMIDIInstrumentMapping((yyvsp[(4) - (18)].Number),(yyvsp[(6) - (18)].Number),(yyvsp[(8) - (18)].Number),(yyvsp[(10) - (18)].String),(yyvsp[(12) - (18)].String),(yyvsp[(14) - (18)].Number),(yyvsp[(16) - (18)].Dotnum),(yyvsp[(18) - (18)].LoadMode),"",(yyvsp[(3) - (18)].Bool)); }
3632        break;
3633    
3634      case 71:
3635    #line 180 "lscp.y"
3636        { (yyval.String) = LSCPSERVER->AddOrReplaceMIDIInstrumentMapping((yyvsp[(4) - (18)].Number),(yyvsp[(6) - (18)].Number),(yyvsp[(8) - (18)].Number),(yyvsp[(10) - (18)].String),(yyvsp[(12) - (18)].String),(yyvsp[(14) - (18)].Number),(yyvsp[(16) - (18)].Dotnum),MidiInstrumentMapper::VOID,(yyvsp[(18) - (18)].String),(yyvsp[(3) - (18)].Bool)); }
3637        break;
3638    
3639      case 72:
3640    #line 181 "lscp.y"
3641        { (yyval.String) = LSCPSERVER->AddOrReplaceMIDIInstrumentMapping((yyvsp[(4) - (20)].Number),(yyvsp[(6) - (20)].Number),(yyvsp[(8) - (20)].Number),(yyvsp[(10) - (20)].String),(yyvsp[(12) - (20)].String),(yyvsp[(14) - (20)].Number),(yyvsp[(16) - (20)].Dotnum),(yyvsp[(18) - (20)].LoadMode),(yyvsp[(20) - (20)].String),(yyvsp[(3) - (20)].Bool)); }
3642        break;
3643    
3644      case 73:
3645    #line 184 "lscp.y"
3646        { (yyval.String) = LSCPSERVER->RemoveMIDIInstrumentMapping((yyvsp[(3) - (7)].Number),(yyvsp[(5) - (7)].Number),(yyvsp[(7) - (7)].Number)); }
3647        break;
3648    
3649      case 74:
3650    #line 187 "lscp.y"
3651        { (yyval.String) = LSCPSERVER->RemoveChannel((yyvsp[(3) - (3)].Number));             }
3652      break;      break;
3653    
3654    case 75:    case 75:
3655  #line 197 "lscp.y"  #line 188 "lscp.y"
3656      { yyval.String = yyvsp[-2].String + ' ' + yyvsp[0].String; }      { (yyval.String) = LSCPSERVER->RemoveMidiInstrumentMap((yyvsp[(3) - (3)].Number));   }
3657      break;      break;
3658    
3659    case 76:    case 76:
3660  #line 200 "lscp.y"  #line 189 "lscp.y"
3661      { yyval.String = yyvsp[0].String;                                             }      { (yyval.String) = LSCPSERVER->RemoveAllMidiInstrumentMaps(); }
3662      break;      break;
3663    
3664    case 77:    case 77:
3665  #line 201 "lscp.y"  #line 192 "lscp.y"
3666      { std::stringstream ss; ss << yyvsp[0].Number; yyval.String = ss.str();       }      { (yyval.String) = LSCPSERVER->GetAvailableEngines();                          }
3667      break;      break;
3668    
3669    case 78:    case 78:
3670  #line 202 "lscp.y"  #line 193 "lscp.y"
3671      { yyval.String = yyvsp[-1].String + yyvsp[0].String;                                        }      { (yyval.String) = LSCPSERVER->GetAvailableMidiInputDrivers();                 }
3672      break;      break;
3673    
3674    case 79:    case 79:
3675  #line 203 "lscp.y"  #line 194 "lscp.y"
3676      { std::stringstream ss; ss << yyvsp[-1].String << yyvsp[0].Number; yyval.String = ss.str(); }      { (yyval.String) = LSCPSERVER->GetMidiInputDriverInfo((yyvsp[(5) - (5)].String));                     }
3677      break;      break;
3678    
3679    case 80:    case 80:
3680  #line 206 "lscp.y"  #line 195 "lscp.y"
3681      { std::string s; s = yyvsp[0].Char; yyval.String = s; }      { (yyval.String) = LSCPSERVER->GetMidiInputDriverParameterInfo((yyvsp[(5) - (7)].String), (yyvsp[(7) - (7)].String));        }
3682      break;      break;
3683    
3684    case 81:    case 81:
3685    #line 196 "lscp.y"
3686        { (yyval.String) = LSCPSERVER->GetMidiInputDriverParameterInfo((yyvsp[(5) - (9)].String), (yyvsp[(7) - (9)].String), (yyvsp[(9) - (9)].KeyValList));    }
3687        break;
3688    
3689      case 82:
3690    #line 197 "lscp.y"
3691        { (yyval.String) = LSCPSERVER->GetAvailableAudioOutputDrivers();               }
3692        break;
3693    
3694      case 83:
3695    #line 198 "lscp.y"
3696        { (yyval.String) = LSCPSERVER->GetAudioOutputDriverInfo((yyvsp[(5) - (5)].String));                   }
3697        break;
3698    
3699      case 84:
3700    #line 199 "lscp.y"
3701        { (yyval.String) = LSCPSERVER->GetAudioOutputDriverParameterInfo((yyvsp[(5) - (7)].String), (yyvsp[(7) - (7)].String));      }
3702        break;
3703    
3704      case 85:
3705    #line 200 "lscp.y"
3706        { (yyval.String) = LSCPSERVER->GetAudioOutputDriverParameterInfo((yyvsp[(5) - (9)].String), (yyvsp[(7) - (9)].String), (yyvsp[(9) - (9)].KeyValList));  }
3707        break;
3708    
3709      case 86:
3710    #line 201 "lscp.y"
3711        { (yyval.String) = LSCPSERVER->GetAudioOutputDeviceCount();                    }
3712        break;
3713    
3714      case 87:
3715    #line 202 "lscp.y"
3716        { (yyval.String) = LSCPSERVER->GetMidiInputDeviceCount();                      }
3717        break;
3718    
3719      case 88:
3720    #line 203 "lscp.y"
3721        { (yyval.String) = LSCPSERVER->GetAudioOutputDeviceInfo((yyvsp[(5) - (5)].Number));                   }
3722        break;
3723    
3724      case 89:
3725    #line 204 "lscp.y"
3726        { (yyval.String) = LSCPSERVER->GetMidiInputDeviceInfo((yyvsp[(5) - (5)].Number));                     }
3727        break;
3728    
3729      case 90:
3730    #line 205 "lscp.y"
3731        { (yyval.String) = LSCPSERVER->GetMidiInputPortInfo((yyvsp[(5) - (7)].Number), (yyvsp[(7) - (7)].Number));                   }
3732        break;
3733    
3734      case 91:
3735    #line 206 "lscp.y"
3736        { (yyval.String) = LSCPSERVER->GetMidiInputPortParameterInfo((yyvsp[(5) - (9)].Number), (yyvsp[(7) - (9)].Number), (yyvsp[(9) - (9)].String));      }
3737        break;
3738    
3739      case 92:
3740  #line 207 "lscp.y"  #line 207 "lscp.y"
3741      { yyval.String = yyvsp[-1].String + yyvsp[0].Char;                  }      { (yyval.String) = LSCPSERVER->GetAudioOutputChannelInfo((yyvsp[(5) - (7)].Number), (yyvsp[(7) - (7)].Number));              }
3742      break;      break;
3743    
3744      case 93:
3745    #line 208 "lscp.y"
3746        { (yyval.String) = LSCPSERVER->GetAudioOutputChannelParameterInfo((yyvsp[(5) - (9)].Number), (yyvsp[(7) - (9)].Number), (yyvsp[(9) - (9)].String)); }
3747        break;
3748    
3749      }    case 94:
3750    #line 209 "lscp.y"
3751        { (yyval.String) = LSCPSERVER->GetChannels();                                  }
3752        break;
3753    
3754  /* Line 999 of yacc.c.  */    case 95:
3755  #line 1567 "y.tab.c"  #line 210 "lscp.y"
3756        { (yyval.String) = LSCPSERVER->GetChannelInfo((yyvsp[(5) - (5)].Number));                             }
3757    yyvsp -= yylen;      break;
3758    yyssp -= yylen;  
3759      case 96:
3760    #line 211 "lscp.y"
3761        { (yyval.String) = LSCPSERVER->GetBufferFill((yyvsp[(5) - (7)].FillResponse), (yyvsp[(7) - (7)].Number));                          }
3762        break;
3763    
3764      case 97:
3765    #line 212 "lscp.y"
3766        { (yyval.String) = LSCPSERVER->GetStreamCount((yyvsp[(5) - (5)].Number));                             }
3767        break;
3768    
3769      case 98:
3770    #line 213 "lscp.y"
3771        { (yyval.String) = LSCPSERVER->GetVoiceCount((yyvsp[(5) - (5)].Number));                              }
3772        break;
3773    
3774      case 99:
3775    #line 214 "lscp.y"
3776        { (yyval.String) = LSCPSERVER->GetEngineInfo((yyvsp[(5) - (5)].String));                              }
3777        break;
3778    
3779      case 100:
3780    #line 215 "lscp.y"
3781        { (yyval.String) = LSCPSERVER->GetServerInfo();                                }
3782        break;
3783    
3784      case 101:
3785    #line 216 "lscp.y"
3786        { (yyval.String) = LSCPSERVER->GetTotalVoiceCount();                                }
3787        break;
3788    
3789      case 102:
3790    #line 217 "lscp.y"
3791        { (yyval.String) = LSCPSERVER->GetTotalVoiceCountMax();                        }
3792        break;
3793    
3794      case 103:
3795    #line 218 "lscp.y"
3796        { (yyval.String) = LSCPSERVER->GetMidiInstrumentMappings((yyvsp[(3) - (3)].Number));                  }
3797        break;
3798    
3799      case 104:
3800    #line 219 "lscp.y"
3801        { (yyval.String) = LSCPSERVER->GetAllMidiInstrumentMappings();                 }
3802        break;
3803    
3804      case 105:
3805    #line 220 "lscp.y"
3806        { (yyval.String) = LSCPSERVER->GetMidiInstrumentMapping((yyvsp[(5) - (9)].Number),(yyvsp[(7) - (9)].Number),(yyvsp[(9) - (9)].Number));             }
3807        break;
3808    
3809      case 106:
3810    #line 221 "lscp.y"
3811        { (yyval.String) = LSCPSERVER->GetMidiInstrumentMaps();                        }
3812        break;
3813    
3814      case 107:
3815    #line 222 "lscp.y"
3816        { (yyval.String) = LSCPSERVER->GetMidiInstrumentMap((yyvsp[(5) - (5)].Number));                       }
3817        break;
3818    
3819      case 108:
3820    #line 223 "lscp.y"
3821        { (yyval.String) = LSCPSERVER->GetFxSends((yyvsp[(3) - (3)].Number));                                 }
3822        break;
3823    
3824      case 109:
3825    #line 224 "lscp.y"
3826        { (yyval.String) = LSCPSERVER->GetFxSendInfo((yyvsp[(5) - (7)].Number),(yyvsp[(7) - (7)].Number));                           }
3827        break;
3828    
3829      case 110:
3830    #line 225 "lscp.y"
3831        { (yyval.String) = LSCPSERVER->GetGlobalVolume();                              }
3832        break;
3833    
3834      case 111:
3835    #line 228 "lscp.y"
3836        { (yyval.String) = LSCPSERVER->SetAudioOutputDeviceParameter((yyvsp[(3) - (7)].Number), (yyvsp[(5) - (7)].String), (yyvsp[(7) - (7)].String));      }
3837        break;
3838    
3839      case 112:
3840    #line 229 "lscp.y"
3841        { (yyval.String) = LSCPSERVER->SetAudioOutputChannelParameter((yyvsp[(3) - (9)].Number), (yyvsp[(5) - (9)].Number), (yyvsp[(7) - (9)].String), (yyvsp[(9) - (9)].String)); }
3842        break;
3843    
3844      case 113:
3845    #line 230 "lscp.y"
3846        { (yyval.String) = LSCPSERVER->SetMidiInputDeviceParameter((yyvsp[(3) - (7)].Number), (yyvsp[(5) - (7)].String), (yyvsp[(7) - (7)].String));        }
3847        break;
3848    
3849      case 114:
3850    #line 231 "lscp.y"
3851        { (yyval.String) = LSCPSERVER->SetMidiInputPortParameter((yyvsp[(3) - (9)].Number), (yyvsp[(5) - (9)].Number), (yyvsp[(7) - (9)].String), (yyvsp[(9) - (9)].String));      }
3852        break;
3853    
3854      case 115:
3855    #line 232 "lscp.y"
3856        { (yyval.String) = (yyvsp[(3) - (3)].String);                                                         }
3857        break;
3858    
3859      case 116:
3860    #line 233 "lscp.y"
3861        { (yyval.String) = LSCPSERVER->SetMidiInstrumentMapName((yyvsp[(5) - (7)].Number), (yyvsp[(7) - (7)].String));               }
3862        break;
3863    
3864      case 117:
3865    #line 234 "lscp.y"
3866        { (yyval.String) = LSCPSERVER->SetFxSendName((yyvsp[(5) - (9)].Number),(yyvsp[(7) - (9)].Number),(yyvsp[(9) - (9)].String));                        }
3867        break;
3868    
3869      case 118:
3870    #line 235 "lscp.y"
3871        { (yyval.String) = LSCPSERVER->SetFxSendAudioOutputChannel((yyvsp[(5) - (11)].Number),(yyvsp[(7) - (11)].Number),(yyvsp[(9) - (11)].Number),(yyvsp[(11) - (11)].Number)); }
3872        break;
3873    
3874      case 119:
3875    #line 236 "lscp.y"
3876        { (yyval.String) = LSCPSERVER->SetFxSendMidiController((yyvsp[(5) - (9)].Number),(yyvsp[(7) - (9)].Number),(yyvsp[(9) - (9)].Number));              }
3877        break;
3878    
3879      case 120:
3880    #line 237 "lscp.y"
3881        { (yyval.String) = LSCPSERVER->SetFxSendLevel((yyvsp[(5) - (9)].Number),(yyvsp[(7) - (9)].Number),(yyvsp[(9) - (9)].Dotnum));                       }
3882        break;
3883    
3884      case 121:
3885    #line 238 "lscp.y"
3886        { (yyval.String) = LSCPSERVER->SetEcho((yyparse_param_t*) yyparse_param, (yyvsp[(3) - (3)].Dotnum));  }
3887        break;
3888    
3889      case 122:
3890    #line 239 "lscp.y"
3891        { (yyval.String) = LSCPSERVER->SetGlobalVolume((yyvsp[(3) - (3)].Dotnum));                            }
3892        break;
3893    
3894      case 123:
3895    #line 242 "lscp.y"
3896        { (yyval.String) = LSCPSERVER->CreateAudioOutputDevice((yyvsp[(3) - (5)].String),(yyvsp[(5) - (5)].KeyValList)); }
3897        break;
3898    
3899      case 124:
3900    #line 243 "lscp.y"
3901        { (yyval.String) = LSCPSERVER->CreateAudioOutputDevice((yyvsp[(3) - (3)].String));    }
3902        break;
3903    
3904      case 125:
3905    #line 244 "lscp.y"
3906        { (yyval.String) = LSCPSERVER->CreateMidiInputDevice((yyvsp[(3) - (5)].String),(yyvsp[(5) - (5)].KeyValList));   }
3907        break;
3908    
3909      case 126:
3910    #line 245 "lscp.y"
3911        { (yyval.String) = LSCPSERVER->CreateMidiInputDevice((yyvsp[(3) - (3)].String));      }
3912        break;
3913    
3914      case 127:
3915    #line 246 "lscp.y"
3916        { (yyval.String) = LSCPSERVER->CreateFxSend((yyvsp[(3) - (5)].Number),(yyvsp[(5) - (5)].Number));            }
3917        break;
3918    
3919      case 128:
3920    #line 247 "lscp.y"
3921        { (yyval.String) = LSCPSERVER->CreateFxSend((yyvsp[(3) - (7)].Number),(yyvsp[(5) - (7)].Number),(yyvsp[(7) - (7)].String)); }
3922        break;
3923    
3924      case 129:
3925    #line 250 "lscp.y"
3926        { (yyval.String) = LSCPSERVER->ResetChannel((yyvsp[(3) - (3)].Number)); }
3927        break;
3928    
3929      case 130:
3930    #line 253 "lscp.y"
3931        { (yyval.String) = LSCPSERVER->ClearMidiInstrumentMappings((yyvsp[(3) - (3)].Number));  }
3932        break;
3933    
3934      case 131:
3935    #line 254 "lscp.y"
3936        { (yyval.String) = LSCPSERVER->ClearAllMidiInstrumentMappings(); }
3937        break;
3938    
3939      case 132:
3940    #line 257 "lscp.y"
3941        { (yyval.String) = LSCPSERVER->DestroyAudioOutputDevice((yyvsp[(3) - (3)].Number)); }
3942        break;
3943    
3944      case 133:
3945    #line 258 "lscp.y"
3946        { (yyval.String) = LSCPSERVER->DestroyMidiInputDevice((yyvsp[(3) - (3)].Number));   }
3947        break;
3948    
3949      case 134:
3950    #line 259 "lscp.y"
3951        { (yyval.String) = LSCPSERVER->DestroyFxSend((yyvsp[(3) - (5)].Number),(yyvsp[(5) - (5)].Number)); }
3952        break;
3953    
3954      case 135:
3955    #line 262 "lscp.y"
3956        { (yyval.String) = (yyvsp[(3) - (3)].String); }
3957        break;
3958    
3959      case 136:
3960    #line 263 "lscp.y"
3961        { (yyval.String) = (yyvsp[(3) - (3)].String); }
3962        break;
3963    
3964      case 137:
3965    #line 266 "lscp.y"
3966        { (yyval.String) = LSCPSERVER->SetAudioOutputDevice((yyvsp[(5) - (5)].Number), (yyvsp[(3) - (5)].Number));      }
3967        break;
3968    
3969      case 138:
3970    #line 267 "lscp.y"
3971        { (yyval.String) = LSCPSERVER->SetAudioOutputChannel((yyvsp[(5) - (7)].Number), (yyvsp[(7) - (7)].Number), (yyvsp[(3) - (7)].Number)); }
3972        break;
3973    
3974      case 139:
3975    #line 268 "lscp.y"
3976        { (yyval.String) = LSCPSERVER->SetAudioOutputType((yyvsp[(5) - (5)].String), (yyvsp[(3) - (5)].Number));        }
3977        break;
3978    
3979      case 140:
3980    #line 269 "lscp.y"
3981        { (yyval.String) = LSCPSERVER->SetMIDIInput((yyvsp[(5) - (9)].Number), (yyvsp[(7) - (9)].Number), (yyvsp[(9) - (9)].Number), (yyvsp[(3) - (9)].Number));      }
3982        break;
3983    
3984      case 141:
3985    #line 270 "lscp.y"
3986        { (yyval.String) = LSCPSERVER->SetMIDIInputDevice((yyvsp[(5) - (5)].Number), (yyvsp[(3) - (5)].Number));        }
3987        break;
3988    
3989      case 142:
3990    #line 271 "lscp.y"
3991        { (yyval.String) = LSCPSERVER->SetMIDIInputPort((yyvsp[(5) - (5)].Number), (yyvsp[(3) - (5)].Number));          }
3992        break;
3993    
3994      case 143:
3995    #line 272 "lscp.y"
3996        { (yyval.String) = LSCPSERVER->SetMIDIInputChannel((yyvsp[(5) - (5)].Number), (yyvsp[(3) - (5)].Number));       }
3997        break;
3998    
3999      case 144:
4000    #line 273 "lscp.y"
4001        { (yyval.String) = LSCPSERVER->SetMIDIInputType((yyvsp[(5) - (5)].String), (yyvsp[(3) - (5)].Number));          }
4002        break;
4003    
4004      case 145:
4005    #line 274 "lscp.y"
4006        { (yyval.String) = LSCPSERVER->SetVolume((yyvsp[(5) - (5)].Dotnum), (yyvsp[(3) - (5)].Number));                 }
4007        break;
4008    
4009      case 146:
4010    #line 275 "lscp.y"
4011        { (yyval.String) = LSCPSERVER->SetChannelMute((yyvsp[(5) - (5)].Dotnum), (yyvsp[(3) - (5)].Number));            }
4012        break;
4013    
4014      case 147:
4015    #line 276 "lscp.y"
4016        { (yyval.String) = LSCPSERVER->SetChannelSolo((yyvsp[(5) - (5)].Dotnum), (yyvsp[(3) - (5)].Number));            }
4017        break;
4018    
4019      case 148:
4020    #line 277 "lscp.y"
4021        { (yyval.String) = LSCPSERVER->SetChannelMap((yyvsp[(3) - (5)].Number), (yyvsp[(5) - (5)].Number));             }
4022        break;
4023    
4024      case 149:
4025    #line 278 "lscp.y"
4026        { (yyval.String) = LSCPSERVER->SetChannelMap((yyvsp[(3) - (5)].Number), -1);             }
4027        break;
4028    
4029      case 150:
4030    #line 279 "lscp.y"
4031        { (yyval.String) = LSCPSERVER->SetChannelMap((yyvsp[(3) - (5)].Number), -2);             }
4032        break;
4033    
4034      case 151:
4035    #line 282 "lscp.y"
4036        { (yyval.Bool) = true;  }
4037        break;
4038    
4039      case 152:
4040    #line 283 "lscp.y"
4041        { (yyval.Bool) = false; }
4042        break;
4043    
4044      case 153:
4045    #line 286 "lscp.y"
4046        { (yyval.KeyValList)[(yyvsp[(1) - (3)].String)] = (yyvsp[(3) - (3)].String);          }
4047        break;
4048    
4049      case 154:
4050    #line 287 "lscp.y"
4051        { (yyval.KeyValList) = (yyvsp[(1) - (5)].KeyValList); (yyval.KeyValList)[(yyvsp[(3) - (5)].String)] = (yyvsp[(5) - (5)].String); }
4052        break;
4053    
4054      case 155:
4055    #line 290 "lscp.y"
4056        { (yyval.FillResponse) = fill_response_bytes;      }
4057        break;
4058    
4059      case 156:
4060    #line 291 "lscp.y"
4061        { (yyval.FillResponse) = fill_response_percentage; }
4062        break;
4063    
4064      case 157:
4065    #line 294 "lscp.y"
4066        { (yyval.String) = LSCPSERVER->GetAudioOutputDevices();           }
4067        break;
4068    
4069      case 158:
4070    #line 295 "lscp.y"
4071        { (yyval.String) = LSCPSERVER->GetMidiInputDevices();             }
4072        break;
4073    
4074      case 159:
4075    #line 296 "lscp.y"
4076        { (yyval.String) = LSCPSERVER->ListChannels();                    }
4077        break;
4078    
4079      case 160:
4080    #line 297 "lscp.y"
4081        { (yyval.String) = LSCPSERVER->ListAvailableEngines();            }
4082        break;
4083    
4084      case 161:
4085    #line 298 "lscp.y"
4086        { (yyval.String) = LSCPSERVER->ListAvailableMidiInputDrivers();   }
4087        break;
4088    
4089      case 162:
4090    #line 299 "lscp.y"
4091        { (yyval.String) = LSCPSERVER->ListAvailableAudioOutputDrivers(); }
4092        break;
4093    
4094      case 163:
4095    #line 300 "lscp.y"
4096        { (yyval.String) = LSCPSERVER->ListMidiInstrumentMappings((yyvsp[(3) - (3)].Number));    }
4097        break;
4098    
4099      case 164:
4100    #line 301 "lscp.y"
4101        { (yyval.String) = LSCPSERVER->ListAllMidiInstrumentMappings();   }
4102        break;
4103    
4104      case 165:
4105    #line 302 "lscp.y"
4106        { (yyval.String) = LSCPSERVER->ListMidiInstrumentMaps();          }
4107        break;
4108    
4109      case 166:
4110    #line 303 "lscp.y"
4111        { (yyval.String) = LSCPSERVER->ListFxSends((yyvsp[(3) - (3)].Number));                   }
4112        break;
4113    
4114      case 167:
4115    #line 306 "lscp.y"
4116        { (yyval.String) = LSCPSERVER->LoadInstrument((yyvsp[(1) - (5)].String), (yyvsp[(3) - (5)].Number), (yyvsp[(5) - (5)].Number));       }
4117        break;
4118    
4119      case 168:
4120    #line 307 "lscp.y"
4121        { (yyval.String) = LSCPSERVER->LoadInstrument((yyvsp[(3) - (7)].String), (yyvsp[(5) - (7)].Number), (yyvsp[(7) - (7)].Number), true); }
4122        break;
4123    
4124      case 169:
4125    #line 310 "lscp.y"
4126        { (yyval.String) = LSCPSERVER->SetEngineType((yyvsp[(1) - (3)].String), (yyvsp[(3) - (3)].Number)); }
4127        break;
4128    
4129      case 170:
4130    #line 313 "lscp.y"
4131        { (yyval.LoadMode) = MidiInstrumentMapper::ON_DEMAND;      }
4132        break;
4133    
4134      case 171:
4135    #line 314 "lscp.y"
4136        { (yyval.LoadMode) = MidiInstrumentMapper::ON_DEMAND_HOLD; }
4137        break;
4138    
4139      case 172:
4140    #line 315 "lscp.y"
4141        { (yyval.LoadMode) = MidiInstrumentMapper::PERSISTENT;     }
4142        break;
4143    
4144      case 178:
4145    #line 331 "lscp.y"
4146        { (yyval.Number) = 16; }
4147        break;
4148    
4149      case 185:
4150    #line 350 "lscp.y"
4151        { (yyval.Dotnum) = (yyvsp[(1) - (1)].Number); }
4152        break;
4153    
4154      case 195:
4155    #line 378 "lscp.y"
4156        { (yyval.String) = (yyvsp[(1) - (3)].String) + "," + (yyvsp[(3) - (3)].String); }
4157        break;
4158    
4159      case 198:
4160    #line 383 "lscp.y"
4161        { std::stringstream ss; ss << "\'" << (yyvsp[(1) - (1)].Number) << "\'"; (yyval.String) = ss.str(); }
4162        break;
4163    
4164      case 199:
4165    #line 384 "lscp.y"
4166        { std::stringstream ss; ss << "\'" << (yyvsp[(1) - (1)].Dotnum) << "\'"; (yyval.String) = ss.str(); }
4167        break;
4168    
4169      case 200:
4170    #line 392 "lscp.y"
4171        { (yyval.Dotnum) = (yyvsp[(1) - (1)].Number); }
4172        break;
4173    
4174      case 201:
4175    #line 393 "lscp.y"
4176        { (yyval.Dotnum) = -1; }
4177        break;
4178    
4179      case 202:
4180    #line 396 "lscp.y"
4181        { std::string s; s = (yyvsp[(1) - (1)].Char); (yyval.String) = s; }
4182        break;
4183    
4184      case 203:
4185    #line 397 "lscp.y"
4186        { (yyval.String) = (yyvsp[(1) - (2)].String) + (yyvsp[(2) - (2)].Char);                  }
4187        break;
4188    
4189      case 204:
4190    #line 400 "lscp.y"
4191        { (yyval.Dotnum) = atof(String((yyvsp[(1) - (3)].String) + "." + (yyvsp[(3) - (3)].String)).c_str());                         }
4192        break;
4193    
4194      case 205:
4195    #line 401 "lscp.y"
4196        { String s = "+"; s += (yyvsp[(2) - (4)].String); s += "."; s += (yyvsp[(4) - (4)].String); (yyval.Dotnum) = atof(s.c_str()); }
4197        break;
4198    
4199      case 206:
4200    #line 402 "lscp.y"
4201        { (yyval.Dotnum) = atof(String("-" + (yyvsp[(2) - (4)].String) + "." + (yyvsp[(4) - (4)].String)).c_str());                   }
4202        break;
4203    
4204      case 207:
4205    #line 406 "lscp.y"
4206        { (yyval.String) = (yyvsp[(1) - (1)].Char);      }
4207        break;
4208    
4209      case 208:
4210    #line 407 "lscp.y"
4211        { (yyval.String) = (yyvsp[(1) - (2)].String) + (yyvsp[(2) - (2)].Char); }
4212        break;
4213    
4214      case 209:
4215    #line 410 "lscp.y"
4216        { (yyval.Char) = '0'; }
4217        break;
4218    
4219      case 210:
4220    #line 411 "lscp.y"
4221        { (yyval.Char) = '1'; }
4222        break;
4223    
4224      case 211:
4225    #line 412 "lscp.y"
4226        { (yyval.Char) = '2'; }
4227        break;
4228    
4229      case 212:
4230    #line 413 "lscp.y"
4231        { (yyval.Char) = '3'; }
4232        break;
4233    
4234      case 213:
4235    #line 414 "lscp.y"
4236        { (yyval.Char) = '4'; }
4237        break;
4238    
4239      case 214:
4240    #line 415 "lscp.y"
4241        { (yyval.Char) = '5'; }
4242        break;
4243    
4244      case 215:
4245    #line 416 "lscp.y"
4246        { (yyval.Char) = '6'; }
4247        break;
4248    
4249      case 216:
4250    #line 417 "lscp.y"
4251        { (yyval.Char) = '7'; }
4252        break;
4253    
4254      case 217:
4255    #line 418 "lscp.y"
4256        { (yyval.Char) = '8'; }
4257        break;
4258    
4259      case 218:
4260    #line 419 "lscp.y"
4261        { (yyval.Char) = '9'; }
4262        break;
4263    
4264      case 219:
4265    #line 422 "lscp.y"
4266        { (yyval.Number) = atoi(String(1, (yyvsp[(1) - (1)].Char)).c_str());      }
4267        break;
4268    
4269      case 220:
4270    #line 423 "lscp.y"
4271        { (yyval.Number) = atoi(String(String("1") + (yyvsp[(2) - (2)].String)).c_str()); }
4272        break;
4273    
4274      case 221:
4275    #line 424 "lscp.y"
4276        { (yyval.Number) = atoi(String(String("2") + (yyvsp[(2) - (2)].String)).c_str()); }
4277        break;
4278    
4279      case 222:
4280    #line 425 "lscp.y"
4281        { (yyval.Number) = atoi(String(String("3") + (yyvsp[(2) - (2)].String)).c_str()); }
4282        break;
4283    
4284      case 223:
4285    #line 426 "lscp.y"
4286        { (yyval.Number) = atoi(String(String("4") + (yyvsp[(2) - (2)].String)).c_str()); }
4287        break;
4288    
4289      case 224:
4290    #line 427 "lscp.y"
4291        { (yyval.Number) = atoi(String(String("5") + (yyvsp[(2) - (2)].String)).c_str()); }
4292        break;
4293    
4294      case 225:
4295    #line 428 "lscp.y"
4296        { (yyval.Number) = atoi(String(String("6") + (yyvsp[(2) - (2)].String)).c_str()); }
4297        break;
4298    
4299      case 226:
4300    #line 429 "lscp.y"
4301        { (yyval.Number) = atoi(String(String("7") + (yyvsp[(2) - (2)].String)).c_str()); }
4302        break;
4303    
4304      case 227:
4305    #line 430 "lscp.y"
4306        { (yyval.Number) = atoi(String(String("8") + (yyvsp[(2) - (2)].String)).c_str()); }
4307        break;
4308    
4309      case 228:
4310    #line 431 "lscp.y"
4311        { (yyval.Number) = atoi(String(String("9") + (yyvsp[(2) - (2)].String)).c_str()); }
4312        break;
4313    
4314      case 229:
4315    #line 433 "lscp.y"
4316        { (yyval.Char) = 'A'; }
4317        break;
4318    
4319      case 230:
4320    #line 433 "lscp.y"
4321        { (yyval.Char) = 'B'; }
4322        break;
4323    
4324      case 231:
4325    #line 433 "lscp.y"
4326        { (yyval.Char) = 'C'; }
4327        break;
4328    
4329      case 232:
4330    #line 433 "lscp.y"
4331        { (yyval.Char) = 'D'; }
4332        break;
4333    
4334      case 233:
4335    #line 433 "lscp.y"
4336        { (yyval.Char) = 'E'; }
4337        break;
4338    
4339      case 234:
4340    #line 433 "lscp.y"
4341        { (yyval.Char) = 'F'; }
4342        break;
4343    
4344      case 235:
4345    #line 433 "lscp.y"
4346        { (yyval.Char) = 'G'; }
4347        break;
4348    
4349      case 236:
4350    #line 433 "lscp.y"
4351        { (yyval.Char) = 'H'; }
4352        break;
4353    
4354      case 237:
4355    #line 433 "lscp.y"
4356        { (yyval.Char) = 'I'; }
4357        break;
4358    
4359      case 238:
4360    #line 433 "lscp.y"
4361        { (yyval.Char) = 'J'; }
4362        break;
4363    
4364      case 239:
4365    #line 433 "lscp.y"
4366        { (yyval.Char) = 'K'; }
4367        break;
4368    
4369      case 240:
4370    #line 433 "lscp.y"
4371        { (yyval.Char) = 'L'; }
4372        break;
4373    
4374      case 241:
4375    #line 433 "lscp.y"
4376        { (yyval.Char) = 'M'; }
4377        break;
4378    
4379      case 242:
4380    #line 433 "lscp.y"
4381        { (yyval.Char) = 'N'; }
4382        break;
4383    
4384      case 243:
4385    #line 433 "lscp.y"
4386        { (yyval.Char) = 'O'; }
4387        break;
4388    
4389      case 244:
4390    #line 433 "lscp.y"
4391        { (yyval.Char) = 'P'; }
4392        break;
4393    
4394      case 245:
4395    #line 433 "lscp.y"
4396        { (yyval.Char) = 'Q'; }
4397        break;
4398    
4399      case 246:
4400    #line 433 "lscp.y"
4401        { (yyval.Char) = 'R'; }
4402        break;
4403    
4404      case 247:
4405    #line 433 "lscp.y"
4406        { (yyval.Char) = 'S'; }
4407        break;
4408    
4409      case 248:
4410    #line 433 "lscp.y"
4411        { (yyval.Char) = 'T'; }
4412        break;
4413    
4414      case 249:
4415    #line 433 "lscp.y"
4416        { (yyval.Char) = 'U'; }
4417        break;
4418    
4419      case 250:
4420    #line 433 "lscp.y"
4421        { (yyval.Char) = 'V'; }
4422        break;
4423    
4424      case 251:
4425    #line 433 "lscp.y"
4426        { (yyval.Char) = 'W'; }
4427        break;
4428    
4429      case 252:
4430    #line 433 "lscp.y"
4431        { (yyval.Char) = 'X'; }
4432        break;
4433    
4434      case 253:
4435    #line 433 "lscp.y"
4436        { (yyval.Char) = 'Y'; }
4437        break;
4438    
4439      case 254:
4440    #line 433 "lscp.y"
4441        { (yyval.Char) = 'Z'; }
4442        break;
4443    
4444      case 255:
4445    #line 434 "lscp.y"
4446        { (yyval.Char) = 'a'; }
4447        break;
4448    
4449      case 256:
4450    #line 434 "lscp.y"
4451        { (yyval.Char) = 'b'; }
4452        break;
4453    
4454      case 257:
4455    #line 434 "lscp.y"
4456        { (yyval.Char) = 'c'; }
4457        break;
4458    
4459      case 258:
4460    #line 434 "lscp.y"
4461        { (yyval.Char) = 'd'; }
4462        break;
4463    
4464      case 259:
4465    #line 434 "lscp.y"
4466        { (yyval.Char) = 'e'; }
4467        break;
4468    
4469      case 260:
4470    #line 434 "lscp.y"
4471        { (yyval.Char) = 'f'; }
4472        break;
4473    
4474      case 261:
4475    #line 434 "lscp.y"
4476        { (yyval.Char) = 'g'; }
4477        break;
4478    
4479      case 262:
4480    #line 434 "lscp.y"
4481        { (yyval.Char) = 'h'; }
4482        break;
4483    
4484      case 263:
4485    #line 434 "lscp.y"
4486        { (yyval.Char) = 'i'; }
4487        break;
4488    
4489      case 264:
4490    #line 434 "lscp.y"
4491        { (yyval.Char) = 'j'; }
4492        break;
4493    
4494      case 265:
4495    #line 434 "lscp.y"
4496        { (yyval.Char) = 'k'; }
4497        break;
4498    
4499      case 266:
4500    #line 434 "lscp.y"
4501        { (yyval.Char) = 'l'; }
4502        break;
4503    
4504      case 267:
4505    #line 434 "lscp.y"
4506        { (yyval.Char) = 'm'; }
4507        break;
4508    
4509      case 268:
4510    #line 434 "lscp.y"
4511        { (yyval.Char) = 'n'; }
4512        break;
4513    
4514      case 269:
4515    #line 434 "lscp.y"
4516        { (yyval.Char) = 'o'; }
4517        break;
4518    
4519      case 270:
4520    #line 434 "lscp.y"
4521        { (yyval.Char) = 'p'; }
4522        break;
4523    
4524      case 271:
4525    #line 434 "lscp.y"
4526        { (yyval.Char) = 'q'; }
4527        break;
4528    
4529      case 272:
4530    #line 434 "lscp.y"
4531        { (yyval.Char) = 'r'; }
4532        break;
4533    
4534      case 273:
4535    #line 434 "lscp.y"
4536        { (yyval.Char) = 's'; }
4537        break;
4538    
4539      case 274:
4540    #line 434 "lscp.y"
4541        { (yyval.Char) = 't'; }
4542        break;
4543    
4544      case 275:
4545    #line 434 "lscp.y"
4546        { (yyval.Char) = 'u'; }
4547        break;
4548    
4549      case 276:
4550    #line 434 "lscp.y"
4551        { (yyval.Char) = 'v'; }
4552        break;
4553    
4554      case 277:
4555    #line 434 "lscp.y"
4556        { (yyval.Char) = 'w'; }
4557        break;
4558    
4559      case 278:
4560    #line 434 "lscp.y"
4561        { (yyval.Char) = 'x'; }
4562        break;
4563    
4564      case 279:
4565    #line 434 "lscp.y"
4566        { (yyval.Char) = 'y'; }
4567        break;
4568    
4569      case 280:
4570    #line 434 "lscp.y"
4571        { (yyval.Char) = 'z'; }
4572        break;
4573    
4574      case 281:
4575    #line 435 "lscp.y"
4576        { (yyval.Char) = '0'; }
4577        break;
4578    
4579      case 282:
4580    #line 435 "lscp.y"
4581        { (yyval.Char) = '1'; }
4582        break;
4583    
4584      case 283:
4585    #line 435 "lscp.y"
4586        { (yyval.Char) = '2'; }
4587        break;
4588    
4589      case 284:
4590    #line 435 "lscp.y"
4591        { (yyval.Char) = '3'; }
4592        break;
4593    
4594      case 285:
4595    #line 435 "lscp.y"
4596        { (yyval.Char) = '4'; }
4597        break;
4598    
4599      case 286:
4600    #line 435 "lscp.y"
4601        { (yyval.Char) = '5'; }
4602        break;
4603    
4604      case 287:
4605    #line 435 "lscp.y"
4606        { (yyval.Char) = '6'; }
4607        break;
4608    
4609      case 288:
4610    #line 435 "lscp.y"
4611        { (yyval.Char) = '7'; }
4612        break;
4613    
4614      case 289:
4615    #line 435 "lscp.y"
4616        { (yyval.Char) = '8'; }
4617        break;
4618    
4619      case 290:
4620    #line 435 "lscp.y"
4621        { (yyval.Char) = '9'; }
4622        break;
4623    
4624      case 291:
4625    #line 436 "lscp.y"
4626        { (yyval.Char) = '!'; }
4627        break;
4628    
4629      case 292:
4630    #line 436 "lscp.y"
4631        { (yyval.Char) = '#'; }
4632        break;
4633    
4634      case 293:
4635    #line 436 "lscp.y"
4636        { (yyval.Char) = '$'; }
4637        break;
4638    
4639      case 294:
4640    #line 436 "lscp.y"
4641        { (yyval.Char) = '%'; }
4642        break;
4643    
4644      case 295:
4645    #line 436 "lscp.y"
4646        { (yyval.Char) = '&'; }
4647        break;
4648    
4649      case 296:
4650    #line 436 "lscp.y"
4651        { (yyval.Char) = '('; }
4652        break;
4653    
4654      case 297:
4655    #line 436 "lscp.y"
4656        { (yyval.Char) = ')'; }
4657        break;
4658    
4659      case 298:
4660    #line 436 "lscp.y"
4661        { (yyval.Char) = '*'; }
4662        break;
4663    
4664      case 299:
4665    #line 436 "lscp.y"
4666        { (yyval.Char) = '+'; }
4667        break;
4668    
4669      case 300:
4670    #line 436 "lscp.y"
4671        { (yyval.Char) = '-'; }
4672        break;
4673    
4674      case 301:
4675    #line 436 "lscp.y"
4676        { (yyval.Char) = '.'; }
4677        break;
4678    
4679      case 302:
4680    #line 436 "lscp.y"
4681        { (yyval.Char) = ','; }
4682        break;
4683    
4684      case 303:
4685    #line 436 "lscp.y"
4686        { (yyval.Char) = '/'; }
4687        break;
4688    
4689      case 304:
4690    #line 437 "lscp.y"
4691        { (yyval.Char) = ':'; }
4692        break;
4693    
4694      case 305:
4695    #line 437 "lscp.y"
4696        { (yyval.Char) = ';'; }
4697        break;
4698    
4699      case 306:
4700    #line 437 "lscp.y"
4701        { (yyval.Char) = '<'; }
4702        break;
4703    
4704      case 307:
4705    #line 437 "lscp.y"
4706        { (yyval.Char) = '='; }
4707        break;
4708    
4709      case 308:
4710    #line 437 "lscp.y"
4711        { (yyval.Char) = '>'; }
4712        break;
4713    
4714      case 309:
4715    #line 437 "lscp.y"
4716        { (yyval.Char) = '?'; }
4717        break;
4718    
4719      case 310:
4720    #line 437 "lscp.y"
4721        { (yyval.Char) = '@'; }
4722        break;
4723    
4724      case 311:
4725    #line 438 "lscp.y"
4726        { (yyval.Char) = '['; }
4727        break;
4728    
4729      case 312:
4730    #line 438 "lscp.y"
4731        { (yyval.Char) = '\\'; }
4732        break;
4733    
4734      case 313:
4735    #line 438 "lscp.y"
4736        { (yyval.Char) = ']'; }
4737        break;
4738    
4739      case 314:
4740    #line 438 "lscp.y"
4741        { (yyval.Char) = '^'; }
4742        break;
4743    
4744      case 315:
4745    #line 438 "lscp.y"
4746        { (yyval.Char) = '_'; }
4747        break;
4748    
4749      case 316:
4750    #line 439 "lscp.y"
4751        { (yyval.Char) = '{'; }
4752        break;
4753    
4754      case 317:
4755    #line 439 "lscp.y"
4756        { (yyval.Char) = '|'; }
4757        break;
4758    
4759      case 318:
4760    #line 439 "lscp.y"
4761        { (yyval.Char) = '}'; }
4762        break;
4763    
4764      case 319:
4765    #line 439 "lscp.y"
4766        { (yyval.Char) = '~'; }
4767        break;
4768    
4769      case 320:
4770    #line 440 "lscp.y"
4771        { (yyval.Char) = '\200'; }
4772        break;
4773    
4774      case 321:
4775    #line 440 "lscp.y"
4776        { (yyval.Char) = '\201'; }
4777        break;
4778    
4779      case 322:
4780    #line 440 "lscp.y"
4781        { (yyval.Char) = '\202'; }
4782        break;
4783    
4784      case 323:
4785    #line 441 "lscp.y"
4786        { (yyval.Char) = '\203'; }
4787        break;
4788    
4789      case 324:
4790    #line 441 "lscp.y"
4791        { (yyval.Char) = '\204'; }
4792        break;
4793    
4794      case 325:
4795    #line 441 "lscp.y"
4796        { (yyval.Char) = '\205'; }
4797        break;
4798    
4799      case 326:
4800    #line 442 "lscp.y"
4801        { (yyval.Char) = '\206'; }
4802        break;
4803    
4804      case 327:
4805    #line 442 "lscp.y"
4806        { (yyval.Char) = '\207'; }
4807        break;
4808    
4809      case 328:
4810    #line 442 "lscp.y"
4811        { (yyval.Char) = '\210'; }
4812        break;
4813    
4814      case 329:
4815    #line 443 "lscp.y"
4816        { (yyval.Char) = '\211'; }
4817        break;
4818    
4819      case 330:
4820    #line 443 "lscp.y"
4821        { (yyval.Char) = '\212'; }
4822        break;
4823    
4824      case 331:
4825    #line 443 "lscp.y"
4826        { (yyval.Char) = '\213'; }
4827        break;
4828    
4829      case 332:
4830    #line 444 "lscp.y"
4831        { (yyval.Char) = '\214'; }
4832        break;
4833    
4834      case 333:
4835    #line 444 "lscp.y"
4836        { (yyval.Char) = '\215'; }
4837        break;
4838    
4839      case 334:
4840    #line 444 "lscp.y"
4841        { (yyval.Char) = '\216'; }
4842        break;
4843    
4844      case 335:
4845    #line 445 "lscp.y"
4846        { (yyval.Char) = '\217'; }
4847        break;
4848    
4849      case 336:
4850    #line 445 "lscp.y"
4851        { (yyval.Char) = '\220'; }
4852        break;
4853    
4854      case 337:
4855    #line 445 "lscp.y"
4856        { (yyval.Char) = '\221'; }
4857        break;
4858    
4859      case 338:
4860    #line 446 "lscp.y"
4861        { (yyval.Char) = '\222'; }
4862        break;
4863    
4864      case 339:
4865    #line 446 "lscp.y"
4866        { (yyval.Char) = '\223'; }
4867        break;
4868    
4869      case 340:
4870    #line 446 "lscp.y"
4871        { (yyval.Char) = '\224'; }
4872        break;
4873    
4874      case 341:
4875    #line 447 "lscp.y"
4876        { (yyval.Char) = '\225'; }
4877        break;
4878    
4879      case 342:
4880    #line 447 "lscp.y"
4881        { (yyval.Char) = '\226'; }
4882        break;
4883    
4884      case 343:
4885    #line 447 "lscp.y"
4886        { (yyval.Char) = '\227'; }
4887        break;
4888    
4889      case 344:
4890    #line 448 "lscp.y"
4891        { (yyval.Char) = '\230'; }
4892        break;
4893    
4894      case 345:
4895    #line 448 "lscp.y"
4896        { (yyval.Char) = '\231'; }
4897        break;
4898    
4899      case 346:
4900    #line 448 "lscp.y"
4901        { (yyval.Char) = '\232'; }
4902        break;
4903    
4904      case 347:
4905    #line 449 "lscp.y"
4906        { (yyval.Char) = '\233'; }
4907        break;
4908    
4909      case 348:
4910    #line 449 "lscp.y"
4911        { (yyval.Char) = '\234'; }
4912        break;
4913    
4914      case 349:
4915    #line 449 "lscp.y"
4916        { (yyval.Char) = '\235'; }
4917        break;
4918    
4919      case 350:
4920    #line 450 "lscp.y"
4921        { (yyval.Char) = '\236'; }
4922        break;
4923    
4924      case 351:
4925    #line 450 "lscp.y"
4926        { (yyval.Char) = '\237'; }
4927        break;
4928    
4929      case 352:
4930    #line 450 "lscp.y"
4931        { (yyval.Char) = '\240'; }
4932        break;
4933    
4934      case 353:
4935    #line 451 "lscp.y"
4936        { (yyval.Char) = '\241'; }
4937        break;
4938    
4939      case 354:
4940    #line 451 "lscp.y"
4941        { (yyval.Char) = '\242'; }
4942        break;
4943    
4944      case 355:
4945    #line 451 "lscp.y"
4946        { (yyval.Char) = '\243'; }
4947        break;
4948    
4949      case 356:
4950    #line 452 "lscp.y"
4951        { (yyval.Char) = '\244'; }
4952        break;
4953    
4954      case 357:
4955    #line 452 "lscp.y"
4956        { (yyval.Char) = '\245'; }
4957        break;
4958    
4959      case 358:
4960    #line 452 "lscp.y"
4961        { (yyval.Char) = '\246'; }
4962        break;
4963    
4964      case 359:
4965    #line 453 "lscp.y"
4966        { (yyval.Char) = '\247'; }
4967        break;
4968    
4969      case 360:
4970    #line 453 "lscp.y"
4971        { (yyval.Char) = '\250'; }
4972        break;
4973    
4974      case 361:
4975    #line 453 "lscp.y"
4976        { (yyval.Char) = '\251'; }
4977        break;
4978    
4979      case 362:
4980    #line 454 "lscp.y"
4981        { (yyval.Char) = '\252'; }
4982        break;
4983    
4984      case 363:
4985    #line 454 "lscp.y"
4986        { (yyval.Char) = '\253'; }
4987        break;
4988    
4989      case 364:
4990    #line 454 "lscp.y"
4991        { (yyval.Char) = '\254'; }
4992        break;
4993    
4994      case 365:
4995    #line 455 "lscp.y"
4996        { (yyval.Char) = '\255'; }
4997        break;
4998    
4999      case 366:
5000    #line 455 "lscp.y"
5001        { (yyval.Char) = '\256'; }
5002        break;
5003    
5004      case 367:
5005    #line 455 "lscp.y"
5006        { (yyval.Char) = '\257'; }
5007        break;
5008    
5009      case 368:
5010    #line 456 "lscp.y"
5011        { (yyval.Char) = '\260'; }
5012        break;
5013    
5014      case 369:
5015    #line 456 "lscp.y"
5016        { (yyval.Char) = '\261'; }
5017        break;
5018    
5019      case 370:
5020    #line 456 "lscp.y"
5021        { (yyval.Char) = '\262'; }
5022        break;
5023    
5024      case 371:
5025    #line 457 "lscp.y"
5026        { (yyval.Char) = '\263'; }
5027        break;
5028    
5029      case 372:
5030    #line 457 "lscp.y"
5031        { (yyval.Char) = '\264'; }
5032        break;
5033    
5034      case 373:
5035    #line 457 "lscp.y"
5036        { (yyval.Char) = '\265'; }
5037        break;
5038    
5039      case 374:
5040    #line 458 "lscp.y"
5041        { (yyval.Char) = '\266'; }
5042        break;
5043    
5044      case 375:
5045    #line 458 "lscp.y"
5046        { (yyval.Char) = '\267'; }
5047        break;
5048    
5049      case 376:
5050    #line 458 "lscp.y"
5051        { (yyval.Char) = '\270'; }
5052        break;
5053    
5054      case 377:
5055    #line 459 "lscp.y"
5056        { (yyval.Char) = '\271'; }
5057        break;
5058    
5059      case 378:
5060    #line 459 "lscp.y"
5061        { (yyval.Char) = '\272'; }
5062        break;
5063    
5064      case 379:
5065    #line 459 "lscp.y"
5066        { (yyval.Char) = '\273'; }
5067        break;
5068    
5069      case 380:
5070    #line 460 "lscp.y"
5071        { (yyval.Char) = '\274'; }
5072        break;
5073    
5074      case 381:
5075    #line 460 "lscp.y"
5076        { (yyval.Char) = '\275'; }
5077        break;
5078    
5079      case 382:
5080    #line 460 "lscp.y"
5081        { (yyval.Char) = '\276'; }
5082        break;
5083    
5084      case 383:
5085    #line 461 "lscp.y"
5086        { (yyval.Char) = '\277'; }
5087        break;
5088    
5089      case 384:
5090    #line 461 "lscp.y"
5091        { (yyval.Char) = '\300'; }
5092        break;
5093    
5094      case 385:
5095    #line 461 "lscp.y"
5096        { (yyval.Char) = '\301'; }
5097        break;
5098    
5099      case 386:
5100    #line 462 "lscp.y"
5101        { (yyval.Char) = '\302'; }
5102        break;
5103    
5104      case 387:
5105    #line 462 "lscp.y"
5106        { (yyval.Char) = '\303'; }
5107        break;
5108    
5109      case 388:
5110    #line 462 "lscp.y"
5111        { (yyval.Char) = '\304'; }
5112        break;
5113    
5114      case 389:
5115    #line 463 "lscp.y"
5116        { (yyval.Char) = '\305'; }
5117        break;
5118    
5119      case 390:
5120    #line 463 "lscp.y"
5121        { (yyval.Char) = '\306'; }
5122        break;
5123    
5124      case 391:
5125    #line 463 "lscp.y"
5126        { (yyval.Char) = '\307'; }
5127        break;
5128    
5129      case 392:
5130    #line 464 "lscp.y"
5131        { (yyval.Char) = '\310'; }
5132        break;
5133    
5134      case 393:
5135    #line 464 "lscp.y"
5136        { (yyval.Char) = '\311'; }
5137        break;
5138    
5139      case 394:
5140    #line 464 "lscp.y"
5141        { (yyval.Char) = '\312'; }
5142        break;
5143    
5144      case 395:
5145    #line 465 "lscp.y"
5146        { (yyval.Char) = '\313'; }
5147        break;
5148    
5149      case 396:
5150    #line 465 "lscp.y"
5151        { (yyval.Char) = '\314'; }
5152        break;
5153    
5154      case 397:
5155    #line 465 "lscp.y"
5156        { (yyval.Char) = '\315'; }
5157        break;
5158    
5159      case 398:
5160    #line 466 "lscp.y"
5161        { (yyval.Char) = '\316'; }
5162        break;
5163    
5164      case 399:
5165    #line 466 "lscp.y"
5166        { (yyval.Char) = '\317'; }
5167        break;
5168    
5169      case 400:
5170    #line 466 "lscp.y"
5171        { (yyval.Char) = '\320'; }
5172        break;
5173    
5174      case 401:
5175    #line 467 "lscp.y"
5176        { (yyval.Char) = '\321'; }
5177        break;
5178    
5179      case 402:
5180    #line 467 "lscp.y"
5181        { (yyval.Char) = '\322'; }
5182        break;
5183    
5184      case 403:
5185    #line 467 "lscp.y"
5186        { (yyval.Char) = '\323'; }
5187        break;
5188    
5189      case 404:
5190    #line 468 "lscp.y"
5191        { (yyval.Char) = '\324'; }
5192        break;
5193    
5194      case 405:
5195    #line 468 "lscp.y"
5196        { (yyval.Char) = '\325'; }
5197        break;
5198    
5199      case 406:
5200    #line 468 "lscp.y"
5201        { (yyval.Char) = '\326'; }
5202        break;
5203    
5204      case 407:
5205    #line 469 "lscp.y"
5206        { (yyval.Char) = '\327'; }
5207        break;
5208    
5209      case 408:
5210    #line 469 "lscp.y"
5211        { (yyval.Char) = '\330'; }
5212        break;
5213    
5214      case 409:
5215    #line 469 "lscp.y"
5216        { (yyval.Char) = '\331'; }
5217        break;
5218    
5219      case 410:
5220    #line 470 "lscp.y"
5221        { (yyval.Char) = '\332'; }
5222        break;
5223    
5224      case 411:
5225    #line 470 "lscp.y"
5226        { (yyval.Char) = '\333'; }
5227        break;
5228    
5229      case 412:
5230    #line 470 "lscp.y"
5231        { (yyval.Char) = '\334'; }
5232        break;
5233    
5234      case 413:
5235    #line 471 "lscp.y"
5236        { (yyval.Char) = '\335'; }
5237        break;
5238    
5239      case 414:
5240    #line 471 "lscp.y"
5241        { (yyval.Char) = '\336'; }
5242        break;
5243    
5244      case 415:
5245    #line 471 "lscp.y"
5246        { (yyval.Char) = '\337'; }
5247        break;
5248    
5249      case 416:
5250    #line 472 "lscp.y"
5251        { (yyval.Char) = '\340'; }
5252        break;
5253    
5254      case 417:
5255    #line 472 "lscp.y"
5256        { (yyval.Char) = '\341'; }
5257        break;
5258    
5259      case 418:
5260    #line 472 "lscp.y"
5261        { (yyval.Char) = '\342'; }
5262        break;
5263    
5264      case 419:
5265    #line 473 "lscp.y"
5266        { (yyval.Char) = '\343'; }
5267        break;
5268    
5269      case 420:
5270    #line 473 "lscp.y"
5271        { (yyval.Char) = '\344'; }
5272        break;
5273    
5274      case 421:
5275    #line 473 "lscp.y"
5276        { (yyval.Char) = '\345'; }
5277        break;
5278    
5279      case 422:
5280    #line 474 "lscp.y"
5281        { (yyval.Char) = '\346'; }
5282        break;
5283    
5284      case 423:
5285    #line 474 "lscp.y"
5286        { (yyval.Char) = '\347'; }
5287        break;
5288    
5289      case 424:
5290    #line 474 "lscp.y"
5291        { (yyval.Char) = '\350'; }
5292        break;
5293    
5294      case 425:
5295    #line 475 "lscp.y"
5296        { (yyval.Char) = '\351'; }
5297        break;
5298    
5299      case 426:
5300    #line 475 "lscp.y"
5301        { (yyval.Char) = '\352'; }
5302        break;
5303    
5304      case 427:
5305    #line 475 "lscp.y"
5306        { (yyval.Char) = '\353'; }
5307        break;
5308    
5309      case 428:
5310    #line 476 "lscp.y"
5311        { (yyval.Char) = '\354'; }
5312        break;
5313    
5314      case 429:
5315    #line 476 "lscp.y"
5316        { (yyval.Char) = '\355'; }
5317        break;
5318    
5319      case 430:
5320    #line 476 "lscp.y"
5321        { (yyval.Char) = '\356'; }
5322        break;
5323    
5324      case 431:
5325    #line 477 "lscp.y"
5326        { (yyval.Char) = '\357'; }
5327        break;
5328    
5329      case 432:
5330    #line 477 "lscp.y"
5331        { (yyval.Char) = '\360'; }
5332        break;
5333    
5334      case 433:
5335    #line 477 "lscp.y"
5336        { (yyval.Char) = '\361'; }
5337        break;
5338    
5339      case 434:
5340    #line 478 "lscp.y"
5341        { (yyval.Char) = '\362'; }
5342        break;
5343    
5344      case 435:
5345    #line 478 "lscp.y"
5346        { (yyval.Char) = '\363'; }
5347        break;
5348    
5349      case 436:
5350    #line 478 "lscp.y"
5351        { (yyval.Char) = '\364'; }
5352        break;
5353    
5354      case 437:
5355    #line 479 "lscp.y"
5356        { (yyval.Char) = '\365'; }
5357        break;
5358    
5359      case 438:
5360    #line 479 "lscp.y"
5361        { (yyval.Char) = '\366'; }
5362        break;
5363    
5364      case 439:
5365    #line 479 "lscp.y"
5366        { (yyval.Char) = '\367'; }
5367        break;
5368    
5369      case 440:
5370    #line 480 "lscp.y"
5371        { (yyval.Char) = '\370'; }
5372        break;
5373    
5374      case 441:
5375    #line 480 "lscp.y"
5376        { (yyval.Char) = '\371'; }
5377        break;
5378    
5379      case 442:
5380    #line 480 "lscp.y"
5381        { (yyval.Char) = '\372'; }
5382        break;
5383    
5384      case 443:
5385    #line 481 "lscp.y"
5386        { (yyval.Char) = '\373'; }
5387        break;
5388    
5389      case 444:
5390    #line 481 "lscp.y"
5391        { (yyval.Char) = '\374'; }
5392        break;
5393    
5394      case 445:
5395    #line 481 "lscp.y"
5396        { (yyval.Char) = '\375'; }
5397        break;
5398    
5399      case 446:
5400    #line 482 "lscp.y"
5401        { (yyval.Char) = '\376'; }
5402        break;
5403    
5404      case 447:
5405    #line 482 "lscp.y"
5406        { (yyval.Char) = '\377'; }
5407        break;
5408    
5409      case 448:
5410    #line 485 "lscp.y"
5411        { (yyval.String) = " ";      }
5412        break;
5413    
5414      case 450:
5415    #line 487 "lscp.y"
5416        { (yyval.String) = (yyvsp[(1) - (2)].String) + " "; }
5417        break;
5418    
5419      case 451:
5420    #line 488 "lscp.y"
5421        { (yyval.String) = (yyvsp[(1) - (2)].String) + (yyvsp[(2) - (2)].String);  }
5422        break;
5423    
5424      case 452:
5425    #line 491 "lscp.y"
5426        { (yyval.String) = (yyvsp[(2) - (3)].String); }
5427        break;
5428    
5429      case 453:
5430    #line 492 "lscp.y"
5431        { (yyval.String) = (yyvsp[(2) - (3)].String); }
5432        break;
5433    
5434    
5435    /* Line 1267 of yacc.c.  */
5436    #line 5437 "y.tab.c"
5437          default: break;
5438        }
5439      YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
5440    
5441      YYPOPSTACK (yylen);
5442      yylen = 0;
5443    YY_STACK_PRINT (yyss, yyssp);    YY_STACK_PRINT (yyss, yyssp);
5444    
5445    *++yyvsp = yyval;    *++yyvsp = yyval;
# Line 1597  yyerrlab: Line 5468  yyerrlab:
5468    if (!yyerrstatus)    if (!yyerrstatus)
5469      {      {
5470        ++yynerrs;        ++yynerrs;
5471  #if YYERROR_VERBOSE  #if ! YYERROR_VERBOSE
5472        yyn = yypact[yystate];        yyerror (YY_("syntax error"));
5473    #else
5474        if (YYPACT_NINF < yyn && yyn < YYLAST)        {
5475          {          YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
5476            YYSIZE_T yysize = 0;          if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
5477            int yytype = YYTRANSLATE (yychar);            {
5478            char *yymsg;              YYSIZE_T yyalloc = 2 * yysize;
5479            int yyx, yycount;              if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
5480                  yyalloc = YYSTACK_ALLOC_MAXIMUM;
5481            yycount = 0;              if (yymsg != yymsgbuf)
           /* Start YYX at -YYN if negative to avoid negative indexes in  
              YYCHECK.  */  
           for (yyx = yyn < 0 ? -yyn : 0;  
                yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)  
             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)  
               yysize += yystrlen (yytname[yyx]) + 15, yycount++;  
           yysize += yystrlen ("syntax error, unexpected ") + 1;  
           yysize += yystrlen (yytname[yytype]);  
           yymsg = (char *) YYSTACK_ALLOC (yysize);  
           if (yymsg != 0)  
             {  
               char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");  
               yyp = yystpcpy (yyp, yytname[yytype]);  
   
               if (yycount < 5)  
                 {  
                   yycount = 0;  
                   for (yyx = yyn < 0 ? -yyn : 0;  
                        yyx < (int) (sizeof (yytname) / sizeof (char *));  
                        yyx++)  
                     if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)  
                       {  
                         const char *yyq = ! yycount ? ", expecting " : " or ";  
                         yyp = yystpcpy (yyp, yyq);  
                         yyp = yystpcpy (yyp, yytname[yyx]);  
                         yycount++;  
                       }  
                 }  
               yyerror (yymsg);  
5482                YYSTACK_FREE (yymsg);                YYSTACK_FREE (yymsg);
5483              }              yymsg = (char *) YYSTACK_ALLOC (yyalloc);
5484            else              if (yymsg)
5485              yyerror ("syntax error; also virtual memory exhausted");                yymsg_alloc = yyalloc;
5486          }              else
5487        else                {
5488  #endif /* YYERROR_VERBOSE */                  yymsg = yymsgbuf;
5489          yyerror ("syntax error");                  yymsg_alloc = sizeof yymsgbuf;
5490                  }
5491              }
5492    
5493            if (0 < yysize && yysize <= yymsg_alloc)
5494              {
5495                (void) yysyntax_error (yymsg, yystate, yychar);
5496                yyerror (yymsg);
5497              }
5498            else
5499              {
5500                yyerror (YY_("syntax error"));
5501                if (yysize != 0)
5502                  goto yyexhaustedlab;
5503              }
5504          }
5505    #endif
5506      }      }
5507    
5508    
5509    
5510    if (yyerrstatus == 3)    if (yyerrstatus == 3)
5511      {      {
5512        /* If just tried and failed to reuse lookahead token after an        /* If just tried and failed to reuse look-ahead token after an
5513           error, discard it.  */           error, discard it.  */
5514    
5515        /* Return failure if at end of input.  */        if (yychar <= YYEOF)
5516        if (yychar == YYEOF)          {
5517          {            /* Return failure if at end of input.  */
5518            /* Pop the error token.  */            if (yychar == YYEOF)
5519            YYPOPSTACK;              YYABORT;
5520            /* Pop the rest of the stack.  */          }
5521            while (yyss < yyssp)        else
5522              {          {
5523                YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);            yydestruct ("Error: discarding",
5524                yydestruct (yystos[*yyssp], yyvsp);                        yytoken, &yylval);
5525                YYPOPSTACK;            yychar = YYEMPTY;
5526              }          }
           YYABORT;  
         }  
   
       YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);  
       yydestruct (yytoken, &yylval);  
       yychar = YYEMPTY;  
   
5527      }      }
5528    
5529    /* Else will try to reuse lookahead token after shifting the error    /* Else will try to reuse look-ahead token after shifting the error
5530       token.  */       token.  */
5531    goto yyerrlab1;    goto yyerrlab1;
5532    
5533    
5534  /*----------------------------------------------------.  /*---------------------------------------------------.
5535  | yyerrlab1 -- error raised explicitly by an action.  |  | yyerrorlab -- error raised explicitly by YYERROR.  |
5536  `----------------------------------------------------*/  `---------------------------------------------------*/
5537    yyerrorlab:
5538    
5539      /* Pacify compilers like GCC when the user code never invokes
5540         YYERROR and the label yyerrorlab therefore never appears in user
5541         code.  */
5542      if (/*CONSTCOND*/ 0)
5543         goto yyerrorlab;
5544    
5545      /* Do not reclaim the symbols of the rule which action triggered
5546         this YYERROR.  */
5547      YYPOPSTACK (yylen);
5548      yylen = 0;
5549      YY_STACK_PRINT (yyss, yyssp);
5550      yystate = *yyssp;
5551      goto yyerrlab1;
5552    
5553    
5554    /*-------------------------------------------------------------.
5555    | yyerrlab1 -- common code for both syntax error and YYERROR.  |
5556    `-------------------------------------------------------------*/
5557  yyerrlab1:  yyerrlab1:
5558    yyerrstatus = 3;      /* Each real token shifted decrements this.  */    yyerrstatus = 3;      /* Each real token shifted decrements this.  */
5559    
# Line 1704  yyerrlab1: Line 5575  yyerrlab1:
5575        if (yyssp == yyss)        if (yyssp == yyss)
5576          YYABORT;          YYABORT;
5577    
       YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);  
       yydestruct (yystos[yystate], yyvsp);  
       yyvsp--;  
       yystate = *--yyssp;  
5578    
5579          yydestruct ("Error: popping",
5580                      yystos[yystate], yyvsp);
5581          YYPOPSTACK (1);
5582          yystate = *yyssp;
5583        YY_STACK_PRINT (yyss, yyssp);        YY_STACK_PRINT (yyss, yyssp);
5584      }      }
5585    
5586    if (yyn == YYFINAL)    if (yyn == YYFINAL)
5587      YYACCEPT;      YYACCEPT;
5588    
   YYDPRINTF ((stderr, "Shifting error token, "));  
   
5589    *++yyvsp = yylval;    *++yyvsp = yylval;
5590    
5591    
5592      /* Shift the error token.  */
5593      YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
5594    
5595    yystate = yyn;    yystate = yyn;
5596    goto yynewstate;    goto yynewstate;
5597    
# Line 1739  yyabortlab: Line 5611  yyabortlab:
5611    goto yyreturn;    goto yyreturn;
5612    
5613  #ifndef yyoverflow  #ifndef yyoverflow
5614  /*----------------------------------------------.  /*-------------------------------------------------.
5615  | yyoverflowlab -- parser overflow comes here.  |  | yyexhaustedlab -- memory exhaustion comes here.  |
5616  `----------------------------------------------*/  `-------------------------------------------------*/
5617  yyoverflowlab:  yyexhaustedlab:
5618    yyerror ("parser stack overflow");    yyerror (YY_("memory exhausted"));
5619    yyresult = 2;    yyresult = 2;
5620    /* Fall through.  */    /* Fall through.  */
5621  #endif  #endif
5622    
5623  yyreturn:  yyreturn:
5624      if (yychar != YYEOF && yychar != YYEMPTY)
5625         yydestruct ("Cleanup: discarding lookahead",
5626                     yytoken, &yylval);
5627      /* Do not reclaim the symbols of the rule which action triggered
5628         this YYABORT or YYACCEPT.  */
5629      YYPOPSTACK (yylen);
5630      YY_STACK_PRINT (yyss, yyssp);
5631      while (yyssp != yyss)
5632        {
5633          yydestruct ("Cleanup: popping",
5634                      yystos[*yyssp], yyvsp);
5635          YYPOPSTACK (1);
5636        }
5637  #ifndef yyoverflow  #ifndef yyoverflow
5638    if (yyss != yyssa)    if (yyss != yyssa)
5639      YYSTACK_FREE (yyss);      YYSTACK_FREE (yyss);
5640  #endif  #endif
5641    return yyresult;  #if YYERROR_VERBOSE
5642      if (yymsg != yymsgbuf)
5643        YYSTACK_FREE (yymsg);
5644    #endif
5645      /* Make sure YYID is used.  */
5646      return YYID (yyresult);
5647  }  }
5648    
5649    
5650  #line 210 "lscp.y"  #line 759 "lscp.y"
5651    
5652    
5653  /**  /**
# Line 1768  void yyerror(const char* s) { Line 5658  void yyerror(const char* s) {
5658  }  }
5659    
5660  /**  /**
5661   * Clears input buffer and restarts scanner.   * Clears input buffer.
5662   */   */
5663  void restart(yyparse_param_t* pparam, int& yychar) {  void restart(yyparse_param_t* pparam, int& yychar) {
5664      // restart scanner      bytes = 0;
5665      yyrestart(stdin, pparam->pScanner);      ptr   = 0;
     // flush input buffer  
     static char buf[1024];  
     while(recv(hSession, buf, 1024, MSG_DONTWAIT) > 0);  
     // reset lookahead symbol  
     yyclearin;  
5666  }  }
5667    
   

Legend:
Removed from v.123  
changed lines
  Added in v.1135

  ViewVC Help
Powered by ViewVC