2 #line 3 "src/surf/simgrid_dtd.c"
4 #define YY_INT_ALIGNED short int
6 /* A lexical scanner generated by flex */
8 #define yy_create_buffer surf_parse__create_buffer
9 #define yy_delete_buffer surf_parse__delete_buffer
10 #define yy_flex_debug surf_parse__flex_debug
11 #define yy_init_buffer surf_parse__init_buffer
12 #define yy_flush_buffer surf_parse__flush_buffer
13 #define yy_load_buffer_state surf_parse__load_buffer_state
14 #define yy_switch_to_buffer surf_parse__switch_to_buffer
15 #define yyin surf_parse_in
16 #define yyleng surf_parse_leng
17 #define yylex surf_parse_lex
18 #define yylineno surf_parse_lineno
19 #define yyout surf_parse_out
20 #define yyrestart surf_parse_restart
21 #define yytext surf_parse_text
22 #define yywrap surf_parse_wrap
23 #define yyalloc surf_parse_alloc
24 #define yyrealloc surf_parse_realloc
25 #define yyfree surf_parse_free
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 35
31 #if YY_FLEX_SUBMINOR_VERSION > 0
35 /* First, we deal with platform-specific or compiler-specific issues. */
37 /* begin standard C headers. */
43 /* end standard C headers. */
45 /* flex integer type definitions */
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55 * if you want the limit (max/min) macros for int types.
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
69 typedef signed char flex_int8_t;
70 typedef short int flex_int16_t;
71 typedef int flex_int32_t;
72 typedef unsigned char flex_uint8_t;
73 typedef unsigned short int flex_uint16_t;
74 typedef unsigned int flex_uint32_t;
76 /* Limits of integral types. */
78 #define INT8_MIN (-128)
81 #define INT16_MIN (-32767-1)
84 #define INT32_MIN (-2147483647-1)
87 #define INT8_MAX (127)
90 #define INT16_MAX (32767)
93 #define INT32_MAX (2147483647)
96 #define UINT8_MAX (255U)
99 #define UINT16_MAX (65535U)
102 #define UINT32_MAX (4294967295U)
107 #endif /* ! FLEXINT_H */
111 /* The "const" storage-class-modifier is valid. */
114 #else /* ! __cplusplus */
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
121 #endif /* defined (__STDC__) */
122 #endif /* ! __cplusplus */
125 #define yyconst const
130 /* Returned upon end-of-file. */
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134 * integer for use as an array index. If the signed char is negative,
135 * we want to instead treat it as an 8-bit unsigned char, hence the
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
140 /* Enter a start condition. This macro really ought to take a parameter,
141 * but we do it the disgusting crufty way forced on us by the ()-less
142 * definition of BEGIN.
144 #define BEGIN (yy_start) = 1 + 2 *
146 /* Translate the current start state into a value that can be later handed
147 * to BEGIN to return to the state. The YYSTATE alias is for lex
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE surf_parse_restart(surf_parse_in )
159 #define YY_END_OF_BUFFER_CHAR 0
161 /* Size of default input buffer. */
164 /* On IA-64, the buffer size is 16k, not 8k.
165 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166 * Ditto for the __ia64__ case accordingly.
168 #define YY_BUF_SIZE 32768
170 #define YY_BUF_SIZE 16384
171 #endif /* __ia64__ */
174 /* The state buf must be large enough to hold one state per character in the main buffer.
176 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
178 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
179 #define YY_TYPEDEF_YY_BUFFER_STATE
180 typedef struct yy_buffer_state *YY_BUFFER_STATE;
183 extern int surf_parse_leng;
185 extern FILE *surf_parse_in, *surf_parse_out;
187 #define EOB_ACT_CONTINUE_SCAN 0
188 #define EOB_ACT_END_OF_FILE 1
189 #define EOB_ACT_LAST_MATCH 2
191 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
192 * access to the local variable yy_act. Since yyless() is a macro, it would break
193 * existing scanners that call yyless() from OUTSIDE surf_parse_lex.
194 * One obvious solution it to make yy_act a global. I tried that, and saw
195 * a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
196 * normally declared as a register variable-- so it is not worth it.
198 #define YY_LESS_LINENO(n) \
201 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
202 if ( surf_parse_text[yyl] == '\n' )\
203 --surf_parse_lineno;\
206 /* Return all but the first "n" matched characters back to the input stream. */
210 /* Undo effects of setting up surf_parse_text. */ \
211 int yyless_macro_arg = (n); \
212 YY_LESS_LINENO(yyless_macro_arg);\
213 *yy_cp = (yy_hold_char); \
214 YY_RESTORE_YY_MORE_OFFSET \
215 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
216 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
220 #define unput(c) yyunput( c, (yytext_ptr) )
222 #ifndef YY_TYPEDEF_YY_SIZE_T
223 #define YY_TYPEDEF_YY_SIZE_T
224 typedef size_t yy_size_t;
227 #ifndef YY_STRUCT_YY_BUFFER_STATE
228 #define YY_STRUCT_YY_BUFFER_STATE
229 struct yy_buffer_state
233 char *yy_ch_buf; /* input buffer */
234 char *yy_buf_pos; /* current position in input buffer */
236 /* Size of input buffer in bytes, not including room for EOB
239 yy_size_t yy_buf_size;
241 /* Number of characters read into yy_ch_buf, not including EOB
246 /* Whether we "own" the buffer - i.e., we know we created it,
247 * and can realloc() it to grow it, and should free() it to
250 int yy_is_our_buffer;
252 /* Whether this is an "interactive" input source; if so, and
253 * if we're using stdio for input, then we want to use getc()
254 * instead of fread(), to make sure we stop fetching input after
257 int yy_is_interactive;
259 /* Whether we're considered to be at the beginning of a line.
260 * If so, '^' rules will be active on the next match, otherwise
265 int yy_bs_lineno; /**< The line count. */
266 int yy_bs_column; /**< The column count. */
268 /* Whether to try to fill the input buffer when we reach the
273 int yy_buffer_status;
275 #define YY_BUFFER_NEW 0
276 #define YY_BUFFER_NORMAL 1
277 /* When an EOF's been seen but there's still some text to process
278 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
279 * shouldn't try reading from the input source any more. We might
280 * still have a bunch of tokens to match, though, because of
281 * possible backing-up.
283 * When we actually see the EOF, we change the status to "new"
284 * (via surf_parse_restart()), so that the user can continue scanning by
285 * just pointing surf_parse_in at a new input file.
287 #define YY_BUFFER_EOF_PENDING 2
290 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
292 /* Stack of input buffers. */
293 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
294 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
295 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
297 /* We provide macros for accessing buffer states in case in the
298 * future we want to put the buffer states in a more general
301 * Returns the top of the stack, or NULL.
303 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
304 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
307 /* Same as previous macro, but useful when we know that the buffer stack is not
308 * NULL or when we need an lvalue. For internal use only.
310 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
312 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
313 static char yy_hold_char;
314 static int yy_n_chars; /* number of characters read into yy_ch_buf */
317 /* Points to current character in buffer. */
318 static char *yy_c_buf_p = (char *) 0;
319 static int yy_init = 0; /* whether we need to initialize */
320 static int yy_start = 0; /* start state number */
322 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
323 * instead of setting up a fresh surf_parse_in. A bit of a hack ...
325 static int yy_did_buffer_switch_on_eof;
327 void surf_parse_restart (FILE *input_file );
328 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer );
329 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size );
330 void surf_parse__delete_buffer (YY_BUFFER_STATE b );
331 void surf_parse__flush_buffer (YY_BUFFER_STATE b );
332 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer );
333 void surf_parse_pop_buffer_state (void );
335 static void surf_parse_ensure_buffer_stack (void );
336 static void surf_parse__load_buffer_state (void );
337 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file );
339 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
341 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size );
342 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str );
343 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len );
345 void *surf_parse_alloc (yy_size_t );
346 void *surf_parse_realloc (void *,yy_size_t );
347 void surf_parse_free (void * );
349 #define yy_new_buffer surf_parse__create_buffer
351 #define yy_set_interactive(is_interactive) \
353 if ( ! YY_CURRENT_BUFFER ){ \
354 surf_parse_ensure_buffer_stack (); \
355 YY_CURRENT_BUFFER_LVALUE = \
356 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
358 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
361 #define yy_set_bol(at_bol) \
363 if ( ! YY_CURRENT_BUFFER ){\
364 surf_parse_ensure_buffer_stack (); \
365 YY_CURRENT_BUFFER_LVALUE = \
366 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
368 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
371 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
373 /* Begin user sect3 */
375 #define surf_parse_wrap(n) 1
376 #define YY_SKIP_YYWRAP
378 typedef unsigned char YY_CHAR;
380 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
382 typedef int yy_state_type;
384 extern int surf_parse_lineno;
386 int surf_parse_lineno = 1;
388 extern char *surf_parse_text;
389 #define yytext_ptr surf_parse_text
391 static yy_state_type yy_get_previous_state (void );
392 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
393 static int yy_get_next_buffer (void );
394 static void yy_fatal_error (yyconst char msg[] );
396 /* Done after the current pattern has been matched and before the
397 * corresponding action - sets up surf_parse_text.
399 #define YY_DO_BEFORE_ACTION \
400 (yytext_ptr) = yy_bp; \
401 surf_parse_leng = (size_t) (yy_cp - yy_bp); \
402 (yy_hold_char) = *yy_cp; \
404 (yy_c_buf_p) = yy_cp;
406 #define YY_NUM_RULES 297
407 #define YY_END_OF_BUFFER 298
408 /* This struct is not used in this scanner,
409 but its presence is necessary. */
412 flex_int32_t yy_verify;
415 static yyconst flex_int16_t yy_accept[1715] =
417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
418 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
423 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
428 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
429 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
430 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
432 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
435 298, 296, 15, 10, 10, 15, 15, 276, 10, 276,
436 5, 6, 5, 8, 9, 8, 292, 284, 285, 293,
437 290, 293, 291, 295, 284, 285, 295, 296, 26, 10,
439 26, 26, 26, 24, 26, 26, 30, 10, 30, 296,
440 30, 296, 296, 30, 41, 10, 41, 41, 41, 39,
441 41, 41, 41, 293, 292, 63, 10, 63, 63, 63,
442 61, 63, 63, 63, 63, 67, 10, 67, 296, 67,
443 86, 10, 86, 86, 86, 84, 86, 86, 86, 90,
444 10, 90, 99, 10, 99, 99, 99, 97, 99, 99,
445 103, 10, 103, 103, 296, 103, 103, 296, 296, 103,
446 296, 103, 296, 103, 132, 10, 132, 132, 132, 130,
447 132, 132, 132, 132, 132, 132, 136, 10, 136, 136,
448 143, 10, 143, 143, 143, 141, 143, 147, 10, 147,
450 172, 10, 172, 172, 172, 170, 172, 172, 172, 172,
451 176, 10, 176, 176, 185, 10, 185, 185, 185, 183,
452 185, 185, 189, 10, 189, 296, 189, 202, 10, 202,
453 202, 202, 200, 202, 202, 202, 206, 10, 206, 206,
454 213, 10, 213, 213, 213, 211, 213, 217, 10, 217,
455 230, 10, 230, 230, 230, 228, 230, 230, 230, 234,
456 10, 234, 234, 247, 10, 247, 247, 247, 245, 247,
457 247, 247, 247, 251, 10, 251, 296, 251, 258, 10,
458 258, 258, 258, 256, 258, 262, 10, 262, 271, 10,
459 271, 271, 271, 269, 271, 271, 275, 10, 275, 10,
461 0, 2, 2, 0, 4, 7, 287, 286, 0, 0,
462 0, 0, 0, 0, 0, 25, 27, 27, 27, 0,
463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
464 0, 0, 0, 0, 0, 0, 0, 0, 40, 42,
465 42, 42, 42, 0, 0, 0, 62, 64, 64, 64,
466 64, 64, 64, 64, 0, 0, 85, 87, 87, 87,
467 87, 0, 98, 100, 100, 100, 0, 0, 0, 0,
468 0, 0, 131, 133, 133, 133, 133, 133, 133, 133,
469 133, 0, 142, 144, 144, 0, 171, 173, 173, 173,
470 173, 173, 173, 0, 184, 186, 186, 186, 0, 0,
472 201, 203, 203, 203, 203, 0, 212, 214, 214, 0,
473 229, 231, 231, 231, 231, 0, 246, 248, 248, 248,
474 248, 248, 0, 0, 257, 259, 259, 0, 270, 272,
475 272, 272, 0, 0, 0, 0, 0, 3, 0, 0,
476 0, 0, 0, 0, 0, 294, 0, 27, 27, 0,
477 0, 92, 0, 0, 0, 0, 0, 0, 0, 0,
478 0, 0, 0, 0, 0, 91, 0, 0, 0, 0,
479 0, 42, 0, 0, 42, 0, 0, 0, 289, 64,
480 0, 0, 64, 64, 64, 64, 0, 0, 0, 87,
481 87, 87, 0, 0, 0, 0, 100, 0, 0, 92,
483 0, 91, 133, 0, 0, 133, 133, 133, 133, 133,
484 0, 0, 0, 0, 0, 0, 173, 0, 0, 173,
485 173, 173, 0, 0, 186, 186, 0, 0, 0, 203,
486 203, 203, 0, 0, 0, 0, 0, 0, 231, 231,
487 231, 0, 0, 248, 248, 248, 248, 0, 0, 0,
488 259, 0, 0, 0, 0, 272, 0, 0, 0, 14,
489 1, 0, 0, 282, 0, 0, 0, 279, 278, 0,
490 0, 27, 27, 0, 0, 29, 0, 92, 0, 0,
491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
492 0, 0, 91, 0, 0, 0, 0, 0, 42, 0,
494 34, 33, 42, 0, 0, 0, 44, 0, 64, 0,
495 48, 47, 0, 0, 64, 0, 0, 64, 0, 0,
496 66, 0, 0, 87, 87, 87, 0, 0, 89, 0,
497 0, 94, 93, 100, 0, 0, 102, 0, 0, 0,
498 133, 0, 107, 106, 133, 133, 133, 133, 133, 0,
499 0, 135, 0, 0, 140, 139, 0, 0, 146, 0,
500 173, 0, 151, 150, 173, 173, 173, 0, 0, 175,
501 0, 0, 0, 0, 0, 0, 0, 188, 0, 0,
502 0, 0, 203, 203, 0, 0, 0, 0, 205, 0,
503 0, 210, 209, 0, 0, 216, 0, 0, 0, 231,
505 231, 0, 0, 0, 0, 233, 0, 248, 248, 248,
506 248, 0, 0, 250, 0, 0, 259, 0, 0, 261,
507 0, 0, 266, 265, 272, 0, 0, 274, 0, 0,
508 0, 283, 277, 0, 0, 0, 27, 27, 0, 0,
509 0, 0, 105, 149, 0, 0, 263, 0, 0, 0,
510 104, 148, 0, 0, 0, 0, 0, 0, 0, 0,
511 0, 42, 0, 0, 64, 0, 52, 51, 0, 0,
512 0, 50, 49, 64, 0, 264, 87, 0, 0, 87,
513 0, 100, 0, 101, 0, 0, 133, 133, 133, 133,
514 133, 133, 0, 0, 173, 173, 173, 173, 0, 0,
516 182, 181, 0, 180, 179, 0, 148, 0, 195, 194,
517 203, 203, 0, 193, 192, 0, 0, 0, 223, 222,
518 231, 231, 0, 221, 220, 0, 248, 0, 0, 248,
519 248, 0, 0, 259, 0, 272, 0, 0, 0, 0,
520 12, 0, 280, 281, 0, 27, 27, 0, 0, 0,
521 0, 105, 149, 0, 0, 0, 263, 0, 178, 32,
522 104, 148, 0, 177, 0, 178, 31, 177, 31, 0,
523 36, 35, 42, 0, 0, 64, 0, 54, 53, 64,
524 0, 264, 87, 0, 0, 0, 0, 0, 0, 100,
525 0, 0, 133, 133, 133, 0, 0, 0, 0, 133,
527 133, 0, 0, 173, 173, 173, 0, 0, 173, 0,
528 0, 0, 203, 203, 0, 0, 231, 231, 0, 248,
529 0, 238, 237, 248, 248, 0, 0, 0, 0, 0,
530 0, 0, 0, 0, 0, 0, 11, 0, 27, 27,
531 27, 0, 0, 0, 0, 0, 0, 0, 46, 178,
532 138, 32, 0, 0, 177, 137, 45, 31, 0, 42,
533 0, 0, 64, 64, 0, 87, 0, 0, 0, 0,
534 0, 0, 0, 0, 0, 81, 80, 0, 100, 0,
535 0, 133, 133, 133, 0, 109, 108, 0, 0, 0,
536 133, 133, 0, 134, 0, 173, 173, 173, 0, 0,
538 0, 173, 0, 174, 0, 0, 0, 0, 0, 0,
539 0, 0, 0, 0, 0, 0, 0, 248, 248, 248,
540 0, 0, 0, 255, 254, 0, 0, 268, 267, 0,
541 273, 0, 0, 0, 0, 0, 0, 27, 27, 0,
542 190, 0, 0, 0, 0, 236, 46, 138, 0, 235,
543 137, 45, 0, 42, 0, 0, 43, 64, 64, 0,
544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
545 0, 0, 0, 0, 0, 191, 0, 133, 133, 133,
546 0, 0, 133, 0, 0, 0, 173, 0, 0, 173,
547 173, 0, 0, 173, 0, 187, 0, 0, 199, 198,
549 0, 197, 196, 0, 0, 0, 227, 226, 0, 225,
550 224, 0, 248, 248, 248, 0, 0, 0, 0, 0,
551 0, 17, 0, 19, 18, 27, 27, 0, 190, 252,
552 0, 207, 16, 236, 0, 235, 0, 42, 288, 64,
553 64, 0, 65, 0, 83, 82, 0, 0, 0, 0,
554 0, 0, 0, 0, 0, 0, 0, 0, 96, 95,
555 191, 0, 133, 133, 133, 0, 0, 0, 0, 133,
556 0, 129, 128, 0, 145, 173, 0, 157, 156, 173,
557 173, 0, 0, 0, 0, 173, 208, 0, 0, 0,
558 0, 0, 248, 248, 0, 253, 0, 0, 0, 0,
560 17, 27, 27, 0, 252, 0, 207, 16, 0, 0,
561 42, 0, 0, 64, 0, 0, 0, 0, 0, 0,
562 0, 0, 0, 0, 0, 0, 133, 133, 133, 0,
563 115, 0, 114, 133, 0, 0, 173, 173, 173, 0,
564 161, 0, 160, 173, 208, 0, 204, 0, 0, 0,
565 240, 239, 0, 0, 248, 0, 249, 253, 0, 0,
566 0, 0, 0, 0, 27, 0, 28, 0, 0, 0,
567 42, 0, 0, 0, 64, 0, 0, 0, 0, 0,
568 0, 0, 0, 0, 0, 0, 0, 133, 133, 133,
569 117, 116, 0, 0, 0, 153, 152, 173, 173, 173,
571 163, 162, 0, 0, 0, 215, 0, 0, 244, 243,
572 0, 0, 0, 260, 0, 0, 0, 0, 21, 20,
573 0, 0, 218, 0, 0, 0, 0, 0, 0, 0,
574 0, 64, 0, 0, 0, 0, 73, 0, 0, 0,
575 0, 72, 0, 219, 133, 133, 133, 0, 119, 118,
576 173, 173, 173, 0, 165, 164, 0, 0, 242, 241,
577 0, 0, 0, 0, 23, 22, 218, 0, 0, 0,
578 38, 37, 0, 0, 0, 0, 64, 0, 0, 0,
579 0, 0, 0, 0, 0, 0, 219, 0, 0, 133,
580 133, 133, 173, 0, 0, 173, 0, 0, 0, 0,
582 0, 69, 68, 0, 0, 0, 0, 0, 0, 0,
583 0, 79, 0, 0, 0, 78, 0, 0, 0, 111,
584 110, 133, 133, 133, 133, 173, 0, 159, 158, 173,
585 0, 232, 0, 0, 0, 0, 0, 0, 69, 68,
586 0, 0, 0, 0, 0, 56, 55, 0, 0, 0,
587 0, 0, 0, 0, 133, 133, 133, 133, 0, 0,
588 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,
589 0, 59, 77, 0, 0, 76, 0, 0, 0, 88,
590 133, 133, 133, 133, 0, 155, 154, 0, 0, 0,
591 0, 0, 0, 12, 0, 12, 0, 0, 0, 71,
593 75, 70, 74, 133, 133, 133, 133, 0, 0, 0,
594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
595 0, 0, 0, 0, 133, 0, 0, 0, 0, 0,
596 0, 0, 0, 58, 57, 0, 113, 112, 0, 123,
597 122, 0, 121, 120, 133, 0, 127, 126, 0, 0,
598 0, 0, 0, 11, 133, 0, 0, 0, 0, 0,
599 133, 0, 0, 0, 0, 0, 133, 0, 0, 0,
600 0, 0, 0, 0, 0, 167, 0, 166, 0, 0,
601 125, 124, 169, 168, 0, 0, 0, 0, 0, 0,
602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
608 static yyconst flex_int32_t yy_ec[256] =
610 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
611 1, 2, 4, 1, 1, 1, 1, 1, 1, 1,
612 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
613 1, 2, 5, 6, 7, 1, 1, 8, 9, 1,
614 1, 1, 1, 1, 10, 11, 12, 13, 13, 13,
615 13, 14, 13, 13, 13, 15, 13, 16, 17, 18,
616 19, 20, 21, 1, 22, 23, 24, 25, 26, 27,
617 28, 29, 30, 28, 31, 32, 33, 34, 35, 36,
618 28, 37, 38, 39, 28, 40, 41, 28, 42, 28,
619 43, 1, 44, 1, 45, 1, 46, 47, 48, 49,
621 50, 51, 52, 53, 54, 28, 55, 56, 57, 58,
622 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
623 69, 28, 1, 1, 1, 1, 1, 1, 1, 1,
624 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
625 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
626 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
627 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
628 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
629 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
630 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
632 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
633 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
634 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
635 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
636 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
640 static yyconst flex_int32_t yy_meta[70] =
642 1, 2, 2, 2, 1, 1, 1, 1, 1, 3,
643 3, 1, 4, 4, 4, 5, 6, 1, 7, 8,
644 1, 9, 9, 9, 9, 9, 9, 5, 5, 5,
645 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
646 5, 5, 1, 1, 5, 9, 9, 9, 9, 9,
647 9, 5, 5, 5, 5, 5, 5, 5, 5, 5,
648 5, 5, 5, 5, 5, 5, 5, 5, 5
651 static yyconst flex_int16_t yy_base[1861] =
653 0, 0, 0, 3, 6, 9, 12, 29, 16, 19,
654 14, 17, 33, 36, 49, 55, 45, 61, 66, 72,
655 105, 173, 75, 78, 83, 125, 128, 132, 135, 138,
656 193, 196, 200, 203, 206, 224, 227, 230, 233, 250,
657 253, 256, 274, 334, 306, 312, 394, 457, 294, 301,
658 304, 355, 358, 361, 364, 368, 520, 584, 414, 417,
659 648, 710, 421, 424, 427, 477, 480, 484, 487, 490,
660 540, 543, 547, 550, 553, 604, 607, 611, 614, 617,
661 668, 671, 675, 678, 681, 730, 733, 737, 740, 743,
662 763, 766, 784, 0, 852, 855, 858, 861, 864, 881,
664 884, 887, 905, 959, 925, 928, 1013, 1076, 932, 935,
665 938, 979, 982, 986, 989, 992, 1139, 1202, 1033, 1036,
666 1040, 1043, 1046, 1096, 1099, 1103, 1265, 1328, 1106, 1109,
667 1159, 1162, 1166, 1169, 1172, 1222, 1391, 1445, 1225, 1229,
668 1499, 1562, 1232, 1235, 1285, 1288, 1292, 1295, 1298, 1348,
669 1625, 1688, 1351, 1355, 1358, 1361, 1411, 1414, 1418, 1421,
670 1751, 1817, 1424, 1465, 1883, 1949, 1468, 1472, 0, 0,
671 4224, 5784, 5784, 95, 100, 29, 41, 5784, 155, 51,
672 5784, 5784, 4212, 5784, 5784, 4191, 5784, 4206, 4205, 1475,
673 5784, 5784, 5784, 5784, 4199, 4199, 4156, 241, 5784, 158,
675 4178, 0, 142, 5784, 4147, 4133, 5784, 162, 2011, 1539,
676 388, 1602, 1665, 108, 5784, 261, 4152, 0, 146, 5784,
677 4117, 4120, 4111, 369, 4113, 5784, 329, 4135, 0, 217,
678 5784, 4104, 4095, 169, 4079, 5784, 389, 11, 1728, 4121,
679 5784, 451, 4112, 0, 245, 5784, 4065, 4065, 4046, 5784,
680 513, 428, 5784, 570, 4087, 0, 306, 5784, 4053, 4042,
681 5784, 574, 2071, 1475, 1793, 38, 4077, 1859, 1925, 71,
682 1974, 44, 2034, 4078, 5784, 577, 4069, 0, 308, 5784,
683 4018, 96, 4037, 4018, 4008, 4017, 5784, 634, 109, 4049,
684 5784, 638, 4040, 0, 491, 5784, 4009, 5784, 641, 492,
686 5784, 701, 4030, 0, 498, 5784, 4003, 3997, 3999, 91,
687 5784, 704, 189, 4031, 5784, 771, 4022, 0, 561, 5784,
688 3977, 3966, 5784, 774, 213, 2083, 4015, 5784, 890, 4005,
689 0, 562, 5784, 3954, 3949, 3948, 5784, 893, 506, 3996,
690 5784, 1068, 3986, 0, 625, 5784, 3956, 5784, 1071, 1047,
691 5784, 1131, 3983, 0, 626, 5784, 3932, 3921, 3925, 5784,
692 1134, 682, 3973, 5784, 1189, 3951, 0, 758, 5784, 3905,
693 3909, 3912, 3901, 5784, 1192, 201, 2104, 3951, 5784, 1195,
694 3942, 0, 1110, 5784, 3909, 5784, 1252, 1236, 5784, 1256,
695 3917, 0, 1180, 5784, 3887, 3888, 5784, 1259, 1299, 1319,
697 18, 3857, 5784, 3914, 3902, 5784, 5784, 5784, 1369, 35,
698 3855, 3853, 3847, 3888, 3838, 5784, 0, 3831, 3835, 3829,
699 3848, 3811, 3799, 3808, 3811, 211, 388, 3798, 3781, 3785,
700 313, 397, 3799, 641, 3774, 642, 703, 3765, 5784, 0,
701 3770, 1475, 3747, 280, 3742, 3785, 5784, 0, 3744, 1521,
702 3731, 3735, 3721, 3725, 3711, 327, 5784, 0, 3721, 3702,
703 3713, 3693, 5784, 0, 1526, 3682, 3724, 3706, 3670, 898,
704 3700, 899, 5784, 0, 3688, 1530, 3667, 3662, 3661, 3674,
705 3629, 3641, 5784, 0, 1535, 3630, 5784, 0, 3633, 1585,
706 3621, 3637, 3636, 3624, 5784, 0, 3609, 3603, 3583, 3589,
708 5784, 0, 3578, 3595, 3580, 3604, 5784, 0, 1594, 3566,
709 5784, 0, 3556, 3574, 3569, 3562, 5784, 0, 3549, 3543,
710 3547, 3555, 3537, 3526, 5784, 0, 3531, 3539, 5784, 0,
711 1648, 3521, 3515, 3550, 3559, 736, 3510, 5784, 1372, 0,
712 3496, 3496, 3536, 3534, 3491, 5784, 3502, 3483, 3487, 1657,
713 1720, 1553, 3491, 3457, 3451, 3455, 3455, 3436, 3436, 3427,
714 3433, 3414, 3409, 3407, 3399, 1617, 3405, 3396, 3403, 3383,
715 3400, 3391, 1711, 1489, 3380, 3409, 1776, 1783, 5784, 3381,
716 1797, 1802, 1839, 3358, 1848, 3370, 1905, 1971, 3354, 3355,
717 3357, 3356, 1914, 1980, 1929, 1866, 3333, 2002, 2005, 1680,
719 3336, 1874, 3340, 1995, 1936, 3328, 3326, 3320, 3301, 3318,
720 2008, 2042, 2046, 2057, 2049, 2075, 3304, 2104, 2110, 3294,
721 3281, 3277, 2082, 2118, 2150, 2159, 2138, 2171, 3272, 2177,
722 2180, 2183, 2186, 2190, 2201, 2205, 2213, 2219, 2222, 2232,
723 2242, 2245, 2250, 3279, 3261, 3267, 3260, 2254, 2260, 3268,
724 3232, 2264, 2273, 2283, 2288, 3231, 2296, 2301, 3264, 5784,
725 5784, 220, 3219, 5784, 3249, 3248, 3196, 5784, 5784, 3194,
726 3192, 3194, 3178, 2304, 2307, 5784, 2310, 1322, 3181, 3173,
727 3180, 3157, 3162, 3152, 40, 3157, 3140, 3155, 3136, 3142,
728 425, 3132, 1606, 3145, 3128, 3143, 3106, 3120, 2329, 2334,
730 5784, 5784, 2342, 3142, 2347, 2350, 5784, 2356, 3103, 2362,
731 5784, 5784, 2370, 2375, 2384, 2388, 2391, 3113, 2402, 2406,
732 5784, 2409, 488, 3110, 2412, 3096, 2415, 2421, 5784, 2430,
733 2434, 5784, 5784, 3090, 2442, 2445, 5784, 2449, 3084, 3095,
734 3079, 2452, 5784, 5784, 3072, 3069, 3065, 3075, 3057, 2468,
735 2471, 5784, 2475, 2478, 5784, 5784, 2490, 2494, 5784, 2497,
736 3045, 2500, 5784, 5784, 3052, 3055, 3049, 2509, 2516, 5784,
737 2519, 2522, 2528, 2540, 2543, 2551, 2554, 5784, 2561, 3042,
738 2564, 2576, 3032, 3032, 2584, 2587, 2595, 2598, 5784, 2602,
739 2605, 5784, 5784, 2617, 2621, 5784, 2625, 2628, 2640, 3029,
741 3021, 2631, 2649, 2636, 2657, 5784, 2664, 3014, 2667, 3032,
742 3011, 2670, 2676, 5784, 2685, 3005, 3019, 2689, 2695, 5784,
743 2698, 2704, 5784, 5784, 3013, 2717, 2723, 5784, 2726, 282,
744 2731, 5784, 5784, 3044, 3039, 3003, 2994, 3022, 2736, 2972,
745 2978, 2971, 1614, 1669, 2981, 2981, 1732, 2970, 2978, 2964,
746 1742, 2745, 2945, 2944, 2930, 2936, 2935, 2933, 2931, 2751,
747 2756, 2913, 2938, 2764, 2912, 2769, 5784, 5784, 2777, 2784,
748 2795, 5784, 5784, 2907, 2803, 2806, 2897, 2811, 2815, 2823,
749 2829, 2892, 2833, 5784, 2884, 2877, 2888, 2881, 2866, 2836,
750 2841, 2880, 2844, 2854, 2863, 2867, 2856, 2859, 2864, 2867,
752 5784, 5784, 2879, 5784, 5784, 2887, 2890, 2893, 5784, 5784,
753 2848, 2857, 2907, 5784, 5784, 2918, 2921, 2924, 5784, 5784,
754 2839, 2853, 2933, 5784, 5784, 2941, 2846, 2944, 2950, 2834,
755 2842, 2962, 2823, 2965, 2968, 2971, 2976, 656, 2859, 2989,
756 5784, 2855, 5784, 5784, 2813, 2807, 813, 2995, 2795, 2804,
757 2788, 2998, 3001, 2802, 2782, 2771, 3004, 2772, 3009, 3014,
758 3017, 3020, 2765, 3023, 2765, 3038, 3041, 3045, 3048, 3056,
759 5784, 5784, 2766, 2777, 3064, 2747, 3070, 5784, 5784, 2737,
760 3078, 3084, 2738, 3087, 976, 1093, 3099, 3102, 3113, 2743,
761 2730, 2729, 2744, 2739, 2719, 3117, 3120, 3128, 3136, 2731,
763 2723, 3146, 3149, 2727, 2705, 2717, 3152, 3155, 2713, 3170,
764 3173, 2715, 3176, 3179, 3182, 3185, 3205, 3208, 3211, 2698,
765 3216, 5784, 5784, 2691, 2678, 3226, 2691, 3230, 3233, 3241,
766 3248, 3251, 3260, 1354, 364, 250, 5784, 2674, 3266, 2678,
767 2672, 3269, 2673, 2664, 2680, 2652, 2652, 2649, 3275, 3279,
768 3284, 3288, 2663, 2641, 3291, 3297, 3300, 3303, 2655, 2647,
769 2672, 3306, 2626, 2628, 3309, 3312, 2659, 2641, 190, 2640,
770 2643, 2628, 477, 2627, 3315, 5784, 5784, 3330, 3333, 2607,
771 2617, 2594, 2574, 2565, 3336, 5784, 5784, 3345, 2581, 2578,
772 2558, 3353, 3356, 5784, 3359, 2546, 3365, 2550, 3371, 2559,
774 2557, 2530, 3379, 5784, 3383, 2512, 3386, 3389, 3398, 3405,
775 3416, 3420, 3423, 3426, 3435, 3441, 3449, 2517, 2516, 2518,
776 3453, 2512, 3456, 5784, 5784, 3468, 3472, 5784, 5784, 3480,
777 5784, 851, 732, 913, 2512, 3483, 3487, 2503, 2495, 3495,
778 3501, 2487, 2491, 2490, 2483, 3504, 3507, 3517, 2476, 3520,
779 3523, 3526, 2474, 2474, 2484, 3529, 5784, 2454, 2469, 3532,
780 3535, 3538, 2474, 2469, 2466, 2456, 2448, 2452, 2447, 2444,
781 2434, 2425, 3556, 3559, 3562, 3570, 2405, 2407, 2410, 2400,
782 353, 599, 2401, 3577, 3580, 3588, 2389, 3591, 3596, 2388,
783 2370, 663, 723, 2372, 3609, 5784, 2369, 3612, 5784, 5784,
785 3621, 5784, 5784, 3629, 3632, 3635, 5784, 5784, 3644, 5784,
786 5784, 3652, 3655, 2371, 2363, 3658, 2335, 3661, 3664, 1033,
787 549, 3667, 3684, 5784, 5784, 2343, 2332, 3695, 3673, 3698,
788 2320, 3701, 3704, 3707, 2325, 3710, 2324, 2316, 5784, 3714,
789 2311, 3720, 5784, 3723, 5784, 5784, 2344, 2323, 2331, 2324,
790 2321, 2317, 2302, 2313, 2303, 2303, 3733, 3739, 5784, 5784,
791 3747, 2263, 2272, 2267, 2269, 2293, 2312, 2290, 2306, 2251,
792 3752, 5784, 5784, 3760, 5784, 3763, 3766, 5784, 5784, 2242,
793 2230, 2261, 2277, 2255, 2270, 2228, 3774, 3781, 3784, 3787,
794 3791, 3794, 3809, 2222, 3812, 3815, 3818, 3821, 223, 706,
796 3827, 3831, 2221, 3841, 3845, 2205, 3849, 3852, 2202, 2201,
797 2186, 3855, 3860, 2196, 2201, 2195, 2204, 2192, 2195, 2190,
798 2182, 2185, 2173, 2176, 3868, 2148, 2137, 2152, 2140, 2191,
799 5784, 2186, 5784, 3873, 3876, 3881, 2125, 2115, 2114, 2159,
800 5784, 2150, 5784, 3894, 3897, 3900, 5784, 3903, 3907, 3912,
801 5784, 5784, 3926, 3929, 3937, 3940, 5784, 3944, 3947, 931,
802 901, 1045, 3950, 3955, 3971, 3974, 5784, 2105, 2099, 2096,
803 3977, 3980, 1004, 1130, 2078, 2102, 2093, 2087, 2088, 2083,
804 2042, 2032, 2013, 2007, 2010, 3989, 1963, 1919, 1930, 1924,
805 5784, 5784, 3995, 3998, 4009, 5784, 5784, 1887, 1885, 1811,
807 5784, 5784, 4017, 4020, 4028, 5784, 4031, 4035, 5784, 5784,
808 4050, 4053, 4061, 5784, 852, 1261, 1298, 4064, 5784, 5784,
809 4072, 4076, 4084, 1814, 104, 4090, 4094, 152, 277, 289,
810 414, 448, 485, 519, 518, 560, 5784, 598, 584, 622,
811 655, 5784, 4102, 4108, 4111, 664, 714, 4114, 5784, 5784,
812 726, 4122, 735, 4125, 5784, 5784, 4133, 4136, 5784, 5784,
813 883, 1166, 4144, 4156, 5784, 5784, 4147, 810, 814, 4164,
814 5784, 5784, 858, 847, 878, 867, 4172, 865, 930, 948,
815 976, 962, 984, 1000, 989, 4175, 4178, 4182, 4190, 1004,
816 1000, 1004, 1068, 4185, 4203, 1057, 4211, 1324, 4214, 4217,
818 4223, 4236, 4242, 1094, 1153, 1145, 1156, 4245, 4248, 1160,
819 1170, 5784, 1200, 1213, 1214, 5784, 1219, 4256, 4259, 5784,
820 5784, 1198, 1214, 1243, 1259, 4267, 4271, 5784, 5784, 4279,
821 4285, 5784, 1348, 4288, 4291, 4310, 4330, 4374, 4299, 4319,
822 1282, 1306, 1290, 1318, 4350, 5784, 5784, 1361, 1338, 1346,
823 1372, 1356, 1387, 4323, 1374, 1383, 1375, 1374, 4342, 4360,
824 4368, 4394, 1423, 4402, 1771, 1464, 4422, 4466, 1426, 5784,
825 1427, 5784, 5784, 1438, 1455, 5784, 1471, 1472, 4412, 5784,
826 1446, 1449, 1477, 1485, 4442, 5784, 5784, 4450, 1514, 1520,
827 1533, 1777, 1573, 1540, 1582, 1541, 4417, 1544, 1563, 5784,
829 5784, 5784, 5784, 4458, 4477, 4486, 4489, 1562, 1571, 1590,
830 1593, 4495, 1635, 1626, 1644, 4498, 1648, 1647, 4509, 4517,
831 4530, 4533, 4541, 4548, 1595, 4559, 4562, 1624, 1643, 1635,
832 1653, 4570, 1661, 5784, 5784, 4573, 5784, 5784, 4582, 5784,
833 5784, 4590, 5784, 5784, 1654, 4598, 5784, 5784, 1674, 1679,
834 1681, 1682, 1706, 5784, 1672, 1698, 1711, 1708, 1721, 1769,
835 1701, 1737, 1757, 1757, 1777, 1824, 4607, 1783, 1804, 1786,
836 1804, 1828, 4610, 4613, 1827, 5784, 1838, 5784, 1846, 4621,
837 5784, 5784, 5784, 5784, 4629, 4632, 1836, 1851, 1890, 1923,
838 1854, 1908, 1966, 1974, 1862, 2020, 1970, 1981, 1982, 2021,
840 1902, 1909, 2048, 2054, 2027, 2080, 2079, 2128, 1853, 2147,
841 4640, 4643, 5784, 5784, 4663, 4672, 4681, 4690, 4699, 4708,
842 4717, 4726, 4735, 4744, 4753, 4762, 4771, 4780, 4789, 4798,
843 4807, 4816, 4825, 4834, 4843, 4852, 4861, 4870, 4879, 4888,
844 4897, 4906, 4915, 4924, 4933, 4942, 4951, 4960, 4969, 4976,
845 4983, 4990, 4997, 5004, 5011, 5018, 5025, 5032, 5039, 5046,
846 5053, 5060, 5067, 5074, 5083, 5088, 5093, 5098, 5103, 5108,
847 5113, 5118, 5123, 5128, 5133, 5138, 5145, 5150, 5157, 5162,
848 5169, 5174, 5181, 5186, 5195, 5201, 5208, 5216, 5223, 5231,
849 5238, 5246, 5253, 5261, 5268, 5276, 5283, 5291, 5299, 5306,
851 5314, 5322, 5330, 5338, 5346, 5354, 5362, 5370, 5377, 5385,
852 5392, 5400, 5407, 5415, 5424, 5430, 5437, 5445, 5453, 5461,
853 5468, 5476, 5483, 5491, 5498, 5506, 5513, 5521, 5529, 5536,
854 5544, 5552, 5559, 5567, 5575, 5582, 5590, 5597, 5605, 5612,
855 5620, 5627, 5635, 5644, 5653, 5660, 5668, 5675, 5683, 5690,
856 5698, 5705, 5713, 5720, 5729, 5738, 5747, 5756, 5765, 5774
859 static yyconst flex_int16_t yy_def[1861] =
861 1715, 1715, 1716, 1716, 1716, 1716, 1717, 1717, 1718, 1718,
862 1719, 1719, 1720, 1720, 1720, 1720, 1721, 1721, 1715, 1715,
863 1722, 1722, 1723, 1723, 1723, 1723, 1715, 1715, 1723, 1723,
864 1723, 1723, 1715, 1715, 1723, 1723, 1715, 1715, 1723, 1723,
865 1723, 1723, 1724, 1724, 1720, 1720, 1725, 1725, 1726, 1726,
866 1715, 1715, 1726, 1726, 1726, 1726, 1727, 1727, 1728, 1728,
867 1729, 1729, 1730, 1730, 1730, 1730, 1715, 1715, 1730, 1730,
868 1730, 1730, 1715, 1715, 1730, 1730, 1715, 1715, 1730, 1730,
869 1730, 1730, 1715, 1715, 1730, 1730, 1715, 1715, 1730, 1730,
870 1730, 1730, 1714, 93, 1731, 1731, 1715, 1715, 1731, 1731,
872 1731, 1731, 1732, 1732, 1733, 1733, 1734, 1734, 1735, 1735,
873 1715, 1715, 1735, 1735, 1735, 1735, 1736, 1736, 1737, 1737,
874 1715, 1715, 1737, 1737, 1737, 1737, 1738, 1738, 1739, 1739,
875 1715, 1715, 1739, 1739, 1739, 1739, 1740, 1740, 1741, 1741,
876 1742, 1742, 1743, 1743, 1715, 1715, 1743, 1743, 1743, 1743,
877 1744, 1744, 1745, 1745, 1715, 1715, 1745, 1745, 1745, 1745,
878 1746, 1746, 1747, 1747, 1748, 1748, 1749, 1749, 1715, 1715,
879 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
880 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
881 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
883 1714, 1750, 1714, 1714, 1750, 1750, 1714, 1714, 1714, 1714,
884 209, 1714, 1714, 211, 1714, 1714, 1714, 1751, 1714, 1714,
885 1751, 1751, 1751, 1714, 1714, 1714, 1714, 1714, 1752, 1714,
886 1714, 1752, 1752, 1752, 1752, 1714, 1714, 214, 1714, 214,
887 1714, 1714, 1714, 1753, 1714, 1714, 1753, 1753, 1753, 1714,
888 1714, 1714, 1714, 1714, 1714, 1754, 1714, 1714, 1754, 1754,
889 1714, 1714, 1714, 214, 1714, 264, 264, 1714, 1714, 214,
890 1714, 263, 1714, 214, 1714, 1714, 1714, 1755, 1714, 1714,
891 1755, 1755, 1755, 1755, 1755, 1755, 1714, 1714, 214, 214,
892 1714, 1714, 1714, 1756, 1714, 1714, 1756, 1714, 1714, 1714,
894 1714, 1714, 1714, 1757, 1714, 1714, 1757, 1757, 1757, 1757,
895 1714, 1714, 214, 214, 1714, 1714, 1714, 1758, 1714, 1714,
896 1758, 1758, 1714, 1714, 214, 1714, 214, 1714, 1714, 1714,
897 1759, 1714, 1714, 1759, 1759, 1759, 1714, 1714, 214, 214,
898 1714, 1714, 1714, 1760, 1714, 1714, 1760, 1714, 1714, 1714,
899 1714, 1714, 1714, 1761, 1714, 1714, 1761, 1761, 1761, 1714,
900 1714, 214, 214, 1714, 1714, 1714, 1762, 1714, 1714, 1762,
901 1762, 1762, 1762, 1714, 1714, 214, 1714, 214, 1714, 1714,
902 1714, 1763, 1714, 1714, 1763, 1714, 1714, 1714, 1714, 1714,
903 1714, 1764, 1714, 1714, 1764, 1764, 1714, 1714, 1714, 1714,
905 1765, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
906 1714, 1714, 1714, 1714, 1714, 1714, 1750, 1750, 1750, 1766,
907 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
908 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1751,
909 1751, 1751, 1751, 1714, 1767, 1714, 1714, 1752, 1752, 1752,
910 1752, 1752, 1752, 1752, 1768, 1714, 1714, 1753, 1753, 1753,
911 1753, 1769, 1714, 1754, 1754, 1754, 1770, 1714, 1714, 1714,
912 1714, 1714, 1714, 1755, 1755, 1755, 1755, 1755, 1755, 1755,
913 1755, 1771, 1714, 1756, 1756, 1772, 1714, 1757, 1757, 1757,
914 1757, 1757, 1757, 1773, 1714, 1758, 1758, 1758, 1774, 1714,
916 1714, 1759, 1759, 1759, 1759, 1775, 1714, 1760, 1760, 1776,
917 1714, 1777, 1777, 1777, 1777, 1778, 1714, 1779, 1779, 1779,
918 1779, 1779, 1780, 1714, 1714, 1781, 1781, 1782, 1714, 1783,
919 1783, 1783, 1784, 1785, 1714, 1785, 1714, 1714, 1714, 1786,
920 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1787, 1787, 1788,
921 1788, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
922 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
923 1714, 1789, 1714, 1714, 1789, 1714, 1790, 1790, 1714, 1791,
924 1714, 1714, 1791, 1791, 1791, 1791, 1792, 1792, 1714, 1793,
925 1793, 1793, 1794, 1794, 1714, 1714, 1795, 1796, 1796, 1714,
927 1714, 1714, 1797, 1714, 1714, 1797, 1797, 1797, 1797, 1797,
928 1798, 1798, 1714, 1714, 1799, 1799, 1800, 1714, 1714, 1800,
929 1800, 1800, 1801, 1801, 1802, 1802, 1803, 1803, 1714, 1804,
930 1804, 1804, 1805, 1805, 1714, 1714, 1806, 1806, 1807, 1807,
931 1807, 1808, 1808, 1809, 1809, 1809, 1809, 1810, 1810, 1714,
932 1811, 1812, 1812, 1714, 1714, 1813, 1814, 1814, 1815, 1714,
933 1714, 1815, 1714, 1714, 1816, 1714, 1714, 1714, 1714, 1714,
934 1714, 1817, 1817, 1714, 1818, 1714, 1818, 1714, 1714, 1714,
935 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
936 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1819, 1714,
938 1714, 1714, 1819, 1714, 1714, 1820, 1714, 1820, 1821, 1714,
939 1714, 1714, 1714, 1714, 1821, 1714, 1714, 1821, 1714, 1822,
940 1714, 1822, 1714, 1823, 1823, 1823, 1714, 1824, 1714, 1824,
941 1714, 1714, 1714, 1825, 1714, 1826, 1714, 1826, 1714, 1714,
942 1827, 1714, 1714, 1714, 1827, 1827, 1827, 1827, 1827, 1714,
943 1828, 1714, 1828, 1714, 1714, 1714, 1714, 1829, 1714, 1829,
944 1830, 1714, 1714, 1714, 1830, 1830, 1830, 1714, 1831, 1714,
945 1831, 1714, 1714, 1714, 1714, 1714, 1832, 1714, 1832, 1714,
946 1714, 1714, 1833, 1833, 1714, 1714, 1714, 1834, 1714, 1834,
947 1714, 1714, 1714, 1714, 1835, 1714, 1835, 1714, 1714, 1836,
949 1836, 1714, 1714, 1714, 1837, 1714, 1837, 1838, 1838, 1838,
950 1838, 1714, 1839, 1714, 1839, 1714, 1840, 1714, 1841, 1714,
951 1841, 1714, 1714, 1714, 1842, 1714, 1843, 1714, 1843, 1844,
952 1845, 1714, 1714, 1714, 1714, 1714, 1846, 1846, 1847, 1714,
953 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
954 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
955 1714, 1848, 1714, 1849, 1850, 1714, 1714, 1714, 1714, 1714,
956 1714, 1714, 1714, 1850, 1851, 1714, 1852, 1714, 1714, 1852,
957 1853, 1854, 1714, 1714, 1714, 1714, 1827, 1827, 1827, 1827,
958 1827, 1827, 1828, 1829, 1830, 1830, 1830, 1830, 1831, 1714,
960 1714, 1714, 1714, 1714, 1714, 1832, 1714, 1714, 1714, 1714,
961 1833, 1833, 1714, 1714, 1714, 1834, 1835, 1714, 1714, 1714,
962 1836, 1836, 1714, 1714, 1714, 1837, 1838, 1714, 1714, 1838,
963 1838, 1839, 1714, 1840, 1841, 1842, 1843, 1844, 1845, 1845,
964 1714, 1845, 1714, 1714, 1714, 1846, 1846, 1847, 1714, 1714,
965 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
966 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
967 1714, 1714, 1848, 1714, 1849, 1850, 1714, 1714, 1714, 1850,
968 1851, 1714, 1852, 1714, 1714, 1714, 1714, 1714, 1853, 1854,
969 1714, 1714, 1827, 1827, 1827, 1714, 1714, 1714, 1714, 1827,
971 1827, 1828, 1829, 1830, 1830, 1830, 1714, 1714, 1830, 1831,
972 1832, 1714, 1833, 1833, 1834, 1835, 1836, 1836, 1837, 1838,
973 1714, 1714, 1714, 1838, 1838, 1839, 1714, 1714, 1714, 1841,
974 1714, 1714, 1843, 1844, 1845, 1845, 1714, 1714, 1846, 1846,
975 1846, 1847, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
976 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1848,
977 1714, 1849, 1850, 1850, 1851, 1852, 1714, 1714, 1714, 1714,
978 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1853, 1854, 1714,
979 1714, 1827, 1827, 1827, 1714, 1714, 1714, 1714, 1714, 1714,
980 1827, 1827, 1714, 1714, 1829, 1830, 1830, 1830, 1714, 1714,
982 1714, 1830, 1714, 1714, 1832, 1714, 1714, 1714, 1714, 1714,
983 1834, 1835, 1714, 1714, 1714, 1714, 1837, 1838, 1838, 1838,
984 1839, 1714, 1714, 1714, 1714, 1841, 1714, 1714, 1714, 1714,
985 1714, 1844, 1845, 1845, 1714, 1714, 1714, 1846, 1846, 1847,
986 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
987 1714, 1714, 1714, 1848, 1714, 1714, 1714, 1850, 1850, 1851,
988 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
989 1714, 1714, 1853, 1714, 1714, 1714, 1714, 1827, 1827, 1827,
990 1714, 1714, 1827, 1714, 1714, 1829, 1830, 1714, 1714, 1830,
991 1830, 1714, 1714, 1830, 1714, 1714, 1714, 1714, 1714, 1714,
993 1714, 1714, 1714, 1834, 1835, 1714, 1714, 1714, 1714, 1714,
994 1714, 1837, 1838, 1838, 1838, 1839, 1714, 1841, 1844, 1845,
995 1845, 1714, 1714, 1714, 1714, 1846, 1846, 1847, 1714, 1714,
996 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1848, 1714, 1850,
997 1850, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
998 1714, 1714, 1714, 1714, 1714, 1714, 1853, 1714, 1714, 1714,
999 1714, 1714, 1827, 1827, 1827, 1714, 1714, 1714, 1714, 1827,
1000 1714, 1714, 1714, 1714, 1714, 1830, 1714, 1714, 1714, 1830,
1001 1830, 1714, 1714, 1714, 1714, 1830, 1714, 1834, 1835, 1837,
1002 1714, 1714, 1838, 1838, 1839, 1714, 1841, 1844, 1845, 1845,
1004 1714, 1846, 1846, 1847, 1714, 1714, 1714, 1714, 1714, 1714,
1005 1848, 1714, 1714, 1850, 1714, 1714, 1714, 1714, 1714, 1714,
1006 1714, 1714, 1714, 1714, 1853, 1714, 1827, 1827, 1827, 1714,
1007 1714, 1714, 1714, 1827, 1714, 1714, 1830, 1830, 1830, 1714,
1008 1714, 1714, 1714, 1830, 1714, 1714, 1714, 1835, 1837, 1714,
1009 1714, 1714, 1714, 1714, 1838, 1714, 1714, 1714, 1841, 1844,
1010 1845, 1845, 1714, 1714, 1846, 1714, 1714, 1714, 1714, 1714,
1011 1848, 1714, 1714, 1714, 1850, 1714, 1714, 1714, 1714, 1714,
1012 1714, 1714, 1714, 1714, 1714, 1853, 1714, 1827, 1827, 1827,
1013 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1830, 1830, 1830,
1015 1714, 1714, 1714, 1714, 1714, 1714, 1837, 1714, 1714, 1714,
1016 1714, 1714, 1714, 1714, 1844, 1845, 1845, 1714, 1714, 1714,
1017 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1018 1714, 1850, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1019 1714, 1714, 1853, 1714, 1827, 1827, 1827, 1714, 1714, 1714,
1020 1830, 1830, 1830, 1714, 1714, 1714, 1837, 1714, 1714, 1714,
1021 1844, 1845, 1845, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1022 1714, 1714, 1714, 1714, 1714, 1714, 1850, 1714, 1714, 1714,
1023 1714, 1714, 1714, 1714, 1714, 1853, 1714, 1714, 1714, 1827,
1024 1827, 1827, 1830, 1714, 1714, 1830, 1837, 1844, 1845, 1845,
1026 1845, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1027 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1853, 1714, 1714,
1028 1714, 1827, 1827, 1827, 1827, 1830, 1714, 1714, 1714, 1830,
1029 1714, 1714, 1844, 1845, 1845, 1845, 1855, 1856, 1714, 1714,
1030 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1031 1714, 1714, 1714, 1853, 1827, 1827, 1827, 1827, 1714, 1714,
1032 1714, 1714, 1844, 1845, 1857, 1858, 1855, 1856, 1714, 1714,
1033 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1034 1827, 1827, 1827, 1827, 1714, 1714, 1714, 1714, 1714, 1714,
1035 1844, 1857, 1845, 1859, 1858, 1860, 1845, 1714, 1714, 1714,
1037 1714, 1714, 1714, 1827, 1827, 1827, 1827, 1714, 1714, 1714,
1038 1714, 1844, 1859, 1714, 1860, 1845, 1714, 1714, 1714, 1714,
1039 1714, 1714, 1714, 1714, 1827, 1714, 1714, 1714, 1714, 1714,
1040 1714, 1844, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1041 1714, 1714, 1714, 1714, 1827, 1714, 1714, 1714, 1714, 1714,
1042 1714, 1714, 1844, 1714, 1827, 1714, 1714, 1714, 1714, 1844,
1043 1827, 1714, 1714, 1714, 1714, 1844, 1827, 1714, 1714, 1714,
1044 1714, 1844, 1714, 1714, 1714, 1714, 1714, 1714, 1844, 1714,
1045 1714, 1714, 1714, 1714, 1844, 1844, 1844, 1844, 1844, 1844,
1046 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
1048 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
1049 1844, 1844, 1714, 0, 1714, 1714, 1714, 1714, 1714, 1714,
1050 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1051 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1052 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1053 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1054 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1055 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1056 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1057 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1059 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1060 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1061 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1062 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1063 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1064 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714
1067 static yyconst flex_int16_t yy_nxt[5854] =
1069 1714, 174, 175, 174, 174, 175, 174, 174, 175, 174,
1070 174, 175, 174, 179, 175, 179, 185, 176, 182, 185,
1071 176, 182, 455, 177, 1714, 183, 177, 535, 183, 180,
1072 179, 175, 179, 401, 186, 188, 189, 186, 188, 189,
1073 190, 191, 536, 190, 191, 401, 180, 195, 196, 402,
1074 192, 188, 189, 192, 193, 404, 190, 188, 189, 468,
1075 193, 403, 190, 195, 196, 433, 192, 175, 175, 175,
1076 456, 403, 192, 175, 175, 175, 208, 175, 208, 208,
1077 175, 208, 467, 198, 208, 175, 208, 846, 197, 198,
1078 423, 541, 209, 425, 542, 209, 400, 400, 400, 847,
1080 209, 400, 400, 400, 197, 199, 200, 175, 200, 199,
1081 199, 199, 199, 199, 199, 199, 201, 199, 199, 199,
1082 482, 199, 203, 199, 204, 199, 208, 175, 208, 175,
1083 175, 175, 434, 175, 175, 175, 208, 175, 208, 208,
1084 175, 208, 209, 492, 476, 210, 404, 199, 199, 210,
1085 404, 1469, 209, 477, 493, 209, 400, 400, 400, 400,
1086 400, 400, 403, 400, 400, 400, 403, 431, 456, 437,
1087 205, 438, 206, 199, 200, 175, 200, 199, 199, 199,
1088 199, 199, 199, 199, 201, 199, 199, 199, 1473, 199,
1089 203, 199, 204, 199, 208, 175, 208, 208, 175, 208,
1091 494, 175, 175, 175, 175, 175, 175, 208, 175, 208,
1092 211, 1165, 523, 211, 451, 199, 199, 212, 452, 1166,
1093 212, 404, 453, 209, 499, 208, 175, 208, 175, 175,
1094 175, 175, 175, 175, 208, 175, 208, 403, 205, 660,
1095 206, 209, 941, 830, 213, 404, 524, 213, 456, 404,
1096 211, 208, 175, 208, 208, 175, 208, 208, 175, 208,
1097 456, 403, 400, 400, 400, 403, 557, 211, 500, 941,
1098 214, 1361, 558, 214, 215, 216, 175, 216, 215, 215,
1099 215, 215, 215, 215, 215, 217, 215, 215, 215, 535,
1100 215, 219, 215, 220, 215, 237, 175, 237, 1474, 1134,
1102 415, 660, 237, 175, 237, 175, 175, 175, 188, 189,
1103 404, 238, 404, 190, 188, 189, 215, 215, 238, 190,
1104 938, 239, 576, 224, 221, 1475, 403, 222, 403, 224,
1105 400, 400, 400, 223, 215, 216, 175, 216, 215, 215,
1106 215, 215, 215, 215, 215, 217, 215, 215, 215, 225,
1107 215, 219, 215, 220, 215, 225, 175, 175, 175, 237,
1108 175, 237, 237, 175, 237, 237, 175, 237, 557, 237,
1109 175, 237, 239, 444, 564, 238, 215, 215, 238, 1266,
1110 445, 240, 557, 941, 221, 240, 1267, 222, 589, 403,
1111 400, 400, 400, 223, 226, 227, 175, 227, 226, 226,
1113 226, 226, 226, 226, 226, 228, 226, 226, 226, 433,
1114 226, 230, 226, 231, 226, 251, 175, 251, 251, 175,
1115 251, 1133, 262, 175, 262, 262, 175, 262, 262, 175,
1116 262, 252, 404, 559, 252, 1476, 226, 226, 263, 462,
1117 429, 263, 559, 430, 264, 232, 560, 233, 403, 434,
1118 234, 435, 400, 400, 400, 565, 235, 226, 227, 175,
1119 227, 226, 226, 226, 226, 226, 226, 226, 228, 226,
1120 226, 226, 853, 226, 230, 226, 231, 226, 262, 175,
1121 262, 175, 175, 175, 847, 175, 175, 175, 262, 175,
1122 262, 262, 175, 262, 264, 404, 404, 265, 1170, 226,
1124 226, 265, 404, 486, 266, 1477, 1171, 266, 232, 1478,
1125 233, 403, 403, 234, 400, 400, 400, 506, 403, 235,
1126 241, 242, 175, 242, 241, 241, 241, 241, 241, 241,
1127 241, 243, 241, 241, 241, 853, 241, 245, 241, 246,
1128 241, 262, 175, 262, 262, 175, 262, 876, 175, 175,
1129 175, 175, 175, 175, 262, 175, 262, 267, 1479, 1480,
1130 267, 500, 241, 241, 268, 404, 404, 268, 941, 247,
1131 264, 400, 400, 400, 248, 400, 400, 400, 400, 400,
1132 400, 403, 403, 249, 241, 242, 175, 242, 241, 241,
1133 241, 241, 241, 241, 241, 243, 241, 241, 241, 1481,
1135 241, 245, 241, 246, 241, 262, 175, 262, 175, 175,
1136 175, 1300, 175, 175, 175, 262, 175, 262, 262, 175,
1137 262, 264, 1482, 1483, 269, 1268, 241, 241, 269, 404,
1138 404, 267, 1269, 247, 267, 400, 400, 400, 248, 400,
1139 400, 400, 400, 400, 400, 403, 403, 249, 253, 254,
1140 175, 254, 253, 253, 253, 253, 253, 253, 253, 255,
1141 253, 253, 253, 1484, 253, 257, 253, 258, 253, 262,
1142 175, 262, 262, 175, 262, 660, 175, 175, 175, 175,
1143 175, 175, 262, 175, 262, 270, 567, 559, 270, 1282,
1144 253, 253, 271, 516, 1485, 271, 1283, 1034, 272, 568,
1146 570, 259, 400, 400, 400, 400, 400, 400, 1491, 260,
1147 253, 254, 175, 254, 253, 253, 253, 253, 253, 253,
1148 253, 255, 253, 253, 253, 941, 253, 257, 253, 258,
1149 253, 262, 175, 262, 175, 175, 175, 500, 175, 175,
1150 175, 262, 175, 262, 262, 175, 262, 272, 567, 1284,
1151 273, 941, 253, 253, 273, 660, 1285, 270, 1492, 1362,
1152 270, 565, 404, 259, 262, 175, 262, 262, 175, 262,
1153 662, 260, 400, 400, 400, 400, 400, 400, 403, 1220,
1154 274, 1493, 1496, 274, 275, 276, 175, 276, 275, 275,
1155 275, 275, 275, 275, 275, 277, 275, 275, 275, 278,
1157 275, 279, 275, 280, 275, 278, 278, 278, 278, 278,
1158 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
1159 278, 278, 278, 278, 278, 278, 275, 275, 278, 281,
1160 278, 278, 278, 278, 278, 278, 278, 282, 278, 278,
1161 283, 278, 278, 284, 278, 278, 285, 278, 278, 286,
1162 278, 278, 278, 288, 175, 288, 288, 175, 288, 175,
1163 175, 175, 175, 175, 175, 288, 175, 288, 1040, 289,
1164 660, 660, 289, 1502, 1041, 239, 1219, 1503, 239, 1504,
1165 1505, 289, 288, 175, 288, 288, 175, 288, 288, 175,
1166 288, 400, 400, 400, 400, 400, 400, 1461, 289, 1506,
1168 1507, 290, 660, 1510, 290, 291, 292, 175, 292, 291,
1169 291, 291, 291, 291, 291, 291, 293, 291, 291, 291,
1170 941, 291, 295, 291, 296, 291, 299, 175, 299, 299,
1171 175, 299, 941, 312, 175, 312, 312, 175, 312, 175,
1172 175, 175, 300, 567, 567, 300, 1498, 291, 291, 313,
1173 660, 1511, 313, 1512, 1416, 239, 560, 570, 297, 291,
1174 292, 175, 292, 291, 291, 291, 291, 291, 291, 291,
1175 293, 291, 291, 291, 1221, 291, 295, 291, 296, 291,
1176 175, 175, 175, 312, 175, 312, 1415, 312, 175, 312,
1177 312, 175, 312, 312, 175, 312, 239, 1513, 1067, 313,
1179 1514, 291, 291, 313, 1068, 1515, 314, 1069, 1516, 314,
1180 1517, 1070, 297, 301, 302, 175, 302, 301, 301, 301,
1181 301, 301, 301, 301, 303, 301, 301, 301, 1428, 301,
1182 305, 301, 306, 301, 324, 175, 324, 324, 175, 324,
1183 1429, 175, 175, 175, 175, 175, 175, 324, 175, 324,
1184 325, 404, 941, 325, 1522, 301, 301, 326, 510, 307,
1185 326, 1523, 1524, 325, 941, 1525, 308, 403, 309, 400,
1186 400, 400, 400, 400, 400, 310, 301, 302, 175, 302,
1187 301, 301, 301, 301, 301, 301, 301, 303, 301, 301,
1188 301, 1299, 301, 305, 301, 306, 301, 324, 175, 324,
1190 324, 175, 324, 1417, 324, 175, 324, 338, 175, 338,
1191 338, 175, 338, 325, 404, 1071, 327, 1526, 301, 301,
1192 327, 1072, 307, 339, 1073, 1530, 339, 1541, 1074, 308,
1193 403, 309, 400, 400, 400, 400, 400, 400, 310, 315,
1194 316, 175, 316, 315, 315, 315, 315, 315, 315, 315,
1195 317, 315, 315, 315, 1430, 315, 319, 315, 320, 315,
1196 175, 175, 175, 175, 175, 175, 1431, 338, 175, 338,
1197 338, 175, 338, 338, 175, 338, 326, 1542, 1543, 326,
1198 1544, 315, 315, 339, 404, 941, 339, 321, 1548, 340,
1199 400, 400, 400, 400, 400, 400, 400, 400, 400, 1549,
1201 403, 322, 315, 316, 175, 316, 315, 315, 315, 315,
1202 315, 315, 315, 317, 315, 315, 315, 1499, 315, 319,
1203 315, 320, 315, 338, 175, 338, 349, 175, 349, 1550,
1204 349, 175, 349, 361, 175, 361, 361, 175, 361, 340,
1205 404, 1551, 350, 1552, 315, 315, 350, 528, 1553, 362,
1206 321, 1555, 362, 400, 400, 400, 403, 400, 400, 400,
1207 400, 400, 400, 1556, 322, 328, 329, 175, 329, 328,
1208 328, 328, 328, 328, 328, 328, 330, 328, 328, 328,
1209 941, 328, 332, 328, 333, 328, 175, 175, 175, 175,
1210 175, 175, 1557, 361, 175, 361, 361, 175, 361, 361,
1212 175, 361, 326, 404, 1558, 326, 1569, 328, 328, 362,
1213 533, 1570, 362, 334, 1571, 363, 335, 941, 1462, 403,
1214 400, 400, 400, 678, 678, 678, 1572, 336, 328, 329,
1215 175, 329, 328, 328, 328, 328, 328, 328, 328, 330,
1216 328, 328, 328, 660, 328, 332, 328, 333, 328, 361,
1217 175, 361, 375, 175, 375, 1463, 375, 175, 375, 175,
1218 175, 175, 175, 175, 175, 363, 1573, 660, 376, 1574,
1219 328, 328, 376, 660, 1533, 377, 334, 1575, 377, 335,
1220 1576, 539, 539, 539, 539, 539, 539, 1577, 664, 1132,
1221 336, 341, 342, 175, 342, 341, 341, 341, 341, 341,
1223 341, 341, 343, 341, 341, 341, 1563, 341, 345, 341,
1224 346, 341, 375, 175, 375, 375, 175, 375, 1578, 375,
1225 175, 375, 375, 175, 375, 387, 175, 387, 376, 1581,
1226 1582, 376, 1583, 341, 341, 378, 540, 1584, 378, 1598,
1227 1599, 388, 660, 1600, 347, 341, 342, 175, 342, 341,
1228 341, 341, 341, 341, 341, 341, 343, 341, 341, 341,
1229 1601, 341, 345, 341, 346, 341, 387, 175, 387, 398,
1230 175, 398, 1593, 398, 175, 398, 573, 573, 573, 1602,
1231 1603, 409, 388, 1596, 1591, 399, 467, 341, 341, 399,
1232 700, 700, 700, 574, 701, 1604, 471, 702, 347, 351,
1234 352, 175, 352, 351, 351, 351, 351, 351, 351, 351,
1235 353, 351, 351, 351, 1605, 351, 355, 351, 356, 351,
1236 410, 469, 581, 581, 581, 1606, 411, 595, 595, 595,
1237 412, 604, 604, 604, 1607, 413, 613, 613, 613, 582,
1238 1608, 351, 351, 404, 596, 1614, 1610, 357, 605, 1614,
1239 358, 1609, 660, 614, 678, 678, 678, 1611, 1617, 403,
1240 421, 359, 351, 352, 175, 352, 351, 351, 351, 351,
1241 351, 351, 351, 353, 351, 351, 351, 1618, 351, 355,
1242 351, 356, 351, 1628, 422, 423, 618, 618, 618, 1612,
1243 1593, 429, 941, 942, 430, 635, 635, 635, 431, 1629,
1245 432, 1596, 428, 619, 351, 351, 404, 693, 693, 693,
1246 357, 1630, 636, 358, 679, 952, 952, 952, 693, 693,
1247 693, 1631, 403, 421, 359, 364, 365, 175, 365, 364,
1248 364, 364, 364, 364, 364, 364, 366, 364, 364, 364,
1249 1614, 364, 368, 364, 369, 364, 1633, 422, 423, 654,
1250 654, 654, 1614, 1634, 424, 1635, 1645, 425, 674, 674,
1251 674, 431, 1649, 436, 1650, 428, 655, 364, 364, 404,
1252 953, 953, 953, 1651, 1652, 370, 676, 371, 679, 372,
1253 1654, 678, 678, 678, 954, 403, 433, 373, 364, 365,
1254 175, 365, 364, 364, 364, 364, 364, 364, 364, 366,
1256 364, 364, 364, 1655, 364, 368, 364, 369, 364, 1656,
1257 422, 423, 573, 573, 573, 1657, 1658, 429, 1659, 1661,
1258 430, 674, 674, 674, 426, 660, 434, 1662, 435, 574,
1259 364, 364, 404, 957, 957, 957, 1663, 1664, 370, 676,
1260 371, 739, 372, 961, 961, 961, 1665, 1660, 403, 433,
1261 373, 379, 380, 175, 380, 379, 379, 379, 379, 379,
1262 379, 379, 381, 379, 379, 379, 1667, 379, 383, 379,
1263 384, 379, 1668, 422, 423, 677, 1593, 705, 705, 705,
1264 429, 1669, 1593, 430, 705, 705, 705, 456, 660, 437,
1265 1594, 438, 1670, 379, 379, 707, 1594, 404, 581, 581,
1267 581, 1671, 707, 710, 710, 710, 1666, 711, 1675, 1676,
1268 712, 1677, 1678, 403, 421, 582, 385, 379, 380, 175,
1269 380, 379, 379, 379, 379, 379, 379, 379, 381, 379,
1270 379, 379, 1683, 379, 383, 379, 384, 379, 422, 423,
1271 713, 713, 713, 660, 708, 429, 1684, 660, 425, 716,
1272 716, 716, 431, 1679, 437, 660, 438, 714, 1711, 379,
1273 379, 1468, 1672, 404, 1453, 660, 717, 731, 731, 731,
1274 660, 732, 660, 660, 733, 693, 693, 693, 1685, 403,
1275 471, 660, 385, 389, 390, 175, 390, 389, 389, 389,
1276 389, 389, 389, 389, 391, 389, 389, 389, 1689, 389,
1278 393, 389, 394, 389, 422, 423, 719, 719, 719, 660,
1279 1693, 429, 1703, 1690, 430, 727, 727, 727, 431, 1704,
1280 437, 660, 438, 1697, 721, 389, 389, 660, 660, 404,
1281 595, 595, 595, 729, 1452, 739, 395, 742, 742, 742,
1282 1451, 743, 660, 1691, 744, 403, 433, 596, 396, 389,
1283 390, 175, 390, 389, 389, 389, 389, 389, 389, 389,
1284 391, 389, 389, 389, 1694, 389, 393, 389, 394, 389,
1285 422, 469, 719, 719, 719, 1447, 1692, 429, 404, 1446,
1286 430, 727, 727, 727, 431, 660, 437, 1445, 438, 660,
1287 721, 389, 389, 660, 403, 433, 604, 604, 604, 729,
1289 660, 660, 395, 735, 735, 735, 735, 735, 735, 750,
1290 750, 750, 1444, 605, 396, 404, 722, 1695, 1442, 422,
1291 423, 737, 420, 1699, 737, 1696, 424, 752, 1441, 425,
1292 1701, 403, 421, 431, 1700, 472, 1440, 438, 404, 660,
1293 660, 730, 738, 750, 750, 750, 660, 613, 613, 613,
1294 757, 757, 757, 1439, 403, 433, 422, 423, 754, 754,
1295 754, 752, 755, 424, 614, 756, 425, 660, 759, 1702,
1296 426, 1438, 427, 660, 428, 404, 757, 757, 757, 422,
1297 423, 1698, 467, 768, 768, 768, 429, 404, 1437, 430,
1298 1707, 403, 468, 431, 759, 434, 1705, 438, 660, 660,
1300 753, 770, 1706, 403, 433, 618, 618, 618, 404, 1436,
1301 1435, 762, 762, 762, 1434, 763, 422, 469, 764, 768,
1302 768, 768, 619, 424, 403, 433, 425, 1709, 422, 423,
1303 431, 1433, 470, 760, 438, 429, 1432, 770, 500, 776,
1304 776, 776, 431, 1708, 437, 1425, 438, 660, 1424, 524,
1305 423, 772, 772, 772, 1423, 1711, 429, 778, 1402, 430,
1306 774, 774, 774, 456, 1401, 437, 660, 438, 773, 1400,
1307 1399, 771, 776, 776, 776, 1398, 1710, 775, 781, 781,
1308 781, 1714, 1714, 1714, 785, 785, 785, 787, 787, 787,
1309 778, 787, 787, 787, 1392, 782, 1391, 1390, 1714, 1389,
1311 1388, 786, 635, 635, 635, 789, 791, 791, 791, 789,
1312 792, 1387, 1385, 793, 794, 794, 794, 1384, 1383, 636,
1313 794, 794, 794, 798, 798, 798, 1382, 790, 783, 779,
1314 1381, 1380, 796, 1714, 1714, 1714, 1379, 1378, 796, 1377,
1315 799, 1376, 784, 802, 802, 802, 804, 804, 804, 1375,
1316 1714, 804, 804, 804, 1371, 812, 812, 812, 1370, 1369,
1317 803, 812, 812, 812, 806, 818, 818, 818, 1368, 806,
1318 1365, 1355, 797, 814, 818, 818, 818, 1344, 1343, 814,
1319 800, 1342, 1341, 820, 654, 654, 654, 1340, 1339, 822,
1320 822, 822, 820, 823, 801, 1338, 824, 826, 826, 826,
1322 1334, 655, 826, 826, 826, 674, 674, 674, 674, 674,
1323 674, 674, 674, 674, 1333, 828, 1332, 1331, 807, 1330,
1324 828, 815, 1329, 676, 1328, 1327, 676, 1326, 1324, 676,
1325 860, 860, 860, 1323, 821, 700, 700, 700, 1322, 701,
1326 1321, 1320, 702, 1714, 1714, 1714, 1319, 861, 705, 705,
1327 705, 705, 705, 705, 1318, 839, 1317, 705, 705, 705,
1328 1714, 1316, 829, 710, 710, 710, 707, 711, 1315, 707,
1329 712, 713, 713, 713, 1314, 707, 866, 866, 866, 1311,
1330 867, 1310, 1309, 868, 1306, 869, 869, 869, 714, 716,
1331 716, 716, 871, 871, 871, 1303, 872, 1302, 1296, 873,
1333 862, 864, 870, 719, 719, 719, 717, 719, 719, 719,
1334 719, 719, 719, 878, 878, 878, 727, 727, 727, 1294,
1335 1293, 721, 727, 727, 727, 721, 1287, 1286, 721, 1281,
1336 879, 727, 727, 727, 729, 731, 731, 731, 1280, 732,
1337 729, 1276, 733, 735, 735, 735, 735, 735, 735, 729,
1338 883, 883, 883, 742, 742, 742, 1270, 743, 1265, 1264,
1339 744, 737, 1263, 1262, 737, 1256, 875, 1255, 884, 750,
1340 750, 750, 750, 750, 750, 881, 750, 750, 750, 754,
1341 754, 754, 1254, 755, 1253, 1252, 756, 752, 1251, 1250,
1342 752, 757, 757, 757, 752, 757, 757, 757, 757, 757,
1344 757, 762, 762, 762, 1249, 763, 1248, 1247, 764, 759,
1345 768, 768, 768, 759, 1241, 1240, 759, 768, 768, 768,
1346 768, 768, 768, 772, 772, 772, 1239, 1238, 770, 900,
1347 900, 900, 1237, 901, 1235, 770, 902, 893, 770, 1233,
1348 773, 774, 774, 774, 903, 903, 903, 1232, 904, 1231,
1349 1230, 905, 776, 776, 776, 776, 776, 776, 775, 1227,
1350 1226, 894, 776, 776, 776, 781, 781, 781, 1222, 1217,
1351 778, 1215, 1214, 778, 1213, 1197, 899, 908, 908, 908,
1352 778, 909, 782, 1194, 910, 785, 785, 785, 913, 913,
1353 913, 1193, 914, 1192, 1191, 915, 787, 787, 787, 787,
1355 787, 787, 786, 787, 787, 787, 791, 791, 791, 1187,
1356 792, 1183, 1182, 793, 789, 1181, 1180, 789, 794, 794,
1357 794, 789, 794, 794, 794, 906, 794, 794, 794, 798,
1358 798, 798, 802, 802, 802, 1179, 796, 804, 804, 804,
1359 796, 918, 918, 918, 796, 919, 799, 1178, 920, 803,
1360 923, 923, 923, 1177, 924, 806, 1176, 925, 804, 804,
1361 804, 1172, 1169, 916, 1168, 804, 804, 804, 928, 928,
1362 928, 812, 812, 812, 1167, 1164, 806, 812, 812, 812,
1363 1163, 1159, 917, 806, 1158, 929, 812, 812, 812, 814,
1364 818, 818, 818, 1155, 1154, 814, 818, 818, 818, 818,
1366 818, 818, 1153, 1150, 814, 822, 822, 822, 820, 823,
1367 1149, 1146, 824, 1145, 820, 1144, 1143, 820, 826, 826,
1368 826, 1142, 1141, 926, 826, 826, 826, 826, 826, 826,
1369 1139, 1138, 940, 940, 940, 1135, 828, 674, 674, 674,
1370 1122, 1120, 828, 932, 1119, 828, 962, 962, 962, 935,
1371 941, 942, 860, 860, 860, 676, 1118, 970, 970, 970,
1372 954, 971, 1106, 1102, 972, 705, 705, 705, 1098, 861,
1373 866, 866, 866, 1097, 867, 1096, 1092, 868, 869, 869,
1374 869, 1091, 1084, 707, 937, 977, 977, 977, 1083, 978,
1375 1082, 1081, 979, 1080, 1079, 870, 871, 871, 871, 948,
1377 872, 1066, 1064, 873, 719, 719, 719, 982, 982, 982,
1378 1063, 975, 878, 878, 878, 1061, 984, 984, 984, 1060,
1379 985, 1057, 721, 986, 987, 987, 987, 1054, 1049, 879,
1380 727, 727, 727, 1048, 883, 883, 883, 996, 996, 996,
1381 1047, 988, 998, 998, 998, 750, 750, 750, 729, 1046,
1382 1045, 981, 884, 1044, 997, 757, 757, 757, 1043, 999,
1383 1007, 1007, 1007, 752, 1039, 768, 768, 768, 900, 900,
1384 900, 1038, 901, 759, 1037, 902, 989, 1008, 941, 1027,
1385 903, 903, 903, 770, 904, 1000, 1025, 905, 776, 776,
1386 776, 962, 962, 962, 908, 908, 908, 1024, 909, 1020,
1388 1018, 910, 1017, 1009, 1014, 1012, 778, 1002, 913, 913,
1389 913, 1013, 914, 1006, 1005, 915, 1004, 1003, 1010, 787,
1390 787, 787, 794, 794, 794, 918, 918, 918, 1001, 919,
1391 995, 994, 920, 993, 923, 923, 923, 789, 924, 992,
1392 796, 925, 804, 804, 804, 928, 928, 928, 991, 990,
1393 1011, 1021, 1021, 1021, 983, 1022, 980, 976, 1023, 974,
1394 806, 973, 929, 812, 812, 812, 1028, 1028, 1028, 818,
1395 818, 818, 1031, 1031, 1031, 1016, 1015, 826, 826, 826,
1396 969, 814, 968, 1029, 967, 966, 1019, 820, 965, 1032,
1397 940, 940, 940, 964, 963, 828, 674, 674, 674, 952,
1399 952, 952, 953, 953, 953, 957, 957, 957, 941, 1026,
1400 1050, 1050, 1050, 960, 676, 1052, 1052, 1052, 961, 961,
1401 961, 962, 962, 962, 1055, 1055, 1055, 959, 958, 1053,
1402 956, 955, 1030, 951, 950, 1033, 949, 947, 1035, 1050,
1403 1050, 1050, 1058, 1058, 1058, 1042, 1055, 1055, 1055, 1058,
1404 1058, 1058, 946, 945, 1036, 944, 1053, 970, 970, 970,
1405 943, 971, 936, 1059, 972, 705, 705, 705, 934, 933,
1406 1051, 977, 977, 977, 931, 978, 930, 927, 979, 719,
1407 719, 719, 922, 707, 1056, 982, 982, 982, 984, 984,
1408 984, 921, 985, 912, 911, 986, 907, 721, 898, 1056,
1410 987, 987, 987, 1075, 1075, 1075, 1051, 1076, 897, 896,
1411 1077, 895, 892, 1062, 727, 727, 727, 988, 996, 996,
1412 996, 1085, 1085, 1085, 891, 1086, 890, 889, 1087, 998,
1413 998, 998, 729, 888, 887, 997, 1065, 1088, 1088, 1088,
1414 886, 1089, 885, 882, 1090, 880, 999, 1093, 1093, 1093,
1415 757, 757, 757, 1007, 1007, 1007, 1099, 1099, 1099, 877,
1416 1100, 874, 1078, 1101, 865, 1094, 863, 859, 759, 858,
1417 1008, 1103, 1103, 1103, 776, 776, 776, 1107, 1107, 1107,
1418 1109, 1109, 1109, 787, 787, 787, 794, 794, 794, 1104,
1419 857, 856, 778, 855, 1108, 854, 852, 1110, 1095, 851,
1421 1112, 789, 850, 849, 796, 848, 1113, 1113, 1113, 1115,
1422 1115, 1115, 804, 804, 804, 845, 844, 1021, 1021, 1021,
1423 843, 1022, 1105, 1114, 1023, 842, 1116, 812, 812, 812,
1424 806, 1028, 1028, 1028, 1123, 1123, 1123, 841, 1124, 840,
1425 838, 1125, 818, 818, 818, 814, 1111, 837, 1029, 1031,
1426 1031, 1031, 1127, 1127, 1127, 836, 1128, 835, 834, 1129,
1427 820, 1130, 1130, 1130, 833, 832, 1032, 1136, 1136, 1136,
1428 674, 674, 674, 1117, 831, 1121, 1147, 1147, 1147, 1131,
1429 1050, 1050, 1050, 660, 1137, 1148, 1148, 1148, 676, 1052,
1430 1052, 1052, 1055, 1055, 1055, 825, 817, 1126, 1151, 1151,
1432 1151, 1152, 1152, 1152, 1058, 1058, 1058, 1156, 1156, 1156,
1433 719, 719, 719, 1161, 1161, 1161, 1075, 1075, 1075, 816,
1434 1076, 811, 810, 1077, 809, 1157, 808, 1140, 721, 780,
1435 1162, 727, 727, 727, 1174, 1174, 1174, 1085, 1085, 1085,
1436 767, 1086, 766, 765, 1087, 1173, 1088, 1088, 1088, 729,
1437 1089, 1175, 761, 1090, 1184, 1184, 1184, 1093, 1093, 1093,
1438 757, 757, 757, 749, 748, 1160, 1188, 1188, 1188, 747,
1439 746, 1185, 1099, 1099, 1099, 1094, 1100, 745, 759, 1101,
1440 1103, 1103, 1103, 1189, 1195, 1195, 1195, 1107, 1107, 1107,
1441 1198, 1198, 1198, 741, 1199, 740, 734, 1200, 1104, 1109,
1443 1109, 1109, 1196, 726, 1108, 725, 1201, 1201, 1201, 1190,
1444 1202, 724, 723, 1203, 718, 715, 1110, 787, 787, 787,
1445 1186, 794, 794, 794, 1113, 1113, 1113, 1206, 1206, 1206,
1446 709, 1207, 704, 703, 1208, 789, 1115, 1115, 1115, 796,
1447 699, 1114, 1209, 1209, 1209, 698, 1210, 697, 696, 1211,
1448 804, 804, 804, 1116, 812, 812, 812, 1123, 1123, 1123,
1449 695, 1124, 694, 692, 1125, 691, 690, 1205, 806, 818,
1450 818, 818, 814, 1127, 1127, 1127, 689, 1128, 688, 1204,
1451 1129, 1130, 1130, 1130, 1136, 1136, 1136, 820, 1223, 1223,
1452 1223, 687, 1224, 686, 685, 1225, 674, 674, 674, 1131,
1454 684, 1137, 1229, 1229, 1229, 1234, 1234, 1234, 1147, 1147,
1455 1147, 1212, 683, 682, 676, 1216, 681, 1218, 1148, 1148,
1456 1148, 1236, 1236, 1236, 1151, 1151, 1151, 1152, 1152, 1152,
1457 1156, 1156, 1156, 1242, 1242, 1242, 1161, 1161, 1161, 1244,
1458 1244, 1244, 680, 1245, 673, 672, 1246, 671, 1157, 670,
1459 669, 1243, 668, 1162, 667, 666, 1228, 727, 727, 727,
1460 1174, 1174, 1174, 1258, 1258, 1258, 663, 1259, 661, 660,
1461 1260, 1261, 1261, 1261, 658, 729, 656, 1175, 1184, 1184,
1462 1184, 1271, 1271, 1271, 653, 1272, 651, 650, 1273, 1274,
1463 1274, 1274, 1188, 1188, 1188, 1185, 649, 1277, 1277, 1277,
1465 647, 1278, 646, 1257, 1279, 645, 644, 1275, 643, 1189,
1466 1195, 1195, 1195, 1198, 1198, 1198, 641, 1199, 640, 639,
1467 1200, 638, 1201, 1201, 1201, 634, 1202, 632, 1196, 1203,
1468 787, 787, 787, 794, 794, 794, 1206, 1206, 1206, 631,
1469 1207, 630, 629, 1208, 628, 1209, 1209, 1209, 789, 1210,
1470 626, 796, 1211, 804, 804, 804, 1291, 1291, 1291, 812,
1471 812, 812, 818, 818, 818, 1298, 1298, 1298, 1301, 1301,
1472 1301, 806, 625, 1292, 1229, 1229, 1229, 814, 1288, 624,
1473 820, 622, 621, 660, 620, 1223, 1223, 1223, 1290, 1224,
1474 617, 616, 1225, 612, 610, 1289, 674, 674, 674, 1305,
1476 1305, 1305, 1307, 1307, 1307, 1308, 1308, 1308, 1234, 1234,
1477 1234, 1236, 1236, 1236, 676, 1312, 1312, 1312, 1297, 609,
1478 1295, 1242, 1242, 1242, 1244, 1244, 1244, 608, 1245, 607,
1479 606, 1246, 1313, 603, 727, 727, 727, 602, 601, 1243,
1480 1258, 1258, 1258, 600, 1259, 599, 597, 1260, 1261, 1261,
1481 1261, 1304, 729, 1271, 1271, 1271, 594, 1272, 592, 591,
1482 1273, 1274, 1274, 1274, 1335, 1335, 1335, 1277, 1277, 1277,
1483 590, 1278, 588, 586, 1279, 1345, 1345, 1345, 585, 1275,
1484 584, 1336, 1346, 1346, 1346, 794, 794, 794, 804, 804,
1485 804, 1325, 1291, 1291, 1291, 1350, 1350, 1350, 583, 1351,
1487 1347, 580, 1352, 796, 579, 578, 806, 1337, 575, 1292,
1488 1353, 1353, 1353, 1356, 1356, 1356, 1358, 1358, 1358, 818,
1489 818, 818, 1298, 1298, 1298, 572, 571, 1354, 1301, 1301,
1490 1301, 1357, 1363, 1363, 1363, 569, 566, 820, 563, 562,
1491 660, 1348, 1366, 1366, 1366, 1349, 1305, 1305, 1305, 1364,
1492 1307, 1307, 1307, 1308, 1308, 1308, 1312, 1312, 1312, 561,
1493 1367, 1372, 1372, 1372, 556, 1373, 555, 554, 1374, 727,
1494 727, 727, 553, 1313, 1393, 1393, 1393, 1335, 1335, 1335,
1495 1360, 1359, 1395, 1395, 1395, 552, 1396, 729, 551, 1397,
1496 549, 1394, 548, 547, 1336, 1403, 1403, 1403, 1345, 1345,
1498 1345, 1346, 1346, 1346, 1405, 1405, 1405, 546, 804, 804,
1499 804, 545, 1404, 1350, 1350, 1350, 544, 1351, 543, 1347,
1500 1352, 538, 1406, 535, 537, 1386, 806, 1353, 1353, 1353,
1501 1408, 1408, 1408, 532, 1409, 531, 529, 1410, 1411, 1411,
1502 1411, 1356, 1356, 1356, 1354, 1358, 1358, 1358, 1413, 1413,
1503 1413, 1363, 1363, 1363, 527, 1412, 1418, 1418, 1418, 1357,
1504 1419, 525, 523, 1420, 522, 521, 1414, 520, 1364, 519,
1505 517, 1407, 1421, 1421, 1421, 1366, 1366, 1366, 1426, 1426,
1506 1426, 1372, 1372, 1372, 516, 1373, 515, 514, 1374, 1422,
1507 727, 727, 727, 1367, 513, 1427, 1393, 1393, 1393, 1448,
1509 1448, 1448, 511, 1449, 509, 507, 1450, 506, 729, 505,
1510 1395, 1395, 1395, 1394, 1396, 504, 503, 1397, 1403, 1403,
1511 1403, 1454, 1454, 1454, 501, 1455, 499, 498, 1456, 1405,
1512 1405, 1405, 804, 804, 804, 1404, 1408, 1408, 1408, 497,
1513 1409, 495, 494, 1410, 491, 490, 1443, 1406, 489, 487,
1514 806, 1411, 1411, 1411, 1458, 1458, 1458, 485, 1459, 483,
1515 482, 1460, 1413, 1413, 1413, 1418, 1418, 1418, 1412, 1419,
1516 481, 480, 1420, 1421, 1421, 1421, 479, 1464, 1464, 1464,
1517 1414, 1465, 478, 475, 1466, 1467, 1467, 1467, 473, 467,
1518 1422, 1426, 1426, 1426, 1457, 1470, 1470, 1470, 433, 1471,
1520 466, 465, 1472, 727, 727, 727, 463, 461, 1427, 1487,
1521 1487, 1487, 1488, 1488, 1488, 1448, 1448, 1448, 460, 1449,
1522 459, 729, 1450, 1494, 1494, 1494, 1454, 1454, 1454, 1489,
1523 1455, 457, 455, 1456, 804, 804, 804, 1458, 1458, 1458,
1524 1495, 1459, 454, 450, 1460, 1500, 1500, 1500, 1467, 1467,
1525 1467, 1486, 806, 449, 447, 1490, 446, 1464, 1464, 1464,
1526 443, 1465, 1501, 941, 1466, 1470, 1470, 1470, 442, 1471,
1527 441, 439, 1472, 1508, 1508, 1508, 727, 727, 727, 1487,
1528 1487, 1487, 1497, 1488, 1488, 1488, 1494, 1494, 1494, 419,
1529 1509, 1519, 1519, 1519, 729, 1520, 418, 416, 1521, 414,
1531 1489, 408, 407, 1495, 1527, 1527, 1527, 408, 1528, 407,
1532 406, 1529, 1531, 1531, 1531, 1534, 1534, 1534, 1500, 1500,
1533 1500, 405, 1518, 1714, 1536, 1536, 1536, 1714, 1537, 1714,
1534 1532, 1538, 1535, 941, 1714, 1501, 941, 1539, 1539, 1539,
1535 1714, 1714, 941, 1540, 1540, 1540, 1508, 1508, 1508, 1545,
1536 1545, 1545, 1714, 1546, 1714, 1714, 1547, 727, 727, 727,
1537 1519, 1519, 1519, 1509, 1520, 1714, 1714, 1521, 1559, 1559,
1538 1559, 1714, 1527, 1527, 1527, 729, 1528, 1714, 1714, 1529,
1539 1561, 1561, 1561, 1714, 1714, 1560, 1531, 1531, 1531, 1534,
1540 1534, 1534, 1564, 1564, 1564, 1714, 1565, 1562, 1714, 1566,
1542 1539, 1539, 1539, 1714, 1532, 1714, 1535, 941, 1714, 1714,
1543 941, 1536, 1536, 1536, 1714, 1537, 1714, 1714, 1538, 1554,
1544 1540, 1540, 1540, 1714, 1579, 1579, 1579, 1714, 1714, 941,
1545 939, 939, 939, 939, 939, 939, 939, 939, 939, 1714,
1546 1714, 939, 1580, 1559, 1559, 1559, 939, 939, 939, 941,
1547 939, 1545, 1545, 1545, 1714, 1546, 1714, 1714, 1547, 1714,
1548 1560, 1585, 1585, 1585, 1714, 1586, 1714, 1714, 1587, 1561,
1549 1561, 1561, 939, 939, 939, 939, 939, 939, 939, 939,
1550 939, 939, 939, 1714, 1714, 939, 1562, 1714, 1714, 1714,
1551 939, 939, 939, 941, 939, 1588, 1588, 1588, 1714, 1589,
1553 1714, 1714, 1590, 1564, 1564, 1564, 1714, 1565, 1714, 1714,
1554 1566, 1714, 1714, 1579, 1579, 1579, 939, 939, 1616, 1616,
1555 1616, 941, 939, 939, 939, 939, 939, 1597, 939, 939,
1556 939, 1580, 1714, 939, 1714, 1714, 941, 942, 939, 939,
1557 939, 941, 939, 1585, 1585, 1585, 1714, 1586, 1714, 1714,
1558 1587, 1588, 1588, 1588, 1714, 1589, 1714, 1714, 1590, 1619,
1559 1619, 1619, 1714, 1714, 939, 939, 939, 939, 939, 939,
1560 939, 939, 939, 939, 1597, 1714, 1620, 939, 1621, 1621,
1561 1621, 1714, 939, 939, 939, 941, 939, 1623, 1623, 1623,
1562 1626, 1626, 1626, 1714, 1714, 1622, 1632, 1632, 1632, 1616,
1564 1616, 1616, 1714, 1714, 1624, 1714, 1714, 1627, 939, 939,
1565 1619, 1619, 1619, 1714, 660, 1714, 1714, 941, 1636, 1636,
1566 1636, 1714, 1637, 1714, 1714, 1638, 1714, 1620, 1714, 1714,
1567 1625, 1621, 1621, 1621, 1639, 1639, 1639, 1714, 1640, 1714,
1568 1714, 1641, 1623, 1623, 1623, 1714, 1714, 1035, 1622, 1642,
1569 1642, 1642, 1714, 1643, 1714, 1714, 1644, 1714, 1714, 1624,
1570 1626, 1626, 1626, 1646, 1646, 1646, 1714, 1647, 1714, 1714,
1571 1648, 1632, 1632, 1632, 1636, 1636, 1636, 1627, 1637, 1714,
1572 1714, 1638, 1714, 1639, 1639, 1639, 1714, 1640, 1714, 660,
1573 1641, 1642, 1642, 1642, 1714, 1643, 1714, 1714, 1644, 1646,
1575 1646, 1646, 1714, 1647, 1714, 1714, 1648, 1653, 1673, 1673,
1576 1673, 1673, 1673, 1673, 1680, 1680, 1680, 1714, 1681, 1714,
1577 1714, 1682, 1680, 1680, 1680, 1674, 1681, 1714, 1674, 1682,
1578 1686, 1686, 1686, 1686, 1686, 1686, 1714, 1687, 1714, 1714,
1579 1688, 1712, 1712, 1712, 1712, 1712, 1712, 1714, 660, 1714,
1580 1714, 660, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1713,
1581 1714, 1714, 1713, 172, 172, 172, 172, 172, 172, 172,
1582 172, 172, 173, 173, 173, 173, 173, 173, 173, 173,
1583 173, 178, 178, 178, 178, 178, 178, 178, 178, 178,
1584 181, 181, 181, 181, 181, 181, 181, 181, 181, 184,
1586 184, 184, 184, 184, 184, 184, 184, 184, 187, 187,
1587 187, 187, 187, 187, 187, 187, 187, 194, 194, 194,
1588 194, 194, 194, 194, 194, 194, 202, 202, 202, 202,
1589 202, 202, 202, 202, 202, 207, 207, 207, 207, 207,
1590 207, 207, 207, 207, 218, 218, 218, 218, 218, 218,
1591 218, 218, 218, 229, 229, 229, 229, 229, 229, 229,
1592 229, 229, 236, 236, 236, 236, 236, 236, 236, 236,
1593 236, 244, 244, 244, 244, 244, 244, 244, 244, 244,
1594 250, 250, 250, 250, 250, 250, 250, 250, 250, 256,
1595 256, 256, 256, 256, 256, 256, 256, 256, 261, 261,
1597 261, 261, 261, 261, 261, 261, 261, 287, 287, 287,
1598 287, 287, 287, 287, 287, 287, 294, 294, 294, 294,
1599 294, 294, 294, 294, 294, 298, 298, 298, 298, 298,
1600 298, 298, 298, 298, 304, 304, 304, 304, 304, 304,
1601 304, 304, 304, 311, 311, 311, 311, 311, 311, 311,
1602 311, 311, 318, 318, 318, 318, 318, 318, 318, 318,
1603 318, 323, 323, 323, 323, 323, 323, 323, 323, 323,
1604 331, 331, 331, 331, 331, 331, 331, 331, 331, 337,
1605 337, 337, 337, 337, 337, 337, 337, 337, 344, 344,
1606 344, 344, 344, 344, 344, 344, 344, 348, 348, 348,
1608 348, 348, 348, 348, 348, 348, 354, 354, 354, 354,
1609 354, 354, 354, 354, 354, 360, 360, 360, 360, 360,
1610 360, 360, 360, 360, 367, 367, 367, 367, 367, 367,
1611 367, 367, 367, 374, 374, 374, 374, 374, 374, 374,
1612 374, 374, 382, 382, 382, 382, 382, 382, 382, 382,
1613 382, 386, 386, 386, 386, 386, 386, 386, 386, 386,
1614 392, 392, 392, 392, 392, 392, 392, 392, 392, 397,
1615 397, 397, 397, 397, 397, 397, 397, 397, 417, 417,
1616 417, 1714, 1714, 1714, 417, 440, 440, 440, 1714, 1714,
1617 1714, 440, 448, 448, 448, 1714, 1714, 1714, 448, 458,
1619 458, 458, 1714, 1714, 1714, 458, 464, 464, 464, 1714,
1620 1714, 1714, 464, 474, 474, 474, 1714, 1714, 1714, 474,
1621 484, 484, 484, 1714, 1714, 1714, 484, 488, 488, 488,
1622 1714, 1714, 1714, 488, 496, 496, 496, 1714, 1714, 1714,
1623 496, 502, 502, 502, 1714, 1714, 1714, 502, 508, 508,
1624 508, 1714, 1714, 1714, 508, 512, 512, 512, 1714, 1714,
1625 1714, 512, 518, 518, 518, 1714, 1714, 1714, 518, 526,
1626 526, 526, 1714, 1714, 1714, 526, 530, 530, 530, 1714,
1627 1714, 1714, 530, 534, 534, 534, 534, 534, 534, 534,
1628 1714, 534, 550, 1714, 1714, 1714, 550, 577, 1714, 1714,
1630 1714, 577, 587, 1714, 1714, 1714, 587, 593, 1714, 1714,
1631 1714, 593, 598, 1714, 1714, 1714, 598, 611, 1714, 1714,
1632 1714, 611, 615, 1714, 1714, 1714, 615, 623, 1714, 1714,
1633 1714, 623, 627, 1714, 1714, 1714, 627, 633, 1714, 1714,
1634 1714, 633, 637, 1714, 1714, 1714, 637, 512, 512, 512,
1635 1714, 1714, 1714, 512, 642, 1714, 1714, 1714, 642, 518,
1636 518, 518, 1714, 1714, 1714, 518, 648, 1714, 1714, 1714,
1637 648, 526, 526, 526, 1714, 1714, 1714, 526, 652, 1714,
1638 1714, 1714, 652, 530, 530, 530, 1714, 1714, 1714, 530,
1639 657, 1714, 1714, 1714, 657, 659, 659, 659, 659, 659,
1641 659, 659, 659, 659, 665, 1714, 1714, 1714, 1714, 665,
1642 417, 417, 417, 1714, 1714, 1714, 417, 675, 675, 675,
1643 675, 1714, 1714, 675, 675, 440, 440, 440, 1714, 1714,
1644 1714, 440, 706, 706, 706, 706, 1714, 1714, 706, 706,
1645 448, 448, 448, 1714, 1714, 1714, 448, 720, 720, 720,
1646 720, 1714, 1714, 720, 720, 458, 458, 458, 1714, 1714,
1647 1714, 458, 728, 728, 728, 728, 1714, 1714, 728, 728,
1648 464, 464, 464, 1714, 1714, 1714, 464, 736, 736, 736,
1649 736, 1714, 1714, 736, 736, 474, 474, 474, 1714, 1714,
1650 1714, 474, 751, 751, 751, 751, 1714, 1714, 751, 751,
1652 758, 758, 758, 758, 1714, 1714, 758, 758, 488, 488,
1653 488, 1714, 1714, 1714, 488, 769, 769, 769, 769, 1714,
1654 1714, 769, 769, 496, 496, 496, 496, 1714, 496, 1714,
1655 496, 777, 777, 777, 777, 1714, 1714, 777, 777, 502,
1656 502, 502, 502, 1714, 502, 1714, 502, 788, 788, 788,
1657 788, 1714, 1714, 788, 788, 795, 795, 795, 795, 1714,
1658 1714, 795, 795, 512, 512, 512, 512, 1714, 512, 1714,
1659 512, 805, 805, 805, 805, 1714, 1714, 805, 805, 518,
1660 518, 518, 1714, 1714, 1714, 518, 813, 813, 813, 813,
1661 1714, 1714, 813, 813, 526, 526, 526, 1714, 1714, 1714,
1663 526, 819, 819, 819, 819, 1714, 1714, 819, 819, 530,
1664 530, 530, 1714, 1714, 1714, 530, 827, 827, 827, 827,
1665 1714, 1714, 827, 827, 659, 659, 659, 659, 659, 659,
1666 659, 659, 659, 665, 1714, 665, 1714, 1714, 665, 417,
1667 417, 417, 1714, 1714, 1714, 417, 675, 675, 675, 675,
1668 1714, 1714, 675, 675, 440, 440, 440, 440, 1714, 440,
1669 1714, 440, 706, 706, 706, 706, 1714, 1714, 706, 706,
1670 448, 448, 448, 1714, 1714, 1714, 448, 720, 720, 720,
1671 720, 1714, 1714, 720, 720, 458, 458, 458, 1714, 1714,
1672 1714, 458, 728, 728, 728, 728, 1714, 1714, 728, 728,
1674 464, 464, 464, 1714, 1714, 1714, 464, 736, 736, 736,
1675 736, 1714, 1714, 736, 736, 474, 474, 474, 1714, 1714,
1676 1714, 474, 751, 751, 751, 751, 1714, 1714, 751, 751,
1677 758, 758, 758, 758, 1714, 1714, 758, 758, 488, 488,
1678 488, 1714, 1714, 1714, 488, 769, 769, 769, 769, 1714,
1679 1714, 769, 769, 777, 777, 777, 777, 1714, 1714, 777,
1680 777, 502, 502, 502, 1714, 1714, 1714, 502, 788, 788,
1681 788, 788, 1714, 1714, 788, 788, 795, 795, 795, 795,
1682 1714, 1714, 795, 795, 512, 512, 512, 1714, 1714, 1714,
1683 512, 805, 805, 805, 805, 1714, 1714, 805, 805, 518,
1685 518, 518, 1714, 1714, 1714, 518, 813, 813, 813, 813,
1686 1714, 1714, 813, 813, 526, 526, 526, 1714, 1714, 1714,
1687 526, 819, 819, 819, 819, 1714, 1714, 819, 819, 530,
1688 530, 530, 1714, 1714, 1714, 530, 827, 827, 827, 827,
1689 1714, 1714, 827, 827, 659, 659, 659, 659, 659, 659,
1690 659, 659, 659, 939, 939, 939, 939, 939, 939, 939,
1691 939, 939, 417, 417, 417, 1714, 1714, 1714, 417, 675,
1692 675, 675, 675, 1714, 1714, 675, 675, 440, 440, 440,
1693 1714, 1714, 1714, 440, 706, 706, 706, 706, 1714, 1714,
1694 706, 706, 448, 448, 448, 1714, 1714, 1714, 448, 720,
1696 720, 720, 720, 1714, 1714, 720, 720, 458, 458, 458,
1697 1714, 1714, 1714, 458, 728, 728, 728, 728, 1714, 1714,
1698 728, 728, 464, 464, 464, 1714, 1714, 1714, 464, 1567,
1699 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1568, 1568,
1700 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1592, 1592, 1592,
1701 1592, 1592, 1592, 1592, 1592, 1592, 1595, 1595, 1595, 1595,
1702 1595, 1595, 1595, 1595, 1595, 1613, 1613, 1613, 1613, 1613,
1703 1613, 1613, 1613, 1613, 1615, 1615, 1615, 1615, 1615, 1615,
1704 1615, 1615, 1615, 171, 1714, 1714, 1714, 1714, 1714, 1714,
1705 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1707 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1708 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1709 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1710 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1711 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
1715 static yyconst flex_int16_t yy_chk[5854] =
1717 0, 3, 3, 3, 4, 4, 4, 5, 5, 5,
1718 6, 6, 6, 7, 7, 7, 11, 3, 9, 12,
1719 4, 10, 238, 5, 0, 9, 6, 401, 10, 7,
1720 8, 8, 8, 176, 11, 13, 13, 12, 14, 14,
1721 13, 13, 401, 14, 14, 177, 8, 17, 17, 176,
1722 13, 15, 15, 14, 15, 180, 15, 16, 16, 266,
1723 16, 177, 16, 18, 18, 272, 15, 19, 19, 19,
1724 238, 180, 16, 20, 20, 20, 23, 23, 23, 24,
1725 24, 24, 270, 19, 25, 25, 25, 685, 17, 20,
1726 272, 410, 23, 266, 410, 24, 174, 174, 174, 685,
1728 25, 175, 175, 175, 18, 21, 21, 21, 21, 21,
1729 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1730 289, 21, 21, 21, 21, 21, 26, 26, 26, 27,
1731 27, 27, 270, 28, 28, 28, 29, 29, 29, 30,
1732 30, 30, 26, 310, 282, 27, 203, 21, 21, 28,
1733 219, 1425, 29, 282, 310, 30, 179, 179, 179, 200,
1734 200, 200, 203, 208, 208, 208, 219, 214, 289, 214,
1735 21, 214, 21, 22, 22, 22, 22, 22, 22, 22,
1736 22, 22, 22, 22, 22, 22, 22, 22, 1428, 22,
1737 22, 22, 22, 22, 31, 31, 31, 32, 32, 32,
1739 313, 33, 33, 33, 34, 34, 34, 35, 35, 35,
1740 31, 1069, 376, 32, 234, 22, 22, 33, 234, 1069,
1741 34, 230, 234, 35, 325, 36, 36, 36, 37, 37,
1742 37, 38, 38, 38, 39, 39, 39, 230, 22, 662,
1743 22, 36, 1299, 662, 37, 198, 376, 38, 313, 245,
1744 39, 40, 40, 40, 41, 41, 41, 42, 42, 42,
1745 376, 198, 216, 216, 216, 245, 426, 40, 325, 1036,
1746 41, 1299, 426, 42, 43, 43, 43, 43, 43, 43,
1747 43, 43, 43, 43, 43, 43, 43, 43, 43, 444,
1748 43, 43, 43, 43, 43, 49, 49, 49, 1429, 1036,
1750 198, 830, 50, 50, 50, 51, 51, 51, 45, 45,
1751 257, 49, 279, 45, 46, 46, 43, 43, 50, 46,
1752 830, 51, 444, 45, 43, 1430, 257, 43, 279, 46,
1753 227, 227, 227, 43, 44, 44, 44, 44, 44, 44,
1754 44, 44, 44, 44, 44, 44, 44, 44, 44, 45,
1755 44, 44, 44, 44, 44, 46, 52, 52, 52, 53,
1756 53, 53, 54, 54, 54, 55, 55, 55, 431, 56,
1757 56, 56, 52, 224, 431, 53, 44, 44, 54, 1181,
1758 224, 55, 456, 1035, 44, 56, 1181, 44, 456, 224,
1759 237, 237, 237, 44, 47, 47, 47, 47, 47, 47,
1761 47, 47, 47, 47, 47, 47, 47, 47, 47, 211,
1762 47, 47, 47, 47, 47, 59, 59, 59, 60, 60,
1763 60, 1035, 63, 63, 63, 64, 64, 64, 65, 65,
1764 65, 59, 252, 427, 60, 1431, 47, 47, 63, 252,
1765 211, 64, 432, 211, 65, 47, 427, 47, 252, 211,
1766 47, 211, 242, 242, 242, 432, 47, 48, 48, 48,
1767 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
1768 48, 48, 691, 48, 48, 48, 48, 48, 66, 66,
1769 66, 67, 67, 67, 691, 68, 68, 68, 69, 69,
1770 69, 70, 70, 70, 66, 295, 300, 67, 1073, 48,
1772 48, 68, 305, 300, 69, 1432, 1073, 70, 48, 1433,
1773 48, 295, 300, 48, 251, 251, 251, 339, 305, 48,
1774 57, 57, 57, 57, 57, 57, 57, 57, 57, 57,
1775 57, 57, 57, 57, 57, 723, 57, 57, 57, 57,
1776 57, 71, 71, 71, 72, 72, 72, 723, 73, 73,
1777 73, 74, 74, 74, 75, 75, 75, 71, 1434, 1435,
1778 72, 339, 57, 57, 73, 319, 332, 74, 1221, 57,
1779 75, 254, 254, 254, 57, 262, 262, 262, 276, 276,
1780 276, 319, 332, 57, 58, 58, 58, 58, 58, 58,
1781 58, 58, 58, 58, 58, 58, 58, 58, 58, 1436,
1783 58, 58, 58, 58, 58, 76, 76, 76, 77, 77,
1784 77, 1221, 78, 78, 78, 79, 79, 79, 80, 80,
1785 80, 76, 1438, 1439, 77, 1182, 58, 58, 78, 345,
1786 355, 79, 1182, 58, 80, 288, 288, 288, 58, 292,
1787 292, 292, 299, 299, 299, 345, 355, 58, 61, 61,
1788 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
1789 61, 61, 61, 1440, 61, 61, 61, 61, 61, 81,
1790 81, 81, 82, 82, 82, 938, 83, 83, 83, 84,
1791 84, 84, 85, 85, 85, 81, 434, 436, 82, 1192,
1792 61, 61, 83, 362, 1441, 84, 1192, 938, 85, 434,
1794 436, 61, 302, 302, 302, 312, 312, 312, 1446, 61,
1795 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
1796 62, 62, 62, 62, 62, 1300, 62, 62, 62, 62,
1797 62, 86, 86, 86, 87, 87, 87, 362, 88, 88,
1798 88, 89, 89, 89, 90, 90, 90, 86, 437, 1193,
1799 87, 1133, 62, 62, 88, 536, 1193, 89, 1447, 1300,
1800 90, 437, 368, 62, 91, 91, 91, 92, 92, 92,
1801 536, 62, 316, 316, 316, 324, 324, 324, 368, 1133,
1802 91, 1451, 1453, 92, 93, 93, 93, 93, 93, 93,
1803 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
1805 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
1806 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
1807 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
1808 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
1809 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
1810 93, 93, 93, 95, 95, 95, 96, 96, 96, 97,
1811 97, 97, 98, 98, 98, 99, 99, 99, 947, 95,
1812 1132, 1415, 96, 1468, 947, 97, 1132, 1469, 98, 1473,
1813 1474, 99, 100, 100, 100, 101, 101, 101, 102, 102,
1814 102, 329, 329, 329, 338, 338, 338, 1415, 100, 1475,
1816 1476, 101, 1461, 1478, 102, 103, 103, 103, 103, 103,
1817 103, 103, 103, 103, 103, 103, 103, 103, 103, 103,
1818 1361, 103, 103, 103, 103, 103, 105, 105, 105, 106,
1819 106, 106, 1134, 109, 109, 109, 110, 110, 110, 111,
1820 111, 111, 105, 470, 472, 106, 1461, 103, 103, 109,
1821 1360, 1479, 110, 1480, 1361, 111, 470, 472, 103, 104,
1822 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
1823 104, 104, 104, 104, 1134, 104, 104, 104, 104, 104,
1824 112, 112, 112, 113, 113, 113, 1360, 114, 114, 114,
1825 115, 115, 115, 116, 116, 116, 112, 1481, 985, 113,
1827 1482, 104, 104, 114, 985, 1483, 115, 985, 1484, 116,
1828 1485, 985, 104, 107, 107, 107, 107, 107, 107, 107,
1829 107, 107, 107, 107, 107, 107, 107, 107, 1373, 107,
1830 107, 107, 107, 107, 119, 119, 119, 120, 120, 120,
1831 1373, 121, 121, 121, 122, 122, 122, 123, 123, 123,
1832 119, 350, 1220, 120, 1490, 107, 107, 121, 350, 107,
1833 122, 1491, 1491, 123, 1362, 1492, 107, 350, 107, 342,
1834 342, 342, 349, 349, 349, 107, 108, 108, 108, 108,
1835 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
1836 108, 1220, 108, 108, 108, 108, 108, 124, 124, 124,
1838 125, 125, 125, 1362, 126, 126, 126, 129, 129, 129,
1839 130, 130, 130, 124, 383, 986, 125, 1493, 108, 108,
1840 126, 986, 108, 129, 986, 1496, 130, 1504, 986, 108,
1841 383, 108, 352, 352, 352, 361, 361, 361, 108, 117,
1842 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
1843 117, 117, 117, 117, 1374, 117, 117, 117, 117, 117,
1844 131, 131, 131, 132, 132, 132, 1374, 133, 133, 133,
1845 134, 134, 134, 135, 135, 135, 131, 1505, 1506, 132,
1846 1507, 117, 117, 133, 393, 1462, 134, 117, 1510, 135,
1847 365, 365, 365, 375, 375, 375, 380, 380, 380, 1511,
1849 393, 117, 118, 118, 118, 118, 118, 118, 118, 118,
1850 118, 118, 118, 118, 118, 118, 118, 1462, 118, 118,
1851 118, 118, 118, 136, 136, 136, 139, 139, 139, 1513,
1852 140, 140, 140, 143, 143, 143, 144, 144, 144, 136,
1853 388, 1514, 139, 1515, 118, 118, 140, 388, 1517, 143,
1854 118, 1522, 144, 387, 387, 387, 388, 390, 390, 390,
1855 398, 398, 398, 1523, 118, 127, 127, 127, 127, 127,
1856 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
1857 1416, 127, 127, 127, 127, 127, 145, 145, 145, 146,
1858 146, 146, 1524, 147, 147, 147, 148, 148, 148, 149,
1860 149, 149, 145, 399, 1525, 146, 1541, 127, 127, 147,
1861 399, 1542, 148, 127, 1543, 149, 127, 1417, 1416, 399,
1862 400, 400, 400, 678, 678, 678, 1544, 127, 128, 128,
1863 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
1864 128, 128, 128, 1498, 128, 128, 128, 128, 128, 150,
1865 150, 150, 153, 153, 153, 1417, 154, 154, 154, 155,
1866 155, 155, 156, 156, 156, 150, 1548, 1533, 153, 1549,
1867 128, 128, 154, 1034, 1498, 155, 128, 1550, 156, 128,
1868 1551, 409, 409, 409, 539, 539, 539, 1552, 539, 1034,
1869 128, 137, 137, 137, 137, 137, 137, 137, 137, 137,
1871 137, 137, 137, 137, 137, 137, 1533, 137, 137, 137,
1872 137, 137, 157, 157, 157, 158, 158, 158, 1553, 159,
1873 159, 159, 160, 160, 160, 163, 163, 163, 157, 1555,
1874 1556, 158, 1557, 137, 137, 159, 409, 1558, 160, 1569,
1875 1571, 163, 1563, 1574, 137, 138, 138, 138, 138, 138,
1876 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
1877 1575, 138, 138, 138, 138, 138, 164, 164, 164, 167,
1878 167, 167, 1566, 168, 168, 168, 442, 442, 442, 1577,
1879 1578, 190, 164, 1566, 1563, 167, 264, 138, 138, 168,
1880 574, 574, 574, 442, 574, 1581, 264, 574, 138, 141,
1882 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
1883 141, 141, 141, 141, 1582, 141, 141, 141, 141, 141,
1884 190, 264, 450, 450, 450, 1583, 190, 465, 465, 465,
1885 190, 476, 476, 476, 1584, 190, 485, 485, 485, 450,
1886 1589, 141, 141, 210, 465, 1594, 1590, 141, 476, 1596,
1887 141, 1589, 1591, 485, 552, 552, 552, 1590, 1598, 210,
1888 210, 141, 142, 142, 142, 142, 142, 142, 142, 142,
1889 142, 142, 142, 142, 142, 142, 142, 1599, 142, 142,
1890 142, 142, 142, 1608, 210, 210, 490, 490, 490, 1591,
1891 1595, 210, 1593, 1593, 210, 509, 509, 509, 210, 1609,
1893 210, 1595, 210, 490, 142, 142, 212, 693, 693, 693,
1894 142, 1610, 509, 142, 552, 843, 843, 843, 566, 566,
1895 566, 1611, 212, 212, 142, 151, 151, 151, 151, 151,
1896 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1897 1613, 151, 151, 151, 151, 151, 1614, 212, 212, 531,
1898 531, 531, 1615, 1617, 212, 1618, 1625, 212, 550, 550,
1899 550, 212, 1628, 212, 1629, 212, 531, 151, 151, 213,
1900 844, 844, 844, 1630, 1631, 151, 550, 151, 566, 151,
1901 1633, 600, 600, 600, 844, 213, 213, 151, 152, 152,
1902 152, 152, 152, 152, 152, 152, 152, 152, 152, 152,
1904 152, 152, 152, 1645, 152, 152, 152, 152, 152, 1649,
1905 213, 213, 573, 573, 573, 1650, 1651, 213, 1652, 1655,
1906 213, 551, 551, 551, 213, 1653, 213, 1656, 213, 573,
1907 152, 152, 239, 847, 847, 847, 1657, 1658, 152, 551,
1908 152, 600, 152, 851, 851, 851, 1659, 1653, 239, 239,
1909 152, 161, 161, 161, 161, 161, 161, 161, 161, 161,
1910 161, 161, 161, 161, 161, 161, 1661, 161, 161, 161,
1911 161, 161, 1662, 239, 239, 551, 1565, 577, 577, 577,
1912 239, 1663, 1592, 239, 578, 578, 578, 239, 1660, 239,
1913 1565, 239, 1664, 161, 161, 577, 1592, 265, 581, 581,
1915 581, 1665, 578, 582, 582, 582, 1660, 582, 1668, 1669,
1916 582, 1670, 1671, 265, 265, 581, 161, 162, 162, 162,
1917 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
1918 162, 162, 1675, 162, 162, 162, 162, 162, 265, 265,
1919 583, 583, 583, 1666, 578, 265, 1677, 1672, 265, 585,
1920 585, 585, 265, 1672, 265, 1687, 265, 583, 1709, 162,
1921 162, 1424, 1666, 268, 1400, 1679, 585, 596, 596, 596,
1922 1688, 596, 1709, 1691, 596, 602, 602, 602, 1679, 268,
1923 268, 1695, 162, 165, 165, 165, 165, 165, 165, 165,
1924 165, 165, 165, 165, 165, 165, 165, 165, 1687, 165,
1926 165, 165, 165, 165, 268, 268, 587, 587, 587, 1689,
1927 1691, 268, 1701, 1688, 268, 593, 593, 593, 268, 1702,
1928 268, 1701, 268, 1695, 587, 165, 165, 1692, 1702, 269,
1929 595, 595, 595, 593, 1399, 602, 165, 605, 605, 605,
1930 1398, 605, 1690, 1689, 605, 269, 269, 595, 165, 166,
1931 166, 166, 166, 166, 166, 166, 166, 166, 166, 166,
1932 166, 166, 166, 166, 1692, 166, 166, 166, 166, 166,
1933 269, 269, 588, 588, 588, 1390, 1690, 269, 271, 1389,
1934 269, 594, 594, 594, 269, 1693, 269, 1388, 269, 1697,
1935 588, 166, 166, 1694, 271, 271, 604, 604, 604, 594,
1937 1698, 1699, 166, 598, 598, 598, 599, 599, 599, 611,
1938 611, 611, 1387, 604, 166, 209, 588, 1693, 1385, 271,
1939 271, 598, 209, 1697, 599, 1694, 271, 611, 1384, 271,
1940 1699, 209, 209, 271, 1698, 271, 1383, 271, 273, 1696,
1941 1700, 594, 599, 612, 612, 612, 1705, 613, 613, 613,
1942 615, 615, 615, 1382, 273, 273, 209, 209, 614, 614,
1943 614, 612, 614, 209, 613, 614, 209, 1703, 615, 1700,
1944 209, 1381, 209, 1704, 209, 263, 616, 616, 616, 273,
1945 273, 1696, 263, 623, 623, 623, 273, 326, 1380, 273,
1946 1705, 263, 263, 273, 616, 273, 1703, 273, 1707, 1706,
1948 612, 623, 1704, 326, 326, 618, 618, 618, 377, 1379,
1949 1378, 619, 619, 619, 1377, 619, 263, 263, 619, 624,
1950 624, 624, 618, 263, 377, 377, 263, 1707, 326, 326,
1951 263, 1376, 263, 616, 263, 326, 1375, 624, 326, 627,
1952 627, 627, 326, 1706, 326, 1370, 326, 1708, 1369, 377,
1953 377, 625, 625, 625, 1368, 1710, 377, 627, 1342, 377,
1954 626, 626, 626, 377, 1340, 377, 1710, 377, 625, 1339,
1955 1338, 624, 628, 628, 628, 1337, 1708, 626, 630, 630,
1956 630, 631, 631, 631, 632, 632, 632, 633, 633, 633,
1957 628, 634, 634, 634, 1332, 630, 1330, 1329, 631, 1328,
1959 1327, 632, 635, 635, 635, 633, 636, 636, 636, 634,
1960 636, 1326, 1324, 636, 637, 637, 637, 1323, 1322, 635,
1961 638, 638, 638, 639, 639, 639, 1321, 634, 631, 628,
1962 1320, 1319, 637, 640, 640, 640, 1318, 1317, 638, 1316,
1963 639, 1315, 631, 641, 641, 641, 642, 642, 642, 1314,
1964 640, 643, 643, 643, 1311, 648, 648, 648, 1310, 1309,
1965 641, 649, 649, 649, 642, 652, 652, 652, 1306, 643,
1966 1303, 1294, 638, 648, 653, 653, 653, 1286, 1285, 649,
1967 640, 1284, 1283, 652, 654, 654, 654, 1282, 1281, 655,
1968 655, 655, 653, 655, 640, 1280, 655, 657, 657, 657,
1970 1270, 654, 658, 658, 658, 674, 674, 674, 675, 675,
1971 675, 677, 677, 677, 1269, 657, 1268, 1267, 643, 1266,
1972 658, 649, 1265, 674, 1264, 1263, 675, 1262, 1256, 677,
1973 699, 699, 699, 1255, 653, 700, 700, 700, 1254, 700,
1974 1253, 1252, 700, 703, 703, 703, 1251, 699, 705, 705,
1975 705, 706, 706, 706, 1250, 677, 1249, 708, 708, 708,
1976 703, 1248, 658, 710, 710, 710, 705, 710, 1247, 706,
1977 710, 713, 713, 713, 1241, 708, 714, 714, 714, 1238,
1978 714, 1237, 1235, 714, 1231, 715, 715, 715, 713, 716,
1979 716, 716, 717, 717, 717, 1227, 717, 1226, 1217, 717,
1981 703, 708, 715, 719, 719, 719, 716, 720, 720, 720,
1982 722, 722, 722, 725, 725, 725, 727, 727, 727, 1215,
1983 1214, 719, 728, 728, 728, 720, 1197, 1194, 722, 1191,
1984 725, 730, 730, 730, 727, 731, 731, 731, 1190, 731,
1985 728, 1187, 731, 735, 735, 735, 736, 736, 736, 730,
1986 738, 738, 738, 742, 742, 742, 1183, 742, 1180, 1179,
1987 742, 735, 1178, 1177, 736, 1172, 722, 1171, 738, 750,
1988 750, 750, 751, 751, 751, 730, 753, 753, 753, 754,
1989 754, 754, 1170, 754, 1169, 1168, 754, 750, 1167, 1166,
1990 751, 757, 757, 757, 753, 758, 758, 758, 760, 760,
1992 760, 762, 762, 762, 1165, 762, 1164, 1163, 762, 757,
1993 768, 768, 768, 758, 1159, 1158, 760, 769, 769, 769,
1994 771, 771, 771, 772, 772, 772, 1155, 1154, 768, 773,
1995 773, 773, 1153, 773, 1149, 769, 773, 753, 771, 1145,
1996 772, 774, 774, 774, 775, 775, 775, 1144, 775, 1143,
1997 1142, 775, 776, 776, 776, 777, 777, 777, 774, 1139,
1998 1138, 760, 779, 779, 779, 781, 781, 781, 1135, 1122,
1999 776, 1120, 1119, 777, 1118, 1106, 771, 782, 782, 782,
2000 779, 782, 781, 1102, 782, 785, 785, 785, 786, 786,
2001 786, 1101, 786, 1100, 1098, 786, 787, 787, 787, 788,
2003 788, 788, 785, 790, 790, 790, 791, 791, 791, 1096,
2004 791, 1091, 1090, 791, 787, 1089, 1084, 788, 794, 794,
2005 794, 790, 795, 795, 795, 779, 797, 797, 797, 798,
2006 798, 798, 802, 802, 802, 1083, 794, 804, 804, 804,
2007 795, 799, 799, 799, 797, 799, 798, 1082, 799, 802,
2008 803, 803, 803, 1081, 803, 804, 1080, 803, 805, 805,
2009 805, 1074, 1072, 790, 1071, 807, 807, 807, 809, 809,
2010 809, 812, 812, 812, 1070, 1068, 805, 813, 813, 813,
2011 1067, 1064, 797, 807, 1063, 809, 815, 815, 815, 812,
2012 818, 818, 818, 1061, 1060, 813, 819, 819, 819, 821,
2014 821, 821, 1059, 1054, 815, 822, 822, 822, 818, 822,
2015 1053, 1048, 822, 1047, 819, 1046, 1045, 821, 826, 826,
2016 826, 1044, 1043, 807, 827, 827, 827, 829, 829, 829,
2017 1041, 1040, 831, 831, 831, 1038, 826, 839, 839, 839,
2018 1027, 1025, 827, 815, 1024, 829, 852, 852, 852, 821,
2019 831, 831, 860, 860, 860, 839, 1020, 861, 861, 861,
2020 852, 861, 1012, 1009, 861, 864, 864, 864, 1006, 860,
2021 866, 866, 866, 1005, 866, 1004, 1001, 866, 869, 869,
2022 869, 1000, 995, 864, 829, 870, 870, 870, 994, 870,
2023 993, 992, 870, 991, 990, 869, 871, 871, 871, 839,
2025 871, 983, 980, 871, 875, 875, 875, 876, 876, 876,
2026 976, 864, 878, 878, 878, 974, 879, 879, 879, 973,
2027 879, 965, 875, 879, 880, 880, 880, 963, 958, 878,
2028 881, 881, 881, 956, 883, 883, 883, 890, 890, 890,
2029 955, 880, 891, 891, 891, 893, 893, 893, 881, 954,
2030 951, 875, 883, 950, 890, 894, 894, 894, 949, 891,
2031 898, 898, 898, 893, 946, 899, 899, 899, 900, 900,
2032 900, 945, 900, 894, 942, 900, 881, 898, 939, 933,
2033 903, 903, 903, 899, 903, 891, 931, 903, 906, 906,
2034 906, 907, 907, 907, 908, 908, 908, 930, 908, 927,
2036 922, 908, 921, 898, 912, 907, 906, 893, 913, 913,
2037 913, 911, 913, 897, 896, 913, 895, 894, 899, 916,
2038 916, 916, 917, 917, 917, 918, 918, 918, 892, 918,
2039 889, 888, 918, 887, 923, 923, 923, 916, 923, 886,
2040 917, 923, 926, 926, 926, 928, 928, 928, 885, 882,
2041 906, 929, 929, 929, 877, 929, 874, 865, 929, 863,
2042 926, 862, 928, 932, 932, 932, 934, 934, 934, 935,
2043 935, 935, 936, 936, 936, 917, 916, 937, 937, 937,
2044 859, 932, 858, 934, 857, 856, 926, 935, 855, 936,
2045 940, 940, 940, 854, 853, 937, 948, 948, 948, 952,
2047 952, 952, 953, 953, 953, 957, 957, 957, 940, 932,
2048 959, 959, 959, 850, 948, 960, 960, 960, 961, 961,
2049 961, 962, 962, 962, 964, 964, 964, 849, 848, 960,
2050 846, 845, 935, 842, 841, 937, 840, 838, 940, 966,
2051 966, 966, 967, 967, 967, 948, 968, 968, 968, 969,
2052 969, 969, 837, 836, 940, 835, 967, 970, 970, 970,
2053 834, 970, 825, 969, 970, 975, 975, 975, 817, 816,
2054 959, 977, 977, 977, 811, 977, 810, 808, 977, 981,
2055 981, 981, 801, 975, 964, 982, 982, 982, 984, 984,
2056 984, 800, 984, 784, 783, 984, 780, 981, 767, 966,
2058 987, 987, 987, 988, 988, 988, 968, 988, 766, 765,
2059 988, 761, 749, 975, 989, 989, 989, 987, 996, 996,
2060 996, 997, 997, 997, 748, 997, 747, 746, 997, 998,
2061 998, 998, 989, 745, 741, 996, 981, 999, 999, 999,
2062 740, 999, 739, 734, 999, 726, 998, 1002, 1002, 1002,
2063 1003, 1003, 1003, 1007, 1007, 1007, 1008, 1008, 1008, 724,
2064 1008, 718, 989, 1008, 709, 1002, 704, 698, 1003, 697,
2065 1007, 1010, 1010, 1010, 1011, 1011, 1011, 1013, 1013, 1013,
2066 1014, 1014, 1014, 1015, 1015, 1015, 1016, 1016, 1016, 1010,
2067 696, 695, 1011, 694, 1013, 692, 690, 1014, 1003, 689,
2069 1016, 1015, 688, 687, 1016, 686, 1017, 1017, 1017, 1018,
2070 1018, 1018, 1019, 1019, 1019, 684, 683, 1021, 1021, 1021,
2071 682, 1021, 1011, 1017, 1021, 681, 1018, 1026, 1026, 1026,
2072 1019, 1028, 1028, 1028, 1029, 1029, 1029, 680, 1029, 679,
2073 673, 1029, 1030, 1030, 1030, 1026, 1015, 672, 1028, 1031,
2074 1031, 1031, 1032, 1032, 1032, 671, 1032, 670, 667, 1032,
2075 1030, 1033, 1033, 1033, 666, 665, 1031, 1039, 1039, 1039,
2076 1042, 1042, 1042, 1019, 663, 1026, 1049, 1049, 1049, 1033,
2077 1050, 1050, 1050, 659, 1039, 1051, 1051, 1051, 1042, 1052,
2078 1052, 1052, 1055, 1055, 1055, 656, 651, 1030, 1056, 1056,
2080 1056, 1057, 1057, 1057, 1058, 1058, 1058, 1062, 1062, 1062,
2081 1065, 1065, 1065, 1066, 1066, 1066, 1075, 1075, 1075, 650,
2082 1075, 647, 646, 1075, 645, 1062, 644, 1042, 1065, 629,
2083 1066, 1078, 1078, 1078, 1079, 1079, 1079, 1085, 1085, 1085,
2084 622, 1085, 621, 620, 1085, 1078, 1088, 1088, 1088, 1078,
2085 1088, 1079, 617, 1088, 1092, 1092, 1092, 1093, 1093, 1093,
2086 1095, 1095, 1095, 610, 609, 1065, 1097, 1097, 1097, 608,
2087 607, 1092, 1099, 1099, 1099, 1093, 1099, 606, 1095, 1099,
2088 1103, 1103, 1103, 1097, 1105, 1105, 1105, 1107, 1107, 1107,
2089 1108, 1108, 1108, 603, 1108, 601, 597, 1108, 1103, 1109,
2091 1109, 1109, 1105, 592, 1107, 591, 1110, 1110, 1110, 1097,
2092 1110, 590, 589, 1110, 586, 584, 1109, 1111, 1111, 1111,
2093 1095, 1112, 1112, 1112, 1113, 1113, 1113, 1114, 1114, 1114,
2094 580, 1114, 576, 575, 1114, 1111, 1115, 1115, 1115, 1112,
2095 572, 1113, 1116, 1116, 1116, 571, 1116, 570, 569, 1116,
2096 1117, 1117, 1117, 1115, 1121, 1121, 1121, 1123, 1123, 1123,
2097 568, 1123, 567, 565, 1123, 564, 563, 1112, 1117, 1126,
2098 1126, 1126, 1121, 1127, 1127, 1127, 562, 1127, 561, 1111,
2099 1127, 1130, 1130, 1130, 1136, 1136, 1136, 1126, 1137, 1137,
2100 1137, 560, 1137, 559, 558, 1137, 1140, 1140, 1140, 1130,
2102 557, 1136, 1141, 1141, 1141, 1146, 1146, 1146, 1147, 1147,
2103 1147, 1117, 556, 555, 1140, 1121, 554, 1126, 1148, 1148,
2104 1148, 1150, 1150, 1150, 1151, 1151, 1151, 1152, 1152, 1152,
2105 1156, 1156, 1156, 1160, 1160, 1160, 1161, 1161, 1161, 1162,
2106 1162, 1162, 553, 1162, 549, 548, 1162, 547, 1156, 545,
2107 544, 1160, 543, 1161, 542, 541, 1140, 1173, 1173, 1173,
2108 1174, 1174, 1174, 1175, 1175, 1175, 537, 1175, 535, 534,
2109 1175, 1176, 1176, 1176, 533, 1173, 532, 1174, 1184, 1184,
2110 1184, 1185, 1185, 1185, 528, 1185, 527, 524, 1185, 1186,
2111 1186, 1186, 1188, 1188, 1188, 1184, 523, 1189, 1189, 1189,
2113 522, 1189, 521, 1173, 1189, 520, 519, 1186, 516, 1188,
2114 1195, 1195, 1195, 1198, 1198, 1198, 515, 1198, 514, 513,
2115 1198, 510, 1201, 1201, 1201, 506, 1201, 505, 1195, 1201,
2116 1204, 1204, 1204, 1205, 1205, 1205, 1206, 1206, 1206, 504,
2117 1206, 503, 500, 1206, 499, 1209, 1209, 1209, 1204, 1209,
2118 498, 1205, 1209, 1212, 1212, 1212, 1213, 1213, 1213, 1216,
2119 1216, 1216, 1218, 1218, 1218, 1219, 1219, 1219, 1222, 1222,
2120 1222, 1212, 497, 1213, 1229, 1229, 1229, 1216, 1204, 494,
2121 1218, 493, 492, 1219, 491, 1223, 1223, 1223, 1212, 1223,
2122 489, 486, 1223, 482, 481, 1205, 1228, 1228, 1228, 1230,
2124 1230, 1230, 1232, 1232, 1232, 1233, 1233, 1233, 1234, 1234,
2125 1234, 1236, 1236, 1236, 1228, 1240, 1240, 1240, 1218, 480,
2126 1216, 1242, 1242, 1242, 1244, 1244, 1244, 479, 1244, 478,
2127 477, 1244, 1240, 475, 1257, 1257, 1257, 471, 469, 1242,
2128 1258, 1258, 1258, 468, 1258, 467, 466, 1258, 1261, 1261,
2129 1261, 1228, 1257, 1271, 1271, 1271, 462, 1271, 461, 460,
2130 1271, 1274, 1274, 1274, 1276, 1276, 1276, 1277, 1277, 1277,
2131 459, 1277, 455, 454, 1277, 1287, 1287, 1287, 453, 1274,
2132 452, 1276, 1288, 1288, 1288, 1289, 1289, 1289, 1290, 1290,
2133 1290, 1257, 1291, 1291, 1291, 1292, 1292, 1292, 451, 1292,
2135 1288, 449, 1292, 1289, 446, 445, 1290, 1276, 443, 1291,
2136 1293, 1293, 1293, 1295, 1295, 1295, 1296, 1296, 1296, 1297,
2137 1297, 1297, 1298, 1298, 1298, 441, 438, 1293, 1301, 1301,
2138 1301, 1295, 1302, 1302, 1302, 435, 433, 1297, 430, 429,
2139 1298, 1289, 1304, 1304, 1304, 1290, 1305, 1305, 1305, 1302,
2140 1307, 1307, 1307, 1308, 1308, 1308, 1312, 1312, 1312, 428,
2141 1304, 1313, 1313, 1313, 425, 1313, 424, 423, 1313, 1325,
2142 1325, 1325, 422, 1312, 1334, 1334, 1334, 1335, 1335, 1335,
2143 1298, 1297, 1336, 1336, 1336, 421, 1336, 1325, 420, 1336,
2144 419, 1334, 418, 415, 1335, 1344, 1344, 1344, 1345, 1345,
2146 1345, 1346, 1346, 1346, 1348, 1348, 1348, 414, 1349, 1349,
2147 1349, 413, 1344, 1350, 1350, 1350, 412, 1350, 411, 1346,
2148 1350, 405, 1348, 404, 402, 1325, 1349, 1353, 1353, 1353,
2149 1354, 1354, 1354, 396, 1354, 395, 391, 1354, 1355, 1355,
2150 1355, 1356, 1356, 1356, 1353, 1358, 1358, 1358, 1359, 1359,
2151 1359, 1363, 1363, 1363, 385, 1355, 1364, 1364, 1364, 1356,
2152 1364, 381, 378, 1364, 373, 372, 1359, 371, 1363, 370,
2153 366, 1349, 1365, 1365, 1365, 1366, 1366, 1366, 1371, 1371,
2154 1371, 1372, 1372, 1372, 363, 1372, 359, 358, 1372, 1365,
2155 1386, 1386, 1386, 1366, 357, 1371, 1393, 1393, 1393, 1394,
2157 1394, 1394, 353, 1394, 347, 343, 1394, 340, 1386, 336,
2158 1395, 1395, 1395, 1393, 1395, 335, 334, 1395, 1403, 1403,
2159 1403, 1404, 1404, 1404, 330, 1404, 327, 322, 1404, 1405,
2160 1405, 1405, 1407, 1407, 1407, 1403, 1408, 1408, 1408, 321,
2161 1408, 317, 314, 1408, 309, 308, 1386, 1405, 307, 303,
2162 1407, 1411, 1411, 1411, 1412, 1412, 1412, 297, 1412, 293,
2163 290, 1412, 1413, 1413, 1413, 1418, 1418, 1418, 1411, 1418,
2164 286, 285, 1418, 1421, 1421, 1421, 284, 1422, 1422, 1422,
2165 1413, 1422, 283, 281, 1422, 1423, 1423, 1423, 277, 274,
2166 1421, 1426, 1426, 1426, 1407, 1427, 1427, 1427, 267, 1427,
2168 260, 259, 1427, 1443, 1443, 1443, 255, 249, 1426, 1444,
2169 1444, 1444, 1445, 1445, 1445, 1448, 1448, 1448, 248, 1448,
2170 247, 1443, 1448, 1452, 1452, 1452, 1454, 1454, 1454, 1445,
2171 1454, 243, 240, 1454, 1457, 1457, 1457, 1458, 1458, 1458,
2172 1452, 1458, 235, 233, 1458, 1463, 1463, 1463, 1467, 1467,
2173 1467, 1443, 1457, 232, 228, 1445, 225, 1464, 1464, 1464,
2174 223, 1464, 1463, 1463, 1464, 1470, 1470, 1470, 222, 1470,
2175 221, 217, 1470, 1477, 1477, 1477, 1486, 1486, 1486, 1487,
2176 1487, 1487, 1457, 1488, 1488, 1488, 1494, 1494, 1494, 206,
2177 1477, 1489, 1489, 1489, 1486, 1489, 205, 201, 1489, 197,
2179 1488, 196, 195, 1494, 1495, 1495, 1495, 189, 1495, 188,
2180 186, 1495, 1497, 1497, 1497, 1499, 1499, 1499, 1500, 1500,
2181 1500, 183, 1486, 171, 1501, 1501, 1501, 0, 1501, 0,
2182 1497, 1501, 1499, 1499, 0, 1500, 1500, 1502, 1502, 1502,
2183 0, 0, 1501, 1503, 1503, 1503, 1508, 1508, 1508, 1509,
2184 1509, 1509, 0, 1509, 0, 0, 1509, 1518, 1518, 1518,
2185 1519, 1519, 1519, 1508, 1519, 0, 0, 1519, 1526, 1526,
2186 1526, 0, 1527, 1527, 1527, 1518, 1527, 0, 0, 1527,
2187 1530, 1530, 1530, 0, 0, 1526, 1531, 1531, 1531, 1534,
2188 1534, 1534, 1535, 1535, 1535, 0, 1535, 1530, 0, 1535,
2190 1539, 1539, 1539, 0, 1531, 0, 1534, 1534, 0, 0,
2191 1535, 1536, 1536, 1536, 0, 1536, 0, 0, 1536, 1518,
2192 1540, 1540, 1540, 0, 1554, 1554, 1554, 0, 0, 1536,
2193 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 0,
2194 0, 1537, 1554, 1559, 1559, 1559, 1537, 1537, 1537, 1537,
2195 1537, 1545, 1545, 1545, 0, 1545, 0, 0, 1545, 0,
2196 1559, 1560, 1560, 1560, 0, 1560, 0, 0, 1560, 1561,
2197 1561, 1561, 1537, 1537, 1538, 1538, 1538, 1538, 1538, 1538,
2198 1538, 1538, 1538, 0, 0, 1538, 1561, 0, 0, 0,
2199 1538, 1538, 1538, 1538, 1538, 1562, 1562, 1562, 0, 1562,
2201 0, 0, 1562, 1564, 1564, 1564, 0, 1564, 0, 0,
2202 1564, 0, 0, 1579, 1579, 1579, 1538, 1538, 1597, 1597,
2203 1597, 1564, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567,
2204 1567, 1579, 0, 1567, 0, 0, 1597, 1597, 1567, 1567,
2205 1567, 1567, 1567, 1585, 1585, 1585, 0, 1585, 0, 0,
2206 1585, 1588, 1588, 1588, 0, 1588, 0, 0, 1588, 1604,
2207 1604, 1604, 0, 0, 1567, 1567, 1568, 1568, 1568, 1568,
2208 1568, 1568, 1568, 1568, 1568, 0, 1604, 1568, 1605, 1605,
2209 1605, 0, 1568, 1568, 1568, 1568, 1568, 1606, 1606, 1606,
2210 1607, 1607, 1607, 0, 0, 1605, 1612, 1612, 1612, 1616,
2212 1616, 1616, 0, 0, 1606, 0, 0, 1607, 1568, 1568,
2213 1619, 1619, 1619, 0, 1612, 0, 0, 1616, 1620, 1620,
2214 1620, 0, 1620, 0, 0, 1620, 0, 1619, 0, 0,
2215 1606, 1621, 1621, 1621, 1622, 1622, 1622, 0, 1622, 0,
2216 0, 1622, 1623, 1623, 1623, 0, 0, 1616, 1621, 1624,
2217 1624, 1624, 0, 1624, 0, 0, 1624, 0, 0, 1623,
2218 1626, 1626, 1626, 1627, 1627, 1627, 0, 1627, 0, 0,
2219 1627, 1632, 1632, 1632, 1636, 1636, 1636, 1626, 1636, 0,
2220 0, 1636, 0, 1639, 1639, 1639, 0, 1639, 0, 1632,
2221 1639, 1642, 1642, 1642, 0, 1642, 0, 0, 1642, 1646,
2223 1646, 1646, 0, 1646, 0, 0, 1646, 1632, 1667, 1667,
2224 1667, 1673, 1673, 1673, 1674, 1674, 1674, 0, 1674, 0,
2225 0, 1674, 1680, 1680, 1680, 1667, 1680, 0, 1673, 1680,
2226 1685, 1685, 1685, 1686, 1686, 1686, 0, 1686, 0, 0,
2227 1686, 1711, 1711, 1711, 1712, 1712, 1712, 0, 1685, 0,
2228 0, 1686, 0, 0, 0, 0, 0, 0, 0, 1711,
2229 0, 0, 1712, 1715, 1715, 1715, 1715, 1715, 1715, 1715,
2230 1715, 1715, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716,
2231 1716, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717,
2232 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1719,
2234 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1720, 1720,
2235 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1721, 1721, 1721,
2236 1721, 1721, 1721, 1721, 1721, 1721, 1722, 1722, 1722, 1722,
2237 1722, 1722, 1722, 1722, 1722, 1723, 1723, 1723, 1723, 1723,
2238 1723, 1723, 1723, 1723, 1724, 1724, 1724, 1724, 1724, 1724,
2239 1724, 1724, 1724, 1725, 1725, 1725, 1725, 1725, 1725, 1725,
2240 1725, 1725, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
2241 1726, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727,
2242 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1729,
2243 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1730, 1730,
2245 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1731, 1731, 1731,
2246 1731, 1731, 1731, 1731, 1731, 1731, 1732, 1732, 1732, 1732,
2247 1732, 1732, 1732, 1732, 1732, 1733, 1733, 1733, 1733, 1733,
2248 1733, 1733, 1733, 1733, 1734, 1734, 1734, 1734, 1734, 1734,
2249 1734, 1734, 1734, 1735, 1735, 1735, 1735, 1735, 1735, 1735,
2250 1735, 1735, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736,
2251 1736, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
2252 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1739,
2253 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1740, 1740,
2254 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1741, 1741, 1741,
2256 1741, 1741, 1741, 1741, 1741, 1741, 1742, 1742, 1742, 1742,
2257 1742, 1742, 1742, 1742, 1742, 1743, 1743, 1743, 1743, 1743,
2258 1743, 1743, 1743, 1743, 1744, 1744, 1744, 1744, 1744, 1744,
2259 1744, 1744, 1744, 1745, 1745, 1745, 1745, 1745, 1745, 1745,
2260 1745, 1745, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746,
2261 1746, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747,
2262 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1749,
2263 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1750, 1750,
2264 1750, 0, 0, 0, 1750, 1751, 1751, 1751, 0, 0,
2265 0, 1751, 1752, 1752, 1752, 0, 0, 0, 1752, 1753,
2267 1753, 1753, 0, 0, 0, 1753, 1754, 1754, 1754, 0,
2268 0, 0, 1754, 1755, 1755, 1755, 0, 0, 0, 1755,
2269 1756, 1756, 1756, 0, 0, 0, 1756, 1757, 1757, 1757,
2270 0, 0, 0, 1757, 1758, 1758, 1758, 0, 0, 0,
2271 1758, 1759, 1759, 1759, 0, 0, 0, 1759, 1760, 1760,
2272 1760, 0, 0, 0, 1760, 1761, 1761, 1761, 0, 0,
2273 0, 1761, 1762, 1762, 1762, 0, 0, 0, 1762, 1763,
2274 1763, 1763, 0, 0, 0, 1763, 1764, 1764, 1764, 0,
2275 0, 0, 1764, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
2276 0, 1765, 1766, 0, 0, 0, 1766, 1767, 0, 0,
2278 0, 1767, 1768, 0, 0, 0, 1768, 1769, 0, 0,
2279 0, 1769, 1770, 0, 0, 0, 1770, 1771, 0, 0,
2280 0, 1771, 1772, 0, 0, 0, 1772, 1773, 0, 0,
2281 0, 1773, 1774, 0, 0, 0, 1774, 1775, 0, 0,
2282 0, 1775, 1776, 0, 0, 0, 1776, 1777, 1777, 1777,
2283 0, 0, 0, 1777, 1778, 0, 0, 0, 1778, 1779,
2284 1779, 1779, 0, 0, 0, 1779, 1780, 0, 0, 0,
2285 1780, 1781, 1781, 1781, 0, 0, 0, 1781, 1782, 0,
2286 0, 0, 1782, 1783, 1783, 1783, 0, 0, 0, 1783,
2287 1784, 0, 0, 0, 1784, 1785, 1785, 1785, 1785, 1785,
2289 1785, 1785, 1785, 1785, 1786, 0, 0, 0, 0, 1786,
2290 1787, 1787, 1787, 0, 0, 0, 1787, 1788, 1788, 1788,
2291 1788, 0, 0, 1788, 1788, 1789, 1789, 1789, 0, 0,
2292 0, 1789, 1790, 1790, 1790, 1790, 0, 0, 1790, 1790,
2293 1791, 1791, 1791, 0, 0, 0, 1791, 1792, 1792, 1792,
2294 1792, 0, 0, 1792, 1792, 1793, 1793, 1793, 0, 0,
2295 0, 1793, 1794, 1794, 1794, 1794, 0, 0, 1794, 1794,
2296 1795, 1795, 1795, 0, 0, 0, 1795, 1796, 1796, 1796,
2297 1796, 0, 0, 1796, 1796, 1797, 1797, 1797, 0, 0,
2298 0, 1797, 1798, 1798, 1798, 1798, 0, 0, 1798, 1798,
2300 1799, 1799, 1799, 1799, 0, 0, 1799, 1799, 1800, 1800,
2301 1800, 0, 0, 0, 1800, 1801, 1801, 1801, 1801, 0,
2302 0, 1801, 1801, 1802, 1802, 1802, 1802, 0, 1802, 0,
2303 1802, 1803, 1803, 1803, 1803, 0, 0, 1803, 1803, 1804,
2304 1804, 1804, 1804, 0, 1804, 0, 1804, 1805, 1805, 1805,
2305 1805, 0, 0, 1805, 1805, 1806, 1806, 1806, 1806, 0,
2306 0, 1806, 1806, 1807, 1807, 1807, 1807, 0, 1807, 0,
2307 1807, 1808, 1808, 1808, 1808, 0, 0, 1808, 1808, 1809,
2308 1809, 1809, 0, 0, 0, 1809, 1810, 1810, 1810, 1810,
2309 0, 0, 1810, 1810, 1811, 1811, 1811, 0, 0, 0,
2311 1811, 1812, 1812, 1812, 1812, 0, 0, 1812, 1812, 1813,
2312 1813, 1813, 0, 0, 0, 1813, 1814, 1814, 1814, 1814,
2313 0, 0, 1814, 1814, 1815, 1815, 1815, 1815, 1815, 1815,
2314 1815, 1815, 1815, 1816, 0, 1816, 0, 0, 1816, 1817,
2315 1817, 1817, 0, 0, 0, 1817, 1818, 1818, 1818, 1818,
2316 0, 0, 1818, 1818, 1819, 1819, 1819, 1819, 0, 1819,
2317 0, 1819, 1820, 1820, 1820, 1820, 0, 0, 1820, 1820,
2318 1821, 1821, 1821, 0, 0, 0, 1821, 1822, 1822, 1822,
2319 1822, 0, 0, 1822, 1822, 1823, 1823, 1823, 0, 0,
2320 0, 1823, 1824, 1824, 1824, 1824, 0, 0, 1824, 1824,
2322 1825, 1825, 1825, 0, 0, 0, 1825, 1826, 1826, 1826,
2323 1826, 0, 0, 1826, 1826, 1827, 1827, 1827, 0, 0,
2324 0, 1827, 1828, 1828, 1828, 1828, 0, 0, 1828, 1828,
2325 1829, 1829, 1829, 1829, 0, 0, 1829, 1829, 1830, 1830,
2326 1830, 0, 0, 0, 1830, 1831, 1831, 1831, 1831, 0,
2327 0, 1831, 1831, 1832, 1832, 1832, 1832, 0, 0, 1832,
2328 1832, 1833, 1833, 1833, 0, 0, 0, 1833, 1834, 1834,
2329 1834, 1834, 0, 0, 1834, 1834, 1835, 1835, 1835, 1835,
2330 0, 0, 1835, 1835, 1836, 1836, 1836, 0, 0, 0,
2331 1836, 1837, 1837, 1837, 1837, 0, 0, 1837, 1837, 1838,
2333 1838, 1838, 0, 0, 0, 1838, 1839, 1839, 1839, 1839,
2334 0, 0, 1839, 1839, 1840, 1840, 1840, 0, 0, 0,
2335 1840, 1841, 1841, 1841, 1841, 0, 0, 1841, 1841, 1842,
2336 1842, 1842, 0, 0, 0, 1842, 1843, 1843, 1843, 1843,
2337 0, 0, 1843, 1843, 1844, 1844, 1844, 1844, 1844, 1844,
2338 1844, 1844, 1844, 1845, 1845, 1845, 1845, 1845, 1845, 1845,
2339 1845, 1845, 1846, 1846, 1846, 0, 0, 0, 1846, 1847,
2340 1847, 1847, 1847, 0, 0, 1847, 1847, 1848, 1848, 1848,
2341 0, 0, 0, 1848, 1849, 1849, 1849, 1849, 0, 0,
2342 1849, 1849, 1850, 1850, 1850, 0, 0, 0, 1850, 1851,
2344 1851, 1851, 1851, 0, 0, 1851, 1851, 1852, 1852, 1852,
2345 0, 0, 0, 1852, 1853, 1853, 1853, 1853, 0, 0,
2346 1853, 1853, 1854, 1854, 1854, 0, 0, 0, 1854, 1855,
2347 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1856, 1856,
2348 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1857, 1857, 1857,
2349 1857, 1857, 1857, 1857, 1857, 1857, 1858, 1858, 1858, 1858,
2350 1858, 1858, 1858, 1858, 1858, 1859, 1859, 1859, 1859, 1859,
2351 1859, 1859, 1859, 1859, 1860, 1860, 1860, 1860, 1860, 1860,
2352 1860, 1860, 1860, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
2353 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
2355 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
2356 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
2357 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
2358 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
2359 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714,
2363 /* Table of booleans, true if rule could match eol. */
2364 static yyconst flex_int32_t yy_rule_can_match_eol[298] =
2366 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
2367 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0,
2368 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2369 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2370 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
2371 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2372 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1,
2373 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2374 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1,
2375 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2376 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1,
2377 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1,
2378 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0,
2379 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
2380 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, };
2382 static yy_state_type yy_last_accepting_state;
2383 static char *yy_last_accepting_cpos;
2385 extern int surf_parse__flex_debug;
2386 int surf_parse__flex_debug = 0;
2388 /* The intent behind this definition is that it'll catch
2389 * any uses of REJECT which flex missed.
2391 #define REJECT reject_used_but_not_detected
2392 #define yymore() yymore_used_but_not_detected
2393 #define YY_MORE_ADJ 0
2394 #define YY_RESTORE_YY_MORE_OFFSET
2395 char *surf_parse_text;
2396 /* Validating XML processor for src/surf/simgrid.dtd.
2397 * Generated 2010/09/15 14:21:29.
2399 * This program was generated with the FleXML XML processor generator.
2400 * FleXML is Copyright (C) 1999-2005 Kristoffer Rose. All rights reserved.
2401 * FleXML is Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
2402 * (Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp).
2404 * There are two, intertwined parts to this program, part A and part B.
2409 * Some parts, here collectively called "Part A", are found in the
2410 * FleXML package. They are Copyright (C) 1999-2005 Kristoffer Rose
2411 * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
2413 * You can redistribute, use, perform, display and/or modify "Part A"
2414 * provided the following two conditions hold:
2416 * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
2417 * FleXML; without even the implied warranty of MERCHANTABILITY or
2418 * FITNESS FOR A PARTICULAR PURPOSE.
2420 * 2. The program distribution conditions do not in any way affect the
2421 * distribution conditions of the FleXML system used to generate this
2422 * file or any version of FleXML derived from that system.
2424 * Notice that these are explicit rights granted to you for files
2425 * generated by the FleXML system. For your rights in connection with
2426 * the FleXML system itself please consult the GNU General Public License.
2431 * The other parts, here collectively called "Part B", and which came
2432 * from the DTD used by FleXML to generate this program, can be
2433 * distributed (or not, as the case may be) under the terms of whoever
2434 * wrote them, provided these terms respect and obey the two conditions
2435 * above under the heading "Part A".
2437 * The author of and contributors to FleXML specifically disclaim
2438 * any copyright interest in "Part B", unless "Part B" was written
2439 * by the author of or contributors to FleXML.
2443 /* Version strings. */
2444 const char rcs_surfxml_flexml_skeleton[] =
2445 "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
2446 const char rcs_surfxml_flexml[] =
2447 "$" "Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp $";
2450 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
2457 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
2458 # ifndef __STRICT_ANSI__
2460 # include <process.h>
2463 # include <unistd.h>
2466 #ifndef FLEXML_INDEXSTACKSIZE
2467 #define FLEXML_INDEXSTACKSIZE 1000
2470 /* Generated definitions. */
2471 #define FLEXML_yylineno
2472 #ifndef FLEXML_BUFFERSTACKSIZE
2473 #define FLEXML_BUFFERSTACKSIZE 1000000
2475 #define FLEXML_NEED_BUFFERLIT
2477 /* XML processor api. */
2478 /* FleXML-provided data. */
2479 int surfxml_pcdata_ix;
2480 extern char *surfxml_bufferstack;
2481 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
2482 AT_surfxml_random_generator AX_surfxml_random_generator;
2483 #define A_surfxml_random_generator AX_surfxml_random_generator
2484 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
2485 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
2486 AT_surfxml_link_id AX_surfxml_link_id;
2487 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
2488 AT_surfxml_prop_id AX_surfxml_prop_id;
2489 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
2490 AT_surfxml_host_interference_recv AX_surfxml_host_interference_recv;
2491 #define A_surfxml_host_interference_recv (surfxml_bufferstack + AX_surfxml_host_interference_recv)
2492 AT_surfxml_host_id AX_surfxml_host_id;
2493 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
2494 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
2495 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
2496 AT_surfxml_process_host AX_surfxml_process_host;
2497 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
2498 AT_surfxml_host_state AX_surfxml_host_state;
2499 #define A_surfxml_host_state AX_surfxml_host_state
2500 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
2501 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
2502 AT_surfxml_host_interference_send_recv AX_surfxml_host_interference_send_recv;
2503 #define A_surfxml_host_interference_send_recv (surfxml_bufferstack + AX_surfxml_host_interference_send_recv)
2504 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
2505 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
2506 AT_surfxml_host_interference_send AX_surfxml_host_interference_send;
2507 #define A_surfxml_host_interference_send (surfxml_bufferstack + AX_surfxml_host_interference_send)
2508 AT_surfxml_prop_value AX_surfxml_prop_value;
2509 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
2510 AT_surfxml_AS_id AX_surfxml_AS_id;
2511 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
2512 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
2513 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
2514 AT_surfxml_host_power AX_surfxml_host_power;
2515 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
2516 AT_surfxml_link_state_file AX_surfxml_link_state_file;
2517 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
2518 AT_surfxml_router_id AX_surfxml_router_id;
2519 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
2520 AT_surfxml_process_start_time AX_surfxml_process_start_time;
2521 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
2522 AT_surfxml_platform_xmlns_c_route AX_surfxml_platform_xmlns_c_route;
2523 #define A_surfxml_platform_xmlns_c_route (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_route)
2524 AT_surfxml_process_function AX_surfxml_process_function;
2525 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
2526 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
2527 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
2528 AT_surfxml_host_max_outgoing_rate AX_surfxml_host_max_outgoing_rate;
2529 #define A_surfxml_host_max_outgoing_rate (surfxml_bufferstack + AX_surfxml_host_max_outgoing_rate)
2530 AT_surfxml_trace_file AX_surfxml_trace_file;
2531 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
2532 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
2533 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
2534 AT_surfxml_link_c_ctn_id AX_surfxml_link_c_ctn_id;
2535 #define A_surfxml_link_c_ctn_id (surfxml_bufferstack + AX_surfxml_link_c_ctn_id)
2536 AT_surfxml_random_min AX_surfxml_random_min;
2537 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
2538 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
2539 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
2540 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
2541 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
2542 AT_surfxml_host_availability AX_surfxml_host_availability;
2543 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
2544 AT_surfxml_trace_c_connect_element AX_surfxml_trace_c_connect_element;
2545 #define A_surfxml_trace_c_connect_element (surfxml_bufferstack + AX_surfxml_trace_c_connect_element)
2546 AT_surfxml_argument_value AX_surfxml_argument_value;
2547 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
2548 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
2549 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
2550 AT_surfxml_link_state AX_surfxml_link_state;
2551 #define A_surfxml_link_state AX_surfxml_link_state
2552 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
2553 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
2554 AT_surfxml_route_src AX_surfxml_route_src;
2555 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
2556 AT_surfxml_AS_routing AX_surfxml_AS_routing;
2557 #define A_surfxml_AS_routing (surfxml_bufferstack + AX_surfxml_AS_routing)
2558 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
2559 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
2560 AT_surfxml_bypassRoute_gw_dst AX_surfxml_bypassRoute_gw_dst;
2561 #define A_surfxml_bypassRoute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_dst)
2562 AT_surfxml_trace_c_connect_trace AX_surfxml_trace_c_connect_trace;
2563 #define A_surfxml_trace_c_connect_trace (surfxml_bufferstack + AX_surfxml_trace_c_connect_trace)
2564 AT_surfxml_random_mean AX_surfxml_random_mean;
2565 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
2566 AT_surfxml_trace_id AX_surfxml_trace_id;
2567 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
2568 AT_surfxml_link_latency AX_surfxml_link_latency;
2569 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
2570 AT_surfxml_platform_xmlns_c_link AX_surfxml_platform_xmlns_c_link;
2571 #define A_surfxml_platform_xmlns_c_link (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_link)
2572 AT_surfxml_bypassRoute_gw_src AX_surfxml_bypassRoute_gw_src;
2573 #define A_surfxml_bypassRoute_gw_src (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_src)
2574 AT_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind;
2575 #define A_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind
2576 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
2577 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
2578 AT_surfxml_host_vivaldi AX_surfxml_host_vivaldi;
2579 #define A_surfxml_host_vivaldi (surfxml_bufferstack + AX_surfxml_host_vivaldi)
2580 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
2581 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
2582 AT_surfxml_host_state_file AX_surfxml_host_state_file;
2583 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
2584 AT_surfxml_random_id AX_surfxml_random_id;
2585 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
2586 AT_surfxml_route_dst AX_surfxml_route_dst;
2587 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
2588 AT_surfxml_random_max AX_surfxml_random_max;
2589 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
2590 AT_surfxml_platform_version AX_surfxml_platform_version;
2591 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
2595 # define ENTER(state) debug_enter(state,#state)
2596 # define LEAVE debug_leave()
2597 # define SET(state) debug_set(state,#state)
2598 static void debug_enter(int, const char*);
2599 static void debug_leave(void);
2600 static void debug_set(int, const char*);
2602 # define ENTER(state) (yy_push_state(state))
2603 # define LEAVE (yy_pop_state())
2604 # define SET(state) BEGIN(state)
2607 /* Generic actions. */
2608 #define SKIP /*skip*/
2609 #define SUCCEED CLEANUP; return 0
2611 #define FAIL return fail
2612 static int fail(const char*, ...);
2614 enum {flexml_max_err_msg_size = 512};
2615 static char flexml_err_msg[flexml_max_err_msg_size];
2616 const char * surfxml_parse_err_msg()
2618 return flexml_err_msg;
2620 static void reset_surfxml_parse_err_msg()
2622 flexml_err_msg[0] = '\0';
2626 static void cleanup(void);
2627 #define CLEANUP cleanup()
2629 /* Text buffer stack handling. */
2630 char *surfxml_bufferstack = NULL;
2631 static int blimit = FLEXML_BUFFERSTACKSIZE;
2632 static int bnext = 1;
2634 static int *indexstack = NULL;
2635 static int ilimit = FLEXML_INDEXSTACKSIZE;
2636 static int inext = 1;
2638 #define BUFFERSET(P) (P = bnext)
2639 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
2640 #define BUFFERDONE (BUFFERPUTC('\0'))
2642 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
2644 /* after this is called, there are at least 2 slots left in the stack */
2645 static int ck_blimit()
2647 if (bnext >= blimit) {
2648 blimit += FLEXML_BUFFERSTACKSIZE + 2;
2650 char *temp = (char *) realloc(surfxml_bufferstack, blimit);
2652 surfxml_bufferstack = temp;
2658 /* after this is called, there are at least 2 slots left in the stack */
2659 static int ck_ilimit()
2661 if (inext >= ilimit) {
2662 ilimit += FLEXML_INDEXSTACKSIZE + 2;
2664 int *temp = (int *) realloc(indexstack, ilimit);
2672 #ifdef FLEXML_NEED_BUFFERLIT
2673 static void surfxml_bufferliteral(char c, int* pp, const char* text)
2675 const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
2676 assert(s <= e); BUFFERSET(*pp);
2678 if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
2679 else BUFFERPUTC(*s);
2685 static void pushbuffer(int p)
2688 indexstack[inext++] = p;
2689 indexstack[inext++] = bnext;
2692 static int popbuffer(void)
2695 bnext = indexstack[--inext];
2696 return indexstack[--inext];
2699 /* General internal entities are `unput' back onto the input stream... */
2700 #define ENTITYTEXT(T) \
2701 { char *s = (T), *e = s+strlen(s);\
2702 while (--e >= s) { unput(*e); }}
2704 /* Flex standard options. */
2705 #define YY_NO_INPUT 1
2706 /* Flex user-requested options. */
2707 /* XML character classes (currently restricted to ASCII). */
2708 /* "Common syntactic structures." */
2709 /* "Names and Tokens." */
2710 /* Miscellaneous. */
2711 /* Parser states (flex `exclusive start conditions'):
2713 * PROLOG the XML prolog of the document before <?xml...>
2714 * DOCTYPE the XML prolog of the document after <?xml...>
2715 * EPILOG after the root element
2716 * INCOMMENT inside an XML comment <!--....-->
2717 * INPI inside an XML PI <?...?>
2718 * VALUE1 inside a '...'-delimited literal
2719 * VALUE2 inside a "..."-delimited literal
2720 * CDATA inside a <![CDATA[...] ]> section.
2721 * ROOT_<tag> expect root element <tag>
2722 * AL_<tag> inside the attribute list for <tag>
2723 * IN_<tag> inside a <tag> with element contents (ready for end tag)
2724 * IMPOSSIBLE dummy to permit disabling rules; must be last
2728 const char* *surfxml_statenames=NULL;
2739 #define ROOT_surfxml_platform 9
2740 #define AL_surfxml_platform 10
2741 #define S_surfxml_platform 11
2742 #define S_surfxml_platform_1 12
2743 #define S_surfxml_platform_2 13
2744 #define S_surfxml_platform_3 14
2745 #define S_surfxml_platform_4 15
2746 #define S_surfxml_platform_5 16
2747 #define S_surfxml_platform_6 17
2748 #define S_surfxml_platform_7 18
2749 #define S_surfxml_platform_8 19
2750 #define E_surfxml_platform 20
2751 #define AL_surfxml_trace 21
2753 #define AL_surfxml_random 23
2754 #define S_surfxml_random 24
2755 #define S_surfxml_random_1 25
2756 #define S_surfxml_random_2 26
2757 #define E_surfxml_random 27
2758 #define AL_surfxml_trace_c_connect 28
2759 #define E_surfxml_trace_c_connect 29
2760 #define AL_surfxml_AS 30
2761 #define S_surfxml_AS 31
2762 #define S_surfxml_AS_1 32
2763 #define S_surfxml_AS_2 33
2764 #define S_surfxml_AS_3 34
2765 #define S_surfxml_AS_4 35
2766 #define S_surfxml_AS_5 36
2767 #define S_surfxml_AS_6 37
2768 #define S_surfxml_AS_7 38
2769 #define S_surfxml_AS_8 39
2770 #define S_surfxml_AS_9 40
2771 #define S_surfxml_AS_10 41
2772 #define S_surfxml_AS_11 42
2773 #define S_surfxml_AS_12 43
2774 #define S_surfxml_AS_13 44
2775 #define E_surfxml_AS 45
2776 #define AL_surfxml_host 46
2777 #define S_surfxml_host 47
2778 #define S_surfxml_host_1 48
2779 #define S_surfxml_host_2 49
2780 #define E_surfxml_host 50
2781 #define AL_surfxml_router 51
2782 #define E_surfxml_router 52
2783 #define AL_surfxml_link 53
2784 #define S_surfxml_link 54
2785 #define S_surfxml_link_1 55
2786 #define S_surfxml_link_2 56
2787 #define E_surfxml_link 57
2788 #define AL_surfxml_route 58
2789 #define S_surfxml_route 59
2790 #define S_surfxml_route_1 60
2791 #define S_surfxml_route_2 61
2792 #define E_surfxml_route 62
2793 #define AL_surfxml_ASroute 63
2794 #define S_surfxml_ASroute 64
2795 #define S_surfxml_ASroute_1 65
2796 #define S_surfxml_ASroute_2 66
2797 #define E_surfxml_ASroute 67
2798 #define AL_surfxml_link_c_ctn 68
2799 #define E_surfxml_link_c_ctn 69
2800 #define AL_surfxml_bypassRoute 70
2801 #define S_surfxml_bypassRoute 71
2802 #define S_surfxml_bypassRoute_1 72
2803 #define S_surfxml_bypassRoute_2 73
2804 #define E_surfxml_bypassRoute 74
2805 #define AL_surfxml_process 75
2806 #define S_surfxml_process 76
2807 #define S_surfxml_process_1 77
2808 #define S_surfxml_process_2 78
2809 #define E_surfxml_process 79
2810 #define AL_surfxml_argument 80
2811 #define E_surfxml_argument 81
2812 #define AL_surfxml_prop 82
2813 #define E_surfxml_prop 83
2814 #define IMPOSSIBLE 84
2816 #ifndef YY_NO_UNISTD_H
2817 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2818 * down here because we want the user's section 1 to have been scanned first.
2819 * The user has a chance to override it with an option.
2821 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
2822 # ifndef __STRICT_ANSI__
2824 # include <process.h>
2827 # include <unistd.h>
2831 #ifndef YY_EXTRA_TYPE
2832 #define YY_EXTRA_TYPE void *
2835 static int yy_init_globals (void );
2837 /* Accessor methods to globals.
2838 These are made visible to non-reentrant scanners for convenience. */
2840 int surf_parse_lex_destroy (void );
2842 int surf_parse_get_debug (void );
2844 void surf_parse_set_debug (int debug_flag );
2846 YY_EXTRA_TYPE surf_parse_get_extra (void );
2848 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined );
2850 FILE *surf_parse_get_in (void );
2852 void surf_parse_set_in (FILE * in_str );
2854 FILE *surf_parse_get_out (void );
2856 void surf_parse_set_out (FILE * out_str );
2858 int surf_parse_get_leng (void );
2860 char *surf_parse_get_text (void );
2862 int surf_parse_get_lineno (void );
2864 void surf_parse_set_lineno (int line_number );
2866 /* Macros after this point can all be overridden by user definitions in
2870 #ifndef YY_SKIP_YYWRAP
2872 extern "C" int surf_parse_wrap (void );
2874 extern int surf_parse_wrap (void );
2879 static void yy_flex_strncpy (char *,yyconst char *,int );
2882 #ifdef YY_NEED_STRLEN
2883 static int yy_flex_strlen (yyconst char * );
2889 static int yyinput (void );
2891 static int input (void );
2896 static int yy_start_stack_ptr = 0;
2897 static int yy_start_stack_depth = 0;
2898 static int *yy_start_stack = NULL;
2900 static void yy_push_state (int new_state );
2902 static void yy_pop_state (void );
2904 /* Amount of stuff to slurp up with each read. */
2905 #ifndef YY_READ_BUF_SIZE
2907 /* On IA-64, the buffer size is 16k, not 8k */
2908 #define YY_READ_BUF_SIZE 16384
2910 #define YY_READ_BUF_SIZE 8192
2911 #endif /* __ia64__ */
2914 /* Copy whatever the last rule matched to the standard output. */
2916 /* This used to be an fputs(), but since the string might contain NUL's,
2917 * we now use fwrite().
2919 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
2922 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2923 * is returned in "result".
2926 #define YY_INPUT(buf,result,max_size) \
2927 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2931 for ( n = 0; n < max_size && \
2932 (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
2933 buf[n] = (char) c; \
2935 buf[n++] = (char) c; \
2936 if ( c == EOF && ferror( surf_parse_in ) ) \
2937 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2943 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
2945 if( errno != EINTR) \
2947 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2951 clearerr(surf_parse_in); \
2958 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2959 * we don't want an extra ';' after the "return" because that will cause
2960 * some compilers to complain about unreachable statements.
2963 #define yyterminate() return YY_NULL
2966 /* Number of entries by which start-condition stack grows. */
2967 #ifndef YY_START_STACK_INCR
2968 #define YY_START_STACK_INCR 25
2971 /* Report a fatal error. */
2972 #ifndef YY_FATAL_ERROR
2973 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2976 /* end tables serialization structures and prototypes */
2978 /* Default declaration of generated scanner - a define so the user can
2979 * easily add parameters.
2982 #define YY_DECL_IS_OURS 1
2984 extern int surf_parse_lex (void);
2986 #define YY_DECL int surf_parse_lex (void)
2987 #endif /* !YY_DECL */
2989 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
2992 #ifndef YY_USER_ACTION
2993 #define YY_USER_ACTION
2996 /* Code executed at the end of each rule. */
2998 #define YY_BREAK break;
3001 #define YY_RULE_SETUP \
3004 /** The main scanner function which does all the work.
3008 register yy_state_type yy_current_state;
3009 register char *yy_cp, *yy_bp;
3010 register int yy_act;
3012 /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
3014 reset_surfxml_parse_err_msg();
3015 surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
3016 assert(surfxml_bufferstack);
3020 for (i = 0; i < blimit; i++) {
3021 surfxml_bufferstack[i] = '\377';
3025 surfxml_bufferstack[0] = '\0';
3026 indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
3032 surfxml_bufferliteral('\0', &bnext, "0.0");
3033 surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3034 surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3035 surfxml_bufferliteral('\0', &bnext, "1.0");
3036 surfxml_bufferliteral('\0', &bnext, "1.0");
3037 surfxml_bufferliteral('\0', &bnext, "1.0");
3038 surfxml_bufferliteral('\0', &bnext, "1.0");
3039 surfxml_bufferliteral('\0', &bnext, "-1.0");
3040 surfxml_bufferliteral('\0', &bnext, "0 0 0");
3041 surfxml_bufferliteral('\0', &bnext, "0.0");
3042 surfxml_bufferliteral('\0', &bnext, "-1.0");
3043 surfxml_bufferliteral('\0', &bnext, "-1.0");
3044 if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
3045 surfxml_statenames[PROLOG] = NULL;
3046 surfxml_statenames[DOCTYPE] = NULL;
3047 surfxml_statenames[EPILOG] = NULL;
3048 surfxml_statenames[INCOMMENT] = NULL;
3049 surfxml_statenames[INPI] = NULL;
3050 surfxml_statenames[VALUE1] = NULL;
3051 surfxml_statenames[VALUE2] = NULL;
3052 surfxml_statenames[CDATA] = NULL;
3053 surfxml_statenames[ROOT_surfxml_platform] = NULL;
3054 surfxml_statenames[AL_surfxml_platform] = NULL;
3055 surfxml_statenames[S_surfxml_platform] = "platform";
3056 surfxml_statenames[S_surfxml_platform_1] = "platform";
3057 surfxml_statenames[S_surfxml_platform_2] = "platform";
3058 surfxml_statenames[S_surfxml_platform_3] = "platform";
3059 surfxml_statenames[S_surfxml_platform_4] = "platform";
3060 surfxml_statenames[S_surfxml_platform_5] = "platform";
3061 surfxml_statenames[S_surfxml_platform_6] = "platform";
3062 surfxml_statenames[S_surfxml_platform_7] = "platform";
3063 surfxml_statenames[S_surfxml_platform_8] = "platform";
3064 surfxml_statenames[E_surfxml_platform] = "platform";
3065 surfxml_statenames[AL_surfxml_trace] = NULL;
3066 surfxml_statenames[IN_trace] = "trace";
3067 surfxml_statenames[AL_surfxml_random] = NULL;
3068 surfxml_statenames[S_surfxml_random] = "random";
3069 surfxml_statenames[S_surfxml_random_1] = "random";
3070 surfxml_statenames[S_surfxml_random_2] = "random";
3071 surfxml_statenames[E_surfxml_random] = "random";
3072 surfxml_statenames[AL_surfxml_trace_c_connect] = NULL;
3073 surfxml_statenames[E_surfxml_trace_c_connect] = "trace:connect";
3074 surfxml_statenames[AL_surfxml_AS] = NULL;
3075 surfxml_statenames[S_surfxml_AS] = "AS";
3076 surfxml_statenames[S_surfxml_AS_1] = "AS";
3077 surfxml_statenames[S_surfxml_AS_2] = "AS";
3078 surfxml_statenames[S_surfxml_AS_3] = "AS";
3079 surfxml_statenames[S_surfxml_AS_4] = "AS";
3080 surfxml_statenames[S_surfxml_AS_5] = "AS";
3081 surfxml_statenames[S_surfxml_AS_6] = "AS";
3082 surfxml_statenames[S_surfxml_AS_7] = "AS";
3083 surfxml_statenames[S_surfxml_AS_8] = "AS";
3084 surfxml_statenames[S_surfxml_AS_9] = "AS";
3085 surfxml_statenames[S_surfxml_AS_10] = "AS";
3086 surfxml_statenames[S_surfxml_AS_11] = "AS";
3087 surfxml_statenames[S_surfxml_AS_12] = "AS";
3088 surfxml_statenames[S_surfxml_AS_13] = "AS";
3089 surfxml_statenames[E_surfxml_AS] = "AS";
3090 surfxml_statenames[AL_surfxml_host] = NULL;
3091 surfxml_statenames[S_surfxml_host] = "host";
3092 surfxml_statenames[S_surfxml_host_1] = "host";
3093 surfxml_statenames[S_surfxml_host_2] = "host";
3094 surfxml_statenames[E_surfxml_host] = "host";
3095 surfxml_statenames[AL_surfxml_router] = NULL;
3096 surfxml_statenames[E_surfxml_router] = "router";
3097 surfxml_statenames[AL_surfxml_link] = NULL;
3098 surfxml_statenames[S_surfxml_link] = "link";
3099 surfxml_statenames[S_surfxml_link_1] = "link";
3100 surfxml_statenames[S_surfxml_link_2] = "link";
3101 surfxml_statenames[E_surfxml_link] = "link";
3102 surfxml_statenames[AL_surfxml_route] = NULL;
3103 surfxml_statenames[S_surfxml_route] = "route";
3104 surfxml_statenames[S_surfxml_route_1] = "route";
3105 surfxml_statenames[S_surfxml_route_2] = "route";
3106 surfxml_statenames[E_surfxml_route] = "route";
3107 surfxml_statenames[AL_surfxml_ASroute] = NULL;
3108 surfxml_statenames[S_surfxml_ASroute] = "ASroute";
3109 surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
3110 surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
3111 surfxml_statenames[E_surfxml_ASroute] = "ASroute";
3112 surfxml_statenames[AL_surfxml_link_c_ctn] = NULL;
3113 surfxml_statenames[E_surfxml_link_c_ctn] = "link:ctn";
3114 surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
3115 surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
3116 surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
3117 surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
3118 surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
3119 surfxml_statenames[AL_surfxml_process] = NULL;
3120 surfxml_statenames[S_surfxml_process] = "process";
3121 surfxml_statenames[S_surfxml_process_1] = "process";
3122 surfxml_statenames[S_surfxml_process_2] = "process";
3123 surfxml_statenames[E_surfxml_process] = "process";
3124 surfxml_statenames[AL_surfxml_argument] = NULL;
3125 surfxml_statenames[E_surfxml_argument] = "argument";
3126 surfxml_statenames[AL_surfxml_prop] = NULL;
3127 surfxml_statenames[E_surfxml_prop] = "prop";
3130 /* COMMENTS and PIs: handled uniformly for efficiency. */
3141 (yy_start) = 1; /* first start state */
3143 if ( ! surf_parse_in )
3144 surf_parse_in = stdin;
3146 if ( ! surf_parse_out )
3147 surf_parse_out = stdout;
3149 if ( ! YY_CURRENT_BUFFER ) {
3150 surf_parse_ensure_buffer_stack ();
3151 YY_CURRENT_BUFFER_LVALUE =
3152 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
3155 surf_parse__load_buffer_state( );
3158 while ( 1 ) /* loops until end-of-file is reached */
3160 yy_cp = (yy_c_buf_p);
3162 /* Support of surf_parse_text. */
3163 *yy_cp = (yy_hold_char);
3165 /* yy_bp points to the position in yy_ch_buf of the start of
3170 yy_current_state = (yy_start);
3174 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
3175 if ( yy_accept[yy_current_state] )
3177 (yy_last_accepting_state) = yy_current_state;
3178 (yy_last_accepting_cpos) = yy_cp;
3180 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3182 yy_current_state = (int) yy_def[yy_current_state];
3183 if ( yy_current_state >= 1715 )
3184 yy_c = yy_meta[(unsigned int) yy_c];
3186 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3189 while ( yy_base[yy_current_state] != 5784 );
3192 yy_act = yy_accept[yy_current_state];
3194 { /* have to back up */
3195 yy_cp = (yy_last_accepting_cpos);
3196 yy_current_state = (yy_last_accepting_state);
3197 yy_act = yy_accept[yy_current_state];
3200 YY_DO_BEFORE_ACTION;
3202 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
3205 for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
3206 if ( surf_parse_text[yyl] == '\n' )
3208 surf_parse_lineno++;
3212 do_action: /* This label is used only to access EOF actions. */
3215 { /* beginning of action switch */
3216 case 0: /* must back up */
3217 /* undo the effects of YY_DO_BEFORE_ACTION */
3218 *yy_cp = (yy_hold_char);
3219 yy_cp = (yy_last_accepting_cpos);
3220 yy_current_state = (yy_last_accepting_state);
3221 goto yy_find_action;
3239 /* rule 6 can match eol */
3243 case YY_STATE_EOF(INCOMMENT):
3244 FAIL("EOF in comment.");
3253 /* rule 9 can match eol */
3257 case YY_STATE_EOF(INPI):
3258 FAIL("EOF in PI (processing instruction).");
3261 /* SPACES: skipped uniformly */
3263 /* rule 10 can match eol */
3267 /* PROLOG: determine root element and process it. */
3270 /* rule 11 can match eol */
3275 /* rule 12 can match eol */
3277 FAIL("Bad declaration %s.",surf_parse_text);
3281 /* rule 13 can match eol */
3283 SET(ROOT_surfxml_platform);
3286 /* rule 14 can match eol */
3288 FAIL("Bad declaration %s.",surf_parse_text);
3292 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
3294 case YY_STATE_EOF(PROLOG):
3295 case YY_STATE_EOF(DOCTYPE):
3296 FAIL("EOF in prolog.");
3299 /* RULES DERIVED FROM DTD. */
3300 /* <!-- Small DTD for SURF based tools. -->
3301 * <!-- <!ELEMENT platform ((include|trace|random|AS|trace:connect)*,(include|trace|random|AS|set|foreach|host|router|link|trace:connect)*,(include|route|trace:connect|process)*)> --> */
3305 /* rule 16 can match eol */
3307 FAIL("Starting tag <platform> is not allowed here.");
3310 /* rule 17 can match eol */
3313 AX_surfxml_platform_version = 1;
3314 AX_surfxml_platform_xmlns_c_link = 5;
3315 AX_surfxml_platform_xmlns_c_route = 37;
3316 ENTER(AL_surfxml_platform); pushbuffer(0);
3321 /* rule 18 can match eol */
3323 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
3326 /* rule 19 can match eol */
3328 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
3331 /* rule 20 can match eol */
3333 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_xmlns_c_link);
3336 /* rule 21 can match eol */
3338 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_xmlns_c_link);
3341 /* rule 22 can match eol */
3343 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_xmlns_c_route);
3346 /* rule 23 can match eol */
3348 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_xmlns_c_route);
3353 LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
3359 LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
3361 case ROOT_surfxml_platform: SET(EPILOG); break;
3367 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
3371 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
3373 case YY_STATE_EOF(AL_surfxml_platform):
3374 FAIL("EOF in attribute list of `platform' element.");
3378 /* rule 28 can match eol */
3382 ETag_surfxml_platform();
3383 popbuffer(); /* attribute */
3385 case ROOT_surfxml_platform: SET(EPILOG); break;
3390 /* rule 29 can match eol */
3392 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
3396 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
3398 case YY_STATE_EOF(S_surfxml_platform_8):
3399 case YY_STATE_EOF(S_surfxml_platform_1):
3400 case YY_STATE_EOF(S_surfxml_platform_3):
3401 case YY_STATE_EOF(S_surfxml_platform):
3402 case YY_STATE_EOF(S_surfxml_platform_4):
3403 case YY_STATE_EOF(S_surfxml_platform_6):
3404 case YY_STATE_EOF(E_surfxml_platform):
3405 FAIL("Premature EOF: `</platform>' expected.");
3409 /* rule 31 can match eol */
3411 FAIL("Starting tag <trace> is not allowed here.");
3414 /* rule 32 can match eol */
3417 AX_surfxml_trace_id = 0;
3418 AX_surfxml_trace_file = 0;
3419 AX_surfxml_trace_periodicity = 0;
3420 ENTER(AL_surfxml_trace); pushbuffer(0);
3425 /* rule 33 can match eol */
3427 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
3430 /* rule 34 can match eol */
3432 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
3435 /* rule 35 can match eol */
3437 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
3440 /* rule 36 can match eol */
3442 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
3445 /* rule 37 can match eol */
3447 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
3450 /* rule 38 can match eol */
3452 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
3457 if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
3458 if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
3459 LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
3465 if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
3466 if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
3467 LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
3469 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
3470 case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
3476 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
3480 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
3482 case YY_STATE_EOF(AL_surfxml_trace):
3483 FAIL("EOF in attribute list of `trace' element.");
3487 /* rule 43 can match eol */
3492 ETag_surfxml_trace();
3493 surfxml_pcdata_ix = popbuffer();
3494 popbuffer(); /* attribute */
3496 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
3497 case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
3502 /* rule 44 can match eol */
3504 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
3506 case YY_STATE_EOF(IN_trace):
3507 FAIL("Premature EOF: `</trace>' expected.");
3511 /* rule 45 can match eol */
3513 FAIL("Starting tag <random> is not allowed here.");
3516 /* rule 46 can match eol */
3519 AX_surfxml_random_id = 0;
3520 AX_surfxml_random_min = 0;
3521 AX_surfxml_random_max = 0;
3522 AX_surfxml_random_mean = 0;
3523 AX_surfxml_random_std_deviation = 0;
3524 AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
3525 ENTER(AL_surfxml_random); pushbuffer(0);
3530 /* rule 47 can match eol */
3532 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
3535 /* rule 48 can match eol */
3537 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
3540 /* rule 49 can match eol */
3542 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
3545 /* rule 50 can match eol */
3547 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
3550 /* rule 51 can match eol */
3552 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
3555 /* rule 52 can match eol */
3557 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
3560 /* rule 53 can match eol */
3562 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
3565 /* rule 54 can match eol */
3567 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
3570 /* rule 55 can match eol */
3572 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std_deviation);
3575 /* rule 56 can match eol */
3577 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std_deviation);
3580 /* rule 57 can match eol */
3582 /* rule 58 can match eol */
3584 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
3587 /* rule 59 can match eol */
3589 /* rule 60 can match eol */
3591 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
3596 if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
3597 if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
3598 if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
3599 if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
3600 if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
3601 LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
3607 if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
3608 if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
3609 if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
3610 if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
3611 if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
3612 LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
3614 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
3615 case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
3621 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
3625 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
3627 case YY_STATE_EOF(AL_surfxml_random):
3628 FAIL("EOF in attribute list of `random' element.");
3632 /* rule 65 can match eol */
3636 ETag_surfxml_random();
3637 popbuffer(); /* attribute */
3639 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
3640 case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
3645 /* rule 66 can match eol */
3647 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
3651 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
3653 case YY_STATE_EOF(S_surfxml_random_2):
3654 case YY_STATE_EOF(S_surfxml_random):
3655 case YY_STATE_EOF(E_surfxml_random):
3656 FAIL("Premature EOF: `</random>' expected.");
3660 /* rule 68 can match eol */
3662 FAIL("Starting tag <trace:connect> is not allowed here.");
3665 /* rule 69 can match eol */
3668 AX_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_HOST_AVAIL;
3669 AX_surfxml_trace_c_connect_trace = 0;
3670 AX_surfxml_trace_c_connect_element = 0;
3671 ENTER(AL_surfxml_trace_c_connect); pushbuffer(0);
3676 /* rule 70 can match eol */
3678 /* rule 71 can match eol */
3680 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_HOST_AVAIL;
3683 /* rule 72 can match eol */
3685 /* rule 73 can match eol */
3687 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_POWER;
3690 /* rule 74 can match eol */
3692 /* rule 75 can match eol */
3694 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_LINK_AVAIL;
3697 /* rule 76 can match eol */
3699 /* rule 77 can match eol */
3701 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_BANDWIDTH;
3704 /* rule 78 can match eol */
3706 /* rule 79 can match eol */
3708 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_LATENCY;
3711 /* rule 80 can match eol */
3713 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_c_connect_trace);
3716 /* rule 81 can match eol */
3718 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_c_connect_trace);
3721 /* rule 82 can match eol */
3723 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_c_connect_element);
3726 /* rule 83 can match eol */
3728 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_c_connect_element);
3733 if (!AX_surfxml_trace_c_connect_trace) FAIL("Required attribute `trace' not set for `trace:connect' element.");
3734 if (!AX_surfxml_trace_c_connect_element) FAIL("Required attribute `element' not set for `trace:connect' element.");
3735 LEAVE; STag_surfxml_trace_c_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_c_connect);
3741 if (!AX_surfxml_trace_c_connect_trace) FAIL("Required attribute `trace' not set for `trace:connect' element.");
3742 if (!AX_surfxml_trace_c_connect_element) FAIL("Required attribute `element' not set for `trace:connect' element.");
3743 LEAVE; STag_surfxml_trace_c_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_c_connect(); popbuffer(); /* attribute */
3745 case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
3746 case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_8); break;
3747 case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
3753 FAIL("Unexpected character `%c' in attribute list of trace:connect element.", surf_parse_text[0]);
3757 FAIL("Bad attribute `%s' in `trace:connect' element start tag.",surf_parse_text);
3759 case YY_STATE_EOF(AL_surfxml_trace_c_connect):
3760 FAIL("EOF in attribute list of `trace:connect' element.");
3764 /* rule 88 can match eol */
3768 ETag_surfxml_trace_c_connect();
3769 popbuffer(); /* attribute */
3771 case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
3772 case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_8); break;
3773 case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
3778 /* rule 89 can match eol */
3780 FAIL("Unexpected end-tag `%s': `</trace:connect>' expected.",surf_parse_text);
3784 FAIL("Unexpected character `%c': `</trace:connect>' expected.",surf_parse_text[0]);
3786 case YY_STATE_EOF(E_surfxml_trace_c_connect):
3787 FAIL("Premature EOF: `</trace:connect>' expected.");
3791 /* rule 91 can match eol */
3793 FAIL("Starting tag <AS> is not allowed here.");
3796 /* rule 92 can match eol */
3799 AX_surfxml_AS_id = 0;
3800 AX_surfxml_AS_routing = 0;
3801 ENTER(AL_surfxml_AS); pushbuffer(0);
3806 /* rule 93 can match eol */
3808 ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_id);
3811 /* rule 94 can match eol */
3813 ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_id);
3816 /* rule 95 can match eol */
3818 ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_routing);
3821 /* rule 96 can match eol */
3823 ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_routing);
3828 if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
3829 if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
3830 LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
3836 if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
3837 if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
3838 LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
3840 case S_surfxml_AS_2: case S_surfxml_AS_3: case S_surfxml_AS: SET(S_surfxml_AS_3); break;
3841 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
3842 case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
3848 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
3852 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
3854 case YY_STATE_EOF(AL_surfxml_AS):
3855 FAIL("EOF in attribute list of `AS' element.");
3859 /* rule 101 can match eol */
3864 popbuffer(); /* attribute */
3866 case S_surfxml_AS_2: case S_surfxml_AS_3: case S_surfxml_AS: SET(S_surfxml_AS_3); break;
3867 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
3868 case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
3873 /* rule 102 can match eol */
3875 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
3879 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
3881 case YY_STATE_EOF(S_surfxml_AS_1):
3882 case YY_STATE_EOF(S_surfxml_AS_9):
3883 case YY_STATE_EOF(S_surfxml_AS_11):
3884 case YY_STATE_EOF(S_surfxml_AS_6):
3885 case YY_STATE_EOF(E_surfxml_AS):
3886 case YY_STATE_EOF(S_surfxml_AS_3):
3887 case YY_STATE_EOF(S_surfxml_AS_13):
3888 case YY_STATE_EOF(S_surfxml_AS_8):
3889 case YY_STATE_EOF(S_surfxml_AS):
3890 case YY_STATE_EOF(S_surfxml_AS_4):
3891 FAIL("Premature EOF: `</AS>' expected.");
3895 /* rule 104 can match eol */
3897 FAIL("Starting tag <host> is not allowed here.");
3900 /* rule 105 can match eol */
3903 AX_surfxml_host_id = 0;
3904 AX_surfxml_host_power = 0;
3905 AX_surfxml_host_availability = 69;
3906 AX_surfxml_host_availability_file = 0;
3907 AX_surfxml_host_state = A_surfxml_host_state_ON;
3908 AX_surfxml_host_state_file = 0;
3909 AX_surfxml_host_interference_send = 73;
3910 AX_surfxml_host_interference_recv = 77;
3911 AX_surfxml_host_interference_send_recv = 81;
3912 AX_surfxml_host_max_outgoing_rate = 85;
3913 AX_surfxml_host_vivaldi = 90;
3914 ENTER(AL_surfxml_host); pushbuffer(0);
3919 /* rule 106 can match eol */
3921 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
3924 /* rule 107 can match eol */
3926 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
3929 /* rule 108 can match eol */
3931 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
3934 /* rule 109 can match eol */
3936 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
3939 /* rule 110 can match eol */
3941 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
3944 /* rule 111 can match eol */
3946 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
3949 /* rule 112 can match eol */
3951 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability_file);
3954 /* rule 113 can match eol */
3956 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability_file);
3959 /* rule 114 can match eol */
3961 /* rule 115 can match eol */
3963 A_surfxml_host_state = A_surfxml_host_state_ON;
3966 /* rule 116 can match eol */
3968 /* rule 117 can match eol */
3970 A_surfxml_host_state = A_surfxml_host_state_OFF;
3973 /* rule 118 can match eol */
3975 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state_file);
3978 /* rule 119 can match eol */
3980 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state_file);
3983 /* rule 120 can match eol */
3985 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_interference_send);
3988 /* rule 121 can match eol */
3990 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_interference_send);
3993 /* rule 122 can match eol */
3995 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_interference_recv);
3998 /* rule 123 can match eol */
4000 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_interference_recv);
4003 /* rule 124 can match eol */
4005 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_interference_send_recv);
4008 /* rule 125 can match eol */
4010 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_interference_send_recv);
4013 /* rule 126 can match eol */
4015 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_max_outgoing_rate);
4018 /* rule 127 can match eol */
4020 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_max_outgoing_rate);
4023 /* rule 128 can match eol */
4025 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_vivaldi);
4028 /* rule 129 can match eol */
4030 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_vivaldi);
4035 if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
4036 if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
4037 LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
4043 if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
4044 if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
4045 LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
4047 case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4048 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
4054 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
4058 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
4060 case YY_STATE_EOF(AL_surfxml_host):
4061 FAIL("EOF in attribute list of `host' element.");
4065 /* rule 134 can match eol */
4069 ETag_surfxml_host();
4070 popbuffer(); /* attribute */
4072 case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4073 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
4078 /* rule 135 can match eol */
4080 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
4084 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
4086 case YY_STATE_EOF(S_surfxml_host):
4087 case YY_STATE_EOF(E_surfxml_host):
4088 case YY_STATE_EOF(S_surfxml_host_2):
4089 FAIL("Premature EOF: `</host>' expected.");
4093 /* rule 137 can match eol */
4095 FAIL("Starting tag <router> is not allowed here.");
4098 /* rule 138 can match eol */
4101 AX_surfxml_router_id = 0;
4102 ENTER(AL_surfxml_router); pushbuffer(0);
4107 /* rule 139 can match eol */
4109 ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
4112 /* rule 140 can match eol */
4114 ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
4119 if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
4120 LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
4126 if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
4127 LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
4129 case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4130 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
4136 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
4140 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
4142 case YY_STATE_EOF(AL_surfxml_router):
4143 FAIL("EOF in attribute list of `router' element.");
4147 /* rule 145 can match eol */
4151 ETag_surfxml_router();
4152 popbuffer(); /* attribute */
4154 case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4155 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
4160 /* rule 146 can match eol */
4162 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
4166 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
4168 case YY_STATE_EOF(E_surfxml_router):
4169 FAIL("Premature EOF: `</router>' expected.");
4173 /* rule 148 can match eol */
4175 FAIL("Starting tag <link> is not allowed here.");
4178 /* rule 149 can match eol */
4181 AX_surfxml_link_id = 0;
4182 AX_surfxml_link_bandwidth = 0;
4183 AX_surfxml_link_bandwidth_file = 0;
4184 AX_surfxml_link_latency = 96;
4185 AX_surfxml_link_latency_file = 0;
4186 AX_surfxml_link_state = A_surfxml_link_state_ON;
4187 AX_surfxml_link_state_file = 0;
4188 AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
4189 ENTER(AL_surfxml_link); pushbuffer(0);
4194 /* rule 150 can match eol */
4196 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
4199 /* rule 151 can match eol */
4201 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
4204 /* rule 152 can match eol */
4206 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
4209 /* rule 153 can match eol */
4211 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
4214 /* rule 154 can match eol */
4216 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth_file);
4219 /* rule 155 can match eol */
4221 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth_file);
4224 /* rule 156 can match eol */
4226 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
4229 /* rule 157 can match eol */
4231 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
4234 /* rule 158 can match eol */
4236 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency_file);
4239 /* rule 159 can match eol */
4241 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency_file);
4244 /* rule 160 can match eol */
4246 /* rule 161 can match eol */
4248 A_surfxml_link_state = A_surfxml_link_state_ON;
4251 /* rule 162 can match eol */
4253 /* rule 163 can match eol */
4255 A_surfxml_link_state = A_surfxml_link_state_OFF;
4258 /* rule 164 can match eol */
4260 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state_file);
4263 /* rule 165 can match eol */
4265 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state_file);
4268 /* rule 166 can match eol */
4270 /* rule 167 can match eol */
4272 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
4275 /* rule 168 can match eol */
4277 /* rule 169 can match eol */
4279 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
4284 if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
4285 if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
4286 LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
4292 if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
4293 if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
4294 LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
4296 case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4297 case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
4298 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
4304 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
4308 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
4310 case YY_STATE_EOF(AL_surfxml_link):
4311 FAIL("EOF in attribute list of `link' element.");
4315 /* rule 174 can match eol */
4319 ETag_surfxml_link();
4320 popbuffer(); /* attribute */
4322 case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4323 case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
4324 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
4329 /* rule 175 can match eol */
4331 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
4335 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
4337 case YY_STATE_EOF(E_surfxml_link):
4338 case YY_STATE_EOF(S_surfxml_link_2):
4339 case YY_STATE_EOF(S_surfxml_link):
4340 FAIL("Premature EOF: `</link>' expected.");
4344 /* rule 177 can match eol */
4346 FAIL("Starting tag <route> is not allowed here.");
4349 /* rule 178 can match eol */
4352 AX_surfxml_route_src = 0;
4353 AX_surfxml_route_dst = 0;
4354 ENTER(AL_surfxml_route); pushbuffer(0);
4359 /* rule 179 can match eol */
4361 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
4364 /* rule 180 can match eol */
4366 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
4369 /* rule 181 can match eol */
4371 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
4374 /* rule 182 can match eol */
4376 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
4381 if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
4382 if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
4383 LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
4389 if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
4390 if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
4391 LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
4393 case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_8); break;
4394 case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
4400 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
4404 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
4406 case YY_STATE_EOF(AL_surfxml_route):
4407 FAIL("EOF in attribute list of `route' element.");
4411 /* rule 187 can match eol */
4415 ETag_surfxml_route();
4416 popbuffer(); /* attribute */
4418 case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_8); break;
4419 case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
4424 /* rule 188 can match eol */
4426 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
4430 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
4432 case YY_STATE_EOF(S_surfxml_route):
4433 case YY_STATE_EOF(S_surfxml_route_2):
4434 case YY_STATE_EOF(E_surfxml_route):
4435 FAIL("Premature EOF: `</route>' expected.");
4439 /* rule 190 can match eol */
4441 FAIL("Starting tag <ASroute> is not allowed here.");
4444 /* rule 191 can match eol */
4447 AX_surfxml_ASroute_src = 0;
4448 AX_surfxml_ASroute_dst = 0;
4449 AX_surfxml_ASroute_gw_src = 0;
4450 AX_surfxml_ASroute_gw_dst = 0;
4451 ENTER(AL_surfxml_ASroute); pushbuffer(0);
4456 /* rule 192 can match eol */
4458 ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_src);
4461 /* rule 193 can match eol */
4463 ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_src);
4466 /* rule 194 can match eol */
4468 ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_dst);
4471 /* rule 195 can match eol */
4473 ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_dst);
4476 /* rule 196 can match eol */
4478 ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw_src);
4481 /* rule 197 can match eol */
4483 ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw_src);
4486 /* rule 198 can match eol */
4488 ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw_dst);
4491 /* rule 199 can match eol */
4493 ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw_dst);
4498 if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
4499 if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
4500 if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
4501 if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
4502 LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
4508 if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
4509 if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
4510 if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
4511 if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
4512 LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
4514 case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_3: case S_surfxml_AS: SET(S_surfxml_AS_6); break;
4520 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
4524 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
4526 case YY_STATE_EOF(AL_surfxml_ASroute):
4527 FAIL("EOF in attribute list of `ASroute' element.");
4531 /* rule 204 can match eol */
4535 ETag_surfxml_ASroute();
4536 popbuffer(); /* attribute */
4538 case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_3: case S_surfxml_AS: SET(S_surfxml_AS_6); break;
4543 /* rule 205 can match eol */
4545 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
4549 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
4551 case YY_STATE_EOF(E_surfxml_ASroute):
4552 case YY_STATE_EOF(S_surfxml_ASroute):
4553 case YY_STATE_EOF(S_surfxml_ASroute_2):
4554 FAIL("Premature EOF: `</ASroute>' expected.");
4558 /* rule 207 can match eol */
4560 FAIL("Starting tag <link:ctn> is not allowed here.");
4563 /* rule 208 can match eol */
4566 AX_surfxml_link_c_ctn_id = 0;
4567 ENTER(AL_surfxml_link_c_ctn); pushbuffer(0);
4572 /* rule 209 can match eol */
4574 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_c_ctn_id);
4577 /* rule 210 can match eol */
4579 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_c_ctn_id);
4584 if (!AX_surfxml_link_c_ctn_id) FAIL("Required attribute `id' not set for `link:ctn' element.");
4585 LEAVE; STag_surfxml_link_c_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_c_ctn);
4591 if (!AX_surfxml_link_c_ctn_id) FAIL("Required attribute `id' not set for `link:ctn' element.");
4592 LEAVE; STag_surfxml_link_c_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_c_ctn(); popbuffer(); /* attribute */
4594 case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
4595 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
4596 case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
4602 FAIL("Unexpected character `%c' in attribute list of link:ctn element.", surf_parse_text[0]);
4606 FAIL("Bad attribute `%s' in `link:ctn' element start tag.",surf_parse_text);
4608 case YY_STATE_EOF(AL_surfxml_link_c_ctn):
4609 FAIL("EOF in attribute list of `link:ctn' element.");
4613 /* rule 215 can match eol */
4617 ETag_surfxml_link_c_ctn();
4618 popbuffer(); /* attribute */
4620 case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
4621 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
4622 case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
4627 /* rule 216 can match eol */
4629 FAIL("Unexpected end-tag `%s': `</link:ctn>' expected.",surf_parse_text);
4633 FAIL("Unexpected character `%c': `</link:ctn>' expected.",surf_parse_text[0]);
4635 case YY_STATE_EOF(E_surfxml_link_c_ctn):
4636 FAIL("Premature EOF: `</link:ctn>' expected.");
4640 /* rule 218 can match eol */
4642 FAIL("Starting tag <bypassRoute> is not allowed here.");
4645 /* rule 219 can match eol */
4648 AX_surfxml_bypassRoute_src = 0;
4649 AX_surfxml_bypassRoute_dst = 0;
4650 AX_surfxml_bypassRoute_gw_src = 0;
4651 AX_surfxml_bypassRoute_gw_dst = 0;
4652 ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
4657 /* rule 220 can match eol */
4659 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_src);
4662 /* rule 221 can match eol */
4664 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_src);
4667 /* rule 222 can match eol */
4669 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_dst);
4672 /* rule 223 can match eol */
4674 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_dst);
4677 /* rule 224 can match eol */
4679 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_gw_src);
4682 /* rule 225 can match eol */
4684 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_gw_src);
4687 /* rule 226 can match eol */
4689 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_gw_dst);
4692 /* rule 227 can match eol */
4694 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_gw_dst);
4699 if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
4700 if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
4701 if (!AX_surfxml_bypassRoute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassRoute' element.");
4702 if (!AX_surfxml_bypassRoute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassRoute' element.");
4703 LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
4709 if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
4710 if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
4711 if (!AX_surfxml_bypassRoute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassRoute' element.");
4712 if (!AX_surfxml_bypassRoute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassRoute' element.");
4713 LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
4715 case S_surfxml_AS_1: case S_surfxml_AS_7: case S_surfxml_AS_6: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: SET(S_surfxml_AS_8); break;
4721 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
4725 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
4727 case YY_STATE_EOF(AL_surfxml_bypassRoute):
4728 FAIL("EOF in attribute list of `bypassRoute' element.");
4732 /* rule 232 can match eol */
4736 ETag_surfxml_bypassRoute();
4737 popbuffer(); /* attribute */
4739 case S_surfxml_AS_1: case S_surfxml_AS_7: case S_surfxml_AS_6: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: SET(S_surfxml_AS_8); break;
4744 /* rule 233 can match eol */
4746 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
4750 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
4752 case YY_STATE_EOF(S_surfxml_bypassRoute):
4753 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
4754 case YY_STATE_EOF(E_surfxml_bypassRoute):
4755 FAIL("Premature EOF: `</bypassRoute>' expected.");
4759 /* rule 235 can match eol */
4761 FAIL("Starting tag <process> is not allowed here.");
4764 /* rule 236 can match eol */
4767 AX_surfxml_process_host = 0;
4768 AX_surfxml_process_function = 0;
4769 AX_surfxml_process_start_time = 100;
4770 AX_surfxml_process_kill_time = 105;
4771 ENTER(AL_surfxml_process); pushbuffer(0);
4776 /* rule 237 can match eol */
4778 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
4781 /* rule 238 can match eol */
4783 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
4786 /* rule 239 can match eol */
4788 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
4791 /* rule 240 can match eol */
4793 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
4796 /* rule 241 can match eol */
4798 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start_time);
4801 /* rule 242 can match eol */
4803 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start_time);
4806 /* rule 243 can match eol */
4808 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill_time);
4811 /* rule 244 can match eol */
4813 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill_time);
4818 if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
4819 if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
4820 LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
4826 if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
4827 if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
4828 LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
4830 case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_8); break;
4836 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
4840 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
4842 case YY_STATE_EOF(AL_surfxml_process):
4843 FAIL("EOF in attribute list of `process' element.");
4847 /* rule 249 can match eol */
4851 ETag_surfxml_process();
4852 popbuffer(); /* attribute */
4854 case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_8); break;
4859 /* rule 250 can match eol */
4861 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
4865 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
4867 case YY_STATE_EOF(E_surfxml_process):
4868 case YY_STATE_EOF(S_surfxml_process):
4869 case YY_STATE_EOF(S_surfxml_process_2):
4870 FAIL("Premature EOF: `</process>' expected.");
4874 /* rule 252 can match eol */
4876 FAIL("Starting tag <argument> is not allowed here.");
4879 /* rule 253 can match eol */
4882 AX_surfxml_argument_value = 0;
4883 ENTER(AL_surfxml_argument); pushbuffer(0);
4888 /* rule 254 can match eol */
4890 ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
4893 /* rule 255 can match eol */
4895 ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
4900 if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
4901 LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
4907 if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
4908 LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
4910 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
4916 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
4920 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
4922 case YY_STATE_EOF(AL_surfxml_argument):
4923 FAIL("EOF in attribute list of `argument' element.");
4927 /* rule 260 can match eol */
4931 ETag_surfxml_argument();
4932 popbuffer(); /* attribute */
4934 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
4939 /* rule 261 can match eol */
4941 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
4945 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
4947 case YY_STATE_EOF(E_surfxml_argument):
4948 FAIL("Premature EOF: `</argument>' expected.");
4951 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
4952 * <!-- <!ATTLIST prop key CDATA #REQUIRED> --> */
4954 /* rule 263 can match eol */
4956 FAIL("Starting tag <prop> is not allowed here.");
4959 /* rule 264 can match eol */
4962 AX_surfxml_prop_id = 0;
4963 AX_surfxml_prop_value = 0;
4964 ENTER(AL_surfxml_prop); pushbuffer(0);
4969 /* rule 265 can match eol */
4971 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
4974 /* rule 266 can match eol */
4976 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
4979 /* rule 267 can match eol */
4981 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
4984 /* rule 268 can match eol */
4986 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
4991 if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
4992 if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
4993 LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
4999 if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
5000 if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
5001 LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
5003 case S_surfxml_random_2: case S_surfxml_random: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
5004 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
5005 case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
5006 case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
5012 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
5016 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
5018 case YY_STATE_EOF(AL_surfxml_prop):
5019 FAIL("EOF in attribute list of `prop' element.");
5023 /* rule 273 can match eol */
5027 ETag_surfxml_prop();
5028 popbuffer(); /* attribute */
5030 case S_surfxml_random_2: case S_surfxml_random: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
5031 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
5032 case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
5033 case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
5038 /* rule 274 can match eol */
5040 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
5044 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
5046 case YY_STATE_EOF(E_surfxml_prop):
5047 FAIL("Premature EOF: `</prop>' expected.");
5050 /* EPILOG: after the root element. */
5054 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
5056 case YY_STATE_EOF(EPILOG):
5060 /* CHARACTER DATA. */
5062 /* Non-defined standard entities... */
5083 /* Character entities. */
5086 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
5090 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
5094 /* rule 284 can match eol */
5096 /* rule 285 can match eol */
5098 /* rule 286 can match eol */
5100 /* rule 287 can match eol */
5111 FAIL("Unexpected `]""]>' in character data.");
5118 case YY_STATE_EOF(VALUE1):
5119 FAIL("EOF in literal (\"'\" expected).");
5126 case YY_STATE_EOF(VALUE2):
5127 FAIL("EOF in literal (`\"' expected).");
5131 /* rule 292 can match eol */
5133 BUFFERPUTC(surf_parse_text[0]);
5137 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
5144 /* "]""]" BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
5147 BUFFERPUTC(surf_parse_text[0]);
5149 case YY_STATE_EOF(CDATA):
5150 FAIL("EOF in CDATA section.");
5153 /* Impossible rules to avoid warnings from flex(1). */
5154 /* Ideally, this should be replaced by code in flexml.pl that
5155 generates just the states not covered by other rules. */
5158 /* rule 296 can match eol */
5160 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
5167 case YY_STATE_EOF(INITIAL):
5168 case YY_STATE_EOF(ROOT_surfxml_platform):
5169 case YY_STATE_EOF(S_surfxml_platform_2):
5170 case YY_STATE_EOF(S_surfxml_platform_5):
5171 case YY_STATE_EOF(S_surfxml_platform_7):
5172 case YY_STATE_EOF(S_surfxml_random_1):
5173 case YY_STATE_EOF(S_surfxml_AS_2):
5174 case YY_STATE_EOF(S_surfxml_AS_5):
5175 case YY_STATE_EOF(S_surfxml_AS_7):
5176 case YY_STATE_EOF(S_surfxml_AS_10):
5177 case YY_STATE_EOF(S_surfxml_AS_12):
5178 case YY_STATE_EOF(S_surfxml_host_1):
5179 case YY_STATE_EOF(S_surfxml_link_1):
5180 case YY_STATE_EOF(S_surfxml_route_1):
5181 case YY_STATE_EOF(S_surfxml_ASroute_1):
5182 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
5183 case YY_STATE_EOF(S_surfxml_process_1):
5184 case YY_STATE_EOF(IMPOSSIBLE):
5187 case YY_END_OF_BUFFER:
5189 /* Amount of text matched not including the EOB char. */
5190 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
5192 /* Undo the effects of YY_DO_BEFORE_ACTION. */
5193 *yy_cp = (yy_hold_char);
5194 YY_RESTORE_YY_MORE_OFFSET
5196 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
5198 /* We're scanning a new file or input source. It's
5199 * possible that this happened because the user
5200 * just pointed surf_parse_in at a new source and called
5201 * surf_parse_lex(). If so, then we have to assure
5202 * consistency between YY_CURRENT_BUFFER and our
5203 * globals. Here is the right place to do so, because
5204 * this is the first action (other than possibly a
5205 * back-up) that will match for the new input source.
5207 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5208 YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
5209 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
5212 /* Note that here we test for yy_c_buf_p "<=" to the position
5213 * of the first EOB in the buffer, since yy_c_buf_p will
5214 * already have been incremented past the NUL character
5215 * (since all states make transitions on EOB to the
5216 * end-of-buffer state). Contrast this with the test
5219 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5220 { /* This was really a NUL. */
5221 yy_state_type yy_next_state;
5223 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
5225 yy_current_state = yy_get_previous_state( );
5227 /* Okay, we're now positioned to make the NUL
5228 * transition. We couldn't have
5229 * yy_get_previous_state() go ahead and do it
5230 * for us because it doesn't know how to deal
5231 * with the possibility of jamming (and we don't
5232 * want to build jamming into it because then it
5233 * will run more slowly).
5236 yy_next_state = yy_try_NUL_trans( yy_current_state );
5238 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5240 if ( yy_next_state )
5242 /* Consume the NUL. */
5243 yy_cp = ++(yy_c_buf_p);
5244 yy_current_state = yy_next_state;
5250 yy_cp = (yy_c_buf_p);
5251 goto yy_find_action;
5255 else switch ( yy_get_next_buffer( ) )
5257 case EOB_ACT_END_OF_FILE:
5259 (yy_did_buffer_switch_on_eof) = 0;
5261 if ( surf_parse_wrap( ) )
5263 /* Note: because we've taken care in
5264 * yy_get_next_buffer() to have set up
5265 * surf_parse_text, we can now set up
5266 * yy_c_buf_p so that if some total
5267 * hoser (like flex itself) wants to
5268 * call the scanner after we return the
5269 * YY_NULL, it'll still work - another
5270 * YY_NULL will get returned.
5272 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
5274 yy_act = YY_STATE_EOF(YY_START);
5280 if ( ! (yy_did_buffer_switch_on_eof) )
5286 case EOB_ACT_CONTINUE_SCAN:
5288 (yytext_ptr) + yy_amount_of_matched_text;
5290 yy_current_state = yy_get_previous_state( );
5292 yy_cp = (yy_c_buf_p);
5293 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5296 case EOB_ACT_LAST_MATCH:
5298 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
5300 yy_current_state = yy_get_previous_state( );
5302 yy_cp = (yy_c_buf_p);
5303 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5304 goto yy_find_action;
5311 "fatal flex scanner internal error--no action found" );
5312 } /* end of action switch */
5313 } /* end of scanning one token */
5314 } /* end of surf_parse_lex */
5316 /* yy_get_next_buffer - try to read in a new buffer
5318 * Returns a code representing an action:
5319 * EOB_ACT_LAST_MATCH -
5320 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
5321 * EOB_ACT_END_OF_FILE - end of file
5323 static int yy_get_next_buffer (void)
5325 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
5326 register char *source = (yytext_ptr);
5327 register int number_to_move, i;
5330 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
5332 "fatal flex scanner internal error--end of buffer missed" );
5334 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
5335 { /* Don't try to fill the buffer, so this is an EOF. */
5336 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
5338 /* We matched a single character, the EOB, so
5339 * treat this as a final EOF.
5341 return EOB_ACT_END_OF_FILE;
5346 /* We matched some text prior to the EOB, first
5349 return EOB_ACT_LAST_MATCH;
5353 /* Try to read more data. */
5355 /* First move last chars to start of buffer. */
5356 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
5358 for ( i = 0; i < number_to_move; ++i )
5359 *(dest++) = *(source++);
5361 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
5362 /* don't do the read, it's not guaranteed to return an EOF,
5365 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
5370 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
5372 while ( num_to_read <= 0 )
5373 { /* Not enough room in the buffer - grow it. */
5375 /* just a shorter name for the current buffer */
5376 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
5378 int yy_c_buf_p_offset =
5379 (int) ((yy_c_buf_p) - b->yy_ch_buf);
5381 if ( b->yy_is_our_buffer )
5383 int new_size = b->yy_buf_size * 2;
5385 if ( new_size <= 0 )
5386 b->yy_buf_size += b->yy_buf_size / 8;
5388 b->yy_buf_size *= 2;
5390 b->yy_ch_buf = (char *)
5391 /* Include room in for 2 EOB chars. */
5392 surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
5395 /* Can't grow it, we don't own it. */
5398 if ( ! b->yy_ch_buf )
5400 "fatal error - scanner input buffer overflow" );
5402 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
5404 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
5409 if ( num_to_read > YY_READ_BUF_SIZE )
5410 num_to_read = YY_READ_BUF_SIZE;
5412 /* Read in more data. */
5413 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
5414 (yy_n_chars), (size_t) num_to_read );
5416 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5419 if ( (yy_n_chars) == 0 )
5421 if ( number_to_move == YY_MORE_ADJ )
5423 ret_val = EOB_ACT_END_OF_FILE;
5424 surf_parse_restart(surf_parse_in );
5429 ret_val = EOB_ACT_LAST_MATCH;
5430 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
5431 YY_BUFFER_EOF_PENDING;
5436 ret_val = EOB_ACT_CONTINUE_SCAN;
5438 if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
5439 /* Extend the array by 50%, plus the number we really need. */
5440 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
5441 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
5442 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
5443 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
5446 (yy_n_chars) += number_to_move;
5447 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
5448 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
5450 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
5455 /* yy_get_previous_state - get the state just before the EOB char was reached */
5457 static yy_state_type yy_get_previous_state (void)
5459 register yy_state_type yy_current_state;
5460 register char *yy_cp;
5462 yy_current_state = (yy_start);
5464 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
5466 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
5467 if ( yy_accept[yy_current_state] )
5469 (yy_last_accepting_state) = yy_current_state;
5470 (yy_last_accepting_cpos) = yy_cp;
5472 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5474 yy_current_state = (int) yy_def[yy_current_state];
5475 if ( yy_current_state >= 1715 )
5476 yy_c = yy_meta[(unsigned int) yy_c];
5478 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5481 return yy_current_state;
5484 /* yy_try_NUL_trans - try to make a transition on the NUL character
5487 * next_state = yy_try_NUL_trans( current_state );
5489 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
5491 register int yy_is_jam;
5492 register char *yy_cp = (yy_c_buf_p);
5494 register YY_CHAR yy_c = 1;
5495 if ( yy_accept[yy_current_state] )
5497 (yy_last_accepting_state) = yy_current_state;
5498 (yy_last_accepting_cpos) = yy_cp;
5500 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5502 yy_current_state = (int) yy_def[yy_current_state];
5503 if ( yy_current_state >= 1715 )
5504 yy_c = yy_meta[(unsigned int) yy_c];
5506 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5507 yy_is_jam = (yy_current_state == 1714);
5509 return yy_is_jam ? 0 : yy_current_state;
5514 static int yyinput (void)
5516 static int input (void)
5522 *(yy_c_buf_p) = (yy_hold_char);
5524 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
5526 /* yy_c_buf_p now points to the character we want to return.
5527 * If this occurs *before* the EOB characters, then it's a
5528 * valid NUL; if not, then we've hit the end of the buffer.
5530 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5531 /* This was really a NUL. */
5532 *(yy_c_buf_p) = '\0';
5535 { /* need more input */
5536 int offset = (yy_c_buf_p) - (yytext_ptr);
5539 switch ( yy_get_next_buffer( ) )
5541 case EOB_ACT_LAST_MATCH:
5542 /* This happens because yy_g_n_b()
5543 * sees that we've accumulated a
5544 * token and flags that we need to
5545 * try matching the token before
5546 * proceeding. But for input(),
5547 * there's no matching to consider.
5548 * So convert the EOB_ACT_LAST_MATCH
5549 * to EOB_ACT_END_OF_FILE.
5552 /* Reset buffer status. */
5553 surf_parse_restart(surf_parse_in );
5557 case EOB_ACT_END_OF_FILE:
5559 if ( surf_parse_wrap( ) )
5562 if ( ! (yy_did_buffer_switch_on_eof) )
5571 case EOB_ACT_CONTINUE_SCAN:
5572 (yy_c_buf_p) = (yytext_ptr) + offset;
5578 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
5579 *(yy_c_buf_p) = '\0'; /* preserve surf_parse_text */
5580 (yy_hold_char) = *++(yy_c_buf_p);
5584 surf_parse_lineno++;
5589 #endif /* ifndef YY_NO_INPUT */
5591 /** Immediately switch to a different input stream.
5592 * @param input_file A readable stream.
5594 * @note This function does not reset the start condition to @c INITIAL .
5596 void surf_parse_restart (FILE * input_file )
5599 if ( ! YY_CURRENT_BUFFER ){
5600 surf_parse_ensure_buffer_stack ();
5601 YY_CURRENT_BUFFER_LVALUE =
5602 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5605 surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
5606 surf_parse__load_buffer_state( );
5609 /** Switch to a different input buffer.
5610 * @param new_buffer The new input buffer.
5613 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer )
5616 /* TODO. We should be able to replace this entire function body
5618 * surf_parse_pop_buffer_state();
5619 * surf_parse_push_buffer_state(new_buffer);
5621 surf_parse_ensure_buffer_stack ();
5622 if ( YY_CURRENT_BUFFER == new_buffer )
5625 if ( YY_CURRENT_BUFFER )
5627 /* Flush out information for old buffer. */
5628 *(yy_c_buf_p) = (yy_hold_char);
5629 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
5630 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5633 YY_CURRENT_BUFFER_LVALUE = new_buffer;
5634 surf_parse__load_buffer_state( );
5636 /* We don't actually know whether we did this switch during
5637 * EOF (surf_parse_wrap()) processing, but the only time this flag
5638 * is looked at is after surf_parse_wrap() is called, so it's safe
5639 * to go ahead and always set it.
5641 (yy_did_buffer_switch_on_eof) = 1;
5644 static void surf_parse__load_buffer_state (void)
5646 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5647 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
5648 surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
5649 (yy_hold_char) = *(yy_c_buf_p);
5652 /** Allocate and initialize an input buffer state.
5653 * @param file A readable stream.
5654 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
5656 * @return the allocated buffer state.
5658 YY_BUFFER_STATE surf_parse__create_buffer (FILE * file, int size )
5662 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
5664 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
5666 b->yy_buf_size = size;
5668 /* yy_ch_buf has to be 2 characters longer than the size given because
5669 * we need to put in 2 end-of-buffer characters.
5671 b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2 );
5672 if ( ! b->yy_ch_buf )
5673 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
5675 b->yy_is_our_buffer = 1;
5677 surf_parse__init_buffer(b,file );
5682 /** Destroy the buffer.
5683 * @param b a buffer created with surf_parse__create_buffer()
5686 void surf_parse__delete_buffer (YY_BUFFER_STATE b )
5692 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
5693 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
5695 if ( b->yy_is_our_buffer )
5696 surf_parse_free((void *) b->yy_ch_buf );
5698 surf_parse_free((void *) b );
5702 extern int isatty (int );
5703 #endif /* __cplusplus */
5705 /* Initializes or reinitializes a buffer.
5706 * This function is sometimes called more than once on the same buffer,
5707 * such as during a surf_parse_restart() or at EOF.
5709 static void surf_parse__init_buffer (YY_BUFFER_STATE b, FILE * file )
5714 surf_parse__flush_buffer(b );
5716 b->yy_input_file = file;
5717 b->yy_fill_buffer = 1;
5719 /* If b is the current buffer, then surf_parse__init_buffer was _probably_
5720 * called from surf_parse_restart() or through yy_get_next_buffer.
5721 * In that case, we don't want to reset the lineno or column.
5723 if (b != YY_CURRENT_BUFFER){
5724 b->yy_bs_lineno = 1;
5725 b->yy_bs_column = 0;
5728 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
5733 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
5734 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
5737 void surf_parse__flush_buffer (YY_BUFFER_STATE b )
5744 /* We always need two end-of-buffer characters. The first causes
5745 * a transition to the end-of-buffer state. The second causes
5746 * a jam in that state.
5748 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
5749 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
5751 b->yy_buf_pos = &b->yy_ch_buf[0];
5754 b->yy_buffer_status = YY_BUFFER_NEW;
5756 if ( b == YY_CURRENT_BUFFER )
5757 surf_parse__load_buffer_state( );
5760 /** Pushes the new state onto the stack. The new state becomes
5761 * the current state. This function will allocate the stack
5763 * @param new_buffer The new state.
5766 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
5768 if (new_buffer == NULL)
5771 surf_parse_ensure_buffer_stack();
5773 /* This block is copied from surf_parse__switch_to_buffer. */
5774 if ( YY_CURRENT_BUFFER )
5776 /* Flush out information for old buffer. */
5777 *(yy_c_buf_p) = (yy_hold_char);
5778 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
5779 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5782 /* Only push if top exists. Otherwise, replace top. */
5783 if (YY_CURRENT_BUFFER)
5784 (yy_buffer_stack_top)++;
5785 YY_CURRENT_BUFFER_LVALUE = new_buffer;
5787 /* copied from surf_parse__switch_to_buffer. */
5788 surf_parse__load_buffer_state( );
5789 (yy_did_buffer_switch_on_eof) = 1;
5792 /** Removes and deletes the top of the stack, if present.
5793 * The next element becomes the new top.
5796 void surf_parse_pop_buffer_state (void)
5798 if (!YY_CURRENT_BUFFER)
5801 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
5802 YY_CURRENT_BUFFER_LVALUE = NULL;
5803 if ((yy_buffer_stack_top) > 0)
5804 --(yy_buffer_stack_top);
5806 if (YY_CURRENT_BUFFER) {
5807 surf_parse__load_buffer_state( );
5808 (yy_did_buffer_switch_on_eof) = 1;
5812 /* Allocates the stack if it does not exist.
5813 * Guarantees space for at least one push.
5815 static void surf_parse_ensure_buffer_stack (void)
5819 if (!(yy_buffer_stack)) {
5821 /* First allocation is just for 2 elements, since we don't know if this
5822 * scanner will even need a stack. We use 2 instead of 1 to avoid an
5823 * immediate realloc on the next call.
5826 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
5827 (num_to_alloc * sizeof(struct yy_buffer_state*)
5829 if ( ! (yy_buffer_stack) )
5830 YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
5832 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
5834 (yy_buffer_stack_max) = num_to_alloc;
5835 (yy_buffer_stack_top) = 0;
5839 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
5841 /* Increase the buffer to prepare for a possible push. */
5842 int grow_size = 8 /* arbitrary grow size */;
5844 num_to_alloc = (yy_buffer_stack_max) + grow_size;
5845 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
5847 num_to_alloc * sizeof(struct yy_buffer_state*)
5849 if ( ! (yy_buffer_stack) )
5850 YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
5852 /* zero only the new slots.*/
5853 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
5854 (yy_buffer_stack_max) = num_to_alloc;
5858 /** Setup the input buffer state to scan directly from a user-specified character buffer.
5859 * @param base the character buffer
5860 * @param size the size in bytes of the character buffer
5862 * @return the newly allocated buffer state object.
5864 YY_BUFFER_STATE surf_parse__scan_buffer (char * base, yy_size_t size )
5869 base[size-2] != YY_END_OF_BUFFER_CHAR ||
5870 base[size-1] != YY_END_OF_BUFFER_CHAR )
5871 /* They forgot to leave room for the EOB's. */
5874 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
5876 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
5878 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
5879 b->yy_buf_pos = b->yy_ch_buf = base;
5880 b->yy_is_our_buffer = 0;
5881 b->yy_input_file = 0;
5882 b->yy_n_chars = b->yy_buf_size;
5883 b->yy_is_interactive = 0;
5885 b->yy_fill_buffer = 0;
5886 b->yy_buffer_status = YY_BUFFER_NEW;
5888 surf_parse__switch_to_buffer(b );
5893 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
5894 * scan from a @e copy of @a str.
5895 * @param yystr a NUL-terminated string to scan
5897 * @return the newly allocated buffer state object.
5898 * @note If you want to scan bytes that may contain NUL values, then use
5899 * surf_parse__scan_bytes() instead.
5901 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
5904 return surf_parse__scan_bytes(yystr,strlen(yystr) );
5907 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
5908 * scan from a @e copy of @a bytes.
5909 * @param yybytes the byte buffer to scan
5910 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
5912 * @return the newly allocated buffer state object.
5914 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char * yybytes, int _yybytes_len )
5921 /* Get memory for full buffer, including space for trailing EOB's. */
5922 n = _yybytes_len + 2;
5923 buf = (char *) surf_parse_alloc(n );
5925 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
5927 for ( i = 0; i < _yybytes_len; ++i )
5928 buf[i] = yybytes[i];
5930 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
5932 b = surf_parse__scan_buffer(buf,n );
5934 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
5936 /* It's okay to grow etc. this buffer, and we should throw it
5937 * away when we're done.
5939 b->yy_is_our_buffer = 1;
5944 static void yy_push_state (int new_state )
5946 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
5950 (yy_start_stack_depth) += YY_START_STACK_INCR;
5951 new_size = (yy_start_stack_depth) * sizeof( int );
5953 if ( ! (yy_start_stack) )
5954 (yy_start_stack) = (int *) surf_parse_alloc(new_size );
5957 (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size );
5959 if ( ! (yy_start_stack) )
5960 YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
5963 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
5968 static void yy_pop_state (void)
5970 if ( --(yy_start_stack_ptr) < 0 )
5971 YY_FATAL_ERROR( "start-condition stack underflow" );
5973 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
5976 #ifndef YY_EXIT_FAILURE
5977 #define YY_EXIT_FAILURE 2
5980 static void yy_fatal_error (yyconst char* msg )
5982 (void) fprintf( stderr, "%s\n", msg );
5983 exit( YY_EXIT_FAILURE );
5986 /* Redefine yyless() so it works in section 3 code. */
5992 /* Undo effects of setting up surf_parse_text. */ \
5993 int yyless_macro_arg = (n); \
5994 YY_LESS_LINENO(yyless_macro_arg);\
5995 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
5996 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
5997 (yy_hold_char) = *(yy_c_buf_p); \
5998 *(yy_c_buf_p) = '\0'; \
5999 surf_parse_leng = yyless_macro_arg; \
6003 /* Accessor methods (get/set functions) to struct members. */
6005 /** Get the current line number.
6008 int surf_parse_get_lineno (void)
6011 return surf_parse_lineno;
6014 /** Get the input stream.
6017 FILE *surf_parse_get_in (void)
6019 return surf_parse_in;
6022 /** Get the output stream.
6025 FILE *surf_parse_get_out (void)
6027 return surf_parse_out;
6030 /** Get the length of the current token.
6033 int surf_parse_get_leng (void)
6035 return surf_parse_leng;
6038 /** Get the current token.
6042 char *surf_parse_get_text (void)
6044 return surf_parse_text;
6047 /** Set the current line number.
6048 * @param line_number
6051 void surf_parse_set_lineno (int line_number )
6054 surf_parse_lineno = line_number;
6057 /** Set the input stream. This does not discard the current
6059 * @param in_str A readable stream.
6061 * @see surf_parse__switch_to_buffer
6063 void surf_parse_set_in (FILE * in_str )
6065 surf_parse_in = in_str ;
6068 void surf_parse_set_out (FILE * out_str )
6070 surf_parse_out = out_str ;
6073 int surf_parse_get_debug (void)
6075 return surf_parse__flex_debug;
6078 void surf_parse_set_debug (int bdebug )
6080 surf_parse__flex_debug = bdebug ;
6083 static int yy_init_globals (void)
6085 /* Initialization is the same as for the non-reentrant scanner.
6086 * This function is called from surf_parse_lex_destroy(), so don't allocate here.
6089 /* We do not touch surf_parse_lineno unless the option is enabled. */
6090 surf_parse_lineno = 1;
6092 (yy_buffer_stack) = 0;
6093 (yy_buffer_stack_top) = 0;
6094 (yy_buffer_stack_max) = 0;
6095 (yy_c_buf_p) = (char *) 0;
6099 (yy_start_stack_ptr) = 0;
6100 (yy_start_stack_depth) = 0;
6101 (yy_start_stack) = NULL;
6103 /* Defined in main.c */
6105 surf_parse_in = stdin;
6106 surf_parse_out = stdout;
6108 surf_parse_in = (FILE *) 0;
6109 surf_parse_out = (FILE *) 0;
6112 /* For future reference: Set errno on error, since we are called by
6113 * surf_parse_lex_init()
6118 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
6119 int surf_parse_lex_destroy (void)
6122 /* Pop the buffer stack, destroying each element. */
6123 while(YY_CURRENT_BUFFER){
6124 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
6125 YY_CURRENT_BUFFER_LVALUE = NULL;
6126 surf_parse_pop_buffer_state();
6129 /* Destroy the stack itself. */
6130 surf_parse_free((yy_buffer_stack) );
6131 (yy_buffer_stack) = NULL;
6133 /* Destroy the start condition stack. */
6134 surf_parse_free((yy_start_stack) );
6135 (yy_start_stack) = NULL;
6137 /* Reset the globals. This is important in a non-reentrant scanner so the next time
6138 * surf_parse_lex() is called, initialization will occur. */
6145 * Internal utility routines.
6149 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
6152 for ( i = 0; i < n; ++i )
6157 #ifdef YY_NEED_STRLEN
6158 static int yy_flex_strlen (yyconst char * s )
6161 for ( n = 0; s[n]; ++n )
6168 void *surf_parse_alloc (yy_size_t size )
6170 return (void *) malloc( size );
6173 void *surf_parse_realloc (void * ptr, yy_size_t size )
6175 /* The cast to (char *) in the following accommodates both
6176 * implementations that use char* generic pointers, and those
6177 * that use void* generic pointers. It works with the latter
6178 * because both ANSI C and C++ allow castless assignment from
6179 * any pointer type to void*, and deal with argument conversions
6180 * as though doing an assignment.
6182 return (void *) realloc( (char *) ptr, size );
6185 void surf_parse_free (void * ptr )
6187 free( (char *) ptr ); /* see surf_parse_realloc() for (char *) cast */
6190 #define YYTABLES_NAME "yytables"
6192 /* Element context stack lookup. */
6193 int surfxml_element_context(int i)
6195 return (0<i && i<yy_start_stack_depth
6196 ? yy_start_stack[yy_start_stack_ptr - i]
6201 void print_yy_stack(char* fmt, ...)
6203 int i = 0; va_list ap; va_start(ap, fmt);
6204 vfprintf(stderr, fmt, ap);
6205 if (surfxml_statenames) {
6206 for (i=1; i<yy_start_stack_ptr; i++) {
6207 fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
6209 fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
6214 void print_surfxml_bufferstack()
6217 fputs("Buffer: ", stderr);
6218 for (i = 0; i < blimit; i++) {
6219 if ( surfxml_bufferstack[i] == '\377' ) break;
6220 putc(surfxml_bufferstack[i], stderr);
6225 static void debug_enter(int state, const char* statename) {
6226 yy_push_state(state);
6227 if (surf_parse__flex_debug) {
6228 print_yy_stack("--ENTER(%s) : ",statename);
6229 print_surfxml_bufferstack();
6233 static void debug_leave(void) {
6234 if (surf_parse__flex_debug) {
6235 print_yy_stack("--LEAVE : ");
6236 print_surfxml_bufferstack();
6241 static void debug_set(int state, const char* statename) {
6243 if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
6247 static void cleanup(void)
6249 if (surfxml_statenames) {
6250 free(surfxml_statenames);
6251 surfxml_statenames = NULL;
6253 free(surfxml_bufferstack);
6254 surfxml_bufferstack = NULL;
6260 static int fail(const char* fmt, ...)
6262 int chars_left, used;
6263 va_list ap; va_start(ap, fmt);
6264 #ifdef FLEXML_yylineno
6265 used = sprintf(flexml_err_msg,
6266 "Invalid XML (XML input line %d, state %d): ",
6267 surf_parse_lineno, YY_START);
6269 used = sprintf(flexml_err_msg,
6270 "Invalid XML (state %d): ",
6273 chars_left = flexml_max_err_msg_size - used - 1;
6274 vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
6277 #ifndef FLEXML_quiet_parser
6278 /* print directly to sdterr */
6279 fprintf(stderr, "%s\n", flexml_err_msg);
6280 flexml_err_msg[0] = '\0';