2 #line 3 "surf/simgrid.c"
4 #define YY_INT_ALIGNED short int
6 /* A lexical scanner generated by flex */
9 #define YY_FLEX_MAJOR_VERSION 2
10 #define YY_FLEX_MINOR_VERSION 5
11 #define YY_FLEX_SUBMINOR_VERSION 33
12 #if YY_FLEX_SUBMINOR_VERSION > 0
16 /* First, we deal with platform-specific or compiler-specific issues. */
18 /* begin standard C headers. */
24 /* end standard C headers. */
26 /* flex integer type definitions */
31 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
33 #if __STDC_VERSION__ >= 199901L
35 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
36 * if you want the limit (max/min) macros for int types.
38 #ifndef __STDC_LIMIT_MACROS
39 #define __STDC_LIMIT_MACROS 1
43 typedef int8_t flex_int8_t;
44 typedef uint8_t flex_uint8_t;
45 typedef int16_t flex_int16_t;
46 typedef uint16_t flex_uint16_t;
47 typedef int32_t flex_int32_t;
48 typedef uint32_t flex_uint32_t;
50 typedef signed char flex_int8_t;
51 typedef short int flex_int16_t;
52 typedef int flex_int32_t;
53 typedef unsigned char flex_uint8_t;
54 typedef unsigned short int flex_uint16_t;
55 typedef unsigned int flex_uint32_t;
58 /* Limits of integral types. */
60 #define INT8_MIN (-128)
63 #define INT16_MIN (-32767-1)
66 #define INT32_MIN (-2147483647-1)
69 #define INT8_MAX (127)
72 #define INT16_MAX (32767)
75 #define INT32_MAX (2147483647)
78 #define UINT8_MAX (255U)
81 #define UINT16_MAX (65535U)
84 #define UINT32_MAX (4294967295U)
87 #endif /* ! FLEXINT_H */
91 /* The "const" storage-class-modifier is valid. */
94 #else /* ! __cplusplus */
100 #endif /* __STDC__ */
101 #endif /* ! __cplusplus */
104 #define yyconst const
109 /* Returned upon end-of-file. */
112 /* Promotes a possibly negative, possibly signed char to an unsigned
113 * integer for use as an array index. If the signed char is negative,
114 * we want to instead treat it as an 8-bit unsigned char, hence the
117 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
119 /* Enter a start condition. This macro really ought to take a parameter,
120 * but we do it the disgusting crufty way forced on us by the ()-less
121 * definition of BEGIN.
123 #define BEGIN (yy_start) = 1 + 2 *
125 /* Translate the current start state into a value that can be later handed
126 * to BEGIN to return to the state. The YYSTATE alias is for lex
129 #define YY_START (((yy_start) - 1) / 2)
130 #define YYSTATE YY_START
132 /* Action number for EOF rule of a given start state. */
133 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
135 /* Special action meaning "start processing a new file". */
136 #define YY_NEW_FILE surf_parse_restart(surf_parse_in )
138 #define YY_END_OF_BUFFER_CHAR 0
140 /* Size of default input buffer. */
142 #define YY_BUF_SIZE 16384
145 /* The state buf must be large enough to hold one state per character in the main buffer.
147 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
149 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
150 #define YY_TYPEDEF_YY_BUFFER_STATE
151 typedef struct yy_buffer_state *YY_BUFFER_STATE;
154 extern int surf_parse_leng;
156 extern FILE *surf_parse_in, *surf_parse_out;
158 #define EOB_ACT_CONTINUE_SCAN 0
159 #define EOB_ACT_END_OF_FILE 1
160 #define EOB_ACT_LAST_MATCH 2
162 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
163 * access to the local variable yy_act. Since yyless() is a macro, it would break
164 * existing scanners that call yyless() from OUTSIDE surf_parse_lex.
165 * One obvious solution it to make yy_act a global. I tried that, and saw
166 * a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
167 * normally declared as a register variable-- so it is not worth it.
169 #define YY_LESS_LINENO(n) \
172 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
173 if ( surf_parse_text[yyl] == '\n' )\
174 --surf_parse_lineno;\
177 /* Return all but the first "n" matched characters back to the input stream. */
181 /* Undo effects of setting up surf_parse_text. */ \
182 int yyless_macro_arg = (n); \
183 YY_LESS_LINENO(yyless_macro_arg);\
184 *yy_cp = (yy_hold_char); \
185 YY_RESTORE_YY_MORE_OFFSET \
186 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
187 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
191 #define unput(c) yyunput( c, (yytext_ptr) )
193 /* The following is because we cannot portably get our hands on size_t
194 * (without autoconf's help, which isn't available because we want
195 * flex-generated scanners to compile on their own).
198 #ifndef YY_TYPEDEF_YY_SIZE_T
199 #define YY_TYPEDEF_YY_SIZE_T
200 typedef unsigned int yy_size_t;
203 #ifndef YY_STRUCT_YY_BUFFER_STATE
204 #define YY_STRUCT_YY_BUFFER_STATE
205 struct yy_buffer_state
209 char *yy_ch_buf; /* input buffer */
210 char *yy_buf_pos; /* current position in input buffer */
212 /* Size of input buffer in bytes, not including room for EOB
215 yy_size_t yy_buf_size;
217 /* Number of characters read into yy_ch_buf, not including EOB
222 /* Whether we "own" the buffer - i.e., we know we created it,
223 * and can realloc() it to grow it, and should free() it to
226 int yy_is_our_buffer;
228 /* Whether this is an "interactive" input source; if so, and
229 * if we're using stdio for input, then we want to use getc()
230 * instead of fread(), to make sure we stop fetching input after
233 int yy_is_interactive;
235 /* Whether we're considered to be at the beginning of a line.
236 * If so, '^' rules will be active on the next match, otherwise
241 int yy_bs_lineno; /**< The line count. */
242 int yy_bs_column; /**< The column count. */
244 /* Whether to try to fill the input buffer when we reach the
249 int yy_buffer_status;
251 #define YY_BUFFER_NEW 0
252 #define YY_BUFFER_NORMAL 1
253 /* When an EOF's been seen but there's still some text to process
254 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
255 * shouldn't try reading from the input source any more. We might
256 * still have a bunch of tokens to match, though, because of
257 * possible backing-up.
259 * When we actually see the EOF, we change the status to "new"
260 * (via surf_parse_restart()), so that the user can continue scanning by
261 * just pointing surf_parse_in at a new input file.
263 #define YY_BUFFER_EOF_PENDING 2
266 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
268 /* Stack of input buffers. */
269 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
270 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
271 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
273 /* We provide macros for accessing buffer states in case in the
274 * future we want to put the buffer states in a more general
277 * Returns the top of the stack, or NULL.
279 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
280 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
283 /* Same as previous macro, but useful when we know that the buffer stack is not
284 * NULL or when we need an lvalue. For internal use only.
286 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
288 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
289 static char yy_hold_char;
290 static int yy_n_chars; /* number of characters read into yy_ch_buf */
293 /* Points to current character in buffer. */
294 static char *yy_c_buf_p = (char *) 0;
295 static int yy_init = 0; /* whether we need to initialize */
296 static int yy_start = 0; /* start state number */
298 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
299 * instead of setting up a fresh surf_parse_in. A bit of a hack ...
301 static int yy_did_buffer_switch_on_eof;
303 void surf_parse_restart (FILE *input_file );
304 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer );
305 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size );
306 void surf_parse__delete_buffer (YY_BUFFER_STATE b );
307 void surf_parse__flush_buffer (YY_BUFFER_STATE b );
308 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer );
309 void surf_parse_pop_buffer_state (void );
311 static void surf_parse_ensure_buffer_stack (void );
312 static void surf_parse__load_buffer_state (void );
313 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file );
315 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
317 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size );
318 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str );
319 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len );
321 void *surf_parse_alloc (yy_size_t );
322 void *surf_parse_realloc (void *,yy_size_t );
323 void surf_parse_free (void * );
325 #define yy_new_buffer surf_parse__create_buffer
327 #define yy_set_interactive(is_interactive) \
329 if ( ! YY_CURRENT_BUFFER ){ \
330 surf_parse_ensure_buffer_stack (); \
331 YY_CURRENT_BUFFER_LVALUE = \
332 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
334 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
337 #define yy_set_bol(at_bol) \
339 if ( ! YY_CURRENT_BUFFER ){\
340 surf_parse_ensure_buffer_stack (); \
341 YY_CURRENT_BUFFER_LVALUE = \
342 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
344 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
347 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
349 /* Begin user sect3 */
351 #define surf_parse_wrap() 1
352 #define YY_SKIP_YYWRAP
354 typedef unsigned char YY_CHAR;
356 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
358 typedef int yy_state_type;
360 extern int surf_parse_lineno;
362 int surf_parse_lineno = 1;
364 extern char *surf_parse_text;
365 #define yytext_ptr surf_parse_text
367 static yy_state_type yy_get_previous_state (void );
368 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
369 static int yy_get_next_buffer (void );
370 static void yy_fatal_error (yyconst char msg[] );
372 /* Done after the current pattern has been matched and before the
373 * corresponding action - sets up surf_parse_text.
375 #define YY_DO_BEFORE_ACTION \
376 (yytext_ptr) = yy_bp; \
377 surf_parse_leng = (size_t) (yy_cp - yy_bp); \
378 (yy_hold_char) = *yy_cp; \
380 (yy_c_buf_p) = yy_cp;
382 #define YY_NUM_RULES 353
383 #define YY_END_OF_BUFFER 354
384 /* This struct is not used in this scanner,
385 but its presence is necessary. */
388 flex_int32_t yy_verify;
391 static yyconst flex_int16_t yy_accept[2047] =
393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
400 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
401 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
405 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
406 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
408 0, 0, 354, 352, 15, 10, 10, 15, 15, 332,
409 10, 332, 5, 6, 5, 8, 9, 8, 348, 340,
410 341, 349, 346, 349, 347, 351, 340, 341, 351, 352,
411 26, 10, 26, 26, 26, 24, 26, 26, 30, 10,
412 30, 30, 352, 352, 30, 37, 10, 37, 37, 37,
413 35, 37, 41, 10, 41, 52, 10, 52, 52, 52,
415 50, 52, 52, 52, 349, 348, 74, 10, 74, 74,
416 74, 72, 74, 74, 74, 74, 78, 10, 78, 352,
417 78, 99, 10, 99, 99, 99, 97, 99, 99, 99,
418 99, 103, 10, 103, 116, 10, 116, 116, 116, 114,
419 116, 116, 116, 116, 120, 10, 120, 127, 10, 127,
420 127, 127, 125, 127, 352, 352, 131, 10, 131, 158,
421 10, 158, 158, 158, 156, 158, 158, 158, 158, 158,
422 162, 10, 162, 162, 171, 10, 171, 171, 171, 169,
423 171, 171, 175, 10, 175, 198, 10, 198, 198, 198,
424 196, 198, 198, 198, 198, 198, 198, 202, 10, 202,
426 209, 10, 209, 209, 209, 207, 209, 213, 10, 213,
427 238, 10, 238, 238, 238, 236, 238, 238, 238, 238,
428 242, 10, 242, 242, 261, 10, 261, 261, 261, 259,
429 261, 261, 261, 352, 265, 10, 265, 265, 288, 10,
430 288, 288, 288, 286, 288, 288, 288, 288, 292, 10,
431 292, 292, 299, 10, 299, 299, 299, 297, 299, 303,
432 10, 303, 316, 10, 316, 316, 316, 314, 316, 316,
433 316, 316, 320, 10, 320, 352, 320, 327, 10, 327,
434 327, 327, 325, 327, 331, 10, 331, 10, 0, 2,
435 2, 0, 4, 7, 343, 342, 0, 0, 0, 0,
437 0, 0, 0, 25, 27, 27, 27, 0, 0, 0,
438 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
440 36, 38, 38, 0, 51, 53, 53, 53, 53, 0,
441 0, 0, 73, 75, 75, 75, 75, 75, 75, 75,
442 0, 0, 98, 100, 100, 100, 100, 100, 0, 115,
443 117, 117, 117, 117, 117, 0, 126, 128, 128, 0,
444 157, 159, 159, 159, 159, 159, 159, 159, 0, 170,
445 172, 172, 172, 0, 197, 199, 199, 199, 199, 199,
446 199, 199, 199, 199, 0, 208, 210, 210, 0, 237,
448 239, 239, 239, 239, 239, 239, 0, 260, 262, 262,
449 262, 262, 262, 0, 0, 287, 289, 289, 289, 289,
450 289, 0, 298, 300, 300, 0, 315, 317, 317, 317,
451 317, 317, 0, 0, 326, 328, 328, 0, 0, 0,
452 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
453 350, 0, 27, 27, 0, 0, 0, 0, 0, 0,
454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
456 0, 38, 0, 0, 53, 0, 0, 53, 0, 0,
457 0, 345, 75, 0, 0, 75, 75, 75, 75, 0,
459 0, 0, 100, 100, 100, 100, 0, 0, 0, 0,
460 117, 117, 117, 0, 0, 128, 0, 0, 159, 0,
461 0, 159, 159, 159, 159, 0, 0, 0, 0, 172,
462 0, 0, 199, 0, 0, 0, 0, 199, 199, 199,
463 199, 199, 0, 0, 0, 0, 0, 0, 239, 0,
464 0, 239, 239, 239, 0, 0, 262, 262, 262, 262,
465 0, 0, 0, 289, 289, 289, 289, 0, 0, 0,
466 0, 0, 0, 317, 317, 317, 317, 0, 0, 0,
467 328, 0, 0, 0, 14, 1, 0, 0, 338, 0,
468 0, 0, 335, 334, 0, 0, 27, 27, 0, 0,
470 29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
471 0, 0, 105, 0, 0, 0, 0, 0, 0, 0,
472 104, 0, 0, 0, 0, 0, 0, 38, 0, 0,
473 40, 0, 53, 0, 45, 44, 53, 0, 0, 0,
474 55, 0, 75, 0, 59, 58, 0, 0, 75, 0,
475 0, 75, 0, 0, 77, 0, 0, 100, 100, 100,
476 100, 0, 0, 102, 0, 0, 107, 106, 117, 117,
477 117, 0, 0, 119, 0, 128, 0, 0, 130, 0,
478 159, 0, 135, 134, 159, 159, 159, 159, 0, 0,
479 161, 0, 0, 166, 165, 172, 0, 0, 174, 0,
481 199, 199, 0, 189, 188, 0, 179, 178, 0, 0,
482 199, 199, 199, 199, 0, 0, 201, 0, 0, 206,
483 205, 0, 0, 212, 0, 239, 0, 217, 216, 239,
484 239, 239, 0, 0, 241, 0, 262, 0, 0, 0,
485 0, 262, 0, 0, 0, 264, 0, 289, 0, 0,
486 289, 0, 0, 0, 0, 291, 0, 0, 296, 295,
487 0, 0, 302, 0, 317, 317, 317, 317, 0, 0,
488 319, 0, 0, 328, 0, 0, 330, 0, 0, 0,
489 339, 333, 0, 0, 0, 27, 27, 0, 0, 0,
490 0, 133, 0, 215, 0, 0, 163, 0, 0, 105,
492 0, 0, 0, 132, 214, 0, 0, 104, 0, 0,
493 0, 0, 0, 0, 0, 0, 0, 0, 0, 53,
494 0, 0, 75, 0, 63, 62, 0, 0, 0, 61,
495 60, 75, 0, 164, 100, 100, 0, 0, 100, 0,
496 117, 117, 117, 0, 128, 0, 159, 159, 159, 159,
497 159, 0, 172, 0, 199, 199, 0, 191, 190, 199,
498 199, 199, 199, 0, 0, 239, 239, 239, 239, 0,
499 262, 0, 248, 247, 0, 246, 245, 262, 214, 0,
500 289, 0, 271, 270, 289, 0, 269, 268, 0, 0,
501 317, 0, 0, 317, 317, 0, 0, 328, 0, 0,
503 0, 0, 12, 0, 336, 337, 0, 27, 27, 0,
504 0, 0, 0, 133, 0, 215, 0, 0, 0, 163,
505 0, 267, 43, 0, 0, 132, 214, 0, 267, 42,
506 0, 266, 0, 266, 42, 0, 34, 33, 0, 0,
507 47, 46, 53, 0, 0, 75, 0, 65, 64, 75,
508 0, 164, 100, 100, 0, 0, 0, 100, 0, 117,
509 117, 117, 0, 118, 128, 0, 159, 159, 159, 0,
510 0, 0, 0, 159, 0, 0, 0, 0, 0, 0,
511 199, 0, 0, 199, 199, 199, 0, 0, 239, 239,
512 239, 0, 0, 239, 0, 262, 262, 0, 0, 289,
514 289, 0, 0, 317, 0, 307, 306, 317, 317, 0,
515 0, 0, 0, 0, 0, 0, 0, 11, 0, 27,
516 27, 27, 0, 0, 0, 0, 0, 0, 0, 0,
517 57, 267, 0, 204, 43, 0, 0, 0, 56, 203,
518 42, 0, 266, 0, 0, 0, 0, 53, 0, 0,
519 75, 75, 0, 100, 100, 0, 0, 0, 0, 0,
520 0, 0, 0, 100, 0, 0, 0, 117, 0, 0,
521 0, 0, 0, 159, 159, 159, 0, 137, 136, 0,
522 0, 0, 159, 0, 160, 0, 168, 167, 0, 173,
523 0, 193, 192, 0, 0, 0, 187, 186, 0, 0,
525 199, 0, 0, 0, 0, 239, 239, 239, 0, 0,
526 0, 239, 0, 240, 0, 0, 262, 0, 0, 0,
527 0, 289, 0, 0, 317, 317, 317, 0, 0, 0,
528 324, 323, 0, 0, 0, 0, 0, 0, 0, 27,
529 27, 0, 0, 177, 122, 32, 0, 0, 305, 57,
530 0, 204, 0, 176, 121, 56, 203, 304, 0, 31,
531 0, 0, 53, 0, 0, 54, 75, 75, 0, 100,
532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
533 100, 0, 0, 109, 108, 0, 0, 0, 111, 110,
534 0, 124, 123, 0, 159, 159, 159, 0, 0, 159,
536 0, 195, 194, 0, 181, 180, 0, 0, 0, 183,
537 182, 0, 0, 239, 0, 0, 239, 239, 0, 0,
538 239, 0, 0, 0, 262, 0, 0, 0, 0, 0,
539 289, 0, 290, 0, 317, 317, 317, 0, 0, 0,
540 0, 0, 0, 17, 0, 19, 18, 27, 27, 0,
541 321, 177, 122, 32, 293, 16, 305, 0, 0, 176,
542 121, 304, 0, 31, 0, 0, 53, 344, 75, 75,
543 0, 76, 100, 0, 0, 0, 0, 0, 0, 0,
544 0, 0, 0, 0, 0, 0, 0, 0, 113, 112,
545 0, 159, 159, 159, 0, 0, 0, 0, 159, 0,
547 185, 184, 0, 0, 211, 239, 0, 223, 222, 239,
548 239, 0, 0, 0, 0, 239, 0, 0, 0, 0,
549 262, 294, 0, 0, 0, 0, 0, 289, 0, 0,
550 0, 317, 317, 0, 322, 0, 0, 0, 0, 17,
551 27, 27, 0, 321, 293, 16, 0, 0, 0, 0,
552 0, 39, 53, 0, 0, 75, 100, 0, 0, 0,
553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
554 90, 89, 0, 0, 129, 159, 159, 159, 0, 143,
555 0, 142, 159, 0, 200, 0, 0, 239, 239, 239,
556 0, 227, 0, 226, 239, 0, 0, 0, 0, 0,
558 0, 0, 0, 294, 0, 0, 0, 0, 0, 0,
559 0, 289, 0, 0, 309, 308, 0, 0, 317, 0,
560 318, 322, 0, 0, 0, 0, 0, 0, 27, 0,
561 28, 0, 0, 0, 0, 53, 0, 0, 0, 75,
562 100, 0, 0, 0, 0, 0, 0, 0, 0, 0,
563 0, 0, 0, 0, 159, 159, 159, 145, 144, 0,
564 0, 0, 219, 218, 239, 239, 239, 229, 228, 0,
565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
566 0, 0, 0, 0, 0, 0, 0, 289, 289, 0,
567 301, 0, 313, 312, 0, 0, 0, 329, 0, 0,
569 0, 0, 21, 20, 0, 0, 244, 0, 243, 0,
570 0, 0, 0, 0, 0, 0, 75, 100, 0, 0,
571 0, 0, 0, 0, 0, 88, 0, 0, 0, 87,
572 0, 159, 159, 159, 0, 147, 146, 239, 239, 239,
573 0, 231, 230, 0, 0, 0, 0, 0, 0, 0,
574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
575 289, 289, 0, 311, 310, 0, 0, 0, 0, 23,
576 22, 244, 0, 243, 0, 0, 49, 48, 0, 0,
577 0, 0, 75, 0, 0, 0, 0, 0, 0, 0,
578 0, 0, 0, 0, 0, 0, 0, 0, 159, 159,
580 159, 239, 0, 0, 239, 0, 0, 0, 0, 0,
581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
582 0, 0, 289, 289, 0, 0, 0, 0, 80, 79,
583 0, 0, 0, 0, 0, 0, 0, 96, 95, 92,
584 94, 91, 93, 0, 0, 86, 0, 0, 85, 0,
585 0, 139, 138, 159, 159, 159, 159, 239, 0, 225,
586 224, 239, 0, 0, 0, 0, 0, 0, 258, 0,
587 257, 0, 0, 263, 0, 0, 0, 0, 0, 0,
588 0, 0, 289, 0, 0, 289, 0, 0, 0, 0,
589 0, 0, 80, 79, 0, 0, 0, 0, 0, 67,
591 66, 0, 0, 0, 0, 0, 159, 159, 159, 159,
592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
593 256, 255, 0, 0, 0, 0, 0, 0, 0, 275,
594 274, 289, 0, 273, 272, 289, 0, 0, 0, 0,
595 0, 0, 0, 71, 0, 70, 0, 84, 0, 83,
596 0, 101, 159, 159, 159, 159, 0, 221, 220, 0,
597 0, 0, 0, 0, 252, 0, 0, 251, 0, 0,
598 283, 0, 0, 282, 289, 289, 0, 0, 0, 12,
599 0, 12, 0, 0, 0, 0, 0, 159, 159, 159,
600 159, 0, 0, 0, 0, 254, 250, 253, 249, 285,
602 281, 284, 280, 289, 289, 0, 0, 0, 0, 0,
603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
604 159, 0, 0, 0, 0, 0, 0, 289, 289, 0,
605 0, 69, 68, 82, 81, 0, 141, 140, 0, 151,
606 150, 0, 149, 148, 159, 0, 155, 154, 0, 0,
607 0, 0, 289, 289, 0, 11, 159, 0, 0, 0,
608 0, 289, 289, 0, 159, 0, 0, 0, 0, 289,
609 289, 0, 159, 0, 0, 0, 0, 289, 289, 0,
610 0, 0, 0, 233, 0, 232, 289, 289, 0, 0,
611 153, 152, 235, 234, 289, 289, 0, 289, 289, 0,
613 289, 289, 0, 0, 289, 289, 0, 0, 289, 289,
614 0, 0, 289, 289, 0, 0, 0, 0, 0, 0,
615 0, 0, 0, 279, 278, 0, 277, 276, 0, 0,
616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
620 static yyconst flex_int32_t yy_ec[256] =
622 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
623 1, 2, 4, 1, 1, 1, 1, 1, 1, 1,
624 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
625 1, 2, 5, 6, 7, 1, 1, 8, 9, 1,
626 1, 1, 1, 1, 10, 11, 12, 13, 13, 13,
627 13, 14, 13, 13, 13, 15, 13, 16, 17, 18,
628 19, 20, 21, 1, 22, 23, 24, 25, 26, 27,
629 28, 29, 30, 28, 31, 32, 33, 34, 35, 36,
630 28, 37, 38, 39, 28, 40, 41, 28, 42, 28,
631 43, 1, 44, 1, 45, 1, 46, 47, 48, 49,
633 50, 51, 52, 53, 54, 28, 55, 56, 57, 58,
634 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
635 69, 28, 1, 1, 1, 1, 1, 1, 1, 1,
636 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
637 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
638 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
639 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
640 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
641 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
642 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
644 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
645 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
646 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
647 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
648 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
652 static yyconst flex_int32_t yy_meta[70] =
654 1, 2, 2, 2, 1, 1, 1, 1, 1, 3,
655 3, 1, 4, 4, 4, 5, 6, 1, 7, 8,
656 1, 9, 9, 9, 9, 9, 9, 5, 5, 5,
657 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
658 5, 5, 1, 1, 5, 9, 9, 9, 9, 9,
659 9, 5, 5, 5, 5, 5, 5, 5, 5, 5,
660 5, 5, 5, 5, 5, 5, 5, 5, 5
663 static yyconst flex_int16_t yy_base[2280] =
665 0, 0, 0, 3, 6, 9, 12, 29, 16, 19,
666 14, 17, 33, 36, 49, 55, 45, 61, 66, 72,
667 105, 173, 75, 78, 83, 125, 128, 132, 135, 138,
668 193, 196, 200, 203, 206, 224, 242, 293, 262, 265,
669 344, 404, 271, 273, 464, 527, 269, 316, 320, 323,
670 364, 367, 371, 374, 590, 654, 424, 427, 718, 781,
671 431, 434, 844, 907, 484, 487, 491, 494, 497, 547,
672 970, 1033, 550, 554, 557, 560, 610, 613, 617, 621,
673 1096, 1162, 674, 677, 1228, 0, 681, 685, 1297, 1351,
674 738, 741, 1405, 1468, 745, 748, 751, 801, 804, 808,
676 811, 814, 1531, 1594, 864, 867, 871, 874, 877, 927,
677 930, 934, 1657, 1720, 937, 940, 990, 993, 997, 1000,
678 1003, 1053, 1783, 1837, 1056, 1060, 1891, 1954, 1063, 1066,
679 1116, 1119, 1123, 1126, 1129, 1182, 2017, 2083, 1185, 1189,
680 0, 0, 5073, 7140, 7140, 95, 100, 29, 41, 7140,
681 155, 51, 7140, 7140, 5056, 7140, 7140, 5045, 7140, 5058,
682 5058, 580, 7140, 7140, 7140, 7140, 5055, 5042, 5000, 210,
683 7140, 158, 5021, 0, 142, 7140, 4989, 4978, 7140, 162,
684 2145, 2205, 160, 5021, 176, 7140, 165, 5006, 0, 149,
685 7140, 4970, 7140, 230, 378, 7140, 326, 4995, 0, 208,
687 7140, 4956, 4957, 4947, 379, 4945, 7140, 329, 4968, 0,
688 214, 7140, 4929, 4915, 238, 4899, 7140, 377, 11, 31,
689 4949, 7140, 399, 4939, 0, 435, 7140, 4881, 4882, 4883,
690 4853, 7140, 457, 441, 7140, 520, 4894, 0, 436, 7140,
691 4854, 4837, 4851, 4829, 7140, 640, 498, 7140, 644, 4869,
692 0, 499, 7140, 4826, 513, 4822, 7140, 647, 4861, 7140,
693 703, 4848, 0, 562, 7140, 4800, 34, 4819, 4804, 4785,
694 7140, 708, 177, 4836, 7140, 711, 4812, 0, 568, 7140,
695 4782, 4783, 7140, 771, 696, 7140, 834, 4804, 0, 601,
696 7140, 211, 4773, 4775, 93, 4773, 4740, 7140, 894, 755,
698 7140, 897, 4773, 0, 632, 7140, 4740, 7140, 900, 818,
699 7140, 957, 4765, 0, 665, 7140, 4737, 4733, 4734, 80,
700 7140, 960, 360, 4760, 7140, 963, 4748, 0, 695, 7140,
701 4715, 4699, 26, 304, 7140, 1149, 330, 4748, 7140, 1152,
702 4736, 0, 885, 7140, 4706, 4690, 4693, 4683, 7140, 1155,
703 499, 4731, 7140, 1192, 4722, 0, 948, 7140, 4691, 7140,
704 1195, 1005, 7140, 1206, 4712, 0, 1004, 7140, 4660, 4664,
705 4665, 4650, 7140, 1209, 1100, 4700, 4695, 7140, 1215, 4684,
706 0, 1007, 7140, 4647, 7140, 1218, 1068, 1221, 429, 4624,
707 7140, 4677, 4666, 7140, 7140, 7140, 1306, 283, 4616, 4611,
709 4609, 4652, 4608, 7140, 0, 4599, 4599, 4589, 4579, 4584,
710 4573, 4570, 4561, 4554, 4, 166, 4556, 4543, 4544, 4540,
711 4538, 4534, 404, 4537, 4523, 38, 467, 4522, 711, 4517,
712 7140, 0, 4518, 4519, 7140, 0, 4515, 1320, 4498, 533,
713 4494, 4529, 7140, 0, 4481, 1323, 4470, 4490, 4470, 4478,
714 4458, 89, 7140, 0, 4460, 4467, 4456, 4453, 4434, 7140,
715 0, 1326, 4446, 4439, 4436, 4422, 7140, 0, 4420, 4430,
716 7140, 0, 4433, 1329, 4411, 4395, 4395, 4414, 4392, 7140,
717 0, 1373, 4387, 4381, 7140, 0, 4394, 1377, 1380, 4374,
718 4361, 4377, 4376, 4365, 4367, 7140, 0, 1383, 4351, 7140,
720 0, 4350, 1425, 4343, 4355, 4348, 4333, 7140, 0, 4313,
721 4311, 4322, 4312, 4313, 4297, 7140, 0, 4292, 4286, 4289,
722 4299, 4277, 7140, 0, 1428, 4281, 7140, 0, 4274, 4268,
723 4273, 4271, 4256, 4252, 7140, 0, 4253, 4261, 4285, 4291,
724 744, 4241, 7140, 1321, 0, 4237, 4235, 4259, 4258, 4204,
725 7140, 4215, 4190, 4194, 1431, 1434, 4192, 4178, 4175, 4173,
726 4186, 4168, 4172, 4137, 4137, 4123, 4122, 4139, 4116, 4117,
727 4112, 4109, 4108, 4096, 4096, 4097, 4083, 4072, 4088, 4065,
728 4083, 4074, 1437, 1489, 4073, 1494, 1497, 4058, 4075, 1551,
729 1556, 7140, 4042, 1559, 1514, 1562, 4021, 1565, 4032, 1619,
731 1627, 4012, 4011, 4001, 4008, 4004, 1622, 1630, 1677, 1583,
732 4000, 3995, 3993, 1682, 1695, 3994, 1685, 1740, 3984, 1691,
733 1642, 3986, 3986, 3980, 3961, 1745, 1748, 1751, 1710, 3959,
734 1755, 1808, 530, 1811, 1814, 1857, 1860, 1869, 3962, 3959,
735 3944, 3920, 1911, 1920, 1914, 1880, 1917, 1923, 3921, 1926,
736 1975, 3911, 3894, 3890, 1983, 1986, 3899, 1989, 1992, 3894,
737 3892, 2039, 2046, 3888, 1997, 3895, 2043, 2049, 2052, 2061,
738 2072, 2104, 2110, 3885, 3866, 3868, 3852, 2113, 2116, 3856,
739 3838, 2119, 2138, 3882, 7140, 7140, 315, 3829, 7140, 3867,
740 3865, 3808, 7140, 7140, 3806, 3804, 3809, 3798, 2141, 2149,
742 7140, 2168, 3795, 3795, 3806, 3791, 3782, 3781, 3767, 261,
743 3781, 3764, 1386, 3771, 3754, 3763, 3747, 3755, 3759, 3736,
744 1460, 3751, 384, 3733, 3736, 3727, 3737, 2144, 2172, 2177,
745 7140, 2182, 2209, 2216, 7140, 7140, 2229, 3757, 2232, 2235,
746 7140, 2240, 3718, 2268, 7140, 7140, 2243, 2276, 2287, 2290,
747 2293, 3727, 2301, 2308, 7140, 2311, 432, 3720, 3719, 2314,
748 3717, 2320, 2323, 7140, 2332, 2335, 7140, 7140, 3712, 3716,
749 3702, 2343, 2346, 7140, 2351, 3699, 2354, 2357, 7140, 2377,
750 3692, 2380, 7140, 7140, 3684, 3686, 3681, 3692, 2388, 2391,
751 7140, 2396, 2400, 7140, 7140, 3685, 2410, 2415, 7140, 2418,
753 3654, 3633, 2422, 7140, 7140, 2438, 7140, 7140, 2430, 2448,
754 3615, 3622, 3622, 3610, 2458, 2461, 7140, 2464, 2467, 7140,
755 7140, 2483, 2486, 7140, 2489, 3596, 2492, 7140, 7140, 3603,
756 3595, 3597, 2508, 2511, 7140, 2514, 3586, 2517, 2521, 2536,
757 2539, 3594, 3587, 2547, 2554, 7140, 2557, 3570, 2560, 2567,
758 3580, 2578, 2581, 2589, 2592, 7140, 2596, 2599, 7140, 7140,
759 2611, 2615, 7140, 2621, 3548, 2624, 3566, 3537, 2630, 2634,
760 7140, 2642, 3534, 3544, 2645, 2649, 7140, 2653, 726, 2656,
761 7140, 7140, 3576, 3574, 3529, 3519, 3561, 2664, 3518, 3509,
762 3526, 1463, 3505, 2152, 3505, 3505, 1523, 3494, 3502, 1526,
764 3500, 3485, 3501, 1650, 2678, 3476, 3484, 1705, 3482, 3474,
765 3473, 3451, 3465, 3463, 2668, 2686, 2694, 2700, 2704, 3459,
766 3485, 2713, 3455, 2718, 7140, 7140, 2727, 2732, 2745, 7140,
767 7140, 3450, 2740, 1769, 3446, 3431, 2753, 2760, 3443, 2771,
768 3418, 3432, 3409, 2774, 3422, 2777, 3423, 3417, 3401, 2780,
769 2783, 2801, 2804, 2809, 2812, 2822, 2830, 7140, 7140, 2840,
770 2843, 2847, 2851, 2854, 2869, 3407, 3412, 3397, 2873, 2876,
771 3396, 2879, 7140, 7140, 2895, 7140, 7140, 3388, 2904, 2910,
772 3385, 2919, 7140, 7140, 3378, 2932, 7140, 7140, 2940, 2943,
773 3385, 2946, 2949, 3373, 3380, 2964, 3367, 2967, 2973, 181,
775 3402, 2976, 7140, 3401, 7140, 7140, 3360, 3348, 518, 2979,
776 3354, 3351, 3351, 1774, 3349, 1777, 3340, 3301, 3296, 1829,
777 3300, 2985, 3003, 3306, 3306, 1832, 1875, 3296, 3006, 3011,
778 3288, 3021, 3295, 3029, 3032, 2988, 7140, 7140, 3037, 3047,
779 7140, 7140, 3278, 3291, 3056, 3264, 3060, 7140, 7140, 3260,
780 3068, 1945, 3261, 3259, 3071, 1113, 1472, 3257, 3083, 3090,
781 3093, 3096, 3114, 7140, 3117, 3120, 3262, 3256, 3241, 3126,
782 3135, 3144, 3148, 3251, 3156, 3165, 3168, 3176, 3179, 3183,
783 3191, 3197, 3200, 3209, 3215, 3218, 3221, 3227, 3251, 3224,
784 3240, 3236, 3240, 3233, 3248, 3254, 3257, 3235, 3260, 3263,
786 3284, 3287, 3292, 3222, 3295, 7140, 7140, 3225, 3214, 3311,
787 3225, 3314, 3318, 3332, 1052, 632, 568, 7140, 3212, 3336,
788 3339, 3343, 3346, 3214, 3208, 3216, 3204, 3189, 3186, 3182,
789 1948, 2010, 3179, 3014, 3361, 3187, 3171, 3179, 3365, 3368,
790 3371, 3164, 3374, 3169, 3165, 3166, 3377, 3160, 3185, 3380,
791 3146, 3143, 3383, 3132, 3388, 3150, 3166, 3153, 3138, 3125,
792 3142, 3140, 3126, 3107, 3392, 3411, 3414, 3425, 3429, 3432,
793 3443, 3447, 3455, 3101, 3091, 3091, 3461, 7140, 7140, 3470,
794 3107, 3100, 3078, 3478, 7140, 3481, 7140, 7140, 3489, 7140,
795 3493, 7140, 7140, 3502, 3508, 3516, 7140, 7140, 3524, 3527,
797 3535, 3538, 3542, 3556, 3559, 3067, 3562, 3081, 3565, 3090,
798 3079, 3059, 3580, 7140, 3583, 3586, 3594, 3047, 3606, 3601,
799 3621, 3612, 3615, 3630, 3052, 3051, 3053, 3634, 3047, 3637,
800 7140, 7140, 3649, 751, 1330, 565, 3047, 3653, 3656, 3664,
801 3671, 3678, 3037, 3407, 3682, 3685, 3032, 3032, 3689, 3692,
802 3019, 3698, 3023, 3701, 3704, 3707, 3710, 3713, 3016, 3716,
803 3020, 3721, 3024, 3024, 3724, 7140, 3003, 3015, 3727, 2993,
804 3730, 3748, 3032, 3018, 3007, 3003, 3021, 2995, 2989, 2980,
805 3756, 3735, 3759, 7140, 7140, 3770, 3775, 3784, 7140, 7140,
806 3792, 7140, 7140, 3800, 2964, 2961, 2944, 793, 794, 2946,
808 3803, 7140, 7140, 3812, 7140, 7140, 3820, 3823, 3831, 7140,
809 7140, 3839, 3842, 2947, 3845, 3848, 2944, 2925, 806, 857,
810 2917, 3863, 358, 361, 3871, 2914, 3874, 3877, 594, 658,
811 3885, 3889, 7140, 3893, 3896, 2914, 2905, 3903, 2897, 3914,
812 3908, 738, 671, 3918, 3923, 7140, 7140, 3933, 3936, 3942,
813 3945, 3956, 3961, 3965, 3971, 3974, 3977, 2903, 2899, 3980,
814 3983, 3987, 2900, 3990, 2896, 3993, 2876, 7140, 3999, 2873,
815 4002, 7140, 2887, 4005, 485, 802, 2897, 2901, 2883, 2879,
816 2872, 2843, 2837, 2834, 4013, 4017, 4025, 4031, 7140, 7140,
817 4039, 2763, 2752, 2716, 2713, 2733, 1, 112, 232, 4044,
819 7140, 7140, 4052, 4058, 7140, 4061, 4064, 7140, 7140, 236,
820 384, 424, 500, 555, 673, 646, 728, 912, 769, 919,
821 4072, 4079, 4083, 802, 985, 820, 994, 4086, 4091, 4094,
822 4098, 4106, 822, 4112, 4115, 4118, 4124, 874, 978, 4131,
823 4137, 4143, 4148, 4151, 4155, 4161, 819, 828, 829, 847,
824 4167, 7140, 866, 4170, 4174, 892, 903, 933, 956, 984,
825 993, 1017, 1020, 1041, 1045, 1051, 1044, 1052, 1054, 4188,
826 7140, 7140, 4196, 4199, 7140, 1028, 1046, 1037, 1118, 7140,
827 1129, 7140, 4202, 4205, 7140, 4208, 4211, 1091, 1087, 1092,
828 1155, 7140, 1169, 7140, 4220, 1164, 1163, 1176, 1178, 1176,
830 1189, 4226, 4229, 4238, 4244, 1200, 1189, 1287, 1311, 1305,
831 1318, 4247, 4253, 4256, 7140, 7140, 4265, 4268, 4276, 4279,
832 7140, 4283, 4286, 1347, 1401, 1384, 4289, 4309, 4300, 4318,
833 7140, 1292, 1297, 1295, 1323, 4321, 4324, 1421, 1477, 1332,
834 1344, 1359, 1364, 1362, 1367, 1420, 1415, 1426, 1447, 1434,
835 1430, 1460, 1496, 4332, 1438, 1460, 1467, 7140, 7140, 4339,
836 4342, 4351, 7140, 7140, 1467, 1506, 1503, 7140, 7140, 4359,
837 4362, 1533, 1533, 1537, 1542, 1543, 1547, 4370, 1585, 1586,
838 4378, 1551, 1551, 1555, 1556, 1571, 1580, 4381, 4384, 4389,
839 7140, 4393, 7140, 7140, 4402, 4408, 4416, 7140, 1636, 1597,
841 1698, 4420, 7140, 7140, 4428, 4431, 4446, 1587, 4449, 1588,
842 4452, 4455, 1604, 1627, 1646, 1668, 1633, 4463, 1665, 1686,
843 1697, 1715, 1738, 1737, 1725, 7140, 1759, 1780, 1764, 7140,
844 4466, 4470, 1763, 1764, 4474, 7140, 7140, 1763, 4488, 1773,
845 4491, 7140, 7140, 1785, 1788, 1799, 1792, 1817, 1839, 1832,
846 1842, 1839, 1849, 4499, 1848, 1851, 1864, 1870, 1896, 1910,
847 4502, 4506, 4520, 7140, 7140, 1919, 1918, 4528, 4531, 7140,
848 7140, 4509, 1877, 4539, 1889, 4553, 7140, 7140, 1958, 1968,
849 1982, 1976, 4542, 4548, 4566, 2009, 2027, 2030, 2035, 2027,
850 2019, 2061, 2038, 2031, 2062, 4561, 4574, 4580, 2022, 2047,
852 2015, 2029, 4588, 4592, 2013, 2069, 2099, 2094, 2099, 2105,
853 2098, 2128, 2097, 2128, 2100, 4600, 2129, 2134, 2128, 2135,
854 2141, 2139, 4608, 4611, 2170, 4614, 4619, 4622, 4633, 4641,
855 2143, 2157, 2149, 2162, 4644, 4648, 4656, 7140, 7140, 7140,
856 7140, 7140, 7140, 2157, 2165, 7140, 2163, 2174, 7140, 4664,
857 4667, 7140, 7140, 2150, 2156, 2165, 2170, 4675, 4679, 7140,
858 7140, 4687, 2198, 2190, 2202, 2204, 2206, 2216, 7140, 2243,
859 7140, 2241, 4693, 7140, 2229, 2223, 2238, 2239, 2232, 2248,
860 4696, 4699, 4707, 4714, 4718, 4727, 2261, 4732, 4735, 4755,
861 4794, 4838, 4745, 4763, 2250, 2270, 2258, 2275, 4767, 7140,
863 7140, 2257, 2292, 2270, 2292, 4784, 2251, 2260, 2261, 2265,
864 4788, 4775, 4806, 4814, 2304, 2307, 2336, 2325, 2337, 2355,
865 7140, 7140, 2339, 2342, 2362, 2344, 2347, 2364, 4824, 7140,
866 7140, 4832, 4858, 7140, 7140, 4850, 2365, 4868, 2381, 2387,
867 4904, 4948, 2361, 7140, 2362, 7140, 2349, 7140, 2366, 7140,
868 4876, 7140, 2360, 2357, 2380, 2386, 4881, 7140, 7140, 4889,
869 2410, 2418, 2437, 2440, 7140, 2444, 2446, 7140, 2452, 2466,
870 7140, 2465, 2466, 7140, 4898, 4916, 2480, 2477, 2459, 2476,
871 2513, 2490, 4924, 2487, 2489, 2463, 2465, 4927, 4939, 4968,
872 4971, 2486, 2497, 2510, 2506, 7140, 7140, 7140, 7140, 7140,
874 7140, 7140, 7140, 4974, 4979, 4982, 2538, 2525, 2538, 4992,
875 2546, 2544, 2559, 2557, 4997, 4930, 5001, 5005, 5015, 5019,
876 2506, 5027, 5034, 2536, 2556, 2547, 2566, 5045, 5048, 5051,
877 2569, 7140, 7140, 7140, 7140, 5054, 7140, 7140, 5066, 7140,
878 7140, 5074, 7140, 7140, 2554, 5082, 7140, 7140, 2570, 2570,
879 2574, 2574, 5092, 5095, 2600, 7140, 2573, 2599, 2604, 2609,
880 2614, 5098, 5101, 2655, 2597, 2628, 2649, 2642, 2658, 5104,
881 5122, 2679, 5125, 2659, 2680, 2665, 2691, 5128, 5131, 2706,
882 5134, 5157, 2703, 7140, 2702, 7140, 5165, 5168, 2692, 5186,
883 7140, 7140, 7140, 7140, 5194, 5197, 5200, 5203, 5206, 5215,
885 5229, 5234, 2725, 2732, 5241, 5248, 2717, 2738, 5252, 5255,
886 2733, 2739, 5259, 5273, 2748, 2778, 5278, 5284, 5300, 5303,
887 2703, 2747, 5311, 7140, 7140, 5320, 7140, 7140, 2781, 2798,
888 2773, 2818, 2880, 2883, 2841, 2867, 2800, 2820, 2875, 2890,
889 2909, 2828, 5328, 5331, 7140, 7140, 5351, 5360, 5369, 5378,
890 5387, 5396, 5405, 5414, 5423, 5432, 5441, 5450, 5459, 5468,
891 5477, 5486, 5495, 5504, 5513, 5522, 5531, 5540, 5549, 5558,
892 5567, 5576, 5585, 5594, 5603, 5612, 5621, 5630, 5639, 5648,
893 5657, 5666, 5675, 5684, 5693, 5700, 5707, 5714, 5721, 5728,
894 5735, 5742, 5749, 5756, 5763, 5770, 5777, 5784, 5791, 5798,
896 5805, 5812, 5821, 5826, 5831, 5836, 5841, 5846, 5851, 5856,
897 5861, 5866, 5873, 5878, 5885, 5890, 5897, 5902, 5909, 5914,
898 5921, 5926, 5933, 5938, 5945, 5950, 5957, 5962, 5971, 5977,
899 5984, 5992, 5999, 6007, 6014, 6022, 6029, 6037, 6044, 6052,
900 6059, 6067, 6074, 6082, 6089, 6097, 6104, 6112, 6119, 6127,
901 6135, 6142, 6150, 6157, 6165, 6172, 6180, 6188, 6195, 6203,
902 6210, 6218, 6227, 6233, 6240, 6248, 6256, 6264, 6272, 6280,
903 6287, 6295, 6302, 6310, 6317, 6325, 6332, 6340, 6347, 6355,
904 6362, 6370, 6377, 6385, 6393, 6400, 6408, 6415, 6423, 6430,
905 6438, 6446, 6453, 6461, 6468, 6476, 6485, 6494, 6501, 6509,
907 6517, 6524, 6532, 6539, 6547, 6554, 6562, 6569, 6577, 6584,
908 6592, 6599, 6607, 6615, 6623, 6631, 6639, 6647, 6654, 6662,
909 6669, 6677, 6684, 6692, 6700, 6707, 6715, 6723, 6731, 6740,
910 6749, 6756, 6764, 6772, 6779, 6787, 6794, 6802, 6809, 6817,
911 6825, 6833, 6841, 6848, 6856, 6864, 6872, 6880, 6888, 6895,
912 6903, 6911, 6919, 6927, 6935, 6943, 6950, 6958, 6966, 6975,
913 6984, 6992, 7000, 7008, 7015, 7023, 7030, 7038, 7045, 7053,
914 7061, 7069, 7076, 7085, 7094, 7103, 7112, 7121, 7130
917 static yyconst flex_int16_t yy_def[2280] =
919 2047, 2047, 2048, 2048, 2048, 2048, 2049, 2049, 2050, 2050,
920 2051, 2051, 2052, 2052, 2052, 2052, 2053, 2053, 2047, 2047,
921 2054, 2054, 2055, 2055, 2055, 2055, 2047, 2047, 2055, 2055,
922 2047, 2047, 2055, 2055, 2055, 2055, 2056, 2056, 2057, 2057,
923 2058, 2058, 2052, 2052, 2059, 2059, 2060, 2060, 2047, 2047,
924 2060, 2060, 2060, 2060, 2061, 2061, 2062, 2062, 2063, 2063,
925 2064, 2064, 2065, 2065, 2047, 2047, 2047, 2047, 2066, 2066,
926 2067, 2067, 2068, 2068, 2047, 2047, 2068, 2068, 2068, 2068,
927 2069, 2069, 2070, 2070, 2046, 85, 2071, 2071, 2072, 2072,
928 2073, 2073, 2074, 2074, 2075, 2075, 2047, 2047, 2075, 2075,
930 2075, 2075, 2076, 2076, 2047, 2047, 2047, 2047, 2077, 2077,
931 2077, 2077, 2078, 2078, 2079, 2079, 2047, 2047, 2079, 2079,
932 2079, 2079, 2080, 2080, 2081, 2081, 2082, 2082, 2083, 2083,
933 2047, 2047, 2083, 2083, 2083, 2083, 2084, 2084, 2085, 2085,
934 2047, 2047, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
935 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
936 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
937 2046, 2046, 2046, 2086, 2046, 2046, 2086, 2086, 2046, 2046,
938 2046, 2046, 181, 182, 182, 2046, 2046, 2046, 2087, 2046,
939 2046, 2087, 2046, 2046, 2046, 2046, 2046, 2046, 2088, 2046,
941 2046, 2088, 2088, 2088, 2046, 2046, 2046, 2046, 2046, 2089,
942 2046, 2046, 2089, 2089, 2089, 2089, 2046, 2046, 185, 185,
943 185, 2046, 2046, 2046, 2090, 2046, 2046, 2090, 2090, 2090,
944 2090, 2046, 2046, 2046, 2046, 2046, 2046, 2091, 2046, 2046,
945 2091, 2091, 2091, 2091, 2046, 2046, 2046, 2046, 2046, 2046,
946 2092, 2046, 2046, 2092, 185, 255, 2046, 2046, 185, 2046,
947 2046, 2046, 2093, 2046, 2046, 2093, 2093, 2093, 2093, 2093,
948 2046, 2046, 185, 185, 2046, 2046, 2046, 2094, 2046, 2046,
949 2094, 2094, 2046, 2046, 2046, 2046, 2046, 2046, 2095, 2046,
950 2046, 2095, 2095, 2095, 2095, 2095, 2095, 2046, 2046, 2046,
952 2046, 2046, 2046, 2096, 2046, 2046, 2096, 2046, 2046, 2046,
953 2046, 2046, 2046, 2097, 2046, 2046, 2097, 2097, 2097, 2097,
954 2046, 2046, 185, 185, 2046, 2046, 2046, 2098, 2046, 2046,
955 2098, 2098, 2098, 185, 2046, 2046, 185, 185, 2046, 2046,
956 2046, 2099, 2046, 2046, 2099, 2099, 2099, 2099, 2046, 2046,
957 185, 185, 2046, 2046, 2046, 2100, 2046, 2046, 2100, 2046,
958 2046, 2046, 2046, 2046, 2046, 2101, 2046, 2046, 2101, 2101,
959 2101, 2101, 2046, 2046, 185, 375, 185, 2046, 2046, 2046,
960 2102, 2046, 2046, 2102, 2046, 2046, 2046, 2046, 2103, 2046,
961 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
963 2046, 2046, 2046, 2046, 2086, 2086, 2086, 2104, 2046, 2046,
964 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
965 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
966 2046, 2087, 2087, 2105, 2046, 2088, 2088, 2088, 2088, 2046,
967 2106, 2046, 2046, 2089, 2089, 2089, 2089, 2089, 2089, 2089,
968 2107, 2046, 2046, 2090, 2090, 2090, 2090, 2090, 2108, 2046,
969 2091, 2091, 2091, 2091, 2091, 2109, 2046, 2092, 2092, 2110,
970 2046, 2093, 2093, 2093, 2093, 2093, 2093, 2093, 2111, 2046,
971 2094, 2094, 2094, 2112, 2046, 2113, 2113, 2113, 2113, 2113,
972 2113, 2113, 2113, 2113, 2114, 2046, 2115, 2115, 2116, 2046,
974 2117, 2117, 2117, 2117, 2117, 2117, 2118, 2046, 2119, 2119,
975 2119, 2119, 2119, 2046, 2120, 2046, 2121, 2121, 2121, 2121,
976 2121, 2122, 2046, 2123, 2123, 2124, 2046, 2125, 2125, 2125,
977 2125, 2125, 2126, 2046, 2046, 2127, 2127, 2128, 2129, 2046,
978 2129, 2046, 2046, 2046, 2130, 2046, 2046, 2046, 2046, 2046,
979 2046, 2046, 2131, 2131, 2132, 2132, 2046, 2046, 2046, 2046,
980 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
981 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
982 2046, 2133, 2134, 2134, 2135, 2046, 2046, 2135, 2046, 2136,
983 2136, 2046, 2137, 2046, 2046, 2137, 2137, 2137, 2137, 2138,
985 2138, 2046, 2139, 2139, 2139, 2139, 2140, 2140, 2046, 2046,
986 2141, 2141, 2141, 2142, 2142, 2143, 2144, 2144, 2145, 2046,
987 2046, 2145, 2145, 2145, 2145, 2146, 2146, 2046, 2046, 2147,
988 2148, 2148, 2149, 2046, 2046, 2046, 2046, 2149, 2149, 2149,
989 2149, 2149, 2150, 2150, 2046, 2046, 2151, 2151, 2152, 2046,
990 2046, 2152, 2152, 2152, 2153, 2153, 2154, 2154, 2154, 2154,
991 2046, 2155, 2155, 2156, 2156, 2156, 2156, 2157, 2157, 2046,
992 2046, 2158, 2158, 2159, 2159, 2159, 2159, 2160, 2160, 2046,
993 2161, 2162, 2162, 2163, 2046, 2046, 2163, 2046, 2046, 2164,
994 2046, 2046, 2046, 2046, 2046, 2046, 2165, 2165, 2046, 2166,
996 2046, 2166, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
997 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
998 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2167, 2046, 2168,
999 2046, 2168, 2169, 2046, 2046, 2046, 2169, 2046, 2046, 2170,
1000 2046, 2170, 2171, 2046, 2046, 2046, 2046, 2046, 2171, 2046,
1001 2046, 2171, 2046, 2172, 2046, 2172, 2046, 2173, 2173, 2173,
1002 2173, 2046, 2174, 2046, 2174, 2046, 2046, 2046, 2175, 2175,
1003 2175, 2046, 2176, 2046, 2176, 2177, 2046, 2178, 2046, 2178,
1004 2179, 2046, 2046, 2046, 2179, 2179, 2179, 2179, 2046, 2180,
1005 2046, 2180, 2046, 2046, 2046, 2181, 2046, 2182, 2046, 2182,
1007 2183, 2183, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1008 2183, 2183, 2183, 2183, 2046, 2184, 2046, 2184, 2046, 2046,
1009 2046, 2046, 2185, 2046, 2185, 2186, 2046, 2046, 2046, 2186,
1010 2186, 2186, 2046, 2187, 2046, 2187, 2188, 2046, 2046, 2046,
1011 2046, 2188, 2046, 2046, 2189, 2046, 2189, 2190, 2046, 2046,
1012 2190, 2046, 2046, 2046, 2191, 2046, 2191, 2046, 2046, 2046,
1013 2046, 2192, 2046, 2192, 2193, 2193, 2193, 2193, 2046, 2194,
1014 2046, 2194, 2046, 2195, 2046, 2196, 2046, 2196, 2197, 2198,
1015 2046, 2046, 2046, 2046, 2046, 2199, 2199, 2200, 2046, 2046,
1016 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1018 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1019 2046, 2046, 2046, 2046, 2046, 2046, 2201, 2046, 2046, 2202,
1020 2046, 2203, 2204, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1021 2046, 2204, 2205, 2046, 2206, 2206, 2046, 2046, 2206, 2207,
1022 2208, 2208, 2208, 2209, 2210, 2211, 2212, 2212, 2212, 2212,
1023 2212, 2213, 2214, 2215, 2216, 2216, 2046, 2046, 2046, 2216,
1024 2216, 2216, 2216, 2217, 2218, 2219, 2219, 2219, 2219, 2220,
1025 2221, 2046, 2046, 2046, 2046, 2046, 2046, 2221, 2046, 2222,
1026 2223, 2046, 2046, 2046, 2223, 2046, 2046, 2046, 2224, 2225,
1027 2226, 2046, 2046, 2226, 2226, 2227, 2046, 2228, 2229, 2230,
1029 2231, 2231, 2046, 2231, 2046, 2046, 2046, 2232, 2232, 2233,
1030 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1031 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1032 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2234, 2046,
1033 2046, 2046, 2235, 2046, 2236, 2237, 2046, 2046, 2046, 2237,
1034 2238, 2046, 2239, 2239, 2046, 2046, 2046, 2239, 2240, 2241,
1035 2241, 2241, 2046, 2046, 2242, 2243, 2244, 2244, 2244, 2046,
1036 2046, 2046, 2046, 2244, 2245, 2046, 2046, 2246, 2046, 2046,
1037 2247, 2046, 2046, 2247, 2247, 2247, 2248, 2249, 2250, 2250,
1038 2250, 2046, 2046, 2250, 2251, 2252, 2252, 2046, 2253, 2254,
1040 2254, 2255, 2256, 2257, 2046, 2046, 2046, 2257, 2257, 2258,
1041 2046, 2046, 2046, 2259, 2260, 2261, 2261, 2046, 2046, 2262,
1042 2262, 2262, 2263, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1043 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1044 2046, 2046, 2046, 2046, 2046, 2046, 2264, 2265, 2046, 2266,
1045 2267, 2267, 2268, 2269, 2269, 2046, 2046, 2046, 2046, 2046,
1046 2046, 2046, 2046, 2269, 2270, 2046, 2046, 2271, 2046, 2046,
1047 2046, 2046, 2272, 2273, 2273, 2273, 2046, 2046, 2046, 2046,
1048 2046, 2046, 2273, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1049 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1051 2247, 2046, 2046, 2248, 2249, 2250, 2250, 2250, 2046, 2046,
1052 2046, 2250, 2046, 2046, 2046, 2046, 2252, 2046, 2253, 2046,
1053 2046, 2254, 2255, 2256, 2257, 2257, 2257, 2258, 2046, 2046,
1054 2046, 2046, 2259, 2260, 2261, 2261, 2046, 2046, 2046, 2262,
1055 2262, 2263, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1056 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1057 2046, 2264, 2265, 2046, 2046, 2046, 2267, 2267, 2268, 2269,
1058 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1059 2269, 2270, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1060 2046, 2046, 2046, 2272, 2273, 2273, 2273, 2046, 2046, 2273,
1062 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1063 2046, 2248, 2249, 2250, 2046, 2046, 2250, 2250, 2046, 2046,
1064 2250, 2046, 2046, 2046, 2252, 2046, 2253, 2046, 2046, 2046,
1065 2254, 2046, 2046, 2256, 2257, 2257, 2257, 2258, 2046, 2259,
1066 2260, 2261, 2261, 2046, 2046, 2046, 2046, 2262, 2262, 2263,
1067 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1068 2046, 2046, 2046, 2046, 2046, 2264, 2265, 2046, 2267, 2267,
1069 2046, 2046, 2269, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1070 2046, 2046, 2046, 2046, 2046, 2046, 2270, 2046, 2046, 2046,
1071 2272, 2273, 2273, 2273, 2046, 2046, 2046, 2046, 2273, 2046,
1073 2046, 2046, 2248, 2046, 2046, 2250, 2046, 2046, 2046, 2250,
1074 2250, 2046, 2046, 2046, 2046, 2250, 2046, 2046, 2046, 2046,
1075 2252, 2046, 2253, 2046, 2046, 2046, 2046, 2254, 2256, 2046,
1076 2046, 2257, 2257, 2258, 2046, 2259, 2260, 2261, 2261, 2046,
1077 2262, 2262, 2263, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1078 2046, 2046, 2265, 2046, 2046, 2267, 2269, 2046, 2046, 2046,
1079 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1080 2046, 2046, 2270, 2046, 2046, 2273, 2273, 2273, 2046, 2046,
1081 2046, 2046, 2273, 2046, 2046, 2046, 2046, 2250, 2250, 2250,
1082 2046, 2046, 2046, 2046, 2250, 2046, 2046, 2046, 2046, 2046,
1084 2046, 2046, 2046, 2046, 2253, 2046, 2046, 2046, 2046, 2046,
1085 2046, 2254, 2256, 2046, 2046, 2046, 2046, 2046, 2257, 2046,
1086 2046, 2046, 2259, 2260, 2261, 2261, 2046, 2046, 2262, 2046,
1087 2046, 2046, 2046, 2046, 2046, 2265, 2046, 2046, 2046, 2267,
1088 2269, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1089 2046, 2046, 2046, 2270, 2273, 2273, 2273, 2046, 2046, 2046,
1090 2046, 2046, 2046, 2046, 2250, 2250, 2250, 2046, 2046, 2046,
1091 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1092 2253, 2046, 2046, 2046, 2046, 2046, 2046, 2254, 2254, 2046,
1093 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2260, 2261,
1095 2261, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1096 2046, 2046, 2046, 2046, 2046, 2046, 2267, 2269, 2046, 2046,
1097 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1098 2270, 2273, 2273, 2273, 2046, 2046, 2046, 2250, 2250, 2250,
1099 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1100 2046, 2046, 2046, 2253, 2046, 2046, 2046, 2046, 2046, 2046,
1101 2254, 2254, 2046, 2046, 2046, 2260, 2261, 2261, 2046, 2046,
1102 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1103 2046, 2046, 2267, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1104 2046, 2046, 2046, 2046, 2046, 2270, 2046, 2046, 2273, 2273,
1106 2273, 2250, 2046, 2046, 2250, 2046, 2046, 2046, 2046, 2046,
1107 2046, 2046, 2046, 2046, 2046, 2253, 2046, 2046, 2046, 2046,
1108 2046, 2046, 2254, 2254, 2260, 2261, 2261, 2261, 2046, 2046,
1109 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1110 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2270,
1111 2046, 2046, 2046, 2273, 2273, 2273, 2273, 2250, 2046, 2046,
1112 2046, 2250, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1113 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1114 2046, 2046, 2254, 2046, 2046, 2254, 2260, 2261, 2261, 2261,
1115 2274, 2275, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1117 2046, 2046, 2046, 2046, 2046, 2270, 2273, 2273, 2273, 2273,
1118 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1119 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1120 2046, 2254, 2046, 2046, 2046, 2254, 2260, 2261, 2276, 2277,
1121 2274, 2275, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1122 2046, 2046, 2273, 2273, 2273, 2273, 2046, 2046, 2046, 2046,
1123 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1124 2046, 2046, 2046, 2046, 2254, 2254, 2260, 2276, 2261, 2278,
1125 2277, 2279, 2261, 2046, 2046, 2046, 2046, 2273, 2273, 2273,
1126 2273, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1128 2046, 2046, 2046, 2254, 2254, 2260, 2278, 2046, 2279, 2261,
1129 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1130 2273, 2046, 2046, 2046, 2046, 2046, 2046, 2254, 2254, 2260,
1131 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1132 2046, 2046, 2046, 2046, 2273, 2046, 2046, 2046, 2046, 2046,
1133 2046, 2046, 2254, 2254, 2260, 2046, 2273, 2046, 2046, 2046,
1134 2046, 2254, 2254, 2260, 2273, 2046, 2046, 2046, 2046, 2254,
1135 2254, 2260, 2273, 2046, 2046, 2046, 2046, 2254, 2254, 2260,
1136 2046, 2046, 2046, 2046, 2046, 2046, 2254, 2254, 2260, 2046,
1137 2046, 2046, 2046, 2046, 2254, 2254, 2260, 2254, 2254, 2260,
1139 2254, 2254, 2260, 2260, 2254, 2254, 2260, 2260, 2254, 2254,
1140 2260, 2260, 2254, 2254, 2260, 2260, 2046, 2046, 2046, 2046,
1141 2260, 2260, 2046, 2046, 2046, 2046, 2046, 2046, 2260, 2260,
1142 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260,
1143 2260, 2260, 2260, 2260, 2046, 0, 2046, 2046, 2046, 2046,
1144 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1145 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1146 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1147 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1148 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1150 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1151 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1152 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1153 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1154 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1155 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1156 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1157 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1158 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1159 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1161 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1162 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1163 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1164 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1165 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1166 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1167 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1168 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046
1171 static yyconst flex_int16_t yy_nxt[7210] =
1173 2046, 146, 147, 146, 146, 147, 146, 146, 147, 146,
1174 146, 147, 146, 151, 147, 151, 157, 148, 154, 157,
1175 148, 154, 451, 149, 2046, 155, 149, 1481, 155, 152,
1176 151, 147, 151, 389, 158, 160, 161, 158, 160, 161,
1177 162, 163, 2046, 162, 163, 389, 152, 167, 168, 390,
1178 164, 160, 161, 164, 165, 392, 162, 160, 161, 563,
1179 165, 391, 162, 167, 168, 564, 164, 147, 147, 147,
1180 452, 391, 164, 147, 147, 147, 180, 147, 180, 180,
1181 147, 180, 474, 170, 180, 147, 180, 512, 169, 170,
1182 452, 475, 181, 563, 513, 181, 388, 388, 388, 577,
1184 182, 388, 388, 388, 169, 171, 172, 147, 172, 171,
1185 171, 171, 171, 171, 171, 171, 173, 171, 171, 171,
1186 1482, 171, 175, 171, 176, 171, 180, 147, 180, 147,
1187 147, 147, 505, 147, 147, 147, 180, 147, 180, 180,
1188 147, 180, 182, 506, 563, 183, 392, 171, 171, 183,
1189 602, 491, 181, 392, 492, 181, 388, 388, 388, 388,
1190 388, 388, 391, 388, 388, 388, 388, 388, 388, 391,
1191 177, 2046, 178, 171, 172, 147, 172, 171, 171, 171,
1192 171, 171, 171, 171, 173, 171, 171, 171, 479, 171,
1193 175, 171, 176, 171, 147, 147, 147, 147, 147, 147,
1195 685, 180, 147, 180, 180, 147, 180, 180, 147, 180,
1196 184, 565, 392, 184, 392, 171, 171, 182, 392, 426,
1197 182, 427, 1115, 185, 566, 180, 147, 180, 391, 428,
1198 391, 388, 388, 388, 391, 426, 452, 429, 177, 430,
1199 178, 185, 186, 187, 147, 187, 186, 186, 186, 186,
1200 186, 186, 186, 188, 186, 186, 186, 487, 186, 190,
1201 186, 191, 186, 194, 147, 194, 194, 147, 194, 403,
1202 218, 147, 218, 160, 161, 160, 161, 488, 162, 195,
1203 162, 1483, 195, 447, 186, 186, 219, 448, 205, 1489,
1204 205, 449, 192, 186, 187, 147, 187, 186, 186, 186,
1206 186, 186, 186, 186, 188, 186, 186, 186, 896, 186,
1207 190, 186, 191, 186, 206, 2046, 206, 218, 147, 218,
1208 897, 147, 147, 147, 147, 147, 147, 388, 388, 388,
1209 388, 388, 388, 219, 685, 186, 186, 220, 879, 546,
1210 220, 515, 547, 192, 196, 197, 147, 197, 196, 196,
1211 196, 196, 196, 196, 196, 198, 196, 196, 196, 514,
1212 196, 200, 196, 201, 196, 218, 147, 218, 218, 147,
1213 218, 507, 218, 147, 218, 218, 147, 218, 388, 388,
1214 388, 219, 392, 440, 219, 514, 196, 196, 221, 434,
1215 441, 221, 1417, 1418, 202, 1419, 1420, 203, 391, 391,
1217 388, 388, 388, 204, 196, 197, 147, 197, 196, 196,
1218 196, 196, 196, 196, 196, 198, 196, 196, 196, 452,
1219 196, 200, 196, 201, 196, 233, 147, 233, 233, 147,
1220 233, 910, 246, 147, 246, 246, 147, 246, 540, 392,
1221 392, 234, 1490, 897, 234, 392, 196, 196, 247, 573,
1222 1491, 247, 459, 541, 202, 391, 391, 203, 388, 388,
1223 388, 391, 574, 204, 207, 208, 147, 208, 207, 207,
1224 207, 207, 207, 207, 207, 209, 207, 207, 207, 910,
1225 207, 211, 207, 212, 207, 147, 147, 147, 147, 147,
1226 147, 934, 147, 147, 147, 147, 147, 147, 258, 147,
1228 258, 255, 392, 392, 255, 1492, 207, 207, 256, 466,
1229 522, 256, 565, 1458, 259, 213, 1459, 214, 391, 391,
1230 215, 388, 388, 388, 2046, 578, 216, 207, 208, 147,
1231 208, 207, 207, 207, 207, 207, 207, 207, 209, 207,
1232 207, 207, 540, 207, 211, 207, 212, 207, 258, 147,
1233 258, 272, 147, 272, 514, 272, 147, 272, 147, 147,
1234 147, 147, 147, 147, 259, 412, 392, 273, 414, 207,
1235 207, 273, 392, 1121, 220, 589, 801, 220, 213, 1122,
1236 214, 1493, 391, 215, 1003, 802, 397, 1003, 391, 216,
1237 222, 223, 147, 223, 222, 222, 222, 222, 222, 222,
1239 222, 224, 222, 222, 222, 392, 222, 226, 222, 227,
1240 222, 272, 147, 272, 272, 147, 272, 1236, 272, 147,
1241 272, 391, 272, 147, 272, 398, 1343, 273, 1424, 1425,
1242 273, 399, 222, 222, 274, 400, 392, 228, 274, 229,
1243 401, 388, 388, 388, 230, 388, 388, 388, 388, 388,
1244 388, 1003, 391, 231, 222, 223, 147, 223, 222, 222,
1245 222, 222, 222, 222, 222, 224, 222, 222, 222, 392,
1246 222, 226, 222, 227, 222, 284, 147, 284, 284, 147,
1247 284, 1494, 299, 147, 299, 391, 299, 147, 299, 1235,
1248 1003, 285, 1426, 1427, 285, 1495, 222, 222, 300, 392,
1250 392, 228, 300, 229, 388, 388, 388, 484, 230, 388,
1251 388, 388, 388, 388, 388, 391, 391, 231, 235, 236,
1252 147, 236, 235, 235, 235, 235, 235, 235, 235, 237,
1253 235, 235, 235, 1439, 235, 239, 235, 240, 235, 309,
1254 147, 309, 309, 147, 309, 685, 322, 147, 322, 322,
1255 147, 322, 147, 147, 147, 310, 573, 1003, 310, 392,
1256 235, 235, 323, 685, 1000, 323, 495, 1496, 220, 580,
1257 685, 241, 388, 388, 388, 391, 1341, 242, 687, 243,
1258 244, 235, 236, 147, 236, 235, 235, 235, 235, 235,
1259 235, 235, 237, 235, 235, 235, 1438, 235, 239, 235,
1261 240, 235, 147, 147, 147, 322, 147, 322, 1499, 322,
1262 147, 322, 322, 147, 322, 322, 147, 322, 220, 1395,
1263 1397, 323, 392, 235, 235, 323, 1396, 1398, 324, 499,
1264 1460, 324, 1412, 1461, 241, 388, 388, 388, 391, 1413,
1265 242, 1506, 243, 244, 248, 249, 147, 249, 248, 248,
1266 248, 248, 248, 248, 248, 250, 248, 248, 248, 1509,
1267 248, 252, 248, 253, 248, 147, 147, 147, 147, 147,
1268 147, 1519, 147, 147, 147, 147, 147, 147, 336, 147,
1269 336, 334, 1532, 1414, 334, 1533, 248, 248, 334, 392,
1270 1415, 334, 1534, 1003, 337, 388, 388, 388, 388, 388,
1272 388, 388, 388, 388, 1535, 391, 254, 248, 249, 147,
1273 249, 248, 248, 248, 248, 248, 248, 248, 250, 248,
1274 248, 248, 1525, 248, 252, 248, 253, 248, 336, 147,
1275 336, 336, 147, 336, 1536, 336, 147, 336, 350, 147,
1276 350, 350, 147, 350, 337, 1540, 1497, 338, 1498, 248,
1277 248, 338, 392, 1500, 351, 1501, 1541, 351, 388, 388,
1278 388, 388, 388, 388, 388, 388, 388, 1542, 391, 254,
1279 260, 261, 147, 261, 260, 260, 260, 260, 260, 260,
1280 260, 262, 260, 260, 260, 1543, 260, 264, 260, 265,
1281 260, 147, 147, 147, 147, 147, 147, 1003, 350, 147,
1283 350, 350, 147, 350, 350, 147, 350, 334, 392, 392,
1284 334, 392, 260, 260, 351, 266, 526, 351, 1544, 1507,
1285 352, 1508, 1545, 267, 391, 391, 268, 391, 1510, 269,
1286 1511, 1526, 270, 260, 261, 147, 261, 260, 260, 260,
1287 260, 260, 260, 260, 262, 260, 260, 260, 1546, 260,
1288 264, 260, 265, 260, 350, 147, 350, 361, 147, 361,
1289 1547, 361, 147, 361, 374, 147, 374, 374, 147, 374,
1290 352, 685, 392, 362, 1548, 260, 260, 362, 266, 538,
1291 375, 1549, 1550, 375, 1551, 1552, 267, 1234, 391, 268,
1292 1553, 1555, 269, 1556, 1557, 270, 275, 276, 147, 276,
1294 275, 275, 275, 275, 275, 275, 275, 277, 275, 275,
1295 275, 533, 275, 279, 275, 280, 275, 147, 147, 147,
1296 147, 147, 147, 1558, 374, 147, 374, 374, 147, 374,
1297 374, 147, 374, 376, 1156, 1157, 376, 1559, 275, 275,
1298 375, 1565, 1566, 375, 1158, 534, 377, 1567, 1159, 281,
1299 388, 388, 388, 388, 388, 388, 388, 388, 388, 452,
1300 1568, 282, 275, 276, 147, 276, 275, 275, 275, 275,
1301 275, 275, 275, 277, 275, 275, 275, 1569, 275, 279,
1302 275, 280, 275, 374, 147, 374, 386, 147, 386, 1572,
1303 386, 147, 386, 388, 388, 388, 388, 388, 388, 377,
1305 1573, 1574, 387, 1575, 275, 275, 387, 388, 388, 388,
1306 388, 388, 388, 1576, 1577, 281, 388, 388, 388, 388,
1307 388, 388, 388, 388, 388, 1582, 1583, 282, 286, 287,
1308 147, 287, 286, 286, 286, 286, 286, 286, 286, 288,
1309 286, 286, 286, 289, 286, 290, 286, 291, 286, 289,
1310 289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
1311 289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
1312 286, 286, 289, 289, 292, 289, 289, 289, 289, 289,
1313 289, 293, 289, 294, 289, 289, 289, 295, 289, 296,
1314 297, 289, 289, 289, 289, 289, 289, 301, 302, 147,
1316 302, 301, 301, 301, 301, 301, 301, 301, 303, 301,
1317 301, 301, 1584, 301, 305, 301, 306, 301, 544, 544,
1318 544, 586, 586, 586, 594, 594, 594, 609, 609, 609,
1319 620, 620, 620, 544, 544, 544, 1585, 689, 587, 301,
1320 301, 595, 1586, 1587, 610, 1607, 1608, 621, 1609, 1003,
1321 307, 301, 302, 147, 302, 301, 301, 301, 301, 301,
1322 301, 301, 303, 301, 301, 301, 685, 301, 305, 301,
1323 306, 301, 1610, 545, 628, 628, 628, 1342, 634, 634,
1324 634, 636, 636, 636, 645, 645, 645, 900, 900, 900,
1325 1617, 629, 1618, 301, 301, 635, 1619, 1620, 637, 1621,
1327 1622, 646, 1599, 1003, 307, 311, 312, 147, 312, 311,
1328 311, 311, 311, 311, 311, 311, 313, 311, 311, 311,
1329 1003, 311, 315, 311, 316, 311, 650, 650, 650, 670,
1330 670, 670, 699, 699, 699, 699, 699, 699, 729, 729,
1331 729, 1623, 1601, 651, 1624, 1613, 671, 311, 311, 1625,
1332 701, 317, 1626, 701, 1600, 1627, 731, 1614, 318, 1628,
1333 319, 908, 908, 908, 1014, 1014, 1014, 320, 311, 312,
1334 147, 312, 311, 311, 311, 311, 311, 311, 311, 313,
1335 311, 311, 311, 1629, 311, 315, 311, 316, 311, 702,
1336 729, 729, 729, 1160, 1161, 586, 586, 586, 734, 734,
1338 734, 1615, 735, 1162, 1630, 736, 1632, 1163, 731, 1633,
1339 311, 311, 587, 1616, 317, 744, 744, 744, 1634, 745,
1340 1638, 318, 746, 319, 1020, 1020, 1020, 900, 900, 900,
1341 320, 325, 326, 147, 326, 325, 325, 325, 325, 325,
1342 325, 325, 327, 325, 325, 325, 732, 325, 329, 325,
1343 330, 325, 739, 739, 739, 1639, 1640, 739, 739, 739,
1344 594, 594, 594, 747, 747, 747, 750, 750, 750, 1644,
1345 741, 1645, 1646, 325, 325, 741, 331, 595, 1647, 332,
1346 748, 1648, 1649, 751, 766, 766, 766, 1655, 767, 1656,
1347 1657, 768, 1658, 333, 325, 326, 147, 326, 325, 325,
1349 325, 325, 325, 325, 325, 327, 325, 325, 325, 1659,
1350 325, 329, 325, 330, 325, 1660, 1003, 742, 1650, 1652,
1351 753, 753, 753, 762, 762, 762, 1651, 1653, 753, 753,
1352 753, 762, 762, 762, 1673, 1675, 325, 325, 755, 331,
1353 1679, 764, 332, 782, 782, 782, 755, 783, 1680, 764,
1354 784, 1026, 1026, 1026, 1667, 685, 333, 339, 340, 147,
1355 340, 339, 339, 339, 339, 339, 339, 339, 341, 339,
1356 339, 339, 756, 339, 343, 339, 344, 339, 609, 609,
1357 609, 1666, 1681, 772, 772, 772, 777, 777, 777, 1682,
1358 1683, 765, 620, 620, 620, 610, 772, 772, 772, 339,
1360 339, 774, 345, 1686, 779, 346, 908, 908, 908, 621,
1361 347, 793, 793, 793, 774, 794, 1687, 1003, 795, 348,
1362 339, 340, 147, 340, 339, 339, 339, 339, 339, 339,
1363 339, 341, 339, 339, 339, 1688, 339, 343, 339, 344,
1364 339, 777, 777, 777, 775, 1689, 789, 789, 789, 789,
1365 789, 789, 628, 628, 628, 1668, 797, 797, 797, 779,
1366 1690, 1691, 339, 339, 791, 345, 1692, 791, 346, 629,
1367 1052, 1052, 1052, 347, 799, 1014, 1014, 1014, 1016, 1016,
1368 1016, 1693, 348, 353, 354, 147, 354, 353, 353, 353,
1369 353, 353, 353, 353, 355, 353, 353, 353, 780, 353,
1371 357, 353, 358, 353, 1694, 1695, 792, 1700, 1701, 797,
1372 797, 797, 634, 634, 634, 803, 803, 803, 1702, 804,
1373 1705, 1706, 805, 1707, 1708, 353, 353, 799, 1709, 635,
1374 1020, 1020, 1020, 1026, 1026, 1026, 359, 353, 354, 147,
1375 354, 353, 353, 353, 353, 353, 353, 353, 355, 353,
1376 353, 353, 1710, 353, 357, 353, 358, 353, 636, 636,
1377 636, 806, 806, 806, 1711, 807, 1712, 1713, 808, 800,
1378 809, 809, 809, 1714, 1715, 637, 1027, 1027, 1027, 353,
1379 353, 819, 819, 819, 1717, 820, 1718, 810, 821, 1719,
1380 359, 363, 364, 147, 364, 363, 363, 363, 363, 363,
1382 363, 363, 365, 363, 363, 363, 1720, 363, 367, 363,
1383 368, 363, 815, 815, 815, 645, 645, 645, 822, 822,
1384 822, 815, 815, 815, 822, 822, 822, 650, 650, 650,
1385 817, 1721, 646, 363, 363, 1722, 824, 1003, 685, 817,
1386 1729, 369, 824, 370, 651, 371, 1052, 1052, 1052, 1250,
1387 1250, 1250, 1730, 372, 363, 364, 147, 364, 363, 363,
1388 363, 363, 363, 363, 363, 365, 363, 363, 363, 1726,
1389 363, 367, 363, 368, 363, 818, 827, 827, 827, 1731,
1390 828, 825, 1725, 829, 833, 833, 833, 833, 833, 833,
1391 838, 838, 838, 840, 840, 840, 363, 363, 849, 849,
1393 849, 1732, 835, 1733, 369, 835, 370, 839, 371, 1734,
1394 841, 1132, 1132, 1132, 1740, 850, 372, 378, 379, 147,
1395 379, 378, 378, 378, 378, 378, 378, 378, 380, 378,
1396 378, 378, 1741, 378, 382, 378, 383, 378, 1742, 836,
1397 844, 844, 844, 1743, 852, 852, 852, 844, 844, 844,
1398 854, 854, 854, 854, 854, 854, 1744, 1745, 846, 378,
1399 378, 853, 670, 670, 670, 846, 1746, 1747, 856, 1748,
1400 1749, 856, 1754, 858, 858, 858, 1757, 859, 1758, 671,
1401 860, 1762, 384, 378, 379, 147, 379, 378, 378, 378,
1402 378, 378, 378, 378, 380, 378, 378, 378, 1763, 378,
1404 382, 378, 383, 378, 847, 861, 861, 861, 1755, 1756,
1405 857, 861, 861, 861, 869, 869, 869, 869, 869, 869,
1406 875, 875, 875, 863, 1764, 378, 378, 1765, 1766, 863,
1407 1767, 1768, 871, 1769, 1770, 871, 1771, 1772, 877, 875,
1408 875, 875, 699, 699, 699, 915, 915, 915, 384, 392,
1409 699, 699, 699, 1016, 1016, 1016, 408, 877, 1775, 1776,
1410 701, 1777, 916, 864, 1778, 391, 1779, 1017, 701, 699,
1411 699, 699, 1780, 729, 729, 729, 1795, 872, 729, 729,
1412 729, 1796, 1797, 729, 729, 729, 1798, 701, 1802, 685,
1413 409, 731, 410, 1803, 1804, 411, 731, 412, 413, 878,
1415 414, 731, 1805, 1807, 415, 1808, 416, 417, 418, 392,
1416 918, 918, 918, 888, 1809, 1810, 408, 734, 734, 734,
1417 1787, 735, 1815, 1816, 736, 391, 1817, 919, 1818, 917,
1418 2046, 2046, 2046, 739, 739, 739, 739, 739, 739, 1819,
1419 1820, 739, 739, 739, 747, 747, 747, 2046, 1821, 1822,
1420 409, 741, 419, 1823, 741, 420, 1824, 421, 413, 741,
1421 422, 748, 1825, 1826, 415, 1827, 423, 424, 425, 744,
1422 744, 744, 1828, 745, 1843, 1844, 746, 924, 924, 924,
1423 685, 925, 1845, 1846, 926, 922, 1847, 920, 927, 927,
1424 927, 750, 750, 750, 929, 929, 929, 1848, 930, 1849,
1426 1850, 931, 753, 753, 753, 928, 1853, 1854, 751, 753,
1427 753, 753, 753, 753, 753, 937, 937, 937, 1855, 1837,
1428 755, 762, 762, 762, 762, 762, 762, 755, 1856, 1863,
1429 755, 1864, 938, 762, 762, 762, 766, 766, 766, 764,
1430 767, 1865, 764, 768, 772, 772, 772, 772, 772, 772,
1431 1866, 764, 772, 772, 772, 777, 777, 777, 777, 777,
1432 777, 1867, 774, 1868, 1869, 774, 1870, 1871, 933, 1872,
1433 774, 1873, 1874, 779, 1884, 1885, 779, 940, 777, 777,
1434 777, 782, 782, 782, 685, 783, 1879, 1886, 784, 789,
1435 789, 789, 789, 789, 789, 1879, 779, 789, 789, 789,
1437 1880, 793, 793, 793, 1887, 794, 1882, 791, 795, 1888,
1438 791, 797, 797, 797, 944, 791, 797, 797, 797, 797,
1439 797, 797, 1889, 803, 803, 803, 1877, 804, 1890, 799,
1440 805, 809, 809, 809, 799, 1891, 1892, 799, 946, 806,
1441 806, 806, 1896, 807, 1894, 1897, 808, 1893, 810, 957,
1442 957, 957, 1898, 958, 1899, 1895, 959, 1900, 952, 815,
1443 815, 815, 815, 815, 815, 815, 815, 815, 819, 819,
1444 819, 1901, 820, 1902, 1903, 821, 954, 817, 1003, 1004,
1445 817, 1908, 1879, 817, 822, 822, 822, 822, 822, 822,
1446 822, 822, 822, 827, 827, 827, 1880, 828, 1908, 685,
1448 829, 1911, 824, 1912, 1913, 824, 1914, 1924, 824, 833,
1449 833, 833, 833, 833, 833, 833, 833, 833, 838, 838,
1450 838, 1879, 972, 972, 972, 1925, 973, 835, 964, 974,
1451 835, 1926, 1882, 835, 1927, 839, 1906, 840, 840, 840,
1452 975, 975, 975, 1908, 976, 1931, 1908, 977, 844, 844,
1453 844, 1932, 1933, 965, 841, 844, 844, 844, 844, 844,
1454 844, 849, 849, 849, 1934, 1935, 846, 1945, 982, 982,
1455 982, 970, 983, 846, 1949, 984, 846, 1950, 850, 852,
1456 852, 852, 986, 986, 986, 1951, 987, 1952, 1956, 988,
1457 854, 854, 854, 854, 854, 854, 853, 854, 854, 854,
1459 858, 858, 858, 1957, 859, 1958, 1959, 860, 856, 1960,
1460 1961, 856, 861, 861, 861, 856, 861, 861, 861, 685,
1461 1965, 980, 861, 861, 861, 992, 992, 992, 1966, 1967,
1462 863, 869, 869, 869, 863, 869, 869, 869, 1968, 1969,
1463 863, 1964, 993, 869, 869, 869, 875, 875, 875, 871,
1464 875, 875, 875, 871, 875, 875, 875, 1002, 1002, 1002,
1465 989, 871, 1973, 1974, 877, 699, 699, 699, 877, 915,
1466 915, 915, 877, 1975, 685, 1003, 1004, 1976, 990, 1027,
1467 1027, 1027, 1977, 701, 1983, 1984, 916, 1036, 1036, 1036,
1468 1985, 1037, 1972, 1017, 1038, 729, 729, 729, 685, 1986,
1470 996, 918, 918, 918, 999, 1040, 1040, 1040, 1993, 1041,
1471 1994, 685, 1042, 731, 739, 739, 739, 1980, 919, 924,
1472 924, 924, 685, 925, 1997, 685, 926, 1010, 927, 927,
1473 927, 1989, 741, 1047, 1047, 1047, 685, 1048, 1480, 1479,
1474 1049, 753, 753, 753, 685, 928, 929, 929, 929, 1039,
1475 930, 685, 685, 931, 937, 937, 937, 685, 685, 755,
1476 1045, 1055, 1055, 1055, 2029, 1056, 685, 685, 1057, 1478,
1477 2011, 938, 762, 762, 762, 1063, 1063, 1063, 777, 777,
1478 777, 1070, 1070, 1070, 1072, 1072, 1072, 2007, 1051, 2015,
1479 764, 2012, 685, 1064, 2008, 2016, 779, 685, 1071, 2021,
1481 685, 1073, 789, 789, 789, 1076, 1076, 1076, 2030, 1477,
1482 797, 797, 797, 1079, 1079, 1079, 1476, 685, 1059, 685,
1483 791, 2033, 1077, 2046, 2046, 2046, 1066, 1074, 799, 2022,
1484 1080, 957, 957, 957, 2031, 958, 2043, 685, 959, 685,
1485 2046, 1082, 1082, 1082, 2046, 2046, 2046, 685, 2046, 2046,
1486 2046, 2032, 2046, 2046, 2046, 815, 815, 815, 1083, 1469,
1487 685, 2046, 1468, 2039, 1075, 2046, 2034, 1467, 1078, 2046,
1488 822, 822, 822, 817, 1092, 1092, 1092, 833, 833, 833,
1489 972, 972, 972, 2040, 973, 1081, 685, 974, 824, 2037,
1490 2035, 1093, 1085, 2036, 685, 835, 975, 975, 975, 685,
1492 976, 1466, 685, 977, 1465, 1027, 1027, 1027, 1464, 685,
1493 1084, 844, 844, 844, 2043, 2038, 1087, 1094, 1086, 1098,
1494 982, 982, 982, 2041, 983, 1463, 1462, 984, 685, 846,
1495 1095, 1457, 1088, 986, 986, 986, 1456, 987, 2042, 1453,
1496 988, 854, 854, 854, 861, 861, 861, 992, 992, 992,
1497 1105, 1105, 1105, 1450, 1106, 1449, 1448, 1107, 1447, 856,
1498 1435, 1433, 863, 1432, 993, 869, 869, 869, 1112, 1112,
1499 1112, 1422, 1416, 1099, 875, 875, 875, 1002, 1002, 1002,
1500 699, 699, 699, 871, 1411, 1113, 1132, 1132, 1132, 1036,
1501 1036, 1036, 877, 1037, 1410, 1003, 1038, 1103, 701, 1406,
1503 1133, 1399, 1394, 1102, 1135, 1135, 1135, 1132, 1132, 1132,
1504 1393, 1110, 1141, 1141, 1141, 1252, 1252, 1252, 1136, 1392,
1505 1384, 1133, 1143, 1143, 1143, 1116, 1136, 1383, 1382, 1123,
1506 1143, 1143, 1143, 1141, 1141, 1141, 1144, 1114, 729, 729,
1507 729, 1117, 1381, 1380, 1144, 1379, 1134, 1146, 1040, 1040,
1508 1040, 1378, 1041, 1377, 1373, 1042, 731, 739, 739, 739,
1509 1370, 1047, 1047, 1047, 1369, 1048, 1368, 1140, 1049, 753,
1510 753, 753, 1055, 1055, 1055, 741, 1056, 1367, 1365, 1057,
1511 1363, 1359, 1134, 1358, 762, 762, 762, 755, 1356, 1355,
1512 1140, 1166, 1166, 1166, 2046, 2046, 2046, 1169, 1169, 1169,
1514 1351, 1147, 764, 1344, 1339, 1150, 1337, 1336, 1167, 1335,
1515 1326, 2046, 1321, 1320, 1170, 1063, 1063, 1063, 1171, 1171,
1516 1171, 777, 777, 777, 1319, 1318, 1153, 1070, 1070, 1070,
1517 1314, 1300, 1165, 1064, 1299, 1172, 1177, 1177, 1177, 779,
1518 1178, 1298, 1297, 1179, 1071, 1072, 1072, 1072, 1168, 1180,
1519 1180, 1180, 1296, 1181, 1295, 1281, 1182, 1184, 1184, 1184,
1520 1280, 1279, 1073, 1278, 1277, 1173, 1076, 1076, 1076, 1186,
1521 1186, 1186, 1276, 1187, 1275, 1185, 1188, 1189, 1189, 1189,
1522 1079, 1079, 1079, 1077, 1191, 1191, 1191, 1274, 1192, 1273,
1523 1270, 1193, 1194, 1194, 1194, 1190, 1268, 1080, 1082, 1082,
1525 1082, 1196, 1196, 1196, 1267, 1197, 1264, 1263, 1198, 1195,
1526 1199, 1199, 1199, 1261, 1260, 1083, 2046, 2046, 2046, 1202,
1527 1202, 1202, 815, 815, 815, 1259, 1258, 1200, 822, 822,
1528 822, 1255, 1254, 2046, 1253, 1251, 1203, 1092, 1092, 1092,
1529 817, 1209, 1209, 1209, 1249, 1210, 824, 1248, 1211, 1213,
1530 1213, 1213, 1247, 1246, 1093, 1215, 1215, 1215, 2046, 2046,
1531 2046, 844, 844, 844, 1220, 1220, 1220, 1214, 1245, 1244,
1532 1201, 1243, 1216, 1237, 1229, 2046, 1205, 1227, 1226, 846,
1533 1225, 1221, 1218, 1212, 1204, 2046, 2046, 2046, 854, 854,
1534 854, 1208, 1207, 861, 861, 861, 1105, 1105, 1105, 1206,
1536 1106, 1183, 2046, 1107, 1176, 1175, 856, 1224, 1174, 1219,
1537 1164, 863, 869, 869, 869, 1112, 1112, 1112, 1217, 1230,
1538 1230, 1230, 1155, 1231, 1154, 1152, 1232, 1151, 1222, 1149,
1539 871, 1148, 1113, 875, 875, 875, 1223, 1238, 1238, 1238,
1540 2046, 2046, 2046, 1145, 2046, 2046, 2046, 699, 699, 699,
1541 1142, 877, 1139, 1138, 1239, 1137, 1131, 2046, 1130, 1129,
1542 1228, 2046, 1135, 1135, 1135, 701, 1256, 1256, 1256, 1257,
1543 1257, 1257, 1141, 1141, 1141, 1143, 1143, 1143, 729, 729,
1544 729, 1265, 1265, 1265, 753, 753, 753, 1128, 1233, 1271,
1545 1271, 1271, 1240, 762, 762, 762, 731, 1127, 1126, 1266,
1547 1125, 1241, 755, 1124, 1242, 1120, 1272, 1282, 1352, 1352,
1548 1352, 764, 1166, 1166, 1166, 1283, 1283, 1283, 1119, 1284,
1549 1118, 1003, 1285, 1111, 1109, 1262, 1286, 1286, 1286, 1167,
1550 1169, 1169, 1169, 1288, 1288, 1288, 1108, 1289, 1104, 1269,
1551 1290, 1101, 1100, 1287, 1171, 1171, 1171, 1170, 1291, 1291,
1552 1291, 1097, 1292, 1096, 1091, 1293, 777, 777, 777, 1090,
1553 1089, 1172, 1177, 1177, 1177, 1069, 1178, 1068, 1067, 1179,
1554 1065, 1180, 1180, 1180, 779, 1181, 1062, 1061, 1182, 1184,
1555 1184, 1184, 1186, 1186, 1186, 1060, 1187, 1058, 1054, 1188,
1556 1189, 1189, 1189, 1053, 1191, 1191, 1191, 1185, 1192, 1050,
1558 1046, 1193, 1294, 1194, 1194, 1194, 1044, 1043, 1190, 1301,
1559 1301, 1301, 1035, 1302, 1034, 1033, 1303, 1196, 1196, 1196,
1560 1195, 1197, 1032, 1031, 1198, 1199, 1199, 1199, 1304, 1304,
1561 1304, 1030, 1305, 1029, 1028, 1306, 1307, 1307, 1307, 1202,
1562 1202, 1202, 1200, 1309, 1309, 1309, 1025, 1310, 1024, 1023,
1563 1311, 1022, 1021, 1308, 1019, 1018, 1203, 815, 815, 815,
1564 822, 822, 822, 1315, 1315, 1315, 1209, 1209, 1209, 1015,
1565 1210, 1013, 1012, 1211, 1011, 817, 1009, 1008, 824, 1007,
1566 1316, 1213, 1213, 1213, 1215, 1215, 1215, 1322, 1322, 1322,
1567 1006, 1323, 1005, 998, 1324, 2046, 2046, 2046, 997, 1214,
1569 995, 1216, 1220, 1220, 1220, 1312, 1317, 844, 844, 844,
1570 994, 991, 2046, 2046, 2046, 2046, 1332, 1332, 1332, 1221,
1571 1313, 1327, 1328, 1328, 1328, 846, 1329, 985, 981, 1330,
1572 2046, 861, 861, 861, 1333, 869, 869, 869, 1230, 1230,
1573 1230, 979, 1231, 978, 971, 1232, 969, 1325, 968, 863,
1574 875, 875, 875, 871, 1238, 1238, 1238, 1345, 1345, 1345,
1575 967, 1346, 966, 963, 1347, 2046, 2046, 2046, 877, 962,
1576 1331, 1239, 2046, 2046, 2046, 961, 960, 1334, 956, 699,
1577 699, 699, 2046, 1353, 1353, 1353, 1354, 1354, 1354, 2046,
1578 1357, 1357, 1357, 1250, 1250, 1250, 1338, 701, 1340, 1252,
1580 1252, 1252, 1360, 1360, 1360, 1361, 1361, 1361, 1256, 1256,
1581 1256, 1257, 1257, 1257, 1362, 1362, 1362, 1364, 1364, 1364,
1582 955, 1348, 729, 729, 729, 1265, 1265, 1265, 1371, 1371,
1583 1371, 1271, 1271, 1271, 953, 1349, 762, 762, 762, 1350,
1584 731, 951, 950, 1266, 949, 948, 1372, 947, 1272, 1374,
1585 1374, 1374, 945, 1375, 764, 943, 1376, 1385, 1385, 1385,
1586 1283, 1283, 1283, 942, 1284, 941, 939, 1285, 936, 935,
1587 1366, 1286, 1286, 1286, 1386, 932, 1388, 1388, 1388, 923,
1588 1389, 921, 1387, 1390, 914, 1288, 1288, 1288, 1287, 1289,
1589 913, 912, 1290, 1291, 1291, 1291, 911, 1292, 909, 907,
1591 1293, 777, 777, 777, 1301, 1301, 1301, 906, 1302, 905,
1592 904, 1303, 903, 1304, 1304, 1304, 902, 1305, 901, 779,
1593 1306, 1307, 1307, 1307, 1400, 1400, 1400, 899, 1401, 898,
1594 895, 1402, 1309, 1309, 1309, 894, 1310, 893, 1308, 1311,
1595 815, 815, 815, 1404, 1404, 1404, 1315, 1315, 1315, 1407,
1596 1407, 1407, 1391, 1408, 892, 891, 1409, 890, 817, 889,
1597 887, 1405, 886, 1316, 1322, 1322, 1322, 885, 1323, 884,
1598 883, 1324, 2046, 2046, 2046, 844, 844, 844, 1328, 1328,
1599 1328, 882, 1329, 881, 880, 1330, 2046, 2046, 2046, 2046,
1600 1332, 1332, 1332, 846, 861, 861, 861, 1430, 1430, 1430,
1602 1403, 685, 874, 2046, 869, 869, 869, 873, 1333, 1437,
1603 1437, 1437, 863, 868, 1431, 875, 875, 875, 1421, 1440,
1604 1440, 1440, 871, 867, 1345, 1345, 1345, 685, 1346, 866,
1605 1423, 1347, 865, 877, 2046, 2046, 2046, 2046, 2046, 2046,
1606 851, 848, 1428, 699, 699, 699, 1444, 1444, 1444, 843,
1607 842, 2046, 837, 832, 2046, 831, 1429, 1352, 1352, 1352,
1608 830, 701, 1353, 1353, 1353, 1434, 1354, 1354, 1354, 826,
1609 814, 1436, 1445, 1445, 1445, 1446, 1446, 1446, 1357, 1357,
1610 1357, 1360, 1360, 1360, 1361, 1361, 1361, 1441, 1362, 1362,
1611 1362, 1364, 1364, 1364, 1451, 1451, 1451, 813, 1443, 1442,
1613 1454, 1454, 1454, 1371, 1371, 1371, 1374, 1374, 1374, 812,
1614 1375, 811, 1452, 1376, 1385, 1385, 1385, 1455, 1470, 1470,
1615 1470, 1372, 1471, 796, 788, 1472, 762, 762, 762, 787,
1616 786, 1386, 1388, 1388, 1388, 785, 1389, 781, 776, 1390,
1617 1474, 1474, 1474, 771, 764, 1400, 1400, 1400, 770, 1401,
1618 769, 761, 1402, 1484, 1484, 1484, 760, 759, 1475, 1404,
1619 1404, 1404, 1486, 1486, 1486, 1407, 1407, 1407, 758, 1408,
1620 757, 1485, 1409, 1502, 1502, 1502, 752, 1405, 749, 1487,
1621 1504, 1504, 1504, 1473, 844, 844, 844, 2046, 2046, 2046,
1622 1503, 743, 861, 861, 861, 1430, 1430, 1430, 738, 1514,
1624 1514, 1514, 846, 1515, 2046, 1488, 1516, 1517, 1517, 1517,
1625 863, 737, 1431, 1520, 1520, 1520, 1522, 1522, 1522, 875,
1626 875, 875, 733, 728, 1518, 1437, 1437, 1437, 727, 726,
1627 1512, 1521, 1440, 1440, 1440, 725, 724, 877, 1527, 1527,
1628 1527, 723, 722, 685, 2046, 2046, 2046, 1505, 1513, 1530,
1629 1530, 1530, 1444, 1444, 1444, 1528, 1445, 1445, 1445, 721,
1630 720, 2046, 1446, 1446, 1446, 719, 718, 1531, 1451, 1451,
1631 1451, 1454, 1454, 1454, 717, 1537, 1537, 1537, 716, 1538,
1632 715, 1523, 1539, 1524, 714, 713, 1452, 712, 1455, 1470,
1633 1470, 1470, 1529, 1471, 711, 710, 1472, 762, 762, 762,
1635 1474, 1474, 1474, 1560, 1560, 1560, 1484, 1484, 1484, 1486,
1636 1486, 1486, 1562, 1562, 1562, 764, 1563, 709, 1475, 1564,
1637 1561, 1570, 1570, 1570, 1485, 708, 1487, 1502, 1502, 1502,
1638 1578, 1578, 1578, 707, 1579, 706, 705, 1580, 1571, 1504,
1639 1504, 1504, 704, 703, 1503, 844, 844, 844, 2046, 2046,
1640 2046, 698, 697, 1554, 1590, 1590, 1590, 1514, 1514, 1514,
1641 696, 1515, 695, 846, 1516, 2046, 1517, 1517, 1517, 1592,
1642 1592, 1592, 1591, 1593, 694, 693, 1594, 1595, 1595, 1595,
1643 1520, 1520, 1520, 1518, 1522, 1522, 1522, 1597, 1597, 1597,
1644 1527, 1527, 1527, 692, 1596, 1588, 691, 688, 1521, 1581,
1646 686, 1605, 1605, 1605, 685, 1598, 683, 1528, 681, 1589,
1647 1602, 1602, 1602, 680, 1603, 679, 677, 1604, 1606, 1530,
1648 1530, 1530, 1611, 1611, 1611, 1537, 1537, 1537, 676, 1538,
1649 675, 674, 1539, 762, 762, 762, 673, 1531, 669, 1612,
1650 1560, 1560, 1560, 1635, 1635, 1635, 667, 1636, 666, 665,
1651 1637, 764, 1562, 1562, 1562, 664, 1563, 1561, 663, 1564,
1652 1570, 1570, 1570, 1641, 1641, 1641, 661, 1642, 660, 659,
1653 1643, 1578, 1578, 1578, 658, 1579, 657, 1571, 1580, 844,
1654 844, 844, 2046, 2046, 2046, 2046, 2046, 2046, 656, 1631,
1655 1590, 1590, 1590, 654, 1592, 1592, 1592, 846, 1593, 2046,
1657 653, 1594, 2046, 1595, 1595, 1595, 652, 649, 1591, 1663,
1658 1663, 1663, 648, 1664, 644, 642, 1665, 1597, 1597, 1597,
1659 1596, 1602, 1602, 1602, 641, 1603, 640, 639, 1604, 1605,
1660 1605, 1605, 1669, 1669, 1669, 1598, 1670, 638, 633, 1671,
1661 632, 1654, 630, 1661, 627, 1662, 1606, 1672, 1672, 1672,
1662 1674, 1674, 1674, 1611, 1611, 1611, 1676, 1676, 1676, 625,
1663 1677, 624, 623, 1678, 1684, 1684, 1684, 762, 762, 762,
1664 1612, 1697, 1697, 1697, 622, 1635, 1635, 1635, 619, 1636,
1665 618, 1685, 1637, 616, 615, 764, 613, 612, 1698, 1703,
1666 1703, 1703, 1641, 1641, 1641, 611, 1642, 608, 606, 1643,
1668 844, 844, 844, 2046, 2046, 2046, 1704, 2046, 2046, 2046,
1669 1672, 1672, 1672, 605, 1699, 1696, 604, 603, 846, 601,
1670 2046, 1663, 1663, 1663, 2046, 1664, 599, 598, 1665, 1727,
1671 1727, 1727, 1669, 1669, 1669, 597, 1670, 596, 593, 1671,
1672 1674, 1674, 1674, 1735, 1735, 1735, 1728, 1003, 592, 1684,
1673 1684, 1684, 1716, 1724, 1676, 1676, 1676, 591, 1677, 588,
1674 1736, 1678, 762, 762, 762, 1723, 1685, 1737, 1737, 1737,
1675 585, 1738, 584, 582, 1739, 1697, 1697, 1697, 581, 579,
1676 764, 1751, 1751, 1751, 576, 1752, 575, 572, 1753, 1703,
1677 1703, 1703, 1698, 1759, 1759, 1759, 571, 1760, 570, 569,
1679 1761, 1773, 1773, 1773, 568, 567, 1704, 562, 1750, 1781,
1680 1781, 1781, 1784, 1784, 1784, 1788, 1788, 1788, 561, 1774,
1681 1727, 1727, 1727, 1790, 1790, 1790, 1782, 1791, 560, 1785,
1682 1792, 559, 1789, 1003, 1793, 1793, 1793, 1728, 1003, 558,
1683 557, 1003, 1794, 1794, 1794, 1735, 1735, 1735, 556, 1799,
1684 1799, 1799, 1783, 1800, 554, 1786, 1801, 1737, 1737, 1737,
1685 553, 1738, 1736, 552, 1739, 762, 762, 762, 1751, 1751,
1686 1751, 551, 1752, 550, 549, 1753, 1811, 1811, 1811, 548,
1687 1759, 1759, 1759, 764, 1760, 543, 540, 1761, 1813, 1813,
1688 1813, 542, 537, 1812, 1773, 1773, 1773, 1781, 1781, 1781,
1690 1829, 1829, 1829, 535, 1830, 1814, 533, 1831, 2046, 2046,
1691 2046, 2046, 1774, 532, 1782, 1784, 1784, 1784, 531, 1833,
1692 1833, 1833, 530, 1834, 529, 2046, 1835, 1806, 2046, 2046,
1693 2046, 527, 1785, 1788, 1788, 1788, 1838, 1838, 1838, 525,
1694 1839, 523, 522, 1840, 521, 2046, 1793, 1793, 1793, 520,
1695 1789, 1003, 519, 518, 1003, 516, 1790, 1790, 1790, 515,
1696 1791, 511, 510, 1792, 1794, 1794, 1794, 508, 1799, 1799,
1697 1799, 507, 1800, 1832, 1003, 1801, 1857, 1857, 1857, 504,
1698 1858, 503, 502, 1859, 500, 1851, 1851, 1851, 498, 1811,
1699 1811, 1811, 496, 1836, 1001, 1001, 1001, 1001, 1001, 1001,
1701 1001, 1001, 1001, 1852, 494, 1001, 1812, 1813, 1813, 1813,
1702 1001, 1001, 1001, 1003, 1001, 1860, 1860, 1860, 493, 1861,
1703 490, 489, 1862, 485, 1814, 1829, 1829, 1829, 483, 1830,
1704 482, 480, 1831, 2046, 2046, 2046, 1001, 1001, 1001, 1001,
1705 1001, 1001, 1001, 1001, 1001, 1001, 1001, 479, 478, 1001,
1706 2046, 2046, 2046, 2046, 1001, 1001, 1001, 1003, 1001, 1833,
1707 1833, 1833, 477, 1834, 476, 473, 1835, 471, 2046, 1838,
1708 1838, 1838, 470, 1839, 421, 469, 1840, 1851, 1851, 1851,
1709 1001, 1001, 1857, 1857, 1857, 1875, 1858, 1003, 467, 1859,
1710 1860, 1860, 1860, 465, 1861, 1852, 464, 1862, 463, 2046,
1712 2046, 2046, 462, 1876, 1001, 1001, 1001, 1001, 1001, 1883,
1713 1001, 1001, 1001, 460, 458, 1001, 2046, 2046, 2046, 2046,
1714 1001, 1001, 1001, 1003, 1001, 1910, 1910, 1910, 1915, 1915,
1715 1915, 1936, 1936, 1936, 2046, 1937, 457, 456, 1938, 455,
1716 1917, 1917, 1917, 1003, 1004, 1916, 1001, 1001, 1001, 1001,
1717 1001, 1001, 1001, 1001, 1001, 1001, 1883, 1918, 453, 1001,
1718 451, 1904, 450, 446, 1001, 1001, 1001, 1003, 1001, 1919,
1719 1919, 1919, 1922, 1922, 1922, 2046, 2046, 2046, 445, 1905,
1720 2046, 2046, 2046, 1930, 1930, 1930, 1920, 443, 442, 1923,
1721 1001, 1001, 2046, 1910, 1910, 1910, 439, 2046, 1915, 1915,
1723 1915, 685, 1917, 1917, 1917, 438, 1939, 1939, 1939, 437,
1724 1940, 1003, 1921, 1941, 435, 1916, 1919, 1919, 1919, 1918,
1725 1942, 1942, 1942, 433, 1943, 431, 1928, 1944, 1922, 1922,
1726 1922, 1929, 2046, 1920, 407, 1946, 1946, 1946, 406, 1947,
1727 404, 1116, 1948, 402, 396, 1923, 2046, 2046, 2046, 2046,
1728 2046, 2046, 1930, 1930, 1930, 1936, 1936, 1936, 395, 1937,
1729 396, 395, 1938, 2046, 394, 393, 2046, 1939, 1939, 1939,
1730 685, 1940, 2046, 2046, 1941, 1942, 1942, 1942, 2046, 1943,
1731 2046, 2046, 1944, 1946, 1946, 1946, 2046, 1947, 1955, 1953,
1732 1948, 2046, 1954, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1734 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1735 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1736 2046, 2046, 2046, 2046, 2046, 2046, 1981, 1981, 1981, 2046,
1737 2046, 2046, 2046, 2046, 2046, 1981, 1981, 1981, 2046, 2046,
1738 2046, 2046, 2046, 1982, 2046, 2046, 2046, 2046, 2046, 2046,
1739 1962, 2046, 1982, 1963, 2046, 2046, 1978, 2046, 1990, 1990,
1740 1990, 1970, 1991, 2046, 1971, 1992, 2046, 2046, 2046, 2046,
1741 2046, 2046, 2046, 2046, 1979, 2046, 2046, 1987, 2046, 2046,
1742 1988, 2046, 2046, 2046, 2046, 2046, 2046, 1990, 1990, 1990,
1743 2046, 1991, 2046, 2046, 1992, 2046, 2046, 2046, 2046, 2046,
1745 2046, 2000, 2000, 2000, 2046, 2046, 2046, 2046, 2046, 2046,
1746 2046, 2046, 2046, 2046, 2046, 2046, 2000, 2000, 2000, 685,
1747 2003, 2046, 2046, 2004, 2046, 2046, 1995, 2046, 2046, 1996,
1748 2046, 2046, 2046, 2046, 685, 2046, 2046, 2046, 1998, 2046,
1749 2046, 1999, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1750 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1751 2017, 2017, 2017, 2046, 2046, 2001, 2046, 2002, 2046, 2046,
1752 2046, 2046, 2046, 2046, 2019, 2019, 2019, 2018, 2005, 2017,
1753 2017, 2017, 2046, 2006, 2046, 2023, 2023, 2023, 2046, 2024,
1754 2046, 2020, 2025, 2046, 2046, 2010, 2018, 2046, 2009, 2046,
1756 2013, 2019, 2019, 2019, 2026, 2026, 2026, 2046, 2027, 2046,
1757 2046, 2028, 2023, 2023, 2023, 2046, 2024, 2046, 2020, 2025,
1758 2014, 2026, 2026, 2026, 2046, 2027, 2046, 2046, 2028, 2044,
1759 2044, 2044, 2044, 2044, 2044, 2046, 2046, 2046, 2046, 2046,
1760 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2045, 2046, 2046,
1761 2045, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1762 145, 145, 145, 145, 145, 145, 145, 145, 145, 150,
1763 150, 150, 150, 150, 150, 150, 150, 150, 153, 153,
1764 153, 153, 153, 153, 153, 153, 153, 156, 156, 156,
1765 156, 156, 156, 156, 156, 156, 159, 159, 159, 159,
1767 159, 159, 159, 159, 159, 166, 166, 166, 166, 166,
1768 166, 166, 166, 166, 174, 174, 174, 174, 174, 174,
1769 174, 174, 174, 179, 179, 179, 179, 179, 179, 179,
1770 179, 179, 189, 189, 189, 189, 189, 189, 189, 189,
1771 189, 193, 193, 193, 193, 193, 193, 193, 193, 193,
1772 199, 199, 199, 199, 199, 199, 199, 199, 199, 210,
1773 210, 210, 210, 210, 210, 210, 210, 210, 217, 217,
1774 217, 217, 217, 217, 217, 217, 217, 225, 225, 225,
1775 225, 225, 225, 225, 225, 225, 232, 232, 232, 232,
1776 232, 232, 232, 232, 232, 238, 238, 238, 238, 238,
1778 238, 238, 238, 238, 245, 245, 245, 245, 245, 245,
1779 245, 245, 245, 251, 251, 251, 251, 251, 251, 251,
1780 251, 251, 257, 257, 257, 257, 257, 257, 257, 257,
1781 257, 263, 263, 263, 263, 263, 263, 263, 263, 263,
1782 271, 271, 271, 271, 271, 271, 271, 271, 271, 278,
1783 278, 278, 278, 278, 278, 278, 278, 278, 283, 283,
1784 283, 283, 283, 283, 283, 283, 283, 298, 298, 298,
1785 298, 298, 298, 298, 298, 298, 304, 304, 304, 304,
1786 304, 304, 304, 304, 304, 308, 308, 308, 308, 308,
1787 308, 308, 308, 308, 314, 314, 314, 314, 314, 314,
1789 314, 314, 314, 321, 321, 321, 321, 321, 321, 321,
1790 321, 321, 328, 328, 328, 328, 328, 328, 328, 328,
1791 328, 335, 335, 335, 335, 335, 335, 335, 335, 335,
1792 342, 342, 342, 342, 342, 342, 342, 342, 342, 349,
1793 349, 349, 349, 349, 349, 349, 349, 349, 356, 356,
1794 356, 356, 356, 356, 356, 356, 356, 360, 360, 360,
1795 360, 360, 360, 360, 360, 360, 366, 366, 366, 366,
1796 366, 366, 366, 366, 366, 373, 373, 373, 373, 373,
1797 373, 373, 373, 373, 381, 381, 381, 381, 381, 381,
1798 381, 381, 381, 385, 385, 385, 385, 385, 385, 385,
1800 385, 385, 405, 405, 405, 2046, 2046, 2046, 405, 432,
1801 432, 432, 2046, 2046, 2046, 432, 436, 436, 436, 2046,
1802 2046, 2046, 436, 444, 444, 444, 2046, 2046, 2046, 444,
1803 454, 454, 454, 2046, 2046, 2046, 454, 461, 461, 461,
1804 2046, 2046, 2046, 461, 468, 468, 468, 2046, 2046, 2046,
1805 468, 472, 472, 472, 2046, 2046, 2046, 472, 481, 481,
1806 481, 2046, 2046, 2046, 481, 486, 486, 486, 2046, 2046,
1807 2046, 486, 497, 497, 497, 2046, 2046, 2046, 497, 501,
1808 501, 501, 2046, 2046, 2046, 501, 509, 509, 509, 2046,
1809 2046, 2046, 509, 517, 517, 517, 2046, 2046, 2046, 517,
1811 524, 524, 524, 2046, 2046, 2046, 524, 528, 528, 528,
1812 2046, 2046, 2046, 528, 536, 536, 536, 2046, 2046, 2046,
1813 536, 539, 539, 539, 539, 539, 539, 539, 2046, 539,
1814 555, 2046, 2046, 2046, 555, 583, 2046, 2046, 2046, 583,
1815 590, 2046, 2046, 2046, 590, 600, 2046, 2046, 2046, 600,
1816 607, 2046, 2046, 2046, 607, 614, 2046, 2046, 2046, 614,
1817 617, 2046, 2046, 2046, 617, 626, 2046, 2046, 2046, 626,
1818 631, 2046, 2046, 2046, 631, 486, 486, 486, 2046, 2046,
1819 2046, 486, 643, 2046, 2046, 2046, 643, 497, 497, 497,
1820 2046, 2046, 2046, 497, 647, 2046, 2046, 2046, 647, 501,
1822 501, 501, 2046, 2046, 2046, 501, 655, 2046, 2046, 2046,
1823 655, 509, 509, 509, 2046, 2046, 2046, 509, 662, 2046,
1824 2046, 2046, 662, 517, 517, 517, 2046, 2046, 2046, 517,
1825 668, 2046, 2046, 2046, 668, 524, 524, 524, 2046, 2046,
1826 2046, 524, 672, 2046, 2046, 2046, 672, 528, 528, 528,
1827 2046, 2046, 2046, 528, 678, 2046, 2046, 2046, 678, 536,
1828 536, 536, 2046, 2046, 2046, 536, 682, 2046, 2046, 2046,
1829 682, 684, 684, 684, 684, 684, 684, 684, 684, 684,
1830 690, 2046, 2046, 2046, 2046, 690, 405, 405, 405, 2046,
1831 2046, 2046, 405, 700, 700, 700, 700, 2046, 2046, 700,
1833 700, 432, 432, 432, 2046, 2046, 2046, 432, 730, 730,
1834 730, 730, 2046, 2046, 730, 730, 436, 436, 436, 2046,
1835 2046, 2046, 436, 740, 740, 740, 740, 2046, 2046, 740,
1836 740, 444, 444, 444, 2046, 2046, 2046, 444, 754, 754,
1837 754, 754, 2046, 2046, 754, 754, 454, 454, 454, 2046,
1838 2046, 2046, 454, 763, 763, 763, 763, 2046, 2046, 763,
1839 763, 461, 461, 461, 2046, 2046, 2046, 461, 773, 773,
1840 773, 773, 2046, 2046, 773, 773, 468, 468, 468, 2046,
1841 2046, 2046, 468, 778, 778, 778, 778, 2046, 2046, 778,
1842 778, 472, 472, 472, 2046, 2046, 2046, 472, 790, 790,
1844 790, 790, 2046, 2046, 790, 790, 481, 481, 481, 2046,
1845 2046, 2046, 481, 798, 798, 798, 798, 2046, 2046, 798,
1846 798, 486, 486, 486, 2046, 2046, 2046, 486, 816, 816,
1847 816, 816, 2046, 2046, 816, 816, 823, 823, 823, 823,
1848 2046, 2046, 823, 823, 501, 501, 501, 2046, 2046, 2046,
1849 501, 834, 834, 834, 834, 2046, 2046, 834, 834, 509,
1850 509, 509, 2046, 2046, 2046, 509, 845, 845, 845, 845,
1851 2046, 2046, 845, 845, 517, 517, 517, 2046, 2046, 2046,
1852 517, 855, 855, 855, 855, 2046, 2046, 855, 855, 862,
1853 862, 862, 862, 2046, 2046, 862, 862, 528, 528, 528,
1855 2046, 2046, 2046, 528, 870, 870, 870, 870, 2046, 2046,
1856 870, 870, 536, 536, 536, 2046, 2046, 2046, 536, 876,
1857 876, 876, 876, 2046, 2046, 876, 876, 684, 684, 684,
1858 684, 684, 684, 684, 684, 684, 690, 2046, 690, 2046,
1859 2046, 690, 405, 405, 405, 2046, 2046, 2046, 405, 700,
1860 700, 700, 700, 2046, 2046, 700, 700, 432, 432, 432,
1861 432, 2046, 432, 2046, 432, 730, 730, 730, 730, 2046,
1862 2046, 730, 730, 436, 436, 436, 436, 2046, 436, 2046,
1863 436, 740, 740, 740, 740, 2046, 2046, 740, 740, 444,
1864 444, 444, 2046, 2046, 2046, 444, 754, 754, 754, 754,
1866 2046, 2046, 754, 754, 454, 454, 454, 2046, 2046, 2046,
1867 454, 763, 763, 763, 763, 2046, 2046, 763, 763, 461,
1868 461, 461, 2046, 2046, 2046, 461, 773, 773, 773, 773,
1869 2046, 2046, 773, 773, 468, 468, 468, 2046, 2046, 2046,
1870 468, 778, 778, 778, 778, 2046, 2046, 778, 778, 472,
1871 472, 472, 2046, 2046, 2046, 472, 790, 790, 790, 790,
1872 2046, 2046, 790, 790, 481, 481, 481, 2046, 2046, 2046,
1873 481, 798, 798, 798, 798, 2046, 2046, 798, 798, 486,
1874 486, 486, 2046, 2046, 2046, 486, 816, 816, 816, 816,
1875 2046, 2046, 816, 816, 823, 823, 823, 823, 2046, 2046,
1877 823, 823, 501, 501, 501, 2046, 2046, 2046, 501, 834,
1878 834, 834, 834, 2046, 2046, 834, 834, 509, 509, 509,
1879 2046, 2046, 2046, 509, 845, 845, 845, 845, 2046, 2046,
1880 845, 845, 517, 517, 517, 2046, 2046, 2046, 517, 855,
1881 855, 855, 855, 2046, 2046, 855, 855, 862, 862, 862,
1882 862, 2046, 2046, 862, 862, 528, 528, 528, 2046, 2046,
1883 2046, 528, 870, 870, 870, 870, 2046, 2046, 870, 870,
1884 536, 536, 536, 2046, 2046, 2046, 536, 876, 876, 876,
1885 876, 2046, 2046, 876, 876, 684, 684, 684, 684, 684,
1886 684, 684, 684, 684, 1001, 1001, 1001, 1001, 1001, 1001,
1888 1001, 1001, 1001, 405, 405, 405, 2046, 2046, 2046, 405,
1889 700, 700, 700, 700, 2046, 2046, 700, 700, 730, 730,
1890 730, 730, 2046, 2046, 730, 730, 436, 436, 436, 2046,
1891 2046, 2046, 436, 740, 740, 740, 740, 2046, 2046, 740,
1892 740, 444, 444, 444, 2046, 2046, 2046, 444, 754, 754,
1893 754, 754, 2046, 2046, 754, 754, 454, 454, 454, 2046,
1894 2046, 2046, 454, 763, 763, 763, 763, 2046, 2046, 763,
1895 763, 461, 461, 461, 2046, 2046, 2046, 461, 773, 773,
1896 773, 773, 2046, 2046, 773, 773, 468, 468, 468, 2046,
1897 2046, 2046, 468, 778, 778, 778, 778, 2046, 2046, 778,
1899 778, 472, 472, 472, 2046, 2046, 2046, 472, 790, 790,
1900 790, 790, 2046, 2046, 790, 790, 481, 481, 481, 481,
1901 2046, 481, 2046, 481, 798, 798, 798, 798, 2046, 2046,
1902 798, 798, 486, 486, 486, 486, 2046, 486, 2046, 486,
1903 816, 816, 816, 816, 2046, 2046, 816, 816, 823, 823,
1904 823, 823, 2046, 2046, 823, 823, 501, 501, 501, 2046,
1905 2046, 2046, 501, 834, 834, 834, 834, 2046, 2046, 834,
1906 834, 509, 509, 509, 2046, 2046, 2046, 509, 845, 845,
1907 845, 845, 2046, 2046, 845, 845, 517, 517, 517, 2046,
1908 2046, 2046, 517, 855, 855, 855, 855, 2046, 2046, 855,
1910 855, 862, 862, 862, 862, 2046, 2046, 862, 862, 528,
1911 528, 528, 2046, 2046, 2046, 528, 870, 870, 870, 870,
1912 2046, 2046, 870, 870, 536, 536, 536, 536, 2046, 536,
1913 2046, 536, 876, 876, 876, 876, 2046, 2046, 876, 876,
1914 684, 684, 684, 684, 684, 684, 684, 684, 684, 1001,
1915 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 405, 405,
1916 405, 2046, 2046, 2046, 405, 700, 700, 700, 700, 2046,
1917 2046, 700, 700, 730, 730, 730, 730, 2046, 2046, 730,
1918 730, 436, 436, 436, 2046, 2046, 2046, 436, 740, 740,
1919 740, 740, 2046, 2046, 740, 740, 444, 444, 444, 2046,
1921 2046, 2046, 444, 754, 754, 754, 754, 2046, 2046, 754,
1922 754, 454, 454, 454, 2046, 2046, 2046, 454, 763, 763,
1923 763, 763, 2046, 2046, 763, 763, 461, 461, 461, 461,
1924 2046, 461, 2046, 461, 468, 468, 468, 468, 2046, 468,
1925 2046, 468, 778, 778, 778, 778, 2046, 2046, 778, 778,
1926 472, 472, 472, 2046, 2046, 2046, 472, 790, 790, 790,
1927 790, 2046, 2046, 790, 790, 798, 798, 798, 798, 2046,
1928 2046, 798, 798, 486, 486, 486, 486, 2046, 486, 2046,
1929 486, 816, 816, 816, 816, 2046, 2046, 816, 816, 823,
1930 823, 823, 823, 2046, 2046, 823, 823, 501, 501, 501,
1932 2046, 2046, 2046, 501, 834, 834, 834, 834, 2046, 2046,
1933 834, 834, 509, 509, 509, 509, 2046, 509, 2046, 509,
1934 845, 845, 845, 845, 2046, 2046, 845, 845, 517, 517,
1935 517, 517, 2046, 517, 2046, 517, 855, 855, 855, 855,
1936 2046, 2046, 855, 855, 862, 862, 862, 862, 2046, 2046,
1937 862, 862, 528, 528, 528, 2046, 2046, 2046, 528, 870,
1938 870, 870, 870, 2046, 2046, 870, 870, 876, 876, 876,
1939 876, 2046, 2046, 876, 876, 684, 684, 684, 684, 684,
1940 684, 684, 684, 684, 1001, 1001, 1001, 1001, 1001, 1001,
1941 1001, 1001, 1001, 405, 405, 405, 405, 2046, 405, 2046,
1943 405, 700, 700, 700, 700, 2046, 2046, 700, 700, 730,
1944 730, 730, 730, 2046, 2046, 730, 730, 436, 436, 436,
1945 2046, 2046, 2046, 436, 740, 740, 740, 740, 2046, 2046,
1946 740, 740, 444, 444, 444, 2046, 2046, 2046, 444, 754,
1947 754, 754, 754, 2046, 2046, 754, 754, 454, 454, 454,
1948 2046, 2046, 2046, 454, 763, 763, 763, 763, 2046, 2046,
1949 763, 763, 461, 461, 461, 461, 2046, 461, 2046, 461,
1950 778, 778, 778, 778, 2046, 2046, 778, 778, 472, 472,
1951 472, 2046, 2046, 2046, 472, 1841, 1841, 1841, 1841, 1841,
1952 1841, 1841, 1841, 1841, 1842, 1842, 1842, 1842, 1842, 1842,
1954 1842, 1842, 1842, 1878, 1878, 1878, 1878, 1878, 1878, 1878,
1955 1878, 1878, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881,
1956 1881, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907,
1957 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909, 143,
1958 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1959 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1960 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1961 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1962 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1963 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1965 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046
1968 static yyconst flex_int16_t yy_chk[7210] =
1970 0, 3, 3, 3, 4, 4, 4, 5, 5, 5,
1971 6, 6, 6, 7, 7, 7, 11, 3, 9, 12,
1972 4, 10, 219, 5, 0, 9, 6, 1397, 10, 7,
1973 8, 8, 8, 148, 11, 13, 13, 12, 14, 14,
1974 13, 13, 220, 14, 14, 149, 8, 17, 17, 148,
1975 13, 15, 15, 14, 15, 152, 15, 16, 16, 415,
1976 16, 149, 16, 18, 18, 415, 15, 19, 19, 19,
1977 219, 152, 16, 20, 20, 20, 23, 23, 23, 24,
1978 24, 24, 267, 19, 25, 25, 25, 333, 17, 20,
1979 220, 267, 23, 426, 333, 24, 146, 146, 146, 426,
1981 25, 147, 147, 147, 18, 21, 21, 21, 21, 21,
1982 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1983 1398, 21, 21, 21, 21, 21, 26, 26, 26, 27,
1984 27, 27, 320, 28, 28, 28, 29, 29, 29, 30,
1985 30, 30, 26, 320, 452, 27, 175, 21, 21, 28,
1986 452, 295, 29, 190, 295, 30, 151, 151, 151, 172,
1987 172, 172, 175, 180, 180, 180, 187, 187, 187, 190,
1988 21, 183, 21, 22, 22, 22, 22, 22, 22, 22,
1989 22, 22, 22, 22, 22, 22, 22, 22, 273, 22,
1990 22, 22, 22, 22, 31, 31, 31, 32, 32, 32,
1992 1000, 33, 33, 33, 34, 34, 34, 35, 35, 35,
1993 31, 416, 200, 32, 170, 22, 22, 33, 211, 183,
1994 34, 183, 1000, 35, 416, 36, 36, 36, 200, 185,
1995 170, 194, 194, 194, 211, 185, 273, 185, 22, 185,
1996 22, 36, 37, 37, 37, 37, 37, 37, 37, 37,
1997 37, 37, 37, 37, 37, 37, 37, 292, 37, 37,
1998 37, 37, 37, 39, 39, 39, 40, 40, 40, 170,
1999 47, 47, 47, 43, 43, 44, 44, 292, 43, 39,
2000 44, 1399, 40, 215, 37, 37, 47, 215, 43, 1410,
2001 44, 215, 37, 38, 38, 38, 38, 38, 38, 38,
2003 38, 38, 38, 38, 38, 38, 38, 38, 710, 38,
2004 38, 38, 38, 38, 43, 334, 44, 48, 48, 48,
2005 710, 49, 49, 49, 50, 50, 50, 197, 197, 197,
2006 208, 208, 208, 48, 687, 38, 38, 49, 687, 398,
2007 50, 337, 398, 38, 41, 41, 41, 41, 41, 41,
2008 41, 41, 41, 41, 41, 41, 41, 41, 41, 334,
2009 41, 41, 41, 41, 41, 51, 51, 51, 52, 52,
2010 52, 323, 53, 53, 53, 54, 54, 54, 218, 218,
2011 218, 51, 195, 205, 52, 337, 41, 41, 53, 195,
2012 205, 54, 1323, 1323, 41, 1324, 1324, 41, 195, 205,
2014 223, 223, 223, 41, 42, 42, 42, 42, 42, 42,
2015 42, 42, 42, 42, 42, 42, 42, 42, 42, 323,
2016 42, 42, 42, 42, 42, 57, 57, 57, 58, 58,
2017 58, 723, 61, 61, 61, 62, 62, 62, 389, 226,
2018 239, 57, 1411, 723, 58, 234, 42, 42, 61, 423,
2019 1412, 62, 234, 389, 42, 226, 239, 42, 233, 233,
2020 233, 234, 423, 42, 45, 45, 45, 45, 45, 45,
2021 45, 45, 45, 45, 45, 45, 45, 45, 45, 757,
2022 45, 45, 45, 45, 45, 65, 65, 65, 66, 66,
2023 66, 757, 67, 67, 67, 68, 68, 68, 69, 69,
2025 69, 65, 247, 252, 66, 1413, 45, 45, 67, 247,
2026 351, 68, 427, 1375, 69, 45, 1375, 45, 247, 252,
2027 45, 236, 236, 236, 255, 427, 45, 46, 46, 46,
2028 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
2029 46, 46, 440, 46, 46, 46, 46, 46, 70, 70,
2030 70, 73, 73, 73, 351, 74, 74, 74, 75, 75,
2031 75, 76, 76, 76, 70, 255, 264, 73, 255, 46,
2032 46, 74, 279, 1009, 75, 440, 633, 76, 46, 1009,
2033 46, 1414, 264, 46, 1236, 633, 162, 1117, 279, 46,
2034 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
2036 55, 55, 55, 55, 55, 290, 55, 55, 55, 55,
2037 55, 77, 77, 77, 78, 78, 78, 1117, 79, 79,
2038 79, 290, 80, 80, 80, 162, 1236, 77, 1329, 1329,
2039 78, 162, 55, 55, 79, 162, 305, 55, 80, 55,
2040 162, 246, 246, 246, 55, 249, 249, 249, 258, 258,
2041 258, 1116, 305, 55, 56, 56, 56, 56, 56, 56,
2042 56, 56, 56, 56, 56, 56, 56, 56, 56, 315,
2043 56, 56, 56, 56, 56, 83, 83, 83, 84, 84,
2044 84, 1415, 87, 87, 87, 315, 88, 88, 88, 1116,
2045 1343, 83, 1330, 1330, 84, 1416, 56, 56, 87, 329,
2047 285, 56, 88, 56, 261, 261, 261, 285, 56, 272,
2048 272, 272, 276, 276, 276, 329, 285, 56, 59, 59,
2049 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
2050 59, 59, 59, 1343, 59, 59, 59, 59, 59, 91,
2051 91, 91, 92, 92, 92, 879, 95, 95, 95, 96,
2052 96, 96, 97, 97, 97, 91, 429, 1342, 92, 300,
2053 59, 59, 95, 541, 879, 96, 300, 1417, 97, 429,
2054 1234, 59, 284, 284, 284, 300, 1234, 59, 541, 59,
2055 59, 60, 60, 60, 60, 60, 60, 60, 60, 60,
2056 60, 60, 60, 60, 60, 60, 1342, 60, 60, 60,
2058 60, 60, 98, 98, 98, 99, 99, 99, 1419, 100,
2059 100, 100, 101, 101, 101, 102, 102, 102, 98, 1298,
2060 1299, 99, 310, 60, 60, 100, 1298, 1299, 101, 310,
2061 1376, 102, 1319, 1376, 60, 287, 287, 287, 310, 1319,
2062 60, 1424, 60, 60, 63, 63, 63, 63, 63, 63,
2063 63, 63, 63, 63, 63, 63, 63, 63, 63, 1426,
2064 63, 63, 63, 63, 63, 105, 105, 105, 106, 106,
2065 106, 1433, 107, 107, 107, 108, 108, 108, 109, 109,
2066 109, 105, 1447, 1320, 106, 1448, 63, 63, 107, 343,
2067 1320, 108, 1449, 1438, 109, 299, 299, 299, 302, 302,
2069 302, 309, 309, 309, 1450, 343, 63, 64, 64, 64,
2070 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
2071 64, 64, 1438, 64, 64, 64, 64, 64, 110, 110,
2072 110, 111, 111, 111, 1453, 112, 112, 112, 115, 115,
2073 115, 116, 116, 116, 110, 1456, 1418, 111, 1418, 64,
2074 64, 112, 357, 1420, 115, 1420, 1457, 116, 312, 312,
2075 312, 322, 322, 322, 326, 326, 326, 1458, 357, 64,
2076 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
2077 71, 71, 71, 71, 71, 1459, 71, 71, 71, 71,
2078 71, 117, 117, 117, 118, 118, 118, 1439, 119, 119,
2080 119, 120, 120, 120, 121, 121, 121, 117, 367, 362,
2081 118, 382, 71, 71, 119, 71, 362, 120, 1460, 1425,
2082 121, 1425, 1461, 71, 367, 362, 71, 382, 1427, 71,
2083 1427, 1439, 71, 72, 72, 72, 72, 72, 72, 72,
2084 72, 72, 72, 72, 72, 72, 72, 72, 1462, 72,
2085 72, 72, 72, 72, 122, 122, 122, 125, 125, 125,
2086 1463, 126, 126, 126, 129, 129, 129, 130, 130, 130,
2087 122, 1115, 387, 125, 1464, 72, 72, 126, 72, 387,
2088 129, 1465, 1466, 130, 1467, 1468, 72, 1115, 387, 72,
2089 1469, 1476, 72, 1477, 1478, 72, 81, 81, 81, 81,
2091 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
2092 81, 375, 81, 81, 81, 81, 81, 131, 131, 131,
2093 132, 132, 132, 1479, 133, 133, 133, 134, 134, 134,
2094 135, 135, 135, 131, 1056, 1056, 132, 1481, 81, 81,
2095 133, 1488, 1489, 134, 1056, 375, 135, 1490, 1056, 81,
2096 336, 336, 336, 340, 340, 340, 350, 350, 350, 375,
2097 1491, 81, 82, 82, 82, 82, 82, 82, 82, 82,
2098 82, 82, 82, 82, 82, 82, 82, 1493, 82, 82,
2099 82, 82, 82, 136, 136, 136, 139, 139, 139, 1496,
2100 140, 140, 140, 354, 354, 354, 361, 361, 361, 136,
2102 1497, 1498, 139, 1499, 82, 82, 140, 364, 364, 364,
2103 374, 374, 374, 1500, 1501, 82, 379, 379, 379, 386,
2104 386, 386, 388, 388, 388, 1506, 1507, 82, 85, 85,
2105 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
2106 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
2107 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
2108 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
2109 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
2110 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
2111 85, 85, 85, 85, 85, 85, 85, 89, 89, 89,
2113 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
2114 89, 89, 1508, 89, 89, 89, 89, 89, 397, 397,
2115 397, 438, 438, 438, 446, 446, 446, 462, 462, 462,
2116 474, 474, 474, 544, 544, 544, 1509, 544, 438, 89,
2117 89, 446, 1510, 1511, 462, 1532, 1533, 474, 1534, 1235,
2118 89, 90, 90, 90, 90, 90, 90, 90, 90, 90,
2119 90, 90, 90, 90, 90, 90, 1524, 90, 90, 90,
2120 90, 90, 1535, 397, 482, 482, 482, 1235, 488, 488,
2121 488, 489, 489, 489, 498, 498, 498, 713, 713, 713,
2122 1540, 482, 1541, 90, 90, 488, 1542, 1543, 489, 1544,
2124 1545, 498, 1524, 1526, 90, 93, 93, 93, 93, 93,
2125 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
2126 1525, 93, 93, 93, 93, 93, 503, 503, 503, 525,
2127 525, 525, 555, 555, 555, 556, 556, 556, 583, 583,
2128 583, 1546, 1526, 503, 1547, 1538, 525, 93, 93, 1548,
2129 555, 93, 1549, 556, 1525, 1550, 583, 1538, 93, 1551,
2130 93, 721, 721, 721, 892, 892, 892, 93, 94, 94,
2131 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
2132 94, 94, 94, 1552, 94, 94, 94, 94, 94, 556,
2133 584, 584, 584, 1057, 1057, 586, 586, 586, 587, 587,
2135 587, 1539, 587, 1057, 1553, 587, 1555, 1057, 584, 1556,
2136 94, 94, 586, 1539, 94, 595, 595, 595, 1557, 595,
2137 1565, 94, 595, 94, 897, 897, 897, 900, 900, 900,
2138 94, 103, 103, 103, 103, 103, 103, 103, 103, 103,
2139 103, 103, 103, 103, 103, 103, 584, 103, 103, 103,
2140 103, 103, 590, 590, 590, 1566, 1567, 591, 591, 591,
2141 594, 594, 594, 596, 596, 596, 598, 598, 598, 1572,
2142 590, 1573, 1574, 103, 103, 591, 103, 594, 1575, 103,
2143 596, 1576, 1577, 598, 610, 610, 610, 1582, 610, 1583,
2144 1584, 610, 1585, 103, 104, 104, 104, 104, 104, 104,
2146 104, 104, 104, 104, 104, 104, 104, 104, 104, 1586,
2147 104, 104, 104, 104, 104, 1587, 1600, 591, 1579, 1580,
2148 600, 600, 600, 607, 607, 607, 1579, 1580, 601, 601,
2149 601, 608, 608, 608, 1608, 1610, 104, 104, 600, 104,
2150 1613, 607, 104, 621, 621, 621, 601, 621, 1614, 608,
2151 621, 904, 904, 904, 1600, 1599, 104, 113, 113, 113,
2152 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
2153 113, 113, 601, 113, 113, 113, 113, 113, 609, 609,
2154 609, 1599, 1615, 614, 614, 614, 617, 617, 617, 1616,
2155 1617, 608, 620, 620, 620, 609, 615, 615, 615, 113,
2157 113, 614, 113, 1619, 617, 113, 908, 908, 908, 620,
2158 113, 629, 629, 629, 615, 629, 1620, 1601, 629, 113,
2159 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
2160 114, 114, 114, 114, 114, 1621, 114, 114, 114, 114,
2161 114, 618, 618, 618, 615, 1622, 626, 626, 626, 627,
2162 627, 627, 628, 628, 628, 1601, 631, 631, 631, 618,
2163 1623, 1624, 114, 114, 626, 114, 1625, 627, 114, 628,
2164 934, 934, 934, 114, 631, 1014, 1014, 1014, 1016, 1016,
2165 1016, 1627, 114, 123, 123, 123, 123, 123, 123, 123,
2166 123, 123, 123, 123, 123, 123, 123, 123, 618, 123,
2168 123, 123, 123, 123, 1628, 1629, 627, 1633, 1634, 632,
2169 632, 632, 634, 634, 634, 635, 635, 635, 1638, 635,
2170 1640, 1644, 635, 1645, 1646, 123, 123, 632, 1647, 634,
2171 1020, 1020, 1020, 1026, 1026, 1026, 123, 124, 124, 124,
2172 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
2173 124, 124, 1648, 124, 124, 124, 124, 124, 636, 636,
2174 636, 637, 637, 637, 1649, 637, 1650, 1651, 637, 632,
2175 638, 638, 638, 1652, 1653, 636, 1027, 1027, 1027, 124,
2176 124, 646, 646, 646, 1655, 646, 1656, 638, 646, 1657,
2177 124, 127, 127, 127, 127, 127, 127, 127, 127, 127,
2179 127, 127, 127, 127, 127, 127, 1658, 127, 127, 127,
2180 127, 127, 643, 643, 643, 645, 645, 645, 647, 647,
2181 647, 644, 644, 644, 648, 648, 648, 650, 650, 650,
2182 643, 1659, 645, 127, 127, 1660, 647, 1667, 1666, 644,
2183 1673, 127, 648, 127, 650, 127, 1052, 1052, 1052, 1131,
2184 1131, 1131, 1675, 127, 128, 128, 128, 128, 128, 128,
2185 128, 128, 128, 128, 128, 128, 128, 128, 128, 1667,
2186 128, 128, 128, 128, 128, 644, 651, 651, 651, 1679,
2187 651, 648, 1666, 651, 655, 655, 655, 656, 656, 656,
2188 658, 658, 658, 659, 659, 659, 128, 128, 665, 665,
2190 665, 1680, 655, 1681, 128, 656, 128, 658, 128, 1682,
2191 659, 1132, 1132, 1132, 1686, 665, 128, 137, 137, 137,
2192 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
2193 137, 137, 1687, 137, 137, 137, 137, 137, 1688, 656,
2194 662, 662, 662, 1689, 667, 667, 667, 663, 663, 663,
2195 668, 668, 668, 669, 669, 669, 1690, 1691, 662, 137,
2196 137, 667, 670, 670, 670, 663, 1692, 1693, 668, 1694,
2197 1695, 669, 1699, 671, 671, 671, 1701, 671, 1702, 670,
2198 671, 1705, 137, 138, 138, 138, 138, 138, 138, 138,
2199 138, 138, 138, 138, 138, 138, 138, 138, 1706, 138,
2201 138, 138, 138, 138, 663, 672, 672, 672, 1700, 1700,
2202 669, 673, 673, 673, 678, 678, 678, 679, 679, 679,
2203 682, 682, 682, 672, 1707, 138, 138, 1708, 1709, 673,
2204 1710, 1711, 678, 1712, 1713, 679, 1714, 1715, 682, 683,
2205 683, 683, 699, 699, 699, 728, 728, 728, 138, 181,
2206 700, 700, 700, 894, 894, 894, 181, 683, 1717, 1718,
2207 699, 1719, 728, 673, 1720, 181, 1721, 894, 700, 702,
2208 702, 702, 1722, 729, 729, 729, 1731, 679, 730, 730,
2209 730, 1732, 1733, 732, 732, 732, 1734, 702, 1744, 1725,
2210 181, 729, 181, 1745, 1747, 181, 730, 181, 181, 683,
2212 181, 732, 1748, 1754, 181, 1755, 181, 181, 181, 182,
2213 733, 733, 733, 702, 1756, 1757, 182, 734, 734, 734,
2214 1725, 734, 1763, 1764, 734, 182, 1765, 733, 1766, 732,
2215 737, 737, 737, 739, 739, 739, 740, 740, 740, 1767,
2216 1768, 742, 742, 742, 747, 747, 747, 737, 1770, 1772,
2217 182, 739, 182, 1775, 740, 182, 1776, 182, 182, 742,
2218 182, 747, 1777, 1778, 182, 1779, 182, 182, 182, 744,
2219 744, 744, 1780, 744, 1795, 1796, 744, 748, 748, 748,
2220 1787, 748, 1797, 1798, 748, 742, 1802, 737, 749, 749,
2221 749, 750, 750, 750, 751, 751, 751, 1803, 751, 1804,
2223 1805, 751, 753, 753, 753, 749, 1807, 1808, 750, 754,
2224 754, 754, 756, 756, 756, 760, 760, 760, 1809, 1787,
2225 753, 762, 762, 762, 763, 763, 763, 754, 1810, 1815,
2226 756, 1816, 760, 765, 765, 765, 766, 766, 766, 762,
2227 766, 1817, 763, 766, 772, 772, 772, 773, 773, 773,
2228 1818, 765, 775, 775, 775, 777, 777, 777, 778, 778,
2229 778, 1819, 772, 1820, 1823, 773, 1824, 1825, 756, 1826,
2230 775, 1827, 1828, 777, 1843, 1845, 778, 765, 780, 780,
2231 780, 782, 782, 782, 1837, 782, 1839, 1847, 782, 789,
2232 789, 789, 790, 790, 790, 1840, 780, 792, 792, 792,
2234 1839, 793, 793, 793, 1849, 793, 1840, 789, 793, 1853,
2235 790, 797, 797, 797, 775, 792, 798, 798, 798, 800,
2236 800, 800, 1854, 803, 803, 803, 1837, 803, 1855, 797,
2237 803, 809, 809, 809, 798, 1856, 1861, 800, 780, 806,
2238 806, 806, 1863, 806, 1862, 1864, 806, 1861, 809, 810,
2239 810, 810, 1866, 810, 1867, 1862, 810, 1869, 792, 815,
2240 815, 815, 816, 816, 816, 818, 818, 818, 819, 819,
2241 819, 1870, 819, 1872, 1873, 819, 800, 815, 1879, 1879,
2242 816, 1880, 1878, 818, 822, 822, 822, 823, 823, 823,
2243 825, 825, 825, 827, 827, 827, 1878, 827, 1882, 1877,
2245 827, 1884, 822, 1885, 1886, 823, 1887, 1892, 825, 833,
2246 833, 833, 834, 834, 834, 836, 836, 836, 838, 838,
2247 838, 1881, 839, 839, 839, 1893, 839, 833, 818, 839,
2248 834, 1894, 1881, 836, 1895, 838, 1877, 840, 840, 840,
2249 841, 841, 841, 1907, 841, 1908, 1909, 841, 844, 844,
2250 844, 1911, 1912, 825, 840, 845, 845, 845, 847, 847,
2251 847, 849, 849, 849, 1913, 1914, 844, 1921, 850, 850,
2252 850, 836, 850, 845, 1924, 850, 847, 1925, 849, 852,
2253 852, 852, 853, 853, 853, 1926, 853, 1927, 1931, 853,
2254 854, 854, 854, 855, 855, 855, 852, 857, 857, 857,
2256 858, 858, 858, 1945, 858, 1949, 1950, 858, 854, 1951,
2257 1952, 855, 861, 861, 861, 857, 862, 862, 862, 1955,
2258 1957, 847, 864, 864, 864, 866, 866, 866, 1958, 1959,
2259 861, 869, 869, 869, 862, 870, 870, 870, 1960, 1961,
2260 864, 1955, 866, 872, 872, 872, 875, 875, 875, 869,
2261 876, 876, 876, 870, 878, 878, 878, 880, 880, 880,
2262 857, 872, 1965, 1966, 875, 888, 888, 888, 876, 915,
2263 915, 915, 878, 1967, 1964, 880, 880, 1968, 864, 905,
2264 905, 905, 1969, 888, 1974, 1975, 915, 916, 916, 916,
2265 1976, 916, 1964, 905, 916, 917, 917, 917, 1972, 1977,
2267 872, 918, 918, 918, 878, 919, 919, 919, 1983, 919,
2268 1985, 1989, 919, 917, 922, 922, 922, 1972, 918, 924,
2269 924, 924, 2021, 924, 1989, 1980, 924, 888, 927, 927,
2270 927, 1980, 922, 928, 928, 928, 2007, 928, 1396, 1395,
2271 928, 933, 933, 933, 2003, 927, 929, 929, 929, 917,
2272 929, 2004, 2011, 929, 937, 937, 937, 2008, 2012, 933,
2273 922, 938, 938, 938, 2021, 938, 2022, 2015, 938, 1394,
2274 2007, 937, 940, 940, 940, 944, 944, 944, 946, 946,
2275 946, 950, 950, 950, 951, 951, 951, 2003, 933, 2011,
2276 940, 2008, 2031, 944, 2004, 2012, 946, 2016, 950, 2015,
2278 2029, 951, 952, 952, 952, 953, 953, 953, 2022, 1393,
2279 954, 954, 954, 955, 955, 955, 1392, 2030, 940, 2037,
2280 952, 2031, 953, 956, 956, 956, 946, 951, 954, 2016,
2281 955, 957, 957, 957, 2029, 957, 2042, 2032, 957, 2038,
2282 956, 960, 960, 960, 961, 961, 961, 2042, 962, 962,
2283 962, 2030, 963, 963, 963, 964, 964, 964, 960, 1384,
2284 2035, 961, 1383, 2037, 952, 962, 2032, 1382, 954, 963,
2285 965, 965, 965, 964, 969, 969, 969, 970, 970, 970,
2286 972, 972, 972, 2038, 972, 956, 2036, 972, 965, 2035,
2287 2033, 969, 962, 2034, 2039, 970, 975, 975, 975, 2033,
2289 975, 1381, 2034, 975, 1380, 979, 979, 979, 1379, 2040,
2290 961, 980, 980, 980, 2041, 2036, 964, 969, 963, 979,
2291 982, 982, 982, 2039, 982, 1378, 1377, 982, 2041, 980,
2292 970, 1373, 965, 986, 986, 986, 1370, 986, 2040, 1367,
2293 986, 989, 989, 989, 990, 990, 990, 992, 992, 992,
2294 993, 993, 993, 1365, 993, 1363, 1359, 993, 1358, 989,
2295 1339, 1337, 990, 1336, 992, 996, 996, 996, 998, 998,
2296 998, 1326, 1321, 980, 999, 999, 999, 1002, 1002, 1002,
2297 1010, 1010, 1010, 996, 1318, 998, 1022, 1022, 1022, 1036,
2298 1036, 1036, 999, 1036, 1317, 1002, 1036, 990, 1010, 1314,
2300 1022, 1300, 1297, 989, 1023, 1023, 1023, 1029, 1029, 1029,
2301 1296, 996, 1030, 1030, 1030, 1134, 1134, 1134, 1023, 1295,
2302 1280, 1029, 1032, 1032, 1032, 1002, 1030, 1279, 1278, 1010,
2303 1034, 1034, 1034, 1035, 1035, 1035, 1032, 999, 1039, 1039,
2304 1039, 1002, 1277, 1276, 1034, 1275, 1022, 1035, 1040, 1040,
2305 1040, 1274, 1040, 1273, 1270, 1040, 1039, 1045, 1045, 1045,
2306 1268, 1047, 1047, 1047, 1267, 1047, 1264, 1029, 1047, 1051,
2307 1051, 1051, 1055, 1055, 1055, 1045, 1055, 1263, 1261, 1055,
2308 1259, 1253, 1032, 1251, 1059, 1059, 1059, 1051, 1248, 1247,
2309 1034, 1060, 1060, 1060, 1061, 1061, 1061, 1062, 1062, 1062,
2311 1243, 1039, 1059, 1237, 1229, 1045, 1227, 1226, 1060, 1225,
2312 1218, 1061, 1212, 1211, 1062, 1063, 1063, 1063, 1065, 1065,
2313 1065, 1066, 1066, 1066, 1210, 1208, 1051, 1070, 1070, 1070,
2314 1206, 1183, 1059, 1063, 1182, 1065, 1071, 1071, 1071, 1066,
2315 1071, 1181, 1176, 1071, 1070, 1072, 1072, 1072, 1061, 1073,
2316 1073, 1073, 1175, 1073, 1174, 1164, 1073, 1075, 1075, 1075,
2317 1163, 1162, 1072, 1161, 1160, 1066, 1076, 1076, 1076, 1077,
2318 1077, 1077, 1159, 1077, 1158, 1075, 1077, 1078, 1078, 1078,
2319 1079, 1079, 1079, 1076, 1080, 1080, 1080, 1157, 1080, 1156,
2320 1154, 1080, 1081, 1081, 1081, 1078, 1152, 1079, 1082, 1082,
2322 1082, 1083, 1083, 1083, 1151, 1083, 1149, 1148, 1083, 1081,
2323 1084, 1084, 1084, 1146, 1145, 1082, 1085, 1085, 1085, 1086,
2324 1086, 1086, 1087, 1087, 1087, 1144, 1142, 1084, 1088, 1088,
2325 1088, 1138, 1137, 1085, 1136, 1133, 1086, 1092, 1092, 1092,
2326 1087, 1093, 1093, 1093, 1130, 1093, 1088, 1129, 1093, 1095,
2327 1095, 1095, 1128, 1127, 1092, 1096, 1096, 1096, 1097, 1097,
2328 1097, 1099, 1099, 1099, 1100, 1100, 1100, 1095, 1126, 1125,
2329 1085, 1124, 1096, 1119, 1111, 1097, 1088, 1109, 1108, 1099,
2330 1104, 1100, 1098, 1094, 1087, 1101, 1101, 1101, 1102, 1102,
2331 1102, 1091, 1090, 1103, 1103, 1103, 1105, 1105, 1105, 1089,
2333 1105, 1074, 1101, 1105, 1069, 1068, 1102, 1103, 1067, 1099,
2334 1058, 1103, 1110, 1110, 1110, 1112, 1112, 1112, 1097, 1113,
2335 1113, 1113, 1054, 1113, 1053, 1050, 1113, 1046, 1101, 1044,
2336 1110, 1043, 1112, 1114, 1114, 1114, 1102, 1120, 1120, 1120,
2337 1121, 1121, 1121, 1033, 1122, 1122, 1122, 1123, 1123, 1123,
2338 1031, 1114, 1028, 1025, 1120, 1024, 1021, 1121, 1019, 1018,
2339 1110, 1122, 1135, 1135, 1135, 1123, 1139, 1139, 1139, 1140,
2340 1140, 1140, 1141, 1141, 1141, 1143, 1143, 1143, 1147, 1147,
2341 1147, 1150, 1150, 1150, 1153, 1153, 1153, 1017, 1114, 1155,
2342 1155, 1155, 1121, 1165, 1165, 1165, 1147, 1015, 1013, 1150,
2344 1012, 1122, 1153, 1011, 1123, 1008, 1155, 1165, 1244, 1244,
2345 1244, 1165, 1166, 1166, 1166, 1167, 1167, 1167, 1007, 1167,
2346 1004, 1001, 1167, 997, 995, 1147, 1168, 1168, 1168, 1166,
2347 1169, 1169, 1169, 1170, 1170, 1170, 994, 1170, 991, 1153,
2348 1170, 985, 981, 1168, 1171, 1171, 1171, 1169, 1172, 1172,
2349 1172, 978, 1172, 971, 968, 1172, 1173, 1173, 1173, 967,
2350 966, 1171, 1177, 1177, 1177, 949, 1177, 948, 947, 1177,
2351 945, 1180, 1180, 1180, 1173, 1180, 943, 942, 1180, 1184,
2352 1184, 1184, 1186, 1186, 1186, 941, 1186, 939, 936, 1186,
2353 1189, 1189, 1189, 935, 1191, 1191, 1191, 1184, 1191, 932,
2355 923, 1191, 1173, 1194, 1194, 1194, 921, 920, 1189, 1195,
2356 1195, 1195, 914, 1195, 913, 912, 1195, 1196, 1196, 1196,
2357 1194, 1196, 911, 910, 1196, 1199, 1199, 1199, 1200, 1200,
2358 1200, 909, 1200, 907, 906, 1200, 1201, 1201, 1201, 1202,
2359 1202, 1202, 1199, 1203, 1203, 1203, 903, 1203, 902, 901,
2360 1203, 899, 898, 1201, 896, 895, 1202, 1204, 1204, 1204,
2361 1205, 1205, 1205, 1207, 1207, 1207, 1209, 1209, 1209, 893,
2362 1209, 891, 890, 1209, 889, 1204, 887, 886, 1205, 885,
2363 1207, 1213, 1213, 1213, 1215, 1215, 1215, 1216, 1216, 1216,
2364 884, 1216, 883, 874, 1216, 1217, 1217, 1217, 873, 1213,
2366 868, 1215, 1220, 1220, 1220, 1204, 1207, 1219, 1219, 1219,
2367 867, 865, 1217, 1222, 1222, 1222, 1223, 1223, 1223, 1220,
2368 1205, 1219, 1221, 1221, 1221, 1219, 1221, 851, 848, 1221,
2369 1222, 1224, 1224, 1224, 1223, 1228, 1228, 1228, 1230, 1230,
2370 1230, 843, 1230, 842, 837, 1230, 832, 1217, 831, 1224,
2371 1233, 1233, 1233, 1228, 1238, 1238, 1238, 1239, 1239, 1239,
2372 830, 1239, 826, 814, 1239, 1240, 1240, 1240, 1233, 813,
2373 1222, 1238, 1241, 1241, 1241, 812, 811, 1224, 802, 1242,
2374 1242, 1242, 1240, 1245, 1245, 1245, 1246, 1246, 1246, 1241,
2375 1249, 1249, 1249, 1250, 1250, 1250, 1228, 1242, 1233, 1252,
2377 1252, 1252, 1254, 1254, 1254, 1255, 1255, 1255, 1256, 1256,
2378 1256, 1257, 1257, 1257, 1258, 1258, 1258, 1260, 1260, 1260,
2379 801, 1240, 1262, 1262, 1262, 1265, 1265, 1265, 1269, 1269,
2380 1269, 1271, 1271, 1271, 796, 1241, 1282, 1282, 1282, 1242,
2381 1262, 788, 787, 1265, 786, 785, 1269, 781, 1271, 1272,
2382 1272, 1272, 776, 1272, 1282, 771, 1272, 1281, 1281, 1281,
2383 1283, 1283, 1283, 770, 1283, 769, 761, 1283, 759, 758,
2384 1262, 1286, 1286, 1286, 1281, 752, 1287, 1287, 1287, 743,
2385 1287, 738, 1282, 1287, 727, 1288, 1288, 1288, 1286, 1288,
2386 726, 725, 1288, 1291, 1291, 1291, 724, 1291, 722, 720,
2388 1291, 1294, 1294, 1294, 1301, 1301, 1301, 719, 1301, 718,
2389 717, 1301, 716, 1304, 1304, 1304, 715, 1304, 714, 1294,
2390 1304, 1307, 1307, 1307, 1308, 1308, 1308, 712, 1308, 711,
2391 709, 1308, 1309, 1309, 1309, 708, 1309, 707, 1307, 1309,
2392 1312, 1312, 1312, 1313, 1313, 1313, 1315, 1315, 1315, 1316,
2393 1316, 1316, 1294, 1316, 706, 705, 1316, 704, 1312, 703,
2394 698, 1313, 697, 1315, 1322, 1322, 1322, 696, 1322, 695,
2395 692, 1322, 1325, 1325, 1325, 1327, 1327, 1327, 1328, 1328,
2396 1328, 691, 1328, 690, 688, 1328, 1331, 1331, 1331, 1325,
2397 1332, 1332, 1332, 1327, 1334, 1334, 1334, 1335, 1335, 1335,
2399 1312, 684, 681, 1331, 1338, 1338, 1338, 680, 1332, 1341,
2400 1341, 1341, 1334, 677, 1335, 1340, 1340, 1340, 1325, 1344,
2401 1344, 1344, 1338, 676, 1345, 1345, 1345, 1341, 1345, 675,
2402 1327, 1345, 674, 1340, 1348, 1348, 1348, 1349, 1349, 1349,
2403 666, 664, 1331, 1350, 1350, 1350, 1351, 1351, 1351, 661,
2404 660, 1348, 657, 654, 1349, 653, 1334, 1352, 1352, 1352,
2405 652, 1350, 1353, 1353, 1353, 1338, 1354, 1354, 1354, 649,
2406 642, 1340, 1355, 1355, 1355, 1356, 1356, 1356, 1357, 1357,
2407 1357, 1360, 1360, 1360, 1361, 1361, 1361, 1348, 1362, 1362,
2408 1362, 1364, 1364, 1364, 1366, 1366, 1366, 641, 1350, 1349,
2410 1369, 1369, 1369, 1371, 1371, 1371, 1374, 1374, 1374, 640,
2411 1374, 639, 1366, 1374, 1385, 1385, 1385, 1369, 1386, 1386,
2412 1386, 1371, 1386, 630, 625, 1386, 1387, 1387, 1387, 624,
2413 623, 1385, 1388, 1388, 1388, 622, 1388, 619, 616, 1388,
2414 1391, 1391, 1391, 613, 1387, 1400, 1400, 1400, 612, 1400,
2415 611, 606, 1400, 1403, 1403, 1403, 605, 604, 1391, 1404,
2416 1404, 1404, 1406, 1406, 1406, 1407, 1407, 1407, 603, 1407,
2417 602, 1403, 1407, 1421, 1421, 1421, 599, 1404, 597, 1406,
2418 1422, 1422, 1422, 1387, 1423, 1423, 1423, 1428, 1428, 1428,
2419 1421, 593, 1429, 1429, 1429, 1430, 1430, 1430, 589, 1431,
2421 1431, 1431, 1423, 1431, 1428, 1406, 1431, 1432, 1432, 1432,
2422 1429, 588, 1430, 1434, 1434, 1434, 1435, 1435, 1435, 1436,
2423 1436, 1436, 585, 582, 1432, 1437, 1437, 1437, 581, 580,
2424 1428, 1434, 1440, 1440, 1440, 579, 578, 1436, 1441, 1441,
2425 1441, 577, 576, 1437, 1442, 1442, 1442, 1423, 1429, 1443,
2426 1443, 1443, 1444, 1444, 1444, 1441, 1445, 1445, 1445, 575,
2427 574, 1442, 1446, 1446, 1446, 573, 572, 1443, 1451, 1451,
2428 1451, 1454, 1454, 1454, 571, 1455, 1455, 1455, 570, 1455,
2429 569, 1436, 1455, 1437, 568, 567, 1451, 566, 1454, 1470,
2430 1470, 1470, 1442, 1470, 565, 564, 1470, 1473, 1473, 1473,
2432 1474, 1474, 1474, 1483, 1483, 1483, 1484, 1484, 1484, 1486,
2433 1486, 1486, 1487, 1487, 1487, 1473, 1487, 563, 1474, 1487,
2434 1483, 1495, 1495, 1495, 1484, 562, 1486, 1502, 1502, 1502,
2435 1503, 1503, 1503, 561, 1503, 560, 559, 1503, 1495, 1504,
2436 1504, 1504, 558, 557, 1502, 1505, 1505, 1505, 1512, 1512,
2437 1512, 554, 553, 1473, 1513, 1513, 1513, 1514, 1514, 1514,
2438 552, 1514, 550, 1505, 1514, 1512, 1517, 1517, 1517, 1518,
2439 1518, 1518, 1513, 1518, 549, 548, 1518, 1519, 1519, 1519,
2440 1520, 1520, 1520, 1517, 1522, 1522, 1522, 1523, 1523, 1523,
2441 1527, 1527, 1527, 547, 1519, 1512, 546, 542, 1520, 1505,
2443 540, 1529, 1529, 1529, 539, 1523, 538, 1527, 537, 1512,
2444 1528, 1528, 1528, 534, 1528, 533, 532, 1528, 1529, 1530,
2445 1530, 1530, 1536, 1536, 1536, 1537, 1537, 1537, 531, 1537,
2446 530, 529, 1537, 1554, 1554, 1554, 526, 1530, 522, 1536,
2447 1560, 1560, 1560, 1561, 1561, 1561, 521, 1561, 520, 519,
2448 1561, 1554, 1562, 1562, 1562, 518, 1562, 1560, 515, 1562,
2449 1570, 1570, 1570, 1571, 1571, 1571, 514, 1571, 513, 512,
2450 1571, 1578, 1578, 1578, 511, 1578, 510, 1570, 1578, 1581,
2451 1581, 1581, 1588, 1588, 1588, 1589, 1589, 1589, 507, 1554,
2452 1590, 1590, 1590, 506, 1592, 1592, 1592, 1581, 1592, 1588,
2454 505, 1592, 1589, 1595, 1595, 1595, 504, 502, 1590, 1596,
2455 1596, 1596, 499, 1596, 495, 494, 1596, 1597, 1597, 1597,
2456 1595, 1602, 1602, 1602, 493, 1602, 492, 491, 1602, 1605,
2457 1605, 1605, 1606, 1606, 1606, 1597, 1606, 490, 487, 1606,
2458 484, 1581, 483, 1588, 479, 1589, 1605, 1607, 1607, 1607,
2459 1609, 1609, 1609, 1611, 1611, 1611, 1612, 1612, 1612, 478,
2460 1612, 477, 476, 1612, 1618, 1618, 1618, 1631, 1631, 1631,
2461 1611, 1632, 1632, 1632, 475, 1635, 1635, 1635, 473, 1635,
2462 470, 1618, 1635, 469, 466, 1631, 465, 464, 1632, 1639,
2463 1639, 1639, 1641, 1641, 1641, 463, 1641, 459, 458, 1641,
2465 1654, 1654, 1654, 1661, 1661, 1661, 1639, 1662, 1662, 1662,
2466 1672, 1672, 1672, 457, 1632, 1631, 456, 455, 1654, 451,
2467 1661, 1663, 1663, 1663, 1662, 1663, 450, 449, 1663, 1668,
2468 1668, 1668, 1669, 1669, 1669, 448, 1669, 447, 445, 1669,
2469 1674, 1674, 1674, 1683, 1683, 1683, 1668, 1668, 442, 1684,
2470 1684, 1684, 1654, 1662, 1676, 1676, 1676, 441, 1676, 439,
2471 1683, 1676, 1696, 1696, 1696, 1661, 1684, 1685, 1685, 1685,
2472 437, 1685, 434, 433, 1685, 1697, 1697, 1697, 430, 428,
2473 1696, 1698, 1698, 1698, 425, 1698, 424, 422, 1698, 1703,
2474 1703, 1703, 1697, 1704, 1704, 1704, 421, 1704, 420, 419,
2476 1704, 1716, 1716, 1716, 418, 417, 1703, 414, 1696, 1723,
2477 1723, 1723, 1724, 1724, 1724, 1726, 1726, 1726, 413, 1716,
2478 1727, 1727, 1727, 1728, 1728, 1728, 1723, 1728, 412, 1724,
2479 1728, 411, 1726, 1726, 1729, 1729, 1729, 1727, 1727, 410,
2480 409, 1728, 1730, 1730, 1730, 1735, 1735, 1735, 408, 1736,
2481 1736, 1736, 1723, 1736, 407, 1724, 1736, 1737, 1737, 1737,
2482 406, 1737, 1735, 403, 1737, 1750, 1750, 1750, 1751, 1751,
2483 1751, 402, 1751, 401, 400, 1751, 1758, 1758, 1758, 399,
2484 1759, 1759, 1759, 1750, 1759, 393, 392, 1759, 1762, 1762,
2485 1762, 390, 384, 1758, 1773, 1773, 1773, 1781, 1781, 1781,
2487 1782, 1782, 1782, 380, 1782, 1762, 377, 1782, 1783, 1783,
2488 1783, 376, 1773, 372, 1781, 1784, 1784, 1784, 371, 1785,
2489 1785, 1785, 370, 1785, 369, 1783, 1785, 1750, 1786, 1786,
2490 1786, 365, 1784, 1788, 1788, 1788, 1789, 1789, 1789, 359,
2491 1789, 355, 352, 1789, 348, 1786, 1793, 1793, 1793, 347,
2492 1788, 1788, 346, 345, 1789, 341, 1790, 1790, 1790, 338,
2493 1790, 332, 331, 1790, 1794, 1794, 1794, 327, 1799, 1799,
2494 1799, 324, 1799, 1783, 1790, 1799, 1812, 1812, 1812, 319,
2495 1812, 318, 317, 1812, 313, 1806, 1806, 1806, 307, 1811,
2496 1811, 1811, 303, 1786, 1791, 1791, 1791, 1791, 1791, 1791,
2498 1791, 1791, 1791, 1806, 297, 1791, 1811, 1813, 1813, 1813,
2499 1791, 1791, 1791, 1791, 1791, 1814, 1814, 1814, 296, 1814,
2500 294, 293, 1814, 288, 1813, 1829, 1829, 1829, 282, 1829,
2501 281, 277, 1829, 1832, 1832, 1832, 1791, 1791, 1792, 1792,
2502 1792, 1792, 1792, 1792, 1792, 1792, 1792, 274, 270, 1792,
2503 1832, 1836, 1836, 1836, 1792, 1792, 1792, 1792, 1792, 1833,
2504 1833, 1833, 269, 1833, 268, 266, 1833, 262, 1836, 1838,
2505 1838, 1838, 259, 1838, 256, 254, 1838, 1851, 1851, 1851,
2506 1792, 1792, 1857, 1857, 1857, 1832, 1857, 1838, 250, 1857,
2507 1860, 1860, 1860, 244, 1860, 1851, 243, 1860, 242, 1875,
2509 1875, 1875, 241, 1836, 1841, 1841, 1841, 1841, 1841, 1841,
2510 1841, 1841, 1841, 237, 231, 1841, 1875, 1876, 1876, 1876,
2511 1841, 1841, 1841, 1841, 1841, 1883, 1883, 1883, 1888, 1888,
2512 1888, 1916, 1916, 1916, 1876, 1916, 230, 229, 1916, 228,
2513 1889, 1889, 1889, 1883, 1883, 1888, 1841, 1841, 1842, 1842,
2514 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1889, 224, 1842,
2515 221, 1875, 216, 214, 1842, 1842, 1842, 1842, 1842, 1890,
2516 1890, 1890, 1891, 1891, 1891, 1904, 1904, 1904, 213, 1876,
2517 1905, 1905, 1905, 1906, 1906, 1906, 1890, 209, 206, 1891,
2518 1842, 1842, 1904, 1910, 1910, 1910, 204, 1905, 1915, 1915,
2520 1915, 1906, 1917, 1917, 1917, 203, 1918, 1918, 1918, 202,
2521 1918, 1910, 1890, 1918, 198, 1915, 1919, 1919, 1919, 1917,
2522 1920, 1920, 1920, 192, 1920, 188, 1904, 1920, 1922, 1922,
2523 1922, 1905, 184, 1919, 178, 1923, 1923, 1923, 177, 1923,
2524 173, 1910, 1923, 169, 168, 1922, 1928, 1928, 1928, 1929,
2525 1929, 1929, 1930, 1930, 1930, 1936, 1936, 1936, 167, 1936,
2526 161, 160, 1936, 1928, 158, 155, 1929, 1939, 1939, 1939,
2527 1930, 1939, 143, 0, 1939, 1942, 1942, 1942, 0, 1942,
2528 0, 0, 1942, 1946, 1946, 1946, 0, 1946, 1930, 1928,
2529 1946, 0, 1929, 1953, 1953, 1953, 1954, 1954, 1954, 1962,
2531 1962, 1962, 1963, 1963, 1963, 1970, 1970, 1970, 0, 0,
2532 1953, 0, 0, 1954, 0, 0, 1962, 0, 0, 1963,
2533 0, 0, 1970, 1971, 1971, 1971, 1973, 1973, 1973, 1978,
2534 1978, 1978, 1979, 1979, 1979, 1981, 1981, 1981, 0, 0,
2535 1971, 0, 0, 1973, 0, 0, 1978, 0, 0, 1979,
2536 1953, 0, 1981, 1954, 0, 0, 1970, 0, 1982, 1982,
2537 1982, 1962, 1982, 0, 1963, 1982, 1987, 1987, 1987, 1988,
2538 1988, 1988, 0, 0, 1971, 0, 0, 1978, 0, 0,
2539 1979, 0, 0, 1987, 0, 0, 1988, 1990, 1990, 1990,
2540 0, 1990, 0, 0, 1990, 1995, 1995, 1995, 1996, 1996,
2542 1996, 1997, 1997, 1997, 1998, 1998, 1998, 1999, 1999, 1999,
2543 0, 0, 1995, 0, 0, 1996, 2000, 2000, 2000, 1997,
2544 2000, 1998, 0, 2000, 1999, 0, 1987, 0, 0, 1988,
2545 2001, 2001, 2001, 0, 2000, 2002, 2002, 2002, 1995, 0,
2546 0, 1996, 2005, 2005, 2005, 0, 0, 2001, 0, 2006,
2547 2006, 2006, 2002, 2009, 2009, 2009, 2010, 2010, 2010, 2005,
2548 2013, 2013, 2013, 0, 0, 1998, 2006, 1999, 0, 0,
2549 2009, 0, 0, 2010, 2014, 2014, 2014, 2013, 2001, 2017,
2550 2017, 2017, 0, 2002, 0, 2018, 2018, 2018, 0, 2018,
2551 0, 2014, 2018, 0, 0, 2006, 2017, 0, 2005, 0,
2553 2009, 2019, 2019, 2019, 2020, 2020, 2020, 0, 2020, 0,
2554 0, 2020, 2023, 2023, 2023, 0, 2023, 0, 2019, 2023,
2555 2010, 2026, 2026, 2026, 0, 2026, 0, 0, 2026, 2043,
2556 2043, 2043, 2044, 2044, 2044, 0, 0, 0, 0, 0,
2557 0, 0, 0, 0, 0, 0, 0, 2043, 0, 0,
2558 2044, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2559 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2049,
2560 2049, 2049, 2049, 2049, 2049, 2049, 2049, 2049, 2050, 2050,
2561 2050, 2050, 2050, 2050, 2050, 2050, 2050, 2051, 2051, 2051,
2562 2051, 2051, 2051, 2051, 2051, 2051, 2052, 2052, 2052, 2052,
2564 2052, 2052, 2052, 2052, 2052, 2053, 2053, 2053, 2053, 2053,
2565 2053, 2053, 2053, 2053, 2054, 2054, 2054, 2054, 2054, 2054,
2566 2054, 2054, 2054, 2055, 2055, 2055, 2055, 2055, 2055, 2055,
2567 2055, 2055, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2056,
2568 2056, 2057, 2057, 2057, 2057, 2057, 2057, 2057, 2057, 2057,
2569 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2059,
2570 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2060, 2060,
2571 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2061, 2061, 2061,
2572 2061, 2061, 2061, 2061, 2061, 2061, 2062, 2062, 2062, 2062,
2573 2062, 2062, 2062, 2062, 2062, 2063, 2063, 2063, 2063, 2063,
2575 2063, 2063, 2063, 2063, 2064, 2064, 2064, 2064, 2064, 2064,
2576 2064, 2064, 2064, 2065, 2065, 2065, 2065, 2065, 2065, 2065,
2577 2065, 2065, 2066, 2066, 2066, 2066, 2066, 2066, 2066, 2066,
2578 2066, 2067, 2067, 2067, 2067, 2067, 2067, 2067, 2067, 2067,
2579 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2069,
2580 2069, 2069, 2069, 2069, 2069, 2069, 2069, 2069, 2070, 2070,
2581 2070, 2070, 2070, 2070, 2070, 2070, 2070, 2071, 2071, 2071,
2582 2071, 2071, 2071, 2071, 2071, 2071, 2072, 2072, 2072, 2072,
2583 2072, 2072, 2072, 2072, 2072, 2073, 2073, 2073, 2073, 2073,
2584 2073, 2073, 2073, 2073, 2074, 2074, 2074, 2074, 2074, 2074,
2586 2074, 2074, 2074, 2075, 2075, 2075, 2075, 2075, 2075, 2075,
2587 2075, 2075, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2076,
2588 2076, 2077, 2077, 2077, 2077, 2077, 2077, 2077, 2077, 2077,
2589 2078, 2078, 2078, 2078, 2078, 2078, 2078, 2078, 2078, 2079,
2590 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2080, 2080,
2591 2080, 2080, 2080, 2080, 2080, 2080, 2080, 2081, 2081, 2081,
2592 2081, 2081, 2081, 2081, 2081, 2081, 2082, 2082, 2082, 2082,
2593 2082, 2082, 2082, 2082, 2082, 2083, 2083, 2083, 2083, 2083,
2594 2083, 2083, 2083, 2083, 2084, 2084, 2084, 2084, 2084, 2084,
2595 2084, 2084, 2084, 2085, 2085, 2085, 2085, 2085, 2085, 2085,
2597 2085, 2085, 2086, 2086, 2086, 0, 0, 0, 2086, 2087,
2598 2087, 2087, 0, 0, 0, 2087, 2088, 2088, 2088, 0,
2599 0, 0, 2088, 2089, 2089, 2089, 0, 0, 0, 2089,
2600 2090, 2090, 2090, 0, 0, 0, 2090, 2091, 2091, 2091,
2601 0, 0, 0, 2091, 2092, 2092, 2092, 0, 0, 0,
2602 2092, 2093, 2093, 2093, 0, 0, 0, 2093, 2094, 2094,
2603 2094, 0, 0, 0, 2094, 2095, 2095, 2095, 0, 0,
2604 0, 2095, 2096, 2096, 2096, 0, 0, 0, 2096, 2097,
2605 2097, 2097, 0, 0, 0, 2097, 2098, 2098, 2098, 0,
2606 0, 0, 2098, 2099, 2099, 2099, 0, 0, 0, 2099,
2608 2100, 2100, 2100, 0, 0, 0, 2100, 2101, 2101, 2101,
2609 0, 0, 0, 2101, 2102, 2102, 2102, 0, 0, 0,
2610 2102, 2103, 2103, 2103, 2103, 2103, 2103, 2103, 0, 2103,
2611 2104, 0, 0, 0, 2104, 2105, 0, 0, 0, 2105,
2612 2106, 0, 0, 0, 2106, 2107, 0, 0, 0, 2107,
2613 2108, 0, 0, 0, 2108, 2109, 0, 0, 0, 2109,
2614 2110, 0, 0, 0, 2110, 2111, 0, 0, 0, 2111,
2615 2112, 0, 0, 0, 2112, 2113, 2113, 2113, 0, 0,
2616 0, 2113, 2114, 0, 0, 0, 2114, 2115, 2115, 2115,
2617 0, 0, 0, 2115, 2116, 0, 0, 0, 2116, 2117,
2619 2117, 2117, 0, 0, 0, 2117, 2118, 0, 0, 0,
2620 2118, 2119, 2119, 2119, 0, 0, 0, 2119, 2120, 0,
2621 0, 0, 2120, 2121, 2121, 2121, 0, 0, 0, 2121,
2622 2122, 0, 0, 0, 2122, 2123, 2123, 2123, 0, 0,
2623 0, 2123, 2124, 0, 0, 0, 2124, 2125, 2125, 2125,
2624 0, 0, 0, 2125, 2126, 0, 0, 0, 2126, 2127,
2625 2127, 2127, 0, 0, 0, 2127, 2128, 0, 0, 0,
2626 2128, 2129, 2129, 2129, 2129, 2129, 2129, 2129, 2129, 2129,
2627 2130, 0, 0, 0, 0, 2130, 2131, 2131, 2131, 0,
2628 0, 0, 2131, 2132, 2132, 2132, 2132, 0, 0, 2132,
2630 2132, 2133, 2133, 2133, 0, 0, 0, 2133, 2134, 2134,
2631 2134, 2134, 0, 0, 2134, 2134, 2135, 2135, 2135, 0,
2632 0, 0, 2135, 2136, 2136, 2136, 2136, 0, 0, 2136,
2633 2136, 2137, 2137, 2137, 0, 0, 0, 2137, 2138, 2138,
2634 2138, 2138, 0, 0, 2138, 2138, 2139, 2139, 2139, 0,
2635 0, 0, 2139, 2140, 2140, 2140, 2140, 0, 0, 2140,
2636 2140, 2141, 2141, 2141, 0, 0, 0, 2141, 2142, 2142,
2637 2142, 2142, 0, 0, 2142, 2142, 2143, 2143, 2143, 0,
2638 0, 0, 2143, 2144, 2144, 2144, 2144, 0, 0, 2144,
2639 2144, 2145, 2145, 2145, 0, 0, 0, 2145, 2146, 2146,
2641 2146, 2146, 0, 0, 2146, 2146, 2147, 2147, 2147, 0,
2642 0, 0, 2147, 2148, 2148, 2148, 2148, 0, 0, 2148,
2643 2148, 2149, 2149, 2149, 0, 0, 0, 2149, 2150, 2150,
2644 2150, 2150, 0, 0, 2150, 2150, 2151, 2151, 2151, 2151,
2645 0, 0, 2151, 2151, 2152, 2152, 2152, 0, 0, 0,
2646 2152, 2153, 2153, 2153, 2153, 0, 0, 2153, 2153, 2154,
2647 2154, 2154, 0, 0, 0, 2154, 2155, 2155, 2155, 2155,
2648 0, 0, 2155, 2155, 2156, 2156, 2156, 0, 0, 0,
2649 2156, 2157, 2157, 2157, 2157, 0, 0, 2157, 2157, 2158,
2650 2158, 2158, 2158, 0, 0, 2158, 2158, 2159, 2159, 2159,
2652 0, 0, 0, 2159, 2160, 2160, 2160, 2160, 0, 0,
2653 2160, 2160, 2161, 2161, 2161, 0, 0, 0, 2161, 2162,
2654 2162, 2162, 2162, 0, 0, 2162, 2162, 2163, 2163, 2163,
2655 2163, 2163, 2163, 2163, 2163, 2163, 2164, 0, 2164, 0,
2656 0, 2164, 2165, 2165, 2165, 0, 0, 0, 2165, 2166,
2657 2166, 2166, 2166, 0, 0, 2166, 2166, 2167, 2167, 2167,
2658 2167, 0, 2167, 0, 2167, 2168, 2168, 2168, 2168, 0,
2659 0, 2168, 2168, 2169, 2169, 2169, 2169, 0, 2169, 0,
2660 2169, 2170, 2170, 2170, 2170, 0, 0, 2170, 2170, 2171,
2661 2171, 2171, 0, 0, 0, 2171, 2172, 2172, 2172, 2172,
2663 0, 0, 2172, 2172, 2173, 2173, 2173, 0, 0, 0,
2664 2173, 2174, 2174, 2174, 2174, 0, 0, 2174, 2174, 2175,
2665 2175, 2175, 0, 0, 0, 2175, 2176, 2176, 2176, 2176,
2666 0, 0, 2176, 2176, 2177, 2177, 2177, 0, 0, 0,
2667 2177, 2178, 2178, 2178, 2178, 0, 0, 2178, 2178, 2179,
2668 2179, 2179, 0, 0, 0, 2179, 2180, 2180, 2180, 2180,
2669 0, 0, 2180, 2180, 2181, 2181, 2181, 0, 0, 0,
2670 2181, 2182, 2182, 2182, 2182, 0, 0, 2182, 2182, 2183,
2671 2183, 2183, 0, 0, 0, 2183, 2184, 2184, 2184, 2184,
2672 0, 0, 2184, 2184, 2185, 2185, 2185, 2185, 0, 0,
2674 2185, 2185, 2186, 2186, 2186, 0, 0, 0, 2186, 2187,
2675 2187, 2187, 2187, 0, 0, 2187, 2187, 2188, 2188, 2188,
2676 0, 0, 0, 2188, 2189, 2189, 2189, 2189, 0, 0,
2677 2189, 2189, 2190, 2190, 2190, 0, 0, 0, 2190, 2191,
2678 2191, 2191, 2191, 0, 0, 2191, 2191, 2192, 2192, 2192,
2679 2192, 0, 0, 2192, 2192, 2193, 2193, 2193, 0, 0,
2680 0, 2193, 2194, 2194, 2194, 2194, 0, 0, 2194, 2194,
2681 2195, 2195, 2195, 0, 0, 0, 2195, 2196, 2196, 2196,
2682 2196, 0, 0, 2196, 2196, 2197, 2197, 2197, 2197, 2197,
2683 2197, 2197, 2197, 2197, 2198, 2198, 2198, 2198, 2198, 2198,
2685 2198, 2198, 2198, 2199, 2199, 2199, 0, 0, 0, 2199,
2686 2200, 2200, 2200, 2200, 0, 0, 2200, 2200, 2201, 2201,
2687 2201, 2201, 0, 0, 2201, 2201, 2202, 2202, 2202, 0,
2688 0, 0, 2202, 2203, 2203, 2203, 2203, 0, 0, 2203,
2689 2203, 2204, 2204, 2204, 0, 0, 0, 2204, 2205, 2205,
2690 2205, 2205, 0, 0, 2205, 2205, 2206, 2206, 2206, 0,
2691 0, 0, 2206, 2207, 2207, 2207, 2207, 0, 0, 2207,
2692 2207, 2208, 2208, 2208, 0, 0, 0, 2208, 2209, 2209,
2693 2209, 2209, 0, 0, 2209, 2209, 2210, 2210, 2210, 0,
2694 0, 0, 2210, 2211, 2211, 2211, 2211, 0, 0, 2211,
2696 2211, 2212, 2212, 2212, 0, 0, 0, 2212, 2213, 2213,
2697 2213, 2213, 0, 0, 2213, 2213, 2214, 2214, 2214, 2214,
2698 0, 2214, 0, 2214, 2215, 2215, 2215, 2215, 0, 0,
2699 2215, 2215, 2216, 2216, 2216, 2216, 0, 2216, 0, 2216,
2700 2217, 2217, 2217, 2217, 0, 0, 2217, 2217, 2218, 2218,
2701 2218, 2218, 0, 0, 2218, 2218, 2219, 2219, 2219, 0,
2702 0, 0, 2219, 2220, 2220, 2220, 2220, 0, 0, 2220,
2703 2220, 2221, 2221, 2221, 0, 0, 0, 2221, 2222, 2222,
2704 2222, 2222, 0, 0, 2222, 2222, 2223, 2223, 2223, 0,
2705 0, 0, 2223, 2224, 2224, 2224, 2224, 0, 0, 2224,
2707 2224, 2225, 2225, 2225, 2225, 0, 0, 2225, 2225, 2226,
2708 2226, 2226, 0, 0, 0, 2226, 2227, 2227, 2227, 2227,
2709 0, 0, 2227, 2227, 2228, 2228, 2228, 2228, 0, 2228,
2710 0, 2228, 2229, 2229, 2229, 2229, 0, 0, 2229, 2229,
2711 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2231,
2712 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2232, 2232,
2713 2232, 0, 0, 0, 2232, 2233, 2233, 2233, 2233, 0,
2714 0, 2233, 2233, 2234, 2234, 2234, 2234, 0, 0, 2234,
2715 2234, 2235, 2235, 2235, 0, 0, 0, 2235, 2236, 2236,
2716 2236, 2236, 0, 0, 2236, 2236, 2237, 2237, 2237, 0,
2718 0, 0, 2237, 2238, 2238, 2238, 2238, 0, 0, 2238,
2719 2238, 2239, 2239, 2239, 0, 0, 0, 2239, 2240, 2240,
2720 2240, 2240, 0, 0, 2240, 2240, 2241, 2241, 2241, 2241,
2721 0, 2241, 0, 2241, 2242, 2242, 2242, 2242, 0, 2242,
2722 0, 2242, 2243, 2243, 2243, 2243, 0, 0, 2243, 2243,
2723 2244, 2244, 2244, 0, 0, 0, 2244, 2245, 2245, 2245,
2724 2245, 0, 0, 2245, 2245, 2246, 2246, 2246, 2246, 0,
2725 0, 2246, 2246, 2247, 2247, 2247, 2247, 0, 2247, 0,
2726 2247, 2248, 2248, 2248, 2248, 0, 0, 2248, 2248, 2249,
2727 2249, 2249, 2249, 0, 0, 2249, 2249, 2250, 2250, 2250,
2729 0, 0, 0, 2250, 2251, 2251, 2251, 2251, 0, 0,
2730 2251, 2251, 2252, 2252, 2252, 2252, 0, 2252, 0, 2252,
2731 2253, 2253, 2253, 2253, 0, 0, 2253, 2253, 2254, 2254,
2732 2254, 2254, 0, 2254, 0, 2254, 2255, 2255, 2255, 2255,
2733 0, 0, 2255, 2255, 2256, 2256, 2256, 2256, 0, 0,
2734 2256, 2256, 2257, 2257, 2257, 0, 0, 0, 2257, 2258,
2735 2258, 2258, 2258, 0, 0, 2258, 2258, 2259, 2259, 2259,
2736 2259, 0, 0, 2259, 2259, 2260, 2260, 2260, 2260, 2260,
2737 2260, 2260, 2260, 2260, 2261, 2261, 2261, 2261, 2261, 2261,
2738 2261, 2261, 2261, 2262, 2262, 2262, 2262, 0, 2262, 0,
2740 2262, 2263, 2263, 2263, 2263, 0, 0, 2263, 2263, 2264,
2741 2264, 2264, 2264, 0, 0, 2264, 2264, 2265, 2265, 2265,
2742 0, 0, 0, 2265, 2266, 2266, 2266, 2266, 0, 0,
2743 2266, 2266, 2267, 2267, 2267, 0, 0, 0, 2267, 2268,
2744 2268, 2268, 2268, 0, 0, 2268, 2268, 2269, 2269, 2269,
2745 0, 0, 0, 2269, 2270, 2270, 2270, 2270, 0, 0,
2746 2270, 2270, 2271, 2271, 2271, 2271, 0, 2271, 0, 2271,
2747 2272, 2272, 2272, 2272, 0, 0, 2272, 2272, 2273, 2273,
2748 2273, 0, 0, 0, 2273, 2274, 2274, 2274, 2274, 2274,
2749 2274, 2274, 2274, 2274, 2275, 2275, 2275, 2275, 2275, 2275,
2751 2275, 2275, 2275, 2276, 2276, 2276, 2276, 2276, 2276, 2276,
2752 2276, 2276, 2277, 2277, 2277, 2277, 2277, 2277, 2277, 2277,
2753 2277, 2278, 2278, 2278, 2278, 2278, 2278, 2278, 2278, 2278,
2754 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2046,
2755 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
2756 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
2757 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
2758 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
2759 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
2760 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
2762 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046
2765 /* Table of booleans, true if rule could match eol. */
2766 static yyconst flex_int32_t yy_rule_can_match_eol[354] =
2768 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
2769 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1,
2770 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
2771 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1,
2772 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0,
2773 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1,
2774 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
2775 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
2776 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1,
2777 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
2778 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1,
2779 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
2780 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
2781 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2782 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0,
2783 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1,
2784 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2785 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, };
2787 static yy_state_type yy_last_accepting_state;
2788 static char *yy_last_accepting_cpos;
2790 extern int surf_parse__flex_debug;
2791 int surf_parse__flex_debug = 0;
2793 /* The intent behind this definition is that it'll catch
2794 * any uses of REJECT which flex missed.
2796 #define REJECT reject_used_but_not_detected
2797 #define yymore() yymore_used_but_not_detected
2798 #define YY_MORE_ADJ 0
2799 #define YY_RESTORE_YY_MORE_OFFSET
2800 char *surf_parse_text;
2801 /* Validating XML processor for surf/simgrid.dtd.
2802 * Generated 2007/12/18 12:04:41.
2804 * This program was generated with the FleXML XML processor generator.
2805 * FleXML is Copyright (C) 1999-2005 Kristoffer Rose. All rights reserved.
2806 * FleXML is Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
2807 * (Id: flexml.pl,v 1.63 2007/10/11 14:46:08 mquinson Exp).
2809 * There are two, intertwined parts to this program, part A and part B.
2814 * Some parts, here collectively called "Part A", are found in the
2815 * FleXML package. They are Copyright (C) 1999-2005 Kristoffer Rose
2816 * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
2818 * You can redistribute, use, perform, display and/or modify "Part A"
2819 * provided the following two conditions hold:
2821 * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
2822 * FleXML; without even the implied warranty of MERCHANTABILITY or
2823 * FITNESS FOR A PARTICULAR PURPOSE.
2825 * 2. The program distribution conditions do not in any way affect the
2826 * distribution conditions of the FleXML system used to generate this
2827 * file or any version of FleXML derived from that system.
2829 * Notice that these are explicit rights granted to you for files
2830 * generated by the FleXML system. For your rights in connection with
2831 * the FleXML system itself please consult the GNU General Public License.
2836 * The other parts, here collectively called "Part B", and which came
2837 * from the DTD used by FleXML to generate this program, can be
2838 * distributed (or not, as the case may be) under the terms of whoever
2839 * wrote them, provided these terms respect and obey the two conditions
2840 * above under the heading "Part A".
2842 * The author of and contributors to FleXML specifically disclaim
2843 * any copyright interest in "Part B", unless "Part B" was written
2844 * by the author of or contributors to FleXML.
2848 /* Version strings. */
2849 const char rcs_surfxml_flexml_skeleton[] =
2850 "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
2851 const char rcs_surfxml_flexml[] =
2852 "$" "Id: flexml.pl,v 1.63 2007/10/11 14:46:08 mquinson Exp $";
2855 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
2862 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
2863 # ifndef __STRICT_ANSI__
2865 # include <process.h>
2868 # include <unistd.h>
2871 #ifndef FLEXML_INDEXSTACKSIZE
2872 #define FLEXML_INDEXSTACKSIZE 1000
2875 /* Generated definitions. */
2876 #define FLEXML_yylineno
2877 #ifndef FLEXML_BUFFERSTACKSIZE
2878 #define FLEXML_BUFFERSTACKSIZE 1000000
2880 #define FLEXML_NEED_BUFFERLIT
2882 /* XML processor api. */
2883 /* FleXML-provided data. */
2884 int surfxml_pcdata_ix;
2885 extern char *surfxml_bufferstack;
2886 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
2887 AT_surfxml_random_generator AX_surfxml_random_generator;
2888 #define A_surfxml_random_generator AX_surfxml_random_generator
2889 AT_surfxml_prop_id AX_surfxml_prop_id;
2890 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
2891 AT_surfxml_host_interference_recv AX_surfxml_host_interference_recv;
2892 #define A_surfxml_host_interference_recv (surfxml_bufferstack + AX_surfxml_host_interference_recv)
2893 AT_surfxml_host_id AX_surfxml_host_id;
2894 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
2895 AT_surfxml_set_id AX_surfxml_set_id;
2896 #define A_surfxml_set_id (surfxml_bufferstack + AX_surfxml_set_id)
2897 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
2898 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
2899 AT_surfxml_host_state AX_surfxml_host_state;
2900 #define A_surfxml_host_state AX_surfxml_host_state
2901 AT_surfxml_host_interference_send_recv AX_surfxml_host_interference_send_recv;
2902 #define A_surfxml_host_interference_send_recv (surfxml_bufferstack + AX_surfxml_host_interference_send_recv)
2903 AT_surfxml_host_interference_send AX_surfxml_host_interference_send;
2904 #define A_surfxml_host_interference_send (surfxml_bufferstack + AX_surfxml_host_interference_send)
2905 AT_surfxml_set_suffix AX_surfxml_set_suffix;
2906 #define A_surfxml_set_suffix (surfxml_bufferstack + AX_surfxml_set_suffix)
2907 AT_surfxml_route_impact_on_dst AX_surfxml_route_impact_on_dst;
2908 #define A_surfxml_route_impact_on_dst (surfxml_bufferstack + AX_surfxml_route_impact_on_dst)
2909 AT_surfxml_host_power AX_surfxml_host_power;
2910 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
2911 AT_surfxml_router_id AX_surfxml_router_id;
2912 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
2913 AT_surfxml_process_start_time AX_surfxml_process_start_time;
2914 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
2915 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
2916 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
2917 AT_surfxml_platform_xmlns_c_route AX_surfxml_platform_xmlns_c_route;
2918 #define A_surfxml_platform_xmlns_c_route (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_route)
2919 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
2920 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
2921 AT_surfxml_trace_file AX_surfxml_trace_file;
2922 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
2923 AT_surfxml_route_action AX_surfxml_route_action;
2924 #define A_surfxml_route_action AX_surfxml_route_action
2925 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
2926 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
2927 AT_surfxml_random_min AX_surfxml_random_min;
2928 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
2929 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
2930 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
2931 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
2932 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
2933 AT_surfxml_trace_c_connect_element AX_surfxml_trace_c_connect_element;
2934 #define A_surfxml_trace_c_connect_element AX_surfxml_trace_c_connect_element
2935 AT_surfxml_argument_value AX_surfxml_argument_value;
2936 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
2937 AT_surfxml_link_state AX_surfxml_link_state;
2938 #define A_surfxml_link_state AX_surfxml_link_state
2939 AT_surfxml_route_impact_on_src AX_surfxml_route_impact_on_src;
2940 #define A_surfxml_route_impact_on_src (surfxml_bufferstack + AX_surfxml_route_impact_on_src)
2941 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
2942 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
2943 AT_surfxml_cluster_id AX_surfxml_cluster_id;
2944 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
2945 AT_surfxml_random_mean AX_surfxml_random_mean;
2946 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
2947 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
2948 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
2949 AT_surfxml_link_latency AX_surfxml_link_latency;
2950 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
2951 AT_surfxml_trace_c_connect_trace_id AX_surfxml_trace_c_connect_trace_id;
2952 #define A_surfxml_trace_c_connect_trace_id (surfxml_bufferstack + AX_surfxml_trace_c_connect_trace_id)
2953 AT_surfxml_platform_xmlns_c_link AX_surfxml_platform_xmlns_c_link;
2954 #define A_surfxml_platform_xmlns_c_link (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_link)
2955 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
2956 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
2957 AT_surfxml_random_id AX_surfxml_random_id;
2958 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
2959 AT_surfxml_set_radical AX_surfxml_set_radical;
2960 #define A_surfxml_set_radical (surfxml_bufferstack + AX_surfxml_set_radical)
2961 AT_surfxml_random_max AX_surfxml_random_max;
2962 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
2963 AT_surfxml_link_id AX_surfxml_link_id;
2964 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
2965 AT_surfxml_process_host AX_surfxml_process_host;
2966 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
2967 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
2968 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
2969 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
2970 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
2971 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
2972 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
2973 AT_surfxml_foreach_set_id AX_surfxml_foreach_set_id;
2974 #define A_surfxml_foreach_set_id (surfxml_bufferstack + AX_surfxml_foreach_set_id)
2975 AT_surfxml_route_impact_on_dst_with_other_send AX_surfxml_route_impact_on_dst_with_other_send;
2976 #define A_surfxml_route_impact_on_dst_with_other_send (surfxml_bufferstack + AX_surfxml_route_impact_on_dst_with_other_send)
2977 AT_surfxml_prop_value AX_surfxml_prop_value;
2978 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
2979 AT_surfxml_route_impact_on_src_with_other_recv AX_surfxml_route_impact_on_src_with_other_recv;
2980 #define A_surfxml_route_impact_on_src_with_other_recv (surfxml_bufferstack + AX_surfxml_route_impact_on_src_with_other_recv)
2981 AT_surfxml_link_state_file AX_surfxml_link_state_file;
2982 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
2983 AT_surfxml_set_prefix AX_surfxml_set_prefix;
2984 #define A_surfxml_set_prefix (surfxml_bufferstack + AX_surfxml_set_prefix)
2985 AT_surfxml_cluster_power AX_surfxml_cluster_power;
2986 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
2987 AT_surfxml_process_function AX_surfxml_process_function;
2988 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
2989 AT_surfxml_host_max_outgoing_rate AX_surfxml_host_max_outgoing_rate;
2990 #define A_surfxml_host_max_outgoing_rate (surfxml_bufferstack + AX_surfxml_host_max_outgoing_rate)
2991 AT_surfxml_link_c_ctn_id AX_surfxml_link_c_ctn_id;
2992 #define A_surfxml_link_c_ctn_id (surfxml_bufferstack + AX_surfxml_link_c_ctn_id)
2993 AT_surfxml_host_availability AX_surfxml_host_availability;
2994 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
2995 AT_surfxml_route_src AX_surfxml_route_src;
2996 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
2997 AT_surfxml_route_c_multi_src AX_surfxml_route_c_multi_src;
2998 #define A_surfxml_route_c_multi_src (surfxml_bufferstack + AX_surfxml_route_c_multi_src)
2999 AT_surfxml_route_c_multi_action AX_surfxml_route_c_multi_action;
3000 #define A_surfxml_route_c_multi_action AX_surfxml_route_c_multi_action
3001 AT_surfxml_trace_id AX_surfxml_trace_id;
3002 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
3003 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
3004 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
3005 AT_surfxml_include_file AX_surfxml_include_file;
3006 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
3007 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
3008 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
3009 AT_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind;
3010 #define A_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind
3011 AT_surfxml_trace_c_connect_connector_id AX_surfxml_trace_c_connect_connector_id;
3012 #define A_surfxml_trace_c_connect_connector_id (surfxml_bufferstack + AX_surfxml_trace_c_connect_connector_id)
3013 AT_surfxml_route_c_multi_dst AX_surfxml_route_c_multi_dst;
3014 #define A_surfxml_route_c_multi_dst (surfxml_bufferstack + AX_surfxml_route_c_multi_dst)
3015 AT_surfxml_host_state_file AX_surfxml_host_state_file;
3016 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
3017 AT_surfxml_route_c_multi_symmetric AX_surfxml_route_c_multi_symmetric;
3018 #define A_surfxml_route_c_multi_symmetric AX_surfxml_route_c_multi_symmetric
3019 AT_surfxml_route_dst AX_surfxml_route_dst;
3020 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
3021 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
3022 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
3023 AT_surfxml_platform_version AX_surfxml_platform_version;
3024 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
3028 # define ENTER(state) debug_enter(state,#state)
3029 # define LEAVE debug_leave()
3030 # define SET(state) debug_set(state,#state)
3031 static void debug_enter(int, const char*);
3032 static void debug_leave(void);
3033 static void debug_set(int, const char*);
3035 # define ENTER(state) (yy_push_state(state))
3036 # define LEAVE (yy_pop_state())
3037 # define SET(state) BEGIN(state)
3040 /* Generic actions. */
3041 #define SKIP /*skip*/
3042 #define SUCCEED CLEANUP; return 0
3044 #define FAIL return fail
3045 static int fail(const char*, ...);
3047 enum {flexml_max_err_msg_size = 512};
3048 static char flexml_err_msg[flexml_max_err_msg_size];
3049 const char * surfxml_parse_err_msg()
3051 return flexml_err_msg;
3053 static void reset_surfxml_parse_err_msg()
3055 flexml_err_msg[0] = '\0';
3059 static void cleanup(void);
3060 #define CLEANUP cleanup()
3062 /* Text buffer stack handling. */
3063 char *surfxml_bufferstack = NULL;
3064 static int blimit = FLEXML_BUFFERSTACKSIZE;
3065 static int bnext = 1;
3067 static int *indexstack = NULL;
3068 static int ilimit = FLEXML_INDEXSTACKSIZE;
3069 static int inext = 1;
3071 #define BUFFERSET(P) (P = bnext)
3072 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
3073 #define BUFFERDONE (BUFFERPUTC('\0'))
3075 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
3077 /* after this is called, there are at least 2 slots left in the stack */
3078 static int ck_blimit()
3080 if (bnext >= blimit) {
3081 blimit += FLEXML_BUFFERSTACKSIZE + 2;
3083 char *temp = (char *) realloc(surfxml_bufferstack, blimit);
3085 surfxml_bufferstack = temp;
3091 /* after this is called, there are at least 2 slots left in the stack */
3092 static int ck_ilimit()
3094 if (inext >= ilimit) {
3095 ilimit += FLEXML_INDEXSTACKSIZE + 2;
3097 int *temp = (int *) realloc(indexstack, ilimit);
3105 #ifdef FLEXML_NEED_BUFFERLIT
3106 static void surfxml_bufferliteral(char c, int* pp, const char* text)
3108 const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
3109 assert(s <= e); BUFFERSET(*pp);
3111 if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
3112 else BUFFERPUTC(*s);
3118 static void pushbuffer(int p)
3121 indexstack[inext++] = p;
3122 indexstack[inext++] = bnext;
3125 static int popbuffer(void)
3128 bnext = indexstack[--inext];
3129 return indexstack[--inext];
3132 /* General internal entities are `unput' back onto the input stream... */
3133 #define ENTITYTEXT(T) \
3134 { char *s = (T), *e = s+strlen(s);\
3135 while (--e >= s) { unput(*e); }}
3137 /* Flex standard options. */
3138 #define YY_NO_INPUT 1
3139 /* Flex user-requested options. */
3140 /* XML character classes (currently restricted to ASCII). */
3141 /* "Common syntactic structures." */
3142 /* "Names and Tokens." */
3143 /* Miscellaneous. */
3144 /* Parser states (flex `exclusive start conditions'):
3146 * PROLOG the XML prolog of the document before <?xml...>
3147 * DOCTYPE the XML prolog of the document after <?xml...>
3148 * EPILOG after the root element
3149 * INCOMMENT inside an XML comment <!--....-->
3150 * INPI inside an XML PI <?...?>
3151 * VALUE1 inside a '...'-delimited literal
3152 * VALUE2 inside a "..."-delimited literal
3153 * CDATA inside a <![CDATA[...] ]> section.
3154 * ROOT_<tag> expect root element <tag>
3155 * AL_<tag> inside the attribute list for <tag>
3156 * IN_<tag> inside a <tag> with element contents (ready for end tag)
3157 * IMPOSSIBLE dummy to permit disabling rules; must be last
3161 const char* *surfxml_statenames=NULL;
3172 #define ROOT_surfxml_platform 9
3173 #define AL_surfxml_platform 10
3174 #define S_surfxml_platform 11
3175 #define S_surfxml_platform_1 12
3176 #define S_surfxml_platform_2 13
3177 #define S_surfxml_platform_3 14
3178 #define S_surfxml_platform_4 15
3179 #define S_surfxml_platform_5 16
3180 #define E_surfxml_platform 17
3181 #define AL_surfxml_include 18
3182 #define E_surfxml_include 19
3183 #define AL_surfxml_trace 20
3185 #define AL_surfxml_random 22
3186 #define S_surfxml_random 23
3187 #define S_surfxml_random_1 24
3188 #define S_surfxml_random_2 25
3189 #define E_surfxml_random 26
3190 #define AL_surfxml_trace_c_connect 27
3191 #define E_surfxml_trace_c_connect 28
3192 #define AL_surfxml_set 29
3193 #define E_surfxml_set 30
3194 #define AL_surfxml_foreach 31
3195 #define S_surfxml_foreach 32
3196 #define S_surfxml_foreach_1 33
3197 #define E_surfxml_foreach 34
3198 #define AL_surfxml_host 35
3199 #define S_surfxml_host 36
3200 #define S_surfxml_host_1 37
3201 #define S_surfxml_host_2 38
3202 #define E_surfxml_host 39
3203 #define AL_surfxml_prop 40
3204 #define E_surfxml_prop 41
3205 #define AL_surfxml_cluster 42
3206 #define E_surfxml_cluster 43
3207 #define AL_surfxml_router 44
3208 #define E_surfxml_router 45
3209 #define AL_surfxml_link 46
3210 #define S_surfxml_link 47
3211 #define S_surfxml_link_1 48
3212 #define S_surfxml_link_2 49
3213 #define E_surfxml_link 50
3214 #define AL_surfxml_route_c_multi 51
3215 #define S_surfxml_route_c_multi 52
3216 #define S_surfxml_route_c_multi_1 53
3217 #define S_surfxml_route_c_multi_2 54
3218 #define E_surfxml_route_c_multi 55
3219 #define AL_surfxml_route 56
3220 #define S_surfxml_route 57
3221 #define S_surfxml_route_1 58
3222 #define S_surfxml_route_2 59
3223 #define E_surfxml_route 60
3224 #define AL_surfxml_link_c_ctn 61
3225 #define E_surfxml_link_c_ctn 62
3226 #define AL_surfxml_process 63
3227 #define S_surfxml_process 64
3228 #define S_surfxml_process_1 65
3229 #define S_surfxml_process_2 66
3230 #define E_surfxml_process 67
3231 #define AL_surfxml_argument 68
3232 #define E_surfxml_argument 69
3233 #define IMPOSSIBLE 70
3235 #ifndef YY_NO_UNISTD_H
3236 /* Special case for "unistd.h", since it is non-ANSI. We include it way
3237 * down here because we want the user's section 1 to have been scanned first.
3238 * The user has a chance to override it with an option.
3240 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3241 # ifndef __STRICT_ANSI__
3243 # include <process.h>
3246 # include <unistd.h>
3250 #ifndef YY_EXTRA_TYPE
3251 #define YY_EXTRA_TYPE void *
3254 static int yy_init_globals (void );
3256 /* Macros after this point can all be overridden by user definitions in
3260 #ifndef YY_SKIP_YYWRAP
3262 extern "C" int surf_parse_wrap (void );
3264 extern int surf_parse_wrap (void );
3269 static void yy_flex_strncpy (char *,yyconst char *,int );
3272 #ifdef YY_NEED_STRLEN
3273 static int yy_flex_strlen (yyconst char * );
3279 static int yyinput (void );
3281 static int input (void );
3286 static int yy_start_stack_ptr = 0;
3287 static int yy_start_stack_depth = 0;
3288 static int *yy_start_stack = NULL;
3290 static void yy_push_state (int new_state );
3292 static void yy_pop_state (void );
3294 /* Amount of stuff to slurp up with each read. */
3295 #ifndef YY_READ_BUF_SIZE
3296 #define YY_READ_BUF_SIZE 8192
3299 /* Copy whatever the last rule matched to the standard output. */
3301 /* This used to be an fputs(), but since the string might contain NUL's,
3302 * we now use fwrite().
3304 #define ECHO (void) fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )
3307 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
3308 * is returned in "result".
3311 #define YY_INPUT(buf,result,max_size) \
3312 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3316 for ( n = 0; n < max_size && \
3317 (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
3318 buf[n] = (char) c; \
3320 buf[n++] = (char) c; \
3321 if ( c == EOF && ferror( surf_parse_in ) ) \
3322 YY_FATAL_ERROR( "input in flex scanner failed" ); \
3328 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
3330 if( errno != EINTR) \
3332 YY_FATAL_ERROR( "input in flex scanner failed" ); \
3336 clearerr(surf_parse_in); \
3343 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3344 * we don't want an extra ';' after the "return" because that will cause
3345 * some compilers to complain about unreachable statements.
3348 #define yyterminate() return YY_NULL
3351 /* Number of entries by which start-condition stack grows. */
3352 #ifndef YY_START_STACK_INCR
3353 #define YY_START_STACK_INCR 25
3356 /* Report a fatal error. */
3357 #ifndef YY_FATAL_ERROR
3358 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
3361 /* end tables serialization structures and prototypes */
3363 /* Default declaration of generated scanner - a define so the user can
3364 * easily add parameters.
3367 #define YY_DECL_IS_OURS 1
3369 extern int surf_parse_lex (void);
3371 #define YY_DECL int surf_parse_lex (void)
3372 #endif /* !YY_DECL */
3374 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
3377 #ifndef YY_USER_ACTION
3378 #define YY_USER_ACTION
3381 /* Code executed at the end of each rule. */
3383 #define YY_BREAK break;
3386 #define YY_RULE_SETUP \
3389 /** The main scanner function which does all the work.
3393 register yy_state_type yy_current_state;
3394 register char *yy_cp, *yy_bp;
3395 register int yy_act;
3397 /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
3399 reset_surfxml_parse_err_msg();
3400 surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
3401 assert(surfxml_bufferstack);
3405 for (i = 0; i < blimit; i++) {
3406 surfxml_bufferstack[i] = '\377';
3410 surfxml_bufferstack[0] = '\0';
3411 indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
3417 surfxml_bufferliteral('\0', &bnext, "0.0");
3418 surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3419 surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3420 surfxml_bufferliteral('\0', &bnext, "1.0");
3421 surfxml_bufferliteral('\0', &bnext, "1.0");
3422 surfxml_bufferliteral('\0', &bnext, "1.0");
3423 surfxml_bufferliteral('\0', &bnext, "1.0");
3424 surfxml_bufferliteral('\0', &bnext, "-1.0");
3425 surfxml_bufferliteral('\0', &bnext, "0.0");
3426 surfxml_bufferliteral('\0', &bnext, "0.0");
3427 surfxml_bufferliteral('\0', &bnext, "0.0");
3428 surfxml_bufferliteral('\0', &bnext, "0.0");
3429 surfxml_bufferliteral('\0', &bnext, "0.0");
3430 surfxml_bufferliteral('\0', &bnext, "-1.0");
3431 surfxml_bufferliteral('\0', &bnext, "-1.0");
3432 if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
3433 surfxml_statenames[PROLOG] = NULL;
3434 surfxml_statenames[DOCTYPE] = NULL;
3435 surfxml_statenames[EPILOG] = NULL;
3436 surfxml_statenames[INCOMMENT] = NULL;
3437 surfxml_statenames[INPI] = NULL;
3438 surfxml_statenames[VALUE1] = NULL;
3439 surfxml_statenames[VALUE2] = NULL;
3440 surfxml_statenames[CDATA] = NULL;
3441 surfxml_statenames[ROOT_surfxml_platform] = NULL;
3442 surfxml_statenames[AL_surfxml_platform] = NULL;
3443 surfxml_statenames[S_surfxml_platform] = "platform";
3444 surfxml_statenames[S_surfxml_platform_1] = "platform";
3445 surfxml_statenames[S_surfxml_platform_2] = "platform";
3446 surfxml_statenames[S_surfxml_platform_3] = "platform";
3447 surfxml_statenames[S_surfxml_platform_4] = "platform";
3448 surfxml_statenames[S_surfxml_platform_5] = "platform";
3449 surfxml_statenames[E_surfxml_platform] = "platform";
3450 surfxml_statenames[AL_surfxml_include] = NULL;
3451 surfxml_statenames[E_surfxml_include] = "include";
3452 surfxml_statenames[AL_surfxml_trace] = NULL;
3453 surfxml_statenames[IN_trace] = "trace";
3454 surfxml_statenames[AL_surfxml_random] = NULL;
3455 surfxml_statenames[S_surfxml_random] = "random";
3456 surfxml_statenames[S_surfxml_random_1] = "random";
3457 surfxml_statenames[S_surfxml_random_2] = "random";
3458 surfxml_statenames[E_surfxml_random] = "random";
3459 surfxml_statenames[AL_surfxml_trace_c_connect] = NULL;
3460 surfxml_statenames[E_surfxml_trace_c_connect] = "trace:connect";
3461 surfxml_statenames[AL_surfxml_set] = NULL;
3462 surfxml_statenames[E_surfxml_set] = "set";
3463 surfxml_statenames[AL_surfxml_foreach] = NULL;
3464 surfxml_statenames[S_surfxml_foreach] = "foreach";
3465 surfxml_statenames[S_surfxml_foreach_1] = "foreach";
3466 surfxml_statenames[E_surfxml_foreach] = "foreach";
3467 surfxml_statenames[AL_surfxml_host] = NULL;
3468 surfxml_statenames[S_surfxml_host] = "host";
3469 surfxml_statenames[S_surfxml_host_1] = "host";
3470 surfxml_statenames[S_surfxml_host_2] = "host";
3471 surfxml_statenames[E_surfxml_host] = "host";
3472 surfxml_statenames[AL_surfxml_prop] = NULL;
3473 surfxml_statenames[E_surfxml_prop] = "prop";
3474 surfxml_statenames[AL_surfxml_cluster] = NULL;
3475 surfxml_statenames[E_surfxml_cluster] = "cluster";
3476 surfxml_statenames[AL_surfxml_router] = NULL;
3477 surfxml_statenames[E_surfxml_router] = "router";
3478 surfxml_statenames[AL_surfxml_link] = NULL;
3479 surfxml_statenames[S_surfxml_link] = "link";
3480 surfxml_statenames[S_surfxml_link_1] = "link";
3481 surfxml_statenames[S_surfxml_link_2] = "link";
3482 surfxml_statenames[E_surfxml_link] = "link";
3483 surfxml_statenames[AL_surfxml_route_c_multi] = NULL;
3484 surfxml_statenames[S_surfxml_route_c_multi] = "route:multi";
3485 surfxml_statenames[S_surfxml_route_c_multi_1] = "route:multi";
3486 surfxml_statenames[S_surfxml_route_c_multi_2] = "route:multi";
3487 surfxml_statenames[E_surfxml_route_c_multi] = "route:multi";
3488 surfxml_statenames[AL_surfxml_route] = NULL;
3489 surfxml_statenames[S_surfxml_route] = "route";
3490 surfxml_statenames[S_surfxml_route_1] = "route";
3491 surfxml_statenames[S_surfxml_route_2] = "route";
3492 surfxml_statenames[E_surfxml_route] = "route";
3493 surfxml_statenames[AL_surfxml_link_c_ctn] = NULL;
3494 surfxml_statenames[E_surfxml_link_c_ctn] = "link:ctn";
3495 surfxml_statenames[AL_surfxml_process] = NULL;
3496 surfxml_statenames[S_surfxml_process] = "process";
3497 surfxml_statenames[S_surfxml_process_1] = "process";
3498 surfxml_statenames[S_surfxml_process_2] = "process";
3499 surfxml_statenames[E_surfxml_process] = "process";
3500 surfxml_statenames[AL_surfxml_argument] = NULL;
3501 surfxml_statenames[E_surfxml_argument] = "argument";
3504 /* COMMENTS and PIs: handled uniformly for efficiency. */
3515 (yy_start) = 1; /* first start state */
3517 if ( ! surf_parse_in )
3518 surf_parse_in = stdin;
3520 if ( ! surf_parse_out )
3521 surf_parse_out = stdout;
3523 if ( ! YY_CURRENT_BUFFER ) {
3524 surf_parse_ensure_buffer_stack ();
3525 YY_CURRENT_BUFFER_LVALUE =
3526 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
3529 surf_parse__load_buffer_state( );
3532 while ( 1 ) /* loops until end-of-file is reached */
3534 yy_cp = (yy_c_buf_p);
3536 /* Support of surf_parse_text. */
3537 *yy_cp = (yy_hold_char);
3539 /* yy_bp points to the position in yy_ch_buf of the start of
3544 yy_current_state = (yy_start);
3548 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
3549 if ( yy_accept[yy_current_state] )
3551 (yy_last_accepting_state) = yy_current_state;
3552 (yy_last_accepting_cpos) = yy_cp;
3554 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3556 yy_current_state = (int) yy_def[yy_current_state];
3557 if ( yy_current_state >= 2047 )
3558 yy_c = yy_meta[(unsigned int) yy_c];
3560 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3563 while ( yy_base[yy_current_state] != 7140 );
3566 yy_act = yy_accept[yy_current_state];
3568 { /* have to back up */
3569 yy_cp = (yy_last_accepting_cpos);
3570 yy_current_state = (yy_last_accepting_state);
3571 yy_act = yy_accept[yy_current_state];
3574 YY_DO_BEFORE_ACTION;
3576 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
3579 for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
3580 if ( surf_parse_text[yyl] == '\n' )
3582 surf_parse_lineno++;
3586 do_action: /* This label is used only to access EOF actions. */
3589 { /* beginning of action switch */
3590 case 0: /* must back up */
3591 /* undo the effects of YY_DO_BEFORE_ACTION */
3592 *yy_cp = (yy_hold_char);
3593 yy_cp = (yy_last_accepting_cpos);
3594 yy_current_state = (yy_last_accepting_state);
3595 goto yy_find_action;
3613 /* rule 6 can match eol */
3617 case YY_STATE_EOF(INCOMMENT):
3618 FAIL("EOF in comment.");
3627 /* rule 9 can match eol */
3631 case YY_STATE_EOF(INPI):
3632 FAIL("EOF in PI (processing instruction).");
3635 /* SPACES: skipped uniformly */
3637 /* rule 10 can match eol */
3641 /* PROLOG: determine root element and process it. */
3644 /* rule 11 can match eol */
3649 /* rule 12 can match eol */
3651 FAIL("Bad declaration %s.",surf_parse_text);
3655 /* rule 13 can match eol */
3657 SET(ROOT_surfxml_platform);
3660 /* rule 14 can match eol */
3662 FAIL("Bad declaration %s.",surf_parse_text);
3666 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
3668 case YY_STATE_EOF(PROLOG):
3669 case YY_STATE_EOF(DOCTYPE):
3670 FAIL("EOF in prolog.");
3673 /* RULES DERIVED FROM DTD. */
3674 /* <!-- Small DTD for SURF based tools. --> */
3676 /* rule 16 can match eol */
3678 FAIL("Starting tag <platform> is not allowed here.");
3681 /* rule 17 can match eol */
3684 AX_surfxml_platform_version = 1;
3685 AX_surfxml_platform_xmlns_c_link = 5;
3686 AX_surfxml_platform_xmlns_c_route = 37;
3687 ENTER(AL_surfxml_platform); pushbuffer(0);
3692 /* rule 18 can match eol */
3694 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
3697 /* rule 19 can match eol */
3699 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
3702 /* rule 20 can match eol */
3704 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_xmlns_c_link);
3707 /* rule 21 can match eol */
3709 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_xmlns_c_link);
3712 /* rule 22 can match eol */
3714 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_xmlns_c_route);
3717 /* rule 23 can match eol */
3719 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_xmlns_c_route);
3724 LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
3730 LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
3732 case ROOT_surfxml_platform: SET(EPILOG); break;
3738 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
3742 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
3744 case YY_STATE_EOF(AL_surfxml_platform):
3745 FAIL("EOF in attribute list of `platform' element.");
3749 /* rule 28 can match eol */
3753 ETag_surfxml_platform();
3754 popbuffer(); /* attribute */
3756 case ROOT_surfxml_platform: SET(EPILOG); break;
3761 /* rule 29 can match eol */
3763 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
3767 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
3769 case YY_STATE_EOF(S_surfxml_platform_5):
3770 case YY_STATE_EOF(S_surfxml_platform_1):
3771 case YY_STATE_EOF(S_surfxml_platform_3):
3772 case YY_STATE_EOF(S_surfxml_platform):
3773 case YY_STATE_EOF(E_surfxml_platform):
3774 FAIL("Premature EOF: `</platform>' expected.");
3778 /* rule 31 can match eol */
3780 FAIL("Starting tag <include> is not allowed here.");
3783 /* rule 32 can match eol */
3786 AX_surfxml_include_file = 0;
3787 ENTER(AL_surfxml_include); pushbuffer(0);
3792 /* rule 33 can match eol */
3794 ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
3797 /* rule 34 can match eol */
3799 ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
3804 if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
3805 LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(E_surfxml_include);
3811 if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
3812 LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
3814 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
3815 case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
3821 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
3825 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
3827 case YY_STATE_EOF(AL_surfxml_include):
3828 FAIL("EOF in attribute list of `include' element.");
3832 /* rule 39 can match eol */
3836 ETag_surfxml_include();
3837 popbuffer(); /* attribute */
3839 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
3840 case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
3845 /* rule 40 can match eol */
3847 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
3851 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
3853 case YY_STATE_EOF(E_surfxml_include):
3854 FAIL("Premature EOF: `</include>' expected.");
3858 /* rule 42 can match eol */
3860 FAIL("Starting tag <trace> is not allowed here.");
3863 /* rule 43 can match eol */
3866 AX_surfxml_trace_id = 0;
3867 AX_surfxml_trace_file = 0;
3868 AX_surfxml_trace_periodicity = 0;
3869 ENTER(AL_surfxml_trace); pushbuffer(0);
3874 /* rule 44 can match eol */
3876 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
3879 /* rule 45 can match eol */
3881 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
3884 /* rule 46 can match eol */
3886 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
3889 /* rule 47 can match eol */
3891 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
3894 /* rule 48 can match eol */
3896 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
3899 /* rule 49 can match eol */
3901 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
3906 if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
3907 if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
3908 LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
3914 if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
3915 if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
3916 LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
3918 case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
3924 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
3928 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
3930 case YY_STATE_EOF(AL_surfxml_trace):
3931 FAIL("EOF in attribute list of `trace' element.");
3935 /* rule 54 can match eol */
3940 ETag_surfxml_trace();
3941 surfxml_pcdata_ix = popbuffer();
3942 popbuffer(); /* attribute */
3944 case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
3949 /* rule 55 can match eol */
3951 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
3953 case YY_STATE_EOF(IN_trace):
3954 FAIL("Premature EOF: `</trace>' expected.");
3958 /* rule 56 can match eol */
3960 FAIL("Starting tag <random> is not allowed here.");
3963 /* rule 57 can match eol */
3966 AX_surfxml_random_id = 0;
3967 AX_surfxml_random_min = 0;
3968 AX_surfxml_random_max = 0;
3969 AX_surfxml_random_mean = 0;
3970 AX_surfxml_random_std_deviation = 0;
3971 AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
3972 ENTER(AL_surfxml_random); pushbuffer(0);
3977 /* rule 58 can match eol */
3979 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
3982 /* rule 59 can match eol */
3984 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
3987 /* rule 60 can match eol */
3989 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
3992 /* rule 61 can match eol */
3994 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
3997 /* rule 62 can match eol */
3999 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
4002 /* rule 63 can match eol */
4004 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
4007 /* rule 64 can match eol */
4009 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
4012 /* rule 65 can match eol */
4014 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
4017 /* rule 66 can match eol */
4019 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std_deviation);
4022 /* rule 67 can match eol */
4024 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std_deviation);
4027 /* rule 68 can match eol */
4029 /* rule 69 can match eol */
4031 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
4034 /* rule 70 can match eol */
4036 /* rule 71 can match eol */
4038 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
4043 if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
4044 if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
4045 if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
4046 if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
4047 if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
4048 LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
4054 if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
4055 if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
4056 if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
4057 if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
4058 if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
4059 LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
4061 case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
4067 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
4071 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
4073 case YY_STATE_EOF(AL_surfxml_random):
4074 FAIL("EOF in attribute list of `random' element.");
4078 /* rule 76 can match eol */
4082 ETag_surfxml_random();
4083 popbuffer(); /* attribute */
4085 case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
4090 /* rule 77 can match eol */
4092 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
4096 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
4098 case YY_STATE_EOF(S_surfxml_random_2):
4099 case YY_STATE_EOF(S_surfxml_random):
4100 case YY_STATE_EOF(E_surfxml_random):
4101 FAIL("Premature EOF: `</random>' expected.");
4105 /* rule 79 can match eol */
4107 FAIL("Starting tag <trace:connect> is not allowed here.");
4110 /* rule 80 can match eol */
4113 AX_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_AVAILABILITY;
4114 AX_surfxml_trace_c_connect_trace_id = 0;
4115 AX_surfxml_trace_c_connect_element = A_surfxml_trace_c_connect_element_HOST;
4116 AX_surfxml_trace_c_connect_connector_id = 0;
4117 ENTER(AL_surfxml_trace_c_connect); pushbuffer(0);
4122 /* rule 81 can match eol */
4124 /* rule 82 can match eol */
4126 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_AVAILABILITY;
4129 /* rule 83 can match eol */
4131 /* rule 84 can match eol */
4133 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_BANDWIDTH;
4136 /* rule 85 can match eol */
4138 /* rule 86 can match eol */
4140 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_LATENCY;
4143 /* rule 87 can match eol */
4145 /* rule 88 can match eol */
4147 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_POWER;
4150 /* rule 89 can match eol */
4152 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_c_connect_trace_id);
4155 /* rule 90 can match eol */
4157 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_c_connect_trace_id);
4160 /* rule 91 can match eol */
4162 /* rule 92 can match eol */
4164 A_surfxml_trace_c_connect_element = A_surfxml_trace_c_connect_element_HOST;
4167 /* rule 93 can match eol */
4169 /* rule 94 can match eol */
4171 A_surfxml_trace_c_connect_element = A_surfxml_trace_c_connect_element_LINK;
4174 /* rule 95 can match eol */
4176 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_c_connect_connector_id);
4179 /* rule 96 can match eol */
4181 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_c_connect_connector_id);
4186 if (!AX_surfxml_trace_c_connect_trace_id) FAIL("Required attribute `trace_id' not set for `trace:connect' element.");
4187 if (!AX_surfxml_trace_c_connect_connector_id) FAIL("Required attribute `connector_id' not set for `trace:connect' element.");
4188 LEAVE; STag_surfxml_trace_c_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_c_connect);
4194 if (!AX_surfxml_trace_c_connect_trace_id) FAIL("Required attribute `trace_id' not set for `trace:connect' element.");
4195 if (!AX_surfxml_trace_c_connect_connector_id) FAIL("Required attribute `connector_id' not set for `trace:connect' element.");
4196 LEAVE; STag_surfxml_trace_c_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_c_connect(); popbuffer(); /* attribute */
4198 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
4199 case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
4205 FAIL("Unexpected character `%c' in attribute list of trace:connect element.", surf_parse_text[0]);
4209 FAIL("Bad attribute `%s' in `trace:connect' element start tag.",surf_parse_text);
4211 case YY_STATE_EOF(AL_surfxml_trace_c_connect):
4212 FAIL("EOF in attribute list of `trace:connect' element.");
4216 /* rule 101 can match eol */
4220 ETag_surfxml_trace_c_connect();
4221 popbuffer(); /* attribute */
4223 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
4224 case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
4229 /* rule 102 can match eol */
4231 FAIL("Unexpected end-tag `%s': `</trace:connect>' expected.",surf_parse_text);
4235 FAIL("Unexpected character `%c': `</trace:connect>' expected.",surf_parse_text[0]);
4237 case YY_STATE_EOF(E_surfxml_trace_c_connect):
4238 FAIL("Premature EOF: `</trace:connect>' expected.");
4242 /* rule 104 can match eol */
4244 FAIL("Starting tag <set> is not allowed here.");
4247 /* rule 105 can match eol */
4250 AX_surfxml_set_id = 0;
4251 AX_surfxml_set_prefix = 0;
4252 AX_surfxml_set_suffix = 0;
4253 AX_surfxml_set_radical = 0;
4254 ENTER(AL_surfxml_set); pushbuffer(0);
4259 /* rule 106 can match eol */
4261 ENTER(VALUE1); BUFFERSET(AX_surfxml_set_id);
4264 /* rule 107 can match eol */
4266 ENTER(VALUE2); BUFFERSET(AX_surfxml_set_id);
4269 /* rule 108 can match eol */
4271 ENTER(VALUE1); BUFFERSET(AX_surfxml_set_prefix);
4274 /* rule 109 can match eol */
4276 ENTER(VALUE2); BUFFERSET(AX_surfxml_set_prefix);
4279 /* rule 110 can match eol */
4281 ENTER(VALUE1); BUFFERSET(AX_surfxml_set_suffix);
4284 /* rule 111 can match eol */
4286 ENTER(VALUE2); BUFFERSET(AX_surfxml_set_suffix);
4289 /* rule 112 can match eol */
4291 ENTER(VALUE1); BUFFERSET(AX_surfxml_set_radical);
4294 /* rule 113 can match eol */
4296 ENTER(VALUE2); BUFFERSET(AX_surfxml_set_radical);
4301 if (!AX_surfxml_set_id) FAIL("Required attribute `id' not set for `set' element.");
4302 if (!AX_surfxml_set_prefix) FAIL("Required attribute `prefix' not set for `set' element.");
4303 if (!AX_surfxml_set_suffix) FAIL("Required attribute `suffix' not set for `set' element.");
4304 if (!AX_surfxml_set_radical) FAIL("Required attribute `radical' not set for `set' element.");
4305 LEAVE; STag_surfxml_set();surfxml_pcdata_ix = 0; ENTER(E_surfxml_set);
4311 if (!AX_surfxml_set_id) FAIL("Required attribute `id' not set for `set' element.");
4312 if (!AX_surfxml_set_prefix) FAIL("Required attribute `prefix' not set for `set' element.");
4313 if (!AX_surfxml_set_suffix) FAIL("Required attribute `suffix' not set for `set' element.");
4314 if (!AX_surfxml_set_radical) FAIL("Required attribute `radical' not set for `set' element.");
4315 LEAVE; STag_surfxml_set(); surfxml_pcdata_ix = 0; ETag_surfxml_set(); popbuffer(); /* attribute */
4317 case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
4323 FAIL("Unexpected character `%c' in attribute list of set element.", surf_parse_text[0]);
4327 FAIL("Bad attribute `%s' in `set' element start tag.",surf_parse_text);
4329 case YY_STATE_EOF(AL_surfxml_set):
4330 FAIL("EOF in attribute list of `set' element.");
4334 /* rule 118 can match eol */
4339 popbuffer(); /* attribute */
4341 case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
4346 /* rule 119 can match eol */
4348 FAIL("Unexpected end-tag `%s': `</set>' expected.",surf_parse_text);
4352 FAIL("Unexpected character `%c': `</set>' expected.",surf_parse_text[0]);
4354 case YY_STATE_EOF(E_surfxml_set):
4355 FAIL("Premature EOF: `</set>' expected.");
4359 /* rule 121 can match eol */
4361 FAIL("Starting tag <foreach> is not allowed here.");
4364 /* rule 122 can match eol */
4367 AX_surfxml_foreach_set_id = 0;
4368 ENTER(AL_surfxml_foreach); pushbuffer(0);
4373 /* rule 123 can match eol */
4375 ENTER(VALUE1); BUFFERSET(AX_surfxml_foreach_set_id);
4378 /* rule 124 can match eol */
4380 ENTER(VALUE2); BUFFERSET(AX_surfxml_foreach_set_id);
4385 if (!AX_surfxml_foreach_set_id) FAIL("Required attribute `set_id' not set for `foreach' element.");
4386 LEAVE; STag_surfxml_foreach();surfxml_pcdata_ix = 0; ENTER(S_surfxml_foreach);
4391 FAIL("`foreach' element cannot be empty.");
4395 FAIL("Unexpected character `%c' in attribute list of foreach element.", surf_parse_text[0]);
4399 FAIL("Bad attribute `%s' in `foreach' element start tag.",surf_parse_text);
4401 case YY_STATE_EOF(AL_surfxml_foreach):
4402 FAIL("EOF in attribute list of `foreach' element.");
4406 /* rule 129 can match eol */
4410 ETag_surfxml_foreach();
4411 popbuffer(); /* attribute */
4413 case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
4418 /* rule 130 can match eol */
4420 FAIL("Unexpected end-tag `%s': `</foreach>' expected.",surf_parse_text);
4424 FAIL("Unexpected character `%c': `</foreach>' expected.",surf_parse_text[0]);
4426 case YY_STATE_EOF(E_surfxml_foreach):
4427 FAIL("Premature EOF: `</foreach>' expected.");
4431 /* rule 132 can match eol */
4433 FAIL("Starting tag <host> is not allowed here.");
4436 /* rule 133 can match eol */
4439 AX_surfxml_host_id = 0;
4440 AX_surfxml_host_power = 0;
4441 AX_surfxml_host_availability = 69;
4442 AX_surfxml_host_availability_file = 0;
4443 AX_surfxml_host_state = A_surfxml_host_state_ON;
4444 AX_surfxml_host_state_file = 0;
4445 AX_surfxml_host_interference_send = 73;
4446 AX_surfxml_host_interference_recv = 77;
4447 AX_surfxml_host_interference_send_recv = 81;
4448 AX_surfxml_host_max_outgoing_rate = 85;
4449 ENTER(AL_surfxml_host); pushbuffer(0);
4454 /* rule 134 can match eol */
4456 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
4459 /* rule 135 can match eol */
4461 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
4464 /* rule 136 can match eol */
4466 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
4469 /* rule 137 can match eol */
4471 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
4474 /* rule 138 can match eol */
4476 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
4479 /* rule 139 can match eol */
4481 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
4484 /* rule 140 can match eol */
4486 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability_file);
4489 /* rule 141 can match eol */
4491 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability_file);
4494 /* rule 142 can match eol */
4496 /* rule 143 can match eol */
4498 A_surfxml_host_state = A_surfxml_host_state_ON;
4501 /* rule 144 can match eol */
4503 /* rule 145 can match eol */
4505 A_surfxml_host_state = A_surfxml_host_state_OFF;
4508 /* rule 146 can match eol */
4510 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state_file);
4513 /* rule 147 can match eol */
4515 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state_file);
4518 /* rule 148 can match eol */
4520 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_interference_send);
4523 /* rule 149 can match eol */
4525 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_interference_send);
4528 /* rule 150 can match eol */
4530 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_interference_recv);
4533 /* rule 151 can match eol */
4535 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_interference_recv);
4538 /* rule 152 can match eol */
4540 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_interference_send_recv);
4543 /* rule 153 can match eol */
4545 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_interference_send_recv);
4548 /* rule 154 can match eol */
4550 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_max_outgoing_rate);
4553 /* rule 155 can match eol */
4555 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_max_outgoing_rate);
4560 if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
4561 if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
4562 LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
4568 if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
4569 if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
4570 LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
4572 case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
4573 case S_surfxml_foreach: SET(S_surfxml_foreach_1); break;
4579 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
4583 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
4585 case YY_STATE_EOF(AL_surfxml_host):
4586 FAIL("EOF in attribute list of `host' element.");
4590 /* rule 160 can match eol */
4594 ETag_surfxml_host();
4595 popbuffer(); /* attribute */
4597 case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
4598 case S_surfxml_foreach: SET(S_surfxml_foreach_1); break;
4603 /* rule 161 can match eol */
4605 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
4609 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
4611 case YY_STATE_EOF(S_surfxml_host):
4612 case YY_STATE_EOF(E_surfxml_host):
4613 case YY_STATE_EOF(S_surfxml_host_2):
4614 FAIL("Premature EOF: `</host>' expected.");
4618 /* rule 163 can match eol */
4620 FAIL("Starting tag <prop> is not allowed here.");
4623 /* rule 164 can match eol */
4626 AX_surfxml_prop_id = 0;
4627 AX_surfxml_prop_value = 0;
4628 ENTER(AL_surfxml_prop); pushbuffer(0);
4633 /* rule 165 can match eol */
4635 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
4638 /* rule 166 can match eol */
4640 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
4643 /* rule 167 can match eol */
4645 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
4648 /* rule 168 can match eol */
4650 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
4655 if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
4656 if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
4657 LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
4663 if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
4664 if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
4665 LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
4667 case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
4668 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
4669 case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
4670 case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
4676 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
4680 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
4682 case YY_STATE_EOF(AL_surfxml_prop):
4683 FAIL("EOF in attribute list of `prop' element.");
4687 /* rule 173 can match eol */
4691 ETag_surfxml_prop();
4692 popbuffer(); /* attribute */
4694 case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
4695 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
4696 case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
4697 case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
4702 /* rule 174 can match eol */
4704 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
4708 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
4710 case YY_STATE_EOF(E_surfxml_prop):
4711 FAIL("Premature EOF: `</prop>' expected.");
4715 /* rule 176 can match eol */
4717 FAIL("Starting tag <cluster> is not allowed here.");
4720 /* rule 177 can match eol */
4723 AX_surfxml_cluster_id = 0;
4724 AX_surfxml_cluster_prefix = 0;
4725 AX_surfxml_cluster_suffix = 0;
4726 AX_surfxml_cluster_radical = 0;
4727 AX_surfxml_cluster_power = 0;
4728 AX_surfxml_cluster_bw = 0;
4729 AX_surfxml_cluster_lat = 0;
4730 AX_surfxml_cluster_bb_bw = 0;
4731 AX_surfxml_cluster_bb_lat = 0;
4732 ENTER(AL_surfxml_cluster); pushbuffer(0);
4737 /* rule 178 can match eol */
4739 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
4742 /* rule 179 can match eol */
4744 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
4747 /* rule 180 can match eol */
4749 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
4752 /* rule 181 can match eol */
4754 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
4757 /* rule 182 can match eol */
4759 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
4762 /* rule 183 can match eol */
4764 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
4767 /* rule 184 can match eol */
4769 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
4772 /* rule 185 can match eol */
4774 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
4777 /* rule 186 can match eol */
4779 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
4782 /* rule 187 can match eol */
4784 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
4787 /* rule 188 can match eol */
4789 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
4792 /* rule 189 can match eol */
4794 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
4797 /* rule 190 can match eol */
4799 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
4802 /* rule 191 can match eol */
4804 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
4807 /* rule 192 can match eol */
4809 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_bw);
4812 /* rule 193 can match eol */
4814 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_bw);
4817 /* rule 194 can match eol */
4819 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_lat);
4822 /* rule 195 can match eol */
4824 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_lat);
4829 if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
4830 if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
4831 if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
4832 if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
4833 if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
4834 if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
4835 if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
4836 if (!AX_surfxml_cluster_bb_bw) FAIL("Required attribute `bb_bw' not set for `cluster' element.");
4837 if (!AX_surfxml_cluster_bb_lat) FAIL("Required attribute `bb_lat' not set for `cluster' element.");
4838 LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
4844 if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
4845 if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
4846 if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
4847 if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
4848 if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
4849 if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
4850 if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
4851 if (!AX_surfxml_cluster_bb_bw) FAIL("Required attribute `bb_bw' not set for `cluster' element.");
4852 if (!AX_surfxml_cluster_bb_lat) FAIL("Required attribute `bb_lat' not set for `cluster' element.");
4853 LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
4855 case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
4861 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
4865 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
4867 case YY_STATE_EOF(AL_surfxml_cluster):
4868 FAIL("EOF in attribute list of `cluster' element.");
4872 /* rule 200 can match eol */
4876 ETag_surfxml_cluster();
4877 popbuffer(); /* attribute */
4879 case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
4884 /* rule 201 can match eol */
4886 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
4890 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
4892 case YY_STATE_EOF(E_surfxml_cluster):
4893 FAIL("Premature EOF: `</cluster>' expected.");
4897 /* rule 203 can match eol */
4899 FAIL("Starting tag <router> is not allowed here.");
4902 /* rule 204 can match eol */
4905 AX_surfxml_router_id = 0;
4906 ENTER(AL_surfxml_router); pushbuffer(0);
4911 /* rule 205 can match eol */
4913 ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
4916 /* rule 206 can match eol */
4918 ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
4923 if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
4924 LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
4930 if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
4931 LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
4933 case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
4939 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
4943 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
4945 case YY_STATE_EOF(AL_surfxml_router):
4946 FAIL("EOF in attribute list of `router' element.");
4950 /* rule 211 can match eol */
4954 ETag_surfxml_router();
4955 popbuffer(); /* attribute */
4957 case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
4962 /* rule 212 can match eol */
4964 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
4968 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
4970 case YY_STATE_EOF(E_surfxml_router):
4971 FAIL("Premature EOF: `</router>' expected.");
4975 /* rule 214 can match eol */
4977 FAIL("Starting tag <link> is not allowed here.");
4980 /* rule 215 can match eol */
4983 AX_surfxml_link_id = 0;
4984 AX_surfxml_link_bandwidth = 0;
4985 AX_surfxml_link_bandwidth_file = 0;
4986 AX_surfxml_link_latency = 90;
4987 AX_surfxml_link_latency_file = 0;
4988 AX_surfxml_link_state = A_surfxml_link_state_ON;
4989 AX_surfxml_link_state_file = 0;
4990 AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
4991 ENTER(AL_surfxml_link); pushbuffer(0);
4996 /* rule 216 can match eol */
4998 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
5001 /* rule 217 can match eol */
5003 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
5006 /* rule 218 can match eol */
5008 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
5011 /* rule 219 can match eol */
5013 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
5016 /* rule 220 can match eol */
5018 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth_file);
5021 /* rule 221 can match eol */
5023 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth_file);
5026 /* rule 222 can match eol */
5028 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
5031 /* rule 223 can match eol */
5033 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
5036 /* rule 224 can match eol */
5038 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency_file);
5041 /* rule 225 can match eol */
5043 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency_file);
5046 /* rule 226 can match eol */
5048 /* rule 227 can match eol */
5050 A_surfxml_link_state = A_surfxml_link_state_ON;
5053 /* rule 228 can match eol */
5055 /* rule 229 can match eol */
5057 A_surfxml_link_state = A_surfxml_link_state_OFF;
5060 /* rule 230 can match eol */
5062 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state_file);
5065 /* rule 231 can match eol */
5067 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state_file);
5070 /* rule 232 can match eol */
5072 /* rule 233 can match eol */
5074 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
5077 /* rule 234 can match eol */
5079 /* rule 235 can match eol */
5081 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
5086 if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
5087 if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
5088 LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
5094 if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
5095 if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
5096 LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
5098 case S_surfxml_foreach: case S_surfxml_foreach_1: SET(E_surfxml_foreach); break;
5099 case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5105 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
5109 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
5111 case YY_STATE_EOF(AL_surfxml_link):
5112 FAIL("EOF in attribute list of `link' element.");
5116 /* rule 240 can match eol */
5120 ETag_surfxml_link();
5121 popbuffer(); /* attribute */
5123 case S_surfxml_foreach: case S_surfxml_foreach_1: SET(E_surfxml_foreach); break;
5124 case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5129 /* rule 241 can match eol */
5131 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
5135 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
5137 case YY_STATE_EOF(S_surfxml_link_2):
5138 case YY_STATE_EOF(E_surfxml_link):
5139 case YY_STATE_EOF(S_surfxml_link):
5140 FAIL("Premature EOF: `</link>' expected.");
5144 /* rule 243 can match eol */
5146 FAIL("Starting tag <route:multi> is not allowed here.");
5149 /* rule 244 can match eol */
5152 AX_surfxml_route_c_multi_src = 0;
5153 AX_surfxml_route_c_multi_dst = 0;
5154 AX_surfxml_route_c_multi_action = A_surfxml_route_c_multi_action_POSTPEND;
5155 AX_surfxml_route_c_multi_symmetric = A_surfxml_route_c_multi_symmetric_YES;
5156 ENTER(AL_surfxml_route_c_multi); pushbuffer(0);
5161 /* rule 245 can match eol */
5163 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_c_multi_src);
5166 /* rule 246 can match eol */
5168 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_c_multi_src);
5171 /* rule 247 can match eol */
5173 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_c_multi_dst);
5176 /* rule 248 can match eol */
5178 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_c_multi_dst);
5181 /* rule 249 can match eol */
5183 /* rule 250 can match eol */
5185 A_surfxml_route_c_multi_action = A_surfxml_route_c_multi_action_POSTPEND;
5188 /* rule 251 can match eol */
5190 /* rule 252 can match eol */
5192 A_surfxml_route_c_multi_action = A_surfxml_route_c_multi_action_PREPEND;
5195 /* rule 253 can match eol */
5197 /* rule 254 can match eol */
5199 A_surfxml_route_c_multi_action = A_surfxml_route_c_multi_action_OVERRIDE;
5202 /* rule 255 can match eol */
5204 /* rule 256 can match eol */
5206 A_surfxml_route_c_multi_symmetric = A_surfxml_route_c_multi_symmetric_YES;
5209 /* rule 257 can match eol */
5211 /* rule 258 can match eol */
5213 A_surfxml_route_c_multi_symmetric = A_surfxml_route_c_multi_symmetric_NO;
5218 if (!AX_surfxml_route_c_multi_src) FAIL("Required attribute `src' not set for `route:multi' element.");
5219 if (!AX_surfxml_route_c_multi_dst) FAIL("Required attribute `dst' not set for `route:multi' element.");
5220 LEAVE; STag_surfxml_route_c_multi();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route_c_multi);
5225 FAIL("`route:multi' element cannot be empty.");
5229 FAIL("Unexpected character `%c' in attribute list of route:multi element.", surf_parse_text[0]);
5233 FAIL("Bad attribute `%s' in `route:multi' element start tag.",surf_parse_text);
5235 case YY_STATE_EOF(AL_surfxml_route_c_multi):
5236 FAIL("EOF in attribute list of `route:multi' element.");
5240 /* rule 263 can match eol */
5244 ETag_surfxml_route_c_multi();
5245 popbuffer(); /* attribute */
5247 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
5252 /* rule 264 can match eol */
5254 FAIL("Unexpected end-tag `%s': `</route:multi>' expected.",surf_parse_text);
5258 FAIL("Unexpected character `%c': `</route:multi>' expected.",surf_parse_text[0]);
5260 case YY_STATE_EOF(S_surfxml_route_c_multi_2):
5261 case YY_STATE_EOF(E_surfxml_route_c_multi):
5262 FAIL("Premature EOF: `</route:multi>' expected.");
5266 /* rule 266 can match eol */
5268 FAIL("Starting tag <route> is not allowed here.");
5271 /* rule 267 can match eol */
5274 AX_surfxml_route_src = 0;
5275 AX_surfxml_route_dst = 0;
5276 AX_surfxml_route_impact_on_src = 94;
5277 AX_surfxml_route_impact_on_dst = 98;
5278 AX_surfxml_route_impact_on_src_with_other_recv = 102;
5279 AX_surfxml_route_impact_on_dst_with_other_send = 106;
5280 AX_surfxml_route_action = A_surfxml_route_action_POSTPEND;
5281 ENTER(AL_surfxml_route); pushbuffer(0);
5286 /* rule 268 can match eol */
5288 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
5291 /* rule 269 can match eol */
5293 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
5296 /* rule 270 can match eol */
5298 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
5301 /* rule 271 can match eol */
5303 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
5306 /* rule 272 can match eol */
5308 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_src);
5311 /* rule 273 can match eol */
5313 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_src);
5316 /* rule 274 can match eol */
5318 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_dst);
5321 /* rule 275 can match eol */
5323 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_dst);
5326 /* rule 276 can match eol */
5328 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_src_with_other_recv);
5331 /* rule 277 can match eol */
5333 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_src_with_other_recv);
5336 /* rule 278 can match eol */
5338 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_dst_with_other_send);
5341 /* rule 279 can match eol */
5343 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_dst_with_other_send);
5346 /* rule 280 can match eol */
5348 /* rule 281 can match eol */
5350 A_surfxml_route_action = A_surfxml_route_action_POSTPEND;
5353 /* rule 282 can match eol */
5355 /* rule 283 can match eol */
5357 A_surfxml_route_action = A_surfxml_route_action_PREPEND;
5360 /* rule 284 can match eol */
5362 /* rule 285 can match eol */
5364 A_surfxml_route_action = A_surfxml_route_action_OVERRIDE;
5369 if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
5370 if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
5371 LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
5377 if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
5378 if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
5379 LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
5381 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
5387 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
5391 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
5393 case YY_STATE_EOF(AL_surfxml_route):
5394 FAIL("EOF in attribute list of `route' element.");
5398 /* rule 290 can match eol */
5402 ETag_surfxml_route();
5403 popbuffer(); /* attribute */
5405 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
5410 /* rule 291 can match eol */
5412 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
5416 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
5418 case YY_STATE_EOF(S_surfxml_route):
5419 case YY_STATE_EOF(S_surfxml_route_2):
5420 case YY_STATE_EOF(E_surfxml_route):
5421 FAIL("Premature EOF: `</route>' expected.");
5425 /* rule 293 can match eol */
5427 FAIL("Starting tag <link:ctn> is not allowed here.");
5430 /* rule 294 can match eol */
5433 AX_surfxml_link_c_ctn_id = 0;
5434 ENTER(AL_surfxml_link_c_ctn); pushbuffer(0);
5439 /* rule 295 can match eol */
5441 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_c_ctn_id);
5444 /* rule 296 can match eol */
5446 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_c_ctn_id);
5451 if (!AX_surfxml_link_c_ctn_id) FAIL("Required attribute `id' not set for `link:ctn' element.");
5452 LEAVE; STag_surfxml_link_c_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_c_ctn);
5458 if (!AX_surfxml_link_c_ctn_id) FAIL("Required attribute `id' not set for `link:ctn' element.");
5459 LEAVE; STag_surfxml_link_c_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_c_ctn(); popbuffer(); /* attribute */
5461 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
5462 case S_surfxml_route_c_multi_2: case S_surfxml_route_c_multi_1: case S_surfxml_route_c_multi: SET(S_surfxml_route_c_multi_2); break;
5468 FAIL("Unexpected character `%c' in attribute list of link:ctn element.", surf_parse_text[0]);
5472 FAIL("Bad attribute `%s' in `link:ctn' element start tag.",surf_parse_text);
5474 case YY_STATE_EOF(AL_surfxml_link_c_ctn):
5475 FAIL("EOF in attribute list of `link:ctn' element.");
5479 /* rule 301 can match eol */
5483 ETag_surfxml_link_c_ctn();
5484 popbuffer(); /* attribute */
5486 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
5487 case S_surfxml_route_c_multi_2: case S_surfxml_route_c_multi_1: case S_surfxml_route_c_multi: SET(S_surfxml_route_c_multi_2); break;
5492 /* rule 302 can match eol */
5494 FAIL("Unexpected end-tag `%s': `</link:ctn>' expected.",surf_parse_text);
5498 FAIL("Unexpected character `%c': `</link:ctn>' expected.",surf_parse_text[0]);
5500 case YY_STATE_EOF(E_surfxml_link_c_ctn):
5501 FAIL("Premature EOF: `</link:ctn>' expected.");
5505 /* rule 304 can match eol */
5507 FAIL("Starting tag <process> is not allowed here.");
5510 /* rule 305 can match eol */
5513 AX_surfxml_process_host = 0;
5514 AX_surfxml_process_function = 0;
5515 AX_surfxml_process_start_time = 110;
5516 AX_surfxml_process_kill_time = 115;
5517 ENTER(AL_surfxml_process); pushbuffer(0);
5522 /* rule 306 can match eol */
5524 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
5527 /* rule 307 can match eol */
5529 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
5532 /* rule 308 can match eol */
5534 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
5537 /* rule 309 can match eol */
5539 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
5542 /* rule 310 can match eol */
5544 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start_time);
5547 /* rule 311 can match eol */
5549 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start_time);
5552 /* rule 312 can match eol */
5554 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill_time);
5557 /* rule 313 can match eol */
5559 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill_time);
5564 if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
5565 if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
5566 LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
5572 if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
5573 if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
5574 LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
5576 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
5582 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
5586 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
5588 case YY_STATE_EOF(AL_surfxml_process):
5589 FAIL("EOF in attribute list of `process' element.");
5593 /* rule 318 can match eol */
5597 ETag_surfxml_process();
5598 popbuffer(); /* attribute */
5600 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
5605 /* rule 319 can match eol */
5607 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
5611 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
5613 case YY_STATE_EOF(S_surfxml_process):
5614 case YY_STATE_EOF(E_surfxml_process):
5615 case YY_STATE_EOF(S_surfxml_process_2):
5616 FAIL("Premature EOF: `</process>' expected.");
5620 /* rule 321 can match eol */
5622 FAIL("Starting tag <argument> is not allowed here.");
5625 /* rule 322 can match eol */
5628 AX_surfxml_argument_value = 0;
5629 ENTER(AL_surfxml_argument); pushbuffer(0);
5634 /* rule 323 can match eol */
5636 ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
5639 /* rule 324 can match eol */
5641 ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
5646 if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
5647 LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
5653 if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
5654 LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
5656 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
5662 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
5666 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
5668 case YY_STATE_EOF(AL_surfxml_argument):
5669 FAIL("EOF in attribute list of `argument' element.");
5673 /* rule 329 can match eol */
5677 ETag_surfxml_argument();
5678 popbuffer(); /* attribute */
5680 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
5685 /* rule 330 can match eol */
5687 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
5691 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
5693 case YY_STATE_EOF(E_surfxml_argument):
5694 FAIL("Premature EOF: `</argument>' expected.");
5697 /* EPILOG: after the root element. */
5701 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
5703 case YY_STATE_EOF(EPILOG):
5707 /* CHARACTER DATA. */
5709 /* Non-defined standard entities... */
5730 /* Character entities. */
5733 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
5737 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
5741 /* rule 340 can match eol */
5743 /* rule 341 can match eol */
5745 /* rule 342 can match eol */
5747 /* rule 343 can match eol */
5758 FAIL("Unexpected `]""]>' in character data.");
5765 case YY_STATE_EOF(VALUE1):
5766 FAIL("EOF in literal (\"'\" expected).");
5773 case YY_STATE_EOF(VALUE2):
5774 FAIL("EOF in literal (`\"' expected).");
5778 /* rule 348 can match eol */
5780 BUFFERPUTC(surf_parse_text[0]);
5784 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
5791 /* "]""]" BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
5794 BUFFERPUTC(surf_parse_text[0]);
5796 case YY_STATE_EOF(CDATA):
5797 FAIL("EOF in CDATA section.");
5800 /* Impossible rules to avoid warnings from flex(1). */
5801 /* Ideally, this should be replaced by code in flexml.pl that
5802 generates just the states not covered by other rules. */
5805 /* rule 352 can match eol */
5807 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
5814 case YY_STATE_EOF(INITIAL):
5815 case YY_STATE_EOF(ROOT_surfxml_platform):
5816 case YY_STATE_EOF(S_surfxml_platform_2):
5817 case YY_STATE_EOF(S_surfxml_platform_4):
5818 case YY_STATE_EOF(S_surfxml_random_1):
5819 case YY_STATE_EOF(S_surfxml_foreach):
5820 case YY_STATE_EOF(S_surfxml_foreach_1):
5821 case YY_STATE_EOF(S_surfxml_host_1):
5822 case YY_STATE_EOF(S_surfxml_link_1):
5823 case YY_STATE_EOF(S_surfxml_route_c_multi):
5824 case YY_STATE_EOF(S_surfxml_route_c_multi_1):
5825 case YY_STATE_EOF(S_surfxml_route_1):
5826 case YY_STATE_EOF(S_surfxml_process_1):
5827 case YY_STATE_EOF(IMPOSSIBLE):
5830 case YY_END_OF_BUFFER:
5832 /* Amount of text matched not including the EOB char. */
5833 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
5835 /* Undo the effects of YY_DO_BEFORE_ACTION. */
5836 *yy_cp = (yy_hold_char);
5837 YY_RESTORE_YY_MORE_OFFSET
5839 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
5841 /* We're scanning a new file or input source. It's
5842 * possible that this happened because the user
5843 * just pointed surf_parse_in at a new source and called
5844 * surf_parse_lex(). If so, then we have to assure
5845 * consistency between YY_CURRENT_BUFFER and our
5846 * globals. Here is the right place to do so, because
5847 * this is the first action (other than possibly a
5848 * back-up) that will match for the new input source.
5850 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5851 YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
5852 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
5855 /* Note that here we test for yy_c_buf_p "<=" to the position
5856 * of the first EOB in the buffer, since yy_c_buf_p will
5857 * already have been incremented past the NUL character
5858 * (since all states make transitions on EOB to the
5859 * end-of-buffer state). Contrast this with the test
5862 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5863 { /* This was really a NUL. */
5864 yy_state_type yy_next_state;
5866 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
5868 yy_current_state = yy_get_previous_state( );
5870 /* Okay, we're now positioned to make the NUL
5871 * transition. We couldn't have
5872 * yy_get_previous_state() go ahead and do it
5873 * for us because it doesn't know how to deal
5874 * with the possibility of jamming (and we don't
5875 * want to build jamming into it because then it
5876 * will run more slowly).
5879 yy_next_state = yy_try_NUL_trans( yy_current_state );
5881 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5883 if ( yy_next_state )
5885 /* Consume the NUL. */
5886 yy_cp = ++(yy_c_buf_p);
5887 yy_current_state = yy_next_state;
5893 yy_cp = (yy_c_buf_p);
5894 goto yy_find_action;
5898 else switch ( yy_get_next_buffer( ) )
5900 case EOB_ACT_END_OF_FILE:
5902 (yy_did_buffer_switch_on_eof) = 0;
5904 if ( surf_parse_wrap( ) )
5906 /* Note: because we've taken care in
5907 * yy_get_next_buffer() to have set up
5908 * surf_parse_text, we can now set up
5909 * yy_c_buf_p so that if some total
5910 * hoser (like flex itself) wants to
5911 * call the scanner after we return the
5912 * YY_NULL, it'll still work - another
5913 * YY_NULL will get returned.
5915 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
5917 yy_act = YY_STATE_EOF(YY_START);
5923 if ( ! (yy_did_buffer_switch_on_eof) )
5929 case EOB_ACT_CONTINUE_SCAN:
5931 (yytext_ptr) + yy_amount_of_matched_text;
5933 yy_current_state = yy_get_previous_state( );
5935 yy_cp = (yy_c_buf_p);
5936 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5939 case EOB_ACT_LAST_MATCH:
5941 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
5943 yy_current_state = yy_get_previous_state( );
5945 yy_cp = (yy_c_buf_p);
5946 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5947 goto yy_find_action;
5954 "fatal flex scanner internal error--no action found" );
5955 } /* end of action switch */
5956 } /* end of scanning one token */
5957 } /* end of surf_parse_lex */
5959 /* yy_get_next_buffer - try to read in a new buffer
5961 * Returns a code representing an action:
5962 * EOB_ACT_LAST_MATCH -
5963 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
5964 * EOB_ACT_END_OF_FILE - end of file
5966 static int yy_get_next_buffer (void)
5968 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
5969 register char *source = (yytext_ptr);
5970 register int number_to_move, i;
5973 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
5975 "fatal flex scanner internal error--end of buffer missed" );
5977 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
5978 { /* Don't try to fill the buffer, so this is an EOF. */
5979 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
5981 /* We matched a single character, the EOB, so
5982 * treat this as a final EOF.
5984 return EOB_ACT_END_OF_FILE;
5989 /* We matched some text prior to the EOB, first
5992 return EOB_ACT_LAST_MATCH;
5996 /* Try to read more data. */
5998 /* First move last chars to start of buffer. */
5999 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
6001 for ( i = 0; i < number_to_move; ++i )
6002 *(dest++) = *(source++);
6004 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
6005 /* don't do the read, it's not guaranteed to return an EOF,
6008 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
6013 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
6015 while ( num_to_read <= 0 )
6016 { /* Not enough room in the buffer - grow it. */
6018 /* just a shorter name for the current buffer */
6019 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
6021 int yy_c_buf_p_offset =
6022 (int) ((yy_c_buf_p) - b->yy_ch_buf);
6024 if ( b->yy_is_our_buffer )
6026 int new_size = b->yy_buf_size * 2;
6028 if ( new_size <= 0 )
6029 b->yy_buf_size += b->yy_buf_size / 8;
6031 b->yy_buf_size *= 2;
6033 b->yy_ch_buf = (char *)
6034 /* Include room in for 2 EOB chars. */
6035 surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
6038 /* Can't grow it, we don't own it. */
6041 if ( ! b->yy_ch_buf )
6043 "fatal error - scanner input buffer overflow" );
6045 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
6047 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
6052 if ( num_to_read > YY_READ_BUF_SIZE )
6053 num_to_read = YY_READ_BUF_SIZE;
6055 /* Read in more data. */
6056 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
6057 (yy_n_chars), (size_t) num_to_read );
6059 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6062 if ( (yy_n_chars) == 0 )
6064 if ( number_to_move == YY_MORE_ADJ )
6066 ret_val = EOB_ACT_END_OF_FILE;
6067 surf_parse_restart(surf_parse_in );
6072 ret_val = EOB_ACT_LAST_MATCH;
6073 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
6074 YY_BUFFER_EOF_PENDING;
6079 ret_val = EOB_ACT_CONTINUE_SCAN;
6081 (yy_n_chars) += number_to_move;
6082 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
6083 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
6085 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
6090 /* yy_get_previous_state - get the state just before the EOB char was reached */
6092 static yy_state_type yy_get_previous_state (void)
6094 register yy_state_type yy_current_state;
6095 register char *yy_cp;
6097 yy_current_state = (yy_start);
6099 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
6101 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
6102 if ( yy_accept[yy_current_state] )
6104 (yy_last_accepting_state) = yy_current_state;
6105 (yy_last_accepting_cpos) = yy_cp;
6107 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6109 yy_current_state = (int) yy_def[yy_current_state];
6110 if ( yy_current_state >= 2047 )
6111 yy_c = yy_meta[(unsigned int) yy_c];
6113 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
6116 return yy_current_state;
6119 /* yy_try_NUL_trans - try to make a transition on the NUL character
6122 * next_state = yy_try_NUL_trans( current_state );
6124 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
6126 register int yy_is_jam;
6127 register char *yy_cp = (yy_c_buf_p);
6129 register YY_CHAR yy_c = 1;
6130 if ( yy_accept[yy_current_state] )
6132 (yy_last_accepting_state) = yy_current_state;
6133 (yy_last_accepting_cpos) = yy_cp;
6135 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6137 yy_current_state = (int) yy_def[yy_current_state];
6138 if ( yy_current_state >= 2047 )
6139 yy_c = yy_meta[(unsigned int) yy_c];
6141 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
6142 yy_is_jam = (yy_current_state == 2046);
6144 return yy_is_jam ? 0 : yy_current_state;
6149 static int yyinput (void)
6151 static int input (void)
6157 *(yy_c_buf_p) = (yy_hold_char);
6159 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
6161 /* yy_c_buf_p now points to the character we want to return.
6162 * If this occurs *before* the EOB characters, then it's a
6163 * valid NUL; if not, then we've hit the end of the buffer.
6165 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6166 /* This was really a NUL. */
6167 *(yy_c_buf_p) = '\0';
6170 { /* need more input */
6171 int offset = (yy_c_buf_p) - (yytext_ptr);
6174 switch ( yy_get_next_buffer( ) )
6176 case EOB_ACT_LAST_MATCH:
6177 /* This happens because yy_g_n_b()
6178 * sees that we've accumulated a
6179 * token and flags that we need to
6180 * try matching the token before
6181 * proceeding. But for input(),
6182 * there's no matching to consider.
6183 * So convert the EOB_ACT_LAST_MATCH
6184 * to EOB_ACT_END_OF_FILE.
6187 /* Reset buffer status. */
6188 surf_parse_restart(surf_parse_in );
6192 case EOB_ACT_END_OF_FILE:
6194 if ( surf_parse_wrap( ) )
6197 if ( ! (yy_did_buffer_switch_on_eof) )
6206 case EOB_ACT_CONTINUE_SCAN:
6207 (yy_c_buf_p) = (yytext_ptr) + offset;
6213 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
6214 *(yy_c_buf_p) = '\0'; /* preserve surf_parse_text */
6215 (yy_hold_char) = *++(yy_c_buf_p);
6219 surf_parse_lineno++;
6224 #endif /* ifndef YY_NO_INPUT */
6226 /** Immediately switch to a different input stream.
6227 * @param input_file A readable stream.
6229 * @note This function does not reset the start condition to @c INITIAL .
6231 void surf_parse_restart (FILE * input_file )
6234 if ( ! YY_CURRENT_BUFFER ){
6235 surf_parse_ensure_buffer_stack ();
6236 YY_CURRENT_BUFFER_LVALUE =
6237 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
6240 surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
6241 surf_parse__load_buffer_state( );
6244 /** Switch to a different input buffer.
6245 * @param new_buffer The new input buffer.
6248 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer )
6251 /* TODO. We should be able to replace this entire function body
6253 * surf_parse_pop_buffer_state();
6254 * surf_parse_push_buffer_state(new_buffer);
6256 surf_parse_ensure_buffer_stack ();
6257 if ( YY_CURRENT_BUFFER == new_buffer )
6260 if ( YY_CURRENT_BUFFER )
6262 /* Flush out information for old buffer. */
6263 *(yy_c_buf_p) = (yy_hold_char);
6264 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6265 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6268 YY_CURRENT_BUFFER_LVALUE = new_buffer;
6269 surf_parse__load_buffer_state( );
6271 /* We don't actually know whether we did this switch during
6272 * EOF (surf_parse_wrap()) processing, but the only time this flag
6273 * is looked at is after surf_parse_wrap() is called, so it's safe
6274 * to go ahead and always set it.
6276 (yy_did_buffer_switch_on_eof) = 1;
6279 static void surf_parse__load_buffer_state (void)
6281 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6282 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
6283 surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
6284 (yy_hold_char) = *(yy_c_buf_p);
6287 /** Allocate and initialize an input buffer state.
6288 * @param file A readable stream.
6289 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
6291 * @return the allocated buffer state.
6293 YY_BUFFER_STATE surf_parse__create_buffer (FILE * file, int size )
6297 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
6299 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
6301 b->yy_buf_size = size;
6303 /* yy_ch_buf has to be 2 characters longer than the size given because
6304 * we need to put in 2 end-of-buffer characters.
6306 b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2 );
6307 if ( ! b->yy_ch_buf )
6308 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
6310 b->yy_is_our_buffer = 1;
6312 surf_parse__init_buffer(b,file );
6317 /** Destroy the buffer.
6318 * @param b a buffer created with surf_parse__create_buffer()
6321 void surf_parse__delete_buffer (YY_BUFFER_STATE b )
6327 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
6328 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
6330 if ( b->yy_is_our_buffer )
6331 surf_parse_free((void *) b->yy_ch_buf );
6333 surf_parse_free((void *) b );
6337 extern int isatty (int );
6338 #endif /* __cplusplus */
6340 /* Initializes or reinitializes a buffer.
6341 * This function is sometimes called more than once on the same buffer,
6342 * such as during a surf_parse_restart() or at EOF.
6344 static void surf_parse__init_buffer (YY_BUFFER_STATE b, FILE * file )
6349 surf_parse__flush_buffer(b );
6351 b->yy_input_file = file;
6352 b->yy_fill_buffer = 1;
6354 /* If b is the current buffer, then surf_parse__init_buffer was _probably_
6355 * called from surf_parse_restart() or through yy_get_next_buffer.
6356 * In that case, we don't want to reset the lineno or column.
6358 if (b != YY_CURRENT_BUFFER){
6359 b->yy_bs_lineno = 1;
6360 b->yy_bs_column = 0;
6363 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
6368 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
6369 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
6372 void surf_parse__flush_buffer (YY_BUFFER_STATE b )
6379 /* We always need two end-of-buffer characters. The first causes
6380 * a transition to the end-of-buffer state. The second causes
6381 * a jam in that state.
6383 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
6384 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
6386 b->yy_buf_pos = &b->yy_ch_buf[0];
6389 b->yy_buffer_status = YY_BUFFER_NEW;
6391 if ( b == YY_CURRENT_BUFFER )
6392 surf_parse__load_buffer_state( );
6395 /** Pushes the new state onto the stack. The new state becomes
6396 * the current state. This function will allocate the stack
6398 * @param new_buffer The new state.
6401 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
6403 if (new_buffer == NULL)
6406 surf_parse_ensure_buffer_stack();
6408 /* This block is copied from surf_parse__switch_to_buffer. */
6409 if ( YY_CURRENT_BUFFER )
6411 /* Flush out information for old buffer. */
6412 *(yy_c_buf_p) = (yy_hold_char);
6413 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6414 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6417 /* Only push if top exists. Otherwise, replace top. */
6418 if (YY_CURRENT_BUFFER)
6419 (yy_buffer_stack_top)++;
6420 YY_CURRENT_BUFFER_LVALUE = new_buffer;
6422 /* copied from surf_parse__switch_to_buffer. */
6423 surf_parse__load_buffer_state( );
6424 (yy_did_buffer_switch_on_eof) = 1;
6427 /** Removes and deletes the top of the stack, if present.
6428 * The next element becomes the new top.
6431 void surf_parse_pop_buffer_state (void)
6433 if (!YY_CURRENT_BUFFER)
6436 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
6437 YY_CURRENT_BUFFER_LVALUE = NULL;
6438 if ((yy_buffer_stack_top) > 0)
6439 --(yy_buffer_stack_top);
6441 if (YY_CURRENT_BUFFER) {
6442 surf_parse__load_buffer_state( );
6443 (yy_did_buffer_switch_on_eof) = 1;
6447 /* Allocates the stack if it does not exist.
6448 * Guarantees space for at least one push.
6450 static void surf_parse_ensure_buffer_stack (void)
6454 if (!(yy_buffer_stack)) {
6456 /* First allocation is just for 2 elements, since we don't know if this
6457 * scanner will even need a stack. We use 2 instead of 1 to avoid an
6458 * immediate realloc on the next call.
6461 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
6462 (num_to_alloc * sizeof(struct yy_buffer_state*)
6465 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
6467 (yy_buffer_stack_max) = num_to_alloc;
6468 (yy_buffer_stack_top) = 0;
6472 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
6474 /* Increase the buffer to prepare for a possible push. */
6475 int grow_size = 8 /* arbitrary grow size */;
6477 num_to_alloc = (yy_buffer_stack_max) + grow_size;
6478 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
6480 num_to_alloc * sizeof(struct yy_buffer_state*)
6483 /* zero only the new slots.*/
6484 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
6485 (yy_buffer_stack_max) = num_to_alloc;
6489 /** Setup the input buffer state to scan directly from a user-specified character buffer.
6490 * @param base the character buffer
6491 * @param size the size in bytes of the character buffer
6493 * @return the newly allocated buffer state object.
6495 YY_BUFFER_STATE surf_parse__scan_buffer (char * base, yy_size_t size )
6500 base[size-2] != YY_END_OF_BUFFER_CHAR ||
6501 base[size-1] != YY_END_OF_BUFFER_CHAR )
6502 /* They forgot to leave room for the EOB's. */
6505 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
6507 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
6509 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
6510 b->yy_buf_pos = b->yy_ch_buf = base;
6511 b->yy_is_our_buffer = 0;
6512 b->yy_input_file = 0;
6513 b->yy_n_chars = b->yy_buf_size;
6514 b->yy_is_interactive = 0;
6516 b->yy_fill_buffer = 0;
6517 b->yy_buffer_status = YY_BUFFER_NEW;
6519 surf_parse__switch_to_buffer(b );
6524 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
6525 * scan from a @e copy of @a str.
6526 * @param yystr a NUL-terminated string to scan
6528 * @return the newly allocated buffer state object.
6529 * @note If you want to scan bytes that may contain NUL values, then use
6530 * surf_parse__scan_bytes() instead.
6532 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
6535 return surf_parse__scan_bytes(yystr,strlen(yystr) );
6538 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
6539 * scan from a @e copy of @a bytes.
6540 * @param bytes the byte buffer to scan
6541 * @param len the number of bytes in the buffer pointed to by @a bytes.
6543 * @return the newly allocated buffer state object.
6545 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char * yybytes, int _yybytes_len )
6552 /* Get memory for full buffer, including space for trailing EOB's. */
6553 n = _yybytes_len + 2;
6554 buf = (char *) surf_parse_alloc(n );
6556 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
6558 for ( i = 0; i < _yybytes_len; ++i )
6559 buf[i] = yybytes[i];
6561 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
6563 b = surf_parse__scan_buffer(buf,n );
6565 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
6567 /* It's okay to grow etc. this buffer, and we should throw it
6568 * away when we're done.
6570 b->yy_is_our_buffer = 1;
6575 static void yy_push_state (int new_state )
6577 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
6581 (yy_start_stack_depth) += YY_START_STACK_INCR;
6582 new_size = (yy_start_stack_depth) * sizeof( int );
6584 if ( ! (yy_start_stack) )
6585 (yy_start_stack) = (int *) surf_parse_alloc(new_size );
6588 (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size );
6590 if ( ! (yy_start_stack) )
6592 "out of memory expanding start-condition stack" );
6595 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
6600 static void yy_pop_state (void)
6602 if ( --(yy_start_stack_ptr) < 0 )
6603 YY_FATAL_ERROR( "start-condition stack underflow" );
6605 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
6608 #ifndef YY_EXIT_FAILURE
6609 #define YY_EXIT_FAILURE 2
6612 static void yy_fatal_error (yyconst char* msg )
6614 (void) fprintf( stderr, "%s\n", msg );
6615 exit( YY_EXIT_FAILURE );
6618 /* Redefine yyless() so it works in section 3 code. */
6624 /* Undo effects of setting up surf_parse_text. */ \
6625 int yyless_macro_arg = (n); \
6626 YY_LESS_LINENO(yyless_macro_arg);\
6627 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
6628 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
6629 (yy_hold_char) = *(yy_c_buf_p); \
6630 *(yy_c_buf_p) = '\0'; \
6631 surf_parse_leng = yyless_macro_arg; \
6635 /* Accessor methods (get/set functions) to struct members. */
6637 /** Get the current line number.
6640 int surf_parse_get_lineno (void)
6643 return surf_parse_lineno;
6646 /** Get the input stream.
6649 FILE *surf_parse_get_in (void)
6651 return surf_parse_in;
6654 /** Get the output stream.
6657 FILE *surf_parse_get_out (void)
6659 return surf_parse_out;
6662 /** Get the length of the current token.
6665 int surf_parse_get_leng (void)
6667 return surf_parse_leng;
6670 /** Get the current token.
6674 char *surf_parse_get_text (void)
6676 return surf_parse_text;
6679 /** Set the current line number.
6680 * @param line_number
6683 void surf_parse_set_lineno (int line_number )
6686 surf_parse_lineno = line_number;
6689 /** Set the input stream. This does not discard the current
6691 * @param in_str A readable stream.
6693 * @see surf_parse__switch_to_buffer
6695 void surf_parse_set_in (FILE * in_str )
6697 surf_parse_in = in_str ;
6700 void surf_parse_set_out (FILE * out_str )
6702 surf_parse_out = out_str ;
6705 int surf_parse_get_debug (void)
6707 return surf_parse__flex_debug;
6710 void surf_parse_set_debug (int bdebug )
6712 surf_parse__flex_debug = bdebug ;
6715 static int yy_init_globals (void)
6717 /* Initialization is the same as for the non-reentrant scanner.
6718 * This function is called from surf_parse_lex_destroy(), so don't allocate here.
6721 /* We do not touch surf_parse_lineno unless the option is enabled. */
6722 surf_parse_lineno = 1;
6724 (yy_buffer_stack) = 0;
6725 (yy_buffer_stack_top) = 0;
6726 (yy_buffer_stack_max) = 0;
6727 (yy_c_buf_p) = (char *) 0;
6731 (yy_start_stack_ptr) = 0;
6732 (yy_start_stack_depth) = 0;
6733 (yy_start_stack) = NULL;
6735 /* Defined in main.c */
6737 surf_parse_in = stdin;
6738 surf_parse_out = stdout;
6740 surf_parse_in = (FILE *) 0;
6741 surf_parse_out = (FILE *) 0;
6744 /* For future reference: Set errno on error, since we are called by
6745 * surf_parse_lex_init()
6750 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
6751 int surf_parse_lex_destroy (void)
6754 /* Pop the buffer stack, destroying each element. */
6755 while(YY_CURRENT_BUFFER){
6756 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
6757 YY_CURRENT_BUFFER_LVALUE = NULL;
6758 surf_parse_pop_buffer_state();
6761 /* Destroy the stack itself. */
6762 surf_parse_free((yy_buffer_stack) );
6763 (yy_buffer_stack) = NULL;
6765 /* Destroy the start condition stack. */
6766 surf_parse_free((yy_start_stack) );
6767 (yy_start_stack) = NULL;
6769 /* Reset the globals. This is important in a non-reentrant scanner so the next time
6770 * surf_parse_lex() is called, initialization will occur. */
6777 * Internal utility routines.
6781 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
6784 for ( i = 0; i < n; ++i )
6789 #ifdef YY_NEED_STRLEN
6790 static int yy_flex_strlen (yyconst char * s )
6793 for ( n = 0; s[n]; ++n )
6800 void *surf_parse_alloc (yy_size_t size )
6802 return (void *) malloc( size );
6805 void *surf_parse_realloc (void * ptr, yy_size_t size )
6807 /* The cast to (char *) in the following accommodates both
6808 * implementations that use char* generic pointers, and those
6809 * that use void* generic pointers. It works with the latter
6810 * because both ANSI C and C++ allow castless assignment from
6811 * any pointer type to void*, and deal with argument conversions
6812 * as though doing an assignment.
6814 return (void *) realloc( (char *) ptr, size );
6817 void surf_parse_free (void * ptr )
6819 free( (char *) ptr ); /* see surf_parse_realloc() for (char *) cast */
6822 #define YYTABLES_NAME "yytables"
6824 /* Element context stack lookup. */
6825 int surfxml_element_context(int i)
6827 return (0<i && i<yy_start_stack_depth
6828 ? yy_start_stack[yy_start_stack_ptr - i]
6833 void print_yy_stack(char* fmt, ...)
6835 int i = 0; va_list ap; va_start(ap, fmt);
6836 vfprintf(stderr, fmt, ap);
6837 if (surfxml_statenames) {
6838 for (i=1; i<yy_start_stack_ptr; i++) {
6839 fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
6841 fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
6846 void print_surfxml_bufferstack()
6849 fputs("Buffer: ", stderr);
6850 for (i = 0; i < blimit; i++) {
6851 if ( surfxml_bufferstack[i] == '\377' ) break;
6852 putc(surfxml_bufferstack[i], stderr);
6857 static void debug_enter(int state, const char* statename) {
6858 yy_push_state(state);
6859 if (surf_parse__flex_debug) {
6860 print_yy_stack("--ENTER(%s) : ",statename);
6861 print_surfxml_bufferstack();
6865 static void debug_leave(void) {
6866 if (surf_parse__flex_debug) {
6867 print_yy_stack("--LEAVE : ");
6868 print_surfxml_bufferstack();
6873 static void debug_set(int state, const char* statename) {
6875 if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
6879 static void cleanup(void)
6881 if (surfxml_statenames) {
6882 free(surfxml_statenames);
6883 surfxml_statenames = NULL;
6885 free(surfxml_bufferstack);
6886 surfxml_bufferstack = NULL;
6892 static int fail(const char* fmt, ...)
6894 int chars_left, used;
6895 va_list ap; va_start(ap, fmt);
6896 #ifdef FLEXML_yylineno
6897 used = sprintf(flexml_err_msg,
6898 "Invalid XML (XML input line %d, state %d): ",
6899 surf_parse_lineno, YY_START);
6901 used = sprintf(flexml_err_msg,
6902 "Invalid XML (state %d): ",
6905 chars_left = flexml_max_err_msg_size - used - 1;
6906 vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
6909 #ifndef FLEXML_quiet_parser
6910 /* print directly to sdterr */
6911 fprintf(stderr, "%s\n", flexml_err_msg);
6912 flexml_err_msg[0] = '\0';