• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #line 2 "scanner.c"
2 /* Must come first for _LARGE_FILE_API on AIX. */
3 #include <config.h>
4 
5 /*
6  * Must come first to avoid warnings on Windows.
7  *
8  * Flex-generated scanners may only include <inttypes.h> if __STDC_VERSION__
9  * is defined with a value >= 199901, meaning "full C99", and MSVC may not
10  * define it with that value, because it isn't 100% C99-compliant, even
11  * though it has an <inttypes.h> capable of defining everything the Flex
12  * scanner needs.
13  *
14  * We, however, will include it if we know we have an MSVC version that has
15  * it; this means that we may define the INTn_MAX and UINTn_MAX values in
16  * scanner.c, and then include <stdint.h>, which may define them differently
17  * (same value, but different string of characters), causing compiler warnings.
18  *
19  * If we include it here, and they're defined, that'll prevent scanner.c
20  * from defining them.  So we include <pcap/pcap-inttypes.h>, to get
21  * <inttypes.h> if we have it.
22  */
23 #include <pcap/pcap-inttypes.h>
24 
25 /*
26  * grammar.h requires gencode.h and sometimes breaks in a polluted namespace
27  * (see ftmacros.h), so include it early.
28  */
29 #include "gencode.h"
30 #include "grammar.h"
31 
32 #include "diag-control.h"
33 
34 /*
35  * Convert string to 32-bit unsigned integer; the string starts at
36  * string and is string_len bytes long.
37  *
38  * On success, sets *val to the value and returns 1.
39  * On failure, sets the BPF error string and returns 0.
40  *
41  * Also used in gencode.c
42  */
43 typedef enum {
44 	STOULEN_OK,
45 	STOULEN_NOT_HEX_NUMBER,
46 	STOULEN_NOT_OCTAL_NUMBER,
47 	STOULEN_NOT_DECIMAL_NUMBER,
48 	STOULEN_ERROR
49 } stoulen_ret;
50 
51 stoulen_ret stoulen(const char *string, size_t stringlen, bpf_u_int32 *val,
52     compiler_state_t *cstate);
53 
54 #line 55 "scanner.c"
55 
56 #define  YY_INT_ALIGNED short int
57 
58 /* A lexical scanner generated by flex */
59 
60 #define FLEX_SCANNER
61 #define YY_FLEX_MAJOR_VERSION 2
62 #define YY_FLEX_MINOR_VERSION 6
63 #define YY_FLEX_SUBMINOR_VERSION 4
64 #if YY_FLEX_SUBMINOR_VERSION > 0
65 #define FLEX_BETA
66 #endif
67 
68 #ifdef yy_create_buffer
69 #define pcap__create_buffer_ALREADY_DEFINED
70 #else
71 #define yy_create_buffer pcap__create_buffer
72 #endif
73 
74 #ifdef yy_delete_buffer
75 #define pcap__delete_buffer_ALREADY_DEFINED
76 #else
77 #define yy_delete_buffer pcap__delete_buffer
78 #endif
79 
80 #ifdef yy_scan_buffer
81 #define pcap__scan_buffer_ALREADY_DEFINED
82 #else
83 #define yy_scan_buffer pcap__scan_buffer
84 #endif
85 
86 #ifdef yy_scan_string
87 #define pcap__scan_string_ALREADY_DEFINED
88 #else
89 #define yy_scan_string pcap__scan_string
90 #endif
91 
92 #ifdef yy_scan_bytes
93 #define pcap__scan_bytes_ALREADY_DEFINED
94 #else
95 #define yy_scan_bytes pcap__scan_bytes
96 #endif
97 
98 #ifdef yy_init_buffer
99 #define pcap__init_buffer_ALREADY_DEFINED
100 #else
101 #define yy_init_buffer pcap__init_buffer
102 #endif
103 
104 #ifdef yy_flush_buffer
105 #define pcap__flush_buffer_ALREADY_DEFINED
106 #else
107 #define yy_flush_buffer pcap__flush_buffer
108 #endif
109 
110 #ifdef yy_load_buffer_state
111 #define pcap__load_buffer_state_ALREADY_DEFINED
112 #else
113 #define yy_load_buffer_state pcap__load_buffer_state
114 #endif
115 
116 #ifdef yy_switch_to_buffer
117 #define pcap__switch_to_buffer_ALREADY_DEFINED
118 #else
119 #define yy_switch_to_buffer pcap__switch_to_buffer
120 #endif
121 
122 #ifdef yypush_buffer_state
123 #define pcap_push_buffer_state_ALREADY_DEFINED
124 #else
125 #define yypush_buffer_state pcap_push_buffer_state
126 #endif
127 
128 #ifdef yypop_buffer_state
129 #define pcap_pop_buffer_state_ALREADY_DEFINED
130 #else
131 #define yypop_buffer_state pcap_pop_buffer_state
132 #endif
133 
134 #ifdef yyensure_buffer_stack
135 #define pcap_ensure_buffer_stack_ALREADY_DEFINED
136 #else
137 #define yyensure_buffer_stack pcap_ensure_buffer_stack
138 #endif
139 
140 #ifdef yylex
141 #define pcap_lex_ALREADY_DEFINED
142 #else
143 #define yylex pcap_lex
144 #endif
145 
146 #ifdef yyrestart
147 #define pcap_restart_ALREADY_DEFINED
148 #else
149 #define yyrestart pcap_restart
150 #endif
151 
152 #ifdef yylex_init
153 #define pcap_lex_init_ALREADY_DEFINED
154 #else
155 #define yylex_init pcap_lex_init
156 #endif
157 
158 #ifdef yylex_init_extra
159 #define pcap_lex_init_extra_ALREADY_DEFINED
160 #else
161 #define yylex_init_extra pcap_lex_init_extra
162 #endif
163 
164 #ifdef yylex_destroy
165 #define pcap_lex_destroy_ALREADY_DEFINED
166 #else
167 #define yylex_destroy pcap_lex_destroy
168 #endif
169 
170 #ifdef yyget_debug
171 #define pcap_get_debug_ALREADY_DEFINED
172 #else
173 #define yyget_debug pcap_get_debug
174 #endif
175 
176 #ifdef yyset_debug
177 #define pcap_set_debug_ALREADY_DEFINED
178 #else
179 #define yyset_debug pcap_set_debug
180 #endif
181 
182 #ifdef yyget_extra
183 #define pcap_get_extra_ALREADY_DEFINED
184 #else
185 #define yyget_extra pcap_get_extra
186 #endif
187 
188 #ifdef yyset_extra
189 #define pcap_set_extra_ALREADY_DEFINED
190 #else
191 #define yyset_extra pcap_set_extra
192 #endif
193 
194 #ifdef yyget_in
195 #define pcap_get_in_ALREADY_DEFINED
196 #else
197 #define yyget_in pcap_get_in
198 #endif
199 
200 #ifdef yyset_in
201 #define pcap_set_in_ALREADY_DEFINED
202 #else
203 #define yyset_in pcap_set_in
204 #endif
205 
206 #ifdef yyget_out
207 #define pcap_get_out_ALREADY_DEFINED
208 #else
209 #define yyget_out pcap_get_out
210 #endif
211 
212 #ifdef yyset_out
213 #define pcap_set_out_ALREADY_DEFINED
214 #else
215 #define yyset_out pcap_set_out
216 #endif
217 
218 #ifdef yyget_leng
219 #define pcap_get_leng_ALREADY_DEFINED
220 #else
221 #define yyget_leng pcap_get_leng
222 #endif
223 
224 #ifdef yyget_text
225 #define pcap_get_text_ALREADY_DEFINED
226 #else
227 #define yyget_text pcap_get_text
228 #endif
229 
230 #ifdef yyget_lineno
231 #define pcap_get_lineno_ALREADY_DEFINED
232 #else
233 #define yyget_lineno pcap_get_lineno
234 #endif
235 
236 #ifdef yyset_lineno
237 #define pcap_set_lineno_ALREADY_DEFINED
238 #else
239 #define yyset_lineno pcap_set_lineno
240 #endif
241 
242 #ifdef yyget_column
243 #define pcap_get_column_ALREADY_DEFINED
244 #else
245 #define yyget_column pcap_get_column
246 #endif
247 
248 #ifdef yyset_column
249 #define pcap_set_column_ALREADY_DEFINED
250 #else
251 #define yyset_column pcap_set_column
252 #endif
253 
254 #ifdef yywrap
255 #define pcap_wrap_ALREADY_DEFINED
256 #else
257 #define yywrap pcap_wrap
258 #endif
259 
260 #ifdef yyget_lval
261 #define pcap_get_lval_ALREADY_DEFINED
262 #else
263 #define yyget_lval pcap_get_lval
264 #endif
265 
266 #ifdef yyset_lval
267 #define pcap_set_lval_ALREADY_DEFINED
268 #else
269 #define yyset_lval pcap_set_lval
270 #endif
271 
272 #ifdef yyalloc
273 #define pcap_alloc_ALREADY_DEFINED
274 #else
275 #define yyalloc pcap_alloc
276 #endif
277 
278 #ifdef yyrealloc
279 #define pcap_realloc_ALREADY_DEFINED
280 #else
281 #define yyrealloc pcap_realloc
282 #endif
283 
284 #ifdef yyfree
285 #define pcap_free_ALREADY_DEFINED
286 #else
287 #define yyfree pcap_free
288 #endif
289 
290 /* First, we deal with  platform-specific or compiler-specific issues. */
291 
292 /* begin standard C headers. */
293 #include <stdio.h>
294 #include <string.h>
295 #include <errno.h>
296 #include <stdlib.h>
297 
298 /* end standard C headers. */
299 
300 /* flex integer type definitions */
301 
302 #ifndef FLEXINT_H
303 #define FLEXINT_H
304 
305 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
306 
307 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
308 
309 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
310  * if you want the limit (max/min) macros for int types.
311  */
312 #ifndef __STDC_LIMIT_MACROS
313 #define __STDC_LIMIT_MACROS 1
314 #endif
315 
316 #include <inttypes.h>
317 typedef int8_t flex_int8_t;
318 typedef uint8_t flex_uint8_t;
319 typedef int16_t flex_int16_t;
320 typedef uint16_t flex_uint16_t;
321 typedef int32_t flex_int32_t;
322 typedef uint32_t flex_uint32_t;
323 #else
324 typedef signed char flex_int8_t;
325 typedef short int flex_int16_t;
326 typedef int flex_int32_t;
327 typedef unsigned char flex_uint8_t;
328 typedef unsigned short int flex_uint16_t;
329 typedef unsigned int flex_uint32_t;
330 
331 /* Limits of integral types. */
332 #ifndef INT8_MIN
333 #define INT8_MIN               (-128)
334 #endif
335 #ifndef INT16_MIN
336 #define INT16_MIN              (-32767-1)
337 #endif
338 #ifndef INT32_MIN
339 #define INT32_MIN              (-2147483647-1)
340 #endif
341 #ifndef INT8_MAX
342 #define INT8_MAX               (127)
343 #endif
344 #ifndef INT16_MAX
345 #define INT16_MAX              (32767)
346 #endif
347 #ifndef INT32_MAX
348 #define INT32_MAX              (2147483647)
349 #endif
350 #ifndef UINT8_MAX
351 #define UINT8_MAX              (255U)
352 #endif
353 #ifndef UINT16_MAX
354 #define UINT16_MAX             (65535U)
355 #endif
356 #ifndef UINT32_MAX
357 #define UINT32_MAX             (4294967295U)
358 #endif
359 
360 #ifndef SIZE_MAX
361 #define SIZE_MAX               (~(size_t)0)
362 #endif
363 
364 #endif /* ! C99 */
365 
366 #endif /* ! FLEXINT_H */
367 
368 /* begin standard C++ headers. */
369 
370 /* TODO: this is always defined, so inline it */
371 #define yyconst const
372 
373 #if defined(__GNUC__) && __GNUC__ >= 3
374 #define yynoreturn __attribute__((__noreturn__))
375 #else
376 #define yynoreturn
377 #endif
378 
379 /* Returned upon end-of-file. */
380 #define YY_NULL 0
381 
382 /* Promotes a possibly negative, possibly signed char to an
383  *   integer in range [0..255] for use as an array index.
384  */
385 #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
386 
387 /* An opaque pointer. */
388 #ifndef YY_TYPEDEF_YY_SCANNER_T
389 #define YY_TYPEDEF_YY_SCANNER_T
390 typedef void* yyscan_t;
391 #endif
392 
393 /* For convenience, these vars (plus the bison vars far below)
394    are macros in the reentrant scanner. */
395 #define yyin yyg->yyin_r
396 #define yyout yyg->yyout_r
397 #define yyextra yyg->yyextra_r
398 #define yyleng yyg->yyleng_r
399 #define yytext yyg->yytext_r
400 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
401 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
402 #define yy_flex_debug yyg->yy_flex_debug_r
403 
404 /* Enter a start condition.  This macro really ought to take a parameter,
405  * but we do it the disgusting crufty way forced on us by the ()-less
406  * definition of BEGIN.
407  */
408 #define BEGIN yyg->yy_start = 1 + 2 *
409 /* Translate the current start state into a value that can be later handed
410  * to BEGIN to return to the state.  The YYSTATE alias is for lex
411  * compatibility.
412  */
413 #define YY_START ((yyg->yy_start - 1) / 2)
414 #define YYSTATE YY_START
415 /* Action number for EOF rule of a given start state. */
416 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
417 /* Special action meaning "start processing a new file". */
418 #define YY_NEW_FILE yyrestart( yyin , yyscanner )
419 #define YY_END_OF_BUFFER_CHAR 0
420 
421 /* Size of default input buffer. */
422 #ifndef YY_BUF_SIZE
423 #ifdef __ia64__
424 /* On IA-64, the buffer size is 16k, not 8k.
425  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
426  * Ditto for the __ia64__ case accordingly.
427  */
428 #define YY_BUF_SIZE 32768
429 #else
430 #define YY_BUF_SIZE 16384
431 #endif /* __ia64__ */
432 #endif
433 
434 /* The state buf must be large enough to hold one state per character in the main buffer.
435  */
436 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
437 
438 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
439 #define YY_TYPEDEF_YY_BUFFER_STATE
440 typedef struct yy_buffer_state *YY_BUFFER_STATE;
441 #endif
442 
443 #ifndef YY_TYPEDEF_YY_SIZE_T
444 #define YY_TYPEDEF_YY_SIZE_T
445 typedef size_t yy_size_t;
446 #endif
447 
448 #define EOB_ACT_CONTINUE_SCAN 0
449 #define EOB_ACT_END_OF_FILE 1
450 #define EOB_ACT_LAST_MATCH 2
451 
452     #define YY_LESS_LINENO(n)
453     #define YY_LINENO_REWIND_TO(ptr)
454 
455 /* Return all but the first "n" matched characters back to the input stream. */
456 #define yyless(n) \
457 	do \
458 		{ \
459 		/* Undo effects of setting up yytext. */ \
460         int yyless_macro_arg = (n); \
461         YY_LESS_LINENO(yyless_macro_arg);\
462 		*yy_cp = yyg->yy_hold_char; \
463 		YY_RESTORE_YY_MORE_OFFSET \
464 		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
465 		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
466 		} \
467 	while ( 0 )
468 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
469 
470 #ifndef YY_STRUCT_YY_BUFFER_STATE
471 #define YY_STRUCT_YY_BUFFER_STATE
472 struct yy_buffer_state
473 	{
474 	FILE *yy_input_file;
475 
476 	char *yy_ch_buf;		/* input buffer */
477 	char *yy_buf_pos;		/* current position in input buffer */
478 
479 	/* Size of input buffer in bytes, not including room for EOB
480 	 * characters.
481 	 */
482 	int yy_buf_size;
483 
484 	/* Number of characters read into yy_ch_buf, not including EOB
485 	 * characters.
486 	 */
487 	int yy_n_chars;
488 
489 	/* Whether we "own" the buffer - i.e., we know we created it,
490 	 * and can realloc() it to grow it, and should free() it to
491 	 * delete it.
492 	 */
493 	int yy_is_our_buffer;
494 
495 	/* Whether this is an "interactive" input source; if so, and
496 	 * if we're using stdio for input, then we want to use getc()
497 	 * instead of fread(), to make sure we stop fetching input after
498 	 * each newline.
499 	 */
500 	int yy_is_interactive;
501 
502 	/* Whether we're considered to be at the beginning of a line.
503 	 * If so, '^' rules will be active on the next match, otherwise
504 	 * not.
505 	 */
506 	int yy_at_bol;
507 
508     int yy_bs_lineno; /**< The line count. */
509     int yy_bs_column; /**< The column count. */
510 
511 	/* Whether to try to fill the input buffer when we reach the
512 	 * end of it.
513 	 */
514 	int yy_fill_buffer;
515 
516 	int yy_buffer_status;
517 
518 #define YY_BUFFER_NEW 0
519 #define YY_BUFFER_NORMAL 1
520 	/* When an EOF's been seen but there's still some text to process
521 	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
522 	 * shouldn't try reading from the input source any more.  We might
523 	 * still have a bunch of tokens to match, though, because of
524 	 * possible backing-up.
525 	 *
526 	 * When we actually see the EOF, we change the status to "new"
527 	 * (via yyrestart()), so that the user can continue scanning by
528 	 * just pointing yyin at a new input file.
529 	 */
530 #define YY_BUFFER_EOF_PENDING 2
531 
532 	};
533 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
534 
535 /* We provide macros for accessing buffer states in case in the
536  * future we want to put the buffer states in a more general
537  * "scanner state".
538  *
539  * Returns the top of the stack, or NULL.
540  */
541 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
542                           ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
543                           : NULL)
544 /* Same as previous macro, but useful when we know that the buffer stack is not
545  * NULL or when we need an lvalue. For internal use only.
546  */
547 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
548 
549 void yyrestart ( FILE *input_file , yyscan_t yyscanner );
550 void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
551 YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size , yyscan_t yyscanner );
552 void yy_delete_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
553 void yy_flush_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
554 void yypush_buffer_state ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
555 void yypop_buffer_state ( yyscan_t yyscanner );
556 
557 static void yyensure_buffer_stack ( yyscan_t yyscanner );
558 static void yy_load_buffer_state ( yyscan_t yyscanner );
559 static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file , yyscan_t yyscanner );
560 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER , yyscanner)
561 
562 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner );
563 YY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner );
564 YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len , yyscan_t yyscanner );
565 
566 void *yyalloc ( yy_size_t , yyscan_t yyscanner );
567 void *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner );
568 void yyfree ( void * , yyscan_t yyscanner );
569 
570 #define yy_new_buffer yy_create_buffer
571 #define yy_set_interactive(is_interactive) \
572 	{ \
573 	if ( ! YY_CURRENT_BUFFER ){ \
574         yyensure_buffer_stack (yyscanner); \
575 		YY_CURRENT_BUFFER_LVALUE =    \
576             yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
577 	} \
578 	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
579 	}
580 #define yy_set_bol(at_bol) \
581 	{ \
582 	if ( ! YY_CURRENT_BUFFER ){\
583         yyensure_buffer_stack (yyscanner); \
584 		YY_CURRENT_BUFFER_LVALUE =    \
585             yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
586 	} \
587 	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
588 	}
589 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
590 
591 /* Begin user sect3 */
592 
593 #define pcap_wrap(yyscanner) (/*CONSTCOND*/1)
594 #define YY_SKIP_YYWRAP
595 typedef flex_uint8_t YY_CHAR;
596 
597 typedef int yy_state_type;
598 
599 #define yytext_ptr yytext_r
600 
601 static yy_state_type yy_get_previous_state ( yyscan_t yyscanner );
602 static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  , yyscan_t yyscanner);
603 static int yy_get_next_buffer ( yyscan_t yyscanner );
604 static void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner );
605 
606 /* Done after the current pattern has been matched and before the
607  * corresponding action - sets up yytext.
608  */
609 #define YY_DO_BEFORE_ACTION \
610 	yyg->yytext_ptr = yy_bp; \
611 	yyleng = (int) (yy_cp - yy_bp); \
612 	yyg->yy_hold_char = *yy_cp; \
613 	*yy_cp = '\0'; \
614 	yyg->yy_c_buf_p = yy_cp;
615 #define YY_NUM_RULES 188
616 #define YY_END_OF_BUFFER 189
617 /* This struct is not used in this scanner,
618    but its presence is necessary. */
619 struct yy_trans_info
620 	{
621 	flex_int32_t yy_verify;
622 	flex_int32_t yy_nxt;
623 	};
624 static const flex_int16_t yy_accept[1785] =
625     {   0,
626         0,    0,  189,  187,  114,  114,  115,  187,  115,  115,
627       124,  124,  115,  115,  115,  115,  185,  185,  187,  185,
628       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
629       185,  185,  185,  185,  185,  185,  185,  185,  185,  115,
630       118,  122,   67,    0,  185,  124,    0,  185,  185,  185,
631         0,  126,  120,  117,  119,  116,  121,  185,  186,  185,
632       185,  185,   20,  185,  185,  185,  185,  185,  185,  185,
633       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
634       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
635       185,  185,  185,  185,  185,  185,    7,  185,   34,   35,
636 
637       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
638       185,  185,  185,  185,   93,  185,   68,  185,  185,  185,
639       185,  185,  185,   60,  185,  185,  185,  185,   87,  185,
640       185,  185,  185,  185,  185,   61,  185,    4,  185,  185,
641       185,  185,  185,  185,  185,   68,  122,  185,  125,  125,
642       185,  124,  185,    0,  126,  124,  126,  126,  126,  185,
643       185,  185,   67,    5,  185,   82,  185,  185,  185,  185,
644       185,  185,  185,   55,  108,    1,    0,  185,   21,  185,
645       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
646       185,  185,  185,  185,  185,  185,  185,  185,   36,  185,
647 
648       185,   18,   43,    0,  185,   29,  185,   25,   70,  185,
649       185,   80,   37,  185,  101,  185,  185,  185,  185,  102,
650       185,   46,   69,   83,  107,  185,   14,  185,    3,  185,
651       185,  185,  185,  185,   95,  185,  185,   26,  185,  106,
652       185,  109,   38,    2,  185,   42,  185,    9,  185,   10,
653        90,  185,   89,  185,  185,    0,  185,  185,  125,  185,
654       185,  185,  185,  124,    0,  185,    0,  127,  126,  126,
655         0,  126,    0,  126,    0,  126,    0,   23,  185,  185,
656       185,  185,   64,   16,   41,  185,   39,  185,  185,  185,
657        30,  185,   99,  185,  185,  185,  112,  185,  185,  105,
658 
659       111,   45,  110,  113,   11,  185,  185,   12,   13,  185,
660       185,  185,   32,   79,  185,   62,    3,  100,   47,  185,
661       185,  185,   75,  185,  185,  185,  185,   48,  185,  185,
662        40,  185,    6,  185,   94,  185,    8,   96,  185,  185,
663         0,  185,   53,   74,   15,  185,  125,  125,  185,  125,
664       125,  125,  185,  124,  185,    0,  126,  185,    0,    0,
665       126,    0,  126,  127,  126,    0,    0,    0,    0,  126,
666       126,  126,  126,  126,    0,  185,   56,   57,   58,   59,
667       185,   22,  185,  185,  185,  185,   31,  185,  185,  185,
668       103,  104,    0,   19,  185,  185,  185,  185,   88,  185,
669 
670        33,  185,   81,   28,   27,  185,  185,   84,  185,  185,
671       185,   50,   17,  185,  185,  185,  185,  185,  185,  185,
672       185,  185,  185,  185,  185,  185,  185,    0,  185,  185,
673       125,  185,  185,  185,  185,  125,  125,  185,  124,  185,
674         0,    0,  126,  126,  126,    0,    0,  127,  126,  126,
675       127,  126,    0,    0,  126,  126,  126,  126,  126,    0,
676         0,    0,    0,  126,  126,    0,  126,    0,  126,    0,
677        98,  185,  185,  185,   24,  185,  185,   78,  185,  185,
678       185,  185,  185,  185,  185,  185,  185,    0,  185,  185,
679       185,  185,  185,  185,   70,  185,  185,  185,  185,  185,
680 
681       185,  185,   76,   77,  185,   97,  185,  185,  185,  185,
682       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
683       125,  125,  185,  125,  125,  125,  125,  185,  124,  185,
684         0,  126,  126,    0,  126,    0,    0,  126,    0,  126,
685       127,  126,    0,    0,    0,  126,  126,    0,  126,  127,
686       126,    0,    0,    0,    0,    0,    0,    0,  126,  126,
687       126,  126,  126,    0,  185,  185,  185,  185,   52,   63,
688       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
689       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
690       185,  185,  185,  185,   73,   71,  185,  185,   44,   85,
691 
692        86,  185,  185,  185,  185,   54,  181,  184,  183,  177,
693       185,  179,  178,  182,  185,    0,  185,  185,  125,  185,
694       185,  185,  125,  185,  124,  185,    0,    0,  126,  126,
695       126,  126,  126,  126,    0,    0,  127,  126,  126,  126,
696         0,    0,  126,  126,  126,  126,  126,    0,    0,    0,
697         0,    0,    0,    0,  126,  126,  126,  126,  126,    0,
698         0,    0,    0,    0,  126,  126,    0,  126,    0,  126,
699         0,  185,  185,  185,  185,  185,  185,  185,  185,  185,
700       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
701       185,  185,  185,  185,  185,  185,  185,  185,  185,  129,
702 
703       128,  185,  185,   72,  185,  185,  185,  180,  176,  185,
704       185,  125,  125,  125,  125,  185,  124,  185,    0,  126,
705       126,    0,  126,  126,    0,  126,    0,    0,  126,    0,
706       126,  127,  126,    0,    0,    0,  126,  126,    0,  126,
707       127,  126,    0,    0,    0,    0,    0,  126,  126,    0,
708       126,  127,  126,    0,  126,  126,    0,    0,    0,    0,
709         0,    0,    0,  126,  126,  126,  126,  126,    0,   65,
710       185,   55,  134,  141,  185,  185,  185,  185,  185,  185,
711       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
712       185,  185,  185,  185,  185,  185,  146,  145,  185,   66,
713 
714        49,  185,  185,    0,  185,  185,  185,  185,  185,  124,
715       185,    0,    0,  126,  126,  126,  126,  126,  126,  126,
716       126,  126,    0,    0,  127,  126,  126,  126,    0,    0,
717       126,  126,  126,  126,  126,    0,    0,    0,    0,    0,
718         0,    0,  126,  126,  126,  126,  126,    0,  126,  126,
719         0,    0,    0,    0,    0,    0,    0,  126,  126,  126,
720       126,  126,    0,    0,    0,    0,    0,    0,  126,  126,
721         0,  126,    0,  126,    0,   91,  185,  185,  185,  185,
722       185,  185,  185,  185,  185,  185,  185,  185,  151,  185,
723       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
724 
725       185,   51,  123,  123,  125,  125,  185,  124,  185,    0,
726       126,  126,    0,  126,  126,    0,  126,  126,    0,  126,
727         0,  123,  126,    0,  126,  127,  126,    0,    0,    0,
728       126,  126,    0,  126,  127,  126,    0,    0,    0,    0,
729         0,  126,  126,    0,  126,  127,  126,    0,    0,    0,
730         0,    0,    0,  126,  126,    0,  126,  127,  126,    0,
731       126,  126,  126,    0,    0,    0,    0,    0,    0,    0,
732       126,  126,  126,  126,  126,    0,  185,  185,  185,  185,
733       185,  185,  185,  185,  139,  185,  185,  185,  185,  185,
734       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
735 
736        92,  123,  123,  125,  185,  123,  123,    0,    0,  126,
737       126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
738       126,    0,  123,  127,  126,  126,  126,    0,    0,  126,
739       126,  126,  126,  126,    0,    0,    0,    0,    0,    0,
740         0,  126,  126,  126,  126,  126,    0,  126,  126,    0,
741         0,    0,    0,    0,    0,    0,  126,  126,  126,  126,
742       126,    0,  126,  126,  126,    0,    0,    0,    0,    0,
743         0,    0,  126,  126,  126,  126,  126,    0,    0,    0,
744         0,    0,    0,  126,  126,    0,  126,    0,  126,    0,
745       185,  185,  185,  143,  185,  185,  185,  185,  185,  185,
746 
747       185,  131,  185,  185,  185,  185,  185,  185,  185,  185,
748       185,  185,  185,  185,  185,  185,  125,  185,  124,    0,
749       126,  126,    0,  126,  126,    0,  126,  126,    0,  126,
750       126,    0,  126,    0,    0,    0,  126,    0,    0,  126,
751       127,  126,    0,    0,    0,  126,  126,    0,  126,  127,
752       126,    0,    0,    0,    0,    0,  126,  126,    0,  126,
753       127,  126,    0,    0,    0,    0,    0,    0,  126,  126,
754         0,  126,  127,  126,    0,    0,    0,    0,    0,    0,
755       126,  126,    0,  126,  127,  126,    0,  126,  126,  126,
756         0,    0,    0,    0,    0,    0,    0,  126,  126,  126,
757 
758       126,  126,    0,  185,  185,  185,  185,  133,  185,  185,
759       185,  137,  185,  185,  185,  185,  185,  185,  185,  185,
760       185,  185,  185,  185,  185,  185,  185,  185,  185,  123,
761         0,    0,  126,  126,  126,  126,  126,  126,  126,  126,
762       126,  126,  126,  126,  126,  126,  126,    0,    0,    0,
763       127,    0,    0,  126,    0,    0,  126,  126,  126,    0,
764         0,    0,    0,    0,    0,    0,  126,  126,  126,    0,
765       126,  126,    0,    0,    0,    0,    0,    0,    0,  126,
766       126,  126,    0,  126,  126,  126,    0,    0,    0,    0,
767         0,    0,    0,  126,  126,  126,    0,  126,  126,  126,
768 
769         0,    0,    0,    0,    0,    0,    0,  126,  126,  126,
770         0,    0,    0,    0,    0,    0,  126,  126,    0,  126,
771         0,  126,    0,  130,  142,  144,  138,  185,  185,  185,
772       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
773       185,  185,  160,  185,  185,  185,  185,    0,    0,  126,
774         0,  126,    0,  126,  126,    0,  126,  126,    0,  126,
775       126,    0,  126,  126,    0,  126,    0,    0,    0,    0,
776       126,  126,    0,  126,    0,    0,  126,  126,  126,    0,
777         0,    0,    0,  126,  126,  126,    0,    0,    0,    0,
778         0,  126,  126,  126,    0,    0,    0,    0,    0,  126,
779 
780       126,  126,    0,    0,    0,    0,    0,  126,  126,  126,
781       126,  126,  126,    0,    0,    0,    0,    0,    0,    0,
782       126,  126,  126,    0,  185,  185,  185,  185,  185,  185,
783       185,  152,  185,  185,  185,  185,  185,  185,  185,  185,
784       185,  185,  185,  185,  185,    0,    0,    0,  126,  126,
785       126,  126,  126,  126,    0,    0,    0,    0,  126,  126,
786         0,    0,    0,    0,  126,  126,  126,    0,    0,    0,
787         0,    0,  126,  126,  126,  126,    0,    0,    0,    0,
788         0,  126,  126,  126,  126,    0,    0,    0,    0,    0,
789       126,  126,  126,  126,    0,    0,    0,    0,    0,  126,
790 
791         0,    0,    0,    0,    0,  126,  126,  126,  185,  185,
792       185,  140,  185,  185,  185,  185,  185,  185,  185,  185,
793       185,  185,  185,  185,  185,  185,  185,  185,  185,  126,
794       126,  126,  126,  126,  126,  126,  126,    0,    0,    0,
795         0,  126,  126,    0,    0,  126,    0,    0,    0,  126,
796         0,    0,    0,  126,    0,    0,    0,  126,    0,    0,
797         0,  126,  126,  126,  126,    0,    0,    0,    0,    0,
798       126,  135,  185,  132,  185,  185,  185,  185,  185,  185,
799       185,  185,  185,  185,  185,  185,  185,  185,  161,  185,
800       185,  126,    0,    0,  126,  126,    0,  126,  126,  126,
801 
802         0,  126,  126,  126,    0,  126,  126,  126,    0,  126,
803       126,  126,    0,    0,    0,    0,  126,  136,  185,  185,
804       185,  185,  185,  185,  185,  185,  185,  185,  185,  148,
805       185,  157,  185,  149,  126,  126,    0,    0,    0,    0,
806         0,    0,  126,  126,  126,    0,  185,  185,  185,  185,
807       185,  185,  185,  185,  185,  185,  185,  185,  185,  156,
808         0,  126,  126,  126,  126,  126,    0,  172,  185,  185,
809       185,  185,  185,  185,  185,  185,  159,  185,  185,  185,
810       126,  126,  171,  185,  185,  185,  185,  185,  185,  185,
811       158,  185,  185,  185,  185,  185,  185,  185,  185,  185,
812 
813       185,  185,  185,  185,  150,  185,  185,  185,  185,  185,
814       185,  185,  185,  185,  185,  185,  147,  185,  185,  170,
815       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
816       185,  185,  169,  185,  185,  185,  185,  185,  175,  185,
817       185,  185,  185,  185,  185,  185,  185,  185,  185,  162,
818       185,  185,  185,  185,  185,  155,  185,  185,  173,  185,
819       185,  185,  185,  185,  185,  153,  185,  174,  185,  168,
820       185,  185,  185,  185,  163,  185,  165,  185,  185,  167,
821       164,  154,  166,    0
822     } ;
823 
824 static const YY_CHAR yy_ec[256] =
825     {   0,
826         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
827         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
828         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
829         1,    2,    5,    1,    1,    6,    7,    8,    1,    9,
830         9,    7,    7,    1,   10,   11,    7,   12,   13,   14,
831        15,   16,   17,   18,   17,   17,   17,   19,    1,   20,
832        21,   22,    1,    1,   23,   23,   23,   23,   23,   23,
833        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
834        24,   24,   24,   24,   24,   24,   24,   25,   24,   24,
835         7,   26,    7,    7,   27,    1,   28,   29,   30,   31,
836 
837        32,   33,   34,   35,   36,   24,   37,   38,   39,   40,
838        41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
839        51,   24,    1,   52,    1,    1,    1,    1,    1,    1,
840         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
841         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
842         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
843         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
844         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
845         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
846         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
847 
848         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
849         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
850         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
851         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
852         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
853         1,    1,    1,    1,    1
854     } ;
855 
856 static const YY_CHAR yy_meta[53] =
857     {   0,
858         1,    2,    2,    1,    2,    1,    1,    1,    2,    3,
859         4,    5,    5,    5,    5,    5,    5,    5,    6,    1,
860         1,    1,    7,    3,    8,    1,    3,    7,    7,    7,
861         7,    7,    7,    3,    3,    3,    3,    3,    3,    3,
862         3,    3,    3,    3,    3,    3,    3,    3,    3,    8,
863         3,    1
864     } ;
865 
866 static const flex_int16_t yy_base[2245] =
867     {   0,
868         0,    0, 6541, 7736, 7736, 7736, 6491,    0, 7736, 6499,
869        43,   70, 6478,   43, 6475,   75,  110,  151,    0,   70,
870        85,  102,   67,   61,   77,  105,  113,  155,  158,  170,
871        70,  176,  165,  110,  189,  148, 6459,  184, 6448, 6433,
872      7736,    0, 7736,  225,  247,  270, 6462,  293,    0,  300,
873         0,  322, 7736, 7736, 7736, 7736, 7736,  344,    0, 6433,
874      6430, 6442,    0, 6433, 6419, 6430, 6419, 6405, 6379, 6372,
875      6373, 6370, 6360, 6369, 6349, 6359, 6342,  284, 6349, 6343,
876      6328, 6302, 6298, 6305, 6291, 6296, 6283, 6274,   89,   81,
877      6277,   29,  109, 6263, 6250, 6251,  123,  211,    0,    0,
878 
879        99,  168, 6239, 6218,  204, 6202, 6194, 6183, 6157, 6140,
880      6146, 6135, 6134, 6140,    0, 6147,    0, 6129, 6135, 6129,
881      6130, 6128, 6127,  200, 6134, 6115, 6124, 6095,  131, 6073,
882       327, 6057,  194, 6046, 6049,    0, 6033,    0, 6032, 6026,
883      6017, 6017, 6003, 5991, 6003, 7736, 7736,  363,  386,  180,
884       426,  449,  472, 5996,  479, 5996,  502,  241, 5976, 5944,
885      5927, 5911,    0,    0, 5912,    0, 5921, 5912, 5897, 5873,
886      5874, 5862, 5833, 5827,    0,    0, 5754, 5724,    0, 5703,
887      5674, 5662, 5675, 5673, 5676, 5673, 5656, 5636, 5633, 5646,
888      5629, 5607, 5599, 5581, 5542, 5553, 5538, 5535,    0, 5539,
889 
890      5515,    0,    0, 5476, 5466,    0, 5407,    0, 5404, 5392,
891      5399,    0,    0, 5387,    0, 5395, 5386,  201, 5368,    0,
892      5365, 5361,    0, 5355,    0, 5341,    0, 5322, 5324, 5299,
893      5300, 5286, 5279, 5273,    0, 5271, 5252,    0, 5239,    0,
894      5237,    0,    0,    0, 5214,    0,  223,  240, 5224,    0,
895         0, 5214,    0, 5194, 5195,  541, 5223,  563,  586, 5220,
896       593,  352,  260,  616, 5193,  639, 5191, 5170,  647,  271,
897      5150, 5148,  408,  687,  709, 5147,    0,    0, 5123,  374,
898      5107, 5112,    0,    0,    0, 5108,    0, 5073, 5069, 5053,
899         0, 5052,    0, 5045, 5043, 5034,    0, 5012, 5009,    0,
900 
901         0,    0,    0,    0,  519, 5021, 5011,    0,    0, 5013,
902      4977, 4958,    0,    0, 4954,    0,    0,    0,    0, 4968,
903      4946, 4949,    0, 4942, 4913, 4925, 4899, 4894, 4884, 4835,
904         0, 4816,    0, 4815,    0,  250,    0,    0, 4808, 4803,
905       715, 4813,    0,    0,    0,  753,  776,  272,  816, 4838,
906      4836,  360,  838,  861,  884, 4826,  891,  415, 4793, 4792,
907       913,  526,  936,  958, 4789,    0, 4787,  423,  511,  981,
908      4769, 1004,  294, 4768, 4774, 4743,    0,    0,    0,    0,
909      4720,    0, 4734, 4732, 4714, 4696,    0, 4713, 4707, 4705,
910         0,    0, 1023,  516, 4678, 4667, 4665, 4664,    0, 4653,
911 
912         0, 4631, 4624,    0,    0, 4628, 4610,  515, 4608, 4606,
913        73, 4603,    0, 4592, 4565, 4576, 4552, 4543, 4535, 4514,
914      4515, 4507, 4493, 4493, 4469, 4474, 4472, 1059, 4488, 1081,
915      1104, 4486, 1111,  669,  313, 1134,  324, 1173, 1195, 1218,
916      4476, 4475, 1226,  357, 4456, 4454, 4453, 4434, 1266,  358,
917      4431, 4430,  663,  683, 1306, 4429, 1329,  420, 4387, 4394,
918      4385,  737,    0,  394, 4382,  798, 1369, 1391, 4364,    0,
919         0, 4333, 4330, 4309,    0, 4318, 4270,    0, 4270, 4266,
920      4251, 4264, 4263,  703, 4217,  728, 4217, 1395, 4212, 4200,
921      4202, 4190, 4179, 4197,    0, 4155, 4162, 4134, 4139, 4136,
922 
923      4125, 4092,    0,    0, 4096,    0, 4067, 4058, 4071, 4070,
924      4032, 4024, 4034, 4022, 3999, 3997, 4001, 4006, 4005, 1432,
925      1455,  421, 1495, 3996, 3993,  684, 1518, 1541, 1548, 1571,
926      3983, 1578, 1601, 1623, 3982, 3981, 3969, 1645,  805, 1668,
927      1690, 3948,    0, 1026,    0,  571, 3930, 1033, 1713, 1735,
928      3905,    0,  747,  750, 3895,  601,  813,  832, 1758, 3883,
929      1781,  425, 3882, 3888,  490, 3851, 3848, 3825,    0,    0,
930      3830, 3832, 3817, 3793, 3800, 3770, 3769, 3776, 3766, 3748,
931      3759, 3739, 3739, 3707, 3688,  227, 1020, 3698, 1025, 3688,
932      3692, 3662, 3671, 3649,    0,    0, 3620, 3614,    0,    0,
933 
934         0, 3605, 3600, 3586, 3570,    0,    0,    0,    0,    0,
935      3556,    0,    0,    0, 3524, 1820, 3558, 1842, 1865, 3554,
936      1872,  330, 1894, 1917, 1924, 1947, 3545, 3530, 1955,  426,
937      3527, 1995,  449, 3525, 3503, 3485, 3482, 2035,  498, 3480,
938      1053, 1143, 2075, 3440, 2098,  538, 3438, 3445, 1144, 1145,
939      3424, 3423, 1147, 1149, 2138, 3413, 2161,  564, 3393, 3400,
940      1163,    0, 1248,    0,  624, 3390, 1255, 2201, 2223, 3389,
941         0, 2245,  301,  407,  302,  246, 1136,  522,  700, 3361,
942       539,  478,  538,  661,  569,  455,  790,  650,  682,  406,
943       757, 1017,  834, 1056,  887,  571,  796, 1168, 1242, 3360,
944 
945      3338, 1254, 3333, 3312, 1255, 1125,  590, 3310, 3307, 2282,
946      2305, 2327, 2362,  617, 2385,  627, 2393, 2416, 3302, 2423,
947      2446, 2468, 3300, 2491, 2513, 3298, 3277, 3275, 2535, 1290,
948      2558, 2580, 3252,    0, 1297,    0, 1119, 3234, 1351, 2603,
949      2625, 3231,    0, 1358,    0, 1477,    0, 1399, 3229, 1484,
950      2648, 2670, 3227,    0,  706, 1803, 3217, 1366, 1404, 3214,
951      3202, 1427, 1432, 2693, 3184, 2716,  752, 3183, 3190,  702,
952       854,  769, 1368, 1384, 1493, 1965, 1494,  907,  930,  952,
953      1990,  831, 1386, 1795, 1798,  951, 1966, 1967, 1817,  974,
954       953, 2005,  997, 2034, 1818, 1074, 1126, 1188, 1323, 1265,
955 
956      1322, 2029, 2045, 2757, 1426, 2779, 1448, 2801, 2061, 2824,
957      2847, 3181, 3172, 2855,  812, 3147, 2895,  835, 3127, 2935,
958       861, 3117, 3108, 3061, 3055, 2975,  862, 3054, 1617, 1971,
959      3015, 3020, 3038,  885, 3017, 3010, 2032, 2070, 3007, 2988,
960      2072, 2108, 3078, 2977, 3101,  888, 2976, 2951,  978, 2122,
961      2948, 2135, 2171, 2946, 2945, 2172, 2176, 3141, 2936, 3164,
962       980, 2924, 2911,    0, 2190,    0, 2267,    0, 1503, 2900,
963      2334, 3204, 3226, 2898,    0, 1594, 1595, 1616, 1639, 1819,
964      1662, 1989, 1683, 1685, 1820, 1729, 2200, 2345, 2115, 1706,
965      1728, 2171, 2726, 1886, 2727, 1751, 2262, 2259, 1775, 1887,
966 
967      2218, 1730, 3250, 3272, 3295,  981, 3334, 3357, 3380, 2897,
968      3387, 3410, 3432, 2896, 3455, 3477, 2884, 3500, 3522, 2863,
969      2862, 2860, 3544, 2344, 3567, 3589, 2858,    0, 2351,    0,
970      1556, 2857, 2743, 3612, 3634, 2856,    0, 2877,    0, 2884,
971         0, 1880, 2832, 2917, 3657, 3679, 2831,    0,    0, 2924,
972         0, 2957,    0, 1932, 2829, 2964, 3702, 3724, 2827,    0,
973         0, 1031, 2997, 2834, 2277, 2279, 2815, 2814, 2282, 2462,
974      3747, 2802, 3770, 1033, 2782, 2789, 2344, 2741, 2974, 2343,
975      1888, 2754, 2992, 2009, 3014, 2505, 2135, 3032, 2238, 2461,
976      2793, 2239, 1971, 1774, 3095, 3052, 2298, 2299, 3055, 2091,
977 
978      1813, 2137, 2240, 3811, 3834, 3843, 2439, 2779, 2759, 3860,
979      1035, 2757, 3900, 1055, 2724, 3940, 1082, 2721, 3980, 1083,
980      2701, 2700, 2699, 4019, 4042, 1167, 2698, 2727, 2754, 4082,
981      2678, 4105, 1196, 2676, 2683, 2972, 3053, 2664, 2661, 3075,
982      3112, 4145, 2651, 4168, 1197, 2633, 2616, 1301, 3126, 2614,
983      3136, 3138, 2571, 2569, 3174, 3179, 4208, 2543, 4231, 1305,
984      2541, 2548,    0, 1306, 3193, 2546, 3201, 3220, 2545, 2527,
985      3304, 3305, 4271, 2494, 4294, 1426, 2473, 2479,    0, 3319,
986         0, 3326,    0, 1978, 2451, 3792, 4334, 4356, 2449,    0,
987      3857, 3859, 3871, 2440, 3157, 3075, 2462, 3220, 2508, 2506,
988 
989      2507, 2484, 3784, 2551, 3893, 2573, 2575, 3894, 2596, 3853,
990      2574, 3786, 3787, 2619, 3916, 2620, 4380, 4403, 4412, 2429,
991      4428, 4451, 4473, 2428, 4496, 4518, 2426, 4541, 4563, 2425,
992      4586, 4608, 2424, 2400, 4631, 1431, 2399, 2396, 3962, 4671,
993      2365, 2364,    0, 3969,    0, 2011, 2363, 4002, 4694, 2305,
994      2287,    0, 4009,    0, 4064,    0, 2113, 2268, 4071, 4717,
995      2228, 2225,    0,    0, 4127,    0, 4134,    0, 2401, 2224,
996      4190, 4740, 2204, 2180,    0,    0, 4197,    0, 4253,    0,
997      2731, 2176, 4260, 4763, 2169, 2146,    0,    0, 1490, 4316,
998      2133, 3426, 3471, 2132, 2091, 3516, 3857, 4786, 2081, 4809,
999 
1000      1492, 2080, 2069, 2618, 2641, 2663, 2686, 2664, 2795, 4641,
1001      2817, 2796, 3895, 3264, 4018, 4642, 4803, 4819, 4019, 4080,
1002      4144, 4821, 4823, 3118, 4081, 3050, 3265, 4825, 3266, 4857,
1003      2021, 4873, 4896, 1494, 2019, 4936, 1518, 2016, 4976, 1520,
1004      2012, 5016, 1547, 1976, 5056, 1548, 1972, 1971, 4323, 5096,
1005      1960, 1931,    0, 1930, 3916, 4142, 5119, 1929, 1927, 1933,
1006      4205, 4268, 1905, 1881, 4331, 4350, 5142, 1847, 1807, 1813,
1007      1549, 4419, 1771, 4427, 4467, 1769, 1768, 4512, 4557, 5165,
1008      1718, 1695, 1700,    0, 1575, 4658,  121, 4642, 4666,  145,
1009       164, 4833, 4868, 5188,  168,  308,  373,    0, 1619, 4918,
1010 
1011       401, 4870, 4912,  458,  534, 4931, 4932, 5211,  532,  548,
1012       576,    0, 4958,    0, 4998,    0, 3064,  600, 5005, 5234,
1013         0,  621,    0, 2894, 2934, 3010, 3013, 3349, 5015, 5050,
1014      5026, 4207, 5027, 3403, 4270, 4333, 3350, 4668, 4872, 4853,
1015      5051, 4953, 3077, 3404, 5055, 5066, 3351, 5257, 1620,    0,
1016       622, 5297,    0,  649, 5320,    0,  650, 5343,    0,  652,
1017      5366,    0,  671, 5389,    0,  672, 4933, 5072, 5412,  673,
1018       692,  711,  763,  759, 5279,    0, 3065,  761,  779, 5286,
1019         0, 5434,    0, 3303,  821,  864,    0, 5441,    0, 5448,
1020         0, 3889,  896,  897,    0, 5455,    0, 5462,    0, 3923,
1021 
1022       918,  937,    0, 5469,    0, 5476,    0, 3927,  939,  983,
1023         0, 1640, 5483, 1015, 5091, 5294, 1068, 1120, 5491, 5492,
1024      5532, 1116,    0, 1126, 5296, 3138, 3242, 3426, 3448, 5494,
1025      5495, 3470, 3471, 3493, 3515, 5496, 3516, 5497, 4826, 3560,
1026      5510, 3561, 4851, 5503, 3582, 5555, 1164, 1197,    0,    0,
1027         0,    0,    0,    0, 5577,    0, 3928, 1200, 1201,    0,
1028      5503, 5504, 1237, 1239,    0, 1710, 5584, 1241, 5507, 5508,
1029      1242, 1279,    0,    0, 1817, 5591, 1282, 5599, 5600, 1316,
1030      1317,    0,    0, 1843, 5600, 1378, 5608, 5609, 1379, 1382,
1031         0,    0, 1844, 5614, 1406, 5610, 5611, 1422, 1429,    0,
1032 
1033         0, 5625,    0, 5639,    0, 3929, 1455,    0, 4950, 5635,
1034      4600, 3584, 3606, 5636, 5637, 5655, 5656, 5657, 5658, 5659,
1035      3629, 5660, 3651, 5663, 5662, 5668, 5669, 3628, 3605,    0,
1036      7736,    0,    0,    0,    0,    0,    0, 5677, 5686, 1468,
1037      1505,    0, 7736, 5701,    0, 7736,    0, 5708,    0, 7736,
1038         0, 5716,    0, 7736,    0, 5725,    0, 7736,    0, 5732,
1039         0, 7736,    0, 1895, 5739, 1528, 5747, 5748, 1558, 4436,
1040         0, 3672, 5093, 3673, 3674, 5750, 5752, 5751, 5755, 3695,
1041      5756, 5757, 3717, 5753, 5760, 3740, 5754, 5761, 3719, 5758,
1042      3741,    0, 5796,    0, 2009, 5803, 1591,    0, 2012, 5810,
1043 
1044      1592,    0, 2046, 5817, 1612,    0, 2175, 5824, 1636,    0,
1045      2363, 5831, 1639,    0, 5838,    0, 7736, 3763, 5847, 4099,
1046      5765, 4372, 4512, 5848, 5850, 5851, 5854, 4557, 5766, 3808,
1047      3935, 3809, 5853, 3979, 2364, 5853, 1677,    0,    0,    0,
1048         0,    0,    0, 2392, 5870, 1681, 5862, 5880, 5882, 5884,
1049      5890, 4349, 5891, 4162, 4288, 5892, 5885, 5893, 5895, 4444,
1050         0,    0,    0,    0,    0,    0,    0, 4466, 5896, 4489,
1051      5900, 5903, 5914, 5918, 5919, 5925, 4534, 5926, 5927, 4556,
1052         0,    0, 4579, 4601, 4688, 4711, 4734, 5930, 4757, 5933,
1053      4603, 5937, 5764, 4780, 5948, 5955, 5958, 5028, 5960, 5090,
1054 
1055      5964, 5030, 5961, 5091, 4867, 5963, 5135, 5136, 5966, 5967,
1056      5979, 5973, 5986, 5974, 5158, 5987, 4912, 5999, 6001, 4975,
1057      6006, 6007, 6009, 5181, 5182, 6015, 6010, 6017, 6020, 5205,
1058      5228, 6028, 5250, 6030, 5251, 6031, 6040, 5337, 5314, 5336,
1059      6044, 6049, 6050, 6055, 5359, 6053, 6054, 6056, 6069, 5382,
1060      6076, 6062, 6077, 5383, 6084, 5406, 6080, 6091, 5498, 6096,
1061      6098, 6099, 5499, 6100, 5549, 5500, 6102, 5852, 6105, 6103,
1062      6107, 6109, 6111, 6112, 6118, 6130, 6131, 6136, 6151, 6139,
1063      6141, 6143, 6144, 7736, 6178, 6185, 6189, 6192, 6195, 6198,
1064      6201, 6204, 6207, 6210, 6213, 6216, 6219, 6222, 6225, 6228,
1065 
1066      6231, 6234, 6237, 6241, 6245, 6248, 6251, 6254, 6257, 6260,
1067      6263, 6266, 6269, 6273, 6277, 6280, 6283, 6287, 6289, 6292,
1068      6295, 6298, 6301, 6304, 6307, 6310, 6313, 6317, 6319, 6322,
1069      6326, 6331, 6335, 6338, 6342, 6345, 6348, 6351, 6354, 6357,
1070      6360, 6363, 6367, 6371, 6374, 6378, 6382, 6387, 6391, 6393,
1071      6397, 6400, 6404, 6407, 6410, 6414, 6416, 6419, 6422, 6425,
1072      6428, 6431, 6434, 6437, 6440, 6443, 6447, 6449, 6452, 6455,
1073      6458, 6462, 6464, 6467, 6470, 6475, 6479, 6484, 6488, 6490,
1074      6494, 6497, 6501, 6506, 6510, 6513, 6516, 6519, 6522, 6525,
1075      6528, 6531, 6535, 6539, 6542, 6546, 6550, 6555, 6559, 6561,
1076 
1077      6565, 6568, 6572, 6575, 6580, 6584, 6589, 6593, 6595, 6599,
1078      6602, 6606, 6609, 6612, 6615, 6619, 6621, 6624, 6629, 6633,
1079      6636, 6639, 6642, 6645, 6648, 6651, 6654, 6657, 6661, 6663,
1080      6666, 6669, 6672, 6676, 6678, 6681, 6684, 6687, 6690, 6694,
1081      6696, 6699, 6702, 6705, 6710, 6714, 6719, 6723, 6725, 6729,
1082      6732, 6736, 6741, 6745, 6748, 6751, 6754, 6757, 6760, 6763,
1083      6766, 6770, 6774, 6777, 6781, 6785, 6790, 6794, 6796, 6800,
1084      6803, 6807, 6810, 6815, 6819, 6824, 6828, 6830, 6834, 6837,
1085      6841, 6844, 6847, 6852, 6856, 6861, 6865, 6867, 6871, 6874,
1086      6878, 6881, 6884, 6887, 6891, 6893, 6896, 6901, 6905, 6908,
1087 
1088      6911, 6914, 6917, 6920, 6923, 6926, 6929, 6932, 6935, 6938,
1089      6942, 6944, 6947, 6950, 6953, 6956, 6960, 6962, 6965, 6968,
1090      6971, 6974, 6977, 6981, 6983, 6986, 6989, 6992, 6995, 6998,
1091      7002, 7004, 7007, 7010, 7013, 7016, 7021, 7025, 7030, 7034,
1092      7036, 7040, 7043, 7047, 7052, 7056, 7059, 7062, 7065, 7068,
1093      7071, 7074, 7077, 7080, 7083, 7087, 7091, 7094, 7098, 7102,
1094      7107, 7111, 7113, 7117, 7120, 7124, 7127, 7132, 7136, 7141,
1095      7145, 7147, 7151, 7154, 7158, 7161, 7164, 7169, 7173, 7178,
1096      7182, 7184, 7188, 7191, 7195, 7198, 7201, 7206, 7210, 7215,
1097      7219, 7221, 7225, 7228, 7232, 7235, 7238, 7241, 7245, 7247,
1098 
1099      7250, 7253, 7258, 7262, 7265, 7268, 7271, 7274, 7277, 7280,
1100      7283, 7286, 7289, 7292, 7295, 7299, 7303, 7306, 7309, 7313,
1101      7316, 7319, 7323, 7325, 7328, 7331, 7335, 7337, 7340, 7343,
1102      7346, 7350, 7352, 7355, 7358, 7361, 7365, 7367, 7370, 7373,
1103      7376, 7380, 7382, 7385, 7388, 7393, 7397, 7402, 7406, 7408,
1104      7412, 7415, 7419, 7424, 7428, 7431, 7434, 7437, 7440, 7443,
1105      7446, 7449, 7452, 7456, 7458, 7461, 7465, 7470, 7474, 7475,
1106      7478, 7483, 7487, 7492, 7496, 7497, 7500, 7503, 7508, 7512,
1107      7517, 7521, 7522, 7525, 7528, 7533, 7537, 7542, 7546, 7547,
1108      7550, 7553, 7558, 7562, 7567, 7571, 7572, 7575, 7578, 7581,
1109 
1110      7585, 7587, 7592, 7596, 7599, 7602, 7605, 7608, 7611, 7614,
1111      7618, 7623, 7627, 7628, 7631, 7634, 7637, 7640, 7643, 7646,
1112      7649, 7652, 7655, 7658, 7663, 7667, 7670, 7673, 7676, 7680,
1113      7684, 7688, 7692, 7696, 7699, 7702, 7706, 7709, 7712, 7715,
1114      7718, 7721, 7725, 7728
1115     } ;
1116 
1117 static const flex_int16_t yy_def[2245] =
1118     {   0,
1119      1784,    1, 1784, 1784, 1784, 1784, 1784, 1785, 1784, 1784,
1120      1784,   11, 1784, 1784, 1784, 1784,   11,   17, 1786,   17,
1121        17,   17,   17,   17,   17,   18,   18,   18,   18,   18,
1122        18,   18,   18,   18,   18,   18,   18,   18,   18, 1784,
1123      1784, 1787, 1784,   18,   18,   17, 1788,   46,   18,   18,
1124        18, 1784, 1784, 1784, 1784, 1784, 1784,   45, 1786,   48,
1125        48,   48,   18,   18,   18,   18,   48,   18,   18,   48,
1126        18,   18,   18,   48,   18,   18,   18,   18,   18,   48,
1127        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1128        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1129 
1130        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1131        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1132        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1133        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1134        18,   18,   18,   18,   18, 1784, 1784,   18,   18,  149,
1135        18,   18,  152, 1789, 1784,   50, 1784,  157, 1790,   18,
1136        18,  153,   18,   18,   18,  153,   18,   18,   18,   18,
1137        18,   18,  153,   18,   18,   18,   18,   18,   18,   18,
1138       153,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1139        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1140 
1141        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1142        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1143        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1144        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1145        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1146        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1147        18,  258,  259,  153, 1791,  264, 1792, 1793, 1784,  269,
1148      1794, 1795, 1784, 1784, 1784, 1796, 1797,   18,   18,   18,
1149        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1150        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1151 
1152        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1153        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1154        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1155        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1156        18,   18,   18,   18,   18,   18,   18,  347,   18,  259,
1157       261,  259,  261,  261,  354, 1798, 1784,  353, 1799, 1800,
1158      1784, 1784, 1784, 1784, 1801, 1802, 1803, 1804, 1804, 1784,
1159      1805, 1784,  372, 1806, 1797,   18,   18,   18,   18,   18,
1160        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1161        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1162 
1163        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1164        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1165        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1166        18,   18,   18,  430,  431,  431,  436,  430,  354,  439,
1167      1807, 1808, 1784,  443, 1809, 1784, 1810, 1811, 1784,  449,
1168      1812, 1813, 1814, 1814, 1784, 1815, 1784,  457, 1816, 1802,
1169      1784, 1784, 1817, 1818, 1784, 1784, 1784, 1784, 1819, 1820,
1170        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1171        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1172        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1173 
1174        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1175        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1176        18,  521,   18,  431,  433,  431,  431,  527,  439,  529,
1177      1821, 1784, 1784, 1784, 1822, 1823, 1824, 1784, 1784, 1784,
1178      1784, 1825, 1826, 1784, 1827, 1828, 1784, 1784, 1784, 1784,
1179      1829, 1830, 1831, 1831, 1817, 1818, 1832, 1832, 1784, 1833,
1180      1784,  561, 1834, 1835,   18,   18,   18,   18,   18,   18,
1181        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1182        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1183        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1184 
1185        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1186        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1187        18,  619,  527,  623,  529,  625, 1836, 1837, 1784,  629,
1188      1838, 1784,  632, 1839, 1784, 1840, 1841, 1784,  638, 1842,
1189      1843, 1843, 1784, 1844, 1784,  645, 1845, 1846, 1847, 1847,
1190      1848, 1849, 1850, 1850, 1784, 1851, 1784,  657, 1852, 1853,
1191      1784, 1854, 1784, 1855, 1856, 1784, 1784, 1784, 1784, 1857,
1192      1858,  626,  672,  672,  672,  672,  672,  672,  672,  672,
1193       672,  672,  672,  672,  672,  672,  672,  672,  672,  672,
1194       672,  672,  672,  672,  672,  672,  672,  672,  672,  672,
1195 
1196       672,  672,  672,  672,  672,  672,  672,  672,  672,  626,
1197       626,  672,  712,  712,  712,  672,  712,  717, 1859, 1784,
1198      1784, 1784, 1860, 1784, 1784, 1861, 1862, 1863, 1784, 1784,
1199      1784, 1784, 1864, 1865, 1784, 1866, 1867, 1784, 1784, 1784,
1200      1784, 1868, 1869, 1784, 1870, 1784, 1871, 1872, 1784, 1784,
1201      1784, 1784, 1873, 1874, 1875, 1784, 1876, 1877, 1877, 1878,
1202      1879, 1880, 1880, 1784, 1881, 1784,  766, 1882, 1883, 1884,
1203      1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884,
1204      1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884,
1205      1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884,
1206 
1207      1884, 1884, 1884, 1884, 1884,  804, 1884,  804,  808,  808,
1208       810, 1885, 1886, 1784,  814, 1887, 1784,  817, 1888, 1784,
1209       820, 1889, 1784, 1890, 1891, 1784,  826, 1892, 1893, 1893,
1210      1784, 1894, 1784,  833, 1895, 1896, 1897, 1897, 1898, 1899,
1211      1900, 1900, 1784, 1901, 1784,  845, 1902, 1903, 1904, 1784,
1212      1905, 1906, 1906, 1907, 1908, 1909, 1909, 1784, 1910, 1784,
1213       860, 1911, 1912, 1913, 1784, 1914, 1784, 1915, 1916, 1784,
1214      1784, 1784, 1784, 1917, 1918, 1919, 1919, 1919, 1919, 1919,
1215      1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919,
1216      1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919,
1217 
1218      1919, 1919, 1919,  903,  903,  905,  903,  903,  908, 1920,
1219      1784, 1784, 1784, 1921, 1784, 1784, 1922, 1784, 1784, 1923,
1220      1924, 1925, 1784, 1784, 1784, 1784, 1926, 1927, 1784, 1928,
1221      1929, 1784, 1784, 1784, 1784, 1930, 1931, 1784, 1932, 1784,
1222      1933, 1934, 1784, 1784, 1784, 1784, 1935, 1936, 1937, 1784,
1223      1938, 1784, 1939, 1940, 1784, 1784, 1784, 1784, 1941, 1942,
1224      1943, 1944, 1784, 1945, 1946, 1946, 1947, 1948, 1949, 1949,
1225      1784, 1950, 1784,  973, 1951, 1952, 1953, 1953, 1953, 1953,
1226      1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953,
1227      1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953,
1228 
1229      1953, 1953, 1953, 1953, 1004, 1953, 1953, 1954, 1955, 1784,
1230      1010, 1956, 1784, 1013, 1957, 1784, 1016, 1958, 1784, 1019,
1231      1959, 1784, 1960, 1784, 1784, 1025, 1961, 1962, 1962, 1784,
1232      1963, 1784, 1032, 1964, 1965, 1966, 1966, 1967, 1968, 1969,
1233      1969, 1784, 1970, 1784, 1044, 1971, 1972, 1973, 1784, 1974,
1234      1975, 1975, 1976, 1977, 1978, 1978, 1784, 1979, 1784, 1059,
1235      1980, 1981, 1982, 1983, 1784, 1984, 1985, 1985, 1986, 1987,
1236      1988, 1988, 1784, 1989, 1784, 1075, 1990, 1991, 1992, 1784,
1237      1993, 1784, 1994, 1995, 1784, 1784, 1784, 1784, 1996, 1997,
1238      1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998,
1239 
1240      1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998,
1241      1998, 1998, 1998, 1998, 1998, 1998, 1998, 1117, 1998, 1999,
1242      1784, 1784, 1784, 2000, 1784, 1784, 2001, 1784, 1784, 2002,
1243      1784, 1784, 2003, 2004, 1784, 1135, 2005, 2006, 1784, 1784,
1244      2007, 2008, 2009, 1784, 2010, 2011, 1784, 1784, 1784, 2012,
1245      2013, 2014, 1784, 2015, 1784, 2016, 2017, 1784, 1784, 1784,
1246      2018, 2019, 2020, 2021, 1784, 2022, 1784, 2023, 2024, 1784,
1247      1784, 1784, 2025, 2026, 2027, 2028, 1784, 2029, 1784, 2030,
1248      2031, 1784, 1784, 1784, 2032, 2033, 2034, 2035, 2036, 1784,
1249      2037, 2038, 2038, 2039, 2040, 2041, 2041, 1784, 2042, 1784,
1250 
1251      1200, 2043, 2044, 2045, 2045, 2045, 2045, 2045, 2045, 2045,
1252      2045, 2045, 2045, 2045, 2045, 2045, 2045, 2045, 2045, 2045,
1253      2045, 2045, 2045, 2045, 2045, 2045, 2045, 2045, 2045, 2045,
1254      2046, 1784, 1784, 1233, 2047, 1784, 1236, 2048, 1784, 1239,
1255      2049, 1784, 1242, 2050, 1784, 1245, 2051, 1784, 1784, 1784,
1256      2052, 2053, 2054, 2055, 2056, 2056, 1784, 2057, 2058, 2059,
1257      2060, 2060, 2061, 2062, 2063, 2063, 1784, 2064, 2065, 2066,
1258      2067, 1784, 2068, 2069, 2069, 2070, 2071, 2072, 2072, 1784,
1259      2073, 2074, 2075, 2076, 2077, 1784, 2078, 2079, 2079, 2080,
1260      2081, 2082, 2082, 1784, 2083, 2084, 2085, 2086, 2087, 1784,
1261 
1262      2088, 2089, 2089, 2090, 2091, 2092, 2092, 1784, 2093, 2094,
1263      2095, 2096, 1784, 2097, 1784, 2098, 2099, 1784, 1784, 1784,
1264      2100, 2101, 2102, 2103, 2103, 2103, 2103, 2103, 2103, 2103,
1265      2103, 2103, 2103, 2103, 2103, 2103, 2103, 2103, 2103, 2103,
1266      2103, 2103, 2103, 2103, 2103, 2103, 2103, 1784, 1348, 2104,
1267      2105, 1784, 2106, 2107, 1784, 2108, 2109, 1784, 2110, 2111,
1268      1784, 2112, 2113, 1784, 2114, 2115, 2116, 2116, 1784, 2117,
1269      2118, 2119, 2120, 2121, 1784, 2122, 2123, 1784, 2124, 1784,
1270      2125, 1784, 2126, 2127, 1784, 2128, 2129, 1784, 2130, 1784,
1271      2131, 2132, 1784, 2133, 2134, 1784, 2135, 1784, 2136, 2137,
1272 
1273      1784, 2138, 2139, 1784, 2140, 1784, 2141, 2142, 1784, 2143,
1274      2144, 2145, 1784, 2146, 2147, 2147, 2148, 2149, 2150, 2150,
1275      1784, 2151, 2152, 2153, 2154, 2154, 2154, 2154, 2154, 2154,
1276      2154, 2154, 2154, 2154, 2154, 2154, 2154, 2154, 2154, 2154,
1277      2154, 2154, 2154, 2154, 2154, 1784, 2155, 2156, 2157, 2158,
1278      2159, 2160, 2161, 2162, 1784, 2163, 2164, 1784, 2165, 2166,
1279      2167, 2167, 2168, 2169, 2170, 2171, 1784, 2172, 2173, 2173,
1280      2174, 2175, 2176, 2177, 2178, 1784, 2179, 2180, 2180, 2181,
1281      2182, 2183, 2184, 2185, 1784, 2186, 2187, 2187, 2188, 2189,
1282      2190, 2191, 2192, 1784, 2193, 2194, 2194, 2195, 2196, 2197,
1283 
1284      2198, 1784, 2199, 1784, 2200, 2201, 1784, 2202, 2203, 2203,
1285      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1286      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2204,
1287      1784, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2211, 2212,
1288      2213, 2214, 1784, 1784, 2215, 1784, 2216, 1784, 2217, 1784,
1289      2218, 1784, 2219, 1784, 2220, 1784, 2221, 1784, 2222, 1784,
1290      2223, 1784, 2198, 2224, 1784, 2199, 2225, 2225, 2200, 2201,
1291      2226, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1292      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1293      2203, 2227, 1784, 2228, 2229, 1784, 2215, 2216, 2230, 1784,
1294 
1295      2217, 2218, 2231, 1784, 2219, 2220, 2232, 1784, 2221, 2222,
1296      2233, 1784, 2223, 2234, 1784, 2235, 1784, 2203, 2203, 2203,
1297      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1298      2203, 2203, 2203, 2203, 2236, 1784, 2228, 2237, 2238, 2239,
1299      2240, 2241, 2234, 2242, 1784, 2235, 2203, 2203, 2203, 2203,
1300      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1301      2243, 2237, 2238, 2239, 2240, 2241, 2244, 2203, 2203, 2203,
1302      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1303      2243, 2244, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1304      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1305 
1306      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1307      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1308      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1309      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1310      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1311      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1312      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1313      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1314      2203, 2203, 2203,    0, 1784, 1784, 1784, 1784, 1784, 1784,
1315      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1316 
1317      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1318      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1319      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1320      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1321      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1322      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1323      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1324      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1325      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1326      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1327 
1328      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1329      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1330      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1331      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1332      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1333      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1334      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1335      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1336      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1337      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1338 
1339      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1340      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1341      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1342      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1343      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1344      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1345      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1346      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1347      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1348      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1349 
1350      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1351      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1352      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1353      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1354      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1355      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1356      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1357      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1358      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1359      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1360 
1361      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1362      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1363      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1364      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1365      1784, 1784, 1784, 1784
1366     } ;
1367 
1368 static const flex_int16_t yy_nxt[7789] =
1369     {   0,
1370         4,    5,    6,    5,    7,    8,    9,   10,    9,    9,
1371         4,   11,   12,   12,   12,   12,   12,   12,   13,   14,
1372        15,   16,   17,   18,   18,   19,    4,   20,   21,   22,
1373        23,   24,   25,   26,   27,   28,   18,   29,   30,   31,
1374        32,   33,   18,   34,   35,   36,   37,   38,   39,   18,
1375        18,   40,   44,   45,   46,   46,   46,   46,   46,   46,
1376        46,   47,   53,   54,  195,   48,   49,   50,  196,   51,
1377        48,   48,   48,   48,   48,   48,   49,   49,   49,   49,
1378        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
1379        49,   49,   50,   49,   49,   56,   57,   60,   74,   61,
1380 
1381        62,  112,   75,  503,   63,   78,   79,   80,   76,   64,
1382       113,   77,   81,   65,   67,   66,  192,  504,  193,   49,
1383        58,   48,   48,   48,   48,   48,   48,   48,   68,   70,
1384       190, 1165,   82,  191,   49,   69,   83,  124,  207,   71,
1385       202,  125,   72,   85,  208,   86,   73,  197,   84,  126,
1386        87,   88,  198,   89,  127, 1167,  128,   90,  238,   49,
1387        51,   49,   49,   49,   49,   49,   49,   49,   49, 1784,
1388        99,  100,  203,   49,  944,  136,  239,  137,   49,   49,
1389        49,   49,   49,   49,   91,  101, 1362,   92,   93,  102,
1390        94,  138,   95,  103,   96,  104,   97,  106,  139,   98,
1391 
1392       119,  107,  105,  114,   49,  120,  121,  209,  122,  123,
1393       108,  109,  210,  141,  110,  115,  111,  116,  129,  117,
1394       204,  142,  118,  244,  130,  143,  131,  144,  132,   49,
1395       232,  321,  133,  245,  134,  135,  148,  148,  148,  148,
1396       148,  148,  148,  233,  322,  213,  205,  148,  214,  341,
1397       215,  206,  148,  148,  148,  148,  148,  148,  149,  150,
1398       150,  150,  150,  150,  150, 1784,  339,  690,  340,  151,
1399        49,  352,  342,  691,  151,  151,  151,  151,  151,  151,
1400        45,  152,  152,  152,  152,  152,  152,  152,  774,  415,
1401      1784,   49,  153,  177,  416, 1784,   49,  153,  153,  153,
1402 
1403       153,  153,  153,   58,  153,  153,  153,  153,  153,  153,
1404       153,  156,  156,  156,  156,  156,  156,  156, 1784,  178,
1405      1784,   49,  156,   49,  526,  179,  451,  156,  156,  156,
1406       156,  156,  156,  157,  158,  158,  158,  158,  158,  158,
1407        49,  714,  773, 1784,  159,  771,   49,   49,   49,  159,
1408       159,  159,  159,  159,  159,  151,  151,  151,  151,  151,
1409       151,  151,  241,  349,  349,  349,  349,  349,  349,  349,
1410       435,  242,  256,   49,  257,  257,  257,  257,  257,  257,
1411       257, 1784, 1784, 1171,  261,  257,  377,  378,  379,  380,
1412       257,  257,  257,  257,  257,  257,  258,  259,  259,  259,
1413 
1414       259,  259,  259,  259,  273,  381, 1784, 1784,  260,  261,
1415       261, 1177,  275,  260,  260,  260,  260,  260,  260,  368,
1416       369,  369,  369,  369,  369,  369,  438,  438,  438,  438,
1417       438,  438,  438,  462,  788,  261,  262,  260,  260,  260,
1418       260,  260,  260,  260, 1784,   49,  772,  463,  260, 1784,
1419      1784,   49,   49,  260,  260,  260,  260,  260,  260,  263,
1420       264,  264,  264,  264,  264,  264,  264,  265, 1179, 1784,
1421        49,  266,  463, 1784, 1784, 1784,  266,  266,  266,  266,
1422       266,  266,   49,  266,  266,  266,  266,  266,  266,  266,
1423       269,  270,  270,  270,  270,  270,  270,  271, 1784,  784,
1424 
1425        49,  272,  377,  378,  379,  380,  272,  272,  272,  272,
1426       272,  272,  273,  274,  274,  274,  274,  274,  274,  274,
1427       275,  462, 1784,   49,  276,  488,  277,  780,  393,  276,
1428       276,  276,  276,  276,  276, 1784,  394,  453,  454,  454,
1429       454,  454,  454,  454,  956,  489,  499, 1784,  395,  776,
1430      1365,  277,  346,  346,  346,  346,  346,  346,  346,  500,
1431      1784,  490, 1784,  346,  396,  781,  451,   49,  346,  346,
1432       346,  346,  346,  346,  347,  348,  348,  348,  348,  348,
1433       348,  362,  779,   49,   49,  349, 1183, 1784, 1784,  534,
1434       349,  349,  349,  349,  349,  349,  258,  350,  350,  350,
1435 
1436       350,  350,  350,  350,  351,  351,  351,  351,  351,  351,
1437       351,  273,  783, 1784,   49,  351,   49,  795, 1088, 1784,
1438       351,  351,  351,  351,  351,  351,  353,  354,  354,  354,
1439       354,  354,  354,  354,  466,   49,  803,  809,  355, 1321,
1440      1447,  621,  468,  355,  355,  355,  355,  355,  355,  358,
1441       355,  355,  355,  355,  355,  355,  355,  362,  363,  363,
1442       363,  363,  363,  363,  363,  364,  621, 1353, 1356,  365,
1443      1359,  366,   49,  544,  365,  365,  365,  365,  365,  365,
1444       523,  523,  523,  523,  523,  523,  523,  545,  786, 1362,
1445      1365, 1447,  782,  544,  622,   49,  366,  273,  370,  370,
1446 
1447       370,  370,  370,  370,  370,  275,   49, 1784,  433,  371,
1448       451,   51,  545,  787,  371,  371,  371,  371,  371,  371,
1449       372,  373,  373,  373,  373,  373,  373,   49,   51,  451,
1450       864,  374, 1784,  433,  575,  777,  374,  374,  374,  374,
1451       374,  374,  419,  576,  420,   49,  421,  422,  553,  554,
1452       554,  554,  554,  554,  554,  864,  423,  661,  424,  425,
1453       661,  426,  428,  578,  429,  429,  429,  429,  429,  429,
1454       429,  662,  579, 1249, 1784,  429, 1784,  451,   51, 1353,
1455       429,  429,  429,  429,  429,  429,  430,  431,  431,  431,
1456       431,  431,  431,  431,  789,   51,  662,  451,  432, 1784,
1457 
1458       433, 1784,   49,  432,  432,  432,  432,  432,  432,  557,
1459       558,  558,  558,  558,  558,  558,  641,  642,  642,  642,
1460       642,  642,  642,  663,  785,  433,  434,  432,  432,  432,
1461       432,  432,  432,  432,  796,   49, 1784,  664,  432, 1356,
1462        51,   49,  663,  432,  432,  432,  432,  432,  432,  436,
1463       437,  437,  437,  437,  437,  437, 1784,   51,  886, 1784,
1464       438, 1784,  664,   51,  791,  438,  438,  438,  438,  438,
1465       438,  263,  439,  439,  439,  439,  439,  439,  439,   49,
1466        51, 1784,  451,  440, 1784, 1784, 1784,  876,  440,  440,
1467       440,  440,  440,  440,   49,  440,  440,  440,  440,  440,
1468 
1469       440,  440,  443,  444,  444,  444,  444,  444,  444, 1784,
1470      1784, 1784, 1784,  445, 1359,  451,   51,  794,  445,  445,
1471       445,  445,  445,  445,  449,  450,  450,  450,  450,  450,
1472       450,  451,   49,   51, 1784,  452, 1362, 1784,  882,   51,
1473       452,  452,  452,  452,  452,  452,  362,  455,  455,  455,
1474       455,  455,  455,  455,  364,  451,   51, 1365,  456,  883,
1475        51,   51,   51,  456,  456,  456,  456,  456,  456,  457,
1476       458,  458,  458,  458,  458,  458,  451,   51,   51,   51,
1477       459,  884,  890,   51,  895,  459,  459,  459,  459,  459,
1478       459,  273,  464,  464,  464,  464,  464,  464,  464,  275,
1479 
1480        51,  451,  949,  465, 1784,   49,   51,  894,  465,  465,
1481       465,  465,  465,  465,  466,  467,  467,  467,  467,  467,
1482       467,  467,  468,   51,  897, 1313,  469,  949,  470, 1784,
1483        49,  469,  469,  469,  469,  469,  469,  649,  650,  650,
1484       650,  650,  650,  650,  653,  654,  654,  654,  654,  654,
1485       654,  692,  790,  470,  480, 1079,  695, 1784,  481, 1784,
1486       693,  482,   49,  735,  483,  696,  484,  485,  486,  487,
1487       520,  520,  520,  520,  520,  520,  520,  736, 1315, 1784,
1488      1079,  520, 1784,   51, 1784,  792,  520,  520,  520,  520,
1489       520,  520,  521,  522,  522,  522,  522,  522,  522,  793,
1490 
1491        51,   49,  736,  523, 1784,  900, 1784, 1784,  523,  523,
1492       523,  523,  523,  523,  430,  524,  524,  524,  524,  524,
1493       524,  524,  525,  525,  525,  525,  525,  525,  525,  539,
1494      1086, 1784, 1784,  525, 1321,   51, 1319,  722,  525,  525,
1495       525,  525,  525,  525,  435,  527,  527,  527,  527,  527,
1496       527,  527,   51,  735,  744,  744,  528,  746,  261,  746,
1497       802,  528,  528,  528,  528,  528,  528, 1784,  745, 1784,
1498        49,  747,  775, 1784,  755,  756,  756,  756,  756,  756,
1499       756,   49, 1531,  261,  528,  528,  528,  528,  528,  528,
1500       528, 1784, 1784,  745, 1784,  528,  747,   51, 1784,  797,
1501 
1502       528,  528,  528,  528,  528,  528,  529,  529,  529,  529,
1503       529,  529,  529,   49,   51, 1447, 1784,  530, 1447,  451,
1504      1784, 1784,  530,  530,  530,  530,  530,  530,   49,  530,
1505       530,  530,  530,  530,  530,  530,  362,  533,  533,  533,
1506       533,  533,  533,  533,  534, 1784, 1784, 1375,  535, 1139,
1507       366, 1380, 1382,  535,  535,  535,  535,  535,  535,  758,
1508       759,  759,  759,  759,  759,  759,  762,  763,  763,  763,
1509       763,  763,  763,  798,   51,  366,  539,  540,  540,  540,
1510       540,  540,  540,  540,  541,  799,  801,   49,  542, 1148,
1511       543,   51, 1388,  542,  542,  542,  542,  542,  542,   49,
1512 
1513        49,  829,  830,  830,  830,  830,  830,  830,  837,  838,
1514       838,  838,  838,  838,  838,  543,  362,  546,  546,  546,
1515       546,  546,  546,  546,  534, 1164, 1390, 1159,  547, 1784,
1516      1176,   51,   51,  547,  547,  547,  547,  547,  547,  548,
1517       549,  549,  549,  549,  549,  549,  549,  550,   51,   51,
1518      1164,  551,  901,  552, 1784, 1176,  551,  551,  551,  551,
1519       551,  551,  841,  842,  842,  842,  842,  842,  842,  849,
1520       850,  850,  850,  850,  850,  850,  865,   51,  552,  466,
1521       559,  559,  559,  559,  559,  559,  559,  468, 1396, 1398,
1522       866,  560, 1171,   51,   51,   51,  560,  560,  560,  560,
1523 
1524       560,  560,  561,  562,  562,  562,  562,  562,  562,  548,
1525        51,  877,   51,  563,  865,  866, 1404,  725,  563,  563,
1526       563,  563,  563,  563,  581,  582,  583,  878, 1784,  584,
1527       585,  887, 1406,  586,  587,  804,  588,  867,  589, 1183,
1528       590,  616,  867,  617,  617,  617,  617,  617,  617,  617,
1529      1784,  868,   51, 1784,  617, 1784, 1784,   51,  806,  617,
1530       617,  617,  617,  617,  617,  618,  619,  619,  619,  619,
1531       619,  619,  619, 1321,   51, 1784,  868,  620, 1455,  621,
1532      1784, 1784,  620,  620,  620,  620,  620,  620,  852,  853,
1533       853,  853,  853,  853,  853,  856,  857,  857,  857,  857,
1534 
1535       857,  857,   51,   51,  621,  618,  620,  620,  620,  620,
1536       620,  620,  620,  667, 1312, 1249, 1784,  620, 1784,   51,
1537        51,  669,  620,  620,  620,  620,  620,  620,  435,  623,
1538       623,  623,  623,  623,  623,  623,  879,  881, 1502, 1312,
1539       624, 1784, 1784, 1784, 1784,  624,  624,  624,  624,  624,
1540       624,   49,  624,  624,  624,  624,  624,  624,  624,  625,
1541       625,  625,  625,  625,  625,  625,  730, 1784, 1504, 1784,
1542       626, 1784, 1784, 1387,  913,  626,  626,  626,  626,  626,
1543       626,   49,  626,  626,  626,  626,  626,  626,  626,  629,
1544       630,  630,  630,  630,  630,  630, 1784, 1784, 1387, 1395,
1545 
1546       631, 1544, 1548,   51,   51,  631,  631,  631,  631,  631,
1547       631,  362,  455,  455,  455,  455,  455,  455,  455,  534,
1548        51,   51, 1552,  456, 1395,   51,  977,  929,  456,  456,
1549       456,  456,  456,  456,  632,  633,  633,  633,  633,  633,
1550       633,  930,   51, 1403, 1784,  634, 1556,  978,   51, 1560,
1551       634,  634,  634,  634,  634,  634,  638,  639,  639,  639,
1552       639,  639,  639,  451, 1501,   51,  930,  640, 1403, 1784,
1553       979,   51,  640,  640,  640,  640,  640,  640,  539,  643,
1554       643,  643,  643,  643,  643,  643,  541, 1593,   51, 1501,
1555       644, 1615,   51,  981,   51,  644,  644,  644,  644,  644,
1556 
1557       644,  645,  646,  646,  646,  646,  646,  646,  451,   51,
1558      1159,   51,  647,  451,  983,   51,  984,  647,  647,  647,
1559       647,  647,  647,  548,  655,  655,  655,  655,  655,  655,
1560       655,  550,   51,  990, 1547,  656, 1359,   51,   51,   51,
1561       656,  656,  656,  656,  656,  656,  657,  658,  658,  658,
1562       658,  658,  658,  451,   51,   51,   51,  659,  986, 1547,
1563        51,  991,  659,  659,  659,  659,  659,  659,  466,  665,
1564       665,  665,  665,  665,  665,  665,  468,   51,  933, 1155,
1565       666, 1153,  996,   51,   51,  666,  666,  666,  666,  666,
1566       666,  667,  668,  668,  668,  668,  668,  668,  668,  669,
1567 
1568        51,   51, 1110,  670,   51,  671,  999,   51,  670,  670,
1569       670,  670,  670,  670,  756,  756,  756,  756,  756,  756,
1570       756,   51,   51, 1148,   51,  451,   51,   51,   51,   51,
1571       671,  710,  710,  710,  710,  710,  710,  710,  889,   51,
1572       888, 1551,  710,   51,   51,   51,   51,  710,  710,  710,
1573       710,  710,  710,  711,  711,  711,  711,  711,  711,  711,
1574       980,  985,  893,  899,  711, 1356, 1551, 1555, 1559,  711,
1575       711,  711,  711,  711,  711,  618,  712,  712,  712,  712,
1576       712,  712,  712,  713,  713,  713,  713,  713,  713,  713,
1577       739,  924, 1555, 1559,  713,   51,   51,   51,  916,  713,
1578 
1579       713,  713,  713,  713,  713,  715,  715,  715,  715,  715,
1580       715,  715,   51,   51,   51, 1144,  716, 1096, 1000, 1614,
1581       994,  716,  716,  716,  716,  716,  716,   49,  716,  716,
1582       716,  716,  716,  716,  716,  717,  717,  717,  717,  717,
1583       717,  717,  750, 1139, 1614,  451,  718, 1353,  451, 1251,
1584       919,  718,  718,  718,  718,  718,  718,   49,  718,  718,
1585       718,  718,  718,  718,  718,  539,  721,  721,  721,  721,
1586       721,  721,  721,  722,   51,   51,   51,  723, 1372,  543,
1587        51,  929,  723,  723,  723,  723,  723,  723,  871, 1232,
1588      1365,   51,   51,   51, 1362, 1784,  873,   51,   51,   51,
1589 
1590      1109,  891,  892,  880,  543,  548,  724,  724,  724,  724,
1591       724,  724,  724,  725,   51,   51,   51,  726,   51,  552,
1592      1784,  924,  726,  726,  726,  726,  726,  726,  885, 1123,
1593      1359,   51,  982, 1638, 1356,   51, 1639, 1353,   51, 1232,
1594      1100,  896,  938,   51,  552,  730,  731,  731,  731,  731,
1595       731,  731,  731,  732,   51,   51,  939,  733, 1638,  734,
1596        51, 1639,  733,  733,  733,  733,  733,  733,  902,  898,
1597      1640,   51,  907,  907,  907,  907,  907,  907,  907, 1086,
1598       938,  939,  940,  338,  734,  539,  737,  737,  737,  737,
1599       737,  737,  737,  722, 1784, 1640,  941,  738, 1321, 1088,
1600 
1601        51,  871,  738,  738,  738,  738,  738,  738,  739,  740,
1602       740,  740,  740,  740,  740,  740,  741,   51,  940, 1784,
1603       742,  941,  743,  933,   51,  742,  742,  742,  742,  742,
1604       742, 1126, 1784,  850,  850,  850,  850,  850,  850,  850,
1605      1116,   51, 1082, 1080,   51,  950,   51,  743,  548,  748,
1606       748,  748,  748,  748,  748,  748,  725, 1784,  989,  951,
1607       749,   51, 1103,   51, 1185,  749,  749,  749,  749,  749,
1608       749,  750,  751,  751,  751,  751,  751,  751,  751,  752,
1609        51,  950,  952,  753,  951,  754,  952,  451,  753,  753,
1610       753,  753,  753,  753, 1132, 1784,  953,   51, 1173, 1641,
1611 
1612      1784,  962,  963,  963,  963,  963,  963,  963,  992,   51,
1613       754,  667,  764,  764,  764,  764,  764,  764,  764,  669,
1614      1784,  953,  451,  765, 1641, 1784,   51,   51,  765,  765,
1615       765,  765,  765,  765,  766,  767,  767,  767,  767,  767,
1616       767,  987, 1129, 1161,   51,  768,  451,   51,   51,   51,
1617       768,  768,  768,  768,  768,  768,   49,   49,   49,   49,
1618        49,   49,   49, 1001,   51,   51,   51,   49,   51, 1105,
1619      1108,   51,   49,   49,   49,   49,   49,   49,  965,  966,
1620       966,  966,  966,  966,  966,   51, 1126, 1080,   51, 1080,
1621       770,  804, 1082,  805,  805,  805,  805,  805,  805,  805,
1622 
1623       997, 1081,  998, 1784,  805, 1150, 1083,   51,   51,  805,
1624       805,  805,  805,  805,  805,  806,  807,  807,  807,  807,
1625       807,  807,  807,  451,   51,   51, 1081,  807, 1784, 1113,
1626      1114, 1083,  807,  807,  807,  807,  807,  807,  712,  712,
1627       712,  712,  712,  712,  712,  969,  970,  970,  970,  970,
1628       970,  970,   51,   51,   51, 1028, 1029, 1029, 1029, 1029,
1629      1029, 1029, 1036, 1037, 1037, 1037, 1037, 1037, 1037,   51,
1630        51,   51,   49,  713,  713,  713,  713,  713,  713,  713,
1631       988, 1123, 1141,  451,  713, 1091, 1095, 1642, 1661,  713,
1632       713,  713,  713,  713,  713,  808,  350,  350,  350,  350,
1633 
1634       350,  350,  350,  263,  810,  810,  810,  810,  810,  810,
1635       810,  944, 1642, 1661, 1251,  811, 1667,  451, 1232, 1129,
1636       811,  811,  811,  811,  811,  811,   49,  811,  811,  811,
1637       811,  811,  811,  811,  814,  815,  815,  815,  815,  815,
1638       815, 1667, 1132, 1129, 1126,  816, 1123, 1232,   51,   51,
1639       816,  816,  816,  816,  816,  816,  539,  643,  643,  643,
1640       643,  643,  643,  643,  722,   51,   51, 1088,  644,  873,
1641        51,   51, 1082,  644,  644,  644,  644,  644,  644,  817,
1642       818,  818,  818,  818,  818,  818, 1784,   51,   51,  956,
1643       819, 1185, 1209,   51, 1106,  819,  819,  819,  819,  819,
1644 
1645       819,  548,  655,  655,  655,  655,  655,  655,  655,  725,
1646        51, 1784, 1132,  656,   51,   51,   51,   51,  656,  656,
1647       656,  656,  656,  656,  820,  821,  821,  821,  821,  821,
1648       821,   51,   51,   51,   51,  822, 1212,  750, 1213, 1102,
1649       822,  822,  822,  822,  822,  822,  826,  827,  827,  827,
1650       827,  827,  827,  451, 1211,  952,  950,  828,  944, 1173,
1651        51, 1129,  828,  828,  828,  828,  828,  828,  730,  831,
1652       831,  831,  831,  831,  831,  831,  732,   51, 1215,  739,
1653       832,  940,   51,   51,   51,  832,  832,  832,  832,  832,
1654       832,  833,  834,  834,  834,  834,  834,  834,  451,   51,
1655 
1656        51,   51,  835, 1218, 1217,   51, 1222,  835,  835,  835,
1657       835,  835,  835,  739,  843,  843,  843,  843,  843,  843,
1658       843,  741,   51, 1220,  938,  844,  933,   51,   51,   51,
1659       844,  844,  844,  844,  844,  844,  845,  846,  846,  846,
1660       846,  846,  846,  451,   51,   51,   51,  847, 1225, 1229,
1661        51, 1161,  847,  847,  847,  847,  847,  847,  750,  858,
1662       858,  858,  858,  858,  858,  858,  752,   51, 1324, 1126,
1663       859,  730,   51,   51,  929,  859,  859,  859,  859,  859,
1664       859,  860,  861,  861,  861,  861,  861,  861,  451,   51,
1665        51, 1325,  862,  924, 1150,   51, 1123,  862,  862,  862,
1666 
1667       862,  862,  862,  667,  869,  869,  869,  869,  869,  869,
1668       869,  669,   51, 1326, 1327,  870, 1141, 1024, 1009, 1132,
1669       870,  870,  870,  870,  870,  870,  871,  872,  872,  872,
1670       872,  872,  872,  872,  873,   51,   51, 1144,  874, 1129,
1671       875,  956, 1126,  874,  874,  874,  874,  874,  874, 1132,
1672        51, 1145,   51,   51, 1040, 1041, 1041, 1041, 1041, 1041,
1673      1041,  993,  995,   51, 1144,  875,   51,   51,  903,  903,
1674       903,  903,  903,  903,  903, 1123, 1145, 1121, 1784,  903,
1675        51, 1097, 1092,   51,  903,  903,  903,  903,  903,  903,
1676       904,  904,  904,  904,  904,  904,  904, 1009, 1098,  871,
1677 
1678      1088,  904,   51, 1784,   51,   51,  904,  904,  904,  904,
1679       904,  904,  905,  906,  906,  906,  906,  906,  906,   51,
1680       873,   51,   51,  907,  667,  867,   51, 1107,  907,  907,
1681       907,  907,  907,  907,  263,  908,  908,  908,  908,  908,
1682       908,  908, 1328,   51,  865,  958,  909,  919, 1330,  946,
1683       916,  909,  909,  909,  909,  909,  909,   49,  909,  909,
1684       909,  909,  909,  909,  909,  730,  912,  912,  912,  912,
1685       912,  912,  912,  913,  935,  913,  926,  914, 1024,  734,
1686      1009,  919,  914,  914,  914,  914,  914,  914, 1048, 1049,
1687      1049, 1049, 1049, 1049, 1049, 1051, 1052, 1052, 1052, 1052,
1688 
1689      1052, 1052,  916,   51,  734,  739,  915,  915,  915,  915,
1690       915,  915,  915,  916,  913, 1009,  873,  917,  669,  743,
1691        51,  750,  917,  917,  917,  917,  917,  917, 1055, 1056,
1692      1056, 1056, 1056, 1056, 1056, 1064, 1065, 1065, 1065, 1065,
1693      1065, 1065,  958,   51,  743,  750,  918,  918,  918,  918,
1694       918,  918,  918,  919,  919,  548,  746,  920,  744,  754,
1695        51,  739,  920,  920,  920,  920,  920,  920, 1067, 1068,
1696      1068, 1068, 1068, 1068, 1068, 1071, 1072, 1072, 1072, 1072,
1697      1072, 1072, 1153,   51,  754,  924,  925,  925,  925,  925,
1698       925,  925,  925,  926,  946,  916, 1154,  927,  539,  928,
1699 
1700        51,   51,  927,  927,  927,  927,  927,  927,  963,  963,
1701       963,  963,  963,  963,  963, 1093, 1094,  735,   51,   51,
1702       730, 1154,   51,   51,  928,  730,  931,  931,  931,  931,
1703       931,  931,  931,  913, 1099,  935,   51,  932,  913,   51,
1704        51,   51,  932,  932,  932,  932,  932,  932,  933,  934,
1705       934,  934,  934,  934,  934,  934,  935, 1101,   51,   51,
1706       936,   51,  937, 1153,   51,  936,  936,  936,  936,  936,
1707       936, 1104,  926,  923, 1086, 1139,   51, 1784,   51,  825,
1708      1344,   51, 1088, 1353,   51, 1155,   51,  937,  739,  942,
1709       942,  942,  942,  942,  942,  942,  916, 1112, 1115, 1156,
1710 
1711       943,   51, 1784,   51,   51,  943,  943,  943,  943,  943,
1712       943,  944,  945,  945,  945,  945,  945,  945,  945,  946,
1713      1208,   51, 1155,  947, 1156,  948,  813,   51,  947,  947,
1714       947,  947,  947,  947, 1111,  919, 1784, 1049, 1049, 1049,
1715      1049, 1049, 1049, 1049,   51,  916, 1165,   51, 1165, 1342,
1716       948,  750,  954,  954,  954,  954,  954,  954,  954,  919,
1717      1166, 1784, 1784,  955,   51,  913,   51, 1510,  955,  955,
1718       955,  955,  955,  955,  956,  957,  957,  957,  957,  957,
1719       957,  957,  958,   51, 1167, 1166,  959, 1784,  960, 1167,
1720       911,  959,  959,  959,  959,  959,  959, 1207, 1168,  813,
1721 
1722       667,  873,  669, 1784, 1065, 1065, 1065, 1065, 1065, 1065,
1723      1065, 1177,  466,  960,  871,  971,  971,  971,  971,  971,
1724       971,  971,  873, 1168,  663, 1178,  972,  661, 1784,   51,
1725      1177,  972,  972,  972,  972,  972,  972,  973,  974,  974,
1726       974,  974,  974,  974, 1784,  752,   51,  725,  975,  741,
1727      1178,   51,  722,  975,  975,  975,  975,  975,  975,   51,
1728      1210, 1002, 1002, 1002, 1002, 1002, 1002, 1002,   51, 1784,
1729       732, 1511, 1002,   51,   51,   51,   51, 1002, 1002, 1002,
1730      1002, 1002, 1002, 1003, 1003, 1003, 1003, 1003, 1003, 1003,
1731        51,   51,   51,  825, 1003,  813, 1345, 1347, 1332, 1003,
1732 
1733      1003, 1003, 1003, 1003, 1003,  622, 1004, 1004, 1004, 1004,
1734      1004, 1004, 1004, 1148, 1179, 1179,  725, 1005,  722,  433,
1735       813, 1356, 1005, 1005, 1005, 1005, 1005, 1005, 1180, 1784,
1736      1189, 1190, 1190, 1190, 1190, 1190, 1190, 1192, 1193, 1193,
1737      1193, 1193, 1193, 1193,  433, 1005, 1005, 1005, 1005, 1005,
1738      1005, 1005,   49, 1180, 1784,   49, 1005,   49,   51,   51,
1739        51, 1005, 1005, 1005, 1005, 1005, 1005,  263, 1006, 1006,
1740      1006, 1006, 1006, 1006, 1006,   51,   51,   51,  800, 1007,
1741      1425, 1435, 1445,   49, 1007, 1007, 1007, 1007, 1007, 1007,
1742        49, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1010, 1011,
1743 
1744      1011, 1011, 1011, 1011, 1011,   49,  778,  669,  468, 1012,
1745       548,  752,   51,   51, 1012, 1012, 1012, 1012, 1012, 1012,
1746       730,  831,  831,  831,  831,  831,  831,  831,  913,   51,
1747        51,  725,  832,  362,  544,   51, 1313,  832,  832,  832,
1748       832,  832,  832, 1013, 1014, 1014, 1014, 1014, 1014, 1014,
1749      1314, 1442,   51, 1432, 1015,  539,  741,   51,  722, 1015,
1750      1015, 1015, 1015, 1015, 1015,  739,  843,  843,  843,  843,
1751       843,  843,  843,  916,   51, 1314, 1512,  844, 1513,   51,
1752        51, 1313,  844,  844,  844,  844,  844,  844, 1016, 1017,
1753      1017, 1017, 1017, 1017, 1017, 1784,   51,   51,  732, 1018,
1754 
1755       729, 1516,   51,  637, 1018, 1018, 1018, 1018, 1018, 1018,
1756       750,  858,  858,  858,  858,  858,  858,  858,  919,   51,
1757      1784,  628,  859, 1517,   51,   51, 1315,  859,  859,  859,
1758       859,  859,  859, 1019, 1020, 1020, 1020, 1020, 1020, 1020,
1759      1316,   51,   51,  725, 1021,  722, 1521, 1518,  720, 1021,
1760      1021, 1021, 1021, 1021, 1021, 1025, 1026, 1026, 1026, 1026,
1761      1026, 1026,  451,  628,  618, 1316, 1027,  616,  709,   51,
1762        51, 1027, 1027, 1027, 1027, 1027, 1027,  924, 1030, 1030,
1763      1030, 1030, 1030, 1030, 1030,  926,   51,   51, 1524, 1031,
1764       708,   51, 1526,   51, 1031, 1031, 1031, 1031, 1031, 1031,
1765 
1766      1032, 1033, 1033, 1033, 1033, 1033, 1033,  451,   51,  707,
1767        51, 1034, 1529,  706,   51,   51, 1034, 1034, 1034, 1034,
1768      1034, 1034,  933, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
1769       935,   51,   51,  705, 1043,  704, 1591,   51,   51, 1043,
1770      1043, 1043, 1043, 1043, 1043, 1044, 1045, 1045, 1045, 1045,
1771      1045, 1045,  451, 1575,   51,   51, 1046, 1590,  703,  702,
1772        51, 1046, 1046, 1046, 1046, 1046, 1046,  944, 1057, 1057,
1773      1057, 1057, 1057, 1057, 1057,  946, 1583,   51, 1585, 1058,
1774       701,   51,   51,   51, 1058, 1058, 1058, 1058, 1058, 1058,
1775      1059, 1060, 1060, 1060, 1060, 1060, 1060,  451,   51,   51,
1776 
1777        51, 1061,  700,  699,   51, 1619, 1061, 1061, 1061, 1061,
1778      1061, 1061,  956, 1073, 1073, 1073, 1073, 1073, 1073, 1073,
1779       958,   51,  698,  697, 1074,  694,   51,  689,   51, 1074,
1780      1074, 1074, 1074, 1074, 1074, 1075, 1076, 1076, 1076, 1076,
1781      1076, 1076,  451,   51, 1624,   51, 1077,  688, 1627,   51,
1782        51, 1077, 1077, 1077, 1077, 1077, 1077,  871, 1084, 1084,
1783      1084, 1084, 1084, 1084, 1084,  873,   51,   51,  687, 1085,
1784       686, 1634,   51, 1630, 1085, 1085, 1085, 1085, 1085, 1085,
1785      1086, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1088,   51,
1786       685,  684, 1089,   51, 1090,   51,   51, 1089, 1089, 1089,
1787 
1788      1089, 1089, 1089, 1196, 1197, 1197, 1197, 1197, 1197, 1197,
1789        51,  683,   51,   51,  682,  681,  680,   51,   51, 1090,
1790        51,  622, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1214,
1791       679, 1223, 1224, 1118,   51,   51,  678,   51, 1118, 1118,
1792      1118, 1118, 1118, 1118,   49, 1118, 1118, 1118, 1118, 1118,
1793      1118, 1118,   51,  263, 1119, 1119, 1119, 1119, 1119, 1119,
1794      1119,  677,   51,  676,  675,  674,   51, 1315,   51,   51,
1795       924, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1123,   51,
1796        51, 1784, 1124,   51,  928,   51,  673, 1124, 1124, 1124,
1797      1124, 1124, 1124, 1221, 1204,  672, 1205,   51,  466, 1159,
1798 
1799       669,  468,   51,   51,   51,  462, 1784, 1359, 1206,  928,
1800       933, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1126,   51,
1801        51,   51, 1127,  550,  937,   51, 1375, 1127, 1127, 1127,
1802      1127, 1127, 1127, 1171, 1216, 1219, 1331, 1183, 1249, 1319,
1803      1376, 1362,   51, 1226,   51, 1365, 1447, 1321,  534,  937,
1804       944, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1129, 1227,
1805      1228,   51, 1130, 1659,  948, 1376,  541, 1130, 1130, 1130,
1806      1130, 1130, 1130, 1255, 1256, 1256, 1256, 1256, 1256, 1256,
1807      1261, 1262, 1262, 1262, 1262, 1262, 1262,  637,   51,  948,
1808       956, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1132,  628,
1809 
1810       534,  628, 1133,  622,  960,   51,  622, 1133, 1133, 1133,
1811      1133, 1133, 1133, 1265, 1266, 1266, 1266, 1266, 1266, 1266,
1812      1271, 1272, 1272, 1272, 1272, 1272, 1272,   51,   51,  960,
1813      1135, 1136, 1136, 1136, 1136, 1136, 1136, 1137,  615,  614,
1814       613, 1138,  612,  611,   51,   51, 1138, 1138, 1138, 1138,
1815      1138, 1138, 1139, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
1816      1141,  610, 1337, 1333, 1142,  609, 1143,  608,  607, 1142,
1817      1142, 1142, 1142, 1142, 1142, 1274, 1275, 1275, 1275, 1275,
1818      1275, 1275, 1278, 1279, 1279, 1279, 1279, 1279, 1279,   51,
1819        51, 1143,  924, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
1820 
1821      1123,  606,  605,  335, 1147,  235,   51,   51,   51, 1147,
1822      1147, 1147, 1147, 1147, 1147, 1148, 1149, 1149, 1149, 1149,
1823      1149, 1149, 1149, 1150, 1338,   51, 1343, 1151, 1648, 1152,
1824       604,  603, 1151, 1151, 1151, 1151, 1151, 1151, 1285, 1286,
1825      1286, 1286, 1286, 1286, 1286, 1288, 1289, 1289, 1289, 1289,
1826      1289, 1289, 1375,   51, 1152,  933, 1157, 1157, 1157, 1157,
1827      1157, 1157, 1157, 1126,  602,  601, 1784, 1158,  600,  599,
1828        51,   51, 1158, 1158, 1158, 1158, 1158, 1158, 1159, 1160,
1829      1160, 1160, 1160, 1160, 1160, 1160, 1161, 1339,   51,  598,
1830      1162, 1784, 1163, 1675,  597, 1162, 1162, 1162, 1162, 1162,
1831 
1832      1162, 1292, 1293, 1293, 1293, 1293, 1293, 1293, 1299, 1300,
1833      1300, 1300, 1300, 1300, 1300, 1380,   51, 1163,  944, 1169,
1834      1169, 1169, 1169, 1169, 1169, 1169, 1129,  596,  595, 1381,
1835      1170,  594,  593,   51, 1429, 1170, 1170, 1170, 1170, 1170,
1836      1170, 1171, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1173,
1837       592, 1430,  591, 1174, 1381, 1175,  580,  577, 1174, 1174,
1838      1174, 1174, 1174, 1174, 1302, 1303, 1303, 1303, 1303, 1303,
1839      1303, 1306, 1307, 1307, 1307, 1307, 1307, 1307, 1380,   51,
1840      1175,  956, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1132,
1841       574,  573, 1784, 1182,  572,  571,   51,   51, 1182, 1182,
1842 
1843      1182, 1182, 1182, 1182, 1183, 1184, 1184, 1184, 1184, 1184,
1844      1184, 1184, 1185,  570,   51, 1433, 1186, 1784, 1187, 1676,
1845       569, 1186, 1186, 1186, 1186, 1186, 1186, 1190, 1190, 1190,
1846      1190, 1190, 1190, 1190, 1367, 1368, 1368, 1368, 1368, 1368,
1847      1368, 1382,   51, 1187, 1086, 1198, 1198, 1198, 1198, 1198,
1848      1198, 1198, 1088,  568,  567, 1383, 1199,  566,   51,   51,
1849      1382, 1199, 1199, 1199, 1199, 1199, 1199, 1200, 1201, 1201,
1850      1201, 1201, 1201, 1201, 1784,   51, 1434,  565, 1202, 1673,
1851      1383,   51,  468, 1202, 1202, 1202, 1202, 1202, 1202,   51,
1852       622, 1230, 1230, 1230, 1230, 1230, 1230, 1230,   51, 1784,
1853 
1854       275, 1650, 1007,  451,  362,  550,   51, 1007, 1007, 1007,
1855      1007, 1007, 1007,   49, 1007, 1007, 1007, 1007, 1007, 1007,
1856      1007,   51,  263, 1119, 1119, 1119, 1119, 1119, 1119, 1119,
1857      1272, 1272, 1272, 1272, 1272, 1272, 1272, 1388,   51, 1233,
1858      1234, 1234, 1234, 1234, 1234, 1234, 1319,  534,  541,  451,
1859      1235, 1389,  538,   51, 1784, 1235, 1235, 1235, 1235, 1235,
1860      1235,  924, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1123,
1861        51,  448,  442, 1031,  534,   51, 1389, 1388, 1031, 1031,
1862      1031, 1031, 1031, 1031, 1236, 1237, 1237, 1237, 1237, 1237,
1863      1237, 1784,   51,  532,  442, 1238,  434,  428,   51,  519,
1864 
1865      1238, 1238, 1238, 1238, 1238, 1238,  933, 1042, 1042, 1042,
1866      1042, 1042, 1042, 1042, 1126,   51, 1784,  518, 1043,  517,
1867      1684,   51, 1390, 1043, 1043, 1043, 1043, 1043, 1043, 1239,
1868      1240, 1240, 1240, 1240, 1240, 1240, 1391,  516,   51,  515,
1869      1241, 1651,  514,   51,  513, 1241, 1241, 1241, 1241, 1241,
1870      1241,  944, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1129,
1871        51, 1391,  512, 1058,  511,   51,   51, 1390, 1058, 1058,
1872      1058, 1058, 1058, 1058, 1242, 1243, 1243, 1243, 1243, 1243,
1873      1243, 1784,   51,   51,  510, 1244, 1657, 1693,   51,  509,
1874      1244, 1244, 1244, 1244, 1244, 1244,  956, 1073, 1073, 1073,
1875 
1876      1073, 1073, 1073, 1073, 1132,   51, 1784,  508, 1074,   51,
1877        51,  507,   51, 1074, 1074, 1074, 1074, 1074, 1074, 1245,
1878      1246, 1246, 1246, 1246, 1246, 1246,   51,   51, 1694,   51,
1879      1247,  506,  505,  502, 1574, 1247, 1247, 1247, 1247, 1247,
1880      1247, 1249, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1251,
1881        51,   51, 1396, 1252,  501, 1253,  498,  497, 1252, 1252,
1882      1252, 1252, 1252, 1252,  496,  495, 1397,   51,   51, 1286,
1883      1286, 1286, 1286, 1286, 1286, 1286, 1396,   51, 1329, 1334,
1884      1253, 1139, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1141,
1885      1784, 1397,  494, 1258,   51,  115,  493,   51, 1258, 1258,
1886 
1887      1258, 1258, 1258, 1258, 1148, 1267, 1267, 1267, 1267, 1267,
1888      1267, 1267, 1150, 1436,   51, 1784, 1268,  492,  491, 1695,
1889        51, 1268, 1268, 1268, 1268, 1268, 1268, 1159, 1280, 1280,
1890      1280, 1280, 1280, 1280, 1280, 1161,  479,   51,  478, 1281,
1891       477,  476, 1696,   51, 1281, 1281, 1281, 1281, 1281, 1281,
1892      1171, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1173,  475,
1893        51,  474, 1295,  473,  472, 1697,   51, 1295, 1295, 1295,
1894      1295, 1295, 1295, 1183, 1308, 1308, 1308, 1308, 1308, 1308,
1895      1308, 1185,  471,   51,  273, 1309,  468,  275, 1699,   51,
1896      1309, 1309, 1309, 1309, 1309, 1309, 1086, 1317, 1317, 1317,
1897 
1898      1317, 1317, 1317, 1317, 1088,  451,   51,  364, 1318, 1706,
1899       448,  442,   51, 1318, 1318, 1318, 1318, 1318, 1318, 1319,
1900      1320, 1320, 1320, 1320, 1320, 1320, 1320, 1321,   51,   51,
1901        51, 1322,   51, 1323,   51,   51, 1322, 1322, 1322, 1322,
1902      1322, 1322, 1335, 1398,  442,   51,  435,   51,  435,   51,
1903       427,   51,   51,  418,  417,  414,  413, 1399, 1323, 1336,
1904        51, 1340,   51, 1341, 1523, 1346,   51,  622,  524,  524,
1905       524,  524,  524,  524,  524,  412,   51,   51, 1398,   51,
1906      1404,   51, 1399,   51, 1348, 1349, 1349, 1349, 1349, 1349,
1907      1349, 1350, 1784,   51, 1405, 1351, 1439, 1527,   51, 1437,
1908 
1909      1351, 1351, 1351, 1351, 1351, 1351, 1139, 1352, 1352, 1352,
1910      1352, 1352, 1352, 1352, 1353,  411, 1438, 1784, 1354, 1405,
1911      1143,   51, 1404, 1354, 1354, 1354, 1354, 1354, 1354, 1300,
1912      1300, 1300, 1300, 1300, 1300, 1300, 1784,  410,   51,  409,
1913       408, 1406, 1406, 1455,  407, 1143, 1148, 1355, 1355, 1355,
1914      1355, 1355, 1355, 1355, 1356, 1407, 1784, 1456, 1357,   51,
1915      1152, 1784,   51, 1357, 1357, 1357, 1357, 1357, 1357, 1412,
1916      1413, 1413, 1413, 1413, 1413, 1413,   51,  406,  405,   51,
1917      1407, 1784, 1456,  404,   51, 1152, 1159, 1358, 1358, 1358,
1918      1358, 1358, 1358, 1358, 1359, 1572, 1441,  403, 1360,  402,
1919 
1920      1163,   51,  401, 1360, 1360, 1360, 1360, 1360, 1360, 1415,
1921      1416, 1416, 1416, 1416, 1416, 1416, 1419, 1420, 1420, 1420,
1922      1420, 1420, 1420,  400,   51, 1163, 1171, 1361, 1361, 1361,
1923      1361, 1361, 1361, 1361, 1362,   51,   51,   51, 1363,   51,
1924      1175,   51,  399, 1363, 1363, 1363, 1363, 1363, 1363,  398,
1925      1426,  397,   51,   51,   51,  392,   51, 1710,  391,   51,
1926        51, 1714, 1431, 1428,   51, 1175, 1183, 1364, 1364, 1364,
1927      1364, 1364, 1364, 1364, 1365,   51,   51,   51, 1366,  390,
1928      1187,   51, 1455, 1366, 1366, 1366, 1366, 1366, 1366, 1427,
1929       389, 1440,   51,  388, 1443,  317, 1784,  387,  386,   51,
1930 
1931        51, 1502,   51, 1444,  385, 1187, 1249, 1369, 1369, 1369,
1932      1369, 1369, 1369, 1369, 1251, 1503,   51,   51, 1370,   51,
1933      1712, 1784, 1716, 1370, 1370, 1370, 1370, 1370, 1370, 1139,
1934      1377, 1377, 1377, 1377, 1377, 1377, 1377, 1353, 1618,  384,
1935      1503, 1378,  383,  382,   51,   51, 1378, 1378, 1378, 1378,
1936      1378, 1378, 1148, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
1937      1356,   51,   51,  376, 1385,  275,  364,   51,  271, 1385,
1938      1385, 1385, 1385, 1385, 1385, 1159, 1392, 1392, 1392, 1392,
1939      1392, 1392, 1392, 1359,   51, 1718, 1719, 1393,  361, 1728,
1940        51,   51, 1393, 1393, 1393, 1393, 1393, 1393, 1171, 1400,
1941 
1942      1400, 1400, 1400, 1400, 1400, 1400, 1362,   51,   51,  268,
1943      1401,  357, 1736, 1737,   51, 1401, 1401, 1401, 1401, 1401,
1944      1401, 1183, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1365,
1945       262,   51,  256, 1409,  138,  345, 1742,   51, 1409, 1409,
1946      1409, 1409, 1409, 1409, 1319, 1421, 1421, 1421, 1421, 1421,
1947      1421, 1421, 1321,  344,   51,  343, 1422,  338, 1743,   51,
1948        51, 1422, 1422, 1422, 1422, 1422, 1422, 1249, 1446, 1446,
1949      1446, 1446, 1446, 1446, 1446, 1447,   51,   51,  317, 1448,
1950       337, 1253, 1746,  336, 1448, 1448, 1448, 1448, 1448, 1448,
1951      1461, 1462, 1462, 1462, 1462, 1462, 1462, 1466, 1467, 1467,
1952 
1953      1467, 1467, 1467, 1467, 1502,   51, 1253, 1139, 1257, 1257,
1954      1257, 1257, 1257, 1257, 1257, 1353,  335,  334, 1784, 1258,
1955       333,  332,   51,   51, 1258, 1258, 1258, 1258, 1258, 1258,
1956      1148, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1356, 1509,
1957        51,  331, 1268, 1784,  330,   51,   51, 1268, 1268, 1268,
1958      1268, 1268, 1268, 1159, 1280, 1280, 1280, 1280, 1280, 1280,
1959      1280, 1359,   51,   51,  329, 1281, 1749,  328,   51,  327,
1960      1281, 1281, 1281, 1281, 1281, 1281, 1171, 1294, 1294, 1294,
1961      1294, 1294, 1294, 1294, 1362,   51, 1750,  326, 1295,  325,
1962      1756,   51,   51, 1295, 1295, 1295, 1295, 1295, 1295, 1183,
1963 
1964      1308, 1308, 1308, 1308, 1308, 1308, 1308, 1365,   51,   51,
1965       324, 1309,  323,  320, 1764,   51, 1309, 1309, 1309, 1309,
1966      1309, 1309, 1249, 1457, 1457, 1457, 1457, 1457, 1457, 1457,
1967      1447,  319,   51,  318, 1458,  317,  316,  315,  314, 1458,
1968      1458, 1458, 1458, 1458, 1458, 1469, 1470, 1470, 1470, 1470,
1969      1470, 1470, 1475, 1476, 1476, 1476, 1476, 1476, 1476, 1478,
1970      1479, 1479, 1479, 1479, 1479, 1479, 1484, 1485, 1485, 1485,
1971      1485, 1485, 1485, 1487, 1488, 1488, 1488, 1488, 1488, 1488,
1972      1493, 1494, 1494, 1494, 1494, 1494, 1494, 1496, 1497, 1497,
1973      1497, 1497, 1497, 1497, 1413, 1413, 1413, 1413, 1413, 1413,
1974 
1975      1413, 1504, 1504,   51,   51,   51,   51,   51,   51,   51,
1976       313,  312,   51, 1544, 1544, 1505, 1784, 1548, 1548,   51,
1977        51,   51,   51,   51,   51,   51,   51, 1545, 1784,   51,
1978      1771, 1549, 1784, 1519, 1514, 1515,   51, 1522, 1528, 1520,
1979      1505, 1784, 1319, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
1980      1321, 1525, 1545, 1784, 1507,  311, 1549, 1784,   51, 1507,
1981      1507, 1507, 1507, 1507, 1507, 1249, 1369, 1369, 1369, 1369,
1982      1369, 1369, 1369, 1447,  310,   51,  309, 1370, 1773,  308,
1983       307,  306, 1370, 1370, 1370, 1370, 1370, 1370, 1538, 1539,
1984      1539, 1539, 1539, 1539, 1539, 1467, 1467, 1467, 1467, 1467,
1985 
1986      1467, 1467, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1552,
1987      1552, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1556, 1556,
1988      1560, 1560,  305, 1553, 1784, 1494, 1494, 1494, 1494, 1494,
1989      1494, 1494, 1557, 1784, 1561, 1784, 1564, 1565, 1565, 1565,
1990      1565, 1565, 1565,  304,   51,   51,   51,  303, 1553, 1784,
1991      1567, 1568, 1568, 1568, 1568, 1568, 1568, 1557, 1784, 1561,
1992      1784,   51,   51,   51,   51,   51,   51,   51,   51,   51,
1993      1573,   51,   51, 1576,  302,  301, 1577,   51,   51,  300,
1994       299,   51,   51,   51,   51,   51,   51, 1593,   51,   51,
1995      1578, 1579, 1580, 1581,   51,   51, 1593, 1584, 1586, 1582,
1996 
1997       298, 1594,  297,  296,  295, 1587,  294, 1589,  293,  138,
1998      1784, 1588, 1595, 1596, 1596, 1596, 1596, 1596, 1596, 1599,
1999      1600, 1600, 1600, 1600, 1600, 1600, 1594, 1603, 1604, 1604,
2000      1604, 1604, 1604, 1604,  292, 1784, 1607, 1608, 1608, 1608,
2001      1608, 1608, 1608, 1611, 1612, 1612, 1612, 1612, 1612, 1612,
2002      1565, 1565, 1565, 1565, 1565, 1565, 1565, 1615, 1615,   51,
2003        51,   51,   51,   51,   51,   51,   51,   51,  291,   51,
2004        51, 1616, 1784,   51,   51,   51,   51,   51,   51,   51,
2005        51,   51,   51,   51,   51, 1620,   51,   51, 1628,  290,
2006        51,   51,   51, 1633, 1631, 1622, 1616, 1784, 1621, 1623,
2007 
2008      1625, 1658, 1705, 1626, 1649, 1629, 1632, 1635, 1636, 1636,
2009      1636, 1636, 1636, 1636, 1596, 1596, 1596, 1596, 1596, 1596,
2010      1596, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1604, 1604,
2011      1604, 1604, 1604, 1604, 1604, 1608, 1608, 1608, 1608, 1608,
2012      1608, 1608, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1644,
2013      1645, 1645, 1645, 1645, 1645, 1645,   51,   51,  289,   51,
2014        51,   51,   51,   51, 1636, 1636, 1636, 1636, 1636, 1636,
2015      1636,   51,  288,   51,   51, 1652,   51,   51,   51,   51,
2016        51, 1645, 1645, 1645, 1645, 1645, 1645, 1645,   51,   51,
2017      1647,   51, 1653,   51,   51, 1654, 1655, 1656, 1660,   51,
2018 
2019        51,   51,   51,  287,   51,   51,   51, 1668,   51,   51,
2020        51,   51,   51,  286,  285, 1669,   51,   51,   51,   51,
2021      1678,   51,   51,   51, 1671, 1670,   51,   51,   51,   51,
2022      1672, 1674, 1680, 1679,   51,   51,   51, 1677,  284,   51,
2023        51, 1683,   51,  283,   51,   51,   51, 1685,  282,  281,
2024      1686,   51,   51,   51,  280, 1688,   51,   51, 1689,   51,
2025      1700, 1687,  279,   51,   51, 1698, 1692,   51, 1690,   51,
2026        51, 1691,   51,   51,   51,   51,   51, 1701, 1702, 1703,
2027      1704,   51,   51,   51,   51,  278,   51,   51,   51,   51,
2028        51, 1707,   51,   51,  275,   51,   51, 1717, 1708,   51,
2029 
2030        51, 1709, 1721, 1711, 1713,   51,  263, 1715,   51, 1722,
2031        51, 1720,   51,   51,  268,   51,   51, 1727,   51,   51,
2032      1725, 1723, 1724, 1726,   51,   51,   51,   51, 1731,   51,
2033       255, 1729,   51,   51,  254,   51,   51,   51,  253,   51,
2034        51,   51, 1730,   51,  252, 1732,   51, 1734, 1739,   51,
2035      1738, 1733,  251,   51,   51, 1735,   51,   51,   51,   51,
2036      1740, 1741,   51,   51,   51,   51,   51,  250, 1744, 1745,
2037        51,   51, 1747,  249,  248,   51,   51,  247,   51,   51,
2038        51,   51,   51, 1748, 1751,   51,   51,  246,   51,   51,
2039      1752, 1753, 1755,   51, 1758,   51, 1757, 1754,  243, 1762,
2040 
2041        51, 1759,   51,   51, 1760,   51,   51,   51,   51,   51,
2042        51,   51,   51,  240,   51, 1761,   51,   51,   51, 1765,
2043        51,   51,   51, 1763,   51,   51,   51,   51,   51,   51,
2044      1766,   51,  237,   51, 1767,   51, 1775,   51,   51,   51,
2045        51, 1768, 1769, 1772,   51,   51, 1778, 1774,   51, 1770,
2046        51, 1776,   51,   51, 1777,  236,   51,   51,  235, 1779,
2047        51,  234,   51, 1782, 1783,   51,  231,   51,  230,   51,
2048        51,  229,  228,  227,  226, 1780,  225,   51,  224,  223,
2049       222, 1781,   42,  221,   42,   59,  220,   59,   59,   59,
2050        59,   59,   59,  147,  219,  147,  154,  154,  154,  267,
2051 
2052       267,  267,  276,  276,  276,  356,  356,  356,  359,  359,
2053       359,  360,  360,  360,  367,  367,  367,  365,  365,  365,
2054       371,  371,  371,  375,  218,  375,  441,  441,  441,  446,
2055       446,  446,  447,  447,  447,  456,  456,  456,  460,  217,
2056       460,  461,  461,  461,  369,  369,  216,  212,  369,  465,
2057       465,  465,  469,  469,  469,  359,  359,  359,  531,  531,
2058       531,  535,  535,  535,  536,  536,  536,  537,  537,  537,
2059       367,  367,  367,  542,  542,  542,  454,  454,  211,  201,
2060       454,  547,  547,  547,  551,  551,  551,  555,  200,  555,
2061       556,  556,  556,  560,  560,  560,  564,  199,  564,  627,
2062 
2063       627,  627,  456,  456,  456,  635,  635,  635,  636,  636,
2064       636,  644,  644,  644,  648,  194,  648,  651,  189,  651,
2065       652,  652,  652,  656,  656,  656,  660,  188,  660,  554,
2066       554,  187,  186,  554,  558,  558,  185,  184,  558,  666,
2067       666,  666,  670,  670,  670,  564,  564,  183,  564,  536,
2068       536,  536,  719,  719,  719,  723,  723,  723,  726,  726,
2069       726,  727,  727,  727,  728,  728,  728,  733,  733,  733,
2070       642,  642,  182,  181,  642,  738,  738,  738,  742,  742,
2071       742,  648,  648,  180,  648,  650,  650,  176,  175,  650,
2072       651,  651,  174,  651,  652,  652,  654,  654,  173,  172,
2073 
2074       654,  749,  749,  749,  753,  753,  753,  660,  660,  171,
2075       660,  757,  170,  757,  760,  169,  760,  761,  761,  761,
2076       765,  765,  765,  769,  168,  769,  812,  812,  812,  644,
2077       644,  644,  656,  656,  656,  823,  823,  823,  824,  824,
2078       824,  832,  832,  832,  836,  167,  836,  839,  166,  839,
2079       840,  840,  840,  844,  844,  844,  848,  165,  848,  851,
2080       164,  851,  854,  163,  854,  855,  855,  855,  859,  859,
2081       859,  863,  162,  863,  756,  161,  160,  756,  757,  757,
2082       155,  757,  759,  759,  146,  145,  759,  760,  760,  140,
2083       760,  761,  761,  763,  763,   55,   52,  763,  870,  870,
2084 
2085       870,  874,  874,  874,  769,  769,   43,  769,   49,   49,
2086        49,   41,   49,   49,  727,  727,  727,  910,  910,  910,
2087       914,  914,  914,  917,  917,  917,  920,  920,  920,  921,
2088       921,  921,  922,  922,  922,  927,  927,  927,  830,  830,
2089      1784, 1784,  830,  932,  932,  932,  936,  936,  936,  836,
2090       836, 1784,  836,  838,  838, 1784, 1784,  838,  839,  839,
2091      1784,  839,  840,  840,  842,  842, 1784, 1784,  842,  943,
2092       943,  943,  947,  947,  947,  848,  848, 1784,  848,  850,
2093      1784, 1784,  850,  851,  851, 1784,  851,  853,  853, 1784,
2094      1784,  853,  854,  854, 1784,  854,  855,  855,  857,  857,
2095 
2096      1784, 1784,  857,  955,  955,  955,  959,  959,  959,  863,
2097       863, 1784,  863,  961, 1784,  961,  964, 1784,  964,  967,
2098      1784,  967,  968,  968,  968,  972,  972,  972,  976, 1784,
2099       976,   49,   49,   49, 1784,   49,   49, 1008, 1008, 1008,
2100       832,  832,  832,  844,  844,  844,  859,  859,  859, 1022,
2101      1022, 1022, 1023, 1023, 1023, 1031, 1031, 1031, 1035, 1784,
2102      1035, 1038, 1784, 1038, 1039, 1039, 1039, 1043, 1043, 1043,
2103      1047, 1784, 1047, 1050, 1784, 1050, 1053, 1784, 1053, 1054,
2104      1054, 1054, 1058, 1058, 1058, 1062, 1784, 1062, 1063, 1784,
2105      1063, 1066, 1784, 1066, 1069, 1784, 1069, 1070, 1070, 1070,
2106 
2107      1074, 1074, 1074, 1078, 1784, 1078,  961, 1784,  961,  963,
2108      1784, 1784,  963,  964,  964, 1784,  964,  966,  966, 1784,
2109      1784,  966,  967,  967, 1784,  967,  968,  968,  970,  970,
2110      1784, 1784,  970, 1085, 1085, 1085, 1089, 1089, 1089,  976,
2111       976, 1784,  976,   49,   49,   49, 1784,   49,   49,  921,
2112       921,  921, 1120, 1120, 1120, 1124, 1124, 1124, 1127, 1127,
2113      1127, 1130, 1130, 1130, 1133, 1133, 1133, 1134, 1134, 1134,
2114      1142, 1142, 1142, 1029, 1029, 1784, 1784, 1029, 1147, 1147,
2115      1147, 1151, 1151, 1151, 1035, 1035, 1784, 1035, 1037, 1037,
2116      1784, 1784, 1037, 1038, 1038, 1784, 1038, 1039, 1039, 1041,
2117 
2118      1041, 1784, 1784, 1041, 1158, 1158, 1158, 1162, 1162, 1162,
2119      1047, 1047, 1784, 1047, 1049, 1784, 1784, 1049, 1050, 1050,
2120      1784, 1050, 1052, 1052, 1784, 1784, 1052, 1053, 1053, 1784,
2121      1053, 1054, 1054, 1056, 1056, 1784, 1784, 1056, 1170, 1170,
2122      1170, 1174, 1174, 1174, 1062, 1062, 1784, 1062, 1063, 1784,
2123      1063, 1065, 1784, 1784, 1065, 1066, 1066, 1784, 1066, 1068,
2124      1068, 1784, 1784, 1068, 1069, 1069, 1784, 1069, 1070, 1070,
2125      1072, 1072, 1784, 1784, 1072, 1182, 1182, 1182, 1186, 1186,
2126      1186, 1078, 1078, 1784, 1078, 1188, 1784, 1188, 1191, 1784,
2127      1191, 1194, 1784, 1194, 1195, 1195, 1195, 1199, 1199, 1199,
2128 
2129      1203, 1784, 1203,   49,   49,   49, 1784,   49,   49, 1231,
2130      1231, 1231, 1031, 1031, 1031, 1043, 1043, 1043, 1058, 1058,
2131      1058, 1074, 1074, 1074, 1248, 1248, 1248, 1254, 1254, 1254,
2132      1252, 1252, 1252, 1259, 1259, 1259, 1258, 1258, 1258, 1260,
2133      1784, 1260, 1263, 1784, 1263, 1264, 1264, 1264, 1269, 1269,
2134      1269, 1268, 1268, 1268, 1270, 1784, 1270, 1273, 1784, 1273,
2135      1276, 1784, 1276, 1277, 1277, 1277, 1282, 1282, 1282, 1281,
2136      1281, 1281, 1283, 1784, 1283, 1284, 1784, 1284, 1287, 1784,
2137      1287, 1290, 1784, 1290, 1291, 1291, 1291, 1296, 1296, 1296,
2138      1295, 1295, 1295, 1297, 1784, 1297, 1298, 1784, 1298, 1301,
2139 
2140      1784, 1301, 1304, 1784, 1304, 1305, 1305, 1305, 1310, 1310,
2141      1310, 1309, 1309, 1309, 1311, 1784, 1311, 1188, 1784, 1188,
2142      1190, 1784, 1784, 1190, 1191, 1191, 1784, 1191, 1193, 1193,
2143      1784, 1784, 1193, 1194, 1194, 1784, 1194, 1195, 1195, 1197,
2144      1197, 1784, 1784, 1197, 1318, 1318, 1318, 1322, 1322, 1322,
2145      1203, 1203, 1784, 1203,   49,   49,   49, 1784,   49,   49,
2146      1134, 1134, 1134, 1354, 1354, 1354, 1357, 1357, 1357, 1360,
2147      1360, 1360, 1363, 1363, 1363, 1366, 1366, 1366, 1371, 1371,
2148      1371, 1370, 1370, 1370, 1373, 1784, 1373, 1374, 1374, 1374,
2149      1256, 1256, 1784, 1784, 1256, 1378, 1378, 1378, 1379, 1379,
2150 
2151      1379, 1260, 1260, 1784, 1260, 1262, 1262, 1784, 1784, 1262,
2152      1263, 1263, 1784, 1263, 1264, 1264, 1266, 1266, 1784, 1784,
2153      1266, 1385, 1385, 1385, 1386, 1386, 1386, 1270, 1270, 1784,
2154      1270, 1272, 1784, 1784, 1272, 1273, 1273, 1784, 1273, 1275,
2155      1275, 1784, 1784, 1275, 1276, 1276, 1784, 1276, 1277, 1277,
2156      1279, 1279, 1784, 1784, 1279, 1393, 1393, 1393, 1394, 1394,
2157      1394, 1283, 1283, 1784, 1283, 1284, 1784, 1284, 1286, 1784,
2158      1784, 1286, 1287, 1287, 1784, 1287, 1289, 1289, 1784, 1784,
2159      1289, 1290, 1290, 1784, 1290, 1291, 1291, 1293, 1293, 1784,
2160      1784, 1293, 1401, 1401, 1401, 1402, 1402, 1402, 1297, 1297,
2161 
2162      1784, 1297, 1298, 1784, 1298, 1300, 1784, 1784, 1300, 1301,
2163      1301, 1784, 1301, 1303, 1303, 1784, 1784, 1303, 1304, 1304,
2164      1784, 1304, 1305, 1305, 1307, 1307, 1784, 1784, 1307, 1409,
2165      1409, 1409, 1410, 1410, 1410, 1311, 1311, 1784, 1311, 1411,
2166      1784, 1411, 1414, 1784, 1414, 1417, 1784, 1417, 1418, 1418,
2167      1418, 1423, 1784, 1423, 1422, 1422, 1422, 1424, 1784, 1424,
2168        49,   49,   49, 1784,   49,   49, 1449, 1784, 1449, 1448,
2169      1448, 1448, 1450, 1784, 1450, 1258, 1258, 1258, 1451, 1784,
2170      1451, 1268, 1268, 1268, 1452, 1784, 1452, 1281, 1281, 1281,
2171      1453, 1784, 1453, 1295, 1295, 1295, 1454, 1784, 1454, 1309,
2172 
2173      1309, 1309, 1368, 1368, 1784, 1784, 1368, 1458, 1458, 1458,
2174      1459, 1459, 1459,  367,  367,  367, 1373, 1373, 1784, 1373,
2175      1460, 1460, 1460, 1463, 1784, 1463, 1464, 1464, 1464, 1465,
2176      1465, 1465, 1468, 1784, 1468, 1471, 1784, 1471, 1472, 1472,
2177      1472, 1473, 1473, 1473, 1474, 1784, 1474, 1477, 1784, 1477,
2178      1480, 1784, 1480, 1481, 1481, 1481, 1482, 1482, 1482, 1483,
2179      1784, 1483, 1486, 1784, 1486, 1489, 1784, 1489, 1490, 1490,
2180      1490, 1491, 1491, 1491, 1492, 1784, 1492, 1495, 1784, 1495,
2181      1498, 1784, 1498, 1499, 1499, 1499, 1500, 1500, 1500, 1411,
2182      1784, 1411, 1413, 1784, 1784, 1413, 1414, 1414, 1784, 1414,
2183 
2184      1416, 1416, 1784, 1784, 1416, 1417, 1417, 1784, 1417, 1418,
2185      1418, 1420, 1420, 1784, 1784, 1420, 1507, 1507, 1507, 1508,
2186      1784, 1508, 1424, 1424, 1784, 1424,   49,   49,   49, 1784,
2187        49,   49, 1530, 1530, 1530, 1370, 1370, 1370, 1532, 1784,
2188      1532, 1533, 1784, 1533, 1534, 1784, 1534, 1535, 1784, 1535,
2189      1536, 1784, 1536, 1537, 1784, 1537, 1540, 1784, 1540, 1541,
2190      1541, 1541, 1542, 1542, 1542, 1543, 1784, 1543, 1462, 1462,
2191      1784, 1784, 1462, 1463, 1463, 1784, 1463, 1464, 1464, 1546,
2192      1784, 1546, 1467, 1784, 1784, 1467, 1468, 1468, 1784, 1468,
2193      1470, 1470, 1784, 1784, 1470, 1471, 1471, 1784, 1471, 1472,
2194 
2195      1472, 1550, 1784, 1550, 1474, 1784, 1474, 1476, 1784, 1784,
2196      1476, 1477, 1477, 1784, 1477, 1479, 1479, 1784, 1784, 1479,
2197      1480, 1480, 1784, 1480, 1481, 1481, 1554, 1784, 1554, 1483,
2198      1784, 1483, 1485, 1784, 1784, 1485, 1486, 1486, 1784, 1486,
2199      1488, 1488, 1784, 1784, 1488, 1489, 1489, 1784, 1489, 1490,
2200      1490, 1558, 1784, 1558, 1492, 1784, 1492, 1494, 1784, 1784,
2201      1494, 1495, 1495, 1784, 1495, 1497, 1497, 1784, 1784, 1497,
2202      1498, 1498, 1784, 1498, 1499, 1499, 1562, 1784, 1562, 1563,
2203      1784, 1563, 1566, 1784, 1566, 1569, 1784, 1569, 1570, 1570,
2204      1570, 1571, 1784, 1571,   49,   49,   49, 1784,   49,   49,
2205 
2206      1592, 1784, 1592, 1460, 1784, 1460, 1465, 1784, 1465, 1473,
2207      1784, 1473, 1482, 1784, 1482, 1491, 1784, 1491, 1500, 1784,
2208      1500, 1539, 1539, 1784, 1784, 1539, 1540, 1540, 1784, 1540,
2209      1541, 1541, 1531, 1784, 1531, 1597, 1784, 1597, 1598, 1784,
2210      1598, 1601, 1784, 1601, 1602, 1784, 1602, 1605, 1784, 1605,
2211      1606, 1784, 1606, 1609, 1784, 1609, 1610, 1784, 1610, 1613,
2212      1784, 1613, 1565, 1784, 1784, 1565, 1568, 1568, 1784, 1784,
2213      1568, 1617, 1784, 1617, 1542, 1784, 1542, 1637, 1784, 1637,
2214      1596, 1784, 1784, 1596, 1600, 1784, 1784, 1600, 1604, 1784,
2215      1784, 1604, 1608, 1784, 1784, 1608, 1612, 1784, 1784, 1612,
2216 
2217      1643, 1784, 1643, 1646, 1784, 1646, 1636, 1784, 1784, 1636,
2218      1662, 1784, 1662, 1663, 1784, 1663, 1664, 1784, 1664, 1665,
2219      1784, 1665, 1666, 1784, 1666, 1645, 1784, 1784, 1645, 1681,
2220      1784, 1681, 1682, 1784, 1682,    3, 1784, 1784, 1784, 1784,
2221      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
2222      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
2223      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
2224      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
2225      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784
2226     } ;
2227 
2228 static const flex_int16_t yy_chk[7789] =
2229     {   0,
2230         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2231         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2232         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2233         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2234         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2235         1,    1,   11,   11,   11,   11,   11,   11,   11,   11,
2236        11,   11,   14,   14,   92,   11,   11,   11,   92,   11,
2237        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
2238        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
2239        11,   11,   11,   11,   12,   16,   16,   20,   23,   20,
2240 
2241        20,   31,   23,  411,   20,   24,   24,   25,   23,   20,
2242        31,   23,   25,   20,   21,   20,   90,  411,   90,   12,
2243        17,   17,   17,   17,   17,   17,   17,   17,   21,   22,
2244        89, 1287,   26,   89,   17,   21,   26,   34,  101,   22,
2245        97,   34,   22,   27,  101,   27,   22,   93,   26,   34,
2246        27,   27,   93,   27,   34, 1290,   34,   27,  129,   17,
2247        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
2248        29,   29,   97,   18, 1291,   36,  129,   36,   18,   18,
2249        18,   18,   18,   18,   28,   29, 1295,   28,   28,   29,
2250        28,   36,   28,   29,   28,   29,   28,   30,   36,   28,
2251 
2252        33,   30,   29,   32,  150,   33,   33,  102,   33,   33,
2253        30,   30,  102,   38,   30,   32,   30,   32,   35,   32,
2254        98,   38,   32,  133,   35,   38,   35,   38,   35,  150,
2255       124,  218,   35,  133,   35,   35,   44,   44,   44,   44,
2256        44,   44,   44,  124,  218,  105,   98,   44,  105,  248,
2257       105,   98,   44,   44,   44,   44,   44,   44,   45,   45,
2258        45,   45,   45,   45,   45,  158,  247,  586,  247,   45,
2259       263,  263,  248,  586,   45,   45,   45,   45,   45,   45,
2260        46,   46,   46,   46,   46,   46,   46,   46,  676,  336,
2261       158,  676,   46,   78,  336,  270,  348,   46,   46,   46,
2262 
2263        46,   46,   46,   48,   48,   48,   48,   48,   48,   48,
2264        48,   50,   50,   50,   50,   50,   50,   50,  373,   78,
2265       270,  348,   50,  435,  435,   78, 1296,   50,   50,   50,
2266        50,   50,   50,   52,   52,   52,   52,   52,   52,   52,
2267       622,  622,  675,  373,   52,  673,  673,  675,  437,   52,
2268        52,   52,   52,   52,   52,   58,   58,   58,   58,   58,
2269        58,   58,  131,  262,  262,  262,  262,  262,  262,  262,
2270       352,  131,  148,  437,  148,  148,  148,  148,  148,  148,
2271       148,  444,  450, 1297,  352,  148,  280,  280,  280,  280,
2272       148,  148,  148,  148,  148,  148,  149,  149,  149,  149,
2273 
2274       149,  149,  149,  149,  464,  280,  444,  450,  149,  352,
2275       149, 1301,  464,  149,  149,  149,  149,  149,  149,  273,
2276       273,  273,  273,  273,  273,  273,  358,  358,  358,  358,
2277       358,  358,  358,  368,  690,  149,  151,  151,  151,  151,
2278       151,  151,  151,  151,  458,  522,  674,  368,  151,  562,
2279       630,  690,  674,  151,  151,  151,  151,  151,  151,  152,
2280       152,  152,  152,  152,  152,  152,  152,  152, 1304,  458,
2281       522,  152,  368,  633,  562,  630,  152,  152,  152,  152,
2282       152,  152,  153,  153,  153,  153,  153,  153,  153,  153,
2283       155,  155,  155,  155,  155,  155,  155,  155,  633,  686,
2284 
2285       686,  155,  565,  565,  565,  565,  155,  155,  155,  155,
2286       155,  155,  157,  157,  157,  157,  157,  157,  157,  157,
2287       157,  369,  639,  682,  157,  394,  157,  682,  305,  157,
2288       157,  157,  157,  157,  157,  369,  305,  362,  362,  362,
2289       362,  362,  362,  362, 1305,  394,  408,  639,  305,  678,
2290      1309,  157,  256,  256,  256,  256,  256,  256,  256,  408,
2291       369,  394,  646,  256,  305,  683, 1310,  678,  256,  256,
2292       256,  256,  256,  256,  258,  258,  258,  258,  258,  258,
2293       258,  546,  681,  683,  681,  258, 1311,  646,  658,  546,
2294       258,  258,  258,  258,  258,  258,  259,  259,  259,  259,
2295 
2296       259,  259,  259,  259,  261,  261,  261,  261,  261,  261,
2297       261,  556,  685,  658,  685,  261,  696,  696, 1318,  556,
2298       261,  261,  261,  261,  261,  261,  264,  264,  264,  264,
2299       264,  264,  264,  264,  665,  707,  707,  716,  264, 1322,
2300      1351,  714,  665,  264,  264,  264,  264,  264,  264,  266,
2301       266,  266,  266,  266,  266,  266,  266,  269,  269,  269,
2302       269,  269,  269,  269,  269,  269,  714, 1354, 1357,  269,
2303      1360,  269,  716,  453,  269,  269,  269,  269,  269,  269,
2304       434,  434,  434,  434,  434,  434,  434,  453,  688, 1363,
2305      1366, 1370,  684,  454,  526,  688,  269,  274,  274,  274,
2306 
2307       274,  274,  274,  274,  274,  274,  684,  454,  526,  274,
2308      1371,  770,  453,  689,  274,  274,  274,  274,  274,  274,
2309       275,  275,  275,  275,  275,  275,  275,  689,  770, 1372,
2310       755,  275,  454,  526,  484,  679,  275,  275,  275,  275,
2311       275,  275,  341,  484,  341,  679,  341,  341,  462,  462,
2312       462,  462,  462,  462,  462,  755,  341,  553,  341,  341,
2313       554,  341,  346,  486,  346,  346,  346,  346,  346,  346,
2314       346,  553,  486, 1373,  554,  346,  767, 1374,  772, 1378,
2315       346,  346,  346,  346,  346,  346,  347,  347,  347,  347,
2316       347,  347,  347,  347,  691,  772,  553, 1379,  347,  554,
2317 
2318       347,  767,  691,  347,  347,  347,  347,  347,  347,  466,
2319       466,  466,  466,  466,  466,  466,  539,  539,  539,  539,
2320       539,  539,  539,  557,  687,  347,  349,  349,  349,  349,
2321       349,  349,  349,  349,  697,  687,  815,  557,  349, 1385,
2322       782,  697,  558,  349,  349,  349,  349,  349,  349,  353,
2323       353,  353,  353,  353,  353,  353,  558,  782,  782,  818,
2324       353,  815,  557,  771,  693,  353,  353,  353,  353,  353,
2325       353,  354,  354,  354,  354,  354,  354,  354,  354,  693,
2326       771,  558, 1386,  354,  818,  821,  827,  771,  354,  354,
2327       354,  354,  354,  354,  355,  355,  355,  355,  355,  355,
2328 
2329       355,  355,  357,  357,  357,  357,  357,  357,  357,  834,
2330       821,  827,  846,  357, 1393, 1394,  778,  695,  357,  357,
2331       357,  357,  357,  357,  361,  361,  361,  361,  361,  361,
2332       361,  361,  695,  778,  834,  361, 1401,  846,  778,  779,
2333       361,  361,  361,  361,  361,  361,  363,  363,  363,  363,
2334       363,  363,  363,  363,  363, 1402,  779, 1409,  363,  779,
2335       786,  780,  791,  363,  363,  363,  363,  363,  363,  364,
2336       364,  364,  364,  364,  364,  364,  364,  786,  780,  791,
2337       364,  780,  786,  790,  791,  364,  364,  364,  364,  364,
2338       364,  370,  370,  370,  370,  370,  370,  370,  370,  370,
2339 
2340       790, 1410,  849,  370,  861,  906,  793,  790,  370,  370,
2341       370,  370,  370,  370,  372,  372,  372,  372,  372,  372,
2342       372,  372,  372,  793,  793, 1414,  372,  849,  372,  861,
2343       906,  372,  372,  372,  372,  372,  372,  544,  544,  544,
2344       544,  544,  544,  544,  548,  548,  548,  548,  548,  548,
2345       548,  587,  692,  372,  393,  962,  589,  974,  393, 1011,
2346       587,  393,  692,  641,  393,  589,  393,  393,  393,  393,
2347       428,  428,  428,  428,  428,  428,  428,  641, 1417, 1014,
2348       962,  428,  974,  796, 1011,  694,  428,  428,  428,  428,
2349       428,  428,  430,  430,  430,  430,  430,  430,  430,  694,
2350 
2351       796,  694,  641,  430, 1014,  796, 1017, 1020,  430,  430,
2352       430,  430,  430,  430,  431,  431,  431,  431,  431,  431,
2353       431,  431,  433,  433,  433,  433,  433,  433,  433,  737,
2354      1418, 1017, 1020,  433, 1422,  797, 1424,  737,  433,  433,
2355       433,  433,  433,  433,  436,  436,  436,  436,  436,  436,
2356       436,  436,  797,  642,  649,  650,  436,  653,  436,  654,
2357       706,  436,  436,  436,  436,  436,  436,  642,  649,  650,
2358       706,  653,  677,  654,  661,  661,  661,  661,  661,  661,
2359       661,  677, 1447,  436,  438,  438,  438,  438,  438,  438,
2360       438, 1026,  642,  649,  650,  438,  653,  798,  654,  698,
2361 
2362       438,  438,  438,  438,  438,  438,  439,  439,  439,  439,
2363       439,  439,  439,  698,  798, 1448, 1026,  439, 1458, 1459,
2364      1033, 1045,  439,  439,  439,  439,  439,  439,  440,  440,
2365       440,  440,  440,  440,  440,  440,  443,  443,  443,  443,
2366       443,  443,  443,  443,  443, 1033, 1045, 1463,  443, 1464,
2367       443, 1468, 1471,  443,  443,  443,  443,  443,  443,  663,
2368       663,  663,  663,  663,  663,  663,  667,  667,  667,  667,
2369       667,  667,  667,  699,  800,  443,  449,  449,  449,  449,
2370       449,  449,  449,  449,  449,  702,  705,  699,  449, 1472,
2371       449,  800, 1477,  449,  449,  449,  449,  449,  449,  702,
2372 
2373       705,  730,  730,  730,  730,  730,  730,  730,  735,  735,
2374       735,  735,  735,  735,  735,  449,  455,  455,  455,  455,
2375       455,  455,  455,  455,  455, 1048, 1480, 1481,  455, 1060,
2376      1064,  801,  799,  455,  455,  455,  455,  455,  455,  457,
2377       457,  457,  457,  457,  457,  457,  457,  457,  801,  799,
2378      1048,  457,  799,  457, 1060, 1064,  457,  457,  457,  457,
2379       457,  457,  739,  739,  739,  739,  739,  739,  739,  744,
2380       744,  744,  744,  744,  744,  744,  758,  773,  457,  467,
2381       467,  467,  467,  467,  467,  467,  467,  467, 1486, 1489,
2382       758,  467, 1490,  774,  773,  783,  467,  467,  467,  467,
2383 
2384       467,  467,  468,  468,  468,  468,  468,  468,  468,  748,
2385       774,  773,  783,  468,  759,  758, 1495,  748,  468,  468,
2386       468,  468,  468,  468,  488,  488,  488,  774,  759,  488,
2387       488,  783, 1498,  488,  488,  805,  488,  762,  488, 1499,
2388       488,  520,  763,  520,  520,  520,  520,  520,  520,  520,
2389      1076,  762,  805,  759,  520, 1136,  763,  807,  807,  520,
2390       520,  520,  520,  520,  520,  521,  521,  521,  521,  521,
2391       521,  521,  521, 1507,  807, 1076,  762,  521, 1540,  521,
2392      1136,  763,  521,  521,  521,  521,  521,  521,  746,  746,
2393       746,  746,  746,  746,  746,  750,  750,  750,  750,  750,
2394 
2395       750,  750,  775,  777,  521,  523,  523,  523,  523,  523,
2396       523,  523,  523,  869, 1189, 1541, 1201,  523, 1234,  775,
2397       777,  869,  523,  523,  523,  523,  523,  523,  527,  527,
2398       527,  527,  527,  527,  527,  527,  775,  777, 1566, 1189,
2399       527, 1201, 1237, 1234, 1240,  527,  527,  527,  527,  527,
2400       527,  528,  528,  528,  528,  528,  528,  528,  528,  529,
2401       529,  529,  529,  529,  529,  529,  931, 1237, 1569, 1240,
2402       529, 1243, 1246, 1271,  931,  529,  529,  529,  529,  529,
2403       529,  530,  530,  530,  530,  530,  530,  530,  530,  532,
2404       532,  532,  532,  532,  532,  532, 1243, 1246, 1271, 1285,
2405 
2406       532, 1597, 1601,  876,  877,  532,  532,  532,  532,  532,
2407       532,  533,  533,  533,  533,  533,  533,  533,  533,  533,
2408       876,  877, 1605,  533, 1285,  878,  877,  829,  533,  533,
2409       533,  533,  533,  533,  534,  534,  534,  534,  534,  534,
2410       534,  829,  878, 1299, 1349,  534, 1609,  878,  879, 1613,
2411       534,  534,  534,  534,  534,  534,  538,  538,  538,  538,
2412       538,  538,  538,  538, 1412,  879,  829,  538, 1299, 1349,
2413       879,  881,  538,  538,  538,  538,  538,  538,  540,  540,
2414       540,  540,  540,  540,  540,  540,  540, 1637,  881, 1412,
2415       540, 1646,  883,  881,  884,  540,  540,  540,  540,  540,
2416 
2417       540,  541,  541,  541,  541,  541,  541,  541,  541,  883,
2418      1283,  884,  541, 1282,  883,  890,  884,  541,  541,  541,
2419       541,  541,  541,  549,  549,  549,  549,  549,  549,  549,
2420       549,  549,  890,  890, 1466,  549, 1281,  891,  886,  902,
2421       549,  549,  549,  549,  549,  549,  550,  550,  550,  550,
2422       550,  550,  550,  550,  891,  886,  902,  550,  886, 1466,
2423       896,  891,  550,  550,  550,  550,  550,  550,  559,  559,
2424       559,  559,  559,  559,  559,  559,  559,  896, 1277, 1276,
2425       559, 1273,  896,  994,  899,  559,  559,  559,  559,  559,
2426       559,  561,  561,  561,  561,  561,  561,  561,  561,  561,
2427 
2428       994,  899,  994,  561,  784,  561,  899,  785,  561,  561,
2429       561,  561,  561,  561,  756,  756,  756,  756,  756,  756,
2430       756,  784, 1001, 1270,  785, 1269,  789,  795,  880,  885,
2431       561,  616,  616,  616,  616,  616,  616,  616,  785, 1001,
2432       784, 1475,  616,  789,  795,  880,  885,  616,  616,  616,
2433       616,  616,  616,  618,  618,  618,  618,  618,  618,  618,
2434       880,  885,  789,  795,  618, 1268, 1475, 1484, 1493,  618,
2435       618,  618,  618,  618,  618,  619,  619,  619,  619,  619,
2436       619,  619,  619,  621,  621,  621,  621,  621,  621,  621,
2437       942, 1264, 1484, 1493,  621,  894,  900,  981,  942,  621,
2438 
2439       621,  621,  621,  621,  621,  623,  623,  623,  623,  623,
2440       623,  623,  894,  900,  981, 1263,  623,  981,  900, 1564,
2441       894,  623,  623,  623,  623,  623,  623,  624,  624,  624,
2442       624,  624,  624,  624,  624,  625,  625,  625,  625,  625,
2443       625,  625,  954, 1260, 1564, 1259,  625, 1258, 1254, 1252,
2444       954,  625,  625,  625,  625,  625,  625,  626,  626,  626,
2445       626,  626,  626,  626,  626,  629,  629,  629,  629,  629,
2446       629,  629,  629,  629,  776,  787,  788,  629, 1251,  629,
2447       993,  830,  629,  629,  629,  629,  629,  629, 1084, 1248,
2448      1247,  776,  787,  788, 1244,  830, 1084,  993,  882,  781,
2449 
2450       993,  787,  788,  776,  629,  632,  632,  632,  632,  632,
2451       632,  632,  632,  632,  792,  882,  781,  632,  984,  632,
2452       830, 1146,  632,  632,  632,  632,  632,  632,  781, 1146,
2453      1241,  792,  882, 1595, 1238,  984, 1599, 1235,  802, 1231,
2454       984,  792,  837,  794,  632,  638,  638,  638,  638,  638,
2455       638,  638,  638,  638,  803,  802,  837,  638, 1595,  638,
2456       794, 1599,  638,  638,  638,  638,  638,  638,  802,  794,
2457      1603,  803,  809,  809,  809,  809,  809,  809,  809, 1203,
2458       838,  837,  841,  803,  638,  643,  643,  643,  643,  643,
2459       643,  643,  643,  643,  838, 1603,  841,  643, 1202, 1199,
2460 
2461      1000, 1195,  643,  643,  643,  643,  643,  643,  645,  645,
2462       645,  645,  645,  645,  645,  645,  645, 1000,  842,  838,
2463       645,  841,  645, 1157,  889,  645,  645,  645,  645,  645,
2464       645, 1157,  842,  850,  850,  850,  850,  850,  850,  850,
2465      1000,  889, 1194, 1191,  987,  852, 1002,  645,  655,  655,
2466       655,  655,  655,  655,  655,  655,  655,  842,  889,  852,
2467       655,  987,  987, 1002, 1186,  655,  655,  655,  655,  655,
2468       655,  657,  657,  657,  657,  657,  657,  657,  657,  657,
2469       892,  853,  856,  657,  852,  657,  857, 1185,  657,  657,
2470       657,  657,  657,  657, 1182,  853,  856,  892, 1174, 1607,
2471 
2472       857,  865,  865,  865,  865,  865,  865,  865,  892,  887,
2473       657,  668,  668,  668,  668,  668,  668,  668,  668,  668,
2474       853,  856, 1173,  668, 1607,  857,  887,  901,  668,  668,
2475       668,  668,  668,  668,  669,  669,  669,  669,  669,  669,
2476       669,  887, 1170, 1162,  901,  669, 1161,  989,  992, 1003,
2477       669,  669,  669,  669,  669,  669,  672,  672,  672,  672,
2478       672,  672,  672,  901,  989,  992, 1003,  672,  898,  989,
2479       992,  897,  672,  672,  672,  672,  672,  672,  867,  867,
2480       867,  867,  867,  867,  867,  898, 1158,  965,  897,  966,
2481       672,  710,  969,  710,  710,  710,  710,  710,  710,  710,
2482 
2483       897,  965,  898,  966,  710, 1151,  969,  997,  998,  710,
2484       710,  710,  710,  710,  710,  711,  711,  711,  711,  711,
2485       711,  711,  711, 1150,  997,  998,  965,  711,  966,  997,
2486       998,  969,  711,  711,  711,  711,  711,  711,  712,  712,
2487       712,  712,  712,  712,  712,  871,  871,  871,  871,  871,
2488       871,  871,  980,  977,  888,  924,  924,  924,  924,  924,
2489       924,  924,  929,  929,  929,  929,  929,  929,  929,  980,
2490       977,  888,  712,  713,  713,  713,  713,  713,  713,  713,
2491       888, 1147, 1142, 1141,  713,  977,  980, 1611, 1635,  713,
2492       713,  713,  713,  713,  713,  715,  715,  715,  715,  715,
2493 
2494       715,  715,  715,  717,  717,  717,  717,  717,  717,  717,
2495       717, 1169, 1611, 1635, 1138,  717, 1644, 1137, 1134, 1169,
2496       717,  717,  717,  717,  717,  717,  718,  718,  718,  718,
2497       718,  718,  718,  718,  720,  720,  720,  720,  720,  720,
2498       720, 1644, 1133, 1130, 1127,  720, 1124, 1120, 1007, 1094,
2499       720,  720,  720,  720,  720,  720,  721,  721,  721,  721,
2500       721,  721,  721,  721,  721, 1007, 1094, 1089,  721, 1085,
2501       990, 1097,  970,  721,  721,  721,  721,  721,  721,  722,
2502       722,  722,  722,  722,  722,  722,  970,  990, 1097, 1078,
2503       722, 1077, 1097, 1102,  990,  722,  722,  722,  722,  722,
2504 
2505       722,  724,  724,  724,  724,  724,  724,  724,  724,  724,
2506      1102,  970, 1074,  724,  986, 1100, 1101, 1099,  724,  724,
2507       724,  724,  724,  724,  725,  725,  725,  725,  725,  725,
2508       725,  986, 1100, 1101, 1099,  725, 1100, 1070, 1101,  986,
2509       725,  725,  725,  725,  725,  725,  729,  729,  729,  729,
2510       729,  729,  729,  729, 1099, 1069, 1066,  729, 1062, 1061,
2511      1104, 1058,  729,  729,  729,  729,  729,  729,  731,  731,
2512       731,  731,  731,  731,  731,  731,  731, 1104, 1104, 1054,
2513       731, 1053, 1106, 1111, 1107,  731,  731,  731,  731,  731,
2514       731,  732,  732,  732,  732,  732,  732,  732,  732, 1106,
2515 
2516      1111, 1107,  732, 1107, 1106, 1109, 1111,  732,  732,  732,
2517       732,  732,  732,  740,  740,  740,  740,  740,  740,  740,
2518       740,  740, 1109, 1109, 1050,  740, 1047, 1204, 1114, 1116,
2519       740,  740,  740,  740,  740,  740,  741,  741,  741,  741,
2520       741,  741,  741,  741, 1204, 1114, 1116,  741, 1114, 1116,
2521      1205, 1046,  741,  741,  741,  741,  741,  741,  751,  751,
2522       751,  751,  751,  751,  751,  751,  751, 1205, 1204, 1043,
2523       751, 1039, 1206, 1208, 1038,  751,  751,  751,  751,  751,
2524       751,  752,  752,  752,  752,  752,  752,  752,  752, 1206,
2525      1208, 1205,  752, 1035, 1034, 1207, 1031,  752,  752,  752,
2526 
2527       752,  752,  752,  764,  764,  764,  764,  764,  764,  764,
2528       764,  764, 1207, 1206, 1207,  764, 1027, 1023, 1022, 1021,
2529       764,  764,  764,  764,  764,  764,  766,  766,  766,  766,
2530       766,  766,  766,  766,  766,  893,  895, 1028,  766, 1018,
2531       766, 1181, 1015,  766,  766,  766,  766,  766,  766, 1181,
2532       978, 1028,  893,  895,  933,  933,  933,  933,  933,  933,
2533       933,  893,  895,  982, 1029,  766,  804,  978,  804,  804,
2534       804,  804,  804,  804,  804, 1012, 1028, 1009, 1029,  804,
2535       982,  982,  978,  804,  804,  804,  804,  804,  804,  804,
2536       806,  806,  806,  806,  806,  806,  806, 1008,  982,  976,
2537 
2538       975,  806,  991, 1029, 1209, 1212,  806,  806,  806,  806,
2539       806,  806,  808,  808,  808,  808,  808,  808,  808,  991,
2540       972, 1209, 1212,  808,  968,  967, 1211,  991,  808,  808,
2541       808,  808,  808,  808,  810,  810,  810,  810,  810,  810,
2542       810,  810, 1209, 1211,  964,  959,  810,  955, 1211,  947,
2543       943,  810,  810,  810,  810,  810,  810,  811,  811,  811,
2544       811,  811,  811,  811,  811,  814,  814,  814,  814,  814,
2545       814,  814,  814,  814,  936,  932,  927,  814,  922,  814,
2546       921,  920,  814,  814,  814,  814,  814,  814,  938,  938,
2547       938,  938,  938,  938,  938,  940,  940,  940,  940,  940,
2548 
2549       940,  940,  917, 1324,  814,  817,  817,  817,  817,  817,
2550       817,  817,  817,  817,  914,  910,  874,  817,  870,  817,
2551      1324,  863,  817,  817,  817,  817,  817,  817,  944,  944,
2552       944,  944,  944,  944,  944,  950,  950,  950,  950,  950,
2553       950,  950,  862, 1325,  817,  820,  820,  820,  820,  820,
2554       820,  820,  820,  820,  859,  855,  854,  820,  851,  820,
2555      1325,  848,  820,  820,  820,  820,  820,  820,  952,  952,
2556       952,  952,  952,  952,  952,  956,  956,  956,  956,  956,
2557       956,  956, 1036,  979,  820,  826,  826,  826,  826,  826,
2558       826,  826,  826,  826,  847,  844, 1036,  826,  840,  826,
2559 
2560       979,  983,  826,  826,  826,  826,  826,  826,  963,  963,
2561       963,  963,  963,  963,  963,  979,  979,  839,  983, 1326,
2562       836, 1036, 1327,  985,  826,  831,  831,  831,  831,  831,
2563       831,  831,  831,  831,  983,  835, 1326,  831,  832, 1327,
2564       985,  988,  831,  831,  831,  831,  831,  831,  833,  833,
2565       833,  833,  833,  833,  833,  833,  833,  985,  988, 1226,
2566       833,  996,  833, 1037,  999,  833,  833,  833,  833,  833,
2567       833,  988,  828,  825, 1317, 1377, 1226, 1037,  996,  824,
2568      1226,  999, 1317, 1377, 1096, 1040, 1343,  833,  843,  843,
2569       843,  843,  843,  843,  843,  843,  843,  996,  999, 1040,
2570 
2571       843, 1096, 1037, 1343,  995,  843,  843,  843,  843,  843,
2572       843,  845,  845,  845,  845,  845,  845,  845,  845,  845,
2573      1096,  995, 1041,  845, 1040,  845,  823, 1224,  845,  845,
2574       845,  845,  845,  845,  995,  822, 1041, 1049, 1049, 1049,
2575      1049, 1049, 1049, 1049, 1224,  819, 1051, 1426, 1052, 1224,
2576       845,  858,  858,  858,  858,  858,  858,  858,  858,  858,
2577      1051, 1041, 1052,  858, 1426,  816, 1095, 1426,  858,  858,
2578       858,  858,  858,  858,  860,  860,  860,  860,  860,  860,
2579       860,  860,  860, 1095, 1055, 1051,  860, 1052,  860, 1056,
2580       813,  860,  860,  860,  860,  860,  860, 1095, 1055,  812,
2581 
2582       769,  768,  765, 1056, 1065, 1065, 1065, 1065, 1065, 1065,
2583      1065, 1067,  761,  860,  872,  872,  872,  872,  872,  872,
2584       872,  872,  872, 1055,  760, 1067,  872,  757, 1056, 1098,
2585      1068,  872,  872,  872,  872,  872,  872,  873,  873,  873,
2586       873,  873,  873,  873, 1068,  753, 1098,  749,  873,  742,
2587      1067, 1427,  738,  873,  873,  873,  873,  873,  873,  903,
2588      1098,  903,  903,  903,  903,  903,  903,  903, 1427, 1068,
2589       733, 1427,  903, 1214, 1227, 1229,  903,  903,  903,  903,
2590       903,  903,  903,  904,  904,  904,  904,  904,  904,  904,
2591      1214, 1227, 1229,  728,  904,  727, 1227, 1229, 1214,  904,
2592 
2593       904,  904,  904,  904,  904,  905,  905,  905,  905,  905,
2594       905,  905,  905, 1384, 1071, 1072,  726,  905,  723,  905,
2595       719, 1384,  905,  905,  905,  905,  905,  905, 1071, 1072,
2596      1080, 1080, 1080, 1080, 1080, 1080, 1080, 1082, 1082, 1082,
2597      1082, 1082, 1082, 1082,  905,  907,  907,  907,  907,  907,
2598       907,  907,  709, 1071, 1072,  708,  907,  704, 1328, 1337,
2599      1347,  907,  907,  907,  907,  907,  907,  908,  908,  908,
2600       908,  908,  908,  908,  908, 1328, 1337, 1347,  703,  908,
2601      1328, 1337, 1347,  701,  908,  908,  908,  908,  908,  908,
2602       909,  909,  909,  909,  909,  909,  909,  909,  911,  911,
2603 
2604       911,  911,  911,  911,  911,  700,  680,  670,  666,  911,
2605       660,  659, 1334, 1344,  911,  911,  911,  911,  911,  911,
2606       912,  912,  912,  912,  912,  912,  912,  912,  912, 1334,
2607      1344,  656,  912,  652,  651, 1428, 1192,  912,  912,  912,
2608       912,  912,  912,  913,  913,  913,  913,  913,  913,  913,
2609      1192, 1344, 1428, 1334,  913,  648,  647, 1429,  644,  913,
2610       913,  913,  913,  913,  913,  915,  915,  915,  915,  915,
2611       915,  915,  915,  915, 1429, 1192, 1428,  915, 1429, 1432,
2612      1433, 1193,  915,  915,  915,  915,  915,  915,  916,  916,
2613       916,  916,  916,  916,  916, 1193, 1432, 1433,  640,  916,
2614 
2615       637, 1433, 1434,  636,  916,  916,  916,  916,  916,  916,
2616       918,  918,  918,  918,  918,  918,  918,  918,  918, 1434,
2617      1193,  635,  918, 1434, 1435, 1437, 1196,  918,  918,  918,
2618       918,  918,  918,  919,  919,  919,  919,  919,  919,  919,
2619      1196, 1435, 1437,  634,  919,  631, 1437, 1435,  628,  919,
2620       919,  919,  919,  919,  919,  923,  923,  923,  923,  923,
2621       923,  923,  923,  627,  620, 1196,  923,  617,  615, 1440,
2622      1442,  923,  923,  923,  923,  923,  923,  925,  925,  925,
2623       925,  925,  925,  925,  925,  925, 1440, 1442, 1440,  925,
2624       611, 1445, 1442, 1512,  925,  925,  925,  925,  925,  925,
2625 
2626       926,  926,  926,  926,  926,  926,  926,  926, 1445,  605,
2627      1512,  926, 1445,  604, 1529, 1513,  926,  926,  926,  926,
2628       926,  926,  934,  934,  934,  934,  934,  934,  934,  934,
2629       934, 1529, 1513,  603,  934,  602, 1529, 1528, 1521,  934,
2630       934,  934,  934,  934,  934,  935,  935,  935,  935,  935,
2631       935,  935,  935, 1513, 1528, 1521,  935, 1528,  598,  597,
2632      1523,  935,  935,  935,  935,  935,  935,  945,  945,  945,
2633       945,  945,  945,  945,  945,  945, 1521, 1523, 1523,  945,
2634       594, 1572, 1574, 1575,  945,  945,  945,  945,  945,  945,
2635       946,  946,  946,  946,  946,  946,  946,  946, 1572, 1574,
2636 
2637      1575,  946,  593,  592, 1580, 1575,  946,  946,  946,  946,
2638       946,  946,  957,  957,  957,  957,  957,  957,  957,  957,
2639       957, 1580,  591,  590,  957,  588, 1583,  585, 1589,  957,
2640       957,  957,  957,  957,  957,  958,  958,  958,  958,  958,
2641       958,  958,  958, 1583, 1580, 1589,  958,  584, 1583, 1586,
2642      1591,  958,  958,  958,  958,  958,  958,  971,  971,  971,
2643       971,  971,  971,  971,  971,  971, 1586, 1591,  583,  971,
2644       582, 1591, 1618, 1586,  971,  971,  971,  971,  971,  971,
2645       973,  973,  973,  973,  973,  973,  973,  973,  973, 1618,
2646       581,  580,  973, 1103,  973, 1112, 1113,  973,  973,  973,
2647 
2648       973,  973,  973, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
2649      1103,  579, 1112, 1113,  578,  577,  576, 1630, 1632,  973,
2650      1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1103,
2651       575, 1112, 1113, 1004, 1630, 1632,  574, 1004, 1004, 1004,
2652      1004, 1004, 1004, 1004, 1005, 1005, 1005, 1005, 1005, 1005,
2653      1005, 1005, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006,
2654      1006,  573, 1110,  572,  571,  568, 1091, 1197, 1092, 1006,
2655      1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1110,
2656      1093, 1197, 1010, 1091, 1010, 1092,  567, 1010, 1010, 1010,
2657      1010, 1010, 1010, 1110, 1091,  566, 1092, 1093,  564, 1392,
2658 
2659       563,  560, 1105, 1108, 1213,  555, 1197, 1392, 1093, 1010,
2660      1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1105,
2661      1108, 1213, 1013,  551, 1013, 1115, 1255, 1013, 1013, 1013,
2662      1013, 1013, 1013, 1400, 1105, 1108, 1213, 1408, 1457, 1506,
2663      1255, 1400, 1115, 1115, 1631, 1408, 1457, 1506,  547, 1013,
2664      1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1115,
2665      1115, 1631, 1016, 1631, 1016, 1255,  542, 1016, 1016, 1016,
2666      1016, 1016, 1016, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
2667      1144, 1144, 1144, 1144, 1144, 1144, 1144,  537, 1634, 1016,
2668      1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,  536,
2669 
2670       535,  531, 1019,  525, 1019, 1634,  524, 1019, 1019, 1019,
2671      1019, 1019, 1019, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
2672      1153, 1153, 1153, 1153, 1153, 1153, 1153, 1215, 1219, 1019,
2673      1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,  519,  518,
2674       517, 1024,  516,  515, 1215, 1219, 1024, 1024, 1024, 1024,
2675      1024, 1024, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
2676      1025,  514, 1219, 1215, 1025,  513, 1025,  512,  511, 1025,
2677      1025, 1025, 1025, 1025, 1025, 1155, 1155, 1155, 1155, 1155,
2678      1155, 1155, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1220,
2679      1225, 1025, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
2680 
2681      1030,  510,  509,  508, 1030,  507, 1220, 1225, 1620, 1030,
2682      1030, 1030, 1030, 1030, 1030, 1032, 1032, 1032, 1032, 1032,
2683      1032, 1032, 1032, 1032, 1220, 1620, 1225, 1032, 1620, 1032,
2684       505,  502, 1032, 1032, 1032, 1032, 1032, 1032, 1165, 1165,
2685      1165, 1165, 1165, 1165, 1165, 1167, 1167, 1167, 1167, 1167,
2686      1167, 1167, 1256, 1221, 1032, 1042, 1042, 1042, 1042, 1042,
2687      1042, 1042, 1042, 1042,  501,  500, 1256, 1042,  499,  498,
2688      1221, 1654, 1042, 1042, 1042, 1042, 1042, 1042, 1044, 1044,
2689      1044, 1044, 1044, 1044, 1044, 1044, 1044, 1221, 1654,  497,
2690      1044, 1256, 1044, 1654,  496, 1044, 1044, 1044, 1044, 1044,
2691 
2692      1044, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1177, 1177,
2693      1177, 1177, 1177, 1177, 1177, 1261, 1332, 1044, 1057, 1057,
2694      1057, 1057, 1057, 1057, 1057, 1057, 1057,  494,  493, 1261,
2695      1057,  492,  491, 1332, 1332, 1057, 1057, 1057, 1057, 1057,
2696      1057, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,
2697       490, 1332,  489, 1059, 1261, 1059,  487,  485, 1059, 1059,
2698      1059, 1059, 1059, 1059, 1179, 1179, 1179, 1179, 1179, 1179,
2699      1179, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1262, 1335,
2700      1059, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073,
2701       483,  482, 1262, 1073,  481,  480, 1335, 1655, 1073, 1073,
2702 
2703      1073, 1073, 1073, 1073, 1075, 1075, 1075, 1075, 1075, 1075,
2704      1075, 1075, 1075,  479, 1655, 1335, 1075, 1262, 1075, 1655,
2705       477, 1075, 1075, 1075, 1075, 1075, 1075, 1190, 1190, 1190,
2706      1190, 1190, 1190, 1190, 1249, 1249, 1249, 1249, 1249, 1249,
2707      1249, 1265, 1336, 1075, 1087, 1087, 1087, 1087, 1087, 1087,
2708      1087, 1087, 1087,  476,  474, 1265, 1087,  473, 1652, 1336,
2709      1266, 1087, 1087, 1087, 1087, 1087, 1087, 1088, 1088, 1088,
2710      1088, 1088, 1088, 1088, 1266, 1652, 1336,  472, 1088, 1652,
2711      1265, 1622,  469, 1088, 1088, 1088, 1088, 1088, 1088, 1117,
2712      1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1622, 1266,
2713 
2714       465, 1622, 1117,  461,  460,  459, 1117, 1117, 1117, 1117,
2715      1117, 1117, 1117, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
2716      1118, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119,
2717      1272, 1272, 1272, 1272, 1272, 1272, 1272, 1274, 1119, 1121,
2718      1121, 1121, 1121, 1121, 1121, 1121, 1570,  456,  452,  451,
2719      1121, 1274,  448, 1660, 1570, 1121, 1121, 1121, 1121, 1121,
2720      1121, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
2721      1660,  447,  446, 1122,  445, 1668, 1274, 1275, 1122, 1122,
2722      1122, 1122, 1122, 1122, 1123, 1123, 1123, 1123, 1123, 1123,
2723      1123, 1275, 1668,  442,  441, 1123,  432,  429, 1670,  427,
2724 
2725      1123, 1123, 1123, 1123, 1123, 1123, 1125, 1125, 1125, 1125,
2726      1125, 1125, 1125, 1125, 1125, 1670, 1275,  426, 1125,  425,
2727      1670, 1623, 1278, 1125, 1125, 1125, 1125, 1125, 1125, 1126,
2728      1126, 1126, 1126, 1126, 1126, 1126, 1278,  424, 1623,  423,
2729      1126, 1623,  422, 1677,  421, 1126, 1126, 1126, 1126, 1126,
2730      1126, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128,
2731      1677, 1278,  420, 1128,  419, 1680, 1628, 1279, 1128, 1128,
2732      1128, 1128, 1128, 1128, 1129, 1129, 1129, 1129, 1129, 1129,
2733      1129, 1279, 1680, 1628,  418, 1129, 1628, 1680, 1683,  417,
2734      1129, 1129, 1129, 1129, 1129, 1129, 1131, 1131, 1131, 1131,
2735 
2736      1131, 1131, 1131, 1131, 1131, 1683, 1279,  416, 1131, 1511,
2737      1684,  415, 1691, 1131, 1131, 1131, 1131, 1131, 1131, 1132,
2738      1132, 1132, 1132, 1132, 1132, 1132, 1511, 1684, 1684, 1691,
2739      1132,  414,  412,  410, 1511, 1132, 1132, 1132, 1132, 1132,
2740      1132, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135,
2741      1210, 1216, 1288, 1135,  409, 1135,  407,  406, 1135, 1135,
2742      1135, 1135, 1135, 1135,  403,  402, 1288, 1210, 1216, 1286,
2743      1286, 1286, 1286, 1286, 1286, 1286, 1289, 1338, 1210, 1216,
2744      1135, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
2745      1289, 1288,  400, 1140, 1338,  398,  397, 1685, 1140, 1140,
2746 
2747      1140, 1140, 1140, 1140, 1149, 1149, 1149, 1149, 1149, 1149,
2748      1149, 1149, 1149, 1338, 1685, 1289, 1149,  396,  395, 1685,
2749      1686, 1149, 1149, 1149, 1149, 1149, 1149, 1160, 1160, 1160,
2750      1160, 1160, 1160, 1160, 1160, 1160,  390, 1686,  389, 1160,
2751       388,  386, 1686, 1687, 1160, 1160, 1160, 1160, 1160, 1160,
2752      1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,  385,
2753      1687,  384, 1172,  383,  381, 1687, 1689, 1172, 1172, 1172,
2754      1172, 1172, 1172, 1184, 1184, 1184, 1184, 1184, 1184, 1184,
2755      1184, 1184,  376, 1689,  375, 1184,  374,  371, 1689, 1694,
2756      1184, 1184, 1184, 1184, 1184, 1184, 1198, 1198, 1198, 1198,
2757 
2758      1198, 1198, 1198, 1198, 1198,  367, 1694,  365, 1198, 1694,
2759       360,  359, 1217, 1198, 1198, 1198, 1198, 1198, 1198, 1200,
2760      1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1218, 1217,
2761      1222, 1200, 1223, 1200, 1228, 1439, 1200, 1200, 1200, 1200,
2762      1200, 1200, 1217, 1292,  356, 1218,  351, 1222,  350, 1223,
2763       342, 1228, 1439,  340,  339,  334,  332, 1292, 1200, 1218,
2764      1443, 1222, 1340, 1223, 1439, 1228, 1230, 1230, 1230, 1230,
2765      1230, 1230, 1230, 1230, 1230,  330, 1705, 1443, 1293, 1340,
2766      1302, 1339, 1292, 1230, 1232, 1232, 1232, 1232, 1232, 1232,
2767      1232, 1232, 1293, 1705, 1302, 1232, 1340, 1443, 1339, 1339,
2768 
2769      1232, 1232, 1232, 1232, 1232, 1232, 1233, 1233, 1233, 1233,
2770      1233, 1233, 1233, 1233, 1233,  329, 1339, 1293, 1233, 1302,
2771      1233, 1717, 1303, 1233, 1233, 1233, 1233, 1233, 1233, 1300,
2772      1300, 1300, 1300, 1300, 1300, 1300, 1303,  328, 1717,  327,
2773       326, 1306, 1307, 1367,  325, 1233, 1236, 1236, 1236, 1236,
2774      1236, 1236, 1236, 1236, 1236, 1306, 1307, 1367, 1236, 1509,
2775      1236, 1303, 1342, 1236, 1236, 1236, 1236, 1236, 1236, 1313,
2776      1313, 1313, 1313, 1313, 1313, 1313, 1509,  324,  322, 1342,
2777      1306, 1307, 1367,  321, 1720, 1236, 1239, 1239, 1239, 1239,
2778      1239, 1239, 1239, 1239, 1239, 1509, 1342,  320, 1239,  315,
2779 
2780      1239, 1720,  312, 1239, 1239, 1239, 1239, 1239, 1239, 1315,
2781      1315, 1315, 1315, 1315, 1315, 1315, 1319, 1319, 1319, 1319,
2782      1319, 1319, 1319,  311, 1329, 1239, 1242, 1242, 1242, 1242,
2783      1242, 1242, 1242, 1242, 1242, 1331, 1333, 1698, 1242, 1702,
2784      1242, 1329,  310, 1242, 1242, 1242, 1242, 1242, 1242,  307,
2785      1329,  306, 1331, 1333, 1698,  299, 1702, 1698,  298, 1330,
2786      1341, 1702, 1333, 1331, 1345, 1242, 1245, 1245, 1245, 1245,
2787      1245, 1245, 1245, 1245, 1245, 1346, 1330, 1341, 1245,  296,
2788      1245, 1345, 1368, 1245, 1245, 1245, 1245, 1245, 1245, 1330,
2789       295, 1341, 1346,  294, 1345,  292, 1368,  290,  289, 1700,
2790 
2791      1704, 1415, 1573, 1346,  288, 1245, 1250, 1250, 1250, 1250,
2792      1250, 1250, 1250, 1250, 1250, 1415, 1700, 1704, 1250, 1573,
2793      1700, 1368, 1704, 1250, 1250, 1250, 1250, 1250, 1250, 1257,
2794      1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1573,  286,
2795      1415, 1257,  282,  281, 1707, 1708, 1257, 1257, 1257, 1257,
2796      1257, 1257, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
2797      1267, 1707, 1708,  279, 1267,  276,  272, 1715,  271, 1267,
2798      1267, 1267, 1267, 1267, 1267, 1280, 1280, 1280, 1280, 1280,
2799      1280, 1280, 1280, 1280, 1715, 1707, 1708, 1280,  268, 1715,
2800      1724, 1725, 1280, 1280, 1280, 1280, 1280, 1280, 1294, 1294,
2801 
2802      1294, 1294, 1294, 1294, 1294, 1294, 1294, 1724, 1725,  267,
2803      1294,  265, 1724, 1725, 1730, 1294, 1294, 1294, 1294, 1294,
2804      1294, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
2805       260, 1730,  257, 1308,  255,  254, 1730, 1731, 1308, 1308,
2806      1308, 1308, 1308, 1308, 1320, 1320, 1320, 1320, 1320, 1320,
2807      1320, 1320, 1320,  252, 1731,  249, 1320,  245, 1731, 1733,
2808      1735, 1320, 1320, 1320, 1320, 1320, 1320, 1348, 1348, 1348,
2809      1348, 1348, 1348, 1348, 1348, 1348, 1733, 1735,  241, 1348,
2810       239, 1348, 1735,  237, 1348, 1348, 1348, 1348, 1348, 1348,
2811      1375, 1375, 1375, 1375, 1375, 1375, 1375, 1380, 1380, 1380,
2812 
2813      1380, 1380, 1380, 1380, 1416, 1425, 1348, 1352, 1352, 1352,
2814      1352, 1352, 1352, 1352, 1352, 1352,  236,  234, 1416, 1352,
2815       233,  232, 1425, 1739, 1352, 1352, 1352, 1352, 1352, 1352,
2816      1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1425,
2817      1739,  231, 1355, 1416,  230, 1740, 1738, 1355, 1355, 1355,
2818      1355, 1355, 1355, 1358, 1358, 1358, 1358, 1358, 1358, 1358,
2819      1358, 1358, 1740, 1738,  229, 1358, 1738,  228, 1745,  226,
2820      1358, 1358, 1358, 1358, 1358, 1358, 1361, 1361, 1361, 1361,
2821      1361, 1361, 1361, 1361, 1361, 1745, 1740,  224, 1361,  222,
2822      1745, 1750, 1754, 1361, 1361, 1361, 1361, 1361, 1361, 1364,
2823 
2824      1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1750, 1754,
2825       221, 1364,  219,  217, 1754, 1756, 1364, 1364, 1364, 1364,
2826      1364, 1364, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369,
2827      1369,  216, 1756,  214, 1369,  211,  210,  209,  207, 1369,
2828      1369, 1369, 1369, 1369, 1369, 1382, 1382, 1382, 1382, 1382,
2829      1382, 1382, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1390,
2830      1390, 1390, 1390, 1390, 1390, 1390, 1396, 1396, 1396, 1396,
2831      1396, 1396, 1396, 1398, 1398, 1398, 1398, 1398, 1398, 1398,
2832      1404, 1404, 1404, 1404, 1404, 1404, 1404, 1406, 1406, 1406,
2833      1406, 1406, 1406, 1406, 1413, 1413, 1413, 1413, 1413, 1413,
2834 
2835      1413, 1419, 1420, 1430, 1431, 1436, 1438, 1759, 1763, 1766,
2836       205,  204, 1444, 1461, 1462, 1419, 1420, 1469, 1470, 1441,
2837      1430, 1431, 1436, 1438, 1759, 1763, 1766, 1461, 1462, 1444,
2838      1763, 1469, 1470, 1436, 1430, 1431, 1441, 1438, 1444, 1436,
2839      1419, 1420, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
2840      1421, 1441, 1461, 1462, 1421,  201, 1469, 1470, 1765, 1421,
2841      1421, 1421, 1421, 1421, 1421, 1446, 1446, 1446, 1446, 1446,
2842      1446, 1446, 1446, 1446,  200, 1765,  198, 1446, 1765,  197,
2843       196,  195, 1446, 1446, 1446, 1446, 1446, 1446, 1455, 1455,
2844      1455, 1455, 1455, 1455, 1455, 1467, 1467, 1467, 1467, 1467,
2845 
2846      1467, 1467, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1478,
2847      1479, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1487, 1488,
2848      1496, 1497,  194, 1478, 1479, 1494, 1494, 1494, 1494, 1494,
2849      1494, 1494, 1487, 1488, 1496, 1497, 1502, 1502, 1502, 1502,
2850      1502, 1502, 1502,  193, 1510, 1514, 1515,  192, 1478, 1479,
2851      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1487, 1488, 1496,
2852      1497, 1510, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1522,
2853      1510, 1525, 1524, 1514,  191,  190, 1515, 1526, 1527,  189,
2854       188, 1516, 1517, 1518, 1519, 1520, 1522, 1538, 1525, 1524,
2855      1516, 1517, 1518, 1519, 1526, 1527, 1539, 1522, 1524, 1520,
2856 
2857       187, 1538,  186,  185,  184, 1525,  183, 1527,  182,  181,
2858      1539, 1526, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1548,
2859      1548, 1548, 1548, 1548, 1548, 1548, 1538, 1552, 1552, 1552,
2860      1552, 1552, 1552, 1552,  180, 1539, 1556, 1556, 1556, 1556,
2861      1556, 1556, 1556, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
2862      1565, 1565, 1565, 1565, 1565, 1565, 1565, 1567, 1568, 1576,
2863      1578, 1577, 1584, 1587, 1579, 1581, 1582, 1590,  178, 1585,
2864      1588, 1567, 1568, 1693, 1621, 1629, 1576, 1578, 1577, 1584,
2865      1587, 1579, 1581, 1582, 1590, 1576, 1585, 1588, 1584,  177,
2866      1693, 1621, 1629, 1590, 1587, 1578, 1567, 1568, 1577, 1579,
2867 
2868      1581, 1629, 1693, 1582, 1621, 1585, 1588, 1593, 1593, 1593,
2869      1593, 1593, 1593, 1593, 1596, 1596, 1596, 1596, 1596, 1596,
2870      1596, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1604, 1604,
2871      1604, 1604, 1604, 1604, 1604, 1608, 1608, 1608, 1608, 1608,
2872      1608, 1608, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1615,
2873      1615, 1615, 1615, 1615, 1615, 1615, 1619, 1624,  174, 1625,
2874      1626, 1768, 1633, 1627, 1636, 1636, 1636, 1636, 1636, 1636,
2875      1636, 1647,  173, 1619, 1624, 1624, 1625, 1626, 1768, 1633,
2876      1627, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1647, 1648,
2877      1619, 1649, 1624, 1650, 1657, 1625, 1626, 1627, 1633, 1651,
2878 
2879      1653, 1656, 1658,  172, 1659, 1669, 1648, 1647, 1649, 1671,
2880      1650, 1657, 1672,  171,  170, 1648, 1651, 1653, 1656, 1658,
2881      1657, 1659, 1669, 1673, 1650, 1649, 1671, 1674, 1675, 1672,
2882      1651, 1653, 1659, 1658, 1676, 1678, 1679, 1656,  169, 1688,
2883      1673, 1669, 1690,  168, 1674, 1675, 1692, 1671,  167,  165,
2884      1672, 1676, 1678, 1679,  162, 1674, 1688, 1695, 1675, 1690,
2885      1690, 1673,  161, 1692, 1696, 1688, 1679, 1697, 1676, 1699,
2886      1703, 1678, 1706, 1701, 1695, 1709, 1710, 1690, 1690, 1692,
2887      1692, 1696, 1712, 1714, 1697,  160, 1699, 1703, 1711, 1706,
2888      1701, 1695, 1709, 1710,  159, 1713, 1716, 1706, 1696, 1712,
2889 
2890      1714, 1697, 1710, 1699, 1701, 1711,  156, 1703, 1718, 1711,
2891      1719, 1709, 1713, 1716,  154, 1721, 1722, 1714, 1723, 1727,
2892      1712, 1711, 1711, 1713, 1726, 1718, 1728, 1719, 1719, 1729,
2893       145, 1716, 1721, 1722,  144, 1723, 1727, 1732,  143, 1734,
2894      1736, 1726, 1718, 1728,  142, 1719, 1729, 1722, 1727, 1737,
2895      1726, 1721,  141, 1741, 1732, 1723, 1734, 1736, 1742, 1743,
2896      1728, 1729, 1746, 1747, 1744, 1748, 1737,  140, 1732, 1734,
2897      1741, 1752, 1736,  139,  137, 1742, 1743,  135, 1749, 1746,
2898      1747, 1744, 1748, 1737, 1741, 1751, 1753,  134, 1752, 1757,
2899      1742, 1742, 1744, 1755, 1747, 1749, 1746, 1743,  132, 1752,
2900 
2901      1758, 1748, 1751, 1753, 1749, 1760, 1757, 1761, 1762, 1764,
2902      1755, 1767, 1770,  130, 1769, 1751, 1771, 1758, 1772, 1755,
2903      1773, 1774, 1760, 1753, 1761, 1762, 1764, 1775, 1767, 1770,
2904      1757, 1769,  128, 1771, 1758, 1772, 1769, 1773, 1774, 1776,
2905      1777, 1760, 1761, 1764, 1775, 1778, 1773, 1767, 1780, 1762,
2906      1781, 1771, 1782, 1783, 1772,  127, 1776, 1777,  126, 1774,
2907      1779,  125, 1778, 1779, 1779, 1780,  123, 1781,  122, 1782,
2908      1783,  121,  120,  119,  118, 1776,  116, 1779,  114,  113,
2909       112, 1778, 1785,  111, 1785, 1786,  110, 1786, 1786, 1786,
2910      1786, 1786, 1786, 1787,  109, 1787, 1788, 1788, 1788, 1789,
2911 
2912      1789, 1789, 1790, 1790, 1790, 1791, 1791, 1791, 1792, 1792,
2913      1792, 1793, 1793, 1793, 1794, 1794, 1794, 1795, 1795, 1795,
2914      1796, 1796, 1796, 1797,  108, 1797, 1798, 1798, 1798, 1799,
2915      1799, 1799, 1800, 1800, 1800, 1801, 1801, 1801, 1802,  107,
2916      1802, 1803, 1803, 1803, 1804, 1804,  106,  104, 1804, 1805,
2917      1805, 1805, 1806, 1806, 1806, 1807, 1807, 1807, 1808, 1808,
2918      1808, 1809, 1809, 1809, 1810, 1810, 1810, 1811, 1811, 1811,
2919      1812, 1812, 1812, 1813, 1813, 1813, 1814, 1814,  103,   96,
2920      1814, 1815, 1815, 1815, 1816, 1816, 1816, 1817,   95, 1817,
2921      1818, 1818, 1818, 1819, 1819, 1819, 1820,   94, 1820, 1821,
2922 
2923      1821, 1821, 1822, 1822, 1822, 1823, 1823, 1823, 1824, 1824,
2924      1824, 1825, 1825, 1825, 1826,   91, 1826, 1827,   88, 1827,
2925      1828, 1828, 1828, 1829, 1829, 1829, 1830,   87, 1830, 1831,
2926      1831,   86,   85, 1831, 1832, 1832,   84,   83, 1832, 1833,
2927      1833, 1833, 1834, 1834, 1834, 1835, 1835,   82, 1835, 1836,
2928      1836, 1836, 1837, 1837, 1837, 1838, 1838, 1838, 1839, 1839,
2929      1839, 1840, 1840, 1840, 1841, 1841, 1841, 1842, 1842, 1842,
2930      1843, 1843,   81,   80, 1843, 1844, 1844, 1844, 1845, 1845,
2931      1845, 1846, 1846,   79, 1846, 1847, 1847,   77,   76, 1847,
2932      1848, 1848,   75, 1848, 1849, 1849, 1850, 1850,   74,   73,
2933 
2934      1850, 1851, 1851, 1851, 1852, 1852, 1852, 1853, 1853,   72,
2935      1853, 1854,   71, 1854, 1855,   70, 1855, 1856, 1856, 1856,
2936      1857, 1857, 1857, 1858,   69, 1858, 1859, 1859, 1859, 1860,
2937      1860, 1860, 1861, 1861, 1861, 1862, 1862, 1862, 1863, 1863,
2938      1863, 1864, 1864, 1864, 1865,   68, 1865, 1866,   67, 1866,
2939      1867, 1867, 1867, 1868, 1868, 1868, 1869,   66, 1869, 1870,
2940        65, 1870, 1871,   64, 1871, 1872, 1872, 1872, 1873, 1873,
2941      1873, 1874,   62, 1874, 1875,   61,   60, 1875, 1876, 1876,
2942        47, 1876, 1877, 1877,   40,   39, 1877, 1878, 1878,   37,
2943      1878, 1879, 1879, 1880, 1880,   15,   13, 1880, 1881, 1881,
2944 
2945      1881, 1882, 1882, 1882, 1883, 1883,   10, 1883, 1884, 1884,
2946      1884,    7, 1884, 1884, 1885, 1885, 1885, 1886, 1886, 1886,
2947      1887, 1887, 1887, 1888, 1888, 1888, 1889, 1889, 1889, 1890,
2948      1890, 1890, 1891, 1891, 1891, 1892, 1892, 1892, 1893, 1893,
2949         3,    0, 1893, 1894, 1894, 1894, 1895, 1895, 1895, 1896,
2950      1896,    0, 1896, 1897, 1897,    0,    0, 1897, 1898, 1898,
2951         0, 1898, 1899, 1899, 1900, 1900,    0,    0, 1900, 1901,
2952      1901, 1901, 1902, 1902, 1902, 1903, 1903,    0, 1903, 1904,
2953         0,    0, 1904, 1905, 1905,    0, 1905, 1906, 1906,    0,
2954         0, 1906, 1907, 1907,    0, 1907, 1908, 1908, 1909, 1909,
2955 
2956         0,    0, 1909, 1910, 1910, 1910, 1911, 1911, 1911, 1912,
2957      1912,    0, 1912, 1913,    0, 1913, 1914,    0, 1914, 1915,
2958         0, 1915, 1916, 1916, 1916, 1917, 1917, 1917, 1918,    0,
2959      1918, 1919, 1919, 1919,    0, 1919, 1919, 1920, 1920, 1920,
2960      1921, 1921, 1921, 1922, 1922, 1922, 1923, 1923, 1923, 1924,
2961      1924, 1924, 1925, 1925, 1925, 1926, 1926, 1926, 1927,    0,
2962      1927, 1928,    0, 1928, 1929, 1929, 1929, 1930, 1930, 1930,
2963      1931,    0, 1931, 1932,    0, 1932, 1933,    0, 1933, 1934,
2964      1934, 1934, 1935, 1935, 1935, 1936,    0, 1936, 1937,    0,
2965      1937, 1938,    0, 1938, 1939,    0, 1939, 1940, 1940, 1940,
2966 
2967      1941, 1941, 1941, 1942,    0, 1942, 1943,    0, 1943, 1944,
2968         0,    0, 1944, 1945, 1945,    0, 1945, 1946, 1946,    0,
2969         0, 1946, 1947, 1947,    0, 1947, 1948, 1948, 1949, 1949,
2970         0,    0, 1949, 1950, 1950, 1950, 1951, 1951, 1951, 1952,
2971      1952,    0, 1952, 1953, 1953, 1953,    0, 1953, 1953, 1954,
2972      1954, 1954, 1955, 1955, 1955, 1956, 1956, 1956, 1957, 1957,
2973      1957, 1958, 1958, 1958, 1959, 1959, 1959, 1960, 1960, 1960,
2974      1961, 1961, 1961, 1962, 1962,    0,    0, 1962, 1963, 1963,
2975      1963, 1964, 1964, 1964, 1965, 1965,    0, 1965, 1966, 1966,
2976         0,    0, 1966, 1967, 1967,    0, 1967, 1968, 1968, 1969,
2977 
2978      1969,    0,    0, 1969, 1970, 1970, 1970, 1971, 1971, 1971,
2979      1972, 1972,    0, 1972, 1973,    0,    0, 1973, 1974, 1974,
2980         0, 1974, 1975, 1975,    0,    0, 1975, 1976, 1976,    0,
2981      1976, 1977, 1977, 1978, 1978,    0,    0, 1978, 1979, 1979,
2982      1979, 1980, 1980, 1980, 1981, 1981,    0, 1981, 1982,    0,
2983      1982, 1983,    0,    0, 1983, 1984, 1984,    0, 1984, 1985,
2984      1985,    0,    0, 1985, 1986, 1986,    0, 1986, 1987, 1987,
2985      1988, 1988,    0,    0, 1988, 1989, 1989, 1989, 1990, 1990,
2986      1990, 1991, 1991,    0, 1991, 1992,    0, 1992, 1993,    0,
2987      1993, 1994,    0, 1994, 1995, 1995, 1995, 1996, 1996, 1996,
2988 
2989      1997,    0, 1997, 1998, 1998, 1998,    0, 1998, 1998, 1999,
2990      1999, 1999, 2000, 2000, 2000, 2001, 2001, 2001, 2002, 2002,
2991      2002, 2003, 2003, 2003, 2004, 2004, 2004, 2005, 2005, 2005,
2992      2006, 2006, 2006, 2007, 2007, 2007, 2008, 2008, 2008, 2009,
2993         0, 2009, 2010,    0, 2010, 2011, 2011, 2011, 2012, 2012,
2994      2012, 2013, 2013, 2013, 2014,    0, 2014, 2015,    0, 2015,
2995      2016,    0, 2016, 2017, 2017, 2017, 2018, 2018, 2018, 2019,
2996      2019, 2019, 2020,    0, 2020, 2021,    0, 2021, 2022,    0,
2997      2022, 2023,    0, 2023, 2024, 2024, 2024, 2025, 2025, 2025,
2998      2026, 2026, 2026, 2027,    0, 2027, 2028,    0, 2028, 2029,
2999 
3000         0, 2029, 2030,    0, 2030, 2031, 2031, 2031, 2032, 2032,
3001      2032, 2033, 2033, 2033, 2034,    0, 2034, 2035,    0, 2035,
3002      2036,    0,    0, 2036, 2037, 2037,    0, 2037, 2038, 2038,
3003         0,    0, 2038, 2039, 2039,    0, 2039, 2040, 2040, 2041,
3004      2041,    0,    0, 2041, 2042, 2042, 2042, 2043, 2043, 2043,
3005      2044, 2044,    0, 2044, 2045, 2045, 2045,    0, 2045, 2045,
3006      2046, 2046, 2046, 2047, 2047, 2047, 2048, 2048, 2048, 2049,
3007      2049, 2049, 2050, 2050, 2050, 2051, 2051, 2051, 2052, 2052,
3008      2052, 2053, 2053, 2053, 2054,    0, 2054, 2055, 2055, 2055,
3009      2056, 2056,    0,    0, 2056, 2057, 2057, 2057, 2058, 2058,
3010 
3011      2058, 2059, 2059,    0, 2059, 2060, 2060,    0,    0, 2060,
3012      2061, 2061,    0, 2061, 2062, 2062, 2063, 2063,    0,    0,
3013      2063, 2064, 2064, 2064, 2065, 2065, 2065, 2066, 2066,    0,
3014      2066, 2067,    0,    0, 2067, 2068, 2068,    0, 2068, 2069,
3015      2069,    0,    0, 2069, 2070, 2070,    0, 2070, 2071, 2071,
3016      2072, 2072,    0,    0, 2072, 2073, 2073, 2073, 2074, 2074,
3017      2074, 2075, 2075,    0, 2075, 2076,    0, 2076, 2077,    0,
3018         0, 2077, 2078, 2078,    0, 2078, 2079, 2079,    0,    0,
3019      2079, 2080, 2080,    0, 2080, 2081, 2081, 2082, 2082,    0,
3020         0, 2082, 2083, 2083, 2083, 2084, 2084, 2084, 2085, 2085,
3021 
3022         0, 2085, 2086,    0, 2086, 2087,    0,    0, 2087, 2088,
3023      2088,    0, 2088, 2089, 2089,    0,    0, 2089, 2090, 2090,
3024         0, 2090, 2091, 2091, 2092, 2092,    0,    0, 2092, 2093,
3025      2093, 2093, 2094, 2094, 2094, 2095, 2095,    0, 2095, 2096,
3026         0, 2096, 2097,    0, 2097, 2098,    0, 2098, 2099, 2099,
3027      2099, 2100,    0, 2100, 2101, 2101, 2101, 2102,    0, 2102,
3028      2103, 2103, 2103,    0, 2103, 2103, 2104,    0, 2104, 2105,
3029      2105, 2105, 2106,    0, 2106, 2107, 2107, 2107, 2108,    0,
3030      2108, 2109, 2109, 2109, 2110,    0, 2110, 2111, 2111, 2111,
3031      2112,    0, 2112, 2113, 2113, 2113, 2114,    0, 2114, 2115,
3032 
3033      2115, 2115, 2116, 2116,    0,    0, 2116, 2117, 2117, 2117,
3034      2118, 2118, 2118, 2119, 2119, 2119, 2120, 2120,    0, 2120,
3035      2121, 2121, 2121, 2122,    0, 2122, 2123, 2123, 2123, 2124,
3036      2124, 2124, 2125,    0, 2125, 2126,    0, 2126, 2127, 2127,
3037      2127, 2128, 2128, 2128, 2129,    0, 2129, 2130,    0, 2130,
3038      2131,    0, 2131, 2132, 2132, 2132, 2133, 2133, 2133, 2134,
3039         0, 2134, 2135,    0, 2135, 2136,    0, 2136, 2137, 2137,
3040      2137, 2138, 2138, 2138, 2139,    0, 2139, 2140,    0, 2140,
3041      2141,    0, 2141, 2142, 2142, 2142, 2143, 2143, 2143, 2144,
3042         0, 2144, 2145,    0,    0, 2145, 2146, 2146,    0, 2146,
3043 
3044      2147, 2147,    0,    0, 2147, 2148, 2148,    0, 2148, 2149,
3045      2149, 2150, 2150,    0,    0, 2150, 2151, 2151, 2151, 2152,
3046         0, 2152, 2153, 2153,    0, 2153, 2154, 2154, 2154,    0,
3047      2154, 2154, 2155, 2155, 2155, 2156, 2156, 2156, 2157,    0,
3048      2157, 2158,    0, 2158, 2159,    0, 2159, 2160,    0, 2160,
3049      2161,    0, 2161, 2162,    0, 2162, 2163,    0, 2163, 2164,
3050      2164, 2164, 2165, 2165, 2165, 2166,    0, 2166, 2167, 2167,
3051         0,    0, 2167, 2168, 2168,    0, 2168, 2169, 2169, 2170,
3052         0, 2170, 2171,    0,    0, 2171, 2172, 2172,    0, 2172,
3053      2173, 2173,    0,    0, 2173, 2174, 2174,    0, 2174, 2175,
3054 
3055      2175, 2176,    0, 2176, 2177,    0, 2177, 2178,    0,    0,
3056      2178, 2179, 2179,    0, 2179, 2180, 2180,    0,    0, 2180,
3057      2181, 2181,    0, 2181, 2182, 2182, 2183,    0, 2183, 2184,
3058         0, 2184, 2185,    0,    0, 2185, 2186, 2186,    0, 2186,
3059      2187, 2187,    0,    0, 2187, 2188, 2188,    0, 2188, 2189,
3060      2189, 2190,    0, 2190, 2191,    0, 2191, 2192,    0,    0,
3061      2192, 2193, 2193,    0, 2193, 2194, 2194,    0,    0, 2194,
3062      2195, 2195,    0, 2195, 2196, 2196, 2197,    0, 2197, 2198,
3063         0, 2198, 2199,    0, 2199, 2200,    0, 2200, 2201, 2201,
3064      2201, 2202,    0, 2202, 2203, 2203, 2203,    0, 2203, 2203,
3065 
3066      2204,    0, 2204, 2205,    0, 2205, 2206,    0, 2206, 2207,
3067         0, 2207, 2208,    0, 2208, 2209,    0, 2209, 2210,    0,
3068      2210, 2211, 2211,    0,    0, 2211, 2212, 2212,    0, 2212,
3069      2213, 2213, 2214,    0, 2214, 2215,    0, 2215, 2216,    0,
3070      2216, 2217,    0, 2217, 2218,    0, 2218, 2219,    0, 2219,
3071      2220,    0, 2220, 2221,    0, 2221, 2222,    0, 2222, 2223,
3072         0, 2223, 2224,    0,    0, 2224, 2225, 2225,    0,    0,
3073      2225, 2226,    0, 2226, 2227,    0, 2227, 2228,    0, 2228,
3074      2229,    0,    0, 2229, 2230,    0,    0, 2230, 2231,    0,
3075         0, 2231, 2232,    0,    0, 2232, 2233,    0,    0, 2233,
3076 
3077      2234,    0, 2234, 2235,    0, 2235, 2236,    0,    0, 2236,
3078      2237,    0, 2237, 2238,    0, 2238, 2239,    0, 2239, 2240,
3079         0, 2240, 2241,    0, 2241, 2242,    0,    0, 2242, 2243,
3080         0, 2243, 2244,    0, 2244, 1784, 1784, 1784, 1784, 1784,
3081      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
3082      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
3083      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
3084      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
3085      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784
3086     } ;
3087 
3088 /* The intent behind this definition is that it'll catch
3089  * any uses of REJECT which flex missed.
3090  */
3091 #define REJECT reject_used_but_not_detected
3092 #define yymore() yymore_used_but_not_detected
3093 #define YY_MORE_ADJ 0
3094 #define YY_RESTORE_YY_MORE_OFFSET
3095 #line 1 "scanner.l"
3096 
3097 /*
3098  * We want a reentrant scanner.
3099  */
3100 /*
3101  * And we need to pass the compiler state to the scanner.
3102  */
3103 /*
3104  * We don't use input, so don't generate code for it.
3105  */
3106 #define YY_NO_INPUT 1
3107 /*
3108  * We don't use unput, so don't generate code for it.
3109  */
3110 /*
3111  * We don't read from the terminal.
3112  */
3113 /*
3114  * We want to stop processing when we get to the end of the input.
3115  */
3116 /*
3117  * We want to generate code that can be used by a reentrant parser
3118  * generated by Bison or Berkeley YACC.
3119  */
3120 #line 92 "scanner.l"
3121 /*
3122  * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
3123  *	The Regents of the University of California.  All rights reserved.
3124  *
3125  * Redistribution and use in source and binary forms, with or without
3126  * modification, are permitted provided that: (1) source code distributions
3127  * retain the above copyright notice and this paragraph in its entirety, (2)
3128  * distributions including binary code include the above copyright notice and
3129  * this paragraph in its entirety in the documentation or other materials
3130  * provided with the distribution, and (3) all advertising materials mentioning
3131  * features or use of this software display the following acknowledgement:
3132  * ``This product includes software developed by the University of California,
3133  * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
3134  * the University nor the names of its contributors may be used to endorse
3135  * or promote products derived from this software without specific prior
3136  * written permission.
3137  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
3138  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
3139  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
3140  */
3141 
3142 #include <string.h>
3143 
3144 #include "pcap-int.h"
3145 
3146 /*
3147  * Earlier versions of Flex don't declare these, so we declare them
3148  * ourselves to squelch warnings.
3149  */
3150 int pcap_get_column(yyscan_t);
3151 void pcap_set_column(int, yyscan_t);
3152 
3153 #ifdef INET6
3154 
3155 #ifdef _WIN32
3156 #include <winsock2.h>
3157 #include <ws2tcpip.h>
3158 /*
3159  * To quote the MSDN page for getaddrinfo() at
3160  *
3161  *    https://msdn.microsoft.com/en-us/library/windows/desktop/ms738520(v=vs.85).aspx
3162  *
3163  * "Support for getaddrinfo on Windows 2000 and older versions
3164  * The getaddrinfo function was added to the Ws2_32.dll on Windows XP and
3165  * later. To execute an application that uses this function on earlier
3166  * versions of Windows, then you need to include the Ws2tcpip.h and
3167  * Wspiapi.h files. When the Wspiapi.h include file is added, the
3168  * getaddrinfo function is defined to the WspiapiGetAddrInfo inline
3169  * function in the Wspiapi.h file. At runtime, the WspiapiGetAddrInfo
3170  * function is implemented in such a way that if the Ws2_32.dll or the
3171  * Wship6.dll (the file containing getaddrinfo in the IPv6 Technology
3172  * Preview for Windows 2000) does not include getaddrinfo, then a
3173  * version of getaddrinfo is implemented inline based on code in the
3174  * Wspiapi.h header file. This inline code will be used on older Windows
3175  * platforms that do not natively support the getaddrinfo function."
3176  *
3177  * We use getaddrinfo(), so we include Wspiapi.h here.
3178  */
3179 #include <wspiapi.h>
3180 #else /* _WIN32 */
3181 #include <sys/socket.h>	/* for "struct sockaddr" in "struct addrinfo" */
3182 #include <netdb.h>	/* for "struct addrinfo" */
3183 #endif /* _WIN32 */
3184 
3185 /* Workaround for AIX 4.3 */
3186 #if !defined(AI_NUMERICHOST)
3187 #define AI_NUMERICHOST 0x04
3188 #endif
3189 
3190 #endif /*INET6*/
3191 
3192 #include <pcap/namedb.h>
3193 #include "grammar.h"
3194 
3195 #ifdef HAVE_OS_PROTO_H
3196 #include "os-proto.h"
3197 #endif
3198 
3199 static int stou(const char *, YYSTYPE *, compiler_state_t *);
3200 
3201 /*
3202  * Disable diagnostics in the code generated by Flex.
3203  */
3204 DIAG_OFF_FLEX
3205 
3206 #line 3207 "scanner.c"
3207 #line 3208 "scanner.c"
3208 
3209 #define INITIAL 0
3210 
3211 #ifndef YY_NO_UNISTD_H
3212 /* Special case for "unistd.h", since it is non-ANSI. We include it way
3213  * down here because we want the user's section 1 to have been scanned first.
3214  * The user has a chance to override it with an option.
3215  */
3216 #include <unistd.h>
3217 #endif
3218 
3219 #define YY_EXTRA_TYPE compiler_state_t *
3220 
3221 /* Holds the entire state of the reentrant scanner. */
3222 struct yyguts_t
3223     {
3224 
3225     /* User-defined. Not touched by flex. */
3226     YY_EXTRA_TYPE yyextra_r;
3227 
3228     /* The rest are the same as the globals declared in the non-reentrant scanner. */
3229     FILE *yyin_r, *yyout_r;
3230     size_t yy_buffer_stack_top; /**< index of top of stack. */
3231     size_t yy_buffer_stack_max; /**< capacity of stack. */
3232     YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
3233     char yy_hold_char;
3234     int yy_n_chars;
3235     int yyleng_r;
3236     char *yy_c_buf_p;
3237     int yy_init;
3238     int yy_start;
3239     int yy_did_buffer_switch_on_eof;
3240     int yy_start_stack_ptr;
3241     int yy_start_stack_depth;
3242     int *yy_start_stack;
3243     yy_state_type yy_last_accepting_state;
3244     char* yy_last_accepting_cpos;
3245 
3246     int yylineno_r;
3247     int yy_flex_debug_r;
3248 
3249     char *yytext_r;
3250     int yy_more_flag;
3251     int yy_more_len;
3252 
3253     YYSTYPE * yylval_r;
3254 
3255     }; /* end struct yyguts_t */
3256 
3257 static int yy_init_globals ( yyscan_t yyscanner );
3258 
3259     /* This must go here because YYSTYPE and YYLTYPE are included
3260      * from bison output in section 1.*/
3261     #    define yylval yyg->yylval_r
3262 
3263 int yylex_init (yyscan_t* scanner);
3264 
3265 int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner);
3266 
3267 /* Accessor methods to globals.
3268    These are made visible to non-reentrant scanners for convenience. */
3269 
3270 int yylex_destroy ( yyscan_t yyscanner );
3271 
3272 int yyget_debug ( yyscan_t yyscanner );
3273 
3274 void yyset_debug ( int debug_flag , yyscan_t yyscanner );
3275 
3276 YY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner );
3277 
3278 void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner );
3279 
3280 FILE *yyget_in ( yyscan_t yyscanner );
3281 
3282 void yyset_in  ( FILE * _in_str , yyscan_t yyscanner );
3283 
3284 FILE *yyget_out ( yyscan_t yyscanner );
3285 
3286 void yyset_out  ( FILE * _out_str , yyscan_t yyscanner );
3287 
3288 			int yyget_leng ( yyscan_t yyscanner );
3289 
3290 char *yyget_text ( yyscan_t yyscanner );
3291 
3292 int yyget_lineno ( yyscan_t yyscanner );
3293 
3294 void yyset_lineno ( int _line_number , yyscan_t yyscanner );
3295 
3296 int yyget_column  ( yyscan_t yyscanner );
3297 
3298 void yyset_column ( int _column_no , yyscan_t yyscanner );
3299 
3300 YYSTYPE * yyget_lval ( yyscan_t yyscanner );
3301 
3302 void yyset_lval ( YYSTYPE * yylval_param , yyscan_t yyscanner );
3303 
3304 /* Macros after this point can all be overridden by user definitions in
3305  * section 1.
3306  */
3307 
3308 #ifndef YY_SKIP_YYWRAP
3309 #ifdef __cplusplus
3310 extern "C" int yywrap ( yyscan_t yyscanner );
3311 #else
3312 extern int yywrap ( yyscan_t yyscanner );
3313 #endif
3314 #endif
3315 
3316 #ifndef YY_NO_UNPUT
3317 
3318 #endif
3319 
3320 #ifndef yytext_ptr
3321 static void yy_flex_strncpy ( char *, const char *, int , yyscan_t yyscanner);
3322 #endif
3323 
3324 #ifdef YY_NEED_STRLEN
3325 static int yy_flex_strlen ( const char * , yyscan_t yyscanner);
3326 #endif
3327 
3328 #ifndef YY_NO_INPUT
3329 #ifdef __cplusplus
3330 static int yyinput ( yyscan_t yyscanner );
3331 #else
3332 static int input ( yyscan_t yyscanner );
3333 #endif
3334 
3335 #endif
3336 
3337 /* Amount of stuff to slurp up with each read. */
3338 #ifndef YY_READ_BUF_SIZE
3339 #ifdef __ia64__
3340 /* On IA-64, the buffer size is 16k, not 8k */
3341 #define YY_READ_BUF_SIZE 16384
3342 #else
3343 #define YY_READ_BUF_SIZE 8192
3344 #endif /* __ia64__ */
3345 #endif
3346 
3347 /* Copy whatever the last rule matched to the standard output. */
3348 #ifndef ECHO
3349 /* This used to be an fputs(), but since the string might contain NUL's,
3350  * we now use fwrite().
3351  */
3352 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
3353 #endif
3354 
3355 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3356  * is returned in "result".
3357  */
3358 #ifndef YY_INPUT
3359 #define YY_INPUT(buf,result,max_size) \
3360 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3361 		{ \
3362 		int c = '*'; \
3363 		int n; \
3364 		for ( n = 0; n < max_size && \
3365 			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
3366 			buf[n] = (char) c; \
3367 		if ( c == '\n' ) \
3368 			buf[n++] = (char) c; \
3369 		if ( c == EOF && ferror( yyin ) ) \
3370 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
3371 		result = n; \
3372 		} \
3373 	else \
3374 		{ \
3375 		errno=0; \
3376 		while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
3377 			{ \
3378 			if( errno != EINTR) \
3379 				{ \
3380 				YY_FATAL_ERROR( "input in flex scanner failed" ); \
3381 				break; \
3382 				} \
3383 			errno=0; \
3384 			clearerr(yyin); \
3385 			} \
3386 		}\
3387 \
3388 
3389 #endif
3390 
3391 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3392  * we don't want an extra ';' after the "return" because that will cause
3393  * some compilers to complain about unreachable statements.
3394  */
3395 #ifndef yyterminate
3396 #define yyterminate() return YY_NULL
3397 #endif
3398 
3399 /* Number of entries by which start-condition stack grows. */
3400 #ifndef YY_START_STACK_INCR
3401 #define YY_START_STACK_INCR 25
3402 #endif
3403 
3404 /* Report a fatal error. */
3405 #ifndef YY_FATAL_ERROR
3406 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
3407 #endif
3408 
3409 /* end tables serialization structures and prototypes */
3410 
3411 /* Default declaration of generated scanner - a define so the user can
3412  * easily add parameters.
3413  */
3414 #ifndef YY_DECL
3415 #define YY_DECL_IS_OURS 1
3416 
3417 extern int yylex \
3418                (YYSTYPE * yylval_param , yyscan_t yyscanner);
3419 
3420 #define YY_DECL int yylex \
3421                (YYSTYPE * yylval_param , yyscan_t yyscanner)
3422 #endif /* !YY_DECL */
3423 
3424 /* Code executed at the beginning of each rule, after yytext and yyleng
3425  * have been set up.
3426  */
3427 #ifndef YY_USER_ACTION
3428 #define YY_USER_ACTION
3429 #endif
3430 
3431 /* Code executed at the end of each rule. */
3432 #ifndef YY_BREAK
3433 #define YY_BREAK /*LINTED*/break;
3434 #endif
3435 
3436 #define YY_RULE_SETUP \
3437 	YY_USER_ACTION
3438 
3439 /** The main scanner function which does all the work.
3440  */
3441 YY_DECL
3442 {
3443 	yy_state_type yy_current_state;
3444 	char *yy_cp, *yy_bp;
3445 	int yy_act;
3446     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3447 
3448     yylval = yylval_param;
3449 
3450 	if ( !yyg->yy_init )
3451 		{
3452 		yyg->yy_init = 1;
3453 
3454 #ifdef YY_USER_INIT
3455 		YY_USER_INIT;
3456 #endif
3457 
3458 		if ( ! yyg->yy_start )
3459 			yyg->yy_start = 1;	/* first start state */
3460 
3461 		if ( ! yyin )
3462 			yyin = stdin;
3463 
3464 		if ( ! yyout )
3465 			yyout = stdout;
3466 
3467 		if ( ! YY_CURRENT_BUFFER ) {
3468 			yyensure_buffer_stack (yyscanner);
3469 			YY_CURRENT_BUFFER_LVALUE =
3470 				yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
3471 		}
3472 
3473 		yy_load_buffer_state( yyscanner );
3474 		}
3475 
3476 	{
3477 #line 273 "scanner.l"
3478 
3479 #line 3480 "scanner.c"
3480 
3481 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
3482 		{
3483 		yy_cp = yyg->yy_c_buf_p;
3484 
3485 		/* Support of yytext. */
3486 		*yy_cp = yyg->yy_hold_char;
3487 
3488 		/* yy_bp points to the position in yy_ch_buf of the start of
3489 		 * the current run.
3490 		 */
3491 		yy_bp = yy_cp;
3492 
3493 		yy_current_state = yyg->yy_start;
3494 yy_match:
3495 		do
3496 			{
3497 			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
3498 			if ( yy_accept[yy_current_state] )
3499 				{
3500 				yyg->yy_last_accepting_state = yy_current_state;
3501 				yyg->yy_last_accepting_cpos = yy_cp;
3502 				}
3503 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3504 				{
3505 				yy_current_state = (int) yy_def[yy_current_state];
3506 				if ( yy_current_state >= 1785 )
3507 					yy_c = yy_meta[yy_c];
3508 				}
3509 			yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
3510 			++yy_cp;
3511 			}
3512 		while ( yy_current_state != 1784 );
3513 		yy_cp = yyg->yy_last_accepting_cpos;
3514 		yy_current_state = yyg->yy_last_accepting_state;
3515 
3516 yy_find_action:
3517 		yy_act = yy_accept[yy_current_state];
3518 
3519 		YY_DO_BEFORE_ACTION;
3520 
3521 do_action:	/* This label is used only to access EOF actions. */
3522 
3523 		switch ( yy_act )
3524 	{ /* beginning of action switch */
3525 			case 0: /* must back up */
3526 			/* undo the effects of YY_DO_BEFORE_ACTION */
3527 			*yy_cp = yyg->yy_hold_char;
3528 			yy_cp = yyg->yy_last_accepting_cpos;
3529 			yy_current_state = yyg->yy_last_accepting_state;
3530 			goto yy_find_action;
3531 
3532 case 1:
3533 YY_RULE_SETUP
3534 #line 274 "scanner.l"
3535 return DST;
3536 	YY_BREAK
3537 case 2:
3538 YY_RULE_SETUP
3539 #line 275 "scanner.l"
3540 return SRC;
3541 	YY_BREAK
3542 case 3:
3543 YY_RULE_SETUP
3544 #line 277 "scanner.l"
3545 return LINK;
3546 	YY_BREAK
3547 case 4:
3548 YY_RULE_SETUP
3549 #line 278 "scanner.l"
3550 return LINK;
3551 	YY_BREAK
3552 case 5:
3553 YY_RULE_SETUP
3554 #line 279 "scanner.l"
3555 return ARP;
3556 	YY_BREAK
3557 case 6:
3558 YY_RULE_SETUP
3559 #line 280 "scanner.l"
3560 return RARP;
3561 	YY_BREAK
3562 case 7:
3563 YY_RULE_SETUP
3564 #line 281 "scanner.l"
3565 return IP;
3566 	YY_BREAK
3567 case 8:
3568 YY_RULE_SETUP
3569 #line 282 "scanner.l"
3570 return SCTP;
3571 	YY_BREAK
3572 case 9:
3573 YY_RULE_SETUP
3574 #line 283 "scanner.l"
3575 return TCP;
3576 	YY_BREAK
3577 case 10:
3578 YY_RULE_SETUP
3579 #line 284 "scanner.l"
3580 return UDP;
3581 	YY_BREAK
3582 case 11:
3583 YY_RULE_SETUP
3584 #line 285 "scanner.l"
3585 return ICMP;
3586 	YY_BREAK
3587 case 12:
3588 YY_RULE_SETUP
3589 #line 286 "scanner.l"
3590 return IGMP;
3591 	YY_BREAK
3592 case 13:
3593 YY_RULE_SETUP
3594 #line 287 "scanner.l"
3595 return IGRP;
3596 	YY_BREAK
3597 case 14:
3598 YY_RULE_SETUP
3599 #line 288 "scanner.l"
3600 return PIM;
3601 	YY_BREAK
3602 case 15:
3603 YY_RULE_SETUP
3604 #line 289 "scanner.l"
3605 return VRRP;
3606 	YY_BREAK
3607 case 16:
3608 YY_RULE_SETUP
3609 #line 290 "scanner.l"
3610 return CARP;
3611 	YY_BREAK
3612 case 17:
3613 YY_RULE_SETUP
3614 #line 291 "scanner.l"
3615 return RADIO;
3616 	YY_BREAK
3617 case 18:
3618 YY_RULE_SETUP
3619 #line 293 "scanner.l"
3620 return IPV6;
3621 	YY_BREAK
3622 case 19:
3623 YY_RULE_SETUP
3624 #line 294 "scanner.l"
3625 return ICMPV6;
3626 	YY_BREAK
3627 case 20:
3628 YY_RULE_SETUP
3629 #line 295 "scanner.l"
3630 return AH;
3631 	YY_BREAK
3632 case 21:
3633 YY_RULE_SETUP
3634 #line 296 "scanner.l"
3635 return ESP;
3636 	YY_BREAK
3637 case 22:
3638 YY_RULE_SETUP
3639 #line 298 "scanner.l"
3640 return ATALK;
3641 	YY_BREAK
3642 case 23:
3643 YY_RULE_SETUP
3644 #line 299 "scanner.l"
3645 return AARP;
3646 	YY_BREAK
3647 case 24:
3648 YY_RULE_SETUP
3649 #line 300 "scanner.l"
3650 return DECNET;
3651 	YY_BREAK
3652 case 25:
3653 YY_RULE_SETUP
3654 #line 301 "scanner.l"
3655 return LAT;
3656 	YY_BREAK
3657 case 26:
3658 YY_RULE_SETUP
3659 #line 302 "scanner.l"
3660 return SCA;
3661 	YY_BREAK
3662 case 27:
3663 YY_RULE_SETUP
3664 #line 303 "scanner.l"
3665 return MOPRC;
3666 	YY_BREAK
3667 case 28:
3668 YY_RULE_SETUP
3669 #line 304 "scanner.l"
3670 return MOPDL;
3671 	YY_BREAK
3672 case 29:
3673 YY_RULE_SETUP
3674 #line 306 "scanner.l"
3675 return ISO;
3676 	YY_BREAK
3677 case 30:
3678 YY_RULE_SETUP
3679 #line 307 "scanner.l"
3680 return ESIS;
3681 	YY_BREAK
3682 case 31:
3683 YY_RULE_SETUP
3684 #line 308 "scanner.l"
3685 return ESIS;
3686 	YY_BREAK
3687 case 32:
3688 YY_RULE_SETUP
3689 #line 309 "scanner.l"
3690 return ISIS;
3691 	YY_BREAK
3692 case 33:
3693 YY_RULE_SETUP
3694 #line 310 "scanner.l"
3695 return ISIS;
3696 	YY_BREAK
3697 case 34:
3698 YY_RULE_SETUP
3699 #line 311 "scanner.l"
3700 return L1;
3701 	YY_BREAK
3702 case 35:
3703 YY_RULE_SETUP
3704 #line 312 "scanner.l"
3705 return L2;
3706 	YY_BREAK
3707 case 36:
3708 YY_RULE_SETUP
3709 #line 313 "scanner.l"
3710 return IIH;
3711 	YY_BREAK
3712 case 37:
3713 YY_RULE_SETUP
3714 #line 314 "scanner.l"
3715 return LSP;
3716 	YY_BREAK
3717 case 38:
3718 YY_RULE_SETUP
3719 #line 315 "scanner.l"
3720 return SNP;
3721 	YY_BREAK
3722 case 39:
3723 YY_RULE_SETUP
3724 #line 316 "scanner.l"
3725 return CSNP;
3726 	YY_BREAK
3727 case 40:
3728 YY_RULE_SETUP
3729 #line 317 "scanner.l"
3730 return PSNP;
3731 	YY_BREAK
3732 case 41:
3733 YY_RULE_SETUP
3734 #line 319 "scanner.l"
3735 return CLNP;
3736 	YY_BREAK
3737 case 42:
3738 YY_RULE_SETUP
3739 #line 321 "scanner.l"
3740 return STP;
3741 	YY_BREAK
3742 case 43:
3743 YY_RULE_SETUP
3744 #line 323 "scanner.l"
3745 return IPX;
3746 	YY_BREAK
3747 case 44:
3748 YY_RULE_SETUP
3749 #line 325 "scanner.l"
3750 return NETBEUI;
3751 	YY_BREAK
3752 case 45:
3753 YY_RULE_SETUP
3754 #line 327 "scanner.l"
3755 return HOST;
3756 	YY_BREAK
3757 case 46:
3758 YY_RULE_SETUP
3759 #line 328 "scanner.l"
3760 return NET;
3761 	YY_BREAK
3762 case 47:
3763 YY_RULE_SETUP
3764 #line 329 "scanner.l"
3765 return NETMASK;
3766 	YY_BREAK
3767 case 48:
3768 YY_RULE_SETUP
3769 #line 330 "scanner.l"
3770 return PORT;
3771 	YY_BREAK
3772 case 49:
3773 YY_RULE_SETUP
3774 #line 331 "scanner.l"
3775 return PORTRANGE;
3776 	YY_BREAK
3777 case 50:
3778 YY_RULE_SETUP
3779 #line 332 "scanner.l"
3780 return PROTO;
3781 	YY_BREAK
3782 case 51:
3783 YY_RULE_SETUP
3784 #line 333 "scanner.l"
3785 return PROTOCHAIN;
3786 	YY_BREAK
3787 case 52:
3788 YY_RULE_SETUP
3789 #line 335 "scanner.l"
3790 return GATEWAY;
3791 	YY_BREAK
3792 case 53:
3793 YY_RULE_SETUP
3794 #line 337 "scanner.l"
3795 return TYPE;
3796 	YY_BREAK
3797 case 54:
3798 YY_RULE_SETUP
3799 #line 338 "scanner.l"
3800 return SUBTYPE;
3801 	YY_BREAK
3802 case 55:
3803 YY_RULE_SETUP
3804 #line 339 "scanner.l"
3805 return DIR;
3806 	YY_BREAK
3807 case 56:
3808 YY_RULE_SETUP
3809 #line 340 "scanner.l"
3810 return ADDR1;
3811 	YY_BREAK
3812 case 57:
3813 YY_RULE_SETUP
3814 #line 341 "scanner.l"
3815 return ADDR2;
3816 	YY_BREAK
3817 case 58:
3818 YY_RULE_SETUP
3819 #line 342 "scanner.l"
3820 return ADDR3;
3821 	YY_BREAK
3822 case 59:
3823 YY_RULE_SETUP
3824 #line 343 "scanner.l"
3825 return ADDR4;
3826 	YY_BREAK
3827 case 60:
3828 YY_RULE_SETUP
3829 #line 344 "scanner.l"
3830 return RA;
3831 	YY_BREAK
3832 case 61:
3833 YY_RULE_SETUP
3834 #line 345 "scanner.l"
3835 return TA;
3836 	YY_BREAK
3837 case 62:
3838 YY_RULE_SETUP
3839 #line 347 "scanner.l"
3840 return LESS;
3841 	YY_BREAK
3842 case 63:
3843 YY_RULE_SETUP
3844 #line 348 "scanner.l"
3845 return GREATER;
3846 	YY_BREAK
3847 case 64:
3848 YY_RULE_SETUP
3849 #line 349 "scanner.l"
3850 return CBYTE;
3851 	YY_BREAK
3852 case 65:
3853 YY_RULE_SETUP
3854 #line 350 "scanner.l"
3855 return TK_BROADCAST;
3856 	YY_BREAK
3857 case 66:
3858 YY_RULE_SETUP
3859 #line 351 "scanner.l"
3860 return TK_MULTICAST;
3861 	YY_BREAK
3862 case 67:
3863 YY_RULE_SETUP
3864 #line 353 "scanner.l"
3865 return AND;
3866 	YY_BREAK
3867 case 68:
3868 YY_RULE_SETUP
3869 #line 354 "scanner.l"
3870 return OR;
3871 	YY_BREAK
3872 case 69:
3873 YY_RULE_SETUP
3874 #line 355 "scanner.l"
3875 return '!';
3876 	YY_BREAK
3877 case 70:
3878 YY_RULE_SETUP
3879 #line 357 "scanner.l"
3880 return LEN;
3881 	YY_BREAK
3882 case 71:
3883 YY_RULE_SETUP
3884 #line 358 "scanner.l"
3885 return INBOUND;
3886 	YY_BREAK
3887 case 72:
3888 YY_RULE_SETUP
3889 #line 359 "scanner.l"
3890 return OUTBOUND;
3891 	YY_BREAK
3892 case 73:
3893 YY_RULE_SETUP
3894 #line 361 "scanner.l"
3895 return IFINDEX;
3896 	YY_BREAK
3897 case 74:
3898 YY_RULE_SETUP
3899 #line 363 "scanner.l"
3900 return VLAN;
3901 	YY_BREAK
3902 case 75:
3903 YY_RULE_SETUP
3904 #line 364 "scanner.l"
3905 return MPLS;
3906 	YY_BREAK
3907 case 76:
3908 YY_RULE_SETUP
3909 #line 365 "scanner.l"
3910 return PPPOED;
3911 	YY_BREAK
3912 case 77:
3913 YY_RULE_SETUP
3914 #line 366 "scanner.l"
3915 return PPPOES;
3916 	YY_BREAK
3917 case 78:
3918 YY_RULE_SETUP
3919 #line 367 "scanner.l"
3920 return GENEVE;
3921 	YY_BREAK
3922 case 79:
3923 YY_RULE_SETUP
3924 #line 369 "scanner.l"
3925 return LANE;
3926 	YY_BREAK
3927 case 80:
3928 YY_RULE_SETUP
3929 #line 370 "scanner.l"
3930 return LLC;
3931 	YY_BREAK
3932 case 81:
3933 YY_RULE_SETUP
3934 #line 371 "scanner.l"
3935 return METAC;
3936 	YY_BREAK
3937 case 82:
3938 YY_RULE_SETUP
3939 #line 372 "scanner.l"
3940 return BCC;
3941 	YY_BREAK
3942 case 83:
3943 YY_RULE_SETUP
3944 #line 373 "scanner.l"
3945 return OAM;
3946 	YY_BREAK
3947 case 84:
3948 YY_RULE_SETUP
3949 #line 374 "scanner.l"
3950 return OAMF4;
3951 	YY_BREAK
3952 case 85:
3953 YY_RULE_SETUP
3954 #line 375 "scanner.l"
3955 return OAMF4EC;
3956 	YY_BREAK
3957 case 86:
3958 YY_RULE_SETUP
3959 #line 376 "scanner.l"
3960 return OAMF4SC;
3961 	YY_BREAK
3962 case 87:
3963 YY_RULE_SETUP
3964 #line 377 "scanner.l"
3965 return SC;
3966 	YY_BREAK
3967 case 88:
3968 YY_RULE_SETUP
3969 #line 378 "scanner.l"
3970 return ILMIC;
3971 	YY_BREAK
3972 case 89:
3973 YY_RULE_SETUP
3974 #line 379 "scanner.l"
3975 return VPI;
3976 	YY_BREAK
3977 case 90:
3978 YY_RULE_SETUP
3979 #line 380 "scanner.l"
3980 return VCI;
3981 	YY_BREAK
3982 case 91:
3983 YY_RULE_SETUP
3984 #line 381 "scanner.l"
3985 return CONNECTMSG;
3986 	YY_BREAK
3987 case 92:
3988 YY_RULE_SETUP
3989 #line 382 "scanner.l"
3990 return METACONNECT;
3991 	YY_BREAK
3992 case 93:
3993 YY_RULE_SETUP
3994 #line 384 "scanner.l"
3995 return PF_IFNAME;
3996 	YY_BREAK
3997 case 94:
3998 YY_RULE_SETUP
3999 #line 385 "scanner.l"
4000 return PF_RSET;
4001 	YY_BREAK
4002 case 95:
4003 YY_RULE_SETUP
4004 #line 386 "scanner.l"
4005 return PF_RNR;
4006 	YY_BREAK
4007 case 96:
4008 YY_RULE_SETUP
4009 #line 387 "scanner.l"
4010 return PF_SRNR;
4011 	YY_BREAK
4012 case 97:
4013 YY_RULE_SETUP
4014 #line 388 "scanner.l"
4015 return PF_REASON;
4016 	YY_BREAK
4017 case 98:
4018 YY_RULE_SETUP
4019 #line 389 "scanner.l"
4020 return PF_ACTION;
4021 	YY_BREAK
4022 case 99:
4023 YY_RULE_SETUP
4024 #line 391 "scanner.l"
4025 return FISU;
4026 	YY_BREAK
4027 case 100:
4028 YY_RULE_SETUP
4029 #line 392 "scanner.l"
4030 return LSSU;
4031 	YY_BREAK
4032 case 101:
4033 YY_RULE_SETUP
4034 #line 393 "scanner.l"
4035 return LSSU;
4036 	YY_BREAK
4037 case 102:
4038 YY_RULE_SETUP
4039 #line 394 "scanner.l"
4040 return MSU;
4041 	YY_BREAK
4042 case 103:
4043 YY_RULE_SETUP
4044 #line 395 "scanner.l"
4045 return HFISU;
4046 	YY_BREAK
4047 case 104:
4048 YY_RULE_SETUP
4049 #line 396 "scanner.l"
4050 return HLSSU;
4051 	YY_BREAK
4052 case 105:
4053 YY_RULE_SETUP
4054 #line 397 "scanner.l"
4055 return HMSU;
4056 	YY_BREAK
4057 case 106:
4058 YY_RULE_SETUP
4059 #line 398 "scanner.l"
4060 return SIO;
4061 	YY_BREAK
4062 case 107:
4063 YY_RULE_SETUP
4064 #line 399 "scanner.l"
4065 return OPC;
4066 	YY_BREAK
4067 case 108:
4068 YY_RULE_SETUP
4069 #line 400 "scanner.l"
4070 return DPC;
4071 	YY_BREAK
4072 case 109:
4073 YY_RULE_SETUP
4074 #line 401 "scanner.l"
4075 return SLS;
4076 	YY_BREAK
4077 case 110:
4078 YY_RULE_SETUP
4079 #line 402 "scanner.l"
4080 return HSIO;
4081 	YY_BREAK
4082 case 111:
4083 YY_RULE_SETUP
4084 #line 403 "scanner.l"
4085 return HOPC;
4086 	YY_BREAK
4087 case 112:
4088 YY_RULE_SETUP
4089 #line 404 "scanner.l"
4090 return HDPC;
4091 	YY_BREAK
4092 case 113:
4093 YY_RULE_SETUP
4094 #line 405 "scanner.l"
4095 return HSLS;
4096 	YY_BREAK
4097 case 114:
4098 /* rule 114 can match eol */
4099 YY_RULE_SETUP
4100 #line 407 "scanner.l"
4101 ;
4102 	YY_BREAK
4103 case 115:
4104 YY_RULE_SETUP
4105 #line 408 "scanner.l"
4106 return yytext[0];
4107 	YY_BREAK
4108 case 116:
4109 YY_RULE_SETUP
4110 #line 409 "scanner.l"
4111 return GEQ;
4112 	YY_BREAK
4113 case 117:
4114 YY_RULE_SETUP
4115 #line 410 "scanner.l"
4116 return LEQ;
4117 	YY_BREAK
4118 case 118:
4119 YY_RULE_SETUP
4120 #line 411 "scanner.l"
4121 return NEQ;
4122 	YY_BREAK
4123 case 119:
4124 YY_RULE_SETUP
4125 #line 412 "scanner.l"
4126 return '=';
4127 	YY_BREAK
4128 case 120:
4129 YY_RULE_SETUP
4130 #line 413 "scanner.l"
4131 return LSH;
4132 	YY_BREAK
4133 case 121:
4134 YY_RULE_SETUP
4135 #line 414 "scanner.l"
4136 return RSH;
4137 	YY_BREAK
4138 case 122:
4139 YY_RULE_SETUP
4140 #line 415 "scanner.l"
4141 { yylval->s = sdup(yyextra, yytext); return AID; }
4142 	YY_BREAK
4143 case 123:
4144 YY_RULE_SETUP
4145 #line 416 "scanner.l"
4146 { yylval->s = sdup(yyextra, yytext); return EID; }
4147 	YY_BREAK
4148 case 124:
4149 YY_RULE_SETUP
4150 #line 417 "scanner.l"
4151 { return stou(yytext, yylval, yyextra); }
4152 	YY_BREAK
4153 case 125:
4154 YY_RULE_SETUP
4155 #line 418 "scanner.l"
4156 {
4157 			yylval->s = sdup(yyextra, (char *)yytext); return HID; }
4158 	YY_BREAK
4159 case 126:
4160 YY_RULE_SETUP
4161 #line 420 "scanner.l"
4162 {
4163 #ifdef INET6
4164 			  struct addrinfo hints, *res;
4165 			  memset(&hints, 0, sizeof(hints));
4166 			  hints.ai_family = AF_INET6;
4167 			  hints.ai_flags = AI_NUMERICHOST;
4168 			  if (getaddrinfo(yytext, NULL, &hints, &res)) {
4169 				bpf_set_error(yyextra, "bogus IPv6 address %s", yytext);
4170 				yylval->s = NULL;
4171 			  } else {
4172 				freeaddrinfo(res);
4173 				yylval->s = sdup(yyextra, (char *)yytext);
4174 			  }
4175 #else
4176 			  bpf_set_error(yyextra, "IPv6 address %s not supported", yytext);
4177 			  yylval->s = NULL;
4178 #endif /*INET6*/
4179 			  return HID6;
4180 			}
4181 	YY_BREAK
4182 case 127:
4183 YY_RULE_SETUP
4184 #line 439 "scanner.l"
4185 { bpf_set_error(yyextra, "bogus ethernet address %s", yytext); yylval->s = NULL; return EID; }
4186 	YY_BREAK
4187 case 128:
4188 YY_RULE_SETUP
4189 #line 440 "scanner.l"
4190 { yylval->h = 0; return NUM; }
4191 	YY_BREAK
4192 case 129:
4193 YY_RULE_SETUP
4194 #line 441 "scanner.l"
4195 { yylval->h = 1; return NUM; }
4196 	YY_BREAK
4197 case 130:
4198 YY_RULE_SETUP
4199 #line 442 "scanner.l"
4200 { yylval->h = 0; return NUM; }
4201 	YY_BREAK
4202 case 131:
4203 YY_RULE_SETUP
4204 #line 443 "scanner.l"
4205 { yylval->h = 3; return NUM; }
4206 	YY_BREAK
4207 case 132:
4208 YY_RULE_SETUP
4209 #line 444 "scanner.l"
4210 { yylval->h = 4; return NUM; }
4211 	YY_BREAK
4212 case 133:
4213 YY_RULE_SETUP
4214 #line 445 "scanner.l"
4215 { yylval->h = 5; return NUM; }
4216 	YY_BREAK
4217 case 134:
4218 YY_RULE_SETUP
4219 #line 446 "scanner.l"
4220 { yylval->h = 8; return NUM; }
4221 	YY_BREAK
4222 case 135:
4223 YY_RULE_SETUP
4224 #line 447 "scanner.l"
4225 { yylval->h = 9; return NUM; }
4226 	YY_BREAK
4227 case 136:
4228 YY_RULE_SETUP
4229 #line 448 "scanner.l"
4230 { yylval->h = 10; return NUM; }
4231 	YY_BREAK
4232 case 137:
4233 YY_RULE_SETUP
4234 #line 449 "scanner.l"
4235 { yylval->h = 11; return NUM; }
4236 	YY_BREAK
4237 case 138:
4238 YY_RULE_SETUP
4239 #line 450 "scanner.l"
4240 { yylval->h = 12; return NUM; }
4241 	YY_BREAK
4242 case 139:
4243 YY_RULE_SETUP
4244 #line 451 "scanner.l"
4245 { yylval->h = 13; return NUM; }
4246 	YY_BREAK
4247 case 140:
4248 YY_RULE_SETUP
4249 #line 452 "scanner.l"
4250 { yylval->h = 14; return NUM; }
4251 	YY_BREAK
4252 case 141:
4253 YY_RULE_SETUP
4254 #line 453 "scanner.l"
4255 { yylval->h = 15; return NUM; }
4256 	YY_BREAK
4257 case 142:
4258 YY_RULE_SETUP
4259 #line 454 "scanner.l"
4260 { yylval->h = 16; return NUM; }
4261 	YY_BREAK
4262 case 143:
4263 YY_RULE_SETUP
4264 #line 455 "scanner.l"
4265 { yylval->h = 17; return NUM; }
4266 	YY_BREAK
4267 case 144:
4268 YY_RULE_SETUP
4269 #line 456 "scanner.l"
4270 { yylval->h = 18; return NUM; }
4271 	YY_BREAK
4272 case 145:
4273 YY_RULE_SETUP
4274 #line 458 "scanner.l"
4275 { yylval->h = 0; return NUM; }
4276 	YY_BREAK
4277 case 146:
4278 YY_RULE_SETUP
4279 #line 459 "scanner.l"
4280 { yylval->h = 1; return NUM; }
4281 	YY_BREAK
4282 case 147:
4283 YY_RULE_SETUP
4284 #line 461 "scanner.l"
4285 { yylval->h = 1; return NUM; }
4286 	YY_BREAK
4287 case 148:
4288 YY_RULE_SETUP
4289 #line 462 "scanner.l"
4290 { yylval->h = 2; return NUM; }
4291 	YY_BREAK
4292 case 149:
4293 YY_RULE_SETUP
4294 #line 463 "scanner.l"
4295 { yylval->h = 3; return NUM; }
4296 	YY_BREAK
4297 case 150:
4298 YY_RULE_SETUP
4299 #line 464 "scanner.l"
4300 { yylval->h = 4; return NUM; }
4301 	YY_BREAK
4302 case 151:
4303 YY_RULE_SETUP
4304 #line 465 "scanner.l"
4305 { yylval->h = 128; return NUM; }
4306 	YY_BREAK
4307 case 152:
4308 YY_RULE_SETUP
4309 #line 466 "scanner.l"
4310 { yylval->h = 129; return NUM; }
4311 	YY_BREAK
4312 case 153:
4313 YY_RULE_SETUP
4314 #line 467 "scanner.l"
4315 { yylval->h = 130; return NUM; }
4316 	YY_BREAK
4317 case 154:
4318 YY_RULE_SETUP
4319 #line 468 "scanner.l"
4320 { yylval->h = 131; return NUM; }
4321 	YY_BREAK
4322 case 155:
4323 YY_RULE_SETUP
4324 #line 469 "scanner.l"
4325 { yylval->h = 132; return NUM; }
4326 	YY_BREAK
4327 case 156:
4328 YY_RULE_SETUP
4329 #line 470 "scanner.l"
4330 { yylval->h = 133; return NUM; }
4331 	YY_BREAK
4332 case 157:
4333 YY_RULE_SETUP
4334 #line 471 "scanner.l"
4335 { yylval->h = 134; return NUM; }
4336 	YY_BREAK
4337 case 158:
4338 YY_RULE_SETUP
4339 #line 472 "scanner.l"
4340 { yylval->h = 135; return NUM; }
4341 	YY_BREAK
4342 case 159:
4343 YY_RULE_SETUP
4344 #line 473 "scanner.l"
4345 { yylval->h = 136; return NUM; }
4346 	YY_BREAK
4347 case 160:
4348 YY_RULE_SETUP
4349 #line 474 "scanner.l"
4350 { yylval->h = 137; return NUM; }
4351 	YY_BREAK
4352 case 161:
4353 YY_RULE_SETUP
4354 #line 475 "scanner.l"
4355 { yylval->h = 138; return NUM; }
4356 	YY_BREAK
4357 case 162:
4358 YY_RULE_SETUP
4359 #line 476 "scanner.l"
4360 { yylval->h = 139; return NUM; }
4361 	YY_BREAK
4362 case 163:
4363 YY_RULE_SETUP
4364 #line 477 "scanner.l"
4365 { yylval->h = 140; return NUM; }
4366 	YY_BREAK
4367 case 164:
4368 YY_RULE_SETUP
4369 #line 478 "scanner.l"
4370 { yylval->h = 141; return NUM; }
4371 	YY_BREAK
4372 case 165:
4373 YY_RULE_SETUP
4374 #line 479 "scanner.l"
4375 { yylval->h = 142; return NUM; }
4376 	YY_BREAK
4377 case 166:
4378 YY_RULE_SETUP
4379 #line 480 "scanner.l"
4380 { yylval->h = 143; return NUM; }
4381 	YY_BREAK
4382 case 167:
4383 YY_RULE_SETUP
4384 #line 481 "scanner.l"
4385 { yylval->h = 144; return NUM; }
4386 	YY_BREAK
4387 case 168:
4388 YY_RULE_SETUP
4389 #line 482 "scanner.l"
4390 { yylval->h = 145; return NUM; }
4391 	YY_BREAK
4392 case 169:
4393 YY_RULE_SETUP
4394 #line 483 "scanner.l"
4395 { yylval->h = 146; return NUM; }
4396 	YY_BREAK
4397 case 170:
4398 YY_RULE_SETUP
4399 #line 484 "scanner.l"
4400 { yylval->h = 147; return NUM; }
4401 	YY_BREAK
4402 case 171:
4403 YY_RULE_SETUP
4404 #line 485 "scanner.l"
4405 { yylval->h = 148; return NUM; }
4406 	YY_BREAK
4407 case 172:
4408 YY_RULE_SETUP
4409 #line 486 "scanner.l"
4410 { yylval->h = 149; return NUM; }
4411 	YY_BREAK
4412 case 173:
4413 YY_RULE_SETUP
4414 #line 487 "scanner.l"
4415 { yylval->h = 151; return NUM; }
4416 	YY_BREAK
4417 case 174:
4418 YY_RULE_SETUP
4419 #line 488 "scanner.l"
4420 { yylval->h = 152; return NUM; }
4421 	YY_BREAK
4422 case 175:
4423 YY_RULE_SETUP
4424 #line 489 "scanner.l"
4425 { yylval->h = 153; return NUM; }
4426 	YY_BREAK
4427 case 176:
4428 YY_RULE_SETUP
4429 #line 491 "scanner.l"
4430 { yylval->h = 13; return NUM; }
4431 	YY_BREAK
4432 case 177:
4433 YY_RULE_SETUP
4434 #line 492 "scanner.l"
4435 { yylval->h = 0x01; return NUM; }
4436 	YY_BREAK
4437 case 178:
4438 YY_RULE_SETUP
4439 #line 493 "scanner.l"
4440 { yylval->h = 0x02; return NUM; }
4441 	YY_BREAK
4442 case 179:
4443 YY_RULE_SETUP
4444 #line 494 "scanner.l"
4445 { yylval->h = 0x04; return NUM; }
4446 	YY_BREAK
4447 case 180:
4448 YY_RULE_SETUP
4449 #line 495 "scanner.l"
4450 { yylval->h = 0x08; return NUM; }
4451 	YY_BREAK
4452 case 181:
4453 YY_RULE_SETUP
4454 #line 496 "scanner.l"
4455 { yylval->h = 0x10; return NUM; }
4456 	YY_BREAK
4457 case 182:
4458 YY_RULE_SETUP
4459 #line 497 "scanner.l"
4460 { yylval->h = 0x20; return NUM; }
4461 	YY_BREAK
4462 case 183:
4463 YY_RULE_SETUP
4464 #line 498 "scanner.l"
4465 { yylval->h = 0x40; return NUM; }
4466 	YY_BREAK
4467 case 184:
4468 YY_RULE_SETUP
4469 #line 499 "scanner.l"
4470 { yylval->h = 0x80; return NUM; }
4471 	YY_BREAK
4472 case 185:
4473 YY_RULE_SETUP
4474 #line 500 "scanner.l"
4475 {
4476 			 yylval->s = sdup(yyextra, (char *)yytext); return ID; }
4477 	YY_BREAK
4478 case 186:
4479 YY_RULE_SETUP
4480 #line 502 "scanner.l"
4481 { yylval->s = sdup(yyextra, (char *)yytext + 1); return ID; }
4482 	YY_BREAK
4483 case 187:
4484 YY_RULE_SETUP
4485 #line 503 "scanner.l"
4486 { return LEX_ERROR; }
4487 	YY_BREAK
4488 case 188:
4489 YY_RULE_SETUP
4490 #line 504 "scanner.l"
4491 ECHO;
4492 	YY_BREAK
4493 #line 4494 "scanner.c"
4494 case YY_STATE_EOF(INITIAL):
4495 	yyterminate();
4496 
4497 	case YY_END_OF_BUFFER:
4498 		{
4499 		/* Amount of text matched not including the EOB char. */
4500 		int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
4501 
4502 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
4503 		*yy_cp = yyg->yy_hold_char;
4504 		YY_RESTORE_YY_MORE_OFFSET
4505 
4506 		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
4507 			{
4508 			/* We're scanning a new file or input source.  It's
4509 			 * possible that this happened because the user
4510 			 * just pointed yyin at a new source and called
4511 			 * yylex().  If so, then we have to assure
4512 			 * consistency between YY_CURRENT_BUFFER and our
4513 			 * globals.  Here is the right place to do so, because
4514 			 * this is the first action (other than possibly a
4515 			 * back-up) that will match for the new input source.
4516 			 */
4517 			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4518 			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
4519 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
4520 			}
4521 
4522 		/* Note that here we test for yy_c_buf_p "<=" to the position
4523 		 * of the first EOB in the buffer, since yy_c_buf_p will
4524 		 * already have been incremented past the NUL character
4525 		 * (since all states make transitions on EOB to the
4526 		 * end-of-buffer state).  Contrast this with the test
4527 		 * in input().
4528 		 */
4529 		if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
4530 			{ /* This was really a NUL. */
4531 			yy_state_type yy_next_state;
4532 
4533 			yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
4534 
4535 			yy_current_state = yy_get_previous_state( yyscanner );
4536 
4537 			/* Okay, we're now positioned to make the NUL
4538 			 * transition.  We couldn't have
4539 			 * yy_get_previous_state() go ahead and do it
4540 			 * for us because it doesn't know how to deal
4541 			 * with the possibility of jamming (and we don't
4542 			 * want to build jamming into it because then it
4543 			 * will run more slowly).
4544 			 */
4545 
4546 			yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
4547 
4548 			yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
4549 
4550 			if ( yy_next_state )
4551 				{
4552 				/* Consume the NUL. */
4553 				yy_cp = ++yyg->yy_c_buf_p;
4554 				yy_current_state = yy_next_state;
4555 				goto yy_match;
4556 				}
4557 
4558 			else
4559 				{
4560 				yy_cp = yyg->yy_last_accepting_cpos;
4561 				yy_current_state = yyg->yy_last_accepting_state;
4562 				goto yy_find_action;
4563 				}
4564 			}
4565 
4566 		else switch ( yy_get_next_buffer( yyscanner ) )
4567 			{
4568 			case EOB_ACT_END_OF_FILE:
4569 				{
4570 				yyg->yy_did_buffer_switch_on_eof = 0;
4571 
4572 				if ( yywrap( yyscanner ) )
4573 					{
4574 					/* Note: because we've taken care in
4575 					 * yy_get_next_buffer() to have set up
4576 					 * yytext, we can now set up
4577 					 * yy_c_buf_p so that if some total
4578 					 * hoser (like flex itself) wants to
4579 					 * call the scanner after we return the
4580 					 * YY_NULL, it'll still work - another
4581 					 * YY_NULL will get returned.
4582 					 */
4583 					yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
4584 
4585 					yy_act = YY_STATE_EOF(YY_START);
4586 					goto do_action;
4587 					}
4588 
4589 				else
4590 					{
4591 					if ( ! yyg->yy_did_buffer_switch_on_eof )
4592 						YY_NEW_FILE;
4593 					}
4594 				break;
4595 				}
4596 
4597 			case EOB_ACT_CONTINUE_SCAN:
4598 				yyg->yy_c_buf_p =
4599 					yyg->yytext_ptr + yy_amount_of_matched_text;
4600 
4601 				yy_current_state = yy_get_previous_state( yyscanner );
4602 
4603 				yy_cp = yyg->yy_c_buf_p;
4604 				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
4605 				goto yy_match;
4606 
4607 			case EOB_ACT_LAST_MATCH:
4608 				yyg->yy_c_buf_p =
4609 				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
4610 
4611 				yy_current_state = yy_get_previous_state( yyscanner );
4612 
4613 				yy_cp = yyg->yy_c_buf_p;
4614 				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
4615 				goto yy_find_action;
4616 			}
4617 		break;
4618 		}
4619 
4620 	default:
4621 		YY_FATAL_ERROR(
4622 			"fatal flex scanner internal error--no action found" );
4623 	} /* end of action switch */
4624 		} /* end of scanning one token */
4625 	} /* end of user's declarations */
4626 } /* end of yylex */
4627 
4628 /* yy_get_next_buffer - try to read in a new buffer
4629  *
4630  * Returns a code representing an action:
4631  *	EOB_ACT_LAST_MATCH -
4632  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
4633  *	EOB_ACT_END_OF_FILE - end of file
4634  */
yy_get_next_buffer(yyscan_t yyscanner)4635 static int yy_get_next_buffer (yyscan_t yyscanner)
4636 {
4637     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4638 	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
4639 	char *source = yyg->yytext_ptr;
4640 	int number_to_move, i;
4641 	int ret_val;
4642 
4643 	if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
4644 		YY_FATAL_ERROR(
4645 		"fatal flex scanner internal error--end of buffer missed" );
4646 
4647 	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
4648 		{ /* Don't try to fill the buffer, so this is an EOF. */
4649 		if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
4650 			{
4651 			/* We matched a single character, the EOB, so
4652 			 * treat this as a final EOF.
4653 			 */
4654 			return EOB_ACT_END_OF_FILE;
4655 			}
4656 
4657 		else
4658 			{
4659 			/* We matched some text prior to the EOB, first
4660 			 * process it.
4661 			 */
4662 			return EOB_ACT_LAST_MATCH;
4663 			}
4664 		}
4665 
4666 	/* Try to read more data. */
4667 
4668 	/* First move last chars to start of buffer. */
4669 	number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr - 1);
4670 
4671 	for ( i = 0; i < number_to_move; ++i )
4672 		*(dest++) = *(source++);
4673 
4674 	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
4675 		/* don't do the read, it's not guaranteed to return an EOF,
4676 		 * just force an EOF
4677 		 */
4678 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
4679 
4680 	else
4681 		{
4682 			int num_to_read =
4683 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
4684 
4685 		while ( num_to_read <= 0 )
4686 			{ /* Not enough room in the buffer - grow it. */
4687 
4688 			/* just a shorter name for the current buffer */
4689 			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
4690 
4691 			int yy_c_buf_p_offset =
4692 				(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
4693 
4694 			if ( b->yy_is_our_buffer )
4695 				{
4696 				int new_size = b->yy_buf_size * 2;
4697 
4698 				if ( new_size <= 0 )
4699 					b->yy_buf_size += b->yy_buf_size / 8;
4700 				else
4701 					b->yy_buf_size *= 2;
4702 
4703 				b->yy_ch_buf = (char *)
4704 					/* Include room in for 2 EOB chars. */
4705 					yyrealloc( (void *) b->yy_ch_buf,
4706 							 (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
4707 				}
4708 			else
4709 				/* Can't grow it, we don't own it. */
4710 				b->yy_ch_buf = NULL;
4711 
4712 			if ( ! b->yy_ch_buf )
4713 				YY_FATAL_ERROR(
4714 				"fatal error - scanner input buffer overflow" );
4715 
4716 			yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
4717 
4718 			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
4719 						number_to_move - 1;
4720 
4721 			}
4722 
4723 		if ( num_to_read > YY_READ_BUF_SIZE )
4724 			num_to_read = YY_READ_BUF_SIZE;
4725 
4726 		/* Read in more data. */
4727 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
4728 			yyg->yy_n_chars, num_to_read );
4729 
4730 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
4731 		}
4732 
4733 	if ( yyg->yy_n_chars == 0 )
4734 		{
4735 		if ( number_to_move == YY_MORE_ADJ )
4736 			{
4737 			ret_val = EOB_ACT_END_OF_FILE;
4738 			yyrestart( yyin  , yyscanner);
4739 			}
4740 
4741 		else
4742 			{
4743 			ret_val = EOB_ACT_LAST_MATCH;
4744 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
4745 				YY_BUFFER_EOF_PENDING;
4746 			}
4747 		}
4748 
4749 	else
4750 		ret_val = EOB_ACT_CONTINUE_SCAN;
4751 
4752 	if ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
4753 		/* Extend the array by 50%, plus the number we really need. */
4754 		int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
4755 		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
4756 			(void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size , yyscanner );
4757 		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4758 			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
4759 		/* "- 2" to take care of EOB's */
4760 		YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
4761 	}
4762 
4763 	yyg->yy_n_chars += number_to_move;
4764 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
4765 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
4766 
4767 	yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
4768 
4769 	return ret_val;
4770 }
4771 
4772 /* yy_get_previous_state - get the state just before the EOB char was reached */
4773 
yy_get_previous_state(yyscan_t yyscanner)4774     static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
4775 {
4776 	yy_state_type yy_current_state;
4777 	char *yy_cp;
4778     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4779 
4780 	yy_current_state = yyg->yy_start;
4781 
4782 	for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
4783 		{
4784 		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
4785 		if ( yy_accept[yy_current_state] )
4786 			{
4787 			yyg->yy_last_accepting_state = yy_current_state;
4788 			yyg->yy_last_accepting_cpos = yy_cp;
4789 			}
4790 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4791 			{
4792 			yy_current_state = (int) yy_def[yy_current_state];
4793 			if ( yy_current_state >= 1785 )
4794 				yy_c = yy_meta[yy_c];
4795 			}
4796 		yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
4797 		}
4798 
4799 	return yy_current_state;
4800 }
4801 
4802 /* yy_try_NUL_trans - try to make a transition on the NUL character
4803  *
4804  * synopsis
4805  *	next_state = yy_try_NUL_trans( current_state );
4806  */
yy_try_NUL_trans(yy_state_type yy_current_state,yyscan_t yyscanner)4807     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
4808 {
4809 	int yy_is_jam;
4810     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
4811 	char *yy_cp = yyg->yy_c_buf_p;
4812 
4813 	YY_CHAR yy_c = 1;
4814 	if ( yy_accept[yy_current_state] )
4815 		{
4816 		yyg->yy_last_accepting_state = yy_current_state;
4817 		yyg->yy_last_accepting_cpos = yy_cp;
4818 		}
4819 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4820 		{
4821 		yy_current_state = (int) yy_def[yy_current_state];
4822 		if ( yy_current_state >= 1785 )
4823 			yy_c = yy_meta[yy_c];
4824 		}
4825 	yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
4826 	yy_is_jam = (yy_current_state == 1784);
4827 
4828 	(void)yyg;
4829 	return yy_is_jam ? 0 : yy_current_state;
4830 }
4831 
4832 #ifndef YY_NO_UNPUT
4833 
4834 #endif
4835 
4836 #ifndef YY_NO_INPUT
4837 #ifdef __cplusplus
yyinput(yyscan_t yyscanner)4838     static int yyinput (yyscan_t yyscanner)
4839 #else
4840     static int input  (yyscan_t yyscanner)
4841 #endif
4842 
4843 {
4844 	int c;
4845     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4846 
4847 	*yyg->yy_c_buf_p = yyg->yy_hold_char;
4848 
4849 	if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
4850 		{
4851 		/* yy_c_buf_p now points to the character we want to return.
4852 		 * If this occurs *before* the EOB characters, then it's a
4853 		 * valid NUL; if not, then we've hit the end of the buffer.
4854 		 */
4855 		if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
4856 			/* This was really a NUL. */
4857 			*yyg->yy_c_buf_p = '\0';
4858 
4859 		else
4860 			{ /* need more input */
4861 			int offset = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr);
4862 			++yyg->yy_c_buf_p;
4863 
4864 			switch ( yy_get_next_buffer( yyscanner ) )
4865 				{
4866 				case EOB_ACT_LAST_MATCH:
4867 					/* This happens because yy_g_n_b()
4868 					 * sees that we've accumulated a
4869 					 * token and flags that we need to
4870 					 * try matching the token before
4871 					 * proceeding.  But for input(),
4872 					 * there's no matching to consider.
4873 					 * So convert the EOB_ACT_LAST_MATCH
4874 					 * to EOB_ACT_END_OF_FILE.
4875 					 */
4876 
4877 					/* Reset buffer status. */
4878 					yyrestart( yyin , yyscanner);
4879 
4880 					/*FALLTHROUGH*/
4881 
4882 				case EOB_ACT_END_OF_FILE:
4883 					{
4884 					if ( yywrap( yyscanner ) )
4885 						return 0;
4886 
4887 					if ( ! yyg->yy_did_buffer_switch_on_eof )
4888 						YY_NEW_FILE;
4889 #ifdef __cplusplus
4890 					return yyinput(yyscanner);
4891 #else
4892 					return input(yyscanner);
4893 #endif
4894 					}
4895 
4896 				case EOB_ACT_CONTINUE_SCAN:
4897 					yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
4898 					break;
4899 				}
4900 			}
4901 		}
4902 
4903 	c = *(unsigned char *) yyg->yy_c_buf_p;	/* cast for 8-bit char's */
4904 	*yyg->yy_c_buf_p = '\0';	/* preserve yytext */
4905 	yyg->yy_hold_char = *++yyg->yy_c_buf_p;
4906 
4907 	return c;
4908 }
4909 #endif	/* ifndef YY_NO_INPUT */
4910 
4911 /** Immediately switch to a different input stream.
4912  * @param input_file A readable stream.
4913  * @param yyscanner The scanner object.
4914  * @note This function does not reset the start condition to @c INITIAL .
4915  */
yyrestart(FILE * input_file,yyscan_t yyscanner)4916     void yyrestart  (FILE * input_file , yyscan_t yyscanner)
4917 {
4918     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4919 
4920 	if ( ! YY_CURRENT_BUFFER ){
4921         yyensure_buffer_stack (yyscanner);
4922 		YY_CURRENT_BUFFER_LVALUE =
4923             yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
4924 	}
4925 
4926 	yy_init_buffer( YY_CURRENT_BUFFER, input_file , yyscanner);
4927 	yy_load_buffer_state( yyscanner );
4928 }
4929 
4930 /** Switch to a different input buffer.
4931  * @param new_buffer The new input buffer.
4932  * @param yyscanner The scanner object.
4933  */
yy_switch_to_buffer(YY_BUFFER_STATE new_buffer,yyscan_t yyscanner)4934     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
4935 {
4936     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4937 
4938 	/* TODO. We should be able to replace this entire function body
4939 	 * with
4940 	 *		yypop_buffer_state();
4941 	 *		yypush_buffer_state(new_buffer);
4942      */
4943 	yyensure_buffer_stack (yyscanner);
4944 	if ( YY_CURRENT_BUFFER == new_buffer )
4945 		return;
4946 
4947 	if ( YY_CURRENT_BUFFER )
4948 		{
4949 		/* Flush out information for old buffer. */
4950 		*yyg->yy_c_buf_p = yyg->yy_hold_char;
4951 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
4952 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
4953 		}
4954 
4955 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
4956 	yy_load_buffer_state( yyscanner );
4957 
4958 	/* We don't actually know whether we did this switch during
4959 	 * EOF (yywrap()) processing, but the only time this flag
4960 	 * is looked at is after yywrap() is called, so it's safe
4961 	 * to go ahead and always set it.
4962 	 */
4963 	yyg->yy_did_buffer_switch_on_eof = 1;
4964 }
4965 
yy_load_buffer_state(yyscan_t yyscanner)4966 static void yy_load_buffer_state  (yyscan_t yyscanner)
4967 {
4968     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4969 	yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4970 	yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4971 	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4972 	yyg->yy_hold_char = *yyg->yy_c_buf_p;
4973 }
4974 
4975 /** Allocate and initialize an input buffer state.
4976  * @param file A readable stream.
4977  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4978  * @param yyscanner The scanner object.
4979  * @return the allocated buffer state.
4980  */
yy_create_buffer(FILE * file,int size,yyscan_t yyscanner)4981     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
4982 {
4983 	YY_BUFFER_STATE b;
4984 
4985 	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
4986 	if ( ! b )
4987 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4988 
4989 	b->yy_buf_size = size;
4990 
4991 	/* yy_ch_buf has to be 2 characters longer than the size given because
4992 	 * we need to put in 2 end-of-buffer characters.
4993 	 */
4994 	b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
4995 	if ( ! b->yy_ch_buf )
4996 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4997 
4998 	b->yy_is_our_buffer = 1;
4999 
5000 	yy_init_buffer( b, file , yyscanner);
5001 
5002 	return b;
5003 }
5004 
5005 /** Destroy the buffer.
5006  * @param b a buffer created with yy_create_buffer()
5007  * @param yyscanner The scanner object.
5008  */
yy_delete_buffer(YY_BUFFER_STATE b,yyscan_t yyscanner)5009     void yy_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
5010 {
5011     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5012 
5013 	if ( ! b )
5014 		return;
5015 
5016 	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
5017 		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
5018 
5019 	if ( b->yy_is_our_buffer )
5020 		yyfree( (void *) b->yy_ch_buf , yyscanner );
5021 
5022 	yyfree( (void *) b , yyscanner );
5023 }
5024 
5025 /* Initializes or reinitializes a buffer.
5026  * This function is sometimes called more than once on the same buffer,
5027  * such as during a yyrestart() or at EOF.
5028  */
yy_init_buffer(YY_BUFFER_STATE b,FILE * file,yyscan_t yyscanner)5029     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
5030 
5031 {
5032 	int oerrno = errno;
5033     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5034 
5035 	yy_flush_buffer( b , yyscanner);
5036 
5037 	b->yy_input_file = file;
5038 	b->yy_fill_buffer = 1;
5039 
5040     /* If b is the current buffer, then yy_init_buffer was _probably_
5041      * called from yyrestart() or through yy_get_next_buffer.
5042      * In that case, we don't want to reset the lineno or column.
5043      */
5044     if (b != YY_CURRENT_BUFFER){
5045         b->yy_bs_lineno = 1;
5046         b->yy_bs_column = 0;
5047     }
5048 
5049         b->yy_is_interactive = 0;
5050 
5051 	errno = oerrno;
5052 }
5053 
5054 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
5055  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
5056  * @param yyscanner The scanner object.
5057  */
yy_flush_buffer(YY_BUFFER_STATE b,yyscan_t yyscanner)5058     void yy_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
5059 {
5060     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5061 	if ( ! b )
5062 		return;
5063 
5064 	b->yy_n_chars = 0;
5065 
5066 	/* We always need two end-of-buffer characters.  The first causes
5067 	 * a transition to the end-of-buffer state.  The second causes
5068 	 * a jam in that state.
5069 	 */
5070 	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
5071 	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
5072 
5073 	b->yy_buf_pos = &b->yy_ch_buf[0];
5074 
5075 	b->yy_at_bol = 1;
5076 	b->yy_buffer_status = YY_BUFFER_NEW;
5077 
5078 	if ( b == YY_CURRENT_BUFFER )
5079 		yy_load_buffer_state( yyscanner );
5080 }
5081 
5082 /** Pushes the new state onto the stack. The new state becomes
5083  *  the current state. This function will allocate the stack
5084  *  if necessary.
5085  *  @param new_buffer The new state.
5086  *  @param yyscanner The scanner object.
5087  */
yypush_buffer_state(YY_BUFFER_STATE new_buffer,yyscan_t yyscanner)5088 void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
5089 {
5090     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5091 	if (new_buffer == NULL)
5092 		return;
5093 
5094 	yyensure_buffer_stack(yyscanner);
5095 
5096 	/* This block is copied from yy_switch_to_buffer. */
5097 	if ( YY_CURRENT_BUFFER )
5098 		{
5099 		/* Flush out information for old buffer. */
5100 		*yyg->yy_c_buf_p = yyg->yy_hold_char;
5101 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
5102 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
5103 		}
5104 
5105 	/* Only push if top exists. Otherwise, replace top. */
5106 	if (YY_CURRENT_BUFFER)
5107 		yyg->yy_buffer_stack_top++;
5108 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
5109 
5110 	/* copied from yy_switch_to_buffer. */
5111 	yy_load_buffer_state( yyscanner );
5112 	yyg->yy_did_buffer_switch_on_eof = 1;
5113 }
5114 
5115 /** Removes and deletes the top of the stack, if present.
5116  *  The next element becomes the new top.
5117  *  @param yyscanner The scanner object.
5118  */
yypop_buffer_state(yyscan_t yyscanner)5119 void yypop_buffer_state (yyscan_t yyscanner)
5120 {
5121     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5122 	if (!YY_CURRENT_BUFFER)
5123 		return;
5124 
5125 	yy_delete_buffer(YY_CURRENT_BUFFER , yyscanner);
5126 	YY_CURRENT_BUFFER_LVALUE = NULL;
5127 	if (yyg->yy_buffer_stack_top > 0)
5128 		--yyg->yy_buffer_stack_top;
5129 
5130 	if (YY_CURRENT_BUFFER) {
5131 		yy_load_buffer_state( yyscanner );
5132 		yyg->yy_did_buffer_switch_on_eof = 1;
5133 	}
5134 }
5135 
5136 /* Allocates the stack if it does not exist.
5137  *  Guarantees space for at least one push.
5138  */
yyensure_buffer_stack(yyscan_t yyscanner)5139 static void yyensure_buffer_stack (yyscan_t yyscanner)
5140 {
5141 	yy_size_t num_to_alloc;
5142     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5143 
5144 	if (!yyg->yy_buffer_stack) {
5145 
5146 		/* First allocation is just for 2 elements, since we don't know if this
5147 		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
5148 		 * immediate realloc on the next call.
5149          */
5150       num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
5151 		yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc
5152 								(num_to_alloc * sizeof(struct yy_buffer_state*)
5153 								, yyscanner);
5154 		if ( ! yyg->yy_buffer_stack )
5155 			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
5156 
5157 		memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
5158 
5159 		yyg->yy_buffer_stack_max = num_to_alloc;
5160 		yyg->yy_buffer_stack_top = 0;
5161 		return;
5162 	}
5163 
5164 	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
5165 
5166 		/* Increase the buffer to prepare for a possible push. */
5167 		yy_size_t grow_size = 8 /* arbitrary grow size */;
5168 
5169 		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
5170 		yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc
5171 								(yyg->yy_buffer_stack,
5172 								num_to_alloc * sizeof(struct yy_buffer_state*)
5173 								, yyscanner);
5174 		if ( ! yyg->yy_buffer_stack )
5175 			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
5176 
5177 		/* zero only the new slots.*/
5178 		memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
5179 		yyg->yy_buffer_stack_max = num_to_alloc;
5180 	}
5181 }
5182 
5183 /** Setup the input buffer state to scan directly from a user-specified character buffer.
5184  * @param base the character buffer
5185  * @param size the size in bytes of the character buffer
5186  * @param yyscanner The scanner object.
5187  * @return the newly allocated buffer state object.
5188  */
yy_scan_buffer(char * base,yy_size_t size,yyscan_t yyscanner)5189 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
5190 {
5191 	YY_BUFFER_STATE b;
5192 
5193 	if ( size < 2 ||
5194 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
5195 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
5196 		/* They forgot to leave room for the EOB's. */
5197 		return NULL;
5198 
5199 	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
5200 	if ( ! b )
5201 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
5202 
5203 	b->yy_buf_size = (int) (size - 2);	/* "- 2" to take care of EOB's */
5204 	b->yy_buf_pos = b->yy_ch_buf = base;
5205 	b->yy_is_our_buffer = 0;
5206 	b->yy_input_file = NULL;
5207 	b->yy_n_chars = b->yy_buf_size;
5208 	b->yy_is_interactive = 0;
5209 	b->yy_at_bol = 1;
5210 	b->yy_fill_buffer = 0;
5211 	b->yy_buffer_status = YY_BUFFER_NEW;
5212 
5213 	yy_switch_to_buffer( b , yyscanner );
5214 
5215 	return b;
5216 }
5217 
5218 /** Setup the input buffer state to scan a string. The next call to yylex() will
5219  * scan from a @e copy of @a str.
5220  * @param yystr a NUL-terminated string to scan
5221  * @param yyscanner The scanner object.
5222  * @return the newly allocated buffer state object.
5223  * @note If you want to scan bytes that may contain NUL values, then use
5224  *       yy_scan_bytes() instead.
5225  */
yy_scan_string(const char * yystr,yyscan_t yyscanner)5226 YY_BUFFER_STATE yy_scan_string (const char * yystr , yyscan_t yyscanner)
5227 {
5228 
5229 	return yy_scan_bytes( yystr, (int) strlen(yystr) , yyscanner);
5230 }
5231 
5232 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
5233  * scan from a @e copy of @a bytes.
5234  * @param yybytes the byte buffer to scan
5235  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
5236  * @param yyscanner The scanner object.
5237  * @return the newly allocated buffer state object.
5238  */
yy_scan_bytes(const char * yybytes,int _yybytes_len,yyscan_t yyscanner)5239 YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
5240 {
5241 	YY_BUFFER_STATE b;
5242 	char *buf;
5243 	yy_size_t n;
5244 	int i;
5245 
5246 	/* Get memory for full buffer, including space for trailing EOB's. */
5247 	n = (yy_size_t) (_yybytes_len + 2);
5248 	buf = (char *) yyalloc( n , yyscanner );
5249 	if ( ! buf )
5250 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
5251 
5252 	for ( i = 0; i < _yybytes_len; ++i )
5253 		buf[i] = yybytes[i];
5254 
5255 	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
5256 
5257 	b = yy_scan_buffer( buf, n , yyscanner);
5258 	if ( ! b )
5259 		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
5260 
5261 	/* It's okay to grow etc. this buffer, and we should throw it
5262 	 * away when we're done.
5263 	 */
5264 	b->yy_is_our_buffer = 1;
5265 
5266 	return b;
5267 }
5268 
5269 #ifndef YY_EXIT_FAILURE
5270 #define YY_EXIT_FAILURE 2
5271 #endif
5272 
yy_fatal_error(const char * msg,yyscan_t yyscanner)5273 static void yynoreturn yy_fatal_error (const char* msg , yyscan_t yyscanner)
5274 {
5275 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5276 	(void)yyg;
5277 	fprintf( stderr, "%s\n", msg );
5278 	exit( YY_EXIT_FAILURE );
5279 }
5280 
5281 /* Redefine yyless() so it works in section 3 code. */
5282 
5283 #undef yyless
5284 #define yyless(n) \
5285 	do \
5286 		{ \
5287 		/* Undo effects of setting up yytext. */ \
5288         int yyless_macro_arg = (n); \
5289         YY_LESS_LINENO(yyless_macro_arg);\
5290 		yytext[yyleng] = yyg->yy_hold_char; \
5291 		yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
5292 		yyg->yy_hold_char = *yyg->yy_c_buf_p; \
5293 		*yyg->yy_c_buf_p = '\0'; \
5294 		yyleng = yyless_macro_arg; \
5295 		} \
5296 	while ( 0 )
5297 
5298 /* Accessor  methods (get/set functions) to struct members. */
5299 
5300 /** Get the user-defined data for this scanner.
5301  * @param yyscanner The scanner object.
5302  */
yyget_extra(yyscan_t yyscanner)5303 YY_EXTRA_TYPE yyget_extra  (yyscan_t yyscanner)
5304 {
5305     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5306     return yyextra;
5307 }
5308 
5309 /** Get the current line number.
5310  * @param yyscanner The scanner object.
5311  */
yyget_lineno(yyscan_t yyscanner)5312 int yyget_lineno  (yyscan_t yyscanner)
5313 {
5314     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5315 
5316         if (! YY_CURRENT_BUFFER)
5317             return 0;
5318 
5319     return yylineno;
5320 }
5321 
5322 /** Get the current column number.
5323  * @param yyscanner The scanner object.
5324  */
yyget_column(yyscan_t yyscanner)5325 int yyget_column  (yyscan_t yyscanner)
5326 {
5327     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5328 
5329         if (! YY_CURRENT_BUFFER)
5330             return 0;
5331 
5332     return yycolumn;
5333 }
5334 
5335 /** Get the input stream.
5336  * @param yyscanner The scanner object.
5337  */
yyget_in(yyscan_t yyscanner)5338 FILE *yyget_in  (yyscan_t yyscanner)
5339 {
5340     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5341     return yyin;
5342 }
5343 
5344 /** Get the output stream.
5345  * @param yyscanner The scanner object.
5346  */
yyget_out(yyscan_t yyscanner)5347 FILE *yyget_out  (yyscan_t yyscanner)
5348 {
5349     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5350     return yyout;
5351 }
5352 
5353 /** Get the length of the current token.
5354  * @param yyscanner The scanner object.
5355  */
yyget_leng(yyscan_t yyscanner)5356 int yyget_leng  (yyscan_t yyscanner)
5357 {
5358     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5359     return yyleng;
5360 }
5361 
5362 /** Get the current token.
5363  * @param yyscanner The scanner object.
5364  */
5365 
yyget_text(yyscan_t yyscanner)5366 char *yyget_text  (yyscan_t yyscanner)
5367 {
5368     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5369     return yytext;
5370 }
5371 
5372 /** Set the user-defined data. This data is never touched by the scanner.
5373  * @param user_defined The data to be associated with this scanner.
5374  * @param yyscanner The scanner object.
5375  */
yyset_extra(YY_EXTRA_TYPE user_defined,yyscan_t yyscanner)5376 void yyset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
5377 {
5378     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5379     yyextra = user_defined ;
5380 }
5381 
5382 /** Set the current line number.
5383  * @param _line_number line number
5384  * @param yyscanner The scanner object.
5385  */
yyset_lineno(int _line_number,yyscan_t yyscanner)5386 void yyset_lineno (int  _line_number , yyscan_t yyscanner)
5387 {
5388     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5389 
5390         /* lineno is only valid if an input buffer exists. */
5391         if (! YY_CURRENT_BUFFER )
5392            YY_FATAL_ERROR( "yyset_lineno called with no buffer" );
5393 
5394     yylineno = _line_number;
5395 }
5396 
5397 /** Set the current column.
5398  * @param _column_no column number
5399  * @param yyscanner The scanner object.
5400  */
yyset_column(int _column_no,yyscan_t yyscanner)5401 void yyset_column (int  _column_no , yyscan_t yyscanner)
5402 {
5403     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5404 
5405         /* column is only valid if an input buffer exists. */
5406         if (! YY_CURRENT_BUFFER )
5407            YY_FATAL_ERROR( "yyset_column called with no buffer" );
5408 
5409     yycolumn = _column_no;
5410 }
5411 
5412 /** Set the input stream. This does not discard the current
5413  * input buffer.
5414  * @param _in_str A readable stream.
5415  * @param yyscanner The scanner object.
5416  * @see yy_switch_to_buffer
5417  */
yyset_in(FILE * _in_str,yyscan_t yyscanner)5418 void yyset_in (FILE *  _in_str , yyscan_t yyscanner)
5419 {
5420     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5421     yyin = _in_str ;
5422 }
5423 
yyset_out(FILE * _out_str,yyscan_t yyscanner)5424 void yyset_out (FILE *  _out_str , yyscan_t yyscanner)
5425 {
5426     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5427     yyout = _out_str ;
5428 }
5429 
yyget_debug(yyscan_t yyscanner)5430 int yyget_debug  (yyscan_t yyscanner)
5431 {
5432     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5433     return yy_flex_debug;
5434 }
5435 
yyset_debug(int _bdebug,yyscan_t yyscanner)5436 void yyset_debug (int  _bdebug , yyscan_t yyscanner)
5437 {
5438     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5439     yy_flex_debug = _bdebug ;
5440 }
5441 
5442 /* Accessor methods for yylval and yylloc */
5443 
yyget_lval(yyscan_t yyscanner)5444 YYSTYPE * yyget_lval  (yyscan_t yyscanner)
5445 {
5446     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5447     return yylval;
5448 }
5449 
yyset_lval(YYSTYPE * yylval_param,yyscan_t yyscanner)5450 void yyset_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
5451 {
5452     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5453     yylval = yylval_param;
5454 }
5455 
5456 /* User-visible API */
5457 
5458 /* yylex_init is special because it creates the scanner itself, so it is
5459  * the ONLY reentrant function that doesn't take the scanner as the last argument.
5460  * That's why we explicitly handle the declaration, instead of using our macros.
5461  */
yylex_init(yyscan_t * ptr_yy_globals)5462 int yylex_init(yyscan_t* ptr_yy_globals)
5463 {
5464     if (ptr_yy_globals == NULL){
5465         errno = EINVAL;
5466         return 1;
5467     }
5468 
5469     *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL );
5470 
5471     if (*ptr_yy_globals == NULL){
5472         errno = ENOMEM;
5473         return 1;
5474     }
5475 
5476     /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
5477     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
5478 
5479     return yy_init_globals ( *ptr_yy_globals );
5480 }
5481 
5482 /* yylex_init_extra has the same functionality as yylex_init, but follows the
5483  * convention of taking the scanner as the last argument. Note however, that
5484  * this is a *pointer* to a scanner, as it will be allocated by this call (and
5485  * is the reason, too, why this function also must handle its own declaration).
5486  * The user defined value in the first argument will be available to yyalloc in
5487  * the yyextra field.
5488  */
yylex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t * ptr_yy_globals)5489 int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals )
5490 {
5491     struct yyguts_t dummy_yyguts;
5492 
5493     yyset_extra (yy_user_defined, &dummy_yyguts);
5494 
5495     if (ptr_yy_globals == NULL){
5496         errno = EINVAL;
5497         return 1;
5498     }
5499 
5500     *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
5501 
5502     if (*ptr_yy_globals == NULL){
5503         errno = ENOMEM;
5504         return 1;
5505     }
5506 
5507     /* By setting to 0xAA, we expose bugs in
5508     yy_init_globals. Leave at 0x00 for releases. */
5509     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
5510 
5511     yyset_extra (yy_user_defined, *ptr_yy_globals);
5512 
5513     return yy_init_globals ( *ptr_yy_globals );
5514 }
5515 
yy_init_globals(yyscan_t yyscanner)5516 static int yy_init_globals (yyscan_t yyscanner)
5517 {
5518     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5519     /* Initialization is the same as for the non-reentrant scanner.
5520      * This function is called from yylex_destroy(), so don't allocate here.
5521      */
5522 
5523     yyg->yy_buffer_stack = NULL;
5524     yyg->yy_buffer_stack_top = 0;
5525     yyg->yy_buffer_stack_max = 0;
5526     yyg->yy_c_buf_p = NULL;
5527     yyg->yy_init = 0;
5528     yyg->yy_start = 0;
5529 
5530     yyg->yy_start_stack_ptr = 0;
5531     yyg->yy_start_stack_depth = 0;
5532     yyg->yy_start_stack =  NULL;
5533 
5534 /* Defined in main.c */
5535 #ifdef YY_STDINIT
5536     yyin = stdin;
5537     yyout = stdout;
5538 #else
5539     yyin = NULL;
5540     yyout = NULL;
5541 #endif
5542 
5543     /* For future reference: Set errno on error, since we are called by
5544      * yylex_init()
5545      */
5546     return 0;
5547 }
5548 
5549 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
yylex_destroy(yyscan_t yyscanner)5550 int yylex_destroy  (yyscan_t yyscanner)
5551 {
5552     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5553 
5554     /* Pop the buffer stack, destroying each element. */
5555 	while(YY_CURRENT_BUFFER){
5556 		yy_delete_buffer( YY_CURRENT_BUFFER , yyscanner );
5557 		YY_CURRENT_BUFFER_LVALUE = NULL;
5558 		yypop_buffer_state(yyscanner);
5559 	}
5560 
5561 	/* Destroy the stack itself. */
5562 	yyfree(yyg->yy_buffer_stack , yyscanner);
5563 	yyg->yy_buffer_stack = NULL;
5564 
5565     /* Destroy the start condition stack. */
5566         yyfree( yyg->yy_start_stack , yyscanner );
5567         yyg->yy_start_stack = NULL;
5568 
5569     /* Reset the globals. This is important in a non-reentrant scanner so the next time
5570      * yylex() is called, initialization will occur. */
5571     yy_init_globals( yyscanner);
5572 
5573     /* Destroy the main struct (reentrant only). */
5574     yyfree ( yyscanner , yyscanner );
5575     yyscanner = NULL;
5576     return 0;
5577 }
5578 
5579 /*
5580  * Internal utility routines.
5581  */
5582 
5583 #ifndef yytext_ptr
yy_flex_strncpy(char * s1,const char * s2,int n,yyscan_t yyscanner)5584 static void yy_flex_strncpy (char* s1, const char * s2, int n , yyscan_t yyscanner)
5585 {
5586 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5587 	(void)yyg;
5588 
5589 	int i;
5590 	for ( i = 0; i < n; ++i )
5591 		s1[i] = s2[i];
5592 }
5593 #endif
5594 
5595 #ifdef YY_NEED_STRLEN
yy_flex_strlen(const char * s,yyscan_t yyscanner)5596 static int yy_flex_strlen (const char * s , yyscan_t yyscanner)
5597 {
5598 	int n;
5599 	for ( n = 0; s[n]; ++n )
5600 		;
5601 
5602 	return n;
5603 }
5604 #endif
5605 
yyalloc(yy_size_t size,yyscan_t yyscanner)5606 void *yyalloc (yy_size_t  size , yyscan_t yyscanner)
5607 {
5608 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5609 	(void)yyg;
5610 	return malloc(size);
5611 }
5612 
yyrealloc(void * ptr,yy_size_t size,yyscan_t yyscanner)5613 void *yyrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
5614 {
5615 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5616 	(void)yyg;
5617 
5618 	/* The cast to (char *) in the following accommodates both
5619 	 * implementations that use char* generic pointers, and those
5620 	 * that use void* generic pointers.  It works with the latter
5621 	 * because both ANSI C and C++ allow castless assignment from
5622 	 * any pointer type to void*, and deal with argument conversions
5623 	 * as though doing an assignment.
5624 	 */
5625 	return realloc(ptr, size);
5626 }
5627 
yyfree(void * ptr,yyscan_t yyscanner)5628 void yyfree (void * ptr , yyscan_t yyscanner)
5629 {
5630 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5631 	(void)yyg;
5632 	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
5633 }
5634 
5635 #define YYTABLES_NAME "yytables"
5636 
5637 #line 504 "scanner.l"
5638 
5639 
5640 /*
5641  * Turn diagnostics back on, so we check the code that we've written.
5642  */
5643 DIAG_ON_FLEX
5644 
5645 stoulen_ret
stoulen(const char * string,size_t string_len,bpf_u_int32 * val,compiler_state_t * cstate)5646 stoulen(const char *string, size_t string_len, bpf_u_int32 *val,
5647     compiler_state_t *cstate)
5648 {
5649 	bpf_u_int32 n = 0;
5650 	unsigned int digit;
5651 	const char *s = string;
5652 
5653 	/*
5654 	 * string is guaranteed either to be a string of decimal digits
5655 	 * or 0[xX] followed by a string of hex digits.
5656 	 */
5657 	if (string_len >= 1 && *s == '0') {
5658 		if (string_len >= 2  && (s[1] == 'x' || s[1] == 'X')) {
5659 			/*
5660 			 * Begins with 0x or 0X, so hex.
5661 			 * Guaranteed to be all hex digits following the
5662 			 * prefix, so anything that's not 0-9 or a-f is
5663 			 * A-F.
5664 			 */
5665 			s += 2;	/* skip the prefix */
5666 			string_len -= 2;
5667 			while (string_len != 0) {
5668 				digit = *s++;
5669 				string_len--;
5670 				if (digit >= '0' && digit <= '9')
5671 					digit = digit - '0';
5672 				else if (digit >= 'a' && digit <= 'f')
5673 					digit = digit - 'a' + 10;
5674 				else if (digit >= 'A' && digit <= 'F')
5675 					digit = digit - 'A' + 10;
5676 				else {
5677 					/*
5678 					 * Not a valid hex number.
5679 					 * Don't treat this as an error,
5680 					 * in case the caller wants to
5681 					 * interpret it as something else.
5682 					 */
5683 					return STOULEN_NOT_HEX_NUMBER;
5684 				}
5685 
5686 				/*
5687 				 * Check for overflow.
5688 				 */
5689 				if (n > 0xFFFFFFFU) {
5690 					/*
5691 					 * We have more than 28 bits of
5692 					 * number, and are about to
5693 					 * add 4 more; that won't fit
5694 					 * in 32 bits.
5695 					 */
5696 					bpf_set_error(cstate,
5697 					    "number %.*s overflows 32 bits",
5698 					   (int)string_len, string);
5699 					return STOULEN_ERROR;
5700 				}
5701 				n = (n << 4) + digit;
5702 			}
5703 		} else {
5704 			/*
5705 			 * Begins with 0, but not 0x or 0X, so octal.
5706 			 * Guaranteed to be all *decimal* digits following
5707 			 * the prefix, so we need to catch 8 and 9 and
5708 			 * report an error.
5709 			 */
5710 			s += 1;
5711 			string_len -= 1;
5712 			while (string_len != 0) {
5713 				digit = *s++;
5714 				string_len--;
5715 				if (digit >= '0' && digit <= '7')
5716 					digit = digit - '0';
5717 				else {
5718 					/*
5719 					 * Not a valid octal number.
5720 					 * Don't treat this as an error,
5721 					 * in case the caller wants to
5722 					 * interpret it as something else.
5723 					 */
5724 					return STOULEN_NOT_OCTAL_NUMBER;
5725 				}
5726 				if (n > 03777777777U) {
5727 					/*
5728 					 * We have more than 29 bits of
5729 					 * number, and are about to add
5730 					 * 3 more; that won't fit in
5731 					 * 32 bits.
5732 					 */
5733 					bpf_set_error(cstate,
5734 					    "number %.*s overflows 32 bits",
5735 					   (int)string_len, string);
5736 					return STOULEN_ERROR;
5737 				}
5738 				n = (n << 3) + digit;
5739 			}
5740 		}
5741 	} else {
5742 		/*
5743 		 * Decimal.
5744 		 */
5745 		while (string_len != 0) {
5746 			digit = *s++;
5747 			string_len--;
5748 			if (digit >= '0' && digit <= '9')
5749 				digit = digit - '0';
5750 			else {
5751 				/*
5752 				 * Not a valid decimal number.
5753 				 * Don't treat this as an error,
5754 				 * in case the caller wants to
5755 				 * interpret it as something else.
5756 				 */
5757 				return STOULEN_NOT_DECIMAL_NUMBER;
5758 			}
5759 #define CUTOFF_DEC	(0xFFFFFFFFU / 10U)
5760 #define CUTLIM_DEC	(0xFFFFFFFFU % 10U)
5761 			if (n > CUTOFF_DEC ||
5762 			    (n == CUTOFF_DEC && digit > CUTLIM_DEC)) {
5763 				/*
5764 				 * Adding that digit will result in a
5765 				 * number that won't fit in 32 bits.
5766 				 */
5767 				bpf_set_error(cstate,
5768 				    "number %.*s overflows 32 bits",
5769 				   (int)string_len, string);
5770 				return STOULEN_ERROR;
5771 			}
5772 			n = (n * 10) + digit;
5773 		}
5774 	}
5775 
5776 	*val = n;
5777 	return STOULEN_OK;
5778 }
5779 
5780 /*
5781  * Convert string to 32-bit unsigned integer.  Just like atoi(), but checks for
5782  * preceding 0x or 0 and uses hex or octal instead of decimal.
5783  *
5784  * On success, sets yylval->h to the value and returns NUM.
5785  * On failure, sets the BPF error string and returns LEX_ERROR, to force
5786  * the parse to stop.
5787  */
5788 static int
stou(const char * yytext_arg,YYSTYPE * yylval_arg,compiler_state_t * yyextra_arg)5789 stou(const char *yytext_arg, YYSTYPE *yylval_arg, compiler_state_t *yyextra_arg)
5790 {
5791 	stoulen_ret ret;
5792 
5793 	ret = stoulen(yytext_arg, strlen(yytext_arg), &yylval_arg->h,
5794 	    yyextra_arg);
5795 	switch (ret) {
5796 
5797 	case STOULEN_OK:
5798 		return NUM;
5799 
5800 	case STOULEN_NOT_OCTAL_NUMBER:
5801 		bpf_set_error(yyextra_arg, "number %s contains non-octal digit",
5802 		    yytext_arg);
5803 		return LEX_ERROR;
5804 
5805 	case STOULEN_NOT_HEX_NUMBER:
5806 		bpf_set_error(yyextra_arg, "number %s contains non-hex digit",
5807 		    yytext_arg);
5808 		return LEX_ERROR;
5809 
5810 	case STOULEN_NOT_DECIMAL_NUMBER:
5811 		bpf_set_error(yyextra_arg, "number %s contains non-decimal digit",
5812 		    yytext_arg);
5813 		return LEX_ERROR;
5814 
5815 	case STOULEN_ERROR:
5816 		/* Error already set. */
5817 		return LEX_ERROR;
5818 
5819 	default:
5820 		/* Should not happen */
5821 		bpf_set_error(yyextra_arg, "stoulen returned %d - this should not happen", ret);
5822 		return LEX_ERROR;
5823 	}
5824 }
5825 
5826