Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Regenerate with the lastest Flex
[simgrid.git] / src / surf / xml / simgrid_dtd.c
1
2 #define  YY_INT_ALIGNED short int
3
4 /* A lexical scanner generated by flex */
5
6 #define yy_create_buffer surf_parse__create_buffer
7 #define yy_delete_buffer surf_parse__delete_buffer
8 #define yy_scan_buffer surf_parse__scan_buffer
9 #define yy_scan_string surf_parse__scan_string
10 #define yy_scan_bytes surf_parse__scan_bytes
11 #define yy_init_buffer surf_parse__init_buffer
12 #define yy_flush_buffer surf_parse__flush_buffer
13 #define yy_load_buffer_state surf_parse__load_buffer_state
14 #define yy_switch_to_buffer surf_parse__switch_to_buffer
15 #define yypush_buffer_state surf_parse_push_buffer_state
16 #define yypop_buffer_state surf_parse_pop_buffer_state
17 #define yyensure_buffer_stack surf_parse_ensure_buffer_stack
18 #define yy_flex_debug surf_parse__flex_debug
19 #define yyin surf_parse_in
20 #define yyleng surf_parse_leng
21 #define yylex surf_parse_lex
22 #define yylineno surf_parse_lineno
23 #define yyout surf_parse_out
24 #define yyrestart surf_parse_restart
25 #define yytext surf_parse_text
26 #define yywrap surf_parse_wrap
27 #define yyalloc surf_parse_alloc
28 #define yyrealloc surf_parse_realloc
29 #define yyfree surf_parse_free
30
31 #define FLEX_SCANNER
32 #define YY_FLEX_MAJOR_VERSION 2
33 #define YY_FLEX_MINOR_VERSION 6
34 #define YY_FLEX_SUBMINOR_VERSION 4
35 #if YY_FLEX_SUBMINOR_VERSION > 0
36 #define FLEX_BETA
37 #endif
38
39 #ifdef yy_create_buffer
40 #define surf_parse__create_buffer_ALREADY_DEFINED
41 #else
42 #define yy_create_buffer surf_parse__create_buffer
43 #endif
44
45 #ifdef yy_delete_buffer
46 #define surf_parse__delete_buffer_ALREADY_DEFINED
47 #else
48 #define yy_delete_buffer surf_parse__delete_buffer
49 #endif
50
51 #ifdef yy_scan_buffer
52 #define surf_parse__scan_buffer_ALREADY_DEFINED
53 #else
54 #define yy_scan_buffer surf_parse__scan_buffer
55 #endif
56
57 #ifdef yy_scan_string
58 #define surf_parse__scan_string_ALREADY_DEFINED
59 #else
60 #define yy_scan_string surf_parse__scan_string
61 #endif
62
63 #ifdef yy_scan_bytes
64 #define surf_parse__scan_bytes_ALREADY_DEFINED
65 #else
66 #define yy_scan_bytes surf_parse__scan_bytes
67 #endif
68
69 #ifdef yy_init_buffer
70 #define surf_parse__init_buffer_ALREADY_DEFINED
71 #else
72 #define yy_init_buffer surf_parse__init_buffer
73 #endif
74
75 #ifdef yy_flush_buffer
76 #define surf_parse__flush_buffer_ALREADY_DEFINED
77 #else
78 #define yy_flush_buffer surf_parse__flush_buffer
79 #endif
80
81 #ifdef yy_load_buffer_state
82 #define surf_parse__load_buffer_state_ALREADY_DEFINED
83 #else
84 #define yy_load_buffer_state surf_parse__load_buffer_state
85 #endif
86
87 #ifdef yy_switch_to_buffer
88 #define surf_parse__switch_to_buffer_ALREADY_DEFINED
89 #else
90 #define yy_switch_to_buffer surf_parse__switch_to_buffer
91 #endif
92
93 #ifdef yypush_buffer_state
94 #define surf_parse_push_buffer_state_ALREADY_DEFINED
95 #else
96 #define yypush_buffer_state surf_parse_push_buffer_state
97 #endif
98
99 #ifdef yypop_buffer_state
100 #define surf_parse_pop_buffer_state_ALREADY_DEFINED
101 #else
102 #define yypop_buffer_state surf_parse_pop_buffer_state
103 #endif
104
105 #ifdef yyensure_buffer_stack
106 #define surf_parse_ensure_buffer_stack_ALREADY_DEFINED
107 #else
108 #define yyensure_buffer_stack surf_parse_ensure_buffer_stack
109 #endif
110
111 #ifdef yylex
112 #define surf_parse_lex_ALREADY_DEFINED
113 #else
114 #define yylex surf_parse_lex
115 #endif
116
117 #ifdef yyrestart
118 #define surf_parse_restart_ALREADY_DEFINED
119 #else
120 #define yyrestart surf_parse_restart
121 #endif
122
123 #ifdef yylex_init
124 #define surf_parse_lex_init_ALREADY_DEFINED
125 #else
126 #define yylex_init surf_parse_lex_init
127 #endif
128
129 #ifdef yylex_init_extra
130 #define surf_parse_lex_init_extra_ALREADY_DEFINED
131 #else
132 #define yylex_init_extra surf_parse_lex_init_extra
133 #endif
134
135 #ifdef yylex_destroy
136 #define surf_parse_lex_destroy_ALREADY_DEFINED
137 #else
138 #define yylex_destroy surf_parse_lex_destroy
139 #endif
140
141 #ifdef yyget_debug
142 #define surf_parse_get_debug_ALREADY_DEFINED
143 #else
144 #define yyget_debug surf_parse_get_debug
145 #endif
146
147 #ifdef yyset_debug
148 #define surf_parse_set_debug_ALREADY_DEFINED
149 #else
150 #define yyset_debug surf_parse_set_debug
151 #endif
152
153 #ifdef yyget_extra
154 #define surf_parse_get_extra_ALREADY_DEFINED
155 #else
156 #define yyget_extra surf_parse_get_extra
157 #endif
158
159 #ifdef yyset_extra
160 #define surf_parse_set_extra_ALREADY_DEFINED
161 #else
162 #define yyset_extra surf_parse_set_extra
163 #endif
164
165 #ifdef yyget_in
166 #define surf_parse_get_in_ALREADY_DEFINED
167 #else
168 #define yyget_in surf_parse_get_in
169 #endif
170
171 #ifdef yyset_in
172 #define surf_parse_set_in_ALREADY_DEFINED
173 #else
174 #define yyset_in surf_parse_set_in
175 #endif
176
177 #ifdef yyget_out
178 #define surf_parse_get_out_ALREADY_DEFINED
179 #else
180 #define yyget_out surf_parse_get_out
181 #endif
182
183 #ifdef yyset_out
184 #define surf_parse_set_out_ALREADY_DEFINED
185 #else
186 #define yyset_out surf_parse_set_out
187 #endif
188
189 #ifdef yyget_leng
190 #define surf_parse_get_leng_ALREADY_DEFINED
191 #else
192 #define yyget_leng surf_parse_get_leng
193 #endif
194
195 #ifdef yyget_text
196 #define surf_parse_get_text_ALREADY_DEFINED
197 #else
198 #define yyget_text surf_parse_get_text
199 #endif
200
201 #ifdef yyget_lineno
202 #define surf_parse_get_lineno_ALREADY_DEFINED
203 #else
204 #define yyget_lineno surf_parse_get_lineno
205 #endif
206
207 #ifdef yyset_lineno
208 #define surf_parse_set_lineno_ALREADY_DEFINED
209 #else
210 #define yyset_lineno surf_parse_set_lineno
211 #endif
212
213 #ifdef yywrap
214 #define surf_parse_wrap_ALREADY_DEFINED
215 #else
216 #define yywrap surf_parse_wrap
217 #endif
218
219 #ifdef yyalloc
220 #define surf_parse_alloc_ALREADY_DEFINED
221 #else
222 #define yyalloc surf_parse_alloc
223 #endif
224
225 #ifdef yyrealloc
226 #define surf_parse_realloc_ALREADY_DEFINED
227 #else
228 #define yyrealloc surf_parse_realloc
229 #endif
230
231 #ifdef yyfree
232 #define surf_parse_free_ALREADY_DEFINED
233 #else
234 #define yyfree surf_parse_free
235 #endif
236
237 #ifdef yytext
238 #define surf_parse_text_ALREADY_DEFINED
239 #else
240 #define yytext surf_parse_text
241 #endif
242
243 #ifdef yyleng
244 #define surf_parse_leng_ALREADY_DEFINED
245 #else
246 #define yyleng surf_parse_leng
247 #endif
248
249 #ifdef yyin
250 #define surf_parse_in_ALREADY_DEFINED
251 #else
252 #define yyin surf_parse_in
253 #endif
254
255 #ifdef yyout
256 #define surf_parse_out_ALREADY_DEFINED
257 #else
258 #define yyout surf_parse_out
259 #endif
260
261 #ifdef yy_flex_debug
262 #define surf_parse__flex_debug_ALREADY_DEFINED
263 #else
264 #define yy_flex_debug surf_parse__flex_debug
265 #endif
266
267 #ifdef yylineno
268 #define surf_parse_lineno_ALREADY_DEFINED
269 #else
270 #define yylineno surf_parse_lineno
271 #endif
272
273 /* First, we deal with  platform-specific or compiler-specific issues. */
274
275 /* begin standard C headers. */
276 #include <stdio.h>
277 #include <string.h>
278 #include <errno.h>
279 #include <stdlib.h>
280
281 /* end standard C headers. */
282
283 /* flex integer type definitions */
284
285 #ifndef FLEXINT_H
286 #define FLEXINT_H
287
288 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
289
290 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
291
292 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
293  * if you want the limit (max/min) macros for int types. 
294  */
295 #ifndef __STDC_LIMIT_MACROS
296 #define __STDC_LIMIT_MACROS 1
297 #endif
298
299 #include <inttypes.h>
300 typedef int8_t flex_int8_t;
301 typedef uint8_t flex_uint8_t;
302 typedef int16_t flex_int16_t;
303 typedef uint16_t flex_uint16_t;
304 typedef int32_t flex_int32_t;
305 typedef uint32_t flex_uint32_t;
306 #else
307 typedef signed char flex_int8_t;
308 typedef short int flex_int16_t;
309 typedef int flex_int32_t;
310 typedef unsigned char flex_uint8_t; 
311 typedef unsigned short int flex_uint16_t;
312 typedef unsigned int flex_uint32_t;
313
314 /* Limits of integral types. */
315 #ifndef INT8_MIN
316 #define INT8_MIN               (-128)
317 #endif
318 #ifndef INT16_MIN
319 #define INT16_MIN              (-32767-1)
320 #endif
321 #ifndef INT32_MIN
322 #define INT32_MIN              (-2147483647-1)
323 #endif
324 #ifndef INT8_MAX
325 #define INT8_MAX               (127)
326 #endif
327 #ifndef INT16_MAX
328 #define INT16_MAX              (32767)
329 #endif
330 #ifndef INT32_MAX
331 #define INT32_MAX              (2147483647)
332 #endif
333 #ifndef UINT8_MAX
334 #define UINT8_MAX              (255U)
335 #endif
336 #ifndef UINT16_MAX
337 #define UINT16_MAX             (65535U)
338 #endif
339 #ifndef UINT32_MAX
340 #define UINT32_MAX             (4294967295U)
341 #endif
342
343 #ifndef SIZE_MAX
344 #define SIZE_MAX               (~(size_t)0)
345 #endif
346
347 #endif /* ! C99 */
348
349 #endif /* ! FLEXINT_H */
350
351 /* begin standard C++ headers. */
352
353 /* TODO: this is always defined, so inline it */
354 #define yyconst const
355
356 #if defined(__GNUC__) && __GNUC__ >= 3
357 #define yynoreturn __attribute__((__noreturn__))
358 #else
359 #define yynoreturn
360 #endif
361
362 /* Returned upon end-of-file. */
363 #define YY_NULL 0
364
365 /* Promotes a possibly negative, possibly signed char to an
366  *   integer in range [0..255] for use as an array index.
367  */
368 #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
369
370 /* Enter a start condition.  This macro really ought to take a parameter,
371  * but we do it the disgusting crufty way forced on us by the ()-less
372  * definition of BEGIN.
373  */
374 #define BEGIN (yy_start) = 1 + 2 *
375 /* Translate the current start state into a value that can be later handed
376  * to BEGIN to return to the state.  The YYSTATE alias is for lex
377  * compatibility.
378  */
379 #define YY_START (((yy_start) - 1) / 2)
380 #define YYSTATE YY_START
381 /* Action number for EOF rule of a given start state. */
382 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
383 /* Special action meaning "start processing a new file". */
384 #define YY_NEW_FILE yyrestart( yyin  )
385 #define YY_END_OF_BUFFER_CHAR 0
386
387 /* Size of default input buffer. */
388 #ifndef YY_BUF_SIZE
389 #ifdef __ia64__
390 /* On IA-64, the buffer size is 16k, not 8k.
391  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
392  * Ditto for the __ia64__ case accordingly.
393  */
394 #define YY_BUF_SIZE 32768
395 #else
396 #define YY_BUF_SIZE 16384
397 #endif /* __ia64__ */
398 #endif
399
400 /* The state buf must be large enough to hold one state per character in the main buffer.
401  */
402 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
403
404 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
405 #define YY_TYPEDEF_YY_BUFFER_STATE
406 typedef struct yy_buffer_state *YY_BUFFER_STATE;
407 #endif
408
409 #ifndef YY_TYPEDEF_YY_SIZE_T
410 #define YY_TYPEDEF_YY_SIZE_T
411 typedef size_t yy_size_t;
412 #endif
413
414 extern int yyleng;
415
416 extern FILE *yyin, *yyout;
417
418 #define EOB_ACT_CONTINUE_SCAN 0
419 #define EOB_ACT_END_OF_FILE 1
420 #define EOB_ACT_LAST_MATCH 2
421     
422     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
423      *       access to the local variable yy_act. Since yyless() is a macro, it would break
424      *       existing scanners that call yyless() from OUTSIDE yylex.
425      *       One obvious solution it to make yy_act a global. I tried that, and saw
426      *       a 5% performance hit in a non-yylineno scanner, because yy_act is
427      *       normally declared as a variable-- so it is not worth it.
428      */
429     #define  YY_LESS_LINENO(n) \
430             do { \
431                 int yyl;\
432                 for ( yyl = n; yyl < yyleng; ++yyl )\
433                     if ( yytext[yyl] == '\n' )\
434                         --yylineno;\
435             }while(0)
436     #define YY_LINENO_REWIND_TO(dst) \
437             do {\
438                 const char *p;\
439                 for ( p = yy_cp-1; p >= (dst); --p)\
440                     if ( *p == '\n' )\
441                         --yylineno;\
442             }while(0)
443     
444 /* Return all but the first "n" matched characters back to the input stream. */
445 #define yyless(n) \
446         do \
447                 { \
448                 /* Undo effects of setting up yytext. */ \
449         int yyless_macro_arg = (n); \
450         YY_LESS_LINENO(yyless_macro_arg);\
451                 *yy_cp = (yy_hold_char); \
452                 YY_RESTORE_YY_MORE_OFFSET \
453                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
454                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
455                 } \
456         while ( 0 )
457 #define unput(c) yyunput( c, (yytext_ptr)  )
458
459 #ifndef YY_STRUCT_YY_BUFFER_STATE
460 #define YY_STRUCT_YY_BUFFER_STATE
461 struct yy_buffer_state
462         {
463         FILE *yy_input_file;
464
465         char *yy_ch_buf;                /* input buffer */
466         char *yy_buf_pos;               /* current position in input buffer */
467
468         /* Size of input buffer in bytes, not including room for EOB
469          * characters.
470          */
471         int yy_buf_size;
472
473         /* Number of characters read into yy_ch_buf, not including EOB
474          * characters.
475          */
476         int yy_n_chars;
477
478         /* Whether we "own" the buffer - i.e., we know we created it,
479          * and can realloc() it to grow it, and should free() it to
480          * delete it.
481          */
482         int yy_is_our_buffer;
483
484         /* Whether this is an "interactive" input source; if so, and
485          * if we're using stdio for input, then we want to use getc()
486          * instead of fread(), to make sure we stop fetching input after
487          * each newline.
488          */
489         int yy_is_interactive;
490
491         /* Whether we're considered to be at the beginning of a line.
492          * If so, '^' rules will be active on the next match, otherwise
493          * not.
494          */
495         int yy_at_bol;
496
497     int yy_bs_lineno; /**< The line count. */
498     int yy_bs_column; /**< The column count. */
499
500         /* Whether to try to fill the input buffer when we reach the
501          * end of it.
502          */
503         int yy_fill_buffer;
504
505         int yy_buffer_status;
506
507 #define YY_BUFFER_NEW 0
508 #define YY_BUFFER_NORMAL 1
509         /* When an EOF's been seen but there's still some text to process
510          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
511          * shouldn't try reading from the input source any more.  We might
512          * still have a bunch of tokens to match, though, because of
513          * possible backing-up.
514          *
515          * When we actually see the EOF, we change the status to "new"
516          * (via yyrestart()), so that the user can continue scanning by
517          * just pointing yyin at a new input file.
518          */
519 #define YY_BUFFER_EOF_PENDING 2
520
521         };
522 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
523
524 /* Stack of input buffers. */
525 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
526 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
527 static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
528
529 /* We provide macros for accessing buffer states in case in the
530  * future we want to put the buffer states in a more general
531  * "scanner state".
532  *
533  * Returns the top of the stack, or NULL.
534  */
535 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
536                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
537                           : NULL)
538 /* Same as previous macro, but useful when we know that the buffer stack is not
539  * NULL or when we need an lvalue. For internal use only.
540  */
541 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
542
543 /* yy_hold_char holds the character lost when yytext is formed. */
544 static char yy_hold_char;
545 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
546 int yyleng;
547
548 /* Points to current character in buffer. */
549 static char *yy_c_buf_p = NULL;
550 static int yy_init = 0;         /* whether we need to initialize */
551 static int yy_start = 0;        /* start state number */
552
553 /* Flag which is used to allow yywrap()'s to do buffer switches
554  * instead of setting up a fresh yyin.  A bit of a hack ...
555  */
556 static int yy_did_buffer_switch_on_eof;
557
558 void yyrestart ( FILE *input_file  );
559 void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
560 YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
561 void yy_delete_buffer ( YY_BUFFER_STATE b  );
562 void yy_flush_buffer ( YY_BUFFER_STATE b  );
563 void yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
564 void yypop_buffer_state ( void );
565
566 static void yyensure_buffer_stack ( void );
567 static void yy_load_buffer_state ( void );
568 static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
569 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
570
571 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
572 YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
573 YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
574
575 void *yyalloc ( yy_size_t  );
576 void *yyrealloc ( void *, yy_size_t  );
577 void yyfree ( void *  );
578
579 #define yy_new_buffer yy_create_buffer
580 #define yy_set_interactive(is_interactive) \
581         { \
582         if ( ! YY_CURRENT_BUFFER ){ \
583         yyensure_buffer_stack (); \
584                 YY_CURRENT_BUFFER_LVALUE =    \
585             yy_create_buffer( yyin, YY_BUF_SIZE ); \
586         } \
587         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
588         }
589 #define yy_set_bol(at_bol) \
590         { \
591         if ( ! YY_CURRENT_BUFFER ){\
592         yyensure_buffer_stack (); \
593                 YY_CURRENT_BUFFER_LVALUE =    \
594             yy_create_buffer( yyin, YY_BUF_SIZE ); \
595         } \
596         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
597         }
598 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
599
600 /* Begin user sect3 */
601
602 #define surf_parse_wrap() (/*CONSTCOND*/1)
603 #define YY_SKIP_YYWRAP
604 typedef flex_uint8_t YY_CHAR;
605
606 FILE *yyin = NULL, *yyout = NULL;
607
608 typedef int yy_state_type;
609
610 extern int yylineno;
611 int yylineno = 1;
612
613 extern char *yytext;
614 #ifdef yytext_ptr
615 #undef yytext_ptr
616 #endif
617 #define yytext_ptr yytext
618
619 static yy_state_type yy_get_previous_state ( void );
620 static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
621 static int yy_get_next_buffer ( void );
622 static void yynoreturn yy_fatal_error ( const char* msg  );
623
624 /* Done after the current pattern has been matched and before the
625  * corresponding action - sets up yytext.
626  */
627 #define YY_DO_BEFORE_ACTION \
628         (yytext_ptr) = yy_bp; \
629         yyleng = (int) (yy_cp - yy_bp); \
630         (yy_hold_char) = *yy_cp; \
631         *yy_cp = '\0'; \
632         (yy_c_buf_p) = yy_cp;
633 #define YY_NUM_RULES 663
634 #define YY_END_OF_BUFFER 664
635 /* This struct is not used in this scanner,
636    but its presence is necessary. */
637 struct yy_trans_info
638         {
639         flex_int32_t yy_verify;
640         flex_int32_t yy_nxt;
641         };
642 static const flex_int16_t yy_accept[3991] =
643     {   0,
644         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
645         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
646         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
647         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
648         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
649         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
650         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
651         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
652         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
653         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
654
655         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
656         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
657         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
658         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
659         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
660         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
661         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
662         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
663         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
664         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
665
666         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
667         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
668         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
669         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
670         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
671         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
672         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
673         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
674         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
675         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
676
677         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
678         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
679         0,    0,  664,  662,   15,   10,   10,   15,   15,  642,
680        10,  642,    5,    6,    5,    8,    9,    8,  658,  650,
681       651,  659,  656,  659,  657,  661,  650,  651,  661,   42,
682        10,   42,   42,   42,   40,   42,   42,   46,   10,   46,
683        46,  662,   46,  662,   46,   46,  662,  662,   46,  662,
684        46,  662,   46,   67,   10,   67,   67,   67,   65,   67,
685        67,   67,   71,   10,   71,  662,   71,   88,   10,   88,
686        88,   88,   86,   88,   88,   88,   88,   88,   92,   10,
687
688        92,  662,   92,   99,   10,   99,   99,   99,   97,   99,
689       103,   10,  103,  114,   10,  114,  114,  114,  112,  114,
690       114,  114,  118,   10,  118,  131,   10,  131,  131,  131,
691       129,  131,  131,  131,  135,   10,  135,  135,  144,   10,
692       144,  144,  144,  142,  144,  144,  148,   10,  148,  148,
693       161,   10,  161,  161,  161,  159,  161,  161,  161,  165,
694        10,  165,  165,  184,   10,  184,  184,  184,  182,  184,
695       184,  184,  184,  184,  184,  188,   10,  188,  243,   10,
696       243,  243,  243,  241,  243,  243,  243,  243,  243,  243,
697       243,  243,  247,   10,  247,  247,  254,   10,  254,  254,
698
699       254,  252,  254,  258,   10,  258,  258,  277,   10,  277,
700       277,  277,  275,  277,  277,  277,  277,  277,  281,   10,
701       281,  662,  281,  292,   10,  292,  292,  292,  290,  292,
702       292,  292,  296,   10,  296,  303,   10,  303,  303,  303,
703       301,  303,  307,   10,  307,  662,  307,  332,   10,  332,
704       332,  332,  330,  332,  332,  332,  332,  336,   10,  336,
705       336,  349,   10,  349,  349,  349,  347,  349,  349,  353,
706        10,  353,  362,   10,  362,  362,  362,  360,  362,  362,
707       366,   10,  366,  375,   10,  375,  375,  375,  373,  375,
708       375,  379,   10,  379,  400,   10,  400,  400,  400,  398,
709
710       400,  400,  400,  400,  400,  400,  404,   10,  404,  662,
711       411,   10,  411,  411,  411,  409,  411,  415,   10,  415,
712       415,  662,  415,  662,  415,  432,   10,  432,  432,  432,
713       430,  432,  432,  432,  432,  432,  436,   10,  436,  436,
714       445,   10,  445,  445,  445,  443,  445,  445,  449,   10,
715       449,  476,   10,  476,  476,  476,  474,  476,  476,  476,
716       476,  476,  480,   10,  480,  497,   10,  497,  497,  497,
717       495,  497,  497,  501,   10,  501,  501,  510,   10,  510,
718       510,  510,  508,  510,  510,  514,   10,  514,  527,   10,
719       527,  527,  527,  525,  527,  527,  527,  527,  531,   10,
720
721       531,  531,  544,   10,  544,  544,  544,  542,  544,  544,
722       544,  544,  548,   10,  548,  662,  548,  559,   10,  559,
723       559,  559,  557,  559,  559,  559,  659,  658,  581,   10,
724       581,  581,  581,  579,  581,  581,  581,  585,   10,  585,
725       612,   10,  612,  612,  612,  610,  612,  612,  616,   10,
726       616,  616,  616,  616,  616,  616,  616,  616,  637,   10,
727       637,  637,  637,  635,  637,  637,  637,  641,   10,  641,
728       641,   10,    0,    2,    2,    0,    4,    7,  653,  652,
729         0,    0,    0,    0,    0,    0,   41,   43,   43,   43,
730         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
731
732         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
733         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
734         0,    0,    0,    0,    0,    0,    0,    0,    0,   66,
735        68,   68,   68,   68,   68,    0,    0,   87,   89,   89,
736        89,   89,   89,   89,    0,    0,   98,  100,  100,    0,
737       113,  115,  115,  115,  115,    0,  130,  132,  132,  132,
738       132,    0,  143,  145,  145,  145,    0,  160,  162,  162,
739       162,  162,    0,  183,  185,  185,  185,  185,  185,  185,
740       185,  185,    0,  242,  244,  244,  244,  244,  244,  244,
741       244,  244,  244,  244,  244,  244,  244,  244,  244,    0,
742
743       253,  255,  255,    0,  276,  278,  278,  278,  278,  278,
744       278,  278,    0,    0,  291,  293,  293,  293,  293,    0,
745       302,  304,  304,    0,  331,  333,  333,  333,  333,  333,
746       333,    0,  348,  350,  350,  350,    0,  361,  363,  363,
747       363,    0,  374,  376,  376,  376,    0,  399,  401,  401,
748       401,  401,  401,  401,  401,  401,    0,    0,  410,  412,
749       412,    0,    0,    0,    0,    0,    0,    0,  431,  433,
750       433,  433,  433,  433,  433,    0,  444,  446,  446,  446,
751         0,  475,  477,  477,  477,  477,  477,  477,  477,  477,
752       477,    0,  496,  498,  498,  498,  498,    0,  509,  511,
753
754       511,  511,    0,  526,  528,  528,  528,  528,  528,    0,
755       543,  545,  545,  545,  545,  545,    0,    0,  558,  560,
756       560,  560,  560,    0,    0,    0,  580,  582,  582,  582,
757       582,    0,  611,  613,  613,  613,    0,  636,  638,  638,
758       638,  638,  638,    0,    0,    0,    0,    0,    3,    0,
759         0,    0,    0,    0,    0,    0,  660,    0,    0,   43,
760         0,    0,   17,    0,    0,    0,    0,    0,    0,    0,
761         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
762         0,    0,    0,   16,    0,    0,    0,    0,    0,    0,
763         0,    0,    0,    0,    0,    0,   16,    0,    0,   17,
764
765         0,    0,    0,    0,   68,   68,   68,   68,    0,    0,
766         0,   89,   89,   89,   89,   89,    0,    0,    0,  100,
767         0,    0,  115,    0,    0,  115,    0,    0,  132,  132,
768       132,    0,    0,  145,  145,    0,    0,  162,  162,  162,
769         0,    0,    0,    0,    0,    0,  185,  185,  185,  185,
770       185,    0,    0,  244,    0,    0,  244,    0,    0,  244,
771       244,  244,  244,  244,  244,  244,  244,  244,  244,    0,
772         0,    0,    0,    0,    0,  278,  278,  278,    0,    0,
773       278,  278,  278,    0,    0,    0,  293,    0,    0,    0,
774         0,    0,    0,  304,    0,    0,  333,    0,    0,  333,
775
776       333,  333,    0,    0,  350,    0,    0,    0,    0,    0,
777         0,  363,    0,    0,  376,  376,    0,    0,  401,  401,
778       401,    0,    0,  401,  401,  401,    0,    0,    0,  412,
779         0,    0,    0,    0,    0,    0,  433,  433,  433,  433,
780       433,    0,    0,    0,    0,  446,    0,    0,  477,    0,
781         0,  477,  477,  477,  477,  477,  477,    0,    0,  498,
782       498,  498,    0,    0,  511,    0,    0,    0,    0,  528,
783       528,    0,    0,  528,    0,    0,  545,    0,    0,  545,
784       545,    0,    0,    0,  560,    0,    0,  560,    0,    0,
785         0,  655,  582,  582,  582,    0,    0,    0,    0,  613,
786
787         0,    0,  638,  638,  638,  638,    0,    0,    0,   14,
788         1,    0,    0,  648,    0,    0,    0,  645,  644,    0,
789         0,   19,   18,   43,    0,    0,   45,    0,   17,    0,
790         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
791         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
792         0,   16,    0,    0,    0,    0,    0,    0,    0,    0,
793         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
794         0,    0,    0,   68,   68,    0,    0,   68,    0,    0,
795        70,    0,    0,   89,   89,   89,   89,   89,    0,    0,
796        91,    0,    0,  100,    0,    0,  102,    0,  115,    0,
797
798       109,  108,  115,    0,    0,  117,    0,    0,    0,  132,
799       132,    0,    0,    0,    0,  134,    0,    0,    0,    0,
800         0,    0,    0,  147,    0,    0,    0,  162,  162,    0,
801         0,    0,    0,  164,    0,    0,  169,  168,    0,  171,
802       170,    0,    0,  185,  185,  185,  185,    0,    0,  187,
803         0,  244,  244,  244,    0,  200,  199,  244,    0,  204,
804       203,    0,    0,  244,  244,  244,  244,  244,  244,  244,
805       244,  244,    0,    0,  246,    0,    0,  251,  250,    0,
806         0,  257,    0,  278,  278,  278,    0,  268,  267,  278,
807       278,  278,    0,    0,  280,    0,    0,  293,    0,  287,
808
809       286,    0,  289,  288,    0,    0,  295,    0,  304,    0,
810         0,  306,    0,  333,    0,  315,  314,  333,  333,  333,
811         0,    0,  335,    0,  350,    0,  346,  345,    0,    0,
812       352,    0,    0,  357,  356,  363,    0,    0,  365,    0,
813       376,  376,    0,    0,  378,    0,  401,  401,  401,  401,
814         0,  391,  390,    0,    0,  401,  401,    0,    0,  403,
815         0,    0,  412,    0,    0,  414,    0,    0,    0,    0,
816         0,  433,  433,  433,  433,  433,    0,    0,  435,    0,
817         0,  440,  439,  446,    0,    0,  448,    0,  477,    0,
818       461,  460,    0,    0,  477,    0,    0,  477,  477,  477,
819
820         0,    0,  479,    0,    0,    0,    0,    0,  498,    0,
821         0,  500,    0,  511,    0,  507,  506,    0,    0,  513,
822         0,  528,  528,    0,  522,  521,  528,    0,    0,  530,
823         0,  545,    0,  537,  536,  545,  545,    0,    0,  547,
824         0,    0,  560,    0,  554,  553,  560,    0,    0,    0,
825       562,    0,  582,  582,  582,    0,    0,  584,    0,    0,
826       589,  588,  613,    0,    0,  615,    0,    0,    0,  638,
827       638,    0,    0,  638,    0,    0,  640,    0,    0,    0,
828       649,  643,    0,    0,   43,    0,   44,    0,    0,    0,
829         0,    0,    0,    0,    0,  260,    0,  309,    0,    0,
830
831       381,    0,    0,  438,    0,    0,    0,    0,  587,  437,
832         0,    0,    0,    0,    0,  259,    0,  308,  380,    0,
833         0,    0,  586,    0,  586,  587,    0,    0,    0,    0,
834        50,   49,   68,   68,    0,   56,   55,   68,    0,  308,
835        89,    0,    0,   89,   89,   89,    0,    0,  100,    0,
836       115,  115,    0,    0,  122,  121,  132,  132,    0,  128,
837       127,    0,    0,  139,  138,    0,  141,  140,    0,    0,
838       152,  151,  162,  162,    0,  158,  157,    0,    0,  173,
839       172,  185,  185,  185,  185,    0,  244,  244,  244,    0,
840         0,    0,  206,  205,  244,  244,  244,  244,  244,  244,
841
842       244,  244,  244,  244,    0,    0,  278,  278,    0,    0,
843       278,  278,  278,    0,    0,    0,    0,    0,    0,    0,
844         0,  333,  333,  333,  333,    0,  350,    0,  363,    0,
845         0,    0,  376,    0,  401,  401,  401,  401,    0,  393,
846       392,  401,  401,    0,    0,  412,    0,    0,    0,    0,
847         0,  433,    0,    0,  433,  433,  433,    0,  446,    0,
848       477,    0,  463,  462,    0,    0,    0,  467,  466,  477,
849         0,    0,  477,    0,    0,  484,  483,    0,  486,  485,
850       498,    0,  511,    0,  528,  528,  528,    0,  545,  545,
851         0,    0,    0,    0,    0,    0,  560,    0,    0,  582,
852
853         0,    0,  582,    0,  613,    0,    0,  620,  619,  638,
854       638,    0,  626,  625,  638,    0,    0,    0,    0,   12,
855         0,  646,  647,   43,    0,   72,    0,    0,    0,    0,
856         0,    0,  260,    0,    0,  309,    0,    0,  367,  381,
857         0,    0,  438,    0,  482,    0,  550,  587,    0,  437,
858         0,    0,    0,    0,    0,  259,    0,    0,  308,  380,
859       481,    0,  549,  586,    0,    0,    0,  482,  481,   68,
860        68,   68,    0,    0,   89,    0,   77,   76,   89,   89,
861        89,    0,    0,    0,    0,    0,  115,  115,    0,  132,
862       132,    0,    0,  162,  162,    0,  185,  185,    0,    0,
863
864       185,    0,    0,    0,  244,  244,    0,  202,  201,  244,
865       244,  244,  244,  244,  244,    0,    0,  244,  244,  244,
866         0,    0,  278,  278,    0,  266,  265,  278,    0,    0,
867       278,    0,  368,    0,  285,  284,    0,    0,  300,  299,
868         0,  333,  333,  333,  333,    0,  350,    0,    0,    0,
869         0,    0,  370,  369,  376,    0,  401,    0,    0,  401,
870       401,    0,    0,  401,    0,    0,  412,    0,   73,    0,
871         0,    0,  433,    0,  421,  420,  433,  433,  433,    0,
872         0,    0,    0,  477,    0,  465,  464,  477,    0,  471,
873       470,  477,    0,  498,    0,  511,    0,  528,  528,  528,
874
875         0,  545,    0,    0,    0,  541,  540,    0,    0,    0,
876       552,  551,  560,    0,    0,  582,    0,    0,    0,    0,
877         0,    0,  613,    0,  638,  638,  638,    0,    0,    0,
878         0,   11,   43,    0,   72,    0,    0,    0,    0,    0,
879       248,    0,    0,    0,    0,  367,    0,    0,  450,  482,
880       503,    0,  550,    0,    0,    0,    0,    0,    0,    0,
881         0,    0,  481,  502,    0,  549,    0,    0,    0,    0,
882         0,    0,    0,    0,   68,    0,    0,   89,   89,   89,
883        89,    0,    0,    0,   96,   95,    0,  115,  115,    0,
884         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
885
886         0,    0,    0,  185,    0,  179,  178,    0,    0,    0,
887         0,  192,  191,    0,    0,  244,  244,  244,    0,    0,
888       244,  244,  244,    0,  228,  227,    0,    0,  244,  244,
889         0,    0,  278,  278,    0,    0,    0,  272,  271,  278,
890         0,  279,  368,    0,    0,  333,  333,  333,  333,    0,
891       334,  350,    0,    0,  359,  358,    0,  376,    0,  401,
892         0,  385,  384,    0,    0,  401,    0,  395,  394,  401,
893         0,  402,    0,  412,    0,   73,  249,    0,  451,  433,
894       433,  433,  433,    0,    0,  442,  441,    0,  447,  477,
895       477,  477,    0,  498,    0,  511,    0,    0,    0,  528,
896
897         0,    0,    0,  545,    0,  539,  538,    0,    0,  560,
898         0,    0,  582,    0,    0,    0,    0,    0,    0,    0,
899         0,    0,  578,  577,    0,  613,    0,  614,    0,    0,
900         0,    0,  638,    0,    0,    0,    0,    0,    0,   48,
901         0,    0,    0,    0,    0,  167,  190,  248,    0,  298,
902         0,    0,    0,  416,  450,  503,  516,    0,    0,   47,
903         0,    0,    0,    0,  166,  189,    0,  297,  502,  515,
904         0,    0,    0,   52,   51,    0,   54,   53,   68,    0,
905         0,   89,   89,   89,   89,    0,   90,    0,    0,  115,
906         0,    0,    0,    0,  124,  123,    0,  126,  125,    0,
907
908         0,    0,  154,  153,    0,  156,  155,    0,    0,  175,
909       174,    0,    0,    0,  181,  180,    0,    0,  194,  193,
910       244,  244,  244,    0,  214,  213,    0,    0,  244,  244,
911         0,  230,  229,  244,  244,    0,    0,  278,  278,    0,
912       270,  269,  278,    0,    0,  333,    0,    0,  333,  333,
913       333,  350,    0,    0,  376,    0,  377,  401,    0,  387,
914       386,  401,  401,    0,    0,    0,    0,  249,  417,  451,
915       433,  433,  433,  433,    0,  477,    0,    0,  477,    0,
916       498,    0,  499,  511,    0,    0,  518,  517,    0,    0,
917         0,  524,  523,    0,    0,    0,    0,    0,  560,    0,
918
919         0,  561,    0,    0,    0,    0,    0,    0,    0,    0,
920         0,    0,    0,    0,    0,    0,    0,    0,  622,  621,
921         0,  624,  623,  638,    0,    0,    0,    0,    0,    0,
922         0,   48,   93,  105,    0,    0,    0,  167,  190,    0,
923       298,  337,    0,  405,  416,  516,    0,    0,    0,   47,
924       104,    0,    0,    0,  166,  189,    0,  297,  515,    0,
925         0,    0,   68,    0,  338,    0,    0,   89,   89,   89,
926        94,    0,  115,    0,  111,  110,    0,    0,    0,    0,
927         0,  177,  176,    0,  244,  244,  244,    0,  216,  215,
928       244,  244,  244,    0,    0,    0,    0,  256,  278,  278,
929
930       278,    0,    0,  333,    0,  317,  316,  333,  333,  333,
931       350,    0,    0,  376,  401,  401,  401,  406,    0,  408,
932       407,    0,  417,    0,    0,  433,  433,  433,    0,  477,
933         0,  469,  468,  477,    0,  478,  498,  511,    0,  512,
934         0,  520,  519,    0,    0,  535,  534,    0,    0,  560,
935       654,    0,  566,  565,    0,    0,    0,    0,    0,    0,
936         0,    0,    0,    0,    0,    0,    0,    0,  638,    0,
937         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
938         0,    0,    0,   93,  105,    0,    0,    0,  283,  337,
939         0,  405,    0,    0,  618,  104,    0,    0,    0,  282,
940
941         0,    0,  617,   68,    0,   69,  338,    0,   75,   74,
942         0,    0,   89,   89,   94,    0,    0,    0,    0,    0,
943         0,    0,    0,  186,  244,  244,  244,  244,    0,    0,
944       244,  244,    0,    0,    0,    0,  245,  278,  278,  278,
945         0,    0,  305,    0,    0,  333,  333,  333,  333,    0,
946         0,    0,    0,    0,    0,  401,  401,  401,  406,    0,
947         0,  419,  418,    0,    0,  433,  433,    0,  434,    0,
948         0,  477,  498,  511,    0,  529,    0,    0,  560,    0,
949         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
950         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
951
952       638,    0,    0,    0,    0,    0,    0,    0,    0,    0,
953         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
954       283,  354,    0,    0,  618,    0,    0,    0,  282,    0,
955         0,  617,   68,    0,   79,   78,    0,    0,    0,    0,
956         0,  101,    0,  107,  106,    0,  116,    0,    0,    0,
957       244,  244,  244,  244,    0,  218,  217,  244,  244,    0,
958         0,    0,    0,    0,    0,  278,  278,    0,    0,    0,
959         0,  311,  310,  333,  333,  333,    0,    0,    0,    0,
960         0,    0,  351,    0,    0,  372,  371,  401,  401,    0,
961         0,    0,  413,    0,  423,  422,    0,    0,    0,    0,
962
963         0,    0,    0,  477,  498,  511,    0,  355,  560,    0,
964         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
965         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
966         0,    0,  638,    0,    0,    0,    0,    0,    0,    0,
967         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
968       137,    0,  354,    0,    0,    0,  136,    0,    0,    0,
969         0,    0,    0,    0,    0,    0,   85,   84,    0,    0,
970         0,  244,  244,    0,    0,  244,  244,  244,    0,    0,
971         0,    0,    0,    0,    0,    0,  278,    0,    0,    0,
972       274,  273,    0,  294,  333,  333,  333,    0,  329,  328,
973
974         0,    0,    0,    0,    0,    0,    0,  401,    0,    0,
975         0,  397,  396,    0,    0,    0,    0,  429,  428,    0,
976         0,    0,    0,    0,    0,  477,    0,    0,    0,    0,
977         0,  355,    0,    0,    0,    0,    0,    0,  570,    0,
978         0,    0,    0,  569,    0,    0,    0,    0,    0,    0,
979         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
980       639,    0,    0,    0,    0,    0,    0,    0,    0,    0,
981         0,    0,    0,    0,    0,    0,    0,  137,    0,  533,
982         0,    0,  136,    0,  532,    0,    0,    0,    0,    0,
983         0,    0,    0,    0,    0,    0,  244,    0,    0,    0,
984
985       210,  209,    0,    0,  244,  244,    0,    0,    0,    0,
986         0,    0,    0,    0,  278,    0,  264,  263,  333,    0,
987         0,  333,    0,    0,    0,    0,    0,    0,    0,  364,
988       401,    0,  389,  388,    0,    0,    0,    0,    0,    0,
989         0,    0,    0,    0,    0,    0,  477,    0,    0,    0,
990         0,  505,  504,    0,    0,  556,  555,    0,    0,    0,
991         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
992         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
993         0,    0,    0,    0,    0,    0,    0,    0,   21,   29,
994         0,    0,    0,    0,   20,   28,    0,  120,    0,  533,
995
996       564,  119,    0,  532,  563,    0,    0,    0,    0,    0,
997         0,    0,    0,    0,    0,    0,    0,    0,    0,  146,
998         0,  244,    0,  208,  207,    0,  212,  211,  244,  244,
999         0,    0,    0,    0,    0,    0,    0,    0,  278,  333,
1000         0,  319,  318,  333,    0,    0,  340,    0,    0,  339,
1001       401,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1002         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1003         0,    0,    0,    0,    0,    0,  576,    0,    0,    0,
1004       575,    0,    0,    0,    0,    0,  591,  599,    0,    0,
1005         0,    0,  590,  598,    0,    0,    0,    0,    0,    0,
1006
1007         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1008         0,   23,    0,    0,    0,   22,    0,  120,    0,  564,
1009       119,    0,  563,    0,    0,    0,    0,    0,    0,    0,
1010         0,    0,    0,    0,    0,    0,    0,  244,    0,    0,
1011       244,    0,    0,  234,    0,    0,    0,  233,    0,  278,
1012         0,    0,    0,    0,    0,    0,    0,    0,  401,    0,
1013         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1014         0,    0,  473,  472,    0,    0,    0,    0,    0,    0,
1015         0,    0,    0,  546,    0,    0,    0,    0,    0,    0,
1016         0,    0,    0,  593,    0,    0,    0,  592,    0,    0,
1017
1018         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1019         0,    0,    0,    0,    0,    0,    0,    0,    0,  150,
1020       149,   60,    0,   64,    0,   59,    0,   63,    0,   81,
1021         0,   80,    0,    0,  133,    0,  244,    0,    0,    0,
1022         0,    0,    0,    0,  236,    0,    0,  235,  278,    0,
1023       313,  312,    0,    0,    0,  342,  344,  341,  343,  401,
1024       425,    0,  424,    0,    0,  459,  455,    0,    0,  458,
1025       454,    0,  490,    0,  494,    0,  489,    0,  493,    0,
1026       574,    0,    0,  573,    0,    0,    0,  583,    0,    0,
1027         0,    0,    0,    0,  630,    0,  634,    0,  629,    0,
1028
1029       633,    0,    0,    0,    0,   12,    0,   12,    0,   33,
1030         0,    0,    0,    0,   31,   32,    0,    0,    0,    0,
1031        30,  150,  149,   58,   62,   57,   61,    0,    0,    0,
1032       244,    0,    0,    0,    0,    0,  232,  231,    0,    0,
1033         0,    0,  278,    0,    0,    0,    0,  401,    0,    0,
1034         0,    0,    0,    0,  488,  492,  487,  491,  568,  572,
1035       567,  571,  603,    0,    0,    0,    0,  601,  602,    0,
1036         0,    0,    0,  600,  628,  632,  627,  631,    0,    0,
1037         0,    0,    0,    0,    0,    0,   25,    0,    0,    0,
1038         0,   24,    0,    0,    0,    0,  163,    0,    0,    0,
1039
1040         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1041         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1042         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1043         0,    0,  595,    0,    0,    0,    0,  594,    0,    0,
1044         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1045         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1046         0,    0,    0,  238,    0,  237,    0,  262,  261,    0,
1047         0,    0,    0,    0,    0,    0,    0,    0,  383,  382,
1048         0,    0,  453,    0,  452,    0,    0,    0,    0,    0,
1049         0,    0,    0,    0,    0,   11,    0,    0,    0,    0,
1050
1051         0,    0,    0,    0,   83,   82,    0,    0,    0,    0,
1052         0,    0,    0,    0,    0,    0,    0,    0,  240,  239,
1053         0,    0,    0,    0,    0,    0,    0,    0,  427,  426,
1054         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1055         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1056         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1057         0,    0,    0,    0,    0,    0,    0,    0,    0,  457,
1058       456,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1059         0,    0,   35,    0,    0,    0,   34,    0,    0,    0,
1060         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1061
1062         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1063       605,    0,    0,    0,  604,    0,    0,    0,    0,   27,
1064         0,    0,   26,    0,    0,    0,    0,    0,    0,  220,
1065         0,    0,    0,  219,    0,    0,    0,  321,    0,    0,
1066         0,  320,    0,    0,    0,  597,    0,    0,  596,    0,
1067         0,   37,    0,   36,    0,    0,    0,    0,  226,    0,
1068         0,  225,    0,    0,  327,    0,    0,  326,    0,    0,
1069         0,  607,    0,  606,    0,    0,    0,    0,    0,    0,
1070         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1071         0,    0,   39,   38,    0,  196,    0,  195,    0,    0,
1072
1073         0,    0,    0,    0,    0,    0,  609,  608,    0,    0,
1074       198,  197,  224,    0,  223,    0,  325,    0,  324,    0,
1075         0,    0,  222,  221,  323,  322,    0,    0,    0,    0,
1076         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1077         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1078         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1079         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1080         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1081         0,    0,    0,    0,    0,    0,    0,    0,   13,    0
1082     } ;
1083
1084 static const YY_CHAR yy_ec[256] =
1085     {   0,
1086         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
1087         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
1088         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1089         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
1090         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
1091        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
1092        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
1093        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
1094        31,   38,   39,   40,   41,   42,   43,   44,   45,   46,
1095        47,    1,   48,    1,   49,    1,   50,   51,   52,   53,
1096
1097        54,   55,   56,   57,   58,   59,   60,   61,   62,   63,
1098        64,   65,   66,   67,   68,   69,   70,   71,   72,   73,
1099        74,   75,    1,    1,    1,    1,    1,    1,    1,    1,
1100         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1101         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1102         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1103         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1104         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1105         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1106         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1107
1108         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1109         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1110         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1111         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1112         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1113         1,    1,    1,    1,    1
1114     } ;
1115
1116 static const YY_CHAR yy_meta[76] =
1117     {   0,
1118         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
1119         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
1120         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
1121         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
1122         5,    5,    5,    5,    5,    5,    1,    1,    5,    9,
1123         9,    9,    9,    9,    9,    5,    5,    5,    5,    5,
1124         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
1125         5,    5,    5,    5,    5
1126     } ;
1127
1128 static const flex_int16_t yy_base[4543] =
1129     {   0,
1130         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
1131        14,   17,   33,   36,   49,   55,   45,   61,  109,  176,
1132        66,   72,   76,   79,   83,  129,  132,  135,  140,  157,
1133       196,  199,  202,  207,  224,  227,  233,  236,  244,  253,
1134       256,  261,  264,  273,  281,  284,  290,  293,  301,  310,
1135       313,  318,  321,  330,  338,  341,  359,  427,  379,  382,
1136       385,  390,  407,  447,  450,  453,  495,  563,  458,  475,
1137       515,  518,  521,  526,  543,  583,  631,  702,  586,  589,
1138       773,  834,  594,  611,  895,  963,  651,  654,  657,  662,
1139       679,  682,  722,  725, 1031, 1099,  728,  733,  750,  753,
1140
1141       793,  796,  799,  804, 1167, 1235,  854,  857,  860,  865,
1142       915,  918,  921,  926, 1303, 1371,  943,  983, 1439, 1508,
1143       986,  989,  994, 1011, 1051, 1054, 1057, 1062, 1577, 1635,
1144      1079, 1119, 1122, 1125, 1130, 1147, 1187, 1190, 1693, 1761,
1145      1193, 1198, 1215, 1255, 1258, 1261, 1266, 1283, 1829, 1899,
1146      1323, 1326, 1969, 2024, 1329, 1334, 1391, 1394, 1397, 1402,
1147      1459, 1462, 2079, 2147, 1465, 1470, 1528, 1531, 1534, 1539,
1148      1597, 1600, 2215, 2273, 1603, 1608, 2331, 2402, 1655, 1658,
1149      2473, 2541, 1661, 1666, 2609, 2677, 1713, 1716, 1719, 1724,
1150      2745, 2816, 1781, 1784, 1787, 1792, 1849, 1852, 1855, 1860,
1151
1152      1877, 1919, 1922, 1925, 1930, 1947, 1989, 1992, 1995, 2000,
1153      2044, 2047, 2887, 2955, 2050, 2055, 2099, 2102, 2105, 2110,
1154      2167, 2170, 3023, 3094, 2173, 2178, 3165, 3233, 2235, 2238,
1155      3301, 3369, 2241, 2246, 2293, 2296, 2299, 2304, 2351, 2354,
1156      3437, 3495, 2357, 2362, 3553, 3622, 2379, 2382, 2422, 2425,
1157      2428, 2433, 2450, 2453, 3691, 3759, 2493, 2496, 2499, 2504,
1158      2521, 2561, 2564, 2567, 3827, 3892,  204, 2583, 3957, 4026,
1159      2572, 2590, 4095, 4162, 2630, 2633, 2636, 2640, 2697, 2700,
1160      2703, 2708, 2765, 2768, 2771, 2776, 2793, 2796, 2836, 2839,
1161      2842, 2847, 2864, 2867, 2907, 2910, 2913, 2918, 2935, 2975,
1162
1163      2978, 2981, 2986, 3003, 3043, 3046, 3049, 3054, 3071, 3074,
1164      4229, 4297, 3114, 3117, 3120, 3125, 3142, 3145, 3185, 3188,
1165         0,    0,10560,14046,14046,   96,  100,   29,   41,14046,
1166       103,   51,14046,14046,10545,14046,14046,10534,14046,10549,
1167     10545,  762,14046,14046,14046,14046,10543,10543,10493,14046,
1168       160,10520,    0,   87,14046,10486,10470,14046,  166, 4361,
1169     10468, 4432, 3142, 4503,  278,   76,10520,   26,  279, 3203,
1170       392,10515,   31,14046,  169,10506,    0,  144,14046,10457,
1171     10448,   81,14046,  347,  154,  188,  204,14046,  414,10499,
1172         0,  268,14046,10448,10449,10454,10448,10437,14046,  417,
1173
1174        16,10455,  325,14046,  420,10484,    0,  305,14046,10449,
1175     14046,  482,  393,14046,  485,10478,    0,  370,14046,10447,
1176     10439,10441,14046,  488,  461,14046,  554,10470,    0,  506,
1177     14046,10417,10412,10416,14046,  622,  541,  469,14046,  685,
1178     10458,    0,  527,14046,10409,10409,14046,  688,  609,  514,
1179     14046,  691,10451,    0,  530,14046,10402,10397,10397,14046,
1180       756,  754,  529,14046,  759,10443,    0,  533,14046,10390,
1181     10404,10406,10388, 9779,   81,14046,  823,  865,14046,  885,
1182      9808,    0,  595,14046,  141, 9762, 9772,  545, 9757,   90,
1183       606, 9759,14046,  950, 9810,  801,14046,  953, 9801,    0,
1184
1185       713,14046, 9767,14046,  956, 9806,  861,14046, 1018, 9797,
1186         0,  743,14046, 9744, 9743, 9753, 9736,  330,14046, 1021,
1187       295, 9733,  862,14046, 1024, 9773,    0,  784,14046, 9724,
1188      9734, 9720,14046, 1083,  929,14046, 1086, 9760,    0,  811,
1189     14046, 9721,14046, 1089,  616,  219,  867,14046, 1092, 9752,
1190         0,  974,14046, 9721, 9716, 9718,   20,14046, 1151, 9742,
1191       872,14046, 1154, 9733,    0,  997,14046, 9693, 9689,14046,
1192      1157, 1201,14046, 1160, 9720,    0, 1042,14046, 9683, 9684,
1193     14046, 1222, 1269,14046, 1225, 9713,    0, 1110,14046, 9681,
1194      9661,14046, 1228, 1334,14046, 1290, 9704,    0, 1178,14046,
1195
1196      9652, 9649, 9656, 9650, 9651,  398,14046, 1293, 1337, 1338,
1197     14046, 1296, 9678,    0, 1246,14046, 9641,14046, 1363, 3149,
1198       166, 1356, 1405,  597,  997,14046, 1422, 9673,    0, 1314,
1199     14046, 9604, 9609, 9613, 9603, 9596,14046, 1431,  297, 1005,
1200     14046, 1490, 9643,    0, 1335,14046, 9604, 9605,14046, 1499,
1201      1348,14046, 1559, 9631,    0, 1406,14046, 9586, 9586, 1421,
1202      9573,  796,14046, 1568, 1477,14046, 1625, 9602,    0, 1409,
1203     14046, 9552,  671,14046, 1628, 1483, 1065,14046, 1683, 9595,
1204         0, 1519,14046, 9550, 9559,14046, 1686, 1546,14046, 1744,
1205      9577,    0, 1588,14046, 9523, 9527, 9527, 9505,14046, 1750,
1206
1207      9565, 1133,14046, 1753, 9556,    0, 1612,14046, 9505, 9515,
1208      9502, 9500,14046, 1812,  340, 9495, 1322,14046, 1818, 9535,
1209         0, 1646,14046, 9496, 9499, 9484, 1863, 9489,14046, 1821,
1210      9501,    0, 1670,14046, 9459, 9459, 9448,14046, 1886, 1933,
1211     14046, 1889, 9490,    0, 1704,14046, 9456, 9443,14046, 1894,
1212      3207, 9430, 3208, 1989, 1416, 1864, 3272, 1345,14046, 1956,
1213      9474,    0, 1728,14046, 9424, 9418,  698,14046, 1959, 1732,
1214      1351, 1964,  866, 9416,14046, 9464, 9452,14046,14046,14046,
1215      2061,  179, 9402, 9400, 9397, 9446,14046,    0, 2643, 9394,
1216      9422, 9404, 1432,  420,  408, 9371, 9363, 9366, 9359, 1954,
1217
1218       555, 9341, 9342, 9343, 2002, 9367,  759,  683, 9336, 9335,
1219      9336, 2057,  558, 9319, 9315, 9317, 9340,  861, 2068, 9304,
1220      9328,  888, 9301,  956, 1024,  830,  944, 1157, 1092,14046,
1221         0, 9291, 9310, 9305, 9294, 9332, 9294,14046,    0, 9288,
1222      9281, 9268, 9279, 9261, 9258, 1487,14046,    0, 9246, 9255,
1223     14046,    0, 9241, 3323, 9233, 9239,14046,    0, 9220, 9234,
1224      9226, 9226,14046,    0, 9206, 9215, 9213,14046,    0, 9190,
1225      9209, 9200, 9196,14046,    0, 3326, 3331, 9177, 9190, 9183,
1226      9181, 9177, 9179,14046,    0, 9180, 3336, 9161, 3349, 9157,
1227      9155, 9151, 9156, 9156, 9137, 9149, 9144, 9141, 9126, 9137,
1228
1229     14046,    0, 3389, 9136,14046,    0, 9136,  214, 3392, 9114,
1230      9127, 9113, 9104, 9093,14046,    0, 9083, 3395, 3399, 9091,
1231     14046,    0, 9073, 9071,14046,    0, 9064, 3402, 9057, 9074,
1232      9066, 9054,14046,    0, 9042, 3457, 9047,14046,    0, 3460,
1233      9045, 9029,14046,    0, 9028, 9016, 9017,14046,    0, 9027,
1234      9020, 9004, 3463, 8997, 9007, 9010, 8993, 8992,14046,    0,
1235      8979, 8979, 1498, 1216, 2071, 1225, 1558, 2125,14046,    0,
1236      8980, 8973, 8969, 8980, 8977, 8961,14046,    0, 3467, 8962,
1237      8957,14046,    0, 8957, 3471, 8934, 8949, 8934, 8933, 8931,
1238      8928, 8907,14046,    0, 8904, 8903, 8892, 8885,14046,    0,
1239
1240      8887, 3515, 8882,14046,    0, 8874, 8878, 3518, 8871, 8867,
1241     14046,    0, 8870, 3521, 8872, 8849, 8851, 8854,14046,    0,
1242      8845, 3525, 8830,   13, 8827, 8874,14046,    0, 8839, 8813,
1243      8825, 8804,14046,    0, 3529, 8798, 8792,14046,    0, 8796,
1244      8815, 8806, 8794, 8780, 8830, 8839, 1781, 8781,14046, 2128,
1245         0, 8773, 8773, 8809, 8807, 8752,14046, 3573, 2197, 8746,
1246      3259, 3576, 2263, 8744, 8752, 8755, 8740, 8743, 8721, 8723,
1247      8717, 8727, 8711,  265, 8719, 8720, 8705, 8704, 8696, 8700,
1248      8709, 8695, 8688, 2321, 8699, 8684, 8687, 8666, 8667, 8681,
1249      8667, 8654, 8635, 8636, 8647, 8623, 2325, 8620, 8617, 2391,
1250
1251      8616, 8604, 8598, 8596, 3579, 3585, 3591, 3645, 3582, 3642,
1252      8589, 8599, 8573, 8580, 8576, 8562, 3648, 3663, 8572, 8553,
1253      3653, 3656, 8569, 3714, 2460, 8561, 3717, 3725, 3722, 3728,
1254      3732, 3780, 3783, 3786, 3789, 3795, 3847, 3850, 3861, 3857,
1255      3868, 3913, 3916, 2524, 3922, 2593, 3934, 3987, 3990, 3995,
1256      3999, 3928, 4061, 2009, 3977, 2662, 8556, 3981, 2728, 4048,
1257      8551, 8542, 8551, 8543, 8520, 8521, 8523, 8520, 8507, 4055,
1258      4058, 4066, 2799, 4118, 4121, 8501, 8489, 8497, 4125, 2870,
1259      8500, 8491, 8475, 4128, 4131,  285, 8475, 4184, 3081, 4187,
1260      3153, 4194, 4197, 8483, 4249, 4260, 8482, 4209, 3284, 8470,
1261
1262      8456, 8447, 4252, 4255, 8460, 4264, 3354, 4317, 4322, 4327,
1263      3421, 8441, 4331, 4336, 8456, 8419, 4355, 4367, 8427,  473,
1264      8416, 4345, 3610, 4358, 8424, 8408, 4382, 4386, 8425, 8402,
1265      4389, 4394, 8399, 8404, 8401, 8401, 8410, 8392, 8398, 8403,
1266      8370, 4401, 4413, 4439, 3810, 8365, 4442, 4445, 8380, 4448,
1267      3875, 4457, 8369, 4466, 8373, 8371, 8354, 4471, 4484, 4507,
1268      4511, 4514, 4475, 4517, 8332, 4525, 3940, 4536, 4539, 8347,
1269      8323, 4543, 4085, 8337, 4546, 4571, 8320, 4580, 4143, 8305,
1270      8304, 4584, 4590,  343, 8298, 4593, 4152, 8293, 8313, 4598,
1271      4603,14046, 8274, 8281, 8281, 4611, 4617, 4622, 4284, 8261,
1272
1273      4625, 4630, 4644, 4649, 4652, 4658, 4662, 4670, 8308,14046,
1274     14046,  979, 8254,14046, 8297, 8295, 8236,14046,14046, 8234,
1275      4677,14046,14046, 8243, 4685, 4689,14046, 4693, 2207, 8236,
1276      8229, 8221, 8230, 8235, 8226, 8214, 8222, 8201, 8179, 8178,
1277      8183, 8156, 8150, 8141,  497, 8155, 8128, 8129, 8138, 8135,
1278       565, 2210, 8123, 8126, 8134, 8125, 8113, 8111, 8117, 8117,
1279      8093, 8090, 8090, 8102, 8098, 8097, 8081, 8074, 8072, 8046,
1280      8041, 4696, 4719, 8034, 8032, 4708, 4727, 8037, 4704, 4735,
1281     14046, 4738, 8023, 7998, 4741, 8013, 8002, 7982, 4744, 4747,
1282     14046, 4750, 7979, 7972, 4759, 4769,14046, 4772, 7951, 4778,
1283
1284     14046,14046, 7944, 4791, 4794,14046, 4797, 4804, 4818, 7884,
1285      7879, 4827, 4830, 4838, 4841,14046, 4848, 4851, 4860, 4869,
1286      4872, 4880, 4883,14046, 4887, 4890, 4893, 7869, 7868, 4902,
1287      4908, 4916, 4920,14046, 4923, 4926,14046,14046, 4935,14046,
1288     14046, 4943, 4947, 7872, 7858, 7842, 7826, 4955, 4961,14046,
1289      4964, 7804, 7805, 7771, 4967,14046,14046, 4975, 4983,14046,
1290     14046, 4993, 4996, 7744, 7761, 7695, 7686, 7682, 7656, 7660,
1291      7652, 1617, 5004, 5007,14046, 5014, 5017,14046,14046, 5026,
1292      5029,14046, 5033, 7595, 7592, 5036, 5039,14046,14046, 7572,
1293      7586, 7562, 5048, 5054,14046, 5057, 7484, 5060, 5063,14046,
1294
1295     14046, 5079,14046,14046, 5087, 5090,14046, 5095, 5098, 5101,
1296      5109,14046, 5116, 7441, 5124,14046,14046, 7421, 7421, 7424,
1297      5120, 5135,14046, 5139, 7367, 5142,14046,14046, 5150, 5154,
1298     14046, 5158, 5163,14046,14046, 7363, 5173, 5177,14046, 5180,
1299      5184, 5187, 5192, 5205,14046, 5211, 7341, 7338, 7329,   18,
1300      5214,14046,14046, 5224, 5232,   72,   98, 5242, 5245,14046,
1301      5248,  105,  163, 5251, 5254,14046, 5257,  168,  195, 1809,
1302       208,  203, 5276,  249,  256,  258, 5280, 5283,14046, 5286,
1303      5290,14046,14046,  304, 5306, 5309,14046, 5312,  334, 5315,
1304     14046,14046, 5332, 5335, 5343, 5350, 5354,  374, 5362,  411,
1305
1306      5368, 5371,14046, 5375, 5380, 5383, 5394, 5398,  486, 5406,
1307      5412,14046, 5415,  507, 5418,14046,14046, 5426, 5437,14046,
1308      5440,  547,  614, 5445,14046,14046,  643, 5459, 5462,14046,
1309      5466,  642, 5469,14046,14046,  637, 5485, 5488, 5491,14046,
1310      5494,  645, 5497, 5503,14046,14046, 5515,  676, 5518, 5521,
1311     14046, 5524,  685, 5529,  687, 5533, 5543,14046, 5547, 5553,
1312     14046,14046,  684, 5562, 5566,14046, 5569, 5573, 5581,  699,
1313       703, 5591, 5596,  750, 5604, 5609,14046, 5613,  790, 5616,
1314     14046,14046,  812,  854,  827, 5619,14046,  823,  864,  878,
1315       898,  932, 1004,  999, 1013, 2267, 1003, 2603, 1015, 1066,
1316
1317      2670, 1081, 1084, 2737, 1075, 1087, 1094, 1149, 3193, 2740,
1318      1134, 1158, 1142, 1149, 1165, 2946, 1201, 3014, 3263, 1218,
1319      1228, 1248, 3294, 1277, 3362, 3430, 1280, 1308, 1348, 5638,
1320     14046,14046, 1338, 1361, 5646,14046,14046, 1362, 5623, 3489,
1321      1379, 5654, 5657, 1407, 1420, 1447, 5665, 1443, 5675, 5668,
1322      1487, 1495, 5679, 5687,14046,14046, 1484, 1512, 5698,14046,
1323     14046, 5706, 5709,14046,14046, 5718,14046,14046, 5728, 5731,
1324     14046,14046, 1499, 1522, 5740,14046,14046, 5748, 5751,14046,
1325     14046, 1540, 1564, 5760, 1543, 5763, 5767, 5770, 5773, 5778,
1326      5797, 5805,14046,14046, 5791, 5813, 5816, 5822, 5825, 5834,
1327
1328      5845, 5848, 5852, 5855, 5858, 5873, 1570, 1565, 5866, 5877,
1329      1580, 5892, 1622, 5896, 1603, 5899, 5903, 5911, 5920, 5931,
1330      5939, 1616, 1625, 1617, 1632, 5942, 1623, 5946, 5949, 5953,
1331      5967, 5972, 1668, 5981, 1679, 5985, 1661, 1674, 5988,14046,
1332     14046, 6006, 1686, 6009, 1681, 1674, 6012, 1672, 1692, 1705,
1333      1696, 1719, 6015, 6018, 1723, 1740, 1751, 6033, 6036, 6039,
1334      1753, 6043,14046,14046, 6054, 6058, 6066,14046,14046, 1754,
1335      6075, 6080, 1752, 6088, 6093,14046,14046, 6103,14046,14046,
1336      1738, 6111, 1754, 6114, 1761, 1764, 1775, 6117, 1782, 6120,
1337      6123, 6126, 6141, 1799, 6144, 6147, 1812, 1844, 6155, 1806,
1338
1339      6162, 6165, 6174, 6183, 1808, 6186, 6192,14046,14046, 1803,
1340      1831, 6207,14046,14046, 1816, 6216, 1910, 1874, 6219,14046,
1341      1915,14046,14046, 1880, 1872, 3547, 1888, 1880, 1885, 1902,
1342      1910, 1929, 3604, 1939, 1952, 3675, 1954, 1960, 3682, 3685,
1343      1948, 1946, 3752, 1957, 3820, 1964, 4017, 3887, 1958, 3952,
1344      1954, 1991, 1993, 2012, 2013, 4020, 2017, 2042, 4080, 4190,
1345      4222, 2054, 4292, 4219, 2051, 2048, 2051, 4800, 6222, 6225,
1346      6228, 6239, 6246, 2069, 2067, 6250,14046,14046, 2075, 2075,
1347      2070, 6258, 2090, 6261, 6265, 6273, 2093, 2089, 6279, 6282,
1348      6292, 6300, 6306, 6310, 6315, 6319, 6329, 6334, 6338, 6341,
1349
1350      6352, 6356, 6359, 6363, 6377, 6380, 6388,14046,14046, 6398,
1351      6401, 6404, 6407, 6410, 6429, 6432, 6435, 6452, 6458, 6470,
1352      6476, 6479, 2127, 2120, 6484,14046,14046, 6498, 6501, 6507,
1353      2129, 6519, 4640, 6525,14046,14046, 6538, 6544,14046,14046,
1354      6552, 2134, 2115, 2134, 2138, 6557, 2139, 6560, 6563, 6567,
1355      6581, 6586,14046,14046, 2148, 6594, 2153, 6600, 6604, 6613,
1356      2144, 6621, 6624, 2176, 6632, 2182, 2184, 6635, 6641, 2195,
1357      2184, 2192, 2191, 6644,14046,14046, 2199, 2197, 2191, 6654,
1358      6657, 6662, 6675, 2192, 6678,14046,14046, 2211, 6690,14046,
1359     14046, 2218, 6698, 2237, 6701, 2242, 6707, 6710, 6713, 6720,
1360
1361      6731, 2240, 6734, 6738, 6754,14046,14046, 6746, 2261, 6765,
1362     14046,14046, 2254, 2273, 6773, 2246, 6781, 3719, 5047, 6776,
1363      6795, 6803, 2262, 6806, 6809, 6812, 6815, 6818, 2350, 2299,
1364      2347,14046, 6833, 2293, 6837, 2300, 2305, 2352, 2302, 2306,
1365      6840, 2318, 2323, 2322, 2331, 6843, 2332, 2350, 6846, 6851,
1366      6856, 2379, 6859, 2382, 2368, 2385, 2378, 2467, 2373, 2377,
1367      2387, 2393, 6862, 6865, 2394, 6868, 2407, 2391, 2494, 2535,
1368      6871, 6874, 6882, 6885, 2407, 6893, 2398, 2407, 2410, 2434,
1369      2451, 6896, 2447, 6900,14046,14046, 6915, 2443, 6908, 6918,
1370      6921, 6927, 6939, 6942, 6950, 6953, 6957, 6962, 6975, 6981,
1371
1372      6989, 6993, 6996, 7004, 7011,14046,14046, 7022, 7025, 7033,
1373      7036,14046,14046, 7044, 7052, 2457, 2469, 2459, 7047, 7065,
1374      7073, 2471, 2482, 7076,14046,14046, 7086, 7091, 2467, 2461,
1375      7099, 7104, 2479, 2488, 7107, 7111, 7119,14046,14046, 2514,
1376      7127,14046, 7130, 7134, 7137, 2508, 7140, 2529, 2522, 7146,
1377     14046, 2519, 7159, 7165,14046,14046, 7173, 2554, 7178, 2540,
1378      7182,14046,14046, 7197, 7200, 2550, 7211,14046,14046, 2545,
1379      7221,14046, 2558, 7224, 7227, 7230, 7233, 2573, 7236, 2586,
1380      2588, 2583, 2597, 7242, 7246,14046,14046, 7254,14046, 2599,
1381      7257, 2611, 7261, 2617, 7264, 2626, 7267, 7275, 7286, 7294,
1382
1383      7297, 7300, 7315, 7318, 7322,14046,14046, 7336, 2628, 2656,
1384      2687, 7339, 7342, 2691, 2678, 2754, 2679, 2695, 2683, 2755,
1385      2683, 7345,14046,14046, 7360, 7363, 7366,14046, 7370, 7375,
1386      7391, 7394, 2664, 7402, 2761, 2795, 2786, 7409, 7412, 7421,
1387      2654, 2679, 2697, 2697, 2718, 7427, 7430, 7433, 2725, 7436,
1388      2727, 2724, 2742, 7439, 7442, 7445, 7448, 2743, 2740, 7451,
1389      2756, 2773, 2749, 2768, 7454, 7457, 2785, 7460, 7465, 7468,
1390      2788, 2786, 7471,14046,14046, 7479,14046,14046, 2804, 7487,
1391      2795, 7490, 7496, 7499, 7502, 7508,14046, 2790, 7520, 2804,
1392      7523, 7527, 7535, 7542,14046,14046, 7550,14046,14046, 7558,
1393
1394      7565, 7568,14046,14046, 7584,14046,14046, 7592, 7598,14046,
1395     14046, 7606, 7611, 7620,14046,14046, 7628, 7631,14046,14046,
1396      2799, 2814, 2828, 7640,14046,14046, 7648, 7651, 2825, 2815,
1397      7659,14046,14046, 2831, 7667, 7670, 7673, 2822, 2815, 7676,
1398     14046,14046, 2825, 7685, 7692, 2846, 7696, 7700, 2863, 2854,
1399      2862, 2861, 7714, 7719, 2873, 7722,14046, 2866, 7726,14046,
1400     14046, 2860, 2869, 2870, 7745, 7748, 7756, 7759, 7763, 7766,
1401      7769, 7775, 7778, 7787, 7783, 2866, 7796, 7805, 2890, 7814,
1402      2889, 7817,14046, 2874, 7822, 7829,14046,14046, 7837, 7844,
1403      7855,14046,14046, 7863, 7866, 7869, 7877, 2878, 2888, 2905,
1404
1405      7884,14046, 7887, 7890, 2919, 2932, 2946, 2952, 2965, 2957,
1406      2955, 2957, 2963, 2974, 7898, 7905, 7910, 7919,14046,14046,
1407      7930,14046,14046, 2949, 7938, 7941, 2991, 2994, 7945, 3831,
1408      5298, 7953, 7960, 7963, 2941, 2939, 2950, 7966, 7969, 2960,
1409      7972, 7975, 2958, 7978, 7981, 7984, 2970, 2991, 3005, 7987,
1410      7990, 2993, 2995, 3003, 7993, 7996, 3008, 7999, 8002, 3000,
1411      3016, 3026, 3032, 8007, 8010, 8013, 8016, 8026, 8031, 8034,
1412      8037, 8040, 8044, 8052,14046,14046, 8062, 8066, 8069, 8072,
1413      8075,14046,14046, 8091, 3030, 3030, 3075, 8094,14046,14046,
1414      8104, 3027, 3031, 8110, 8115, 8123, 8128,14046, 3052, 3071,
1415
1416      3076, 8135, 8138, 8142, 8147,14046,14046, 8160, 8163, 8166,
1417      8169, 8172, 8191, 8197, 3073, 3079, 3080, 8200, 8203,14046,
1418     14046, 8211, 8219, 8222, 8230, 8226, 8240, 8244, 8247, 8250,
1419      8262,14046,14046, 8253, 8258,14046, 3087, 3085, 8272,14046,
1420      8277,14046,14046, 8285, 8293,14046,14046, 8304, 3076, 3081,
1421     14046, 8307,14046,14046, 3126, 3113, 3132, 3149, 3168, 3173,
1422      3162, 3178, 3173, 3182, 8315, 8323, 7557, 8296, 3159, 8337,
1423      8340, 3204, 3198, 3154, 3164, 3215, 3162, 3170, 3188, 3211,
1424      3349, 3220, 3234, 8343, 8346, 3235, 3248, 3277, 8352, 8359,
1425      3271, 8362, 3267, 3280, 8365, 8368, 3280, 3277, 3305, 8371,
1426
1427      3287, 3299, 8374, 3306, 8378,14046, 8381, 8384,14046,14046,
1428      8392, 8398, 8406, 8410, 8413, 8416, 8419, 8424, 8437, 8440,
1429      8443, 8446, 8449,14046, 3336, 3344, 3337, 3362, 8452, 8470,
1430      3352, 3361, 8478, 3985, 4052, 8486,14046, 3351, 3358, 8489,
1431      8492, 8495,14046, 8498, 8516, 3373, 3368, 3370, 8524, 8527,
1432      8530, 8501, 8538, 8545, 8551, 3366, 3368, 8559, 8563, 8566,
1433      8570,14046,14046, 8578, 8581, 8589, 8592, 8596,14046, 8601,
1434      8615, 3395, 3411, 3409, 8610,14046, 8623, 3413, 3406, 3438,
1435      3434, 3452, 3439, 3469, 3468, 3477, 3495, 3486, 3511, 8630,
1436      3478, 3483, 3529, 3481, 3488, 3491, 3511, 3548, 3527, 3539,
1437
1438      3556, 8633, 3600, 3655, 3730, 3551, 3595, 3599, 3610, 3619,
1439      3619, 3644, 3663, 3676, 3683, 3683, 3686, 3725, 3747, 3764,
1440      8636, 8642, 3739, 3755, 8645, 3740, 3764, 3782, 8652, 3760,
1441      3772, 8655, 8658, 8661,14046,14046, 8669, 8672, 8680, 8692,
1442      8687,14046, 8700,14046,14046, 8708,14046, 8711, 8714, 8717,
1443      3778, 3802, 8720, 3799, 8723,14046,14046, 3825, 3817, 3870,
1444      3901, 3886, 3889, 4104, 3892, 3871, 8738, 8741, 8744, 8752,
1445      8759,14046,14046, 3893, 3898, 3915, 8774, 8778, 8786, 4431,
1446      4544, 8794,14046, 8797, 8800,14046,14046, 3908, 8808, 8816,
1447      8819, 8827,14046, 8830,14046,14046, 8838, 8842, 8850, 8857,
1448
1449      8868, 4180, 4235, 3922, 8876, 8879, 8882, 8885, 8888, 3958,
1450      3973, 3983, 3986, 4007, 3985, 3994, 4029, 4033, 4047, 8897,
1451      4001, 4013, 4012, 4029, 4030, 4046, 4048, 4077, 4075, 4079,
1452      4087, 4086, 8901, 8906, 4158, 4139, 4164, 4092, 4144, 4133,
1453      4155, 4165, 4195, 4197, 4211, 4200, 4217, 4225, 4231, 4215,
1454      8909, 4227, 8912, 4238, 4270, 4258, 8919, 4264, 4278, 4284,
1455      8925, 8928, 8936, 4329, 4330, 8944,14046,14046, 8955, 8959,
1456      8962, 4279, 8965, 8968, 8974, 8986, 4300, 4309, 4350, 4334,
1457      4354, 4340, 4357, 4341, 4372, 4357, 4350, 8989, 8992, 9000,
1458     14046,14046, 9008,14046, 4340, 9012, 4355, 9015,14046,14046,
1459
1460      4372, 4374, 4383, 4388, 4389, 4390, 9030, 4383, 9033, 9036,
1461      9045,14046,14046, 9053, 4467, 4497, 9061,14046,14046, 4396,
1462      4399, 4501, 4400, 4403, 4545, 4394, 9069, 9072, 9080, 9083,
1463      9091, 9094, 9098, 9101, 4438, 4422, 4426, 4439,14046, 4471,
1464      4456, 4457, 4461,14046, 9110, 4438, 4471, 4458, 4490, 4498,
1465      4507, 4490, 4503, 4503, 4528, 4536, 4548, 9116, 9119, 9129,
1466     14046, 4588, 4602, 9134, 4540, 4543, 4563, 4611, 4624, 4574,
1467      4567, 4570, 4586, 4640, 4658, 4608, 4621, 9137, 4606, 9140,
1468      4609, 4631, 9143, 4631, 9148, 4634, 9156, 5166, 5285, 4674,
1469      4688, 4686, 4692, 9164, 9167, 9170, 4658, 9173, 9176, 9191,
1470
1471     14046,14046, 9199, 9202, 4652, 4665, 4707, 4707, 4717, 4718,
1472      4737, 4717, 4728, 4728, 4722, 9210,14046,14046, 4724, 9218,
1473      9221, 4709, 4742, 4751, 4782, 4747, 4756, 4800, 9236,14046,
1474      4755, 9239,14046,14046, 4782, 4787, 4785, 4790, 4796, 4790,
1475      4791, 4807, 4815, 4803, 4812, 4820, 9247, 9251, 5439, 5629,
1476      9259,14046,14046, 9267, 9270,14046,14046, 4816, 4835, 4853,
1477      4838, 4825, 4855, 4870, 4858, 9278, 4829, 4833, 4855, 4909,
1478      4910, 4870, 4864, 4866, 4889, 4939, 4945, 4894, 9282, 5919,
1479      6353, 4970, 9290, 9293, 9297, 4906, 4892, 4966,14046,14046,
1480      4921, 4926, 4913, 4974,14046,14046, 4938, 9312, 4924, 9316,
1481
1482      9320, 9323, 4932, 9329, 9332, 4967, 4978, 4949, 4960, 4986,
1483      5018, 4983, 5000, 5045, 5034, 5049, 5039, 9335, 9338,14046,
1484      9341, 5029, 9344,14046,14046, 9360,14046,14046, 9368, 5027,
1485      5070, 5068, 5103, 5075, 5080, 5091, 5123, 5095, 5077, 9371,
1486      9374,14046,14046, 9382, 5112, 5123,14046, 5115, 5138,14046,
1487      5113, 5147, 5146, 5166, 5159, 5164, 5178, 5180, 5171, 5184,
1488      5196, 5199, 5191, 9389, 9393, 5196, 5213, 5178, 5209, 5228,
1489      5240, 5203, 5215, 9401, 5241, 5242,14046, 5243, 5246, 5246,
1490     14046, 5261, 9410, 5243, 5229, 5295,14046,14046, 5251, 5251,
1491      5258, 5319,14046,14046, 5278, 5306, 5317, 5285, 5301, 5325,
1492
1493      5341, 5304, 5326, 5370, 9413, 9416, 9425, 9479, 9527, 5326,
1494      5327,14046, 5345, 5338, 5339,14046, 5353, 9435, 5358, 9438,
1495      9444, 5369, 9447, 5419, 5392, 5427, 5368, 5428, 5406, 5441,
1496      5384, 5447, 5415, 5447, 5418, 9450, 9453, 5407, 9456, 9459,
1497      9474, 5432, 5438,14046, 5471, 5445, 5443,14046, 5474, 5442,
1498      9499, 9502, 9521, 9510, 5509, 5523, 5530, 5531, 5481, 5537,
1499      5512, 5545, 5520, 5536, 5572, 5574, 5541, 5563, 5582, 5587,
1500      5561, 9547,14046,14046, 5597, 5565, 5603, 5546, 5619, 5591,
1501      5622, 5566, 9539,14046, 5629, 5605, 5612, 5637, 5618, 5620,
1502      9558, 5587, 5595,14046, 5607, 5608, 5613,14046, 5626, 5680,
1503
1504      5656, 5691, 5630, 5696, 5667, 5705, 5648, 5721, 9561, 5739,
1505      5708, 9581, 9629, 5806, 5669, 5717, 6467, 5675, 5727, 9569,
1506      9592,14046, 5741,14046, 5752,14046, 5752,14046, 5775,14046,
1507      5763,14046, 5765, 9601,14046, 9604, 5716, 9607, 5795, 5803,
1508      9623, 9650, 5764, 5770,14046, 5775, 5778,14046, 5751, 9658,
1509     14046,14046, 9666, 5881, 5933,14046,14046,14046,14046, 5759,
1510     14046, 5818,14046, 5821, 5851,14046,14046, 5828, 5859,14046,
1511     14046, 5844,14046, 5878,14046, 5881,14046, 5879,14046, 5881,
1512     14046, 5885, 5898,14046, 5901, 5916, 9676,14046, 6418, 5877,
1513      5923, 6645, 5880, 5923,14046, 5930,14046, 5932,14046, 5938,
1514
1515     14046, 5949, 5941, 5957, 5975, 5961, 6045, 5970, 9679,14046,
1516      5931, 5949, 5941, 6024,14046,14046, 5956, 5976, 5964, 6042,
1517     14046, 9615, 9641,14046,14046,14046,14046, 5993, 5995, 9682,
1518      9685, 6052, 6034, 6111, 6051, 9688,14046,14046, 6017, 6061,
1519      6065, 6074, 9703, 6114, 6074, 6132, 6133, 9706, 6063, 6072,
1520      6123, 6114, 6145, 6146,14046,14046,14046,14046,14046,14046,
1521     14046,14046,14046, 6112, 6132, 6127, 6191,14046,14046, 6125,
1522      6149, 6136, 6193,14046,14046,14046,14046,14046, 9709, 6198,
1523      6184, 6203, 9712, 6164, 6164, 6167,14046, 6187, 6188, 6176,
1524      6179,14046, 6201, 6215, 6217, 9715,14046, 9724, 9735, 6232,
1525
1526      6246, 6265, 6255, 6251, 6259, 6275, 6265, 6255, 6299, 6262,
1527      6306, 9743, 9746, 6284, 6294, 6306, 6313, 6309, 6318, 6330,
1528      6331, 9754, 9761, 6330, 6333, 6369, 6355, 6376, 6364, 6339,
1529      6324, 6348,14046, 6368, 6371, 6353, 6358,14046, 6378, 9757,
1530      6410, 6384, 6402, 6376, 6397, 6394, 6412, 6387, 6411, 6458,
1531      6457, 9772, 6479, 6485, 6430, 6436, 6432, 6445, 6447, 6458,
1532      6457, 6467, 6492,14046, 6505,14046, 9780,14046,14046, 6478,
1533      6486, 6487, 6500, 6495, 6500, 6497, 6506, 9788,14046,14046,
1534      6532, 6534,14046, 6510,14046, 6515, 6495, 6512, 6487, 6516,
1535      6518, 6535, 6508, 6527, 6566,14046, 6517, 6524, 6525, 6537,
1536
1537      6535, 6533, 6537, 6555,14046,14046, 6596, 6591, 6599, 6600,
1538      6601, 6616, 6623, 6611, 6632, 6642, 6643, 6633,14046,14046,
1539      6645, 6658, 6660, 6648, 6659, 6666, 6671, 6658,14046,14046,
1540      6700, 6698, 6655, 6653, 6657, 6669, 6664, 6663, 6663, 6686,
1541      6725, 6683, 6698, 6748, 6705, 6702, 6716, 6763, 6719, 6746,
1542      6766, 6749, 6769, 6755, 6753, 6775, 6777, 6766, 6783, 6800,
1543      6804, 6793, 6791, 6808, 6826, 6842, 6840, 6867, 6868,14046,
1544     14046, 6842, 6853, 6902, 6860, 6852, 6872, 6919, 6878, 6927,
1545      6879, 6883,14046, 6933, 6894, 6896,14046, 6954, 6935, 6936,
1546      6938, 6942, 6955, 6949, 6982, 6948, 6975, 6966, 6995, 6969,
1547
1548      6985, 6979, 7013, 6981, 7004, 6995, 7024, 7002, 6989, 6998,
1549     14046, 7053, 7005, 7008,14046, 7055, 7078, 7004, 7064,14046,
1550      7011, 7064,14046, 7051, 7057, 7054, 7060, 7085, 7063,14046,
1551      7062, 7103, 7083,14046, 7081, 7121, 7102,14046, 7108, 7137,
1552      7118,14046, 7115, 7094, 7150,14046, 7097, 7155,14046, 7153,
1553      7091,14046, 7096,14046, 7135, 7153, 7146, 7167,14046, 7168,
1554      7163,14046, 7171, 7172,14046, 7181, 7175,14046, 7184, 7179,
1555      7144,14046, 7145,14046, 9796, 7215, 7233, 7225, 7247, 7228,
1556      7263, 7229, 7249, 7236, 7256, 7239, 7259, 7242, 7267, 7299,
1557      7298, 9799,14046,14046, 7302,14046, 7302,14046, 7306, 7270,
1558
1559      7306, 7283, 7323, 7286, 7323, 7289,14046,14046, 7330, 7333,
1560     14046,14046,14046, 7330,14046, 7343,14046, 7349,14046, 7348,
1561      7338, 7407,14046,14046,14046,14046, 7445, 7466, 7355, 7467,
1562      7340, 7475, 7500, 7559, 7371, 7537, 7553, 7577, 7538, 7543,
1563      7368, 7476, 7556, 7585, 7571, 7608, 7599, 7616, 7601, 7661,
1564      7638, 7687, 7365, 7681, 7691, 7711, 7707, 7725, 7664, 7688,
1565      7721, 7781, 7736, 7775, 7802, 7816, 7782, 7790, 7807, 7842,
1566      7810, 7862, 7895, 8001, 7885, 7906, 7785, 7900, 7907, 8004,
1567      7834, 8011, 8067, 8081, 8084, 7499, 9807, 9810,14046,14046,
1568      9830, 9839, 9848, 9857, 9866, 9875, 9884, 9893, 9902, 9911,
1569
1570      9920, 9929, 9938, 9947, 9956, 9965, 9974, 9983, 9992,10001,
1571     10010,10019,10028,10037,10046,10055,10064,10073,10082,10091,
1572     10100,10109,10118,10127,10136,10145,10154,10163,10172,10181,
1573     10190,10199,10208,10217,10226,10235,10244,10253,10262,10271,
1574     10280,10289,10298,10307,10316,10325,10334,10343,10352,10361,
1575     10370,10379,10388,10397,10406,10415,10424,10433,10442,10449,
1576     10456,10463,10470,10477,10484,10491,10498,10505,10512,10519,
1577     10526,10533,10540,10547,10554,10561,10568,10575,10582,10589,
1578     10596,10603,10610,10617,10624,10631,10638,10645,10652,10659,
1579     10668,10675,10680,10687,10692,10699,10704,10711,10716,10723,
1580
1581     10728,10735,10740,10747,10752,10759,10764,10771,10776,10783,
1582     10788,10795,10800,10807,10812,10819,10824,10831,10836,10843,
1583     10848,10855,10860,10867,10872,10879,10884,10891,10896,10903,
1584     10908,10915,10920,10927,10932,10939,10944,10951,10956,10963,
1585     10968,10975,10980,10987,10992,10999,11004,11011,11016,11023,
1586     11028,11035,11040,11049,11055,11062,11070,11078,11086,11093,
1587     11101,11108,11116,11123,11131,11139,11147,11155,11163,11171,
1588     11179,11187,11195,11202,11210,11218,11225,11233,11240,11248,
1589     11255,11263,11270,11278,11285,11293,11300,11308,11315,11323,
1590     11330,11338,11345,11353,11360,11368,11375,11383,11390,11398,
1591
1592     11406,11414,11421,11429,11436,11444,11451,11459,11466,11474,
1593     11481,11489,11496,11504,11512,11520,11529,11535,11542,11550,
1594     11557,11565,11572,11580,11587,11595,11602,11610,11617,11625,
1595     11633,11640,11648,11655,11663,11670,11678,11686,11693,11701,
1596     11709,11717,11725,11733,11740,11748,11755,11763,11770,11778,
1597     11786,11794,11801,11809,11816,11824,11831,11839,11846,11854,
1598     11861,11869,11876,11884,11891,11899,11906,11914,11921,11929,
1599     11937,11945,11952,11960,11967,11975,11982,11990,11999,12008,
1600     12015,12022,12030,12037,12045,12053,12061,12068,12076,12083,
1601     12091,12099,12106,12114,12121,12129,12137,12145,12153,12160,
1602
1603     12168,12176,12184,12191,12199,12206,12214,12222,12230,12237,
1604     12245,12252,12260,12267,12275,12282,12290,12298,12306,12313,
1605     12321,12328,12336,12343,12351,12358,12366,12373,12381,12388,
1606     12396,12403,12411,12418,12426,12433,12441,12450,12459,12466,
1607     12474,12482,12489,12497,12505,12512,12520,12528,12536,12544,
1608     12552,12560,12568,12576,12584,12592,12600,12607,12615,12623,
1609     12631,12638,12646,12653,12661,12669,12676,12684,12691,12699,
1610     12706,12714,12721,12729,12737,12744,12752,12759,12767,12774,
1611     12782,12790,12798,12805,12813,12820,12828,12835,12843,12850,
1612     12858,12866,12874,12883,12892,12900,12907,12915,12922,12930,
1613
1614     12938,12945,12953,12961,12969,12977,12985,12993,13000,13008,
1615     13016,13023,13031,13039,13046,13053,13061,13069,13076,13084,
1616     13091,13099,13107,13114,13122,13129,13137,13144,13152,13159,
1617     13167,13175,13183,13191,13199,13206,13214,13222,13230,13238,
1618     13245,13253,13262,13271,13278,13286,13294,13302,13309,13317,
1619     13325,13333,13341,13349,13356,13364,13372,13379,13387,13395,
1620     13402,13409,13417,13425,13432,13439,13447,13455,13463,13470,
1621     13478,13485,13492,13500,13508,13516,13523,13531,13538,13546,
1622     13555,13564,13571,13579,13587,13595,13603,13611,13619,13627,
1623     13635,13643,13650,13658,13665,13673,13681,13689,13697,13705,
1624
1625     13713,13721,13728,13736,13744,13752,13760,13767,13774,13782,
1626     13790,13797,13805,13812,13820,13829,13838,13845,13853,13861,
1627     13869,13877,13885,13893,13900,13907,13915,13922,13930,13938,
1628     13945,13953,13961,13968,13975,13982,13991,14000,14009,14018,
1629     14027,14036
1630     } ;
1631
1632 static const flex_int16_t yy_def[4543] =
1633     {   0,
1634      3991, 3991, 3992, 3992, 3992, 3992, 3993, 3993, 3994, 3994,
1635      3995, 3995, 3996, 3996, 3996, 3996, 3997, 3997, 3998, 3998,
1636      3999, 3999, 3999, 3999, 3991, 3991, 3999, 3999, 3999, 3999,
1637      3991, 3991, 3999, 3999, 3999, 3999, 3991, 3991, 3999, 3999,
1638      3991, 3991, 3999, 3999, 3999, 3999, 3991, 3991, 3999, 3999,
1639      3991, 3991, 3999, 3999, 3999, 3999, 4000, 4000, 4001, 4001,
1640      3991, 3991, 4001, 4001, 4001, 4001, 4002, 4002, 4003, 4003,
1641      3991, 3991, 4003, 4003, 4003, 4003, 4004, 4004, 4005, 4005,
1642      4006, 4006, 4007, 4007, 4008, 4008, 4009, 4009, 3991, 3991,
1643      4009, 4009, 4009, 4009, 4010, 4010, 4011, 4011, 3991, 3991,
1644
1645      4011, 4011, 4011, 4011, 4012, 4012, 4013, 4013, 3991, 3991,
1646      4013, 4013, 4013, 4013, 4014, 4014, 4015, 4015, 4016, 4016,
1647      4017, 4017, 3991, 3991, 4017, 4017, 4017, 4017, 4018, 4018,
1648      4019, 4019, 3991, 3991, 4019, 4019, 4019, 4019, 4020, 4020,
1649      4021, 4021, 3991, 3991, 4021, 4021, 4021, 4021, 4022, 4022,
1650      4023, 4023, 4024, 4024, 4025, 4025, 3991, 3991, 4025, 4025,
1651      4025, 4025, 4026, 4026, 4027, 4027, 3991, 3991, 4027, 4027,
1652      4027, 4027, 4028, 4028, 4029, 4029, 4030, 4030, 4031, 4031,
1653      4032, 4032, 4033, 4033, 4034, 4034, 4035, 4035, 3991, 3991,
1654      4036, 4036, 4037, 4037, 4037, 4037, 3991, 3991, 4037, 4037,
1655
1656      4037, 4037, 3991, 3991, 4037, 4037, 3991, 3991, 4037, 4037,
1657      4037, 4037, 4038, 4038, 4039, 4039, 3991, 3991, 4039, 4039,
1658      4039, 4039, 4040, 4040, 4041, 4041, 4042, 4042, 4043, 4043,
1659      4044, 4044, 4045, 4045, 3991, 3991, 4045, 4045, 4045, 4045,
1660      4046, 4046, 4047, 4047, 4048, 4048, 4049, 4049, 3991, 3991,
1661      4049, 4049, 4049, 4049, 4050, 4050, 4051, 4051, 3991, 3991,
1662      4051, 4051, 4051, 4051, 4052, 4052, 4053, 4053, 4054, 4054,
1663      4055, 4055, 4056, 4056, 4057, 4057, 4057, 4057, 3991, 3991,
1664      4057, 4057, 4057, 4057, 3991, 3991, 4057, 4057, 4057, 4057,
1665      3991, 3991, 4057, 4057, 3991, 3991, 4057, 4057, 4057, 4057,
1666
1667      3991, 3991, 4057, 4057, 3991, 3991, 4057, 4057, 4057, 4057,
1668      4058, 4058, 4059, 4059, 3991, 3991, 4059, 4059, 4059, 4059,
1669      3991, 3991, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1670      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1671      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1672      3990, 3990, 4060, 3990, 3990, 4060, 4060, 3990, 3990, 3990,
1673       360, 3990,  362, 3990,  364,  362,  363,  362,  363,  364,
1674       370,  369,  362, 3990, 3990, 3990, 4061, 3990, 3990, 4061,
1675      4061, 4061, 3990, 3990,  362,  362,  362, 3990, 3990, 3990,
1676      4062, 3990, 3990, 4062, 4062, 4062, 4062, 4062, 3990, 3990,
1677
1678       362,  362,  362, 3990, 3990, 3990, 4063, 3990, 3990, 4063,
1679      3990, 3990, 3990, 3990, 3990, 3990, 4064, 3990, 3990, 4064,
1680      4064, 4064, 3990, 3990, 3990, 3990, 3990, 3990, 4065, 3990,
1681      3990, 4065, 4065, 4065, 3990, 3990,  362,  362, 3990, 3990,
1682      3990, 4066, 3990, 3990, 4066, 4066, 3990, 3990,  362,  362,
1683      3990, 3990, 3990, 4067, 3990, 3990, 4067, 4067, 4067, 3990,
1684      3990,  362,  362, 3990, 3990, 3990, 4068, 3990, 3990, 4068,
1685      4068, 4068, 4068, 4068, 4068, 3990, 3990, 3990, 3990, 3990,
1686      3990, 4069, 3990, 3990, 4069, 4069, 4069, 4069, 4069, 4069,
1687      4069, 4069, 3990, 3990,  362,  362, 3990, 3990, 3990, 4070,
1688
1689      3990, 3990, 4070, 3990, 3990,  362,  362, 3990, 3990, 3990,
1690      4071, 3990, 3990, 4071, 4071, 4071, 4071, 4071, 3990, 3990,
1691       362,  362,  362, 3990, 3990, 3990, 4072, 3990, 3990, 4072,
1692      4072, 4072, 3990, 3990, 3990, 3990, 3990, 3990, 4073, 3990,
1693      3990, 4073, 3990, 3990,  364,  364,  362, 3990, 3990, 3990,
1694      4074, 3990, 3990, 4074, 4074, 4074, 4074, 3990, 3990,  362,
1695       362, 3990, 3990, 3990, 4075, 3990, 3990, 4075, 4075, 3990,
1696      3990, 3990, 3990, 3990, 3990, 4076, 3990, 3990, 4076, 4076,
1697      3990, 3990, 3990, 3990, 3990, 3990, 4077, 3990, 3990, 4077,
1698      4077, 3990, 3990, 3990, 3990, 3990, 3990, 4078, 3990, 3990,
1699
1700      4078, 4078, 4078, 4078, 4078, 4078, 3990, 3990, 3990, 3990,
1701      3990, 3990, 3990, 4079, 3990, 3990, 4079, 3990, 3990,  364,
1702       620,  362,  362,  362,  362, 3990, 3990, 3990, 4080, 3990,
1703      3990, 4080, 4080, 4080, 4080, 4080, 3990, 3990,  362,  362,
1704      3990, 3990, 3990, 4081, 3990, 3990, 4081, 4081, 3990, 3990,
1705      3990, 3990, 3990, 3990, 4082, 3990, 3990, 4082, 4082, 4082,
1706      4082, 4082, 3990, 3990, 3990, 3990, 3990, 3990, 4083, 3990,
1707      3990, 4083, 4083, 3990, 3990,  362,  362, 3990, 3990, 3990,
1708      4084, 3990, 3990, 4084, 4084, 3990, 3990, 3990, 3990, 3990,
1709      3990, 4085, 3990, 3990, 4085, 4085, 4085, 4085, 3990, 3990,
1710
1711       362,  362, 3990, 3990, 3990, 4086, 3990, 3990, 4086, 4086,
1712      4086, 4086, 3990, 3990,  362,  362,  362, 3990, 3990, 3990,
1713      4087, 3990, 3990, 4087, 4087, 4087, 3990, 3990, 3990, 3990,
1714      3990, 4088, 3990, 3990, 4088, 4088, 4088, 3990, 3990, 3990,
1715      3990, 3990, 3990, 4089, 3990, 3990, 4089, 4089, 3990, 3990,
1716       364,  751,  362,  364,  362,  753,  751,  362, 3990, 3990,
1717      3990, 4090, 3990, 3990, 4090, 4090, 4090, 3990, 3990,  362,
1718       362, 3990, 4091, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1719      3990, 3990, 3990, 3990, 3990, 3990, 3990, 4092, 4092, 4092,
1720      4093, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1721
1722      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1723      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1724      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1725      4094, 4094, 4094, 4094, 4094, 4095, 3990, 3990, 4096, 4096,
1726      4096, 4096, 4096, 4096, 4097, 3990, 3990, 4098, 4098, 4099,
1727      3990, 4100, 4100, 4100, 4100, 4101, 3990, 4102, 4102, 4102,
1728      4102, 4103, 3990, 4104, 4104, 4104, 4105, 3990, 4106, 4106,
1729      4106, 4106, 4107, 3990, 4108, 4108, 4108, 4108, 4108, 4108,
1730      4108, 4108, 4109, 3990, 4110, 4110, 4110, 4110, 4110, 4110,
1731      4110, 4110, 4110, 4110, 4110, 4110, 4110, 4110, 4110, 4111,
1732
1733      3990, 4112, 4112, 4113, 3990, 4114, 4114, 4114, 4114, 4114,
1734      4114, 4114, 4115, 3990, 3990, 4116, 4116, 4116, 4116, 4117,
1735      3990, 4118, 4118, 4119, 3990, 4120, 4120, 4120, 4120, 4120,
1736      4120, 4121, 3990, 4122, 4122, 4122, 4123, 3990, 4124, 4124,
1737      4124, 4125, 3990, 4126, 4126, 4126, 4127, 3990, 4128, 4128,
1738      4128, 4128, 4128, 4128, 4128, 4128, 4129, 3990, 3990, 4130,
1739      4130, 4131, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 4132,
1740      4132, 4132, 4132, 4132, 4132, 4133, 3990, 4134, 4134, 4134,
1741      4135, 3990, 4136, 4136, 4136, 4136, 4136, 4136, 4136, 4136,
1742      4136, 4137, 3990, 4138, 4138, 4138, 4138, 4139, 3990, 4140,
1743
1744      4140, 4140, 4141, 3990, 4142, 4142, 4142, 4142, 4142, 4143,
1745      3990, 4144, 4144, 4144, 4144, 4144, 4145, 3990, 3990, 4146,
1746      4146, 4146, 4146, 3990, 4147, 3990, 3990, 4148, 4148, 4148,
1747      4148, 4149, 3990, 4150, 4150, 4150, 4151, 3990, 4152, 4152,
1748      4152, 4152, 4152, 4153, 4154, 3990, 4154, 3990, 3990, 3990,
1749      4155, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 4156,
1750      4157, 4157, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1751      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1752      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1753      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1754
1755      3990, 3990, 3990, 3990, 4158, 4158, 4158, 4158, 4159, 4159,
1756      3990, 4160, 4160, 4160, 4160, 4160, 4161, 4161, 3990, 4162,
1757      4163, 4163, 4164, 3990, 3990, 4164, 4165, 4165, 4166, 4166,
1758      4166, 4167, 4167, 4168, 4168, 4169, 4169, 4170, 4170, 4170,
1759      4171, 4171, 3990, 3990, 3990, 3990, 4172, 4172, 4172, 4172,
1760      4172, 4173, 4173, 4174, 3990, 3990, 4174, 3990, 3990, 4174,
1761      4174, 4174, 4174, 4174, 4174, 4174, 4174, 4174, 4174, 4175,
1762      4175, 3990, 3990, 4176, 4176, 4177, 4177, 4177, 3990, 3990,
1763      4177, 4177, 4177, 4178, 4178, 3990, 4179, 3990, 3990, 3990,
1764      3990, 4180, 4180, 4181, 4182, 4182, 4183, 3990, 3990, 4183,
1765
1766      4183, 4183, 4184, 4184, 4185, 3990, 3990, 4186, 4186, 3990,
1767      3990, 4187, 4188, 4188, 4189, 4189, 4190, 4190, 4191, 4191,
1768      4191, 3990, 3990, 4191, 4191, 4191, 4192, 4192, 3990, 4193,
1769      4194, 4194, 3990, 3990, 3990, 3990, 4195, 4195, 4195, 4195,
1770      4195, 4196, 4196, 3990, 3990, 4197, 4198, 4198, 4199, 3990,
1771      3990, 4199, 4199, 4199, 4199, 4199, 4199, 4200, 4200, 4201,
1772      4201, 4201, 4202, 4202, 4203, 3990, 3990, 4204, 4204, 4205,
1773      4205, 3990, 3990, 4205, 4206, 4206, 4207, 3990, 3990, 4207,
1774      4207, 4208, 4208, 3990, 4209, 3990, 3990, 4209, 3990, 4210,
1775      4210, 3990, 4211, 4211, 4211, 4212, 4212, 3990, 3990, 4213,
1776
1777      4214, 4214, 4215, 4215, 4215, 4215, 4216, 4216, 4217, 3990,
1778      3990, 4217, 3990, 3990, 4218, 3990, 3990, 3990, 3990, 3990,
1779      3990, 3990, 3990, 4219, 3990, 4220, 3990, 4220, 3990, 3990,
1780      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1781      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1782      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1783      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1784      3990, 3990, 3990, 4221, 4221, 3990, 3990, 4221, 3990, 4222,
1785      3990, 4222, 3990, 4223, 4223, 4223, 4223, 4223, 3990, 4224,
1786      3990, 4224, 3990, 4225, 3990, 4226, 3990, 4226, 4227, 3990,
1787
1788      3990, 3990, 4227, 3990, 4228, 3990, 4228, 3990, 3990, 4229,
1789      4229, 3990, 3990, 3990, 4230, 3990, 4230, 3990, 3990, 3990,
1790      3990, 3990, 4231, 3990, 4231, 3990, 3990, 4232, 4232, 3990,
1791      3990, 3990, 4233, 3990, 4233, 3990, 3990, 3990, 3990, 3990,
1792      3990, 3990, 3990, 4234, 4234, 4234, 4234, 3990, 4235, 3990,
1793      4235, 4236, 4236, 4236, 3990, 3990, 3990, 4236, 3990, 3990,
1794      3990, 3990, 3990, 4236, 4236, 4236, 4236, 4236, 4236, 4236,
1795      4236, 4236, 3990, 4237, 3990, 4237, 3990, 3990, 3990, 3990,
1796      4238, 3990, 4238, 4239, 4239, 4239, 3990, 3990, 3990, 4239,
1797      4239, 4239, 3990, 4240, 3990, 4240, 3990, 4241, 3990, 3990,
1798
1799      3990, 3990, 3990, 3990, 3990, 4242, 3990, 4242, 4243, 3990,
1800      4244, 3990, 4244, 4245, 3990, 3990, 3990, 4245, 4245, 4245,
1801      3990, 4246, 3990, 4246, 4247, 3990, 3990, 3990, 3990, 4248,
1802      3990, 4248, 3990, 3990, 3990, 4249, 3990, 4250, 3990, 4250,
1803      4251, 4251, 3990, 4252, 3990, 4252, 4253, 4253, 4253, 4253,
1804      3990, 3990, 3990, 3990, 3990, 4253, 4253, 3990, 4254, 3990,
1805      4254, 3990, 4255, 3990, 4256, 3990, 4256, 3990, 3990, 3990,
1806      3990, 4257, 4257, 4257, 4257, 4257, 3990, 4258, 3990, 4258,
1807      3990, 3990, 3990, 4259, 3990, 4260, 3990, 4260, 4261, 3990,
1808      3990, 3990, 3990, 3990, 4261, 3990, 3990, 4261, 4261, 4261,
1809
1810      3990, 4262, 3990, 4262, 3990, 3990, 3990, 3990, 4263, 3990,
1811      4264, 3990, 4264, 4265, 3990, 3990, 3990, 3990, 4266, 3990,
1812      4266, 4267, 4267, 3990, 3990, 3990, 4267, 3990, 4268, 3990,
1813      4268, 4269, 3990, 3990, 3990, 4269, 4269, 3990, 4270, 3990,
1814      4270, 3990, 4271, 3990, 3990, 3990, 4271, 3990, 3990, 4272,
1815      3990, 4272, 4273, 4273, 4273, 3990, 4274, 3990, 4274, 3990,
1816      3990, 3990, 4275, 3990, 4276, 3990, 4276, 3990, 3990, 4277,
1817      4277, 3990, 3990, 4277, 3990, 4278, 3990, 4278, 4279, 4280,
1818      3990, 3990, 3990, 3990, 4281, 3990, 3990, 3990, 3990, 3990,
1819      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1820
1821      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1822      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1823      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1824      3990, 3990, 4282, 4282, 3990, 3990, 3990, 4282, 4283, 3990,
1825      4284, 3990, 3990, 4284, 4284, 4284, 4285, 3990, 4286, 4287,
1826      4288, 4288, 4289, 3990, 3990, 3990, 4290, 4290, 3990, 3990,
1827      3990, 4291, 3990, 3990, 3990, 3990, 3990, 3990, 4292, 3990,
1828      3990, 3990, 4293, 4293, 3990, 3990, 3990, 4294, 3990, 3990,
1829      3990, 4295, 4295, 4295, 4295, 4296, 4297, 4297, 4297, 3990,
1830      3990, 3990, 3990, 3990, 4297, 4297, 4297, 4297, 4297, 4297,
1831
1832      4297, 4297, 4297, 4297, 4298, 4299, 4300, 4300, 3990, 3990,
1833      4300, 4300, 4300, 4301, 3990, 3990, 3990, 4302, 3990, 3990,
1834      4303, 4304, 4304, 4304, 4304, 4305, 4306, 4307, 4308, 4309,
1835      3990, 3990, 4310, 4311, 4312, 4312, 4312, 4312, 3990, 3990,
1836      3990, 4312, 4312, 4313, 3990, 4314, 4315, 3990, 3990, 3990,
1837      3990, 4316, 3990, 3990, 4316, 4316, 4316, 4317, 4318, 4319,
1838      4320, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 4320,
1839      3990, 3990, 4320, 4321, 3990, 3990, 3990, 3990, 3990, 3990,
1840      4322, 4323, 4324, 4325, 4326, 4326, 4326, 4327, 4328, 4328,
1841      3990, 3990, 4329, 3990, 3990, 3990, 4330, 3990, 4331, 4332,
1842
1843      3990, 3990, 4332, 4333, 4334, 4335, 3990, 3990, 3990, 4336,
1844      4336, 3990, 3990, 3990, 4336, 4337, 4338, 4339, 4339, 3990,
1845      4339, 3990, 3990, 4340, 3990, 3990, 3990, 3990, 3990, 3990,
1846      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1847      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1848      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1849      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 4341,
1850      4341, 4341, 4342, 3990, 4343, 3990, 3990, 3990, 4343, 4343,
1851      4343, 4344, 3990, 3990, 3990, 4345, 4346, 4346, 4347, 4348,
1852      4348, 4349, 4350, 4351, 4351, 4352, 4353, 4353, 3990, 3990,
1853
1854      4353, 4354, 3990, 3990, 4355, 4355, 3990, 3990, 3990, 4355,
1855      4355, 4355, 4355, 4355, 4355, 3990, 3990, 4355, 4355, 4355,
1856      4356, 4357, 4358, 4358, 3990, 3990, 3990, 4358, 3990, 3990,
1857      4358, 4359, 3990, 3990, 3990, 3990, 4360, 3990, 3990, 3990,
1858      4361, 4362, 4362, 4362, 4362, 4363, 4364, 4365, 3990, 3990,
1859      4366, 3990, 3990, 3990, 4367, 4368, 4369, 3990, 3990, 4369,
1860      4369, 3990, 3990, 4369, 4370, 3990, 4371, 4372, 3990, 3990,
1861      3990, 3990, 4373, 3990, 3990, 3990, 4373, 4373, 4373, 4374,
1862      3990, 3990, 4375, 4376, 3990, 3990, 3990, 4376, 3990, 3990,
1863      3990, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4382, 4382,
1864
1865      4383, 4384, 3990, 3990, 3990, 3990, 3990, 4385, 3990, 3990,
1866      3990, 3990, 4386, 3990, 4387, 4388, 3990, 3990, 3990, 3990,
1867      3990, 4389, 4390, 4391, 4392, 4392, 4392, 4393, 4394, 4395,
1868      4395, 3990, 4396, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1869      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1870      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1871      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1872      3990, 3990, 3990, 3990, 4397, 4398, 3990, 4399, 4399, 4399,
1873      4399, 4400, 3990, 3990, 3990, 3990, 4401, 4402, 4402, 4403,
1874      3990, 3990, 3990, 3990, 4404, 4405, 3990, 3990, 3990, 3990,
1875
1876      4406, 3990, 3990, 4407, 3990, 3990, 3990, 3990, 3990, 4408,
1877      3990, 3990, 3990, 3990, 3990, 4409, 4409, 4409, 3990, 3990,
1878      4409, 4409, 4409, 3990, 3990, 3990, 3990, 3990, 4409, 4409,
1879      4410, 4411, 4412, 4412, 3990, 3990, 3990, 3990, 3990, 4412,
1880      3990, 3990, 3990, 4413, 4414, 4415, 4415, 4415, 4415, 3990,
1881      3990, 4416, 4417, 3990, 3990, 3990, 4418, 4419, 4420, 4421,
1882      3990, 3990, 3990, 3990, 3990, 4421, 3990, 3990, 3990, 4421,
1883      3990, 3990, 3990, 4422, 4423, 3990, 3990, 3990, 3990, 4424,
1884      4424, 4424, 4424, 4425, 3990, 3990, 3990, 3990, 3990, 4426,
1885      4426, 4426, 4427, 4428, 4429, 4430, 4431, 3990, 3990, 4432,
1886
1887      3990, 3990, 4433, 4434, 3990, 3990, 3990, 4435, 3990, 4436,
1888      3990, 4437, 4438, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1889      3990, 3990, 3990, 3990, 4439, 4440, 3990, 3990, 3990, 3990,
1890      3990, 3990, 4441, 4442, 4443, 4444, 4444, 3990, 3990, 3990,
1891      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1892      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1893      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1894      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 4445, 4446,
1895      3990, 4447, 4447, 4447, 4447, 3990, 3990, 3990, 4448, 4449,
1896      3990, 3990, 4450, 3990, 3990, 3990, 3990, 3990, 3990, 4451,
1897
1898      4452, 3990, 3990, 3990, 3990, 3990, 3990, 4453, 3990, 3990,
1899      3990, 3990, 3990, 3990, 3990, 3990, 4454, 3990, 3990, 3990,
1900      4455, 4455, 4455, 3990, 3990, 3990, 3990, 3990, 4455, 4455,
1901      3990, 3990, 3990, 4455, 4455, 4456, 4457, 4458, 4458, 3990,
1902      3990, 3990, 4458, 4459, 4460, 4461, 3990, 3990, 4461, 4461,
1903      4461, 4462, 4463, 4464, 4465, 3990, 3990, 4466, 3990, 3990,
1904      3990, 4466, 4466, 3990, 3990, 3990, 4467, 3990, 3990, 3990,
1905      4468, 4468, 4468, 4468, 4469, 4470, 3990, 3990, 4470, 4471,
1906      4472, 3990, 3990, 4473, 4474, 3990, 3990, 3990, 3990, 3990,
1907      3990, 3990, 3990, 4475, 3990, 3990, 4476, 3990, 4477, 3990,
1908
1909      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1910      3990, 3990, 3990, 3990, 4478, 3990, 3990, 3990, 3990, 3990,
1911      3990, 3990, 3990, 4479, 4480, 4481, 4482, 4482, 3990, 3990,
1912      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1913      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1914      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1915      3990, 3990, 4483, 4484, 3990, 3990, 3990, 4485, 4485, 4485,
1916      3990, 4486, 4487, 3990, 3990, 3990, 4488, 4489, 4490, 4491,
1917      3990, 3990, 3990, 4492, 4493, 4493, 4493, 3990, 3990, 3990,
1918      4493, 4493, 4493, 3990, 3990, 4494, 3990, 3990, 4495, 4495,
1919
1920      4495, 4496, 4497, 4498, 3990, 3990, 3990, 4498, 4498, 4498,
1921      4499, 4500, 4501, 4502, 4503, 4503, 4503, 3990, 3990, 3990,
1922      3990, 4504, 3990, 3990, 3990, 4505, 4505, 4505, 4506, 4507,
1923      3990, 3990, 3990, 4507, 3990, 3990, 4508, 4509, 3990, 3990,
1924      3990, 3990, 3990, 4510, 3990, 3990, 3990, 4511, 3990, 4512,
1925      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1926      3990, 3990, 3990, 3990, 4513, 3990, 3990, 3990, 4514, 4515,
1927      4516, 4517, 4517, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1928      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1929      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1930
1931      3990, 3990, 3990, 4518, 3990, 3990, 3990, 3990, 3990, 3990,
1932      3990, 3990, 4519, 4519, 3990, 4520, 3990, 3990, 4521, 4522,
1933      4523, 4524, 3990, 3990, 4525, 4525, 4525, 4525, 3990, 3990,
1934      4525, 4525, 3990, 3990, 3990, 3990, 3990, 4526, 4526, 4526,
1935      4527, 3990, 3990, 3990, 3990, 4528, 4528, 4528, 4528, 3990,
1936      3990, 4529, 4530, 3990, 3990, 4531, 4531, 4531, 3990, 4532,
1937      3990, 3990, 3990, 3990, 3990, 4533, 4533, 3990, 3990, 3990,
1938      3990, 4534, 4535, 4536, 3990, 3990, 4511, 3990, 4512, 3990,
1939      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 4513,
1940      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1941
1942      4514, 4515, 4516, 4517, 4517, 3990, 3990, 3990, 3990, 3990,
1943      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1944      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1945      3990, 3990, 4518, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1946      3990, 3990, 3990, 3990, 3990, 3990, 3990, 4522, 4523, 4524,
1947      4525, 4525, 4525, 4525, 3990, 3990, 3990, 4525, 4525, 3990,
1948      3990, 3990, 3990, 3990, 3990, 4526, 4526, 3990, 3990, 4527,
1949      3990, 3990, 3990, 4528, 4528, 4528, 3990, 3990, 3990, 3990,
1950      3990, 3990, 3990, 4530, 3990, 3990, 3990, 4531, 4531, 3990,
1951      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1952
1953      3990, 3990, 3990, 4534, 4535, 4536, 4511, 3990, 4512, 3990,
1954      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 4513,
1955      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1956      3990, 3990, 4514, 4515, 4516, 4517, 4517, 3990, 3990, 3990,
1957      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1958      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1959      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 4522, 4523,
1960      4524, 4525, 4525, 3990, 3990, 4525, 4525, 4525, 3990, 3990,
1961      3990, 3990, 3990, 3990, 3990, 3990, 4526, 3990, 3990, 3990,
1962      3990, 3990, 3990, 3990, 4528, 4528, 4528, 3990, 3990, 3990,
1963
1964      3990, 3990, 3990, 3990, 3990, 3990, 4530, 4531, 3990, 3990,
1965      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1966      3990, 3990, 3990, 3990, 3990, 4534, 3990, 3990, 3990, 3990,
1967      4511, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1968      3990, 3990, 3990, 3990, 4513, 3990, 3990, 3990, 3990, 3990,
1969      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1970      3990, 4516, 4517, 4517, 3990, 3990, 3990, 3990, 3990, 3990,
1971      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1972      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1973      3990, 3990, 3990, 4522, 4523, 4524, 4525, 3990, 3990, 3990,
1974
1975      3990, 3990, 3990, 3990, 4525, 4525, 3990, 3990, 3990, 3990,
1976      3990, 3990, 3990, 3990, 4526, 3990, 3990, 3990, 4528, 3990,
1977      3990, 4528, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1978      4531, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1979      3990, 3990, 3990, 3990, 3990, 3990, 4534, 3990, 3990, 3990,
1980      3990, 3990, 3990, 4511, 3990, 3990, 3990, 3990, 3990, 3990,
1981      3990, 3990, 3990, 3990, 3990, 4513, 3990, 3990, 3990, 3990,
1982      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1983      3990, 4516, 4517, 4517, 4517, 3990, 3990, 3990, 3990, 3990,
1984      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1985
1986      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1987      3990, 3990, 3990, 3990, 3990, 3990, 3990, 4522, 3990, 3990,
1988      4524, 4525, 3990, 3990, 3990, 3990, 3990, 3990, 4525, 4525,
1989      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 4526, 4528,
1990      3990, 3990, 3990, 4528, 3990, 3990, 3990, 3990, 3990, 3990,
1991      4531, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1992      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1993      3990, 3990, 3990, 4511, 3990, 3990, 3990, 3990, 3990, 3990,
1994      3990, 3990, 4513, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1995      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1996
1997      3990, 3990, 3990, 4516, 4517, 4517, 4517, 4537, 4538, 3990,
1998      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1999      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2000      3990, 3990, 3990, 3990, 3990, 4522, 4524, 4525, 3990, 3990,
2001      4525, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 4526,
2002      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 4531, 3990,
2003      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2004      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2005      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2006      4513, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2007
2008      3990, 3990, 3990, 3990, 3990, 3990, 3990, 4516, 4517, 4539,
2009      4540, 4537, 4538, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2010      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2011      3990, 3990, 3990, 3990, 3990, 4524, 4525, 3990, 3990, 3990,
2012      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 4526, 3990,
2013      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 4531,
2014      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2015      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2016      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2017      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2018
2019      3990, 3990, 4516, 4539, 4517, 4541, 4540, 4542, 4517, 3990,
2020      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2021      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 4524,
2022      4525, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2023      3990, 3990, 4526, 3990, 3990, 3990, 3990, 4531, 3990, 3990,
2024      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2025      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2026      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 4516, 4541,
2027      3990, 4542, 4517, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2028      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2029
2030      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2031      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2032      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2033      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 4516,
2034      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2035      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2036      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2037      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2038      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2039      3990, 3990, 3990, 3990, 4516, 3990, 3990, 3990, 3990, 3990,
2040
2041      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2042      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2043      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2044      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2045      4516, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2046      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2047      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2048      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 4516,
2049      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2050      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2051
2052      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2053      3990, 3990, 3990, 3990, 3990, 3990, 4516, 3990, 3990, 3990,
2054      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2055      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2056      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 4516,
2057      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2058      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2059      3990, 3990, 3990, 3990, 4516, 3990, 3990, 3990, 3990, 3990,
2060      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2061      3990, 4516, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2062
2063      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 4516, 4516,
2064      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2065      4516, 4516, 3990, 3990, 3990, 3990, 4516, 4516, 4516, 4516,
2066      4516, 4516, 4516, 4516, 4516, 4516, 4516, 4516, 4516, 4516,
2067      4516, 4516, 4516, 4516, 4516, 4516, 4516, 4516, 4516, 4516,
2068      4516, 4516, 4516, 4516, 4516, 4516, 4516, 4516, 4516, 4516,
2069      4516, 4516, 4516, 4516, 4516, 4516, 4516, 4516, 4516, 4516,
2070      4516, 4516, 4516, 4516, 4516, 4516, 4516, 4516, 4516, 4516,
2071      4516, 4516, 4516, 4516, 4516, 4516, 4516, 4516, 3990,    0,
2072      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2073
2074      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2075      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2076      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2077      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2078      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2079      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2080      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2081      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2082      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2083      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2084
2085      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2086      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2087      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2088      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2089      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2090      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2091      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2092      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2093      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2094      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2095
2096      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2097      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2098      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2099      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2100      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2101      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2102      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2103      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2104      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2105      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2106
2107      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2108      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2109      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2110      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2111      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2112      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2113      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2114      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2115      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2116      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2117
2118      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2119      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2120      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2121      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2122      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2123      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2124      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2125      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2126      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2127      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2128
2129      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2130      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2131      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2132      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
2133      3990, 3990
2134     } ;
2135
2136 static const flex_int16_t yy_nxt[14122] =
2137     {   0,
2138      3990,  326,  327,  326,  326,  327,  326,  326,  327,  326,
2139       326,  327,  326,  331,  327,  331,  337,  328,  334,  337,
2140       328,  334, 1046,  329, 3990,  335,  329,  845,  335,  332,
2141       331,  327,  331,  773,  338,  340,  341,  338,  340,  341,
2142       342,  343,  791,  342,  343,  773,  332,  347,  348,  774,
2143       344,  340,  341,  344,  345,  776,  342,  340,  341, 1289,
2144       345,  775,  342,  347,  348,  846,  344,  359,  327,  359,
2145      1838,  775,  344,  359,  327,  359,  930,  359,  327,  359,
2146       359,  327,  359,  360,  327,  327,  327,  791,  931,  360,
2147       819,  776,  349,  361,  803,  819,  361,  772,  772,  772,
2148
2149       362,  772,  772,  772,  772,  772,  772,  775,  349,  350,
2150       351,  327,  351,  350,  350,  350,  350,  350,  350,  350,
2151       352,  350,  350,  350, 1842,  350,  354,  350,  355,  350,
2152       327,  327,  327,  359,  327,  359,  359,  327,  359,  894,
2153       819,  359,  327,  359,  803,  881,  362,  834,  776,  360,
2154       882, 1843,  360,  895,  835,  350,  350,  363,  359,  327,
2155       359,  772,  772,  772,  775,  836,  356,  772,  772,  772,
2156       772,  772,  772, 1845,  363,  357,  350,  351,  327,  351,
2157       350,  350,  350,  350,  350,  350,  350,  352,  350,  350,
2158       350,  886,  350,  354,  350,  355,  350,  327,  327,  327,
2159
2160       327,  327,  327,  359,  327,  359,  340,  341,  359,  327,
2161       359,  342,  887,  364,  837,  836,  364,  795,  819,  365,
2162      1846,  727,  350,  350,  365,  359,  327,  359,  359,  327,
2163       359, 1848,  813,  356,  327,  327,  327,  327,  327,  327,
2164      1052,  366,  357, 1053,  366,  359,  327,  359,  837, 1849,
2165       367,  728,  819,  367,  359,  327,  359,  327,  327,  327,
2166      1851,  363,  327,  327,  327,  359,  327,  359,  819,  807,
2167       363, 1852,  776,  368,  359,  327,  359, 1177,  368,  811,
2168      1178,  366,  359,  327,  359,  359,  327,  359,  775,  791,
2169       366,  327,  327,  327,  327,  327,  327, 1855,  369,  792,
2170
2171       806,  369,  359,  327,  359, 1856,  913,  370,  976,  776,
2172       370,  359,  327,  359,  327,  327,  327, 1341,  371,  327,
2173       327,  327,  359,  327,  359,  775, 1857,  371,  824,  825,
2174       372,  359,  327,  359, 1342,  372,  845, 1341,  369,  359,
2175       327,  359,  359,  327,  359,  826,  846,  369,  772,  772,
2176       772, 1017,  804,  816, 1497,  373,  914, 1859,  373,  374,
2177       375,  327,  375,  374,  374,  374,  374,  374,  374,  374,
2178       376,  374,  374,  374,  776,  374,  378,  374,  379,  374,
2179       384,  327,  384,  384,  327,  384,  327,  327,  327,  819,
2180       775,  327,  327,  327,  911, 1642,  385,  776,  912,  385,
2181
2182      1861, 1018,  386,  791,  850,  374,  374,  386,  384,  327,
2183       384,  380, 1342,  775,  381,  772,  772,  772,  772,  772,
2184       772,  772,  772,  772,  385, 1870,  382,  374,  375,  327,
2185       375,  374,  374,  374,  374,  374,  374,  374,  376,  374,
2186       374,  374,  829,  374,  378,  374,  379,  374,  384,  327,
2187       384,  384,  327,  384,  384,  327,  384, 1068,  801,  400,
2188       327,  400,  955, 1873,  385,  776,  956,  387, 1069, 1066,
2189       387, 1070,  856,  374,  374,  401,  400,  327,  400,  380,
2190       862,  775,  381,  772,  772,  772,  772,  772,  772,  772,
2191       772,  772,  401, 1067,  382,  388,  389,  327,  389,  388,
2192
2193       388,  388,  388,  388,  388,  388,  390,  388,  388,  388,
2194       776,  388,  392,  388,  393,  388,  327,  327,  327,  327,
2195       327,  327,  400,  327,  400,  867,  775,  400,  327,  400,
2196      1548,  776,  402,  819,  776,  402, 1549,  776,  401, 1881,
2197       873,  388,  388,  401,  400,  327,  400,  775, 1703,  394,
2198       775,  395,  862,  775,  396,  772,  772,  772,  397, 1883,
2199       403, 1704,  398,  388,  389,  327,  389,  388,  388,  388,
2200       388,  388,  388,  388,  390,  388,  388,  388,  819,  388,
2201       392,  388,  393,  388,  400,  327,  400,  412,  327,  412,
2202       412,  327,  412,  819,  890,  424,  327,  424, 1885,  776,
2203
2204       403,  837,  891,  413, 1078,  819,  413, 1078,  892,  388,
2205       388,  425,  424,  327,  424,  775, 1703,  394, 1079,  395,
2206       867, 1093,  396,  772,  772,  772,  397,  924,  425, 1710,
2207       398,  404,  405,  327,  405,  404,  404,  404,  404,  404,
2208       404,  404,  406,  404,  404,  404,  963,  404,  408,  404,
2209       409,  404,  436,  327,  436,  436,  327,  436,  327,  327,
2210       327,  968,  896,  327,  327,  327,  807, 1886,  437,  837,
2211       897,  437, 1887,  819,  386,  898,  811,  404,  404,  386,
2212       436,  327,  436,  436,  327,  436,  772,  772,  772,  772,
2213       772,  772,  772,  772,  772, 1889,  437, 1890, 1894,  437,
2214
2215      1898,  410,  404,  405,  327,  405,  404,  404,  404,  404,
2216       404,  404,  404,  406,  404,  404,  404,  776,  404,  408,
2217       404,  409,  404,  436,  327,  436,  436,  327,  436,  448,
2218       327,  448, 1087,  775,  448,  327,  448,  996, 1900,  438,
2219      1903, 1905,  438, 1088,  997,  449, 1070,  776,  404,  404,
2220       449,  327,  327,  327,  327,  327,  327,  772,  772,  772,
2221       772,  772,  772,  775, 1042,  873, 1910,  386,  781, 1911,
2222       386, 1043,  410,  414,  415,  327,  415,  414,  414,  414,
2223       414,  414,  414,  414,  416,  414,  414,  414,  776,  414,
2224       418,  414,  419,  414,  448,  327,  448,  448,  327,  448,
2225
2226       448,  327,  448, 1915,  775,  448,  327,  448, 1085, 1310,
2227       449,  782,  900,  449,  837,  776,  450,  783,  819,  414,
2228       414,  450,  784,  420,  772,  772,  772,  785, 1922, 1917,
2229       421,  775, 1086,  422,  414,  415,  327,  415,  414,  414,
2230       414,  414,  414,  414,  414,  416,  414,  414,  414,  990,
2231       414,  418,  414,  419,  414,  461,  327,  461,  461,  327,
2232       461,  327,  327,  327,  991,  819,  327,  327,  327,  776,
2233      1923,  462,  904,  913,  462, 1046,  883,  386,  924, 1078,
2234       414,  414,  386,  932,  420,  775,  772,  772,  772, 1924,
2235      1047,  421, 1925, 1103,  422,  426,  427,  327,  427,  426,
2236
2237       426,  426,  426,  426,  426,  426,  428,  426,  426,  426,
2238      1085,  426,  430,  426,  431,  426,  461,  327,  461,  461,
2239       327,  461,  461,  327,  461,  819,  819,  461,  327,  461,
2240      1926,  819,  462,  776, 1098,  462,  819, 1066,  463, 1927,
2241       920,  426,  426,  463,  477,  327,  477,  432, 1928,  775,
2242       433,  772,  772,  772,  772,  772,  772,  772,  772,  772,
2243       478, 1086,  434,  426,  427,  327,  427,  426,  426,  426,
2244       426,  426,  426,  426,  428,  426,  426,  426,  776,  426,
2245       430,  426,  431,  426,  477,  327,  477,  494,  327,  494,
2246       494,  327,  494, 1068,  775,  327,  327,  327, 1310, 1929,
2247
2248       478,  776, 1679,  495, 1088, 1066,  495, 1070,  962,  426,
2249       426,  362,  327,  327,  327,  432,  976,  775,  433,  772,
2250       772,  772,  772,  772,  772,  772,  772,  772,  362, 1098,
2251       434,  439,  440,  327,  440,  439,  439,  439,  439,  439,
2252       439,  439,  441,  439,  439,  439,  776,  439,  443,  439,
2253       444,  439,  494,  327,  494,  494,  327,  494,  494,  327,
2254       494,  819,  775,  494,  327,  494, 1930, 1931,  495,  819,
2255      1932,  495, 1935, 1085,  496, 1938,  998,  439,  439,  496,
2256       505,  327,  505,  445,  772,  772,  772,  772,  772,  772,
2257       772,  772,  772,  772,  772,  772,  506, 1102,  446,  439,
2258
2259       440,  327,  440,  439,  439,  439,  439,  439,  439,  439,
2260       441,  439,  439,  439,  776,  439,  443,  439,  444,  439,
2261       505,  327,  505,  327,  327,  327,  327,  327,  327,  819,
2262       775,  505,  327,  505, 1939, 1941,  506, 1942, 1944,  362,
2263      1945, 1066,  362, 1946, 1010,  439,  439,  506,  505,  327,
2264       505,  445,  772,  772,  772,  772,  772,  772,  772,  772,
2265       772,  772,  772,  772,  506, 1102,  446,  451,  452,  327,
2266       452,  451,  451,  451,  451,  451,  451,  451,  453,  451,
2267       451,  451,  776,  451,  455,  451,  456,  451,  505,  327,
2268       505,  505,  327,  505,  520,  327,  520,  819,  775,  520,
2269
2270       327,  520, 1947, 1951,  507,  776, 1078,  507, 1952, 1953,
2271       521, 1954,  937,  451,  451,  521,  327,  327,  327,  457,
2272      1104,  775,  458,  772,  772,  772,  772,  772,  772,  772,
2273       772,  772,  522, 1955,  459,  451,  452,  327,  452,  451,
2274       451,  451,  451,  451,  451,  451,  453,  451,  451,  451,
2275       776,  451,  455,  451,  456,  451,  327,  327,  327,  520,
2276       327,  520,  520,  327,  520, 1068,  775,  520,  327,  520,
2277      1958, 1961,  522,  776, 1236,  521, 1069, 1962,  521, 1234,
2278       942,  451,  451,  523,  520,  327,  520,  457, 1093,  775,
2279       458,  772,  772,  772,  772,  772,  772,  772,  772,  772,
2280
2281       523, 1963,  459,  464,  465,  327,  465,  464,  464,  464,
2282       464,  464,  464,  464,  466,  464,  464,  464,  776,  464,
2283       468,  464,  469,  464,  534,  327,  534,  534,  327,  534,
2284       544,  327,  544, 1017,  775,  544,  327,  544,  776,  776,
2285       535,  776,  776,  535, 1966,  947,  545, 1967,  957,  464,
2286       464,  545,  776,  470,  775,  775, 1037,  775,  775,  981,
2287       471, 1968, 1044,  472,  772,  772,  772,  473,  775,  474,
2288       475,  464,  465,  327,  465,  464,  464,  464,  464,  464,
2289       464,  464,  466,  464,  464,  464,  819,  464,  468,  464,
2290       469,  464,  327,  327,  327,  327,  327,  327,  544,  327,
2291
2292       544, 1969,  958,  544,  327,  544, 1970,  967,  546,  819,
2293       776,  546, 1971,  776,  545,  819,  962,  464,  464,  545,
2294       819,  470,  966,  772,  772,  772,  775, 1037,  471,  775,
2295      1972,  472,  772,  772,  772,  473, 1975,  474,  475,  479,
2296       480,  327,  480,  479,  479,  479,  479,  479,  479,  479,
2297       481,  479,  479,  479,  963,  479,  483,  479,  484,  479,
2298       544,  327,  544,  544,  327,  544,  559,  327,  559,  968,
2299       986,  559,  327,  559,  987, 1979,  547, 1980,  988,  547,
2300       819,  776,  560, 1064,  803,  479,  479,  560,  992,  485,
2301       486,  772,  772,  772,  998, 1981,  487,  775, 1065,  488,
2302
2303       772,  772,  772,  489, 1983,  490,  491,  492,  479,  480,
2304       327,  480,  479,  479,  479,  479,  479,  479,  479,  481,
2305       479,  479,  479,  776,  479,  483,  479,  484,  479,  327,
2306       327,  327,  327,  327,  327,  559,  327,  559, 1064,  775,
2307       559,  327,  559,  837, 1987,  362, 1988,  819,  362, 1233,
2308       776,  560, 1990, 1119,  479,  479,  560, 1003,  485,  486,
2309       772,  772,  772, 1991, 1065,  487,  775, 1994,  488,  772,
2310       772,  772,  489, 1995,  490,  491,  492,  497,  498,  327,
2311       498,  497,  497,  497,  497,  497,  497,  497,  499,  497,
2312       497,  497,  776,  497,  501,  497,  502,  497,  559,  327,
2313
2314       559,  559,  327,  559,  571,  327,  571, 1087,  775,  571,
2315       327,  571, 1997, 1998,  561, 2001,  776,  561, 1088, 2023,
2316       572, 1234, 2024,  497,  497,  572,  772,  772,  772,  772,
2317       772,  772,  775, 2028,  503,  497,  498,  327,  498,  497,
2318       497,  497,  497,  497,  497,  497,  499,  497,  497,  497,
2319       776,  497,  501,  497,  502,  497,  582,  327,  582,  582,
2320       327,  582,  593,  327,  593, 1803,  775,  593,  327,  593,
2321      2031, 2033,  583, 2042,  776,  583, 2043, 1804,  594, 2044,
2322      2045,  497,  497,  594,  772,  772,  772,  772,  772,  772,
2323       775, 2047,  503,  508,  509,  327,  509,  508,  508,  508,
2324
2325       508,  508,  508,  508,  510,  508,  508,  508,  776,  508,
2326       512,  508,  513,  508,  608,  327,  608,  608,  327,  608,
2327       327,  327,  327, 2055,  775,  327,  327,  327, 2057, 2060,
2328       609, 2061,  776,  609, 2064, 2066,  610, 2067, 2069,  508,
2329       508,  610,  514, 1044,  515,  772,  772,  772,  775, 2070,
2330       516,  772,  772,  772,  772,  772,  772,  517, 2071, 2072,
2331       518,  508,  509,  327,  509,  508,  508,  508,  508,  508,
2332       508,  508,  510,  508,  508,  508, 2073,  508,  512,  508,
2333       513,  508,  619,  327,  619,  619,  327,  619,  619,  327,
2334       619, 2077,  837,  619,  327,  619,  819, 2078,  620, 2079,
2335
2336      1310,  620, 2084, 2088,  621, 2092, 2094,  508,  508,  621,
2337       514, 2096,  515,  772,  772,  772, 1312, 2098,  516,  772,
2338       772,  772,  772,  772,  772,  517, 2099, 2100,  518,  524,
2339       525,  327,  525,  524,  524,  524,  524,  524,  524,  524,
2340       526,  524,  524,  524, 2102,  524,  528,  524,  529,  524,
2341       327,  327,  327,  327,  327,  327,  619,  327,  619, 2109,
2342      1850,  619,  327,  619, 2113, 2114,  622, 1024, 2116,  622,
2343      2123, 2125,  620, 1710, 1025,  524,  524,  620,  619,  327,
2344       619,  530, 2126,  775, 2127,  806,  531,  772,  772,  772,
2345       772,  772,  772, 1920,  623,  772,  772,  772,  532,  524,
2346
2347       525,  327,  525,  524,  524,  524,  524,  524,  524,  524,
2348       526,  524,  524,  524,  825,  524,  528,  524,  529,  524,
2349       619,  327,  619,  327,  327,  327,  327,  327,  327, 1310,
2350       826,  619,  327,  619, 2132, 2133,  623,  776,  816,  546,
2351      2134, 2136,  546, 2137, 1032,  524,  524,  621,  619,  327,
2352       619,  530, 2138,  775, 2129, 2139,  531,  772,  772,  772,
2353       772,  772,  772, 2140,  621,  772,  772,  772,  532,  536,
2354       537,  327,  537,  536,  536,  536,  536,  536,  536,  536,
2355       538,  536,  536,  536, 2141,  536,  540,  536,  541,  536,
2356       327,  327,  327,  327,  327,  327,  619,  327,  619, 2142,
2357
2358      1037,  619,  327,  619, 2143, 2144,  624, 1075, 2145,  624,
2359       792, 2147,  623, 2148, 1076,  536,  536,  623, 2149, 2152,
2360      1077, 2155, 2156,  542,  536,  537,  327,  537,  536,  536,
2361       536,  536,  536,  536,  536,  538,  536,  536,  536,  824,
2362       536,  540,  536,  541,  536,  619,  327,  619,  619,  327,
2363       619,  638,  327,  638, 2157, 1075,  638,  327,  638, 1452,
2364      2158,  625, 1076,  804,  625, 2159, 2160,  639, 1083, 1453,
2365       536,  536,  639, 1050, 1050, 1050, 1454, 2161,  542,  548,
2366       549,  327,  549,  548,  548,  548,  548,  548,  548,  548,
2367       550,  548,  548,  548, 2162,  548,  552,  548,  553,  548,
2368
2369       327,  327,  327,  327,  327,  327,  638,  327,  638, 2165,
2370      1092,  638,  327,  638, 2168, 2169,  402, 1076, 2170,  402,
2371      2177, 1092,  639, 1077, 1075,  548,  548,  639, 1076,  554,
2372      2178, 1076, 2179, 1051, 1083, 2180,  555, 1235, 2181,  556,
2373      1050, 1050, 1050, 2183, 1314, 2188,  557,  548,  549,  327,
2374       549,  548,  548,  548,  548,  548,  548,  548,  550,  548,
2375       548,  548, 2189,  548,  552,  548,  553,  548,  638,  327,
2376       638,  638,  327,  638,  650,  327,  650, 2233, 1092,  650,
2377       327,  650, 2234, 2240,  640, 1076, 2246,  640, 2247, 2248,
2378       651, 1235, 2249,  548,  548,  651, 2252,  554, 1321, 1321,
2379
2380      1321, 2258, 1322, 2260,  555, 1323, 2266,  556, 1329, 1329,
2381      1329, 1352, 1352, 1352,  557,  562,  563,  327,  563,  562,
2382       562,  562,  562,  562,  562,  562,  564,  562,  562,  562,
2383      2270,  562,  566,  562,  567,  562,  664,  327,  664,  664,
2384       327,  664,  675,  327,  675, 2273, 2274,  675,  327,  675,
2385      2277, 2278,  665, 2279, 2280,  665, 2281, 2282,  676, 2283,
2386      2290,  562,  562,  676, 1329, 1329, 1329,  568, 1933, 1933,
2387      1933, 2291,  569,  562,  563,  327,  563,  562,  562,  562,
2388       562,  562,  562,  562,  564,  562,  562,  562, 2292,  562,
2389       566,  562,  567,  562,  327,  327,  327,  327,  327,  327,
2390
2391       675,  327,  675, 2294, 2296,  675,  327,  675, 2304, 2309,
2392       386, 2310, 2311,  386, 2313, 1934,  676, 2326, 1920,  562,
2393       562,  676, 1352, 1352, 1352,  568, 1352, 1352, 1352, 1330,
2394       569,  573,  574,  327,  574,  573,  573,  573,  573,  573,
2395       573,  573,  575,  573,  573,  573, 2340,  573,  577,  573,
2396       578,  573,  675,  327,  675,  675,  327,  675,  687,  327,
2397       687, 2336, 2341,  687,  327,  687, 1920, 2342,  677, 1310,
2398      2346,  677, 2347, 2343,  688, 2349, 2350,  573,  573,  688,
2399       700,  327,  700,  700,  327,  700, 2335, 1353,  579, 2344,
2400      2351, 1330, 1329, 1329, 1329, 2352,  701, 2345, 2353,  701,
2401
2402      2337,  580,  573,  574,  327,  574,  573,  573,  573,  573,
2403       573,  573,  573,  575,  573,  573,  573, 2354,  573,  577,
2404       573,  578,  573,  327,  327,  327,  327,  327,  327,  700,
2405       327,  700, 2357, 2358,  700,  327,  700, 2359, 2360,  362,
2406      2361, 2365,  362, 2366, 2367,  701, 2368, 2370,  573,  573,
2407       701,  700,  327,  700,  700,  327,  700, 1353, 2371,  579,
2408      2372, 1400, 1400, 1400, 2379, 1401, 2381,  702, 1402, 2382,
2409       702, 2383,  580,  584,  585,  327,  585,  584,  584,  584,
2410       584,  584,  584,  584,  586,  584,  584,  584, 2362,  584,
2411       588,  584,  589,  584,  714,  327,  714,  714,  327,  714,
2412
2413       327,  327,  327, 2384, 2363,  327,  327,  327, 2385, 2388,
2414       715, 2390, 2364,  715, 2421, 2343,  716, 2422, 2423,  584,
2415       584,  716,  714,  327,  714, 1436, 1436, 1436, 2429, 1437,
2416      2430, 2363, 1438, 2434, 2435,  590, 2438, 2439,  715, 2345,
2417       591,  584,  585,  327,  585,  584,  584,  584,  584,  584,
2418       584,  584,  586,  584,  584,  584, 2362,  584,  588,  584,
2419       589,  584,  714,  327,  714,  714,  327,  714,  714,  327,
2420       714, 2443, 2344,  739,  327,  739, 2446, 2450,  715, 2451,
2421      2364,  717, 2452, 2455,  717,  340,  341,  584,  584,  740,
2422       342,  739,  327,  739, 1439, 1439, 1439, 2458, 1440, 2462,
2423
2424       727, 1441, 2463,  590, 1936, 1936, 1936,  740,  591,  595,
2425       596,  327,  596,  595,  595,  595,  595,  595,  595,  595,
2426       597,  595,  595,  595, 2464,  595,  599,  595,  600,  595,
2427       728,  750,  327,  750,  750,  327,  750,  750,  327,  750,
2428      2469,  750,  327,  750, 1058, 1058, 1058,  751, 2471, 2472,
2429       751, 1937, 2473,  752, 2474,  595,  595,  752,  601,  602,
2430       603, 1059, 2476, 1455, 1455, 1455,  604, 1456, 2479,  605,
2431      1457, 1940, 1940, 1940, 2481, 2484,  606,  595,  596,  327,
2432       596,  595,  595,  595,  595,  595,  595,  595,  597,  595,
2433       595,  595, 2498,  595,  599,  595,  600,  595,  327,  327,
2434
2435       327,  327,  327,  327,  750,  327,  750, 2499, 2500,  750,
2436       327,  750, 2505, 2506,  362, 2509, 2510,  362, 2511, 2514,
2437       751, 2524, 2533,  595,  595,  751,  601,  602,  603, 1459,
2438      1459, 1459, 2534, 1460,  604, 2535, 1461,  605, 1943, 1943,
2439      1943, 1950, 1950, 1950,  606,  611,  612,  327,  612,  611,
2440       611,  611,  611,  611,  611,  611,  613,  611,  611,  611,
2441      2536,  611,  615,  611,  616,  611,  750,  327,  750,  750,
2442       327,  750,  327,  327,  327, 2507, 2512,  327,  327,  327,
2443      1310, 2537,  753, 2508, 2513,  753, 2526, 2540,  364, 2542,
2444      2543,  611,  611,  364,  750,  327,  750,  750,  327,  750,
2445
2446      1477, 1477, 1477, 2544, 1478, 1920, 2548, 1479, 2549, 2551,
2447       754, 2552, 2553,  754, 1920,  617,  611,  612,  327,  612,
2448       611,  611,  611,  611,  611,  611,  611,  613,  611,  611,
2449       611, 2554,  611,  615,  611,  616,  611,  750,  327,  750,
2450       750,  327,  750,  327,  327,  327, 2527, 2557,  327,  327,
2451       327, 2561, 2528,  755, 2562, 2563,  755, 2565, 2571,  367,
2452      2573, 2585,  611,  611,  367,  750,  327,  750,  750,  327,
2453       750, 1487, 1487, 1487, 2586, 1488, 2587, 2591, 1489, 2592,
2454      2593,  753, 2599, 2600,  753, 2601,  617,  626,  627,  327,
2455       627,  626,  626,  626,  626,  626,  626,  626,  628,  626,
2456
2457       626,  626, 2604,  626,  630,  626,  631,  626,  327,  327,
2458       327,  327,  327,  327,  750,  327,  750, 2608, 2609,  750,
2459       327,  750, 2610, 2611,  368, 2614, 2615,  368, 2616, 2617,
2460       755, 2618, 2630,  626,  626,  755,  750,  327,  750, 2634,
2461      2637,  632, 2638,  633, 2649, 2650,  634, 1956, 1956, 1956,
2462       635, 2651,  756, 2655,  636,  626,  627,  327,  627,  626,
2463       626,  626,  626,  626,  626,  626,  628,  626,  626,  626,
2464      2656,  626,  630,  626,  631,  626,  750,  327,  750,  327,
2465       327,  327,  327,  327,  327, 2657, 2658,  750,  327,  750,
2466      2659, 2660,  756, 2661, 1957,  370, 2662, 2663,  370, 2664,
2467
2468      2669,  626,  626,  757,  750,  327,  750, 2686, 2687,  632,
2469      1920,  633, 2688, 1920,  634, 1959, 1959, 1959,  635, 2689,
2470       757, 2691,  636,  641,  642,  327,  642,  641,  641,  641,
2471       641,  641,  641,  641,  643,  641,  641,  641, 2693,  641,
2472       645,  641,  646,  641,  327,  327,  327,  327,  327,  327,
2473       750,  327,  750, 2694, 2672,  750,  327,  750, 2695, 2697,
2474       372, 2673, 1937,  372, 2698, 2699,  756, 2700, 2701,  641,
2475       641,  756,  750,  327,  750,  750,  327,  750, 2702, 2703,
2476       647, 2704, 1499, 1499, 1499, 2725, 1500, 2726,  758, 1501,
2477      2731,  758, 2732,  648,  641,  642,  327,  642,  641,  641,
2478
2479       641,  641,  641,  641,  641,  643,  641,  641,  641, 2738,
2480       641,  645,  641,  646,  641,  769,  327,  769,  769,  327,
2481       769,  327,  327,  327, 2739, 2727,  327,  327,  327, 2740,
2482      2756,  770, 2757, 2758,  770, 2728, 2773,  386, 2774, 2778,
2483       641,  641,  386,  769,  327,  769,  769,  327,  769, 2779,
2484      2780,  647, 2781,  791, 1502, 1502, 1502, 2782, 1503,  770,
2485       962, 1504,  770,  817,  648,  652,  653,  327,  653,  652,
2486       652,  652,  652,  652,  652,  652,  654,  652,  652,  652,
2487      2783,  652,  656,  652,  657,  652,  769,  327,  769,  769,
2488       327,  769,  818, 2784, 1948, 1948, 1948, 2785,  963,  807,
2489
2490       964, 2786,  771, 2787, 2788,  771,  819, 2789, 2801,  811,
2491       803,  652,  652,  965, 2806,  966,  820, 1920, 1037, 1037,
2492       658, 2807,  659, 1920,  806, 2810,  660, 2811,  792,  817,
2493      1949,  661,  662,  652,  653,  327,  653,  652,  652,  652,
2494       652,  652,  652,  652,  654,  652,  652,  652, 2812,  652,
2495       656,  652,  657,  652,  827, 2805, 2804,  794,  818,  796,
2496      1325, 1325, 1325,  796, 1960, 1960, 1960,  819, 2813,  828,
2497       802,  800,  819,  801,  802, 2808,  803,  816, 1327,  652,
2498       652,  804,  820, 2816, 2809, 1515, 1515, 1515,  658, 1516,
2499       659, 2817, 1517,  806,  660, 1964, 1964, 1964, 2818,  661,
2500
2501       662,  666,  667,  327,  667,  666,  666,  666,  666,  666,
2502       666,  666,  668,  666,  666,  666, 2819,  666,  670,  666,
2503       671,  666,  829,  827, 1124, 1124, 1124, 1143, 1143, 1143,
2504      2820, 1965, 1145, 1145, 1145, 2822,  819, 1155, 1155, 1155,
2505      2823, 1125, 2824, 2826, 1144, 2827,  816,  666,  666, 1146,
2506      1158, 1158, 1158,  672, 1156, 1526, 1526, 1526, 2828, 1527,
2507      2830, 2831, 1528, 1964, 1964, 1964, 2833, 1159,  673,  666,
2508       667,  327,  667,  666,  666,  666,  666,  666,  666,  666,
2509       668,  666,  666,  666, 2851,  666,  670,  666,  671,  666,
2510      1172, 1172, 1172, 1179, 1179, 1179, 1188, 1188, 1188, 1949,
2511
2512      1190, 1190, 1190, 1198, 1198, 1198, 2852, 1173, 2853, 2814,
2513      1180, 2854, 2858, 1189, 2859,  666,  666, 1191, 2815, 2866,
2514      1199,  672, 1533, 1533, 1533, 2867, 1534, 2874, 2875, 1535,
2515      2876, 1948, 1948, 1948, 2888, 2889,  673,  678,  679,  327,
2516       679,  678,  678,  678,  678,  678,  678,  678,  680,  678,
2517       678,  678, 2904,  678,  682,  678,  683,  678, 1206, 1206,
2518      1206, 1210, 1210, 1210, 1222, 1222, 1222, 1965, 1244, 1244,
2519      1244, 2905, 1250, 1250, 1250, 1207, 2906, 2908, 1211, 2909,
2520      2910, 1223, 2911,  678,  678, 1245, 2912, 2913,  684, 1251,
2521      1959, 1959, 1959, 2914,  685,  678,  679,  327,  679,  678,
2522
2523       678,  678,  678,  678,  678,  678,  680,  678,  678,  678,
2524      2915,  678,  682,  678,  683,  678, 1266, 1266, 1266, 1272,
2525      1272, 1272, 1278, 1278, 1278, 2916, 1286, 1286, 1286, 2917,
2526      1298, 1298, 1298, 1267, 2918, 2919, 1273, 1974, 2921, 1279,
2527      2922,  678,  678, 1287, 2925, 2926,  684, 1299, 2135, 2135,
2528      2135, 2927,  685,  689,  690,  327,  690,  689,  689,  689,
2529       689,  689,  689,  689,  691,  689,  689,  689, 2928,  689,
2530       693,  689,  694,  689, 1058, 1058, 1058, 1325, 1325, 1325,
2531      1372, 1372, 1372, 1379, 1379, 1379, 3990, 3990, 3990, 2923,
2532      2931, 1059, 1376, 1376, 1376, 1327, 2932, 1373, 2924,  689,
2533
2534       689, 1381,  695, 3990,  696, 1933, 1933, 1933, 2929, 1377,
2535       697, 1551, 1551, 1551, 1328, 1552, 2933, 2930, 1553, 1310,
2536      2938,  698,  689,  690,  327,  690,  689,  689,  689,  689,
2537       689,  689,  689,  691,  689,  689,  689, 1374,  689,  693,
2538       689,  694,  689, 1379, 1379, 1379, 3990, 3990, 3990, 1389,
2539      1389, 1389, 1375, 2939, 1395, 1395, 1395, 1395, 1395, 1395,
2540      2935, 1381, 2940, 3990, 1389, 1389, 1389, 1391,  689,  689,
2541      2941,  695, 1397,  696, 1920, 1397, 1936, 1936, 1936,  697,
2542      1382, 2942, 1391, 2146, 2146, 2146, 1940, 1940, 1940, 2943,
2543       698,  703,  704,  327,  704,  703,  703,  703,  703,  703,
2544
2545       703,  703,  705,  703,  703,  703, 1378,  703,  707,  703,
2546       708,  703, 2936, 2944, 1392, 1124, 1124, 1124, 1404, 1404,
2547      1404, 2945, 1398, 1408, 1408, 1408, 1404, 1404, 1404, 3990,
2548      3990, 3990, 1125, 1412, 1412, 1412, 1406,  703,  703, 2946,
2549      1409, 2314,  709, 2947, 1406, 2948, 3990, 2315,  710, 1920,
2550      1413, 2316,  711, 1943, 1943, 1943, 2949, 2317,  712,  703,
2551       704,  327,  704,  703,  703,  703,  703,  703,  703,  703,
2552       705,  703,  703,  703, 1407,  703,  707,  703,  708,  703,
2553      1410, 1414, 1414, 1414, 1414, 1414, 1414, 1418, 1418, 1418,
2554      1420, 1420, 1420, 2937, 2950, 1411, 1422, 1422, 1422, 1416,
2555
2556      2951, 2952, 1416, 2954, 1419,  703,  703, 1421, 2955, 2956,
2557       709, 1581, 1581, 1581, 1424, 1582,  710, 2957, 1583, 2958,
2558       711, 2150, 2150, 2150, 2959, 2960,  712,  718,  719,  327,
2559       719,  718,  718,  718,  718,  718,  718,  718,  720,  718,
2560       718,  718, 2972,  718,  722,  718,  723,  718, 1422, 1422,
2561      1422, 1426, 1426, 1426, 2674, 2675, 1417, 2676, 1430, 1430,
2562      1430, 2973, 3990, 3990, 3990, 2677, 1424, 2976, 1427, 1432,
2563      1432, 1432, 2678,  718,  718, 1431, 1590, 1590, 1590, 3990,
2564      1591,  724, 2977, 1592,  725, 2978, 2151, 1434, 1948, 1948,
2565      1948,  726,  718,  719,  327,  719,  718,  718,  718,  718,
2566
2567       718,  718,  718,  720,  718,  718,  718, 2979,  718,  722,
2568       718,  723,  718, 1428, 1432, 1432, 1432, 1143, 1143, 1143,
2569      1425, 2982, 2980, 1145, 1145, 1145, 2983, 2986, 1429, 1448,
2570      1448, 1448, 1434, 2981, 1144, 1442, 1442, 1442,  718,  718,
2571      1146, 1615, 1615, 1615, 2987, 1616,  724, 1450, 1617,  725,
2572      2995, 2996, 1443, 1950, 1950, 1950,  726,  729,  730,  327,
2573       730,  729,  729,  729,  729,  729,  729,  729,  731,  729,
2574       729,  729, 2997,  729,  733,  729,  734,  729, 1155, 1155,
2575      1155, 3008, 1158, 1158, 1158, 3026, 1435, 3035, 3990, 3990,
2576      3990, 3990, 3990, 3990, 3036, 1156, 3990, 3990, 3990, 1159,
2577
2578      3990, 3990, 3990,  729,  729, 3990, 3037, 3038, 3990, 2860,
2579       735, 2861, 3039, 3990, 3040, 3041,  736, 3990, 2153, 2153,
2580      2153, 1956, 1956, 1956, 2862,  737,  729,  730,  327,  730,
2581       729,  729,  729,  729,  729,  729,  729,  731,  729,  729,
2582       729, 1444,  729,  733,  729,  734,  729, 1445, 1446, 1462,
2583      1462, 1462, 3042, 1447, 3043, 3044, 1473, 1473, 1473, 1473,
2584      1473, 1473, 1448, 1448, 1448, 2154, 1463, 1172, 1172, 1172,
2585      3046, 3047,  729,  729, 1475, 3048, 2863, 1475, 2864,  735,
2586      1450, 1959, 1959, 1959, 1173,  736, 1624, 1624, 1624, 3049,
2587      1625, 2865, 3050, 1626,  737,  741,  742,  327,  742,  741,
2588
2589       741,  741,  741,  741,  741,  741,  743,  741,  741,  741,
2590      1451,  741,  745,  741,  746,  741, 3051, 3052, 1476, 1480,
2591      1480, 1480, 1480, 1480, 1480, 2984, 1179, 1179, 1179, 1493,
2592      1493, 1493, 1493, 1493, 1493, 3053, 2985, 1482, 3054, 3055,
2593      1482,  741,  741, 1180, 1633, 1633, 1633, 1495, 1634, 3056,
2594      1495, 1635,  747, 1644, 1644, 1644, 3057, 1645, 1920, 3065,
2595      1646,  748,  741,  742,  327,  742,  741,  741,  741,  741,
2596       741,  741,  741,  743,  741,  741,  741, 1310,  741,  745,
2597       741,  746,  741, 1920, 1483, 1188, 1188, 1188, 1190, 1190,
2598      1190, 1960, 1960, 1960, 1496, 1505, 1505, 1505, 1505, 1505,
2599
2600      1505, 3063, 1189, 3066, 3020, 1191, 3067, 3062,  741,  741,
2601      1198, 1198, 1198, 1507, 3021, 3068, 1507, 3022, 3069,  747,
2602      1964, 1964, 1964, 2163, 2163, 2163, 3064, 1199,  748,  759,
2603       760,  327,  760,  759,  759,  759,  759,  759,  759,  759,
2604       761,  759,  759,  759, 3070,  759,  763,  759,  764,  759,
2605      1510, 1510, 1510, 1521, 1521, 1521, 1521, 1521, 1521, 3023,
2606      1508, 1510, 1510, 1510, 3071, 1206, 1206, 1206, 1512, 3024,
2607      3072, 1523, 3025, 3073, 1523,  759,  759, 3074, 3075, 1512,
2608      3076,  765, 1207, 3077,  766, 1660, 1660, 1660, 2164, 1661,
2609      3079, 3080, 1662, 2166, 2166, 2166,  767,  759,  760,  327,
2610
2611       760,  759,  759,  759,  759,  759,  759,  759,  761,  759,
2612       759,  759, 1524,  759,  763,  759,  764,  759, 1529, 1529,
2613      1529, 3081, 1513, 1529, 1529, 1529, 3082, 3084, 1210, 1210,
2614      1210, 3085, 1537, 1537, 1537, 3086, 1531, 1537, 1537, 1537,
2615      2167, 1531, 3097,  759,  759, 1211, 1222, 1222, 1222,  765,
2616      1539, 3105,  766, 3090, 3092, 1539, 1543, 1543, 1543, 1554,
2617      1554, 1554, 3106, 1223,  767,  776, 3091, 3093, 1543, 1543,
2618      1543, 3107,  791, 3108, 1545, 3109, 1555, 3110, 3111, 1532,
2619      3112,  775,  792, 1558, 1558, 1558, 1545, 1558, 1558, 1558,
2620      1564, 1564, 1564, 3113, 3114, 1564, 1564, 1564, 3115, 1540,
2621
2622      3119, 1560, 1577, 1577, 1577, 1560, 3122, 3123, 1566, 3124,
2623       793,  794,  795, 1566, 1577, 1577, 1577,  796,  797, 3125,
2624      1579,  798,  799, 3126, 3127,  800, 3128,  801,  802,  803,
2625      1546, 3131, 1579, 3139, 3140,  804,  776, 3143, 3144, 1561,
2626      1244, 1244, 1244, 1585, 1585, 1585, 1585, 1585, 1585, 1250,
2627      1250, 1250,  775,  806, 1567, 3001, 3147, 1245, 1593, 1593,
2628      1593, 1587, 3158, 3159, 1587, 3002, 1251, 1596, 1596, 1596,
2629      3160, 3003, 1601, 1601, 1601, 1594, 1610, 1610, 1610, 1580,
2630      3161,  793,  807,  808, 1597, 1601, 1601, 1601,  809,  810,
2631      1603, 3135,  811,  799, 1612, 3162,  812, 3163,  813,  814,
2632
2633       815, 3164, 3165, 1603, 3136, 3167,  816,  776, 1605, 1605,
2634      1605, 1588, 1607, 1607, 1607, 3990, 3990, 3990, 1610, 1610,
2635      1610, 3137, 3141,  775,  821, 1606, 1266, 1266, 1266, 1608,
2636      3168, 3169, 3990, 1604, 3138, 3142, 1612, 1618, 1618, 1618,
2637      1618, 1618, 1618, 1267, 1272, 1272, 1272, 1628, 1628, 1628,
2638      3170, 3171,  793,  822,  795, 1620, 3172, 3173, 1620,  809,
2639       797, 1273, 3174,  798,  799, 1630, 3145,  805, 3004,  813,
2640       814,  803, 1628, 1628, 1628, 1609, 3175,  823, 3005, 3146,
2641      1613, 1278, 1278, 1278, 3006, 1638, 1638, 1638, 3176, 3177,
2642      1630, 1638, 1638, 1638, 1286, 1286, 1286, 3178, 1279, 1649,
2643
2644      1649, 1649, 1621, 1640, 1649, 1649, 1649, 1310, 3186, 1640,
2645      3187, 1287, 1656, 1656, 1656, 3188, 3189, 1651, 1656, 1656,
2646      1656, 1920, 1651, 1298, 1298, 1298, 1664, 1664, 1664, 3190,
2647      1658, 1664, 1664, 1664, 3191, 3192, 1658, 3193, 3194, 1631,
2648      1299, 2243, 2243, 2243, 1666, 1668, 1668, 1668, 3195, 1666,
2649      3990, 3990, 3990, 1672, 1672, 1672, 3182, 3183, 1641, 3990,
2650      3990, 3990, 1669, 1675, 1675, 1675, 3196, 3990, 3197, 1652,
2651      1673, 1675, 1675, 1675, 3198, 3199, 3990, 3201, 1321, 1321,
2652      1321, 1677, 1322, 1659, 3202, 1323, 1325, 1325, 1325, 1677,
2653      1325, 1325, 1325, 1667, 1686, 1686, 1686, 1372, 1372, 1372,
2654
2655      3203, 1670, 3205, 3214, 1327, 1379, 1379, 1379, 1327, 1376,
2656      1376, 1376, 1687, 3215, 1373, 3216, 1671, 3217, 3222, 1674,
2657      1730, 1730, 1730, 1381, 1731, 3229, 1377, 1732, 1735, 1735,
2658      1735, 3230, 1736, 1678, 3231, 1737, 1379, 1379, 1379, 1379,
2659      1379, 1379, 1742, 1742, 1742, 1389, 1389, 1389, 1389, 1389,
2660      1389, 1389, 1389, 1389, 1381, 3232, 3233, 1381, 3234, 1743,
2661      1395, 1395, 1395, 1391, 3235, 3236, 1391, 3237, 3238, 1391,
2662      1395, 1395, 1395, 1395, 1395, 1395, 3239, 3240, 1397, 1400,
2663      1400, 1400, 3244, 1401, 3245, 3246, 1402, 3247, 1397, 3248,
2664      3249, 1397, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404,
2665
2666      1404, 2150, 2150, 2150, 1739, 1408, 1408, 1408, 3250, 3251,
2667      1406, 3252, 3253, 1406, 3254, 3255, 1406, 3256, 1747, 1754,
2668      1754, 1754, 1409, 1755, 3257, 3258, 1756, 1750, 1412, 1412,
2669      1412, 1759, 1759, 1759, 3259, 1760, 3260, 3261, 1761, 1414,
2670      1414, 1414, 1414, 1414, 1414, 1413, 3262, 3263, 1753, 1414,
2671      1414, 1414, 1418, 1418, 1418, 3275, 3276, 1416, 3277, 3278,
2672      1416, 1763, 1763, 1763, 3279, 1764, 2164, 1416, 1765, 1419,
2673      1420, 1420, 1420, 1766, 1766, 1766, 3280, 1767, 3281, 3282,
2674      1768, 1422, 1422, 1422, 1422, 1422, 1422, 1421, 1422, 1422,
2675      1422, 1426, 1426, 1426, 1770, 1770, 1770, 3284, 1771, 1424,
2676
2677      3285, 1772, 1424, 1430, 1430, 1430, 1424, 3286, 1427, 1775,
2678      1775, 1775, 1762, 1776, 3287, 3288, 1777, 1432, 1432, 1432,
2679      1431, 1432, 1432, 1432, 1432, 1432, 1432, 1436, 1436, 1436,
2680      3289, 1437, 3290, 3291, 1438, 1434, 1439, 1439, 1439, 1434,
2681      1440, 3292, 1434, 1441, 1442, 1442, 1442, 3293, 1779, 1779,
2682      1779, 1769, 1780, 3294, 3295, 1781, 1448, 1448, 1448, 3310,
2683      3311, 1443, 1448, 1448, 1448, 1448, 1448, 1448, 1455, 1455,
2684      1455, 3312, 1456, 3313, 1450, 1457, 1790, 1790, 1790, 3314,
2685      1450, 3315, 3316, 1450, 1459, 1459, 1459, 1778, 1460, 1310,
2686      3317, 1461, 3319, 1791, 1462, 1462, 1462, 1792, 1792, 1792,
2687
2688      3322, 1793, 3324, 3325, 1794, 1473, 1473, 1473, 1473, 1473,
2689      1473, 1463, 3326, 3327, 1786, 1473, 1473, 1473, 1477, 1477,
2690      1477, 3328, 1478, 1475, 3304, 1479, 1475, 1480, 1480, 1480,
2691      1480, 1480, 1480, 1475, 1480, 1480, 1480, 1809, 1809, 1809,
2692      1487, 1487, 1487, 3329, 1488, 1482, 3330, 1489, 1482, 1493,
2693      1493, 1493, 1482, 3331, 1810, 1493, 1493, 1493, 1493, 1493,
2694      1493, 1816, 1816, 1816, 1499, 1499, 1499, 1495, 1500, 2318,
2695      3332, 1501, 3333, 1495, 3334, 2319, 1495, 3335, 1817, 2320,
2696      1502, 1502, 1502, 1805, 1503, 2321, 3338, 1504, 1505, 1505,
2697      1505, 1505, 1505, 1505, 3341, 1806, 1505, 1505, 1505, 1819,
2698
2699      1819, 1819, 1510, 1510, 1510, 3342, 1507, 3343, 3344, 1507,
2700      1510, 1510, 1510, 3345, 1507, 3346, 1820, 1510, 1510, 1510,
2701      1512, 1521, 1521, 1521, 1814, 1515, 1515, 1515, 1512, 1516,
2702      3347, 3348, 1517, 3349, 3350, 1512, 1521, 1521, 1521, 1523,
2703      1521, 1521, 1521, 1526, 1526, 1526, 3355, 1527, 3356, 3357,
2704      1528, 1529, 1529, 1529, 1523, 1529, 1529, 1529, 1523, 1529,
2705      1529, 1529, 1818, 3358, 1533, 1533, 1533, 1821, 1534, 1531,
2706      3359, 1535, 3360, 1531, 1537, 1537, 1537, 1531, 1537, 1537,
2707      1537, 1537, 1537, 1537, 3361, 1831, 1831, 1831, 3990, 3990,
2708      3990, 3362, 1539, 1543, 1543, 1543, 1539, 3363, 3364, 1539,
2709
2710      3206, 1826, 1832, 3365, 3366, 3990, 1543, 1543, 1543, 3367,
2711      3207, 1545, 1543, 1543, 1543, 1551, 1551, 1551, 3368, 1552,
2712      1828, 3369, 1553, 3370, 1545, 1554, 1554, 1554, 3208, 3371,
2713      1545, 3375, 1830, 1839, 1839, 1839, 1833, 1840, 3376, 3209,
2714      1841, 3377, 1555, 1558, 1558, 1558, 1558, 1558, 1558, 1558,
2715      1558, 1558, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564,
2716      1564, 1560, 3378, 3379, 1560, 3380, 3381, 1560, 3382, 3385,
2717      1566, 3386, 3387, 1566, 3388, 3389, 1566, 1853, 1853, 1853,
2718      1834, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577,
2719      3390, 1581, 1581, 1581, 1854, 1582, 3392, 3393, 1583, 1579,
2720
2721      3394, 1844, 1579, 3395, 3396, 1579, 1847, 1585, 1585, 1585,
2722      1585, 1585, 1585, 1585, 1585, 1585, 1590, 1590, 1590, 3210,
2723      1591, 2679, 2680, 1592, 2681, 1587, 3397, 3398, 1587, 3211,
2724      3399, 1587, 2682, 1593, 1593, 1593, 1862, 1862, 1862, 2683,
2725      1863, 3400, 3401, 1864, 1865, 1865, 1865, 3212, 3402, 1858,
2726      1594, 1596, 1596, 1596, 3403, 1867, 1867, 1867, 3213, 1868,
2727      3404, 1866, 1869, 1871, 1871, 1871, 3405, 3406, 1597, 1601,
2728      1601, 1601, 1601, 1601, 1601, 1860, 1601, 1601, 1601, 3407,
2729      1872, 1605, 1605, 1605, 1875, 1875, 1875, 1603, 1876, 1310,
2730      1603, 1877, 3414, 3415, 1603, 1607, 1607, 1607, 1606, 1878,
2731
2732      1878, 1878, 3416, 1879, 3417, 3418, 1880, 1610, 1610, 1610,
2733      3419, 3420, 1608, 1610, 1610, 1610, 1610, 1610, 1610, 1615,
2734      1615, 1615, 3421, 1616, 3422, 1612, 1617, 1618, 1618, 1618,
2735      3423, 1612, 3424, 3408, 1612, 3425, 3426, 1874, 1618, 1618,
2736      1618, 1618, 1618, 1618, 3427, 1620, 1624, 1624, 1624, 3428,
2737      1625, 3429, 3430, 1626, 3431, 3432, 1620, 3433, 3437, 1620,
2738      1628, 1628, 1628, 1628, 1628, 1628, 3443, 1628, 1628, 1628,
2739      1633, 1633, 1633, 3266, 1634, 3444, 3445, 1635, 1630, 3446,
2740      3447, 1630, 3448, 3267, 1882, 1630, 1891, 1891, 1891, 1638,
2741      1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1895, 1895,
2742
2743      1895, 3268, 3449, 1892, 1644, 1644, 1644, 1640, 1645, 1884,
2744      1640, 1646, 3269, 1640, 3456, 1896, 3990, 3990, 3990, 1649,
2745      1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 3457, 1888,
2746      1901, 1901, 1901, 3990, 1656, 1656, 1656, 1651, 3458, 3459,
2747      1651, 3460, 3461, 1651, 1656, 1656, 1656, 1902, 1656, 1656,
2748      1656, 3462, 1658, 3463, 1660, 1660, 1660, 1893, 1661, 3464,
2749      3465, 1662, 1658, 1664, 1664, 1664, 1658, 1664, 1664, 1664,
2750      1664, 1664, 1664, 1899, 1668, 1668, 1668, 3466, 1897, 3467,
2751      3468, 1666, 1907, 1907, 1907, 1666, 1908, 3469, 1666, 1909,
2752      3470, 1669, 1672, 1672, 1672, 3471, 1904, 1912, 1912, 1912,
2753
2754      3472, 1913, 3473, 3474, 1914, 1675, 1675, 1675, 3475, 1673,
2755      1675, 1675, 1675, 3476, 1675, 1675, 1675, 1919, 1919, 1919,
2756      1686, 1686, 1686, 1677, 1379, 1379, 1379, 3477, 1677, 3478,
2757      3479, 1906, 1677, 3480, 3481, 1920, 1921, 3482, 1687, 1730,
2758      1730, 1730, 1381, 1731, 3483, 3484, 1732, 1735, 1735, 1735,
2759      3485, 1736, 3486, 3489, 1737, 1742, 1742, 1742, 1976, 1976,
2760      1976, 3490, 1977, 3270, 3491, 1978, 1389, 1389, 1389, 1395,
2761      1395, 1395, 1743, 3271, 3492, 1916, 1984, 1984, 1984, 3493,
2762      1404, 1404, 1404, 3494, 1391, 3495, 1973, 1397, 1754, 1754,
2763      1754, 3272, 1755, 1985, 3496, 1756, 3497, 3498, 1406, 1759,
2764
2765      1759, 1759, 3273, 1760, 3499, 3500, 1761, 1414, 1414, 1414,
2766      1763, 1763, 1763, 3501, 1764, 3502, 3505, 1765, 3514, 1766,
2767      1766, 1766, 3515, 1767, 3520, 1416, 1768, 3508, 1982, 1422,
2768      1422, 1422, 1770, 1770, 1770, 3521, 1771, 1986, 1989, 1772,
2769      1310, 1775, 1775, 1775, 3505, 1776, 3524, 1424, 1777, 1432,
2770      1432, 1432, 1779, 1779, 1779, 1992, 1780, 3525, 3506, 1781,
2771      3526, 1999, 1999, 1999, 1448, 1448, 1448, 1434, 2003, 2003,
2772      2003, 3990, 3990, 3990, 3990, 3990, 3990, 1993, 2000, 1790,
2773      1790, 1790, 1450, 3527, 3528, 2004, 3529, 3503, 3990, 3531,
2774      3539, 3990, 3990, 3990, 3990, 3540, 1791, 1996, 2007, 2007,
2775
2776      2007, 3541, 2008, 3542, 3543, 2009, 1792, 1792, 1792, 3990,
2777      1793, 3510, 3548, 1794, 3990, 3990, 3990, 3990, 3990, 3990,
2778      2002, 3532, 2006, 3990, 3990, 3990, 3990, 3990, 3990, 3534,
2779      3511, 3990, 3512, 3533, 3990, 3990, 3990, 3990, 2005, 3549,
2780      3990, 3535, 3550, 3990, 2010, 3513, 2016, 2016, 2016, 3990,
2781      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 1473,
2782      1473, 1473, 2011, 2017, 3551, 3552, 3990, 1809, 1809, 1809,
2783      3990, 2013, 3553, 3990, 1480, 1480, 1480, 1475, 2025, 2025,
2784      2025, 3554, 2026, 3555, 1810, 2027, 3556, 3557, 2012, 3558,
2785      3559, 2014, 1482, 2029, 2029, 2029, 2015, 1493, 1493, 1493,
2786
2787      1816, 1816, 1816, 3560, 2034, 2034, 2034, 3544, 2035, 3561,
2788      2030, 2036, 1505, 1505, 1505, 1495, 2019, 1817, 2020, 3545,
2789      2018, 1819, 1819, 1819, 3562, 2021, 3567, 2022, 3568, 3573,
2790      1507, 3574, 2038, 2038, 2038, 3575, 2039, 3576, 1820, 2040,
2791      1510, 1510, 1510, 1521, 1521, 1521, 3577, 1529, 1529, 1529,
2792      2049, 2049, 2049, 3296, 1537, 1537, 1537, 3578, 1512, 3546,
2793      1310, 1523, 3505, 3297, 2032, 1531, 3581, 2050, 1831, 1831,
2794      1831, 3547, 1539, 2052, 2052, 2052, 3506, 2053, 3581, 2037,
2795      2054, 3298, 1543, 1543, 1543, 1832, 2058, 2058, 2058, 1839,
2796      1839, 1839, 3299, 1840, 1920, 1921, 1841, 3584, 3585, 2041,
2797
2798      1545, 2046, 3579, 2059, 3586, 2048, 2051, 2062, 2062, 2062,
2799      1558, 1558, 1558, 1564, 1564, 1564, 1853, 1853, 1853, 2074,
2800      2074, 2074, 3589, 2075, 2063, 3590, 2076, 3591, 1560, 3587,
2801      3594, 1566, 3595, 1854, 1577, 1577, 1577, 2081, 2081, 2081,
2802      1585, 1585, 1585, 2056, 1862, 1862, 1862, 3588, 1863, 3608,
2803      3592, 1864, 1579, 3505, 2082, 1865, 1865, 1865, 1587, 2085,
2804      2085, 2085, 3602, 2086, 3508, 3593, 2087, 1867, 1867, 1867,
2805      3603, 1868, 1866, 3600, 1869, 2065, 1871, 1871, 1871, 3606,
2806      2068, 2089, 2089, 2089, 2080, 2090, 3609, 3607, 2091, 1601,
2807      1601, 1601, 3601, 1872, 1875, 1875, 1875, 3610, 1876, 3611,
2808
2809      3624, 1877, 3616, 2083, 1878, 1878, 1878, 1603, 1879, 3625,
2810      3617, 1880, 1610, 1610, 1610, 1618, 1618, 1618, 1628, 1628,
2811      1628, 2103, 2103, 2103, 1891, 1891, 1891, 2105, 2105, 2105,
2812      1612, 2106, 3604, 1620, 2107, 3614, 1630, 3626, 2104, 3627,
2813      2093, 1892, 1638, 1638, 1638, 1895, 1895, 1895, 2110, 2110,
2814      2110, 3605, 2111, 3618, 3615, 2112, 1649, 1649, 1649, 3628,
2815      1640, 3620, 1896, 1901, 1901, 1901, 2117, 2117, 2117, 3621,
2816      2118, 3629, 3619, 2119, 1651, 2120, 2120, 2120, 3630, 2095,
2817      1902, 3631, 2097, 2101, 1656, 1656, 1656, 1664, 1664, 1664,
2818      3632, 3635, 2121, 1907, 1907, 1907, 3633, 1908, 3636, 3637,
2819
2820      1909, 3638, 1658, 3581, 3641, 1666, 2115, 2108, 1912, 1912,
2821      1912, 3581, 1913, 3642, 3634, 1914, 3639, 1675, 1675, 1675,
2822      1919, 1919, 1919, 2163, 2163, 2163, 2171, 2171, 2171, 2173,
2823      2173, 2173, 3643, 3644, 2122, 1677, 3645, 3646, 1920, 2124,
2824      3990, 3990, 3990, 2172, 3647, 3648, 2174, 1379, 1379, 1379,
2825      3649, 1976, 1976, 1976, 3650, 1977, 3651, 3990, 1978, 1389,
2826      1389, 1389, 1984, 1984, 1984, 1381, 2184, 2184, 2184, 2128,
2827      2185, 3655, 2130, 2186, 1395, 1395, 1395, 1391, 3656, 1985,
2828      1404, 1404, 1404, 2191, 2191, 2191, 3657, 3658, 2151, 2131,
2829      3659, 3660, 1397, 2193, 2193, 2193, 3661, 3662, 1406, 3663,
2830
2831      2192, 1414, 1414, 1414, 3664, 2175, 3665, 1422, 1422, 1422,
2832      2194, 2197, 2197, 2197, 3666, 2176, 2199, 2199, 2199, 1416,
2833      1432, 1432, 1432, 3670, 2182, 1424, 3671, 3672, 2198, 2190,
2834      2202, 2202, 2202, 2200, 2187, 3990, 3990, 3990, 1434, 1999,
2835      1999, 1999, 2205, 2205, 2205, 3673, 2206, 2203, 3674, 2207,
2836      3675, 3676, 3990, 2208, 2208, 2208, 2000, 1448, 1448, 1448,
2837      2003, 2003, 2003, 3677, 2211, 2211, 2211, 2195, 2212, 3681,
2838      2209, 2213, 3682, 2196, 3683, 1450, 3684, 2004, 2214, 2214,
2839      2214, 3990, 3990, 3990, 3685, 3686, 2201, 3300, 3687, 2007,
2840      2007, 2007, 3688, 2008, 2204, 2215, 2009, 3301, 3990, 3990,
2841
2842      3990, 3990, 3990, 3990, 3990, 2219, 2219, 2219, 3990, 3990,
2843      3990, 3990, 3990, 3990, 3689, 3302, 3990, 3690, 2210, 3990,
2844      3691, 3692, 2220, 3563, 3693, 3990, 3303, 3694, 3990, 3696,
2845      3990, 3990, 3990, 2016, 2016, 2016, 2224, 2224, 2224, 3697,
2846      2225, 3698, 3564, 2226, 3565, 3699, 2216, 3990, 3700, 3701,
2847      2017, 3702, 2218, 2227, 2227, 2227, 3703, 3566, 2222, 3990,
2848      3990, 3990, 3704, 3705, 2217, 3706, 3711, 2221, 3712, 3713,
2849      2228, 3990, 3990, 3990, 3714, 3516, 3990, 1473, 1473, 1473,
2850      1480, 1480, 1480, 3715, 2223, 2025, 2025, 2025, 3990, 2026,
2851      3716, 3517, 2027, 3518, 3717, 1475, 3718, 3719, 1482, 2235,
2852
2853      2235, 2235, 2029, 2029, 2029, 3707, 3519, 2229, 2237, 2237,
2854      2237, 3709, 2238, 3720, 3721, 2239, 2236, 3708, 3722, 2030,
2855      2241, 2241, 2241, 3710, 3723, 2230, 2034, 2034, 2034, 3724,
2856      2035, 3725, 3726, 2036, 3727, 3728, 2232, 3729, 2242, 1505,
2857      1505, 1505, 3730, 3731, 2231, 2038, 2038, 2038, 3732, 2039,
2858      3733, 3734, 2040, 1510, 1510, 1510, 3735, 1507, 2250, 2250,
2859      2250, 1529, 1529, 1529, 2049, 2049, 2049, 3736, 2254, 2254,
2860      2254, 1512, 2255, 3737, 3738, 2256, 2251, 3739, 3740, 1531,
2861      3742, 2050, 1537, 1537, 1537, 1310, 2244, 2052, 2052, 2052,
2862      3743, 2053, 3744, 3745, 2054, 1543, 1543, 1543, 3746, 3747,
2863
2864      1539, 2058, 2058, 2058, 3748, 2261, 2261, 2261, 2253, 2262,
2865      3741, 3749, 2263, 1545, 2264, 2264, 2264, 3750, 2059, 3751,
2866      3752, 2245, 2062, 2062, 2062, 2267, 2267, 2267, 3753, 2268,
2867      3754, 2265, 2269, 2271, 2271, 2271, 1564, 1564, 1564, 2063,
2868      3755, 2257, 2276, 2276, 2276, 2074, 2074, 2074, 3756, 2075,
2869      3757, 2272, 2076, 3569, 1566, 1577, 1577, 1577, 2081, 2081,
2870      2081, 3758, 2259, 2285, 2285, 2285, 3759, 2286, 3760, 3570,
2871      2287, 3571, 3761, 1579, 3762, 2082, 2288, 2288, 2288, 2085,
2872      2085, 2085, 3763, 2086, 3572, 3764, 2087, 3765, 3766, 2275,
2873      3767, 2089, 2089, 2089, 2289, 2090, 3768, 3769, 2091, 1601,
2874
2875      1601, 1601, 1610, 1610, 1610, 3770, 3771, 2284, 1618, 1618,
2876      1618, 2298, 2298, 2298, 3990, 3990, 3990, 1603, 3772, 3773,
2877      1612, 2301, 2301, 2301, 3774, 3775, 1620, 3776, 2299, 3777,
2878      3778, 3990, 1628, 1628, 1628, 2103, 2103, 2103, 2302, 2305,
2879      2305, 2305, 3779, 2306, 1310, 3781, 2307, 1638, 1638, 1638,
2880      1630, 3782, 2104, 3783, 2295, 2105, 2105, 2105, 3784, 2106,
2881      2297, 2293, 2107, 3780, 3785, 1640, 2110, 2110, 2110, 3786,
2882      2111, 3787, 3788, 2112, 1649, 1649, 1649, 2120, 2120, 2120,
2883      2303, 2300, 2117, 2117, 2117, 3789, 2118, 3790, 3791, 2119,
2884      3792, 3793, 1651, 3794, 2121, 2308, 2322, 2322, 2322, 3795,
2885
2886      2323, 3796, 3797, 2324, 1656, 1656, 1656, 2327, 2327, 2327,
2887      2329, 2329, 2329, 2331, 2331, 2331, 3990, 3990, 3990, 1675,
2888      1675, 1675, 1658, 3798, 3799, 2328, 2312, 2330, 3800, 3801,
2889      2332, 3802, 3803, 3990, 2338, 2338, 2338, 1677, 2135, 2135,
2890      2135, 2348, 2348, 2348, 2146, 2146, 2146, 2355, 2355, 2355,
2891      3804, 2339, 2150, 2150, 2150, 2334, 2325, 2356, 2356, 2356,
2892      2153, 2153, 2153, 2163, 2163, 2163, 2369, 2369, 2369, 2166,
2893      2166, 2166, 2171, 2171, 2171, 2373, 2373, 2373, 3805, 2374,
2894      3806, 2333, 2375, 2173, 2173, 2173, 2376, 2376, 2376, 2172,
2895      2377, 3807, 3808, 2378, 1379, 1379, 1379, 2386, 2386, 2386,
2896
2897      2174, 2184, 2184, 2184, 3809, 2185, 3810, 3811, 2186, 2391,
2898      2391, 2391, 1381, 3812, 3813, 2387, 1395, 1395, 1395, 1404,
2899      1404, 1404, 2191, 2191, 2191, 3814, 2392, 3815, 2394, 2394,
2900      2394, 3816, 2395, 3818, 1397, 2396, 3819, 1406, 3820, 2192,
2901      2193, 2193, 2193, 2397, 2397, 2397, 1310, 2398, 3821, 3822,
2902      2399, 1414, 1414, 1414, 1422, 1422, 1422, 2194, 2197, 2197,
2903      2197, 2380, 3823, 2402, 2402, 2402, 3817, 2403, 2389, 1416,
2904      2404, 3824, 1424, 3825, 3826, 2198, 2199, 2199, 2199, 3827,
2905      3828, 2393, 2405, 2405, 2405, 3829, 2406, 3830, 3831, 2407,
2906      1432, 1432, 1432, 2200, 2202, 2202, 2202, 2409, 2409, 2409,
2907
2908      3832, 2410, 3833, 3834, 2411, 2412, 2412, 2412, 1434, 3835,
2909      3836, 2203, 2205, 2205, 2205, 3837, 2206, 2400, 3838, 2207,
2910      2401, 3839, 2413, 2208, 2208, 2208, 2414, 2414, 2414, 3840,
2911      2415, 3841, 3842, 2416, 1448, 1448, 1448, 2211, 2211, 2211,
2912      2209, 2212, 3843, 3844, 2213, 2214, 2214, 2214, 2219, 2219,
2913      2219, 3845, 1450, 2418, 2418, 2418, 2408, 2419, 3846, 3847,
2914      2420, 3848, 2215, 3849, 3851, 2220, 2424, 2424, 2424, 3852,
2915      2425, 3853, 3854, 2426, 2427, 2427, 2427, 2224, 2224, 2224,
2916      3855, 2225, 3856, 3857, 2226, 3858, 2417, 2227, 2227, 2227,
2917      3859, 2428, 2431, 2431, 2431, 3860, 2432, 1310, 3861, 2433,
2918
2919      1473, 1473, 1473, 3850, 2228, 1480, 1480, 1480, 2235, 2235,
2920      2235, 3862, 2440, 2440, 2440, 3863, 2441, 3864, 1475, 2442,
2921      2237, 2237, 2237, 1482, 2238, 2236, 3865, 2239, 2241, 2241,
2922      2241, 2243, 2243, 2243, 3866, 1505, 1505, 1505, 1510, 1510,
2923      1510, 2447, 2447, 2447, 3867, 3868, 2242, 2250, 2250, 2250,
2924      3869, 3870, 2436, 1507, 3871, 3872, 1512, 3873, 2448, 2437,
2925      1529, 1529, 1529, 3874, 3876, 2251, 2254, 2254, 2254, 3877,
2926      2255, 3878, 1310, 2256, 1537, 1537, 1537, 3879, 1531, 2456,
2927      2456, 2456, 3880, 2261, 2261, 2261, 3875, 2262, 2449, 2445,
2928      2263, 3881, 1539, 3882, 2444, 3883, 3884, 2457, 2264, 2264,
2929
2930      2264, 2459, 2459, 2459, 3885, 2460, 3886, 3887, 2461, 3888,
2931      2453, 3889, 2267, 2267, 2267, 2265, 2268, 3890, 3891, 2269,
2932      3893, 2454, 2271, 2271, 2271, 2465, 2465, 2465, 1564, 1564,
2933      1564, 2276, 2276, 2276, 2468, 2468, 2468, 2470, 2470, 2470,
2934      2272, 3894, 2466, 1577, 1577, 1577, 1566, 2285, 2285, 2285,
2935      3895, 2286, 3896, 3897, 2287, 2288, 2288, 2288, 2477, 2477,
2936      2477, 1579, 1601, 1601, 1601, 2482, 2482, 2482, 1618, 1618,
2937      1618, 3898, 3899, 2289, 3900, 2478, 2298, 2298, 2298, 3901,
2938      1603, 3902, 3903, 2483, 3904, 3905, 1620, 2486, 2486, 2486,
2939      2467, 2487, 3906, 2299, 2488, 2489, 2489, 2489, 2301, 2301,
2940
2941      2301, 2491, 2491, 2491, 3907, 2492, 3908, 3911, 2493, 2475,
2942      3912, 3913, 2490, 3914, 3915, 2302, 1628, 1628, 1628, 2495,
2943      2495, 2495, 2480, 2305, 2305, 2305, 3916, 2306, 3917, 3918,
2944      2307, 3919, 3920, 2485, 1630, 3923, 2496, 1638, 1638, 1638,
2945      2501, 2501, 2501, 2503, 2503, 2503, 2322, 2322, 2322, 1310,
2946      2323, 3924, 1310, 2324, 3925, 1640, 3926, 1310, 2502, 1310,
2947      2504, 1656, 1656, 1656, 2516, 2516, 2516, 2327, 2327, 2327,
2948      2494, 2329, 2329, 2329, 1310, 3955, 2518, 2518, 2518, 1658,
2949      2519, 2517, 3937, 2520, 1310, 2328, 3921, 1310, 2330, 3922,
2950      1310, 2497, 2331, 2331, 2331, 2521, 2521, 2521, 1837, 2522,
2951
2952      1836, 1835, 2523, 1675, 1675, 1675, 3927, 3933, 2515, 2332,
2953      2338, 2338, 2338, 2529, 2529, 2529, 1829, 2530, 1827, 3931,
2954      2531, 1677, 2532, 2532, 2532, 3943, 1310, 2339, 2538, 2538,
2955      2538, 2539, 2539, 2539, 2348, 2348, 2348, 2541, 2541, 2541,
2956      2545, 2545, 2545, 2355, 2355, 2355, 2356, 2356, 2356, 2546,
2957      2546, 2546, 2550, 2550, 2550, 2555, 2555, 2555, 2556, 2556,
2958      2556, 2558, 2558, 2558, 1310, 2525, 2369, 2369, 2369, 2559,
2959      2559, 2559, 2373, 2373, 2373, 3928, 2374, 1825, 1824, 2375,
2960      2376, 2376, 2376, 1823, 2377, 1310, 1310, 2378, 1379, 1379,
2961      1379, 2566, 2566, 2566, 1310, 1310, 2547, 3990, 3990, 3990,
2962
2963      3990, 3990, 3990, 3990, 3990, 3990, 1381, 3987, 2567, 2386,
2964      2386, 2386, 1822, 3929, 3990, 3935, 2560, 3990, 1310, 1310,
2965      3990, 1395, 1395, 1395, 2391, 2391, 2391, 2387, 2574, 2574,
2966      2574, 3932, 2575, 3944, 3930, 2576, 1404, 1404, 1404, 1397,
2967      2564, 2392, 3934, 2394, 2394, 2394, 1815, 2395, 3938, 2568,
2968      2396, 2397, 2397, 2397, 1406, 2398, 1310, 1310, 2399, 1414,
2969      1414, 1414, 1310, 2570, 3939, 2569, 1422, 1422, 1422, 2402,
2970      2402, 2402, 1310, 2403, 3936, 1310, 2404, 1416, 1310, 2578,
2971      2791, 2792, 2572, 2793, 1424, 2405, 2405, 2405, 3940, 2406,
2972      1310, 2794, 2407, 1432, 1432, 1432, 1310, 2577, 2795, 2409,
2973
2974      2409, 2409, 2579, 2410, 1310, 3941, 2411, 2412, 2412, 2412,
2975      3942, 1434, 2581, 2581, 2581, 1813, 2582, 3945, 1310, 2583,
2976      1310, 2414, 2414, 2414, 2413, 2415, 3947, 1310, 2416, 1448,
2977      1448, 1448, 2418, 2418, 2418, 1310, 2419, 2580, 1812, 2420,
2978      1811, 2424, 2424, 2424, 1808, 2425, 3946, 1450, 2426, 2427,
2979      2427, 2427, 2588, 2588, 2588, 1807, 2589, 1310, 3951, 2590,
2980      2431, 2431, 2431, 3948, 2432, 3949, 2428, 2433, 2594, 2594,
2981      2594, 1473, 1473, 1473, 2597, 2597, 2597, 2440, 2440, 2440,
2982      1310, 2441, 3950, 1310, 2442, 2595, 1505, 1505, 1505, 1475,
2983      3953, 3956, 2598, 1510, 1510, 1510, 2584, 2447, 2447, 2447,
2984
2985      1310, 2605, 2605, 2605, 1507, 2606, 1310, 1310, 2607, 1802,
2986      1310, 1512, 1801, 1800, 2448, 1529, 1529, 1529, 3952, 3961,
2987      1537, 1537, 1537, 2456, 2456, 2456, 1310, 2459, 2459, 2459,
2988      1310, 2460, 3963, 1531, 2461, 1799, 2596, 1798, 1539, 3954,
2989      1310, 2457, 2602, 3962, 1310, 2603, 2465, 2465, 2465, 2619,
2990      2619, 2619, 1797, 2620, 3957, 1310, 2621, 1564, 1564, 1564,
2991      2468, 2468, 2468, 2466, 2623, 2623, 2623, 2470, 2470, 2470,
2992      2624, 2624, 2624, 3959, 3958, 1566, 3990, 3990, 3990, 3990,
2993      3990, 3990, 2612, 2613, 1577, 1577, 1577, 2625, 3990, 3990,
2994      3990, 3960, 3964, 3990, 1310, 3979, 3990, 2477, 2477, 2477,
2995
2996      1310, 1310, 1579, 3965, 1310, 3990, 2631, 2631, 2631, 1310,
2997      2632, 1796, 1795, 2633, 2478, 2635, 2635, 2635, 2482, 2482,
2998      2482, 1310, 2622, 2639, 2639, 2639, 1310, 1789, 2626, 1310,
2999      2486, 2486, 2486, 2636, 2487, 1310, 2483, 2488, 2489, 2489,
3000      2489, 2640, 3966, 3969, 2627, 2641, 2641, 2641, 2628, 2642,
3001      2629, 3970, 2643, 1310, 1788, 2490, 2491, 2491, 2491, 3967,
3002      2492, 1310, 3971, 2493, 1628, 1628, 1628, 2495, 2495, 2495,
3003      2645, 2645, 2645, 3968, 2646, 1787, 3973, 2647, 1638, 1638,
3004      1638, 1310, 1630, 1785, 2496, 2501, 2501, 2501, 2503, 2503,
3005      2503, 2652, 2652, 2652, 1784, 2653, 1640, 3972, 2654, 1656,
3006
3007      1656, 1656, 3983, 2502, 1310, 2504, 2516, 2516, 2516, 1783,
3008      3980, 2666, 2666, 2666, 1310, 2667, 2644, 1658, 2668, 1310,
3009      2518, 2518, 2518, 2517, 2519, 1310, 1310, 2520, 3974, 1782,
3010      2648, 2521, 2521, 2521, 1774, 2522, 1773, 3977, 2523, 1675,
3011      1675, 1675, 2671, 2671, 2671, 1758, 2529, 2529, 2529, 2665,
3012      2530, 1757, 3975, 2531, 2532, 2532, 2532, 1677, 3978, 3981,
3013      1310, 2684, 2684, 2684, 2685, 2685, 2685, 2538, 2538, 2538,
3014      2539, 2539, 2539, 2541, 2541, 2541, 2690, 2690, 2690, 2692,
3015      2692, 2692, 2545, 2545, 2545, 2546, 2546, 2546, 2550, 2550,
3016      2550, 2696, 2696, 2696, 2555, 2555, 2555, 2556, 2556, 2556,
3017
3018      2558, 2558, 2558, 2559, 2559, 2559, 1752, 2670, 2705, 2705,
3019      2705, 2707, 2707, 2707, 2566, 2566, 2566, 2708, 2708, 2708,
3020      1310, 2709, 1751, 1310, 2710, 1749, 2706, 2711, 2711, 2711,
3021      1310, 2567, 3990, 3990, 3990, 3990, 3990, 3990, 2715, 2715,
3022      2715, 1395, 1395, 1395, 2712, 2717, 2717, 2717, 1748, 3990,
3023      1746, 1745, 3990, 2574, 2574, 2574, 3982, 2575, 3976, 1397,
3024      2576, 1744, 2718, 1404, 1404, 1404, 1741, 1414, 1414, 1414,
3025      1422, 1422, 1422, 1432, 1432, 1432, 2581, 2581, 2581, 3984,
3026      2582, 1406, 1740, 2583, 2713, 1416, 1310, 2714, 1424, 3987,
3027      1738, 1434, 2723, 2723, 2723, 2588, 2588, 2588, 1734, 2589,
3028
3029      1310, 1733, 2590, 1310, 2720, 2729, 2729, 2729, 2716, 1729,
3030      2724, 2594, 2594, 2594, 1728, 2719, 2733, 2733, 2733, 3985,
3031      2734, 1727, 2730, 2735, 2736, 2736, 2736, 1726, 2595, 2597,
3032      2597, 2597, 2721, 3986, 1725, 2722, 1505, 1505, 1505, 2742,
3033      2742, 2742, 2737, 2744, 2744, 2744, 1724, 2598, 2605, 2605,
3034      2605, 1723, 2606, 1722, 1507, 2607, 1721, 2743, 1720, 1719,
3035      2745, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
3036      2750, 2750, 2750, 1529, 1529, 1529, 1718, 1717, 3990, 1716,
3037      1715, 3990, 1714, 1713, 3990, 1712, 1711, 2751, 1709, 1708,
3038      2746, 1531, 1537, 1537, 1537, 1707, 1706, 2741, 2754, 2754,
3039
3040      2754, 2759, 2759, 2759, 2619, 2619, 2619, 1705, 2620, 1702,
3041      1539, 2621, 1564, 1564, 1564, 2755, 1701, 2747, 1700, 2749,
3042      2623, 2623, 2623, 2624, 2624, 2624, 2748, 2764, 2764, 2764,
3043      1566, 2761, 2761, 2761, 2752, 2762, 1699, 1698, 2763, 1697,
3044      2625, 3990, 3990, 3990, 2765, 3990, 3990, 3990, 2768, 2768,
3045      2768, 2770, 2770, 2770, 3990, 3990, 3990, 2753, 3990, 2635,
3046      2635, 2635, 3990, 2631, 2631, 2631, 2769, 2632, 2771, 1696,
3047      2633, 3990, 2760, 2639, 2639, 2639, 1695, 2636, 2641, 2641,
3048      2641, 1694, 2642, 1693, 1692, 2643, 2775, 2775, 2775, 1691,
3049      1690, 2640, 1689, 2766, 2645, 2645, 2645, 2767, 2646, 1688,
3050
3051      1685, 2647, 1684, 1683, 2776, 1638, 1638, 1638, 2652, 2652,
3052      2652, 1682, 2653, 1681, 1680, 2654, 1656, 1656, 1656, 2796,
3053      2797, 2772, 2798, 1640, 2666, 2666, 2666, 1310, 2667, 1663,
3054      2799, 2668, 1655, 1654, 1658, 1653, 1648, 2800, 1675, 1675,
3055      1675, 2671, 2671, 2671, 2684, 2684, 2684, 2685, 2685, 2685,
3056      1647, 1643, 2777, 2821, 2821, 2821, 1677, 1637, 1636, 1310,
3057      2690, 2690, 2690, 2692, 2692, 2692, 2825, 2825, 2825, 2696,
3058      2696, 2696, 2829, 2829, 2829, 2832, 2832, 2832, 2790, 2705,
3059      2705, 2705, 2707, 2707, 2707, 2708, 2708, 2708, 1632, 2709,
3060      1627, 1623, 2710, 2711, 2711, 2711, 1622, 2706, 1614, 2834,
3061
3062      2834, 2834, 1600, 2835, 2803, 2802, 2836, 2837, 2837, 2837,
3063      2712, 2839, 2839, 2839, 2715, 2715, 2715, 2841, 2841, 2841,
3064      2717, 2717, 2717, 1599, 2838, 2843, 2843, 2843, 2840, 2844,
3065      1598, 1595, 2845, 1589, 1584, 2842, 1576, 2718, 2846, 2846,
3066      2846, 1414, 1414, 1414, 1422, 1422, 1422, 1432, 1432, 1432,
3067      2723, 2723, 2723, 2729, 2729, 2729, 2847, 1575, 1574, 1416,
3068      1573, 1572, 1424, 1571, 1570, 1434, 1569, 1568, 2724, 1563,
3069      2730, 2855, 2855, 2855, 1562, 2856, 1557, 1556, 2857, 2733,
3070      2733, 2733, 1550, 2734, 1547, 1542, 2735, 2736, 2736, 2736,
3071      2868, 2868, 2868, 1505, 1505, 1505, 2742, 2742, 2742, 2744,
3072
3073      2744, 2744, 2882, 2882, 2882, 2737, 2848, 2869, 2850, 1541,
3074      1536, 1507, 2849, 1525, 2743, 1520, 2745, 2871, 2871, 2871,
3075      2883, 2872, 1519, 1518, 2873, 2877, 2877, 2877, 2750, 2750,
3076      2750, 2879, 2879, 2879, 1514, 2880, 1509, 1498, 2881, 1537,
3077      1537, 1537, 2878, 1492, 1491, 2751, 2754, 2754, 2754, 1490,
3078      1486, 2870, 2885, 2885, 2885, 1485, 2886, 1539, 1484, 2887,
3079      2890, 2890, 2890, 2755, 2759, 2759, 2759, 2892, 2892, 2892,
3080      1472, 2761, 2761, 2761, 1471, 2762, 1470, 2891, 2763, 2764,
3081      2764, 2764, 2894, 2894, 2894, 2893, 2895, 1469, 1468, 2896,
3082      2897, 2897, 2897, 2899, 2899, 2899, 2765, 2768, 2768, 2768,
3083
3084      1467, 2884, 2770, 2770, 2770, 1466, 1465, 2898, 1464, 1458,
3085      2900, 2775, 2775, 2775, 1403, 2769, 2901, 2901, 2901, 2771,
3086      2902, 1399, 1394, 2903, 1638, 1638, 1638, 1393, 1388, 2776,
3087      1387, 1656, 1656, 1656, 1675, 1675, 1675, 2821, 2821, 2821,
3088      1386, 1385, 1640, 2953, 2953, 2953, 2825, 2825, 2825, 1658,
3089      1384, 1383, 1677, 2829, 2829, 2829, 2832, 2832, 2832, 2961,
3090      2961, 2961, 2834, 2834, 2834, 1371, 2835, 1370, 1369, 2836,
3091      2837, 2837, 2837, 2963, 2963, 2963, 2962, 2964, 1368, 1367,
3092      2965, 2839, 2839, 2839, 1366, 1365, 2934, 2838, 2841, 2841,
3093      2841, 2907, 2920, 2966, 2966, 2966, 1364, 2967, 2840, 1363,
3094
3095      2968, 2843, 2843, 2843, 1362, 2844, 2842, 1361, 2845, 2846,
3096      2846, 2846, 1414, 1414, 1414, 1422, 1422, 1422, 1432, 1432,
3097      1432, 2974, 2974, 2974, 2855, 2855, 2855, 2847, 2856, 1360,
3098      1416, 2857, 1359, 1424, 1358, 1357, 1434, 1356, 2975, 2988,
3099      2988, 2988, 2868, 2868, 2868, 2990, 2990, 2990, 1355, 2991,
3100      1354, 1351, 2992, 2993, 2993, 2993, 2989, 1350, 1349, 2869,
3101      2871, 2871, 2871, 1348, 2872, 1347, 1346, 2873, 1345, 1344,
3102      2971, 2994, 1343, 1340, 2969, 2877, 2877, 2877, 1339, 2998,
3103      2998, 2998, 2970, 2999, 1338, 1337, 3000, 2879, 2879, 2879,
3104      1336, 2880, 2878, 1335, 2881, 2882, 2882, 2882, 1537, 1537,
3105
3106      1537, 2885, 2885, 2885, 1334, 2886, 1333, 1332, 2887, 3009,
3107      3009, 3009, 1331, 2883, 1324, 1320, 1539, 2890, 2890, 2890,
3108      3011, 3011, 3011, 1319, 3012, 1318, 3010, 3013, 2892, 2892,
3109      2892, 2894, 2894, 2894, 2891, 2895, 1317, 1316, 2896, 2897,
3110      2897, 2897, 1313, 3014, 3014, 3014, 2893, 3015, 1311, 1310,
3111      3016, 2899, 2899, 2899, 1308, 1306, 2898, 1305, 3017, 3017,
3112      3017, 3007, 3018, 1304, 1303, 3019, 1302, 1300, 2900, 2901,
3113      2901, 2901, 1297, 2902, 1295, 1294, 2903, 3027, 3027, 3027,
3114      3029, 3029, 3029, 1638, 1638, 1638, 3032, 3032, 3032, 3033,
3115      3033, 3033, 1293, 1292, 3028, 1291, 1288, 3030, 1656, 1656,
3116
3117      1656, 1640, 3058, 3058, 3058, 1285, 3034, 3060, 3060, 3060,
3118      3078, 3078, 3078, 2953, 2953, 2953, 1658, 1284, 1283, 3059,
3119      3083, 3083, 3083, 1281, 1280, 3061, 2961, 2961, 2961, 3087,
3120      3087, 3087, 1277, 3088, 1276, 1274, 3089, 2963, 2963, 2963,
3121      1271, 2964, 1270, 2962, 2965, 2966, 2966, 2966, 1269, 2967,
3122      1265, 1264, 2968, 1262, 1261, 3031, 1414, 1414, 1414, 3045,
3123      1422, 1422, 1422, 1432, 1432, 1432, 3098, 3098, 3098, 2974,
3124      2974, 2974, 1260, 1259, 1416, 3100, 3100, 3100, 1424, 3101,
3125      1257, 1434, 3102, 3099, 1256, 1255, 2975, 3103, 3103, 3103,
3126      2988, 2988, 2988, 3116, 3116, 3116, 1254, 3117, 1253, 3096,
3127
3128      3118, 2990, 2990, 2990, 3104, 2991, 1252, 2989, 2992, 2993,
3129      2993, 2993, 3095, 3120, 3120, 3120, 2998, 2998, 2998, 1249,
3130      2999, 1248, 1246, 3000, 3094, 1243, 1241, 2994, 1240, 1239,
3131      3121, 3129, 3129, 3129, 3009, 3009, 3009, 3132, 3132, 3132,
3132      1238, 3133, 1237, 1232, 3134, 1230, 3011, 3011, 3011, 3130,
3133      3012, 3010, 1229, 3013, 3014, 3014, 3014, 1228, 3015, 1226,
3134      1225, 3016, 3017, 3017, 3017, 1224, 3018, 1221, 1220, 3019,
3135      3027, 3027, 3027, 3148, 3148, 3148, 1219, 3149, 1218, 1216,
3136      3150, 3029, 3029, 3029, 3151, 3151, 3151, 3028, 3152, 1215,
3137      1214, 3153, 1638, 1638, 1638, 3032, 3032, 3032, 3030, 3033,
3138
3139      3033, 3033, 3155, 3155, 3155, 1212, 3156, 1209, 1205, 3157,
3140      1640, 1656, 1656, 1656, 1204, 1202, 3034, 3058, 3058, 3058,
3141      3179, 3179, 3179, 1201, 3180, 1200, 1197, 3181, 1196, 1658,
3142      3060, 3060, 3060, 1194, 3059, 3184, 3184, 3184, 3078, 3078,
3143      3078, 3200, 3200, 3200, 3083, 3083, 3083, 1193, 3061, 3204,
3144      3204, 3204, 3185, 1920, 1187, 3154, 1186, 3087, 3087, 3087,
3145      1185, 3088, 1183, 3166, 3089, 1414, 1414, 1414, 3219, 3219,
3146      3219, 1432, 1432, 1432, 3098, 3098, 3098, 3223, 3223, 3223,
3147      1182, 3224, 1181, 1416, 3225, 1176, 3220, 1175, 1171, 1434,
3148      1169, 3099, 3100, 3100, 3100, 1168, 3101, 1167, 1166, 3102,
3149
3150      3103, 3103, 3103, 3226, 3226, 3226, 1165, 3227, 1164, 1163,
3151      3228, 3116, 3116, 3116, 1162, 3117, 1161, 3104, 3118, 3120,
3152      3120, 3120, 3241, 3241, 3241, 1160, 3242, 1157, 1154, 3243,
3153      1153, 1151, 3218, 3221, 1150, 1149, 3121, 3129, 3129, 3129,
3154      3132, 3132, 3132, 1148, 3133, 1147, 1142, 3134, 3264, 3264,
3155      3264, 1140, 3148, 3148, 3148, 3130, 3149, 1139, 1138, 3150,
3156      3151, 3151, 3151, 1137, 3152, 3265, 1135, 3153, 1638, 1638,
3157      1638, 3155, 3155, 3155, 1134, 3156, 1133, 1131, 3157, 1656,
3158      1656, 1656, 1130, 3179, 3179, 3179, 1640, 3180, 1129, 1128,
3159      3181, 3305, 3305, 3305, 3184, 3184, 3184, 1658, 3307, 3307,
3160
3161      3307, 1126, 3308, 1123, 1122, 3309, 1120, 1118, 3306, 1920,
3162      1116, 3185, 1920, 3318, 3318, 3318, 1920, 3200, 3200, 3200,
3163      3274, 3320, 3320, 3320, 3321, 3321, 3321, 1115, 1114, 3283,
3164      3204, 3204, 3204, 3323, 3323, 3323, 1414, 1414, 1414, 3219,
3165      3219, 3219, 1432, 1432, 1432, 3223, 3223, 3223, 1113, 3224,
3166      1112, 1111, 3225, 1110, 1416, 1108, 1107, 3220, 1106, 1105,
3167      1434, 3226, 3226, 3226, 1101, 3227, 1100, 1099, 3228, 3339,
3168      3339, 3339, 3351, 3351, 3351, 3241, 3241, 3241, 1097, 3242,
3169      1096, 1095, 3243, 3353, 3353, 3353, 3340, 1094, 3336, 3352,
3170      3264, 3264, 3264, 1091, 3372, 3372, 3372, 1090, 3373, 1089,
3171
3172      3354, 3374, 3383, 3383, 3383, 1084, 1082, 3265, 1081, 1080,
3173      3337, 1656, 1656, 1656, 3305, 3305, 3305, 3409, 3409, 3409,
3174      3384, 3410, 1074, 1073, 3411, 1072, 3307, 3307, 3307, 1658,
3175      3308, 3306, 1920, 3309, 1071, 1920, 3318, 3318, 3318, 3320,
3176      3320, 3320, 1063, 1062, 1920, 3321, 3321, 3321, 3323, 3323,
3177      3323, 3434, 3434, 3434, 1432, 1432, 1432, 3339, 3339, 3339,
3178      3438, 3438, 3438, 1060, 3439, 1057, 1056, 3440, 1055, 3435,
3179      1054, 1049, 1434, 1046, 3340, 3441, 3441, 3441, 3391, 1918,
3180      1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1048, 1041,
3181      1918, 1040, 3442, 1038,  805, 1918, 1918, 1918, 1920, 1918,
3182
3183      3351, 3351, 3351, 3450, 3450, 3450, 1036, 3451, 1035, 1033,
3184      3452, 3453, 3453, 3453, 1031, 3454, 1030, 3352, 3455, 1029,
3185      1027, 3436, 3353, 3353, 3353, 1918, 1918, 1918, 1918, 1918,
3186      1918, 1918, 1918, 1918, 1918, 1918, 1026, 1023, 1918, 3354,
3187      3383, 3383, 3383, 1918, 1918, 1918, 1920, 1918, 3372, 3372,
3188      3372, 1022, 3373, 1021, 1019, 3374, 1018, 1016, 3384, 3487,
3189      3487, 3487, 3409, 3409, 3409, 1015, 3410, 1014, 1013, 3411,
3190      3522, 3522, 3522, 1918, 1918, 1011, 1010, 3488, 1009, 1008,
3191      1920, 1918, 1918, 1918, 1918, 1918, 3509, 1918, 1918, 1918,
3192      1007, 1006, 1918, 3523, 3523, 3523, 1004, 1918, 1918, 1918,
3193
3194      1920, 1918, 3434, 3434, 3434, 1432, 1432, 1432, 3438, 3438,
3195      3438, 1002, 3439, 1001,  999, 3440, 3522, 3522, 3522,  995,
3196      3435,  993,  989, 1434, 3441, 3441, 3441, 1918, 1918, 1918,
3197      1918, 1918, 1918, 1918, 1918, 1918, 1918, 3509,  985,  984,
3198      1918, 3442, 3523, 3523, 3523, 1918, 1918, 1918, 1920, 1918,
3199       982, 3536, 3536, 3536,  980, 3537,  979, 3530, 3538, 3450,
3200      3450, 3450,  977, 3451,  975,  974, 3452, 3453, 3453, 3453,
3201       973, 3454,  972,  971, 3455, 1918, 1918, 3487, 3487, 3487,
3202      3583, 3583, 3583, 3596, 3596, 3596, 3598, 3598, 3598, 3536,
3203      3536, 3536,  969, 3537,  961, 3488, 3538,  959, 1920, 1921,
3204
3205       954, 3597,  953, 3599, 3612, 3612, 3612, 3622, 3622, 3622,
3206      3640, 3640, 3640, 3583, 3583, 3583, 3596, 3596, 3596,  952,
3207       951, 3613,  950,  948, 3623, 3598, 3598, 3598, 1310,  946,
3208       945, 1920,  943,  941, 3597,  940, 3652, 3652, 3652,  938,
3209      3653,  936, 3599, 3654, 3612, 3612, 3612, 3667, 3667, 3667,
3210       935, 3668,  933,  932, 3669, 3622, 3622, 3622, 3640, 3640,
3211      3640, 3613, 3678, 3678, 3678, 2130, 3679,  929,  928, 3680,
3212       927,  925, 3623, 3652, 3652, 3652, 1310, 3653,  923,  921,
3213      3654, 3667, 3667, 3667,  919, 3668,  918,  917, 3669, 3678,
3214      3678, 3678,  915, 3679,  914, 3695, 3680, 3892, 3892, 3892,
3215
3216      3892, 3892, 3892,  910, 3909,  909,  908, 3910, 3988, 3988,
3217      3988, 3988, 3988, 3988,  907, 1310,  905,  904, 1310,  903,
3218       901,  900,  899,  893,  889,  888, 3989,  884,  880, 3989,
3219       324,  324,  324,  324,  324,  324,  324,  324,  324,  325,
3220       325,  325,  325,  325,  325,  325,  325,  325,  330,  330,
3221       330,  330,  330,  330,  330,  330,  330,  333,  333,  333,
3222       333,  333,  333,  333,  333,  333,  336,  336,  336,  336,
3223       336,  336,  336,  336,  336,  339,  339,  339,  339,  339,
3224       339,  339,  339,  339,  346,  346,  346,  346,  346,  346,
3225       346,  346,  346,  353,  353,  353,  353,  353,  353,  353,
3226
3227       353,  353,  358,  358,  358,  358,  358,  358,  358,  358,
3228       358,  377,  377,  377,  377,  377,  377,  377,  377,  377,
3229       383,  383,  383,  383,  383,  383,  383,  383,  383,  391,
3230       391,  391,  391,  391,  391,  391,  391,  391,  399,  399,
3231       399,  399,  399,  399,  399,  399,  399,  407,  407,  407,
3232       407,  407,  407,  407,  407,  407,  411,  411,  411,  411,
3233       411,  411,  411,  411,  411,  417,  417,  417,  417,  417,
3234       417,  417,  417,  417,  423,  423,  423,  423,  423,  423,
3235       423,  423,  423,  429,  429,  429,  429,  429,  429,  429,
3236       429,  429,  435,  435,  435,  435,  435,  435,  435,  435,
3237
3238       435,  442,  442,  442,  442,  442,  442,  442,  442,  442,
3239       447,  447,  447,  447,  447,  447,  447,  447,  447,  454,
3240       454,  454,  454,  454,  454,  454,  454,  454,  460,  460,
3241       460,  460,  460,  460,  460,  460,  460,  467,  467,  467,
3242       467,  467,  467,  467,  467,  467,  476,  476,  476,  476,
3243       476,  476,  476,  476,  476,  482,  482,  482,  482,  482,
3244       482,  482,  482,  482,  493,  493,  493,  493,  493,  493,
3245       493,  493,  493,  500,  500,  500,  500,  500,  500,  500,
3246       500,  500,  504,  504,  504,  504,  504,  504,  504,  504,
3247       504,  511,  511,  511,  511,  511,  511,  511,  511,  511,
3248
3249       519,  519,  519,  519,  519,  519,  519,  519,  519,  527,
3250       527,  527,  527,  527,  527,  527,  527,  527,  533,  533,
3251       533,  533,  533,  533,  533,  533,  533,  539,  539,  539,
3252       539,  539,  539,  539,  539,  539,  543,  543,  543,  543,
3253       543,  543,  543,  543,  543,  551,  551,  551,  551,  551,
3254       551,  551,  551,  551,  558,  558,  558,  558,  558,  558,
3255       558,  558,  558,  565,  565,  565,  565,  565,  565,  565,
3256       565,  565,  570,  570,  570,  570,  570,  570,  570,  570,
3257       570,  576,  576,  576,  576,  576,  576,  576,  576,  576,
3258       581,  581,  581,  581,  581,  581,  581,  581,  581,  587,
3259
3260       587,  587,  587,  587,  587,  587,  587,  587,  592,  592,
3261       592,  592,  592,  592,  592,  592,  592,  598,  598,  598,
3262       598,  598,  598,  598,  598,  598,  607,  607,  607,  607,
3263       607,  607,  607,  607,  607,  614,  614,  614,  614,  614,
3264       614,  614,  614,  614,  618,  618,  618,  618,  618,  618,
3265       618,  618,  618,  629,  629,  629,  629,  629,  629,  629,
3266       629,  629,  637,  637,  637,  637,  637,  637,  637,  637,
3267       637,  644,  644,  644,  644,  644,  644,  644,  644,  644,
3268       649,  649,  649,  649,  649,  649,  649,  649,  649,  655,
3269       655,  655,  655,  655,  655,  655,  655,  655,  663,  663,
3270
3271       663,  663,  663,  663,  663,  663,  663,  669,  669,  669,
3272       669,  669,  669,  669,  669,  669,  674,  674,  674,  674,
3273       674,  674,  674,  674,  674,  681,  681,  681,  681,  681,
3274       681,  681,  681,  681,  686,  686,  686,  686,  686,  686,
3275       686,  686,  686,  692,  692,  692,  692,  692,  692,  692,
3276       692,  692,  699,  699,  699,  699,  699,  699,  699,  699,
3277       699,  706,  706,  706,  706,  706,  706,  706,  706,  706,
3278       713,  713,  713,  713,  713,  713,  713,  713,  713,  721,
3279       721,  721,  721,  721,  721,  721,  721,  721,  339,  339,
3280       339,  339,  339,  339,  339,  339,  339,  732,  732,  732,
3281
3282       732,  732,  732,  732,  732,  732,  738,  738,  738,  738,
3283       738,  738,  738,  738,  738,  744,  744,  744,  744,  744,
3284       744,  744,  744,  744,  749,  749,  749,  749,  749,  749,
3285       749,  749,  749,  762,  762,  762,  762,  762,  762,  762,
3286       762,  762,  768,  768,  768,  768,  768,  768,  768,  768,
3287       768,  788,  788,  788,  879,  878,  877,  788,  831,  831,
3288       831,  876,  874,  872,  831,  839,  839,  839,  871,  870,
3289       868,  839,  848,  848,  848,  866,  865,  863,  848,  852,
3290       852,  852,  861,  860,  859,  852,  858,  858,  858,  857,
3291       855,  854,  858,  864,  864,  864,  853,  851,  849,  864,
3292
3293       869,  869,  869,  847,  846,  844,  869,  875,  875,  875,
3294       843,  842,  841,  875,  885,  885,  885,  840,  838,  833,
3295       885,  902,  902,  902,  832,  830, 3990,  902,  906,  906,
3296       906, 3990,  805,  790,  906,  916,  916,  916,  789,  787,
3297       786,  916,  922,  922,  922,  780,  779,  780,  922,  926,
3298       926,  926,  779,  778,  777,  926,  934,  934,  934, 3990,
3299      3990, 3990,  934,  939,  939,  939, 3990, 3990, 3990,  939,
3300       944,  944,  944, 3990, 3990, 3990,  944,  949,  949,  949,
3301      3990, 3990, 3990,  949,  960,  960,  960, 3990, 3990, 3990,
3302       960,  970,  970,  970, 3990, 3990, 3990,  970,  978,  978,
3303
3304       978, 3990, 3990, 3990,  978,  983,  983,  983, 3990, 3990,
3305      3990,  983,  994,  994,  994, 3990, 3990, 3990,  994, 1000,
3306      1000, 1000, 3990, 3990, 3990, 1000, 1005, 1005, 1005, 3990,
3307      3990, 3990, 1005, 1012, 1012, 1012, 3990, 3990, 3990, 1012,
3308      1020, 1020, 1020, 3990, 3990, 3990, 1020, 1028, 1028, 1028,
3309      3990, 3990, 3990, 1028, 1034, 1034, 1034, 3990, 3990, 3990,
3310      1034, 1039, 1039, 1039, 3990, 3990, 3990, 1039, 1045, 1045,
3311      1045, 1045, 1045, 1045, 1045, 3990, 1045,  788,  788,  788,
3312      3990, 3990, 3990,  788, 1061, 3990, 3990, 3990, 1061,  831,
3313       831,  831, 3990, 3990, 3990,  831, 1109, 3990, 3990, 3990,
3314
3315      1109,  839,  839,  839, 3990, 3990, 3990,  839, 1117, 3990,
3316      3990, 3990, 1117,  848,  848,  848, 3990, 3990, 3990,  848,
3317      1121, 3990, 3990, 3990, 1121,  852,  852,  852, 3990, 3990,
3318      3990,  852, 1127, 3990, 3990, 3990, 1127,  858,  858,  858,
3319      3990, 3990, 3990,  858, 1132, 3990, 3990, 3990, 1132,  864,
3320       864,  864, 3990, 3990, 3990,  864, 1136, 3990, 3990, 3990,
3321      1136,  869,  869,  869, 3990, 3990, 3990,  869, 1141, 3990,
3322      3990, 3990, 1141,  875,  875,  875, 3990, 3990, 3990,  875,
3323      1152, 3990, 3990, 3990, 1152,  885,  885,  885, 3990, 3990,
3324      3990,  885, 1170, 3990, 3990, 3990, 1170,  902,  902,  902,
3325
3326      3990, 3990, 3990,  902, 1174, 3990, 3990, 3990, 1174,  906,
3327       906,  906, 3990, 3990, 3990,  906, 1184, 3990, 3990, 3990,
3328      1184,  916,  916,  916, 3990, 3990, 3990,  916, 1192, 3990,
3329      3990, 3990, 1192,  922,  922,  922, 3990, 3990, 3990,  922,
3330      1195, 3990, 3990, 3990, 1195,  926,  926,  926, 3990, 3990,
3331      3990,  926, 1203, 3990, 3990, 3990, 1203,  934,  934,  934,
3332      3990, 3990, 3990,  934, 1208, 3990, 3990, 3990, 1208,  939,
3333       939,  939, 3990, 3990, 3990,  939, 1213, 3990, 3990, 3990,
3334      1213,  944,  944,  944, 3990, 3990, 3990,  944, 1217, 3990,
3335      3990, 3990, 1217,  949,  949,  949, 3990, 3990, 3990,  949,
3336
3337      1227, 3990, 3990, 3990, 1227,  960,  960,  960, 3990, 3990,
3338      3990,  960, 1231, 3990, 3990, 3990, 1231,  970,  970,  970,
3339      3990, 3990, 3990,  970, 1242, 3990, 3990, 3990, 1242,  978,
3340       978,  978, 3990, 3990, 3990,  978, 1247, 3990, 3990, 3990,
3341      1247,  983,  983,  983, 3990, 3990, 3990,  983, 1258, 3990,
3342      3990, 3990, 1258,  994,  994,  994, 3990, 3990, 3990,  994,
3343      1263, 3990, 3990, 3990, 1263, 1000, 1000, 1000, 3990, 3990,
3344      3990, 1000, 1268, 3990, 3990, 3990, 1268, 1005, 1005, 1005,
3345      3990, 3990, 3990, 1005, 1275, 3990, 3990, 3990, 1275, 1012,
3346      1012, 1012, 3990, 3990, 3990, 1012, 1282, 3990, 3990, 3990,
3347
3348      1282, 1020, 1020, 1020, 3990, 3990, 3990, 1020, 1290, 3990,
3349      3990, 3990, 1290, 1028, 1028, 1028, 3990, 3990, 3990, 1028,
3350      1296, 3990, 3990, 3990, 1296, 1034, 1034, 1034, 3990, 3990,
3351      3990, 1034, 1301, 3990, 3990, 3990, 1301, 1039, 1039, 1039,
3352      3990, 3990, 3990, 1039, 1307, 3990, 3990, 3990, 1307, 1309,
3353      1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1315, 3990,
3354      3990, 3990, 3990, 1315,  788,  788,  788, 3990, 3990, 3990,
3355       788, 1326, 1326, 1326, 1326, 3990, 3990, 1326, 1326,  831,
3356       831,  831,  831, 3990,  831, 3990,  831, 1380, 1380, 1380,
3357      1380, 3990, 3990, 1380, 1380,  839,  839,  839, 3990, 3990,
3358
3359      3990,  839, 1390, 1390, 1390, 1390, 3990, 3990, 1390, 1390,
3360       848,  848,  848, 3990, 3990, 3990,  848, 1396, 1396, 1396,
3361      1396, 3990, 3990, 1396, 1396,  852,  852,  852, 3990, 3990,
3362      3990,  852, 1405, 1405, 1405, 1405, 3990, 3990, 1405, 1405,
3363       858,  858,  858,  858, 3990,  858, 3990,  858, 1415, 1415,
3364      1415, 1415, 3990, 3990, 1415, 1415,  864,  864,  864,  864,
3365      3990,  864, 3990,  864, 1423, 1423, 1423, 1423, 3990, 3990,
3366      1423, 1423,  869,  869,  869,  869, 3990,  869, 3990,  869,
3367      1433, 1433, 1433, 1433, 3990, 3990, 1433, 1433,  875,  875,
3368       875,  875, 3990,  875, 3990,  875, 1449, 1449, 1449, 1449,
3369
3370      3990, 3990, 1449, 1449,  885,  885,  885, 3990, 3990, 3990,
3371       885, 1474, 1474, 1474, 1474, 3990, 3990, 1474, 1474, 1481,
3372      1481, 1481, 1481, 3990, 3990, 1481, 1481,  906,  906,  906,
3373      3990, 3990, 3990,  906, 1494, 1494, 1494, 1494, 3990, 3990,
3374      1494, 1494,  916,  916,  916, 3990, 3990, 3990,  916, 1506,
3375      1506, 1506, 1506, 3990, 3990, 1506, 1506,  922,  922,  922,
3376      3990, 3990, 3990,  922, 1511, 1511, 1511, 1511, 3990, 3990,
3377      1511, 1511,  926,  926,  926, 3990, 3990, 3990,  926, 1522,
3378      1522, 1522, 1522, 3990, 3990, 1522, 1522,  934,  934,  934,
3379      3990, 3990, 3990,  934, 1530, 1530, 1530, 1530, 3990, 3990,
3380
3381      1530, 1530,  939,  939,  939, 3990, 3990, 3990,  939, 1538,
3382      1538, 1538, 1538, 3990, 3990, 1538, 1538,  944,  944,  944,
3383      3990, 3990, 3990,  944, 1544, 1544, 1544, 1544, 3990, 3990,
3384      1544, 1544,  949,  949,  949, 3990, 3990, 3990,  949, 1559,
3385      1559, 1559, 1559, 3990, 3990, 1559, 1559,  960,  960,  960,
3386      3990, 3990, 3990,  960, 1565, 1565, 1565, 1565, 3990, 3990,
3387      1565, 1565,  970,  970,  970, 3990, 3990, 3990,  970, 1578,
3388      1578, 1578, 1578, 3990, 3990, 1578, 1578,  978,  978,  978,
3389      3990, 3990, 3990,  978, 1586, 1586, 1586, 1586, 3990, 3990,
3390      1586, 1586,  983,  983,  983, 3990, 3990, 3990,  983, 1602,
3391
3392      1602, 1602, 1602, 3990, 3990, 1602, 1602,  994,  994,  994,
3393       994, 3990,  994, 3990,  994, 1611, 1611, 1611, 1611, 3990,
3394      3990, 1611, 1611, 1000, 1000, 1000, 3990, 3990, 3990, 1000,
3395      1619, 1619, 1619, 1619, 3990, 3990, 1619, 1619, 1005, 1005,
3396      1005, 3990, 3990, 3990, 1005, 1629, 1629, 1629, 1629, 3990,
3397      3990, 1629, 1629, 1012, 1012, 1012, 3990, 3990, 3990, 1012,
3398      1639, 1639, 1639, 1639, 3990, 3990, 1639, 1639, 1020, 1020,
3399      1020, 3990, 3990, 3990, 1020, 1650, 1650, 1650, 1650, 3990,
3400      3990, 1650, 1650, 1028, 1028, 1028, 3990, 3990, 3990, 1028,
3401      1657, 1657, 1657, 1657, 3990, 3990, 1657, 1657, 1034, 1034,
3402
3403      1034, 3990, 3990, 3990, 1034, 1665, 1665, 1665, 1665, 3990,
3404      3990, 1665, 1665, 1039, 1039, 1039, 1039, 3990, 1039, 3990,
3405      1039, 1676, 1676, 1676, 1676, 3990, 3990, 1676, 1676, 1309,
3406      1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1315, 3990,
3407      1315, 3990, 3990, 1315,  788,  788,  788, 3990, 3990, 3990,
3408       788, 1326, 1326, 1326, 1326, 3990, 3990, 1326, 1326,  831,
3409       831,  831, 3990, 3990, 3990,  831, 1380, 1380, 1380, 1380,
3410      3990, 3990, 1380, 1380,  839,  839,  839, 3990, 3990, 3990,
3411       839, 1390, 1390, 1390, 1390, 3990, 3990, 1390, 1390,  848,
3412       848,  848, 3990, 3990, 3990,  848, 1396, 1396, 1396, 1396,
3413
3414      3990, 3990, 1396, 1396,  852,  852,  852, 3990, 3990, 3990,
3415       852, 1405, 1405, 1405, 1405, 3990, 3990, 1405, 1405,  858,
3416       858,  858, 3990, 3990, 3990,  858, 1415, 1415, 1415, 1415,
3417      3990, 3990, 1415, 1415, 1423, 1423, 1423, 1423, 3990, 3990,
3418      1423, 1423,  869,  869,  869, 3990, 3990, 3990,  869, 1433,
3419      1433, 1433, 1433, 3990, 3990, 1433, 1433,  875,  875,  875,
3420      3990, 3990, 3990,  875, 1449, 1449, 1449, 1449, 3990, 3990,
3421      1449, 1449,  885,  885,  885, 3990, 3990, 3990,  885, 1474,
3422      1474, 1474, 1474, 3990, 3990, 1474, 1474, 1481, 1481, 1481,
3423      1481, 3990, 3990, 1481, 1481,  906,  906,  906, 3990, 3990,
3424
3425      3990,  906, 1494, 1494, 1494, 1494, 3990, 3990, 1494, 1494,
3426       916,  916,  916,  916, 3990,  916, 3990,  916, 1506, 1506,
3427      1506, 1506, 3990, 3990, 1506, 1506,  922,  922,  922,  922,
3428      3990,  922, 3990,  922, 1511, 1511, 1511, 1511, 3990, 3990,
3429      1511, 1511,  926,  926,  926, 3990, 3990, 3990,  926, 1522,
3430      1522, 1522, 1522, 3990, 3990, 1522, 1522,  934,  934,  934,
3431      3990, 3990, 3990,  934, 1530, 1530, 1530, 1530, 3990, 3990,
3432      1530, 1530,  939,  939,  939, 3990, 3990, 3990,  939, 1538,
3433      1538, 1538, 1538, 3990, 3990, 1538, 1538,  944,  944,  944,
3434       944, 3990,  944, 3990,  944, 1544, 1544, 1544, 1544, 3990,
3435
3436      3990, 1544, 1544,  949,  949,  949, 3990, 3990, 3990,  949,
3437      1559, 1559, 1559, 1559, 3990, 3990, 1559, 1559,  960,  960,
3438       960, 3990, 3990, 3990,  960, 1565, 1565, 1565, 1565, 3990,
3439      3990, 1565, 1565,  970,  970,  970, 3990, 3990, 3990,  970,
3440      1578, 1578, 1578, 1578, 3990, 3990, 1578, 1578,  978,  978,
3441       978, 3990, 3990, 3990,  978, 1586, 1586, 1586, 1586, 3990,
3442      3990, 1586, 1586,  983,  983,  983, 3990, 3990, 3990,  983,
3443      1602, 1602, 1602, 1602, 3990, 3990, 1602, 1602,  994,  994,
3444       994, 3990, 3990, 3990,  994, 1611, 1611, 1611, 1611, 3990,
3445      3990, 1611, 1611, 1000, 1000, 1000, 3990, 3990, 3990, 1000,
3446
3447      1619, 1619, 1619, 1619, 3990, 3990, 1619, 1619, 1005, 1005,
3448      1005, 3990, 3990, 3990, 1005, 1629, 1629, 1629, 1629, 3990,
3449      3990, 1629, 1629, 1012, 1012, 1012, 3990, 3990, 3990, 1012,
3450      1639, 1639, 1639, 1639, 3990, 3990, 1639, 1639, 1020, 1020,
3451      1020, 1020, 3990, 1020, 3990, 1020, 1650, 1650, 1650, 1650,
3452      3990, 3990, 1650, 1650, 1028, 1028, 1028, 3990, 3990, 3990,
3453      1028, 1657, 1657, 1657, 1657, 3990, 3990, 1657, 1657, 1034,
3454      1034, 1034, 3990, 3990, 3990, 1034, 1665, 1665, 1665, 1665,
3455      3990, 3990, 1665, 1665, 1039, 1039, 1039, 3990, 3990, 3990,
3456      1039, 1676, 1676, 1676, 1676, 3990, 3990, 1676, 1676, 1309,
3457
3458      1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1918, 1918,
3459      1918, 1918, 1918, 1918, 1918, 1918, 1918,  788,  788,  788,
3460      3990, 3990, 3990,  788,  831,  831,  831, 3990, 3990, 3990,
3461       831, 1380, 1380, 1380, 1380, 3990, 3990, 1380, 1380,  839,
3462       839,  839, 3990, 3990, 3990,  839, 1390, 1390, 1390, 1390,
3463      3990, 3990, 1390, 1390,  848,  848,  848,  848, 3990,  848,
3464      3990,  848, 1396, 1396, 1396, 1396, 3990, 3990, 1396, 1396,
3465       852,  852,  852, 3990, 3990, 3990,  852, 1405, 1405, 1405,
3466      1405, 3990, 3990, 1405, 1405,  858,  858,  858, 3990, 3990,
3467      3990,  858, 1415, 1415, 1415, 1415, 3990, 3990, 1415, 1415,
3468
3469      1423, 1423, 1423, 1423, 3990, 3990, 1423, 1423,  869,  869,
3470       869, 3990, 3990, 3990,  869, 1433, 1433, 1433, 1433, 3990,
3471      3990, 1433, 1433,  875,  875,  875, 3990, 3990, 3990,  875,
3472      1449, 1449, 1449, 1449, 3990, 3990, 1449, 1449,  885,  885,
3473       885,  885, 3990,  885, 3990,  885, 1474, 1474, 1474, 1474,
3474      3990, 3990, 1474, 1474, 1481, 1481, 1481, 1481, 3990, 3990,
3475      1481, 1481,  906,  906,  906, 3990, 3990, 3990,  906, 1494,
3476      1494, 1494, 1494, 3990, 3990, 1494, 1494, 1506, 1506, 1506,
3477      1506, 3990, 3990, 1506, 1506, 1511, 1511, 1511, 1511, 3990,
3478      3990, 1511, 1511,  926,  926,  926, 3990, 3990, 3990,  926,
3479
3480      1522, 1522, 1522, 1522, 3990, 3990, 1522, 1522,  934,  934,
3481       934, 3990, 3990, 3990,  934, 1530, 1530, 1530, 1530, 3990,
3482      3990, 1530, 1530,  939,  939,  939,  939, 3990,  939, 3990,
3483       939, 1538, 1538, 1538, 1538, 3990, 3990, 1538, 1538,  944,
3484       944,  944, 3990, 3990, 3990,  944, 1544, 1544, 1544, 1544,
3485      3990, 3990, 1544, 1544,  949,  949,  949, 3990, 3990, 3990,
3486       949, 1559, 1559, 1559, 1559, 3990, 3990, 1559, 1559,  960,
3487       960,  960, 3990, 3990, 3990,  960, 1565, 1565, 1565, 1565,
3488      3990, 3990, 1565, 1565,  970,  970,  970, 3990, 3990, 3990,
3489       970, 1578, 1578, 1578, 1578, 3990, 3990, 1578, 1578,  978,
3490
3491       978,  978,  978, 3990,  978, 3990,  978, 1586, 1586, 1586,
3492      1586, 3990, 3990, 1586, 1586,  983,  983,  983, 3990, 3990,
3493      3990,  983, 1602, 1602, 1602, 1602, 3990, 3990, 1602, 1602,
3494       994,  994,  994, 3990, 3990, 3990,  994, 1611, 1611, 1611,
3495      1611, 3990, 3990, 1611, 1611, 1000, 1000, 1000, 3990, 3990,
3496      3990, 1000, 1619, 1619, 1619, 1619, 3990, 3990, 1619, 1619,
3497      1005, 1005, 1005, 3990, 3990, 3990, 1005, 1629, 1629, 1629,
3498      1629, 3990, 3990, 1629, 1629, 1012, 1012, 1012, 3990, 3990,
3499      3990, 1012, 1639, 1639, 1639, 1639, 3990, 3990, 1639, 1639,
3500      1020, 1020, 1020, 3990, 3990, 3990, 1020, 1650, 1650, 1650,
3501
3502      1650, 3990, 3990, 1650, 1650, 1028, 1028, 1028, 3990, 3990,
3503      3990, 1028, 1657, 1657, 1657, 1657, 3990, 3990, 1657, 1657,
3504      1034, 1034, 1034, 3990, 3990, 3990, 1034, 1665, 1665, 1665,
3505      1665, 3990, 3990, 1665, 1665, 1039, 1039, 1039, 3990, 3990,
3506      3990, 1039, 1676, 1676, 1676, 1676, 3990, 3990, 1676, 1676,
3507      1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1918,
3508      1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,  788,  788,
3509       788, 3990, 3990, 3990,  788,  831,  831,  831,  831, 3990,
3510       831, 3990,  831, 1380, 1380, 1380, 1380, 3990, 3990, 1380,
3511      1380,  839,  839,  839, 3990, 3990, 3990,  839, 1390, 1390,
3512
3513      1390, 1390, 3990, 3990, 1390, 1390, 1396, 1396, 1396, 1396,
3514      3990, 3990, 1396, 1396,  852,  852,  852, 3990, 3990, 3990,
3515       852, 1405, 1405, 1405, 1405, 3990, 3990, 1405, 1405,  858,
3516       858,  858,  858, 3990,  858, 3990,  858, 1415, 1415, 1415,
3517      1415, 3990, 3990, 1415, 1415, 1423, 1423, 1423, 1423, 3990,
3518      3990, 1423, 1423,  869,  869,  869,  869, 3990,  869, 3990,
3519       869, 1433, 1433, 1433, 1433, 3990, 3990, 1433, 1433,  875,
3520       875,  875,  875, 3990,  875, 3990,  875, 1449, 1449, 1449,
3521      1449, 3990, 3990, 1449, 1449,  885,  885,  885,  885, 3990,
3522       885, 3990,  885, 1474, 1474, 1474, 1474, 3990, 3990, 1474,
3523
3524      1474, 1481, 1481, 1481, 1481, 3990, 3990, 1481, 1481,  906,
3525       906,  906, 3990, 3990, 3990,  906, 1494, 1494, 1494, 1494,
3526      3990, 3990, 1494, 1494, 1506, 1506, 1506, 1506, 3990, 3990,
3527      1506, 1506, 1511, 1511, 1511, 1511, 3990, 3990, 1511, 1511,
3528       926,  926,  926, 3990, 3990, 3990,  926, 1522, 1522, 1522,
3529      1522, 3990, 3990, 1522, 1522,  934,  934,  934, 3990, 3990,
3530      3990,  934, 1530, 1530, 1530, 1530, 3990, 3990, 1530, 1530,
3531      1538, 1538, 1538, 1538, 3990, 3990, 1538, 1538,  944,  944,
3532       944, 3990, 3990, 3990,  944, 1544, 1544, 1544, 1544, 3990,
3533      3990, 1544, 1544,  949,  949,  949, 3990, 3990, 3990,  949,
3534
3535      1559, 1559, 1559, 1559, 3990, 3990, 1559, 1559,  960,  960,
3536       960, 3990, 3990, 3990,  960, 1565, 1565, 1565, 1565, 3990,
3537      3990, 1565, 1565,  970,  970,  970, 3990, 3990, 3990,  970,
3538      1578, 1578, 1578, 1578, 3990, 3990, 1578, 1578, 1586, 1586,
3539      1586, 1586, 3990, 3990, 1586, 1586,  983,  983,  983, 3990,
3540      3990, 3990,  983, 1602, 1602, 1602, 1602, 3990, 3990, 1602,
3541      1602,  994,  994,  994, 3990, 3990, 3990,  994, 1611, 1611,
3542      1611, 1611, 3990, 3990, 1611, 1611, 1000, 1000, 1000, 3990,
3543      3990, 3990, 1000, 1619, 1619, 1619, 1619, 3990, 3990, 1619,
3544      1619, 1005, 1005, 1005, 1005, 3990, 1005, 3990, 1005, 1629,
3545
3546      1629, 1629, 1629, 3990, 3990, 1629, 1629, 1012, 1012, 1012,
3547      3990, 3990, 3990, 1012, 1639, 1639, 1639, 1639, 3990, 3990,
3548      1639, 1639, 1020, 1020, 1020, 3990, 3990, 3990, 1020, 1650,
3549      1650, 1650, 1650, 3990, 3990, 1650, 1650, 1028, 1028, 1028,
3550      3990, 3990, 3990, 1028, 1657, 1657, 1657, 1657, 3990, 3990,
3551      1657, 1657, 1034, 1034, 1034, 3990, 3990, 3990, 1034, 1665,
3552      1665, 1665, 1665, 3990, 3990, 1665, 1665, 1039, 1039, 1039,
3553      1039, 3990, 1039, 3990, 1039, 1676, 1676, 1676, 1676, 3990,
3554      3990, 1676, 1676, 1309, 1309, 1309, 1309, 1309, 1309, 1309,
3555      1309, 1309, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
3556
3557      1918,  788,  788,  788,  788, 3990,  788, 3990,  788,  831,
3558       831,  831, 3990, 3990, 3990,  831, 1380, 1380, 1380, 1380,
3559      3990, 3990, 1380, 1380,  839,  839,  839, 3990, 3990, 3990,
3560       839, 1390, 1390, 1390, 1390, 3990, 3990, 1390, 1390, 1396,
3561      1396, 1396, 1396, 3990, 3990, 1396, 1396,  852,  852,  852,
3562      3990, 3990, 3990,  852, 1405, 1405, 1405, 1405, 3990, 3990,
3563      1405, 1405, 1415, 1415, 1415, 1415, 3990, 3990, 1415, 1415,
3564      1423, 1423, 1423, 1423, 3990, 3990, 1423, 1423, 1433, 1433,
3565      1433, 1433, 3990, 3990, 1433, 1433,  875,  875,  875,  875,
3566      3990,  875, 3990,  875, 1449, 1449, 1449, 1449, 3990, 3990,
3567
3568      1449, 1449,  885,  885,  885, 3990, 3990, 3990,  885, 1474,
3569      1474, 1474, 1474, 3990, 3990, 1474, 1474, 1481, 1481, 1481,
3570      1481, 3990, 3990, 1481, 1481,  906,  906,  906, 3990, 3990,
3571      3990,  906, 1506, 1506, 1506, 1506, 3990, 3990, 1506, 1506,
3572      1511, 1511, 1511, 1511, 3990, 3990, 1511, 1511,  926,  926,
3573       926, 3990, 3990, 3990,  926,  934,  934,  934, 3990, 3990,
3574      3990,  934, 1530, 1530, 1530, 1530, 3990, 3990, 1530, 1530,
3575      1538, 1538, 1538, 1538, 3990, 3990, 1538, 1538,  944,  944,
3576       944, 3990, 3990, 3990,  944, 1544, 1544, 1544, 1544, 3990,
3577      3990, 1544, 1544,  949,  949,  949, 3990, 3990, 3990,  949,
3578
3579       960,  960,  960,  960, 3990,  960, 3990,  960, 1565, 1565,
3580      1565, 1565, 3990, 3990, 1565, 1565,  970,  970,  970, 3990,
3581      3990, 3990,  970, 1578, 1578, 1578, 1578, 3990, 3990, 1578,
3582      1578,  983,  983,  983, 3990, 3990, 3990,  983, 1602, 1602,
3583      1602, 1602, 3990, 3990, 1602, 1602,  994,  994,  994, 3990,
3584      3990, 3990,  994, 1611, 1611, 1611, 1611, 3990, 3990, 1611,
3585      1611, 1000, 1000, 1000, 3990, 3990, 3990, 1000, 1619, 1619,
3586      1619, 1619, 3990, 3990, 1619, 1619, 1005, 1005, 1005, 1005,
3587      3990, 1005, 3990, 1005, 1629, 1629, 1629, 1629, 3990, 3990,
3588      1629, 1629, 1012, 1012, 1012, 1012, 3990, 1012, 3990, 1012,
3589
3590      1639, 1639, 1639, 1639, 3990, 3990, 1639, 1639, 1020, 1020,
3591      1020, 3990, 3990, 3990, 1020, 1650, 1650, 1650, 1650, 3990,
3592      3990, 1650, 1650, 1028, 1028, 1028, 1028, 3990, 1028, 3990,
3593      1028, 1657, 1657, 1657, 1657, 3990, 3990, 1657, 1657, 1034,
3594      1034, 1034, 1034, 3990, 1034, 3990, 1034, 1039, 1039, 1039,
3595      3990, 3990, 3990, 1039, 1676, 1676, 1676, 1676, 3990, 3990,
3596      1676, 1676, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309,
3597      1309, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
3598       831,  831,  831, 3990, 3990, 3990,  831, 1380, 1380, 1380,
3599      1380, 3990, 3990, 1380, 1380,  839,  839,  839,  839, 3990,
3600
3601       839, 3990,  839, 1396, 1396, 1396, 1396, 3990, 3990, 1396,
3602      1396,  852,  852,  852, 3990, 3990, 3990,  852, 1405, 1405,
3603      1405, 1405, 3990, 3990, 1405, 1405, 1415, 1415, 1415, 1415,
3604      3990, 3990, 1415, 1415, 1423, 1423, 1423, 1423, 3990, 3990,
3605      1423, 1423, 1433, 1433, 1433, 1433, 3990, 3990, 1433, 1433,
3606      1449, 1449, 1449, 1449, 3990, 3990, 1449, 1449,  885,  885,
3607       885, 3990, 3990, 3990,  885, 1474, 1474, 1474, 1474, 3990,
3608      3990, 1474, 1474, 1481, 1481, 1481, 1481, 3990, 3990, 1481,
3609      1481,  906,  906,  906, 3990, 3990, 3990,  906, 1506, 1506,
3610      1506, 1506, 3990, 3990, 1506, 1506, 1511, 1511, 1511, 1511,
3611
3612      3990, 3990, 1511, 1511,  926,  926,  926, 3990, 3990, 3990,
3613       926,  934,  934,  934, 3990, 3990, 3990,  934, 1530, 1530,
3614      1530, 1530, 3990, 3990, 1530, 1530, 1538, 1538, 1538, 1538,
3615      3990, 3990, 1538, 1538,  944,  944,  944, 3990, 3990, 3990,
3616       944,  949,  949,  949, 3990, 3990, 3990,  949, 1565, 1565,
3617      1565, 1565, 3990, 3990, 1565, 1565,  970,  970,  970,  970,
3618      3990,  970, 3990,  970, 1578, 1578, 1578, 1578, 3990, 3990,
3619      1578, 1578,  983,  983,  983, 3990, 3990, 3990,  983, 1602,
3620      1602, 1602, 1602, 3990, 3990, 1602, 1602,  994,  994,  994,
3621      3990, 3990, 3990,  994, 1000, 1000, 1000, 3990, 3990, 3990,
3622
3623      1000, 1619, 1619, 1619, 1619, 3990, 3990, 1619, 1619, 1629,
3624      1629, 1629, 1629, 3990, 3990, 1629, 1629, 1639, 1639, 1639,
3625      1639, 3990, 3990, 1639, 1639, 1020, 1020, 1020, 3990, 3990,
3626      3990, 1020, 1657, 1657, 1657, 1657, 3990, 3990, 1657, 1657,
3627      1039, 1039, 1039, 3990, 3990, 3990, 1039, 1676, 1676, 1676,
3628      1676, 3990, 3990, 1676, 1676, 1309, 1309, 1309, 1309, 1309,
3629      1309, 1309, 1309, 1309, 1918, 1918, 1918, 1918, 1918, 1918,
3630      1918, 1918, 1918,  831,  831,  831, 3990, 3990, 3990,  831,
3631      1380, 1380, 1380, 1380, 3990, 3990, 1380, 1380,  839,  839,
3632       839,  839, 3990,  839, 3990,  839, 1396, 1396, 1396, 1396,
3633
3634      3990, 3990, 1396, 1396,  852,  852,  852,  852, 3990,  852,
3635      3990,  852, 1405, 1405, 1405, 1405, 3990, 3990, 1405, 1405,
3636      1415, 1415, 1415, 1415, 3990, 3990, 1415, 1415, 1423, 1423,
3637      1423, 1423, 3990, 3990, 1423, 1423, 1433, 1433, 1433, 1433,
3638      3990, 3990, 1433, 1433, 1449, 1449, 1449, 1449, 3990, 3990,
3639      1449, 1449,  885,  885,  885, 3990, 3990, 3990,  885, 1474,
3640      1474, 1474, 1474, 3990, 3990, 1474, 1474,  906,  906,  906,
3641      3990, 3990, 3990,  906, 1506, 1506, 1506, 1506, 3990, 3990,
3642      1506, 1506, 1511, 1511, 1511, 1511, 3990, 3990, 1511, 1511,
3643       926,  926,  926,  926, 3990,  926, 3990,  926,  934,  934,
3644
3645       934,  934, 3990,  934, 3990,  934, 1530, 1530, 1530, 1530,
3646      3990, 3990, 1530, 1530, 1538, 1538, 1538, 1538, 3990, 3990,
3647      1538, 1538,  944,  944,  944,  944, 3990,  944, 3990,  944,
3648       949,  949,  949, 3990, 3990, 3990,  949, 1565, 1565, 1565,
3649      1565, 3990, 3990, 1565, 1565,  970,  970,  970,  970, 3990,
3650       970, 3990,  970, 1578, 1578, 1578, 1578, 3990, 3990, 1578,
3651      1578,  983,  983,  983,  983, 3990,  983, 3990,  983,  994,
3652       994,  994, 3990, 3990, 3990,  994, 1000, 1000, 1000, 3990,
3653      3990, 3990, 1000, 1629, 1629, 1629, 1629, 3990, 3990, 1629,
3654      1629, 1639, 1639, 1639, 1639, 3990, 3990, 1639, 1639, 1020,
3655
3656      1020, 1020, 3990, 3990, 3990, 1020, 1657, 1657, 1657, 1657,
3657      3990, 3990, 1657, 1657, 1039, 1039, 1039, 3990, 3990, 3990,
3658      1039, 1676, 1676, 1676, 1676, 3990, 3990, 1676, 1676, 1309,
3659      1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1918, 1918,
3660      1918, 1918, 1918, 1918, 1918, 1918, 1918,  831,  831,  831,
3661      3990, 3990, 3990,  831,  839,  839,  839,  839, 3990,  839,
3662      3990,  839, 1396, 1396, 1396, 1396, 3990, 3990, 1396, 1396,
3663      1405, 1405, 1405, 1405, 3990, 3990, 1405, 1405, 1415, 1415,
3664      1415, 1415, 3990, 3990, 1415, 1415, 1423, 1423, 1423, 1423,
3665      3990, 3990, 1423, 1423, 1433, 1433, 1433, 1433, 3990, 3990,
3666
3667      1433, 1433,  885,  885,  885, 3990, 3990, 3990,  885,  906,
3668       906,  906, 3990, 3990, 3990,  906, 1506, 1506, 1506, 1506,
3669      3990, 3990, 1506, 1506,  926,  926,  926, 3990, 3990, 3990,
3670       926, 1530, 1530, 1530, 1530, 3990, 3990, 1530, 1530, 1538,
3671      1538, 1538, 1538, 3990, 3990, 1538, 1538,  949,  949,  949,
3672      3990, 3990, 3990,  949, 1565, 1565, 1565, 1565, 3990, 3990,
3673      1565, 1565,  970,  970,  970,  970, 3990,  970, 3990,  970,
3674       983,  983,  983, 3990, 3990, 3990,  983,  994,  994,  994,
3675      3990, 3990, 3990,  994, 1000, 1000, 1000, 3990, 3990, 3990,
3676      1000, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412,
3677
3678      3413, 3413, 3413, 3413, 3413, 3413, 3413, 3413, 3413, 3504,
3679      3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3507, 3507,
3680      3507, 3507, 3507, 3507, 3507, 3507, 3507, 3580, 3580, 3580,
3681      3580, 3580, 3580, 3580, 3580, 3580, 3582, 3582, 3582, 3582,
3682      3582, 3582, 3582, 3582, 3582,  323, 3990, 3990, 3990, 3990,
3683      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
3684      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
3685      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
3686      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
3687      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
3688
3689      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
3690      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
3691      3990
3692     } ;
3693
3694 static const flex_int16_t yy_chk[14122] =
3695     {   0,
3696         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3697         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3698         4,   10, 1024,    5,    0,    9,    6,  401,   10,    7,
3699         8,    8,    8,  328,   11,   13,   13,   12,   14,   14,
3700        13,   13,  373,   14,   14,  329,    8,   17,   17,  328,
3701        13,   15,   15,   14,   15,  332,   15,   16,   16, 1024,
3702        16,  329,   16,   18,   18,  401,   15,   21,   21,   21,
3703      1550,  332,   16,   22,   22,   22,  557,   23,   23,   23,
3704        24,   24,   24,   21,   25,   25,   25,  366,  557,   22,
3705       368,  354,   17,   23,  368,  373,   24,  326,  326,  326,
3706
3707        25,  327,  327,  327,  331,  331,  331,  354,   18,   19,
3708        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
3709        19,   19,   19,   19, 1556,   19,   19,   19,   19,   19,
3710        26,   26,   26,   27,   27,   27,   28,   28,   28,  490,
3711       366,   29,   29,   29,  366,  475,   26,  382,  378,   27,
3712       475, 1557,   28,  490,  382,   19,   19,   29,   30,   30,
3713        30,  351,  351,  351,  378,  385,   19,  359,  359,  359,
3714       375,  375,  375, 1562,   30,   19,   20,   20,   20,   20,
3715        20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
3716        20,  485,   20,   20,   20,   20,   20,   31,   31,   31,
3717
3718        32,   32,   32,   33,   33,   33,  267,  267,   34,   34,
3719        34,  267,  485,   31,  385,  387,   32,  621,  385,   33,
3720      1563,  267,   20,   20,   34,   35,   35,   35,   36,   36,
3721        36, 1568,  621,   20,   37,   37,   37,   38,   38,   38,
3722       782,   35,   20,  782,   36,   39,   39,   39,  386, 1569,
3723        37,  267,  386,   38,   40,   40,   40,   41,   41,   41,
3724      1571,   39,   42,   42,   42,   43,   43,   43,  387,  546,
3725        40, 1572,  392,   41,   44,   44,   44,  908,   42,  546,
3726       908,   43,   45,   45,   45,   46,   46,   46,  392,  365,
3727        44,   47,   47,   47,   48,   48,   48, 1574,   45,  365,
3728
3729       369,   46,   49,   49,   49, 1575,  521,   47,  639,  408,
3730        48,   50,   50,   50,   51,   51,   51, 1074,   49,   52,
3731        52,   52,   53,   53,   53,  408, 1576,   50,  365,  369,
3732        51,   54,   54,   54, 1074,   52,  403, 1186,   53,   55,
3733        55,   55,   56,   56,   56,  369,  639,   54,  384,  384,
3734       384,  715,  365,  369, 1186,   55,  521, 1584,   56,   57,
3735        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
3736        57,   57,   57,   57,  418,   57,   57,   57,   57,   57,
3737        59,   59,   59,   60,   60,   60,   61,   61,   61,  403,
3738       418,   62,   62,   62,  518, 1284,   59,  413,  518,   60,
3739
3740      1589,  715,   61,  371,  413,   57,   57,   62,   63,   63,
3741        63,   57, 1284,  413,   57,  389,  389,  389,  400,  400,
3742       400,  405,  405,  405,   63, 1598,   57,   58,   58,   58,
3743        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3744        58,   58,  371,   58,   58,   58,   58,   58,   64,   64,
3745        64,   65,   65,   65,   66,   66,   66,  795,  371,   69,
3746        69,   69,  606, 1600,   64,  425,  606,   65,  795,  794,
3747        66,  795,  425,   58,   58,   69,   70,   70,   70,   58,
3748       438,  425,   58,  412,  412,  412,  415,  415,  415,  424,
3749       424,  424,   70,  794,   58,   67,   67,   67,   67,   67,
3750
3751        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
3752       430,   67,   67,   67,   67,   67,   71,   71,   71,   72,
3753        72,   72,   73,   73,   73,  450,  430,   74,   74,   74,
3754      1220,  443,   71,  438,  455,   72, 1220,  468,   73, 1609,
3755       463,   67,   67,   74,   75,   75,   75,  443, 1345,   67,
3756       455,   67,  437,  468,   67,  427,  427,  427,   67, 1614,
3757        75, 1345,   67,   68,   68,   68,   68,   68,   68,   68,
3758        68,   68,   68,   68,   68,   68,   68,   68,  450,   68,
3759        68,   68,   68,   68,   76,   76,   76,   79,   79,   79,
3760        80,   80,   80,  463,  488,   83,   83,   83, 1622,  483,
3761
3762        76,  437,  488,   79,  801,  437,   80,  813,  488,   68,
3763        68,   83,   84,   84,   84,  483, 1351,   68,  801,   68,
3764       449,  813,   68,  436,  436,  436,   68,  545,   84, 1351,
3765        68,   77,   77,   77,   77,   77,   77,   77,   77,   77,
3766        77,   77,   77,   77,   77,   77,  624,   77,   77,   77,
3767        77,   77,   87,   87,   87,   88,   88,   88,   89,   89,
3768        89,  624,  491,   90,   90,   90,  545, 1623,   87,  449,
3769       491,   88, 1627,  449,   89,  491,  545,   77,   77,   90,
3770        91,   91,   91,   92,   92,   92,  440,  440,  440,  448,
3771       448,  448,  452,  452,  452, 1632,   91, 1636, 1642,   92,
3772
3773      1648,   77,   78,   78,   78,   78,   78,   78,   78,   78,
3774        78,   78,   78,   78,   78,   78,   78,  501,   78,   78,
3775        78,   78,   78,   93,   93,   93,   94,   94,   94,   97,
3776        97,   97,  808,  501,   98,   98,   98,  673, 1653,   93,
3777      1655, 1663,   94,  808,  673,   97,  808,  512,   78,   78,
3778        98,   99,   99,   99,  100,  100,  100,  461,  461,  461,
3779       465,  465,  465,  512,  767,  462, 1670,   99,  342, 1671,
3780       100,  767,   78,   81,   81,   81,   81,   81,   81,   81,
3781        81,   81,   81,   81,   81,   81,   81,   81,  528,   81,
3782        81,   81,   81,   81,  101,  101,  101,  102,  102,  102,
3783
3784       103,  103,  103, 1674,  528,  104,  104,  104,  807, 1679,
3785       101,  342,  496,  102,  462,  540,  103,  342,  462,   81,
3786        81,  104,  342,   81,  477,  477,  477,  342, 1683, 1679,
3787        81,  540,  807,   81,   82,   82,   82,   82,   82,   82,
3788        82,   82,   82,   82,   82,   82,   82,   82,   82,  662,
3789        82,   82,   82,   82,   82,  107,  107,  107,  108,  108,
3790       108,  109,  109,  109,  662,  496,  110,  110,  110,  478,
3791      1684,  107,  507,  523,  108,  773,  478,  109,  547,  826,
3792        82,   82,  110,  561,   82,  478,  480,  480,  480, 1685,
3793       773,   82, 1688,  826,   82,   85,   85,   85,   85,   85,
3794
3795        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
3796       818,   85,   85,   85,   85,   85,  111,  111,  111,  112,
3797       112,  112,  113,  113,  113,  507,  523,  114,  114,  114,
3798      1689,  547,  111,  535,  818,  112,  561,  822,  113, 1690,
3799       535,   85,   85,  114,  117,  117,  117,   85, 1691,  535,
3800        85,  494,  494,  494,  498,  498,  498,  505,  505,  505,
3801       117,  822,   85,   86,   86,   86,   86,   86,   86,   86,
3802        86,   86,   86,   86,   86,   86,   86,   86,  552,   86,
3803        86,   86,   86,   86,  118,  118,  118,  121,  121,  121,
3804       122,  122,  122,  827,  552,  123,  123,  123, 1312, 1692,
3805
3806       118,  566, 1312,  121,  827,  824,  122,  827,  625,   86,
3807        86,  123,  124,  124,  124,   86,  640,  566,   86,  509,
3808       509,  509,  520,  520,  520,  525,  525,  525,  124,  824,
3809        86,   95,   95,   95,   95,   95,   95,   95,   95,   95,
3810        95,   95,   95,   95,   95,   95,  577,   95,   95,   95,
3811        95,   95,  125,  125,  125,  126,  126,  126,  127,  127,
3812       127,  625,  577,  128,  128,  128, 1693, 1694,  125,  640,
3813      1695,  126, 1697,  825,  127, 1699,  677,   95,   95,  128,
3814       131,  131,  131,   95,  534,  534,  534,  537,  537,  537,
3815       544,  544,  544,  549,  549,  549,  131,  825,   95,   96,
3816
3817        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
3818        96,   96,   96,   96,  588,   96,   96,   96,   96,   96,
3819       132,  132,  132,  133,  133,  133,  134,  134,  134,  677,
3820       588,  135,  135,  135, 1700, 1702,  132, 1703, 1705,  133,
3821      1706,  829,  134, 1707,  702,   96,   96,  135,  136,  136,
3822       136,   96,  559,  559,  559,  563,  563,  563,  571,  571,
3823       571,  574,  574,  574,  136,  829,   96,  105,  105,  105,
3824       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
3825       105,  105,  599,  105,  105,  105,  105,  105,  137,  137,
3826       137,  138,  138,  138,  141,  141,  141,  702,  599,  142,
3827
3828       142,  142, 1708, 1711,  137,  572,  828,  138, 1712, 1713,
3829       141, 1714,  572,  105,  105,  142,  143,  143,  143,  105,
3830       828,  572,  105,  582,  582,  582,  585,  585,  585,  593,
3831       593,  593,  143, 1715,  105,  106,  106,  106,  106,  106,
3832       106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
3833       615,  106,  106,  106,  106,  106,  144,  144,  144,  145,
3834       145,  145,  146,  146,  146,  964,  615,  147,  147,  147,
3835      1717, 1720,  144,  583,  966,  145,  964, 1721,  146,  964,
3836       583,  106,  106,  147,  148,  148,  148,  106,  966,  583,
3837       106,  596,  596,  596,  608,  608,  608,  612,  612,  612,
3838
3839       148, 1722,  106,  115,  115,  115,  115,  115,  115,  115,
3840       115,  115,  115,  115,  115,  115,  115,  115,  630,  115,
3841       115,  115,  115,  115,  151,  151,  151,  152,  152,  152,
3842       155,  155,  155,  717,  630,  156,  156,  156,  594,  645,
3843       151,  609,  610,  152, 1724,  594,  155, 1727,  609,  115,
3844       115,  156,  651,  115,  594,  645,  758,  609,  610,  651,
3845       115, 1728,  771,  115,  619,  619,  619,  115,  651,  115,
3846       115,  116,  116,  116,  116,  116,  116,  116,  116,  116,
3847       116,  116,  116,  116,  116,  116,  717,  116,  116,  116,
3848       116,  116,  157,  157,  157,  158,  158,  158,  159,  159,
3849
3850       159, 1729,  610,  160,  160,  160, 1733,  622,  157,  758,
3851       656,  158, 1734,  670,  159,  771,  623,  116,  116,  160,
3852       622,  116,  622,  627,  627,  627,  656,  755,  116,  670,
3853      1738,  116,  638,  638,  638,  116, 1741,  116,  116,  119,
3854       119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
3855       119,  119,  119,  119,  623,  119,  119,  119,  119,  119,
3856       161,  161,  161,  162,  162,  162,  165,  165,  165,  623,
3857       660,  166,  166,  166,  660, 1744,  161, 1745,  660,  162,
3858       755,  665,  165,  793,  755,  119,  119,  166,  665,  119,
3859       119,  642,  642,  642,  676, 1746,  119,  665,  793,  119,
3860
3861       650,  650,  650,  119, 1748,  119,  119,  119,  120,  120,
3862       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
3863       120,  120,  120,  682,  120,  120,  120,  120,  120,  167,
3864       167,  167,  168,  168,  168,  169,  169,  169,  846,  682,
3865       170,  170,  170,  676, 1751,  167, 1752,  676,  168,  963,
3866       688,  169, 1757,  846,  120,  120,  170,  688,  120,  120,
3867       653,  653,  653, 1758,  963,  120,  688, 1773,  120,  664,
3868       664,  664,  120, 1774,  120,  120,  120,  129,  129,  129,
3869       129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
3870       129,  129,  693,  129,  129,  129,  129,  129,  171,  171,
3871
3872       171,  172,  172,  172,  175,  175,  175,  967,  693,  176,
3873       176,  176, 1782, 1783,  171, 1785,  707,  172,  967, 1807,
3874       175,  967, 1808,  129,  129,  176,  667,  667,  667,  675,
3875       675,  675,  707, 1811,  129,  130,  130,  130,  130,  130,
3876       130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
3877       722,  130,  130,  130,  130,  130,  179,  179,  179,  180,
3878       180,  180,  183,  183,  183, 1472,  722,  184,  184,  184,
3879      1813, 1815,  179, 1822,  733,  180, 1823, 1472,  183, 1824,
3880      1825,  130,  130,  184,  679,  679,  679,  687,  687,  687,
3881       733, 1827,  130,  139,  139,  139,  139,  139,  139,  139,
3882
3883       139,  139,  139,  139,  139,  139,  139,  139,  745,  139,
3884       139,  139,  139,  139,  187,  187,  187,  188,  188,  188,
3885       189,  189,  189, 1833,  745,  190,  190,  190, 1835, 1837,
3886       187, 1838,  763,  188, 1843, 1845,  189, 1846, 1848,  139,
3887       139,  190,  139,  770,  139,  690,  690,  690,  763, 1849,
3888       139,  700,  700,  700,  704,  704,  704,  139, 1850, 1851,
3889       139,  140,  140,  140,  140,  140,  140,  140,  140,  140,
3890       140,  140,  140,  140,  140,  140, 1852,  140,  140,  140,
3891       140,  140,  193,  193,  193,  194,  194,  194,  195,  195,
3892       195, 1855,  770,  196,  196,  196,  770, 1856,  193, 1857,
3893
3894      1047,  194, 1861, 1870,  195, 1873, 1881,  140,  140,  196,
3895       140, 1883,  140,  714,  714,  714, 1047, 1885,  140,  719,
3896       719,  719,  730,  730,  730,  140, 1886, 1887,  140,  149,
3897       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3898       149,  149,  149,  149, 1889,  149,  149,  149,  149,  149,
3899       197,  197,  197,  198,  198,  198,  199,  199,  199, 1894,
3900      1570,  200,  200,  200, 1897, 1898,  197,  727, 1900,  198,
3901      1905, 1910,  199, 1570,  727,  149,  149,  200,  201,  201,
3902       201,  149, 1911,  727, 1915,  756,  149,  739,  739,  739,
3903       742,  742,  742, 1918,  201,  750,  750,  750,  149,  150,
3904
3905       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
3906       150,  150,  150,  150,  756,  150,  150,  150,  150,  150,
3907       202,  202,  202,  203,  203,  203,  204,  204,  204, 1917,
3908       756,  205,  205,  205, 1921, 1924,  202,  740,  756,  203,
3909      1925, 1927,  204, 1928,  740,  150,  150,  205,  206,  206,
3910       206,  150, 1929,  740, 1917, 1930,  150,  760,  760,  760,
3911       769,  769,  769, 1931,  206,  772,  772,  772,  150,  153,
3912       153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
3913       153,  153,  153,  153, 1932,  153,  153,  153,  153,  153,
3914       207,  207,  207,  208,  208,  208,  209,  209,  209, 1934,
3915
3916       754,  210,  210,  210, 1935, 1937,  207,  800, 1938,  208,
3917       754, 1941,  209, 1942,  800,  153,  153,  210, 1944, 1946,
3918       800, 1949, 1951,  153,  154,  154,  154,  154,  154,  154,
3919       154,  154,  154,  154,  154,  154,  154,  154,  154,  754,
3920       154,  154,  154,  154,  154,  211,  211,  211,  212,  212,
3921       212,  215,  215,  215, 1952,  805,  216,  216,  216, 1154,
3922      1953,  211,  805,  754,  212, 1954, 1955,  215,  805, 1154,
3923       154,  154,  216,  781,  781,  781, 1154, 1957,  154,  163,
3924       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
3925       163,  163,  163,  163, 1958,  163,  163,  163,  163,  163,
3926
3927       217,  217,  217,  218,  218,  218,  219,  219,  219, 1962,
3928       812,  220,  220,  220, 1965, 1966,  217,  812, 1967,  218,
3929      1974,  819,  219,  812,  965,  163,  163,  220,  819,  163,
3930      1975,  965, 1979,  781,  819, 1980,  163,  965, 1981,  163,
3931      1050, 1050, 1050, 1983, 1050, 1987,  163,  164,  164,  164,
3932       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
3933       164,  164, 1988,  164,  164,  164,  164,  164,  221,  221,
3934       221,  222,  222,  222,  225,  225,  225, 2023,  968,  226,
3935       226,  226, 2024, 2031,  221,  968, 2042,  222, 2043, 2044,
3936       225,  968, 2045,  164,  164,  226, 2047,  164, 1059, 1059,
3937
3938      1059, 2055, 1059, 2057,  164, 1059, 2061,  164, 1329, 1329,
3939      1329, 1352, 1352, 1352,  164,  173,  173,  173,  173,  173,
3940       173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
3941      2064,  173,  173,  173,  173,  173,  229,  229,  229,  230,
3942       230,  230,  233,  233,  233, 2066, 2067,  234,  234,  234,
3943      2070, 2071,  229, 2072, 2073,  230, 2077, 2078,  233, 2079,
3944      2084,  173,  173,  234, 1063, 1063, 1063,  173, 1696, 1696,
3945      1696, 2088,  173,  174,  174,  174,  174,  174,  174,  174,
3946       174,  174,  174,  174,  174,  174,  174,  174, 2092,  174,
3947       174,  174,  174,  174,  235,  235,  235,  236,  236,  236,
3948
3949       237,  237,  237, 2094, 2096,  238,  238,  238, 2102, 2109,
3950       235, 2113, 2114,  236, 2116, 1696,  237, 2123, 2130,  174,
3951       174,  238, 1084, 1084, 1084,  174, 1097, 1097, 1097, 1063,
3952       174,  177,  177,  177,  177,  177,  177,  177,  177,  177,
3953       177,  177,  177,  177,  177,  177, 2134,  177,  177,  177,
3954       177,  177,  239,  239,  239,  240,  240,  240,  243,  243,
3955       243, 2130, 2136,  244,  244,  244, 2131, 2137,  239, 2129,
3956      2139,  240, 2140, 2138,  243, 2142, 2143,  177,  177,  244,
3957       247,  247,  247,  248,  248,  248, 2129, 1084,  177, 2138,
3958      2144, 1097, 1100, 1100, 1100, 2145,  247, 2138, 2147,  248,
3959
3960      2131,  177,  178,  178,  178,  178,  178,  178,  178,  178,
3961       178,  178,  178,  178,  178,  178,  178, 2148,  178,  178,
3962       178,  178,  178,  249,  249,  249,  250,  250,  250,  251,
3963       251,  251, 2152, 2154,  252,  252,  252, 2155, 2156,  249,
3964      2157, 2159,  250, 2160, 2161,  251, 2162, 2165,  178,  178,
3965       252,  253,  253,  253,  254,  254,  254, 1100, 2167,  178,
3966      2168, 1125, 1125, 1125, 2175, 1125, 2177,  253, 1125, 2178,
3967       254, 2179,  178,  181,  181,  181,  181,  181,  181,  181,
3968       181,  181,  181,  181,  181,  181,  181,  181, 2158,  181,
3969       181,  181,  181,  181,  257,  257,  257,  258,  258,  258,
3970
3971       259,  259,  259, 2180, 2158,  260,  260,  260, 2181, 2183,
3972       257, 2188, 2158,  258, 2216, 2169,  259, 2217, 2218,  181,
3973       181,  260,  261,  261,  261, 1144, 1144, 1144, 2222, 1144,
3974      2223, 2169, 1144, 2229, 2230,  181, 2233, 2234,  261, 2169,
3975       181,  182,  182,  182,  182,  182,  182,  182,  182,  182,
3976       182,  182,  182,  182,  182,  182, 2170,  182,  182,  182,
3977       182,  182,  262,  262,  262,  263,  263,  263,  264,  264,
3978       264, 2240, 2170,  271,  271,  271, 2246, 2248,  262, 2249,
3979      2170,  263, 2252, 2258,  264,  268,  268,  182,  182,  271,
3980       268,  272,  272,  272, 1146, 1146, 1146, 2260, 1146, 2266,
3981
3982       268, 1146, 2270,  182, 1698, 1698, 1698,  272,  182,  185,
3983       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
3984       185,  185,  185,  185, 2273,  185,  185,  185,  185,  185,
3985       268,  275,  275,  275,  276,  276,  276,  277,  277,  277,
3986      2278,  278,  278,  278,  789,  789,  789,  275, 2280, 2281,
3987       276, 1698, 2282,  277, 2283,  185,  185,  278,  185,  185,
3988       185,  789, 2290, 1156, 1156, 1156,  185, 1156, 2292,  185,
3989      1156, 1701, 1701, 1701, 2294, 2296,  185,  186,  186,  186,
3990       186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
3991       186,  186, 2309,  186,  186,  186,  186,  186,  279,  279,
3992
3993       279,  280,  280,  280,  281,  281,  281, 2310, 2311,  282,
3994       282,  282, 2314, 2315,  279, 2317, 2318,  280, 2319, 2321,
3995       281, 2333, 2341,  186,  186,  282,  186,  186,  186, 1159,
3996      1159, 1159, 2342, 1159,  186, 2343, 1159,  186, 1704, 1704,
3997      1704, 1710, 1710, 1710,  186,  191,  191,  191,  191,  191,
3998       191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
3999      2344,  191,  191,  191,  191,  191,  283,  283,  283,  284,
4000       284,  284,  285,  285,  285, 2316, 2320,  286,  286,  286,
4001      2335, 2345,  283, 2316, 2320,  284, 2335, 2349,  285, 2351,
4002      2352,  191,  191,  286,  287,  287,  287,  288,  288,  288,
4003
4004      1173, 1173, 1173, 2353, 1173, 2337, 2358, 1173, 2359, 2361,
4005       287, 2362, 2363,  288, 2336,  191,  192,  192,  192,  192,
4006       192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
4007       192, 2364,  192,  192,  192,  192,  192,  289,  289,  289,
4008       290,  290,  290,  291,  291,  291, 2336, 2367,  292,  292,
4009       292, 2371, 2337,  289, 2372, 2379,  290, 2381, 2388,  291,
4010      2390, 2421,  192,  192,  292,  293,  293,  293,  294,  294,
4011       294, 1180, 1180, 1180, 2422, 1180, 2423, 2429, 1180, 2430,
4012      2434,  293, 2438, 2439,  294, 2443,  192,  213,  213,  213,
4013       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
4014
4015       213,  213, 2446,  213,  213,  213,  213,  213,  295,  295,
4016       295,  296,  296,  296,  297,  297,  297, 2449, 2450,  298,
4017       298,  298, 2451, 2452,  295, 2455, 2458,  296, 2462, 2463,
4018       297, 2464, 2476,  213,  213,  298,  299,  299,  299, 2479,
4019      2481,  213, 2484,  213, 2498, 2499,  213, 1716, 1716, 1716,
4020       213, 2500,  299, 2505,  213,  214,  214,  214,  214,  214,
4021       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
4022      2506,  214,  214,  214,  214,  214,  300,  300,  300,  301,
4023       301,  301,  302,  302,  302, 2507, 2508,  303,  303,  303,
4024      2509, 2510,  300, 2511, 1716,  301, 2512, 2513,  302, 2514,
4025
4026      2524,  214,  214,  303,  304,  304,  304, 2535, 2536,  214,
4027      2527,  214, 2537, 2528,  214, 1718, 1718, 1718,  214, 2540,
4028       304, 2543,  214,  223,  223,  223,  223,  223,  223,  223,
4029       223,  223,  223,  223,  223,  223,  223,  223, 2547,  223,
4030       223,  223,  223,  223,  305,  305,  305,  306,  306,  306,
4031       307,  307,  307, 2548, 2527,  308,  308,  308, 2549, 2552,
4032       305, 2528, 1718,  306, 2553, 2554,  307, 2557, 2560,  223,
4033       223,  308,  309,  309,  309,  310,  310,  310, 2561, 2562,
4034       223, 2563, 1189, 1189, 1189, 2585, 1189, 2586,  309, 1189,
4035      2592,  310, 2593,  223,  224,  224,  224,  224,  224,  224,
4036
4037       224,  224,  224,  224,  224,  224,  224,  224,  224, 2599,
4038       224,  224,  224,  224,  224,  313,  313,  313,  314,  314,
4039       314,  315,  315,  315, 2600, 2587,  316,  316,  316, 2601,
4040      2615,  313, 2616, 2617,  314, 2587, 2637,  315, 2638, 2649,
4041       224,  224,  316,  317,  317,  317,  318,  318,  318, 2650,
4042      2655,  224, 2656,  363, 1191, 1191, 1191, 2657, 1191,  317,
4043       620, 1191,  318,  363,  224,  227,  227,  227,  227,  227,
4044       227,  227,  227,  227,  227,  227,  227,  227,  227,  227,
4045      2658,  227,  227,  227,  227,  227,  319,  319,  319,  320,
4046       320,  320,  363, 2659, 1709, 1709, 1709, 2660,  620,  620,
4047
4048       620, 2661,  319, 2662, 2663,  320,  363, 2664, 2669,  620,
4049       363,  227,  227,  620, 2674,  620,  363, 2673,  751,  753,
4050       227, 2675,  227, 2672,  370, 2677,  227, 2678,  751,  753,
4051      1709,  227,  227,  228,  228,  228,  228,  228,  228,  228,
4052       228,  228,  228,  228,  228,  228,  228,  228, 2679,  228,
4053       228,  228,  228,  228,  370, 2673, 2672,  751,  753,  370,
4054      1061, 1061, 1061,  751, 1719, 1719, 1719,  370, 2680,  370,
4055       370,  751,  753,  751,  751, 2676,  753,  370, 1061,  228,
4056       228,  751,  753, 2682, 2676, 1199, 1199, 1199,  228, 1199,
4057       228, 2683, 1199,  757,  228, 1723, 1723, 1723, 2686,  228,
4058
4059       228,  231,  231,  231,  231,  231,  231,  231,  231,  231,
4060       231,  231,  231,  231,  231,  231, 2687,  231,  231,  231,
4061       231,  231,  757,  757,  854,  854,  854,  876,  876,  876,
4062      2688, 1723,  877,  877,  877, 2691,  757,  887,  887,  887,
4063      2693,  854, 2694, 2697,  876, 2698,  757,  231,  231,  877,
4064       889,  889,  889,  231,  887, 1207, 1207, 1207, 2699, 1207,
4065      2701, 2702, 1207, 1725, 1725, 1725, 2704,  889,  231,  232,
4066       232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
4067       232,  232,  232,  232, 2725,  232,  232,  232,  232,  232,
4068       903,  903,  903,  909,  909,  909,  918,  918,  918, 1725,
4069
4070       919,  919,  919,  928,  928,  928, 2726,  903, 2727, 2681,
4071       909, 2728, 2731,  918, 2732,  232,  232,  919, 2681, 2738,
4072       928,  232, 1211, 1211, 1211, 2739, 1211, 2746, 2747, 1211,
4073      2748, 1726, 1726, 1726, 2756, 2757,  232,  241,  241,  241,
4074       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
4075       241,  241, 2772,  241,  241,  241,  241,  241,  936,  936,
4076       936,  940,  940,  940,  953,  953,  953, 1726,  979,  979,
4077       979, 2773,  985,  985,  985,  936, 2774, 2778,  940, 2779,
4078      2780,  953, 2781,  241,  241,  979, 2782, 2783,  241,  985,
4079      1740, 1740, 1740, 2784,  241,  242,  242,  242,  242,  242,
4080
4081       242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
4082      2785,  242,  242,  242,  242,  242, 1002, 1002, 1002, 1008,
4083      1008, 1008, 1014, 1014, 1014, 2786, 1022, 1022, 1022, 2787,
4084      1035, 1035, 1035, 1002, 2788, 2789, 1008, 1740, 2791, 1014,
4085      2792,  242,  242, 1022, 2794, 2795,  242, 1035, 1926, 1926,
4086      1926, 2796,  242,  245,  245,  245,  245,  245,  245,  245,
4087       245,  245,  245,  245,  245,  245,  245,  245, 2797,  245,
4088       245,  245,  245,  245, 1058, 1058, 1058, 1062, 1062, 1062,
4089      1105, 1105, 1105, 1109, 1109, 1109, 1106, 1106, 1106, 2793,
4090      2799, 1058, 1107, 1107, 1107, 1062, 2800, 1105, 2793,  245,
4091
4092       245, 1109,  245, 1106,  245, 1933, 1933, 1933, 2798, 1107,
4093       245, 1223, 1223, 1223, 1062, 1223, 2801, 2798, 1223, 2803,
4094      2806,  245,  246,  246,  246,  246,  246,  246,  246,  246,
4095       246,  246,  246,  246,  246,  246,  246, 1106,  246,  246,
4096       246,  246,  246, 1110, 1110, 1110, 1108, 1108, 1108, 1117,
4097      1117, 1117, 1106, 2807, 1121, 1121, 1121, 1122, 1122, 1122,
4098      2803, 1110, 2808, 1108, 1118, 1118, 1118, 1117,  246,  246,
4099      2809,  246, 1121,  246, 2804, 1122, 1936, 1936, 1936,  246,
4100      1110, 2810, 1118, 1939, 1939, 1939, 1940, 1940, 1940, 2811,
4101       246,  255,  255,  255,  255,  255,  255,  255,  255,  255,
4102
4103       255,  255,  255,  255,  255,  255, 1108,  255,  255,  255,
4104       255,  255, 2804, 2812, 1118, 1124, 1124, 1124, 1127, 1127,
4105      1127, 2813, 1122, 1129, 1129, 1129, 1128, 1128, 1128, 1130,
4106      1130, 1130, 1124, 1131, 1131, 1131, 1127,  255,  255, 2814,
4107      1129, 2118,  255, 2815, 1128, 2816, 1130, 2118,  255, 2805,
4108      1131, 2118,  255, 1943, 1943, 1943, 2817, 2118,  255,  256,
4109       256,  256,  256,  256,  256,  256,  256,  256,  256,  256,
4110       256,  256,  256,  256, 1128,  256,  256,  256,  256,  256,
4111      1130, 1132, 1132, 1132, 1133, 1133, 1133, 1134, 1134, 1134,
4112      1135, 1135, 1135, 2805, 2818, 1130, 1136, 1136, 1136, 1132,
4113
4114      2819, 2820, 1133, 2823, 1134,  256,  256, 1135, 2824, 2826,
4115       256, 1245, 1245, 1245, 1136, 1245,  256, 2827, 1245, 2828,
4116       256, 1945, 1945, 1945, 2830, 2831,  256,  265,  265,  265,
4117       265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
4118       265,  265, 2851,  265,  265,  265,  265,  265, 1137, 1137,
4119      1137, 1138, 1138, 1138, 2530, 2530, 1133, 2530, 1140, 1140,
4120      1140, 2852, 1139, 1139, 1139, 2530, 1137, 2854, 1138, 1141,
4121      1141, 1141, 2530,  265,  265, 1140, 1251, 1251, 1251, 1139,
4122      1251,  265, 2858, 1251,  265, 2859, 1945, 1141, 1948, 1948,
4123      1948,  265,  266,  266,  266,  266,  266,  266,  266,  266,
4124
4125       266,  266,  266,  266,  266,  266,  266, 2860,  266,  266,
4126       266,  266,  266, 1139, 1142, 1142, 1142, 1143, 1143, 1143,
4127      1137, 2862, 2861, 1145, 1145, 1145, 2863, 2865, 1139, 1152,
4128      1152, 1152, 1142, 2861, 1143, 1147, 1147, 1147,  266,  266,
4129      1145, 1267, 1267, 1267, 2866, 1267,  266, 1152, 1267,  266,
4130      2874, 2875, 1147, 1950, 1950, 1950,  266,  269,  269,  269,
4131       269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
4132       269,  269, 2876,  269,  269,  269,  269,  269, 1155, 1155,
4133      1155, 2888, 1158, 1158, 1158, 2904, 1142, 2910, 1148, 1148,
4134      1148, 1149, 1149, 1149, 2911, 1155, 1150, 1150, 1150, 1158,
4135
4136      1151, 1151, 1151,  269,  269, 1148, 2912, 2913, 1149, 2734,
4137       269, 2734, 2914, 1150, 2915, 2916,  269, 1151, 1947, 1947,
4138      1947, 1956, 1956, 1956, 2734,  269,  270,  270,  270,  270,
4139       270,  270,  270,  270,  270,  270,  270,  270,  270,  270,
4140       270, 1148,  270,  270,  270,  270,  270, 1149, 1150, 1160,
4141      1160, 1160, 2917, 1151, 2918, 2919, 1170, 1170, 1170, 1171,
4142      1171, 1171, 1153, 1153, 1153, 1947, 1160, 1172, 1172, 1172,
4143      2921, 2922,  270,  270, 1170, 2923, 2735, 1171, 2735,  270,
4144      1153, 1959, 1959, 1959, 1172,  270, 1273, 1273, 1273, 2924,
4145      1273, 2735, 2925, 1273,  270,  273,  273,  273,  273,  273,
4146
4147       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
4148      1153,  273,  273,  273,  273,  273, 2926, 2927, 1171, 1174,
4149      1174, 1174, 1175, 1175, 1175, 2864, 1179, 1179, 1179, 1184,
4150      1184, 1184, 1185, 1185, 1185, 2928, 2864, 1174, 2929, 2930,
4151      1175,  273,  273, 1179, 1279, 1279, 1279, 1184, 1279, 2931,
4152      1185, 1279,  273, 1287, 1287, 1287, 2932, 1287, 2936, 2938,
4153      1287,  273,  274,  274,  274,  274,  274,  274,  274,  274,
4154       274,  274,  274,  274,  274,  274,  274, 2935,  274,  274,
4155       274,  274,  274, 2937, 1175, 1188, 1188, 1188, 1190, 1190,
4156      1190, 1960, 1960, 1960, 1185, 1192, 1192, 1192, 1193, 1193,
4157
4158      1193, 2936, 1188, 2939, 2902, 1190, 2940, 2935,  274,  274,
4159      1198, 1198, 1198, 1192, 2902, 2941, 1193, 2902, 2942,  274,
4160      1964, 1964, 1964, 1961, 1961, 1961, 2937, 1198,  274,  311,
4161       311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
4162       311,  311,  311,  311, 2943,  311,  311,  311,  311,  311,
4163      1195, 1195, 1195, 1203, 1203, 1203, 1204, 1204, 1204, 2903,
4164      1193, 1196, 1196, 1196, 2944, 1206, 1206, 1206, 1195, 2903,
4165      2945, 1203, 2903, 2946, 1204,  311,  311, 2947, 2948, 1196,
4166      2949,  311, 1206, 2950,  311, 1299, 1299, 1299, 1961, 1299,
4167      2952, 2954, 1299, 1963, 1963, 1963,  311,  312,  312,  312,
4168
4169       312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
4170       312,  312, 1204,  312,  312,  312,  312,  312, 1208, 1208,
4171      1208, 2955, 1196, 1209, 1209, 1209, 2956, 2958, 1210, 1210,
4172      1210, 2959, 1213, 1213, 1213, 2960, 1208, 1214, 1214, 1214,
4173      1963, 1209, 2972,  312,  312, 1210, 1222, 1222, 1222,  312,
4174      1213, 2977,  312, 2964, 2965, 1214, 1217, 1217, 1217, 1224,
4175      1224, 1224, 2978, 1222,  312,  360, 2964, 2965, 1218, 1218,
4176      1218, 2979,  360, 2980, 1217, 2981, 1224, 2982, 2983, 1209,
4177      2984,  360,  360, 1227, 1227, 1227, 1218, 1228, 1228, 1228,
4178      1231, 1231, 1231, 2985, 2986, 1232, 1232, 1232, 2987, 1214,
4179
4180      2995, 1227, 1242, 1242, 1242, 1228, 2997, 3001, 1231, 3002,
4181       360,  360,  360, 1232, 1243, 1243, 1243,  360,  360, 3003,
4182      1242,  360,  360, 3004, 3005,  360, 3006,  360,  360,  360,
4183      1218, 3008, 1243, 3020, 3021,  360,  362, 3023, 3024, 1228,
4184      1244, 1244, 1244, 1247, 1247, 1247, 1248, 1248, 1248, 1250,
4185      1250, 1250,  362,  362, 1232, 2880, 3026, 1244, 1252, 1252,
4186      1252, 1247, 3035, 3036, 1248, 2880, 1250, 1254, 1254, 1254,
4187      3037, 2880, 1258, 1258, 1258, 1252, 1263, 1263, 1263, 1243,
4188      3038,  362,  362,  362, 1254, 1259, 1259, 1259,  362,  362,
4189      1258, 3015,  362,  362, 1263, 3040,  362, 3041,  362,  362,
4190
4191       362, 3042, 3043, 1259, 3015, 3046,  362,  364, 1260, 1260,
4192      1260, 1248, 1261, 1261, 1261, 1262, 1262, 1262, 1264, 1264,
4193      1264, 3016, 3022,  364,  364, 1260, 1266, 1266, 1266, 1261,
4194      3047, 3048, 1262, 1259, 3016, 3022, 1264, 1268, 1268, 1268,
4195      1269, 1269, 1269, 1266, 1272, 1272, 1272, 1275, 1275, 1275,
4196      3049, 3050,  364,  364,  364, 1268, 3051, 3052, 1269,  364,
4197       364, 1272, 3053,  364,  364, 1275, 3025,  364, 2881,  364,
4198       364,  364, 1276, 1276, 1276, 1262, 3054,  364, 2881, 3025,
4199      1264, 1278, 1278, 1278, 2881, 1282, 1282, 1282, 3055, 3056,
4200      1276, 1283, 1283, 1283, 1286, 1286, 1286, 3057, 1278, 1290,
4201
4202      1290, 1290, 1269, 1282, 1291, 1291, 1291, 3062, 3065, 1283,
4203      3066, 1286, 1296, 1296, 1296, 3067, 3068, 1290, 1297, 1297,
4204      1297, 3063, 1291, 1298, 1298, 1298, 1301, 1301, 1301, 3069,
4205      1296, 1302, 1302, 1302, 3070, 3071, 1297, 3072, 3073, 1276,
4206      1298, 2033, 2033, 2033, 1301, 1303, 1303, 1303, 3074, 1302,
4207      1304, 1304, 1304, 1305, 1305, 1305, 3062, 3063, 1283, 1306,
4208      1306, 1306, 1303, 1307, 1307, 1307, 3075, 1304, 3076, 1291,
4209      1305, 1308, 1308, 1308, 3077, 3079, 1306, 3081, 1321, 1321,
4210      1321, 1307, 1321, 1297, 3082, 1321, 1325, 1325, 1325, 1308,
4211      1326, 1326, 1326, 1302, 1328, 1328, 1328, 1372, 1372, 1372,
4212
4213      3084, 1304, 3086, 3090, 1325, 1379, 1379, 1379, 1326, 1376,
4214      1376, 1376, 1328, 3091, 1372, 3092, 1304, 3093, 3097, 1306,
4215      1373, 1373, 1373, 1379, 1373, 3105, 1376, 1373, 1377, 1377,
4216      1377, 3106, 1377, 1308, 3107, 1377, 1380, 1380, 1380, 1382,
4217      1382, 1382, 1385, 1385, 1385, 1389, 1389, 1389, 1390, 1390,
4218      1390, 1392, 1392, 1392, 1380, 3108, 3109, 1382, 3110, 1385,
4219      1395, 1395, 1395, 1389, 3111, 3112, 1390, 3113, 3114, 1392,
4220      1396, 1396, 1396, 1398, 1398, 1398, 3115, 3119, 1395, 1400,
4221      1400, 1400, 3122, 1400, 3123, 3124, 1400, 3125, 1396, 3126,
4222      3127, 1398, 1404, 1404, 1404, 1405, 1405, 1405, 1407, 1407,
4223
4224      1407, 1968, 1968, 1968, 1382, 1408, 1408, 1408, 3128, 3131,
4225      1404, 3135, 3136, 1405, 3137, 3138, 1407, 3139, 1392, 1409,
4226      1409, 1409, 1408, 1409, 3140, 3141, 1409, 1398, 1412, 1412,
4227      1412, 1413, 1413, 1413, 3142, 1413, 3143, 3144, 1413, 1414,
4228      1414, 1414, 1415, 1415, 1415, 1412, 3145, 3146, 1407, 1417,
4229      1417, 1417, 1418, 1418, 1418, 3158, 3159, 1414, 3160, 3161,
4230      1415, 1419, 1419, 1419, 3162, 1419, 1968, 1417, 1419, 1418,
4231      1420, 1420, 1420, 1421, 1421, 1421, 3163, 1421, 3164, 3165,
4232      1421, 1422, 1422, 1422, 1423, 1423, 1423, 1420, 1425, 1425,
4233      1425, 1426, 1426, 1426, 1427, 1427, 1427, 3167, 1427, 1422,
4234
4235      3168, 1427, 1423, 1430, 1430, 1430, 1425, 3169, 1426, 1431,
4236      1431, 1431, 1417, 1431, 3170, 3171, 1431, 1432, 1432, 1432,
4237      1430, 1433, 1433, 1433, 1435, 1435, 1435, 1436, 1436, 1436,
4238      3172, 1436, 3173, 3174, 1436, 1432, 1439, 1439, 1439, 1433,
4239      1439, 3175, 1435, 1439, 1442, 1442, 1442, 3176, 1443, 1443,
4240      1443, 1425, 1443, 3177, 3178, 1443, 1448, 1448, 1448, 3186,
4241      3187, 1442, 1449, 1449, 1449, 1451, 1451, 1451, 1455, 1455,
4242      1455, 3188, 1455, 3191, 1448, 1455, 1458, 1458, 1458, 3192,
4243      1449, 3193, 3194, 1451, 1459, 1459, 1459, 1435, 1459, 3182,
4244      3197, 1459, 3199, 1458, 1462, 1462, 1462, 1463, 1463, 1463,
4245
4246      3203, 1463, 3206, 3207, 1463, 1473, 1473, 1473, 1474, 1474,
4247      1474, 1462, 3208, 3209, 1451, 1476, 1476, 1476, 1477, 1477,
4248      1477, 3210, 1477, 1473, 3182, 1477, 1474, 1480, 1480, 1480,
4249      1481, 1481, 1481, 1476, 1483, 1483, 1483, 1486, 1486, 1486,
4250      1487, 1487, 1487, 3211, 1487, 1480, 3212, 1487, 1481, 1493,
4251      1493, 1493, 1483, 3213, 1486, 1494, 1494, 1494, 1496, 1496,
4252      1496, 1498, 1498, 1498, 1499, 1499, 1499, 1493, 1499, 2119,
4253      3214, 1499, 3215, 1494, 3216, 2119, 1496, 3217, 1498, 2119,
4254      1502, 1502, 1502, 1476, 1502, 2119, 3222, 1502, 1505, 1505,
4255      1505, 1506, 1506, 1506, 3230, 1483, 1508, 1508, 1508, 1509,
4256
4257      1509, 1509, 1510, 1510, 1510, 3231, 1505, 3232, 3233, 1506,
4258      1511, 1511, 1511, 3234, 1508, 3235, 1509, 1513, 1513, 1513,
4259      1510, 1521, 1521, 1521, 1496, 1515, 1515, 1515, 1511, 1515,
4260      3236, 3237, 1515, 3238, 3239, 1513, 1522, 1522, 1522, 1521,
4261      1524, 1524, 1524, 1526, 1526, 1526, 3245, 1526, 3246, 3248,
4262      1526, 1529, 1529, 1529, 1522, 1530, 1530, 1530, 1524, 1532,
4263      1532, 1532, 1508, 3249, 1533, 1533, 1533, 1513, 1533, 1529,
4264      3251, 1533, 3252, 1530, 1537, 1537, 1537, 1532, 1538, 1538,
4265      1538, 1540, 1540, 1540, 3253, 1541, 1541, 1541, 1542, 1542,
4266      1542, 3254, 1537, 1543, 1543, 1543, 1538, 3255, 3256, 1540,
4267
4268      3088, 1524, 1541, 3257, 3258, 1542, 1544, 1544, 1544, 3259,
4269      3088, 1543, 1546, 1546, 1546, 1551, 1551, 1551, 3260, 1551,
4270      1532, 3261, 1551, 3262, 1544, 1554, 1554, 1554, 3088, 3263,
4271      1546, 3266, 1540, 1555, 1555, 1555, 1542, 1555, 3267, 3088,
4272      1555, 3268, 1554, 1558, 1558, 1558, 1559, 1559, 1559, 1561,
4273      1561, 1561, 1564, 1564, 1564, 1565, 1565, 1565, 1567, 1567,
4274      1567, 1558, 3269, 3270, 1559, 3271, 3272, 1561, 3273, 3275,
4275      1564, 3276, 3278, 1565, 3279, 3280, 1567, 1573, 1573, 1573,
4276      1546, 1577, 1577, 1577, 1578, 1578, 1578, 1580, 1580, 1580,
4277      3282, 1581, 1581, 1581, 1573, 1581, 3284, 3285, 1581, 1577,
4278
4279      3286, 1561, 1578, 3289, 3290, 1580, 1567, 1585, 1585, 1585,
4280      1586, 1586, 1586, 1588, 1588, 1588, 1590, 1590, 1590, 3089,
4281      1590, 2531, 2531, 1590, 2531, 1585, 3291, 3292, 1586, 3089,
4282      3295, 1588, 2531, 1593, 1593, 1593, 1594, 1594, 1594, 2531,
4283      1594, 3296, 3297, 1594, 1595, 1595, 1595, 3089, 3298, 1580,
4284      1593, 1596, 1596, 1596, 3299, 1597, 1597, 1597, 3089, 1597,
4285      3300, 1595, 1597, 1599, 1599, 1599, 3301, 3302, 1596, 1601,
4286      1601, 1601, 1602, 1602, 1602, 1588, 1604, 1604, 1604, 3303,
4287      1599, 1605, 1605, 1605, 1606, 1606, 1606, 1601, 1606, 3304,
4288      1602, 1606, 3310, 3311, 1604, 1607, 1607, 1607, 1605, 1608,
4289
4290      1608, 1608, 3313, 1608, 3314, 3315, 1608, 1610, 1610, 1610,
4291      3317, 3319, 1607, 1611, 1611, 1611, 1613, 1613, 1613, 1615,
4292      1615, 1615, 3322, 1615, 3324, 1610, 1615, 1618, 1618, 1618,
4293      3325, 1611, 3326, 3304, 1613, 3327, 3328, 1604, 1619, 1619,
4294      1619, 1621, 1621, 1621, 3329, 1618, 1624, 1624, 1624, 3330,
4295      1624, 3331, 3332, 1624, 3333, 3334, 1619, 3335, 3338, 1621,
4296      1628, 1628, 1628, 1629, 1629, 1629, 3342, 1631, 1631, 1631,
4297      1633, 1633, 1633, 3149, 1633, 3343, 3345, 1633, 1628, 3346,
4298      3347, 1629, 3349, 3149, 1613, 1631, 1637, 1637, 1637, 1638,
4299      1638, 1638, 1639, 1639, 1639, 1641, 1641, 1641, 1643, 1643,
4300
4301      1643, 3149, 3350, 1637, 1644, 1644, 1644, 1638, 1644, 1621,
4302      1639, 1644, 3149, 1641, 3355, 1643, 1647, 1647, 1647, 1649,
4303      1649, 1649, 1650, 1650, 1650, 1652, 1652, 1652, 3356, 1631,
4304      1654, 1654, 1654, 1647, 1656, 1656, 1656, 1649, 3357, 3358,
4305      1650, 3359, 3360, 1652, 1657, 1657, 1657, 1654, 1659, 1659,
4306      1659, 3361, 1656, 3362, 1660, 1660, 1660, 1641, 1660, 3363,
4307      3364, 1660, 1657, 1664, 1664, 1664, 1659, 1665, 1665, 1665,
4308      1667, 1667, 1667, 1652, 1668, 1668, 1668, 3365, 1647, 3366,
4309      3367, 1664, 1669, 1669, 1669, 1665, 1669, 3368, 1667, 1669,
4310      3369, 1668, 1672, 1672, 1672, 3370, 1659, 1673, 1673, 1673,
4311
4312      3371, 1673, 3375, 3376, 1673, 1675, 1675, 1675, 3377, 1672,
4313      1676, 1676, 1676, 3378, 1678, 1678, 1678, 1680, 1680, 1680,
4314      1686, 1686, 1686, 1675, 1739, 1739, 1739, 3379, 1676, 3380,
4315      3381, 1667, 1678, 3382, 3385, 1680, 1680, 3386, 1686, 1730,
4316      1730, 1730, 1739, 1730, 3387, 3388, 1730, 1735, 1735, 1735,
4317      3389, 1735, 3390, 3392, 1735, 1742, 1742, 1742, 1743, 1743,
4318      1743, 3393, 1743, 3150, 3395, 1743, 1747, 1747, 1747, 1750,
4319      1750, 1750, 1742, 3150, 3396, 1678, 1749, 1749, 1749, 3397,
4320      1753, 1753, 1753, 3399, 1747, 3400, 1739, 1750, 1754, 1754,
4321      1754, 3150, 1754, 1749, 3401, 1754, 3402, 3403, 1753, 1759,
4322
4323      1759, 1759, 3150, 1759, 3404, 3405, 1759, 1762, 1762, 1762,
4324      1763, 1763, 1763, 3406, 1763, 3407, 3411, 1763, 3415, 1766,
4325      1766, 1766, 3416, 1766, 3418, 1762, 1766, 3411, 1747, 1769,
4326      1769, 1769, 1770, 1770, 1770, 3419, 1770, 1750, 1753, 1770,
4327      3408, 1775, 1775, 1775, 3410, 1775, 3423, 1769, 1775, 1778,
4328      1778, 1778, 1779, 1779, 1779, 1762, 1779, 3425, 3410, 1779,
4329      3427, 1784, 1784, 1784, 1786, 1786, 1786, 1778, 1787, 1787,
4330      1787, 1788, 1788, 1788, 1789, 1789, 1789, 1769, 1784, 1790,
4331      1790, 1790, 1786, 3429, 3431, 1787, 3433, 3408, 1788, 3437,
4332      3443, 1789, 1795, 1795, 1795, 3444, 1790, 1778, 1791, 1791,
4333
4334      1791, 3446, 1791, 3447, 3449, 1791, 1792, 1792, 1792, 1795,
4335      1792, 3414, 3460, 1792, 1796, 1796, 1796, 1797, 1797, 1797,
4336      1786, 3439, 1789, 1798, 1798, 1798, 1799, 1799, 1799, 3440,
4337      3414, 1796, 3414, 3439, 1797, 1800, 1800, 1800, 1788, 3462,
4338      1798, 3440, 3464, 1799, 1795, 3414, 1801, 1801, 1801, 1802,
4339      1802, 1802, 1800, 1803, 1803, 1803, 1804, 1804, 1804, 1805,
4340      1805, 1805, 1796, 1801, 3465, 3468, 1802, 1809, 1809, 1809,
4341      1803, 1798, 3469, 1804, 1806, 1806, 1806, 1805, 1810, 1810,
4342      1810, 3472, 1810, 3474, 1809, 1810, 3476, 3478, 1797, 3480,
4343      3482, 1799, 1806, 1812, 1812, 1812, 1800, 1814, 1814, 1814,
4344
4345      1816, 1816, 1816, 3483, 1817, 1817, 1817, 3454, 1817, 3485,
4346      1812, 1817, 1818, 1818, 1818, 1814, 1803, 1816, 1804, 3454,
4347      1802, 1819, 1819, 1819, 3486, 1805, 3490, 1806, 3491, 3493,
4348      1818, 3494, 1820, 1820, 1820, 3496, 1820, 3498, 1819, 1820,
4349      1821, 1821, 1821, 1826, 1826, 1826, 3500, 1828, 1828, 1828,
4350      1829, 1829, 1829, 3180, 1830, 1830, 1830, 3502, 1821, 3455,
4351      3503, 1826, 3504, 3180, 1814, 1828, 3506, 1829, 1831, 1831,
4352      1831, 3455, 1830, 1832, 1832, 1832, 3504, 1832, 3508, 1818,
4353      1832, 3180, 1834, 1834, 1834, 1831, 1836, 1836, 1836, 1839,
4354      1839, 1839, 3180, 1839, 3505, 3505, 1839, 3511, 3512, 1821,
4355
4356      1834, 1826, 3503, 1836, 3513, 1828, 1830, 1842, 1842, 1842,
4357      1844, 1844, 1844, 1847, 1847, 1847, 1853, 1853, 1853, 1854,
4358      1854, 1854, 3517, 1854, 1842, 3518, 1854, 3519, 1844, 3514,
4359      3528, 1847, 3529, 1853, 1858, 1858, 1858, 1859, 1859, 1859,
4360      1860, 1860, 1860, 1834, 1862, 1862, 1862, 3514, 1862, 3539,
4361      3520, 1862, 1858, 3507, 1859, 1865, 1865, 1865, 1860, 1866,
4362      1866, 1866, 3533, 1866, 3507, 3520, 1866, 1867, 1867, 1867,
4363      3533, 1867, 1865, 3532, 1867, 1844, 1871, 1871, 1871, 3535,
4364      1847, 1872, 1872, 1872, 1858, 1872, 3540, 3535, 1872, 1874,
4365      1874, 1874, 3532, 1871, 1875, 1875, 1875, 3541, 1875, 3542,
4366
4367      3549, 1875, 3545, 1860, 1878, 1878, 1878, 1874, 1878, 3550,
4368      3545, 1878, 1882, 1882, 1882, 1884, 1884, 1884, 1888, 1888,
4369      1888, 1890, 1890, 1890, 1891, 1891, 1891, 1892, 1892, 1892,
4370      1882, 1892, 3534, 1884, 1892, 3544, 1888, 3551, 1890, 3552,
4371      1874, 1891, 1893, 1893, 1893, 1895, 1895, 1895, 1896, 1896,
4372      1896, 3534, 1896, 3546, 3544, 1896, 1899, 1899, 1899, 3553,
4373      1893, 3547, 1895, 1901, 1901, 1901, 1902, 1902, 1902, 3547,
4374      1902, 3554, 3546, 1902, 1899, 1903, 1903, 1903, 3564, 1882,
4375      1901, 3565, 1884, 1888, 1904, 1904, 1904, 1906, 1906, 1906,
4376      3566, 3570, 1903, 1907, 1907, 1907, 3567, 1907, 3571, 3572,
4377
4378      1907, 3573, 1904, 3580, 3581, 1906, 1899, 1893, 1912, 1912,
4379      1912, 3582, 1912, 3584, 3567, 1912, 3573, 1916, 1916, 1916,
4380      1919, 1919, 1919, 1969, 1969, 1969, 1970, 1970, 1970, 1971,
4381      1971, 1971, 3585, 3586, 1904, 1916, 3588, 3589, 1919, 1906,
4382      1972, 1972, 1972, 1970, 3590, 3591, 1971, 1973, 1973, 1973,
4383      3593, 1976, 1976, 1976, 3594, 1976, 3595, 1972, 1976, 1982,
4384      1982, 1982, 1984, 1984, 1984, 1973, 1985, 1985, 1985, 1916,
4385      1985, 3600, 1919, 1985, 1986, 1986, 1986, 1982, 3601, 1984,
4386      1989, 1989, 1989, 1990, 1990, 1990, 3602, 3603, 1969, 1919,
4387      3604, 3605, 1986, 1991, 1991, 1991, 3606, 3607, 1989, 3608,
4388
4389      1990, 1992, 1992, 1992, 3609, 1972, 3610, 1993, 1993, 1993,
4390      1991, 1994, 1994, 1994, 3611, 1973, 1995, 1995, 1995, 1992,
4391      1996, 1996, 1996, 3614, 1982, 1993, 3615, 3616, 1994, 1989,
4392      1997, 1997, 1997, 1995, 1986, 1998, 1998, 1998, 1996, 1999,
4393      1999, 1999, 2000, 2000, 2000, 3617, 2000, 1997, 3618, 2000,
4394      3619, 3620, 1998, 2001, 2001, 2001, 1999, 2002, 2002, 2002,
4395      2003, 2003, 2003, 3621, 2004, 2004, 2004, 1992, 2004, 3624,
4396      2001, 2004, 3625, 1993, 3626, 2002, 3627, 2003, 2005, 2005,
4397      2005, 2006, 2006, 2006, 3628, 3629, 1996, 3181, 3630, 2007,
4398      2007, 2007, 3631, 2007, 1998, 2005, 2007, 3181, 2006, 2010,
4399
4400      2010, 2010, 2011, 2011, 2011, 2012, 2012, 2012, 2013, 2013,
4401      2013, 2014, 2014, 2014, 3632, 3181, 2010, 3634, 2002, 2011,
4402      3635, 3636, 2012, 3489, 3637, 2013, 3181, 3639, 2014, 3641,
4403      2015, 2015, 2015, 2016, 2016, 2016, 2017, 2017, 2017, 3642,
4404      2017, 3643, 3489, 2017, 3489, 3644, 2006, 2015, 3645, 3646,
4405      2016, 3647, 2011, 2018, 2018, 2018, 3648, 3489, 2014, 2019,
4406      2019, 2019, 3649, 3650, 2010, 3651, 3655, 2013, 3656, 3657,
4407      2018, 2020, 2020, 2020, 3658, 3417, 2019, 2021, 2021, 2021,
4408      2022, 2022, 2022, 3659, 2015, 2025, 2025, 2025, 2020, 2025,
4409      3660, 3417, 2025, 3417, 3661, 2021, 3662, 3663, 2022, 2028,
4410
4411      2028, 2028, 2029, 2029, 2029, 3653, 3417, 2019, 2030, 2030,
4412      2030, 3654, 2030, 3665, 3670, 2030, 2028, 3653, 3671, 2029,
4413      2032, 2032, 2032, 3654, 3672, 2020, 2034, 2034, 2034, 3673,
4414      2034, 3674, 3675, 2034, 3676, 3677, 2022, 3681, 2032, 2037,
4415      2037, 2037, 3682, 3684, 2021, 2038, 2038, 2038, 3686, 2038,
4416      3687, 3688, 2038, 2041, 2041, 2041, 3689, 2037, 2046, 2046,
4417      2046, 2048, 2048, 2048, 2049, 2049, 2049, 3690, 2050, 2050,
4418      2050, 2041, 2050, 3691, 3692, 2050, 2046, 3693, 3694, 2048,
4419      3697, 2049, 2051, 2051, 2051, 3695, 2037, 2052, 2052, 2052,
4420      3698, 2052, 3699, 3700, 2052, 2056, 2056, 2056, 3701, 3702,
4421
4422      2051, 2058, 2058, 2058, 3703, 2059, 2059, 2059, 2048, 2059,
4423      3695, 3704, 2059, 2056, 2060, 2060, 2060, 3707, 2058, 3708,
4424      3709, 2041, 2062, 2062, 2062, 2063, 2063, 2063, 3710, 2063,
4425      3711, 2060, 2063, 2065, 2065, 2065, 2068, 2068, 2068, 2062,
4426      3712, 2051, 2069, 2069, 2069, 2074, 2074, 2074, 3713, 2074,
4427      3714, 2065, 2074, 3492, 2068, 2080, 2080, 2080, 2081, 2081,
4428      2081, 3715, 2056, 2082, 2082, 2082, 3716, 2082, 3717, 3492,
4429      2082, 3492, 3718, 2080, 3721, 2081, 2083, 2083, 2083, 2085,
4430      2085, 2085, 3722, 2085, 3492, 3723, 2085, 3724, 3725, 2068,
4431      3726, 2089, 2089, 2089, 2083, 2089, 3727, 3728, 2089, 2093,
4432
4433      2093, 2093, 2095, 2095, 2095, 3731, 3732, 2080, 2097, 2097,
4434      2097, 2098, 2098, 2098, 2099, 2099, 2099, 2093, 3733, 3734,
4435      2095, 2100, 2100, 2100, 3735, 3736, 2097, 3737, 2098, 3738,
4436      3739, 2099, 2101, 2101, 2101, 2103, 2103, 2103, 2100, 2104,
4437      2104, 2104, 3740, 2104, 3741, 3742, 2104, 2108, 2108, 2108,
4438      2101, 3743, 2103, 3744, 2095, 2105, 2105, 2105, 3745, 2105,
4439      2097, 2093, 2105, 3741, 3746, 2108, 2110, 2110, 2110, 3747,
4440      2110, 3748, 3749, 2110, 2115, 2115, 2115, 2120, 2120, 2120,
4441      2101, 2099, 2117, 2117, 2117, 3750, 2117, 3751, 3752, 2117,
4442      3753, 3754, 2115, 3755, 2120, 2108, 2121, 2121, 2121, 3756,
4443
4444      2121, 3757, 3758, 2121, 2122, 2122, 2122, 2124, 2124, 2124,
4445      2125, 2125, 2125, 2126, 2126, 2126, 2127, 2127, 2127, 2128,
4446      2128, 2128, 2122, 3759, 3760, 2124, 2115, 2125, 3761, 3762,
4447      2126, 3763, 3764, 2127, 2133, 2133, 2133, 2128, 2135, 2135,
4448      2135, 2141, 2141, 2141, 2146, 2146, 2146, 2149, 2149, 2149,
4449      3765, 2133, 2150, 2150, 2150, 2128, 2122, 2151, 2151, 2151,
4450      2153, 2153, 2153, 2163, 2163, 2163, 2164, 2164, 2164, 2166,
4451      2166, 2166, 2171, 2171, 2171, 2172, 2172, 2172, 3766, 2172,
4452      3767, 2127, 2172, 2173, 2173, 2173, 2174, 2174, 2174, 2171,
4453      2174, 3768, 3769, 2174, 2176, 2176, 2176, 2182, 2182, 2182,
4454
4455      2173, 2184, 2184, 2184, 3772, 2184, 3773, 3774, 2184, 2189,
4456      2189, 2189, 2176, 3775, 3776, 2182, 2187, 2187, 2187, 2190,
4457      2190, 2190, 2191, 2191, 2191, 3777, 2189, 3778, 2192, 2192,
4458      2192, 3779, 2192, 3781, 2187, 2192, 3782, 2190, 3784, 2191,
4459      2193, 2193, 2193, 2194, 2194, 2194, 3780, 2194, 3785, 3786,
4460      2194, 2195, 2195, 2195, 2196, 2196, 2196, 2193, 2197, 2197,
4461      2197, 2176, 3788, 2198, 2198, 2198, 3780, 2198, 2187, 2195,
4462      2198, 3789, 2196, 3790, 3791, 2197, 2199, 2199, 2199, 3792,
4463      3793, 2190, 2200, 2200, 2200, 3794, 2200, 3795, 3796, 2200,
4464      2201, 2201, 2201, 2199, 2202, 2202, 2202, 2203, 2203, 2203,
4465
4466      3797, 2203, 3798, 3799, 2203, 2204, 2204, 2204, 2201, 3800,
4467      3801, 2202, 2205, 2205, 2205, 3802, 2205, 2195, 3803, 2205,
4468      2196, 3804, 2204, 2208, 2208, 2208, 2209, 2209, 2209, 3805,
4469      2209, 3806, 3807, 2209, 2210, 2210, 2210, 2211, 2211, 2211,
4470      2208, 2211, 3808, 3809, 2211, 2214, 2214, 2214, 2219, 2219,
4471      2219, 3810, 2210, 2215, 2215, 2215, 2201, 2215, 3812, 3813,
4472      2215, 3814, 2214, 3816, 3818, 2219, 2220, 2220, 2220, 3819,
4473      2220, 3821, 3822, 2220, 2221, 2221, 2221, 2224, 2224, 2224,
4474      3824, 2224, 3825, 3826, 2224, 3827, 2210, 2227, 2227, 2227,
4475      3828, 2221, 2228, 2228, 2228, 3829, 2228, 3817, 3831, 2228,
4476
4477      2231, 2231, 2231, 3817, 2227, 2232, 2232, 2232, 2235, 2235,
4478      2235, 3832, 2236, 2236, 2236, 3833, 2236, 3835, 2231, 2236,
4479      2237, 2237, 2237, 2232, 2237, 2235, 3836, 2237, 2241, 2241,
4480      2241, 2243, 2243, 2243, 3837, 2244, 2244, 2244, 2245, 2245,
4481      2245, 2247, 2247, 2247, 3839, 3840, 2241, 2250, 2250, 2250,
4482      3841, 3843, 2231, 2244, 3844, 3845, 2245, 3847, 2247, 2232,
4483      2253, 2253, 2253, 3848, 3851, 2250, 2254, 2254, 2254, 3853,
4484      2254, 3855, 3850, 2254, 2257, 2257, 2257, 3856, 2253, 2259,
4485      2259, 2259, 3857, 2261, 2261, 2261, 3850, 2261, 2247, 2245,
4486      2261, 3858, 2257, 3860, 2244, 3861, 3863, 2259, 2264, 2264,
4487
4488      2264, 2265, 2265, 2265, 3864, 2265, 3866, 3867, 2265, 3869,
4489      2253, 3870, 2267, 2267, 2267, 2264, 2267, 3871, 3873, 2267,
4490      3876, 2257, 2271, 2271, 2271, 2274, 2274, 2274, 2275, 2275,
4491      2275, 2276, 2276, 2276, 2277, 2277, 2277, 2279, 2279, 2279,
4492      2271, 3877, 2274, 2284, 2284, 2284, 2275, 2285, 2285, 2285,
4493      3878, 2285, 3879, 3880, 2285, 2288, 2288, 2288, 2291, 2291,
4494      2291, 2284, 2293, 2293, 2293, 2295, 2295, 2295, 2297, 2297,
4495      2297, 3881, 3882, 2288, 3883, 2291, 2298, 2298, 2298, 3884,
4496      2293, 3885, 3886, 2295, 3887, 3888, 2297, 2299, 2299, 2299,
4497      2275, 2299, 3889, 2298, 2299, 2300, 2300, 2300, 2301, 2301,
4498
4499      2301, 2302, 2302, 2302, 3890, 2302, 3891, 3895, 2302, 2284,
4500      3897, 3899, 2300, 3900, 3901, 2301, 2303, 2303, 2303, 2304,
4501      2304, 2304, 2293, 2305, 2305, 2305, 3902, 2305, 3903, 3904,
4502      2305, 3905, 3906, 2297, 2303, 3914, 2304, 2308, 2308, 2308,
4503      2312, 2312, 2312, 2313, 2313, 2313, 2322, 2322, 2322, 3909,
4504      2322, 3916, 3910, 2322, 3918, 2308, 3920, 3921, 2312, 3931,
4505      2313, 2325, 2325, 2325, 2326, 2326, 2326, 2327, 2327, 2327,
4506      2303, 2329, 2329, 2329, 3929, 3953, 2330, 2330, 2330, 2325,
4507      2330, 2326, 3935, 2330, 3953, 2327, 3909, 3941, 2329, 3910,
4508      3935, 2308, 2331, 2331, 2331, 2332, 2332, 2332, 1549, 2332,
4509
4510      1548, 1547, 2332, 2334, 2334, 2334, 3921, 3931, 2325, 2331,
4511      2338, 2338, 2338, 2339, 2339, 2339, 1536, 2339, 1525, 3929,
4512      2339, 2334, 2340, 2340, 2340, 3941, 3922, 2338, 2346, 2346,
4513      2346, 2347, 2347, 2347, 2348, 2348, 2348, 2350, 2350, 2350,
4514      2354, 2354, 2354, 2355, 2355, 2355, 2356, 2356, 2356, 2357,
4515      2357, 2357, 2360, 2360, 2360, 2365, 2365, 2365, 2366, 2366,
4516      2366, 2368, 2368, 2368, 3927, 2334, 2369, 2369, 2369, 2370,
4517      2370, 2370, 2373, 2373, 2373, 3922, 2373, 1520, 1519, 2373,
4518      2376, 2376, 2376, 1518, 2376, 3928, 3930, 2376, 2380, 2380,
4519      2380, 2382, 2382, 2382, 3932, 3942, 2357, 2383, 2383, 2383,
4520
4521      2384, 2384, 2384, 2385, 2385, 2385, 2380, 3986, 2382, 2386,
4522      2386, 2386, 1514, 3927, 2383, 3933, 2370, 2384, 3986, 3933,
4523      2385, 2389, 2389, 2389, 2391, 2391, 2391, 2386, 2392, 2392,
4524      2392, 3930, 2392, 3942, 3928, 2392, 2393, 2393, 2393, 2389,
4525      2380, 2391, 3932, 2394, 2394, 2394, 1497, 2394, 3936, 2383,
4526      2394, 2397, 2397, 2397, 2393, 2397, 3936, 3939, 2397, 2400,
4527      2400, 2400, 3940, 2385, 3937, 2384, 2401, 2401, 2401, 2402,
4528      2402, 2402, 3937, 2402, 3934, 3943, 2402, 2400, 3934, 2400,
4529      2667, 2667, 2389, 2667, 2401, 2405, 2405, 2405, 3938, 2405,
4530      3945, 2667, 2405, 2408, 2408, 2408, 3938, 2393, 2667, 2409,
4531
4532      2409, 2409, 2401, 2409, 3944, 3939, 2409, 2412, 2412, 2412,
4533      3940, 2408, 2413, 2413, 2413, 1492, 2413, 3943, 3947, 2413,
4534      3949, 2414, 2414, 2414, 2412, 2414, 3945, 3946, 2414, 2417,
4535      2417, 2417, 2418, 2418, 2418, 3948, 2418, 2408, 1491, 2418,
4536      1490, 2424, 2424, 2424, 1485, 2424, 3944, 2417, 2424, 2427,
4537      2427, 2427, 2428, 2428, 2428, 1484, 2428, 3951, 3949, 2428,
4538      2431, 2431, 2431, 3946, 2431, 3947, 2427, 2431, 2435, 2435,
4539      2435, 2436, 2436, 2436, 2437, 2437, 2437, 2440, 2440, 2440,
4540      3950, 2440, 3948, 3959, 2440, 2435, 2444, 2444, 2444, 2436,
4541      3951, 3954, 2437, 2445, 2445, 2445, 2417, 2447, 2447, 2447,
4542
4543      3954, 2448, 2448, 2448, 2444, 2448, 3952, 3960, 2448, 1471,
4544      3955, 2445, 1470, 1469, 2447, 2453, 2453, 2453, 3950, 3959,
4545      2454, 2454, 2454, 2456, 2456, 2456, 3957, 2459, 2459, 2459,
4546      3956, 2459, 3961, 2453, 2459, 1468, 2436, 1467, 2454, 3952,
4547      3961, 2456, 2444, 3960, 3958, 2445, 2465, 2465, 2465, 2466,
4548      2466, 2466, 1466, 2466, 3955, 3963, 2466, 2467, 2467, 2467,
4549      2468, 2468, 2468, 2465, 2469, 2469, 2469, 2470, 2470, 2470,
4550      2471, 2471, 2471, 3957, 3956, 2467, 2472, 2472, 2472, 2473,
4551      2473, 2473, 2453, 2454, 2475, 2475, 2475, 2471, 2474, 2474,
4552      2474, 3958, 3962, 2472, 3964, 3977, 2473, 2477, 2477, 2477,
4553
4554      3962, 3967, 2475, 3963, 3977, 2474, 2478, 2478, 2478, 3968,
4555      2478, 1465, 1464, 2478, 2477, 2480, 2480, 2480, 2482, 2482,
4556      2482, 3965, 2467, 2485, 2485, 2485, 3969, 1454, 2472, 3971,
4557      2486, 2486, 2486, 2480, 2486, 3966, 2482, 2486, 2489, 2489,
4558      2489, 2485, 3964, 3967, 2473, 2490, 2490, 2490, 2474, 2490,
4559      2475, 3968, 2490, 3981, 1453, 2489, 2491, 2491, 2491, 3965,
4560      2491, 3970, 3969, 2491, 2494, 2494, 2494, 2495, 2495, 2495,
4561      2496, 2496, 2496, 3966, 2496, 1452, 3971, 2496, 2497, 2497,
4562      2497, 3972, 2494, 1447, 2495, 2501, 2501, 2501, 2503, 2503,
4563      2503, 2504, 2504, 2504, 1446, 2504, 2497, 3970, 2504, 2515,
4564
4565      2515, 2515, 3981, 2501, 3975, 2503, 2516, 2516, 2516, 1445,
4566      3978, 2517, 2517, 2517, 3973, 2517, 2494, 2515, 2517, 3978,
4567      2518, 2518, 2518, 2516, 2518, 3976, 3979, 2518, 3972, 1444,
4568      2497, 2521, 2521, 2521, 1429, 2521, 1428, 3975, 2521, 2525,
4569      2525, 2525, 2526, 2526, 2526, 1411, 2529, 2529, 2529, 2515,
4570      2529, 1410, 3973, 2529, 2532, 2532, 2532, 2525, 3976, 3979,
4571      2526, 2533, 2533, 2533, 2534, 2534, 2534, 2538, 2538, 2538,
4572      2539, 2539, 2539, 2541, 2541, 2541, 2542, 2542, 2542, 2544,
4573      2544, 2544, 2545, 2545, 2545, 2546, 2546, 2546, 2550, 2550,
4574      2550, 2551, 2551, 2551, 2555, 2555, 2555, 2556, 2556, 2556,
4575
4576      2558, 2558, 2558, 2559, 2559, 2559, 1403, 2525, 2564, 2564,
4577      2564, 2565, 2565, 2565, 2566, 2566, 2566, 2567, 2567, 2567,
4578      3974, 2567, 1399, 3980, 2567, 1394, 2564, 2568, 2568, 2568,
4579      3982, 2566, 2569, 2569, 2569, 2570, 2570, 2570, 2571, 2571,
4580      2571, 2572, 2572, 2572, 2568, 2573, 2573, 2573, 1393, 2569,
4581      1388, 1387, 2570, 2574, 2574, 2574, 3980, 2574, 3974, 2572,
4582      2574, 1386, 2573, 2577, 2577, 2577, 1384, 2578, 2578, 2578,
4583      2579, 2579, 2579, 2580, 2580, 2580, 2581, 2581, 2581, 3982,
4584      2581, 2577, 1383, 2581, 2569, 2578, 3983, 2570, 2579, 3985,
4585      1378, 2580, 2584, 2584, 2584, 2588, 2588, 2588, 1375, 2588,
4586
4587      3984, 1374, 2588, 3985, 2578, 2591, 2591, 2591, 2572, 1371,
4588      2584, 2594, 2594, 2594, 1370, 2577, 2595, 2595, 2595, 3983,
4589      2595, 1369, 2591, 2595, 2596, 2596, 2596, 1368, 2594, 2597,
4590      2597, 2597, 2579, 3984, 1367, 2580, 2602, 2602, 2602, 2603,
4591      2603, 2603, 2596, 2604, 2604, 2604, 1366, 2597, 2605, 2605,
4592      2605, 1365, 2605, 1364, 2602, 2605, 1363, 2603, 1362, 1361,
4593      2604, 2608, 2608, 2608, 2609, 2609, 2609, 2610, 2610, 2610,
4594      2611, 2611, 2611, 2612, 2612, 2612, 1360, 1359, 2608, 1358,
4595      1357, 2609, 1356, 1355, 2610, 1354, 1353, 2611, 1350, 1349,
4596      2604, 2612, 2613, 2613, 2613, 1348, 1347, 2602, 2614, 2614,
4597
4598      2614, 2618, 2618, 2618, 2619, 2619, 2619, 1346, 2619, 1344,
4599      2613, 2619, 2622, 2622, 2622, 2614, 1343, 2608, 1342, 2610,
4600      2623, 2623, 2623, 2624, 2624, 2624, 2609, 2626, 2626, 2626,
4601      2622, 2625, 2625, 2625, 2612, 2625, 1341, 1340, 2625, 1339,
4602      2624, 2627, 2627, 2627, 2626, 2628, 2628, 2628, 2629, 2629,
4603      2629, 2630, 2630, 2630, 2634, 2634, 2634, 2613, 2627, 2635,
4604      2635, 2635, 2628, 2631, 2631, 2631, 2629, 2631, 2630, 1338,
4605      2631, 2634, 2622, 2639, 2639, 2639, 1337, 2635, 2641, 2641,
4606      2641, 1336, 2641, 1335, 1334, 2641, 2644, 2644, 2644, 1333,
4607      1332, 2639, 1331, 2627, 2645, 2645, 2645, 2628, 2645, 1330,
4608
4609      1324, 2645, 1320, 1317, 2644, 2648, 2648, 2648, 2652, 2652,
4610      2652, 1316, 2652, 1315, 1313, 2652, 2665, 2665, 2665, 2668,
4611      2668, 2634, 2668, 2648, 2666, 2666, 2666, 1309, 2666, 1300,
4612      2668, 2666, 1295, 1294, 2665, 1293, 1289, 2668, 2670, 2670,
4613      2670, 2671, 2671, 2671, 2684, 2684, 2684, 2685, 2685, 2685,
4614      1288, 1285, 2648, 2689, 2689, 2689, 2670, 1281, 1280, 2671,
4615      2690, 2690, 2690, 2692, 2692, 2692, 2695, 2695, 2695, 2696,
4616      2696, 2696, 2700, 2700, 2700, 2703, 2703, 2703, 2665, 2705,
4617      2705, 2705, 2707, 2707, 2707, 2708, 2708, 2708, 1277, 2708,
4618      1274, 1271, 2708, 2711, 2711, 2711, 1270, 2705, 1265, 2712,
4619
4620      2712, 2712, 1257, 2712, 2671, 2670, 2712, 2713, 2713, 2713,
4621      2711, 2714, 2714, 2714, 2715, 2715, 2715, 2716, 2716, 2716,
4622      2717, 2717, 2717, 1256, 2713, 2718, 2718, 2718, 2714, 2718,
4623      1255, 1253, 2718, 1249, 1246, 2716, 1241, 2717, 2719, 2719,
4624      2719, 2720, 2720, 2720, 2721, 2721, 2721, 2722, 2722, 2722,
4625      2723, 2723, 2723, 2729, 2729, 2729, 2719, 1240, 1239, 2720,
4626      1238, 1237, 2721, 1236, 1235, 2722, 1234, 1233, 2723, 1230,
4627      2729, 2730, 2730, 2730, 1229, 2730, 1226, 1225, 2730, 2733,
4628      2733, 2733, 1221, 2733, 1219, 1216, 2733, 2736, 2736, 2736,
4629      2740, 2740, 2740, 2741, 2741, 2741, 2742, 2742, 2742, 2744,
4630
4631      2744, 2744, 2752, 2752, 2752, 2736, 2720, 2740, 2722, 1215,
4632      1212, 2741, 2721, 1205, 2742, 1202, 2744, 2745, 2745, 2745,
4633      2752, 2745, 1201, 1200, 2745, 2749, 2749, 2749, 2750, 2750,
4634      2750, 2751, 2751, 2751, 1197, 2751, 1194, 1187, 2751, 2753,
4635      2753, 2753, 2749, 1183, 1182, 2750, 2754, 2754, 2754, 1181,
4636      1178, 2741, 2755, 2755, 2755, 1177, 2755, 2753, 1176, 2755,
4637      2758, 2758, 2758, 2754, 2759, 2759, 2759, 2760, 2760, 2760,
4638      1169, 2761, 2761, 2761, 1168, 2761, 1167, 2758, 2761, 2764,
4639      2764, 2764, 2765, 2765, 2765, 2760, 2765, 1166, 1165, 2765,
4640      2766, 2766, 2766, 2767, 2767, 2767, 2764, 2768, 2768, 2768,
4641
4642      1164, 2753, 2770, 2770, 2770, 1163, 1162, 2766, 1161, 1157,
4643      2767, 2775, 2775, 2775, 1126, 2768, 2771, 2771, 2771, 2770,
4644      2771, 1123, 1120, 2771, 2777, 2777, 2777, 1119, 1116, 2775,
4645      1115, 2790, 2790, 2790, 2802, 2802, 2802, 2821, 2821, 2821,
4646      1114, 1113, 2777, 2822, 2822, 2822, 2825, 2825, 2825, 2790,
4647      1112, 1111, 2802, 2829, 2829, 2829, 2832, 2832, 2832, 2833,
4648      2833, 2833, 2834, 2834, 2834, 1104, 2834, 1103, 1102, 2834,
4649      2837, 2837, 2837, 2838, 2838, 2838, 2833, 2838, 1101, 1099,
4650      2838, 2839, 2839, 2839, 1098, 1096, 2802, 2837, 2841, 2841,
4651      2841, 2777, 2790, 2840, 2840, 2840, 1095, 2840, 2839, 1094,
4652
4653      2840, 2843, 2843, 2843, 1093, 2843, 2841, 1092, 2843, 2846,
4654      2846, 2846, 2848, 2848, 2848, 2849, 2849, 2849, 2850, 2850,
4655      2850, 2853, 2853, 2853, 2855, 2855, 2855, 2846, 2855, 1091,
4656      2848, 2855, 1090, 2849, 1089, 1088, 2850, 1087, 2853, 2867,
4657      2867, 2867, 2868, 2868, 2868, 2869, 2869, 2869, 1086, 2869,
4658      1085, 1083, 2869, 2870, 2870, 2870, 2867, 1082, 1081, 2868,
4659      2871, 2871, 2871, 1080, 2871, 1079, 1078, 2871, 1077, 1076,
4660      2850, 2870, 1075, 1073, 2848, 2877, 2877, 2877, 1072, 2878,
4661      2878, 2878, 2849, 2878, 1071, 1070, 2878, 2879, 2879, 2879,
4662      1069, 2879, 2877, 1068, 2879, 2882, 2882, 2882, 2884, 2884,
4663
4664      2884, 2885, 2885, 2885, 1067, 2885, 1066, 1065, 2885, 2889,
4665      2889, 2889, 1064, 2882, 1060, 1056, 2884, 2890, 2890, 2890,
4666      2891, 2891, 2891, 1055, 2891, 1054, 2889, 2891, 2892, 2892,
4667      2892, 2894, 2894, 2894, 2890, 2894, 1053, 1052, 2894, 2897,
4668      2897, 2897, 1048, 2898, 2898, 2898, 2892, 2898, 1046, 1045,
4669      2898, 2899, 2899, 2899, 1044, 1043, 2897, 1042, 2900, 2900,
4670      2900, 2884, 2900, 1041, 1040, 2900, 1037, 1036, 2899, 2901,
4671      2901, 2901, 1032, 2901, 1031, 1030, 2901, 2905, 2905, 2905,
4672      2906, 2906, 2906, 2907, 2907, 2907, 2908, 2908, 2908, 2909,
4673      2909, 2909, 1029, 1026, 2905, 1025, 1023, 2906, 2920, 2920,
4674
4675      2920, 2907, 2933, 2933, 2933, 1021, 2909, 2934, 2934, 2934,
4676      2951, 2951, 2951, 2953, 2953, 2953, 2920, 1018, 1017, 2933,
4677      2957, 2957, 2957, 1016, 1015, 2934, 2961, 2961, 2961, 2962,
4678      2962, 2962, 1013, 2962, 1010, 1009, 2962, 2963, 2963, 2963,
4679      1007, 2963, 1006, 2961, 2963, 2966, 2966, 2966, 1003, 2966,
4680      1001,  998, 2966,  997,  996, 2907, 2969, 2969, 2969, 2920,
4681      2970, 2970, 2970, 2971, 2971, 2971, 2973, 2973, 2973, 2974,
4682      2974, 2974,  995,  992, 2969, 2975, 2975, 2975, 2970, 2975,
4683       991, 2971, 2975, 2973,  990,  989, 2974, 2976, 2976, 2976,
4684      2988, 2988, 2988, 2989, 2989, 2989,  988, 2989,  987, 2971,
4685
4686      2989, 2990, 2990, 2990, 2976, 2990,  986, 2988, 2990, 2993,
4687      2993, 2993, 2970, 2996, 2996, 2996, 2998, 2998, 2998,  984,
4688      2998,  981,  980, 2998, 2969,  976,  975, 2993,  974,  973,
4689      2996, 3007, 3007, 3007, 3009, 3009, 3009, 3010, 3010, 3010,
4690       972, 3010,  971,  962, 3010,  961, 3011, 3011, 3011, 3007,
4691      3011, 3009,  958, 3011, 3014, 3014, 3014,  957, 3014,  956,
4692       955, 3014, 3017, 3017, 3017,  954, 3017,  952,  951, 3017,
4693      3027, 3027, 3027, 3028, 3028, 3028,  950, 3028,  947,  946,
4694      3028, 3029, 3029, 3029, 3030, 3030, 3030, 3027, 3030,  945,
4695       942, 3030, 3031, 3031, 3031, 3032, 3032, 3032, 3029, 3033,
4696
4697      3033, 3033, 3034, 3034, 3034,  941, 3034,  937,  935, 3034,
4698      3031, 3045, 3045, 3045,  932,  931, 3033, 3058, 3058, 3058,
4699      3059, 3059, 3059,  930, 3059,  929,  927, 3059,  924, 3045,
4700      3060, 3060, 3060,  923, 3058, 3064, 3064, 3064, 3078, 3078,
4701      3078, 3080, 3080, 3080, 3083, 3083, 3083,  920, 3060, 3085,
4702      3085, 3085, 3064, 3064,  917, 3031,  914, 3087, 3087, 3087,
4703       913, 3087,  912, 3045, 3087, 3094, 3094, 3094, 3095, 3095,
4704      3095, 3096, 3096, 3096, 3098, 3098, 3098, 3099, 3099, 3099,
4705       911, 3099,  910, 3094, 3099,  907, 3095,  904,  900, 3096,
4706       899, 3098, 3100, 3100, 3100,  898, 3100,  897,  896, 3100,
4707
4708      3103, 3103, 3103, 3104, 3104, 3104,  895, 3104,  894,  893,
4709      3104, 3116, 3116, 3116,  892, 3116,  891, 3103, 3116, 3120,
4710      3120, 3120, 3121, 3121, 3121,  890, 3121,  888,  886, 3121,
4711       883,  882, 3094, 3096,  881,  880, 3120, 3129, 3129, 3129,
4712      3132, 3132, 3132,  879, 3132,  878,  873, 3132, 3147, 3147,
4713      3147,  872, 3148, 3148, 3148, 3129, 3148,  871,  870, 3148,
4714      3151, 3151, 3151,  867, 3151, 3147,  866, 3151, 3154, 3154,
4715      3154, 3155, 3155, 3155,  865, 3155,  862,  861, 3155, 3166,
4716      3166, 3166,  860, 3179, 3179, 3179, 3154, 3179,  859,  856,
4717      3179, 3183, 3183, 3183, 3184, 3184, 3184, 3166, 3185, 3185,
4718
4719      3185,  855, 3185,  853,  850, 3185,  849,  845, 3183, 3183,
4720       844, 3184, 3184, 3198, 3198, 3198, 3185, 3200, 3200, 3200,
4721      3154, 3201, 3201, 3201, 3202, 3202, 3202,  843,  842, 3166,
4722      3204, 3204, 3204, 3205, 3205, 3205, 3218, 3218, 3218, 3219,
4723      3219, 3219, 3221, 3221, 3221, 3223, 3223, 3223,  841, 3223,
4724       840,  837, 3223,  836, 3218,  835,  834, 3219,  833,  832,
4725      3221, 3226, 3226, 3226,  823, 3226,  821,  820, 3226, 3229,
4726      3229, 3229, 3240, 3240, 3240, 3241, 3241, 3241,  817, 3241,
4727       816,  815, 3241, 3244, 3244, 3244, 3229,  814, 3218, 3240,
4728      3264, 3264, 3264,  811, 3265, 3265, 3265,  810, 3265,  809,
4729
4730      3244, 3265, 3274, 3274, 3274,  806,  804, 3264,  803,  802,
4731      3221, 3283, 3283, 3283, 3305, 3305, 3305, 3306, 3306, 3306,
4732      3274, 3306,  799,  798, 3306,  797, 3307, 3307, 3307, 3283,
4733      3307, 3305, 3305, 3307,  796, 3306, 3318, 3318, 3318, 3320,
4734      3320, 3320,  792,  791, 3307, 3321, 3321, 3321, 3323, 3323,
4735      3323, 3336, 3336, 3336, 3337, 3337, 3337, 3339, 3339, 3339,
4736      3340, 3340, 3340,  790, 3340,  786,  785, 3340,  784, 3336,
4737       783,  777, 3337,  776, 3339, 3341, 3341, 3341, 3283, 3308,
4738      3308, 3308, 3308, 3308, 3308, 3308, 3308, 3308,  774,  766,
4739      3308,  765, 3341,  761,  752, 3308, 3308, 3308, 3308, 3308,
4740
4741      3351, 3351, 3351, 3352, 3352, 3352,  748, 3352,  747,  743,
4742      3352, 3354, 3354, 3354,  737, 3354,  736, 3351, 3354,  735,
4743       731, 3337, 3353, 3353, 3353, 3308, 3308, 3309, 3309, 3309,
4744      3309, 3309, 3309, 3309, 3309, 3309,  728,  726, 3309, 3353,
4745      3383, 3383, 3383, 3309, 3309, 3309, 3309, 3309, 3372, 3372,
4746      3372,  725, 3372,  724,  720, 3372,  716,  712, 3383, 3391,
4747      3391, 3391, 3409, 3409, 3409,  711, 3409,  710,  709, 3409,
4748      3420, 3420, 3420, 3309, 3309,  705,  701, 3391,  698,  697,
4749      3409, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412,
4750       696,  695, 3412, 3421, 3421, 3421,  691, 3412, 3412, 3412,
4751
4752      3412, 3412, 3434, 3434, 3434, 3436, 3436, 3436, 3438, 3438,
4753      3438,  685, 3438,  684,  680, 3438, 3522, 3522, 3522,  672,
4754      3434,  668,  661, 3436, 3441, 3441, 3441, 3412, 3412, 3413,
4755      3413, 3413, 3413, 3413, 3413, 3413, 3413, 3413,  659,  658,
4756      3413, 3441, 3523, 3523, 3523, 3413, 3413, 3413, 3413, 3413,
4757       654, 3442, 3442, 3442,  648, 3442,  647, 3436, 3442, 3450,
4758      3450, 3450,  643, 3450,  636,  635, 3450, 3453, 3453, 3453,
4759       634, 3453,  633,  632, 3453, 3413, 3413, 3487, 3487, 3487,
4760      3509, 3509, 3509, 3530, 3530, 3530, 3531, 3531, 3531, 3536,
4761      3536, 3536,  628, 3536,  617, 3487, 3536,  613, 3509, 3509,
4762
4763       605, 3530,  604, 3531, 3543, 3543, 3543, 3548, 3548, 3548,
4764      3579, 3579, 3579, 3583, 3583, 3583, 3596, 3596, 3596,  603,
4765       602, 3543,  601,  597, 3548, 3598, 3598, 3598, 3579,  591,
4766       590, 3583,  586,  580, 3596,  579, 3599, 3599, 3599,  575,
4767      3599,  569, 3598, 3599, 3612, 3612, 3612, 3613, 3613, 3613,
4768       568, 3613,  564,  560, 3613, 3622, 3622, 3622, 3640, 3640,
4769      3640, 3612, 3623, 3623, 3623, 3583, 3623,  556,  555, 3623,
4770       554,  550, 3622, 3652, 3652, 3652, 3640, 3652,  542,  538,
4771      3652, 3667, 3667, 3667,  532, 3667,  531,  530, 3667, 3678,
4772      3678, 3678,  526, 3678,  522, 3640, 3678, 3875, 3875, 3875,
4773
4774      3892, 3892, 3892,  517, 3892,  516,  515, 3892, 3987, 3987,
4775      3987, 3988, 3988, 3988,  514, 3875,  510,  506, 3892,  503,
4776       499,  495,  492,  489,  487,  486, 3987,  481,  474, 3988,
4777      3991, 3991, 3991, 3991, 3991, 3991, 3991, 3991, 3991, 3992,
4778      3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3993, 3993,
4779      3993, 3993, 3993, 3993, 3993, 3993, 3993, 3994, 3994, 3994,
4780      3994, 3994, 3994, 3994, 3994, 3994, 3995, 3995, 3995, 3995,
4781      3995, 3995, 3995, 3995, 3995, 3996, 3996, 3996, 3996, 3996,
4782      3996, 3996, 3996, 3996, 3997, 3997, 3997, 3997, 3997, 3997,
4783      3997, 3997, 3997, 3998, 3998, 3998, 3998, 3998, 3998, 3998,
4784
4785      3998, 3998, 3999, 3999, 3999, 3999, 3999, 3999, 3999, 3999,
4786      3999, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000,
4787      4001, 4001, 4001, 4001, 4001, 4001, 4001, 4001, 4001, 4002,
4788      4002, 4002, 4002, 4002, 4002, 4002, 4002, 4002, 4003, 4003,
4789      4003, 4003, 4003, 4003, 4003, 4003, 4003, 4004, 4004, 4004,
4790      4004, 4004, 4004, 4004, 4004, 4004, 4005, 4005, 4005, 4005,
4791      4005, 4005, 4005, 4005, 4005, 4006, 4006, 4006, 4006, 4006,
4792      4006, 4006, 4006, 4006, 4007, 4007, 4007, 4007, 4007, 4007,
4793      4007, 4007, 4007, 4008, 4008, 4008, 4008, 4008, 4008, 4008,
4794      4008, 4008, 4009, 4009, 4009, 4009, 4009, 4009, 4009, 4009,
4795
4796      4009, 4010, 4010, 4010, 4010, 4010, 4010, 4010, 4010, 4010,
4797      4011, 4011, 4011, 4011, 4011, 4011, 4011, 4011, 4011, 4012,
4798      4012, 4012, 4012, 4012, 4012, 4012, 4012, 4012, 4013, 4013,
4799      4013, 4013, 4013, 4013, 4013, 4013, 4013, 4014, 4014, 4014,
4800      4014, 4014, 4014, 4014, 4014, 4014, 4015, 4015, 4015, 4015,
4801      4015, 4015, 4015, 4015, 4015, 4016, 4016, 4016, 4016, 4016,
4802      4016, 4016, 4016, 4016, 4017, 4017, 4017, 4017, 4017, 4017,
4803      4017, 4017, 4017, 4018, 4018, 4018, 4018, 4018, 4018, 4018,
4804      4018, 4018, 4019, 4019, 4019, 4019, 4019, 4019, 4019, 4019,
4805      4019, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 4020,
4806
4807      4021, 4021, 4021, 4021, 4021, 4021, 4021, 4021, 4021, 4022,
4808      4022, 4022, 4022, 4022, 4022, 4022, 4022, 4022, 4023, 4023,
4809      4023, 4023, 4023, 4023, 4023, 4023, 4023, 4024, 4024, 4024,
4810      4024, 4024, 4024, 4024, 4024, 4024, 4025, 4025, 4025, 4025,
4811      4025, 4025, 4025, 4025, 4025, 4026, 4026, 4026, 4026, 4026,
4812      4026, 4026, 4026, 4026, 4027, 4027, 4027, 4027, 4027, 4027,
4813      4027, 4027, 4027, 4028, 4028, 4028, 4028, 4028, 4028, 4028,
4814      4028, 4028, 4029, 4029, 4029, 4029, 4029, 4029, 4029, 4029,
4815      4029, 4030, 4030, 4030, 4030, 4030, 4030, 4030, 4030, 4030,
4816      4031, 4031, 4031, 4031, 4031, 4031, 4031, 4031, 4031, 4032,
4817
4818      4032, 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4033, 4033,
4819      4033, 4033, 4033, 4033, 4033, 4033, 4033, 4034, 4034, 4034,
4820      4034, 4034, 4034, 4034, 4034, 4034, 4035, 4035, 4035, 4035,
4821      4035, 4035, 4035, 4035, 4035, 4036, 4036, 4036, 4036, 4036,
4822      4036, 4036, 4036, 4036, 4037, 4037, 4037, 4037, 4037, 4037,
4823      4037, 4037, 4037, 4038, 4038, 4038, 4038, 4038, 4038, 4038,
4824      4038, 4038, 4039, 4039, 4039, 4039, 4039, 4039, 4039, 4039,
4825      4039, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 4040,
4826      4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4042,
4827      4042, 4042, 4042, 4042, 4042, 4042, 4042, 4042, 4043, 4043,
4828
4829      4043, 4043, 4043, 4043, 4043, 4043, 4043, 4044, 4044, 4044,
4830      4044, 4044, 4044, 4044, 4044, 4044, 4045, 4045, 4045, 4045,
4831      4045, 4045, 4045, 4045, 4045, 4046, 4046, 4046, 4046, 4046,
4832      4046, 4046, 4046, 4046, 4047, 4047, 4047, 4047, 4047, 4047,
4833      4047, 4047, 4047, 4048, 4048, 4048, 4048, 4048, 4048, 4048,
4834      4048, 4048, 4049, 4049, 4049, 4049, 4049, 4049, 4049, 4049,
4835      4049, 4050, 4050, 4050, 4050, 4050, 4050, 4050, 4050, 4050,
4836      4051, 4051, 4051, 4051, 4051, 4051, 4051, 4051, 4051, 4052,
4837      4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4053, 4053,
4838      4053, 4053, 4053, 4053, 4053, 4053, 4053, 4054, 4054, 4054,
4839
4840      4054, 4054, 4054, 4054, 4054, 4054, 4055, 4055, 4055, 4055,
4841      4055, 4055, 4055, 4055, 4055, 4056, 4056, 4056, 4056, 4056,
4842      4056, 4056, 4056, 4056, 4057, 4057, 4057, 4057, 4057, 4057,
4843      4057, 4057, 4057, 4058, 4058, 4058, 4058, 4058, 4058, 4058,
4844      4058, 4058, 4059, 4059, 4059, 4059, 4059, 4059, 4059, 4059,
4845      4059, 4060, 4060, 4060,  473,  472,  471, 4060, 4061, 4061,
4846      4061,  470,  466,  459, 4061, 4062, 4062, 4062,  458,  457,
4847       453, 4062, 4063, 4063, 4063,  446,  445,  441, 4063, 4064,
4848      4064, 4064,  434,  433,  432, 4064, 4065, 4065, 4065,  428,
4849       422,  421, 4065, 4066, 4066, 4066,  420,  416,  410, 4066,
4850
4851      4067, 4067, 4067,  406,  402,  398, 4067, 4068, 4068, 4068,
4852       397,  396,  395, 4068, 4069, 4069, 4069,  394,  390,  381,
4853      4069, 4070, 4070, 4070,  380,  376,  372, 4070, 4071, 4071,
4854      4071,  367,  361,  357, 4071, 4072, 4072, 4072,  356,  352,
4855       349, 4072, 4073, 4073, 4073,  348,  347,  341, 4073, 4074,
4856      4074, 4074,  340,  338,  335, 4074, 4075, 4075, 4075,  323,
4857         0,    0, 4075, 4076, 4076, 4076,    0,    0,    0, 4076,
4858      4077, 4077, 4077,    0,    0,    0, 4077, 4078, 4078, 4078,
4859         0,    0,    0, 4078, 4079, 4079, 4079,    0,    0,    0,
4860      4079, 4080, 4080, 4080,    0,    0,    0, 4080, 4081, 4081,
4861
4862      4081,    0,    0,    0, 4081, 4082, 4082, 4082,    0,    0,
4863         0, 4082, 4083, 4083, 4083,    0,    0,    0, 4083, 4084,
4864      4084, 4084,    0,    0,    0, 4084, 4085, 4085, 4085,    0,
4865         0,    0, 4085, 4086, 4086, 4086,    0,    0,    0, 4086,
4866      4087, 4087, 4087,    0,    0,    0, 4087, 4088, 4088, 4088,
4867         0,    0,    0, 4088, 4089, 4089, 4089,    0,    0,    0,
4868      4089, 4090, 4090, 4090,    0,    0,    0, 4090, 4091, 4091,
4869      4091, 4091, 4091, 4091, 4091,    0, 4091, 4092, 4092, 4092,
4870         0,    0,    0, 4092, 4093,    0,    0,    0, 4093, 4094,
4871      4094, 4094,    0,    0,    0, 4094, 4095,    0,    0,    0,
4872
4873      4095, 4096, 4096, 4096,    0,    0,    0, 4096, 4097,    0,
4874         0,    0, 4097, 4098, 4098, 4098,    0,    0,    0, 4098,
4875      4099,    0,    0,    0, 4099, 4100, 4100, 4100,    0,    0,
4876         0, 4100, 4101,    0,    0,    0, 4101, 4102, 4102, 4102,
4877         0,    0,    0, 4102, 4103,    0,    0,    0, 4103, 4104,
4878      4104, 4104,    0,    0,    0, 4104, 4105,    0,    0,    0,
4879      4105, 4106, 4106, 4106,    0,    0,    0, 4106, 4107,    0,
4880         0,    0, 4107, 4108, 4108, 4108,    0,    0,    0, 4108,
4881      4109,    0,    0,    0, 4109, 4110, 4110, 4110,    0,    0,
4882         0, 4110, 4111,    0,    0,    0, 4111, 4112, 4112, 4112,
4883
4884         0,    0,    0, 4112, 4113,    0,    0,    0, 4113, 4114,
4885      4114, 4114,    0,    0,    0, 4114, 4115,    0,    0,    0,
4886      4115, 4116, 4116, 4116,    0,    0,    0, 4116, 4117,    0,
4887         0,    0, 4117, 4118, 4118, 4118,    0,    0,    0, 4118,
4888      4119,    0,    0,    0, 4119, 4120, 4120, 4120,    0,    0,
4889         0, 4120, 4121,    0,    0,    0, 4121, 4122, 4122, 4122,
4890         0,    0,    0, 4122, 4123,    0,    0,    0, 4123, 4124,
4891      4124, 4124,    0,    0,    0, 4124, 4125,    0,    0,    0,
4892      4125, 4126, 4126, 4126,    0,    0,    0, 4126, 4127,    0,
4893         0,    0, 4127, 4128, 4128, 4128,    0,    0,    0, 4128,
4894
4895      4129,    0,    0,    0, 4129, 4130, 4130, 4130,    0,    0,
4896         0, 4130, 4131,    0,    0,    0, 4131, 4132, 4132, 4132,
4897         0,    0,    0, 4132, 4133,    0,    0,    0, 4133, 4134,
4898      4134, 4134,    0,    0,    0, 4134, 4135,    0,    0,    0,
4899      4135, 4136, 4136, 4136,    0,    0,    0, 4136, 4137,    0,
4900         0,    0, 4137, 4138, 4138, 4138,    0,    0,    0, 4138,
4901      4139,    0,    0,    0, 4139, 4140, 4140, 4140,    0,    0,
4902         0, 4140, 4141,    0,    0,    0, 4141, 4142, 4142, 4142,
4903         0,    0,    0, 4142, 4143,    0,    0,    0, 4143, 4144,
4904      4144, 4144,    0,    0,    0, 4144, 4145,    0,    0,    0,
4905
4906      4145, 4146, 4146, 4146,    0,    0,    0, 4146, 4147,    0,
4907         0,    0, 4147, 4148, 4148, 4148,    0,    0,    0, 4148,
4908      4149,    0,    0,    0, 4149, 4150, 4150, 4150,    0,    0,
4909         0, 4150, 4151,    0,    0,    0, 4151, 4152, 4152, 4152,
4910         0,    0,    0, 4152, 4153,    0,    0,    0, 4153, 4154,
4911      4154, 4154, 4154, 4154, 4154, 4154, 4154, 4154, 4155,    0,
4912         0,    0,    0, 4155, 4156, 4156, 4156,    0,    0,    0,
4913      4156, 4157, 4157, 4157, 4157,    0,    0, 4157, 4157, 4158,
4914      4158, 4158, 4158,    0, 4158,    0, 4158, 4159, 4159, 4159,
4915      4159,    0,    0, 4159, 4159, 4160, 4160, 4160,    0,    0,
4916
4917         0, 4160, 4161, 4161, 4161, 4161,    0,    0, 4161, 4161,
4918      4162, 4162, 4162,    0,    0,    0, 4162, 4163, 4163, 4163,
4919      4163,    0,    0, 4163, 4163, 4164, 4164, 4164,    0,    0,
4920         0, 4164, 4165, 4165, 4165, 4165,    0,    0, 4165, 4165,
4921      4166, 4166, 4166, 4166,    0, 4166,    0, 4166, 4167, 4167,
4922      4167, 4167,    0,    0, 4167, 4167, 4168, 4168, 4168, 4168,
4923         0, 4168,    0, 4168, 4169, 4169, 4169, 4169,    0,    0,
4924      4169, 4169, 4170, 4170, 4170, 4170,    0, 4170,    0, 4170,
4925      4171, 4171, 4171, 4171,    0,    0, 4171, 4171, 4172, 4172,
4926      4172, 4172,    0, 4172,    0, 4172, 4173, 4173, 4173, 4173,
4927
4928         0,    0, 4173, 4173, 4174, 4174, 4174,    0,    0,    0,
4929      4174, 4175, 4175, 4175, 4175,    0,    0, 4175, 4175, 4176,
4930      4176, 4176, 4176,    0,    0, 4176, 4176, 4177, 4177, 4177,
4931         0,    0,    0, 4177, 4178, 4178, 4178, 4178,    0,    0,
4932      4178, 4178, 4179, 4179, 4179,    0,    0,    0, 4179, 4180,
4933      4180, 4180, 4180,    0,    0, 4180, 4180, 4181, 4181, 4181,
4934         0,    0,    0, 4181, 4182, 4182, 4182, 4182,    0,    0,
4935      4182, 4182, 4183, 4183, 4183,    0,    0,    0, 4183, 4184,
4936      4184, 4184, 4184,    0,    0, 4184, 4184, 4185, 4185, 4185,
4937         0,    0,    0, 4185, 4186, 4186, 4186, 4186,    0,    0,
4938
4939      4186, 4186, 4187, 4187, 4187,    0,    0,    0, 4187, 4188,
4940      4188, 4188, 4188,    0,    0, 4188, 4188, 4189, 4189, 4189,
4941         0,    0,    0, 4189, 4190, 4190, 4190, 4190,    0,    0,
4942      4190, 4190, 4191, 4191, 4191,    0,    0,    0, 4191, 4192,
4943      4192, 4192, 4192,    0,    0, 4192, 4192, 4193, 4193, 4193,
4944         0,    0,    0, 4193, 4194, 4194, 4194, 4194,    0,    0,
4945      4194, 4194, 4195, 4195, 4195,    0,    0,    0, 4195, 4196,
4946      4196, 4196, 4196,    0,    0, 4196, 4196, 4197, 4197, 4197,
4947         0,    0,    0, 4197, 4198, 4198, 4198, 4198,    0,    0,
4948      4198, 4198, 4199, 4199, 4199,    0,    0,    0, 4199, 4200,
4949
4950      4200, 4200, 4200,    0,    0, 4200, 4200, 4201, 4201, 4201,
4951      4201,    0, 4201,    0, 4201, 4202, 4202, 4202, 4202,    0,
4952         0, 4202, 4202, 4203, 4203, 4203,    0,    0,    0, 4203,
4953      4204, 4204, 4204, 4204,    0,    0, 4204, 4204, 4205, 4205,
4954      4205,    0,    0,    0, 4205, 4206, 4206, 4206, 4206,    0,
4955         0, 4206, 4206, 4207, 4207, 4207,    0,    0,    0, 4207,
4956      4208, 4208, 4208, 4208,    0,    0, 4208, 4208, 4209, 4209,
4957      4209,    0,    0,    0, 4209, 4210, 4210, 4210, 4210,    0,
4958         0, 4210, 4210, 4211, 4211, 4211,    0,    0,    0, 4211,
4959      4212, 4212, 4212, 4212,    0,    0, 4212, 4212, 4213, 4213,
4960
4961      4213,    0,    0,    0, 4213, 4214, 4214, 4214, 4214,    0,
4962         0, 4214, 4214, 4215, 4215, 4215, 4215,    0, 4215,    0,
4963      4215, 4216, 4216, 4216, 4216,    0,    0, 4216, 4216, 4217,
4964      4217, 4217, 4217, 4217, 4217, 4217, 4217, 4217, 4218,    0,
4965      4218,    0,    0, 4218, 4219, 4219, 4219,    0,    0,    0,
4966      4219, 4220, 4220, 4220, 4220,    0,    0, 4220, 4220, 4221,
4967      4221, 4221,    0,    0,    0, 4221, 4222, 4222, 4222, 4222,
4968         0,    0, 4222, 4222, 4223, 4223, 4223,    0,    0,    0,
4969      4223, 4224, 4224, 4224, 4224,    0,    0, 4224, 4224, 4225,
4970      4225, 4225,    0,    0,    0, 4225, 4226, 4226, 4226, 4226,
4971
4972         0,    0, 4226, 4226, 4227, 4227, 4227,    0,    0,    0,
4973      4227, 4228, 4228, 4228, 4228,    0,    0, 4228, 4228, 4229,
4974      4229, 4229,    0,    0,    0, 4229, 4230, 4230, 4230, 4230,
4975         0,    0, 4230, 4230, 4231, 4231, 4231, 4231,    0,    0,
4976      4231, 4231, 4232, 4232, 4232,    0,    0,    0, 4232, 4233,
4977      4233, 4233, 4233,    0,    0, 4233, 4233, 4234, 4234, 4234,
4978         0,    0,    0, 4234, 4235, 4235, 4235, 4235,    0,    0,
4979      4235, 4235, 4236, 4236, 4236,    0,    0,    0, 4236, 4237,
4980      4237, 4237, 4237,    0,    0, 4237, 4237, 4238, 4238, 4238,
4981      4238,    0,    0, 4238, 4238, 4239, 4239, 4239,    0,    0,
4982
4983         0, 4239, 4240, 4240, 4240, 4240,    0,    0, 4240, 4240,
4984      4241, 4241, 4241, 4241,    0, 4241,    0, 4241, 4242, 4242,
4985      4242, 4242,    0,    0, 4242, 4242, 4243, 4243, 4243, 4243,
4986         0, 4243,    0, 4243, 4244, 4244, 4244, 4244,    0,    0,
4987      4244, 4244, 4245, 4245, 4245,    0,    0,    0, 4245, 4246,
4988      4246, 4246, 4246,    0,    0, 4246, 4246, 4247, 4247, 4247,
4989         0,    0,    0, 4247, 4248, 4248, 4248, 4248,    0,    0,
4990      4248, 4248, 4249, 4249, 4249,    0,    0,    0, 4249, 4250,
4991      4250, 4250, 4250,    0,    0, 4250, 4250, 4251, 4251, 4251,
4992      4251,    0, 4251,    0, 4251, 4252, 4252, 4252, 4252,    0,
4993
4994         0, 4252, 4252, 4253, 4253, 4253,    0,    0,    0, 4253,
4995      4254, 4254, 4254, 4254,    0,    0, 4254, 4254, 4255, 4255,
4996      4255,    0,    0,    0, 4255, 4256, 4256, 4256, 4256,    0,
4997         0, 4256, 4256, 4257, 4257, 4257,    0,    0,    0, 4257,
4998      4258, 4258, 4258, 4258,    0,    0, 4258, 4258, 4259, 4259,
4999      4259,    0,    0,    0, 4259, 4260, 4260, 4260, 4260,    0,
5000         0, 4260, 4260, 4261, 4261, 4261,    0,    0,    0, 4261,
5001      4262, 4262, 4262, 4262,    0,    0, 4262, 4262, 4263, 4263,
5002      4263,    0,    0,    0, 4263, 4264, 4264, 4264, 4264,    0,
5003         0, 4264, 4264, 4265, 4265, 4265,    0,    0,    0, 4265,
5004
5005      4266, 4266, 4266, 4266,    0,    0, 4266, 4266, 4267, 4267,
5006      4267,    0,    0,    0, 4267, 4268, 4268, 4268, 4268,    0,
5007         0, 4268, 4268, 4269, 4269, 4269,    0,    0,    0, 4269,
5008      4270, 4270, 4270, 4270,    0,    0, 4270, 4270, 4271, 4271,
5009      4271, 4271,    0, 4271,    0, 4271, 4272, 4272, 4272, 4272,
5010         0,    0, 4272, 4272, 4273, 4273, 4273,    0,    0,    0,
5011      4273, 4274, 4274, 4274, 4274,    0,    0, 4274, 4274, 4275,
5012      4275, 4275,    0,    0,    0, 4275, 4276, 4276, 4276, 4276,
5013         0,    0, 4276, 4276, 4277, 4277, 4277,    0,    0,    0,
5014      4277, 4278, 4278, 4278, 4278,    0,    0, 4278, 4278, 4279,
5015
5016      4279, 4279, 4279, 4279, 4279, 4279, 4279, 4279, 4280, 4280,
5017      4280, 4280, 4280, 4280, 4280, 4280, 4280, 4281, 4281, 4281,
5018         0,    0,    0, 4281, 4282, 4282, 4282,    0,    0,    0,
5019      4282, 4283, 4283, 4283, 4283,    0,    0, 4283, 4283, 4284,
5020      4284, 4284,    0,    0,    0, 4284, 4285, 4285, 4285, 4285,
5021         0,    0, 4285, 4285, 4286, 4286, 4286, 4286,    0, 4286,
5022         0, 4286, 4287, 4287, 4287, 4287,    0,    0, 4287, 4287,
5023      4288, 4288, 4288,    0,    0,    0, 4288, 4289, 4289, 4289,
5024      4289,    0,    0, 4289, 4289, 4290, 4290, 4290,    0,    0,
5025         0, 4290, 4291, 4291, 4291, 4291,    0,    0, 4291, 4291,
5026
5027      4292, 4292, 4292, 4292,    0,    0, 4292, 4292, 4293, 4293,
5028      4293,    0,    0,    0, 4293, 4294, 4294, 4294, 4294,    0,
5029         0, 4294, 4294, 4295, 4295, 4295,    0,    0,    0, 4295,
5030      4296, 4296, 4296, 4296,    0,    0, 4296, 4296, 4297, 4297,
5031      4297, 4297,    0, 4297,    0, 4297, 4298, 4298, 4298, 4298,
5032         0,    0, 4298, 4298, 4299, 4299, 4299, 4299,    0,    0,
5033      4299, 4299, 4300, 4300, 4300,    0,    0,    0, 4300, 4301,
5034      4301, 4301, 4301,    0,    0, 4301, 4301, 4302, 4302, 4302,
5035      4302,    0,    0, 4302, 4302, 4303, 4303, 4303, 4303,    0,
5036         0, 4303, 4303, 4304, 4304, 4304,    0,    0,    0, 4304,
5037
5038      4305, 4305, 4305, 4305,    0,    0, 4305, 4305, 4306, 4306,
5039      4306,    0,    0,    0, 4306, 4307, 4307, 4307, 4307,    0,
5040         0, 4307, 4307, 4308, 4308, 4308, 4308,    0, 4308,    0,
5041      4308, 4309, 4309, 4309, 4309,    0,    0, 4309, 4309, 4310,
5042      4310, 4310,    0,    0,    0, 4310, 4311, 4311, 4311, 4311,
5043         0,    0, 4311, 4311, 4312, 4312, 4312,    0,    0,    0,
5044      4312, 4313, 4313, 4313, 4313,    0,    0, 4313, 4313, 4314,
5045      4314, 4314,    0,    0,    0, 4314, 4315, 4315, 4315, 4315,
5046         0,    0, 4315, 4315, 4316, 4316, 4316,    0,    0,    0,
5047      4316, 4317, 4317, 4317, 4317,    0,    0, 4317, 4317, 4318,
5048
5049      4318, 4318, 4318,    0, 4318,    0, 4318, 4319, 4319, 4319,
5050      4319,    0,    0, 4319, 4319, 4320, 4320, 4320,    0,    0,
5051         0, 4320, 4321, 4321, 4321, 4321,    0,    0, 4321, 4321,
5052      4322, 4322, 4322,    0,    0,    0, 4322, 4323, 4323, 4323,
5053      4323,    0,    0, 4323, 4323, 4324, 4324, 4324,    0,    0,
5054         0, 4324, 4325, 4325, 4325, 4325,    0,    0, 4325, 4325,
5055      4326, 4326, 4326,    0,    0,    0, 4326, 4327, 4327, 4327,
5056      4327,    0,    0, 4327, 4327, 4328, 4328, 4328,    0,    0,
5057         0, 4328, 4329, 4329, 4329, 4329,    0,    0, 4329, 4329,
5058      4330, 4330, 4330,    0,    0,    0, 4330, 4331, 4331, 4331,
5059
5060      4331,    0,    0, 4331, 4331, 4332, 4332, 4332,    0,    0,
5061         0, 4332, 4333, 4333, 4333, 4333,    0,    0, 4333, 4333,
5062      4334, 4334, 4334,    0,    0,    0, 4334, 4335, 4335, 4335,
5063      4335,    0,    0, 4335, 4335, 4336, 4336, 4336,    0,    0,
5064         0, 4336, 4337, 4337, 4337, 4337,    0,    0, 4337, 4337,
5065      4338, 4338, 4338, 4338, 4338, 4338, 4338, 4338, 4338, 4339,
5066      4339, 4339, 4339, 4339, 4339, 4339, 4339, 4339, 4340, 4340,
5067      4340,    0,    0,    0, 4340, 4341, 4341, 4341, 4341,    0,
5068      4341,    0, 4341, 4342, 4342, 4342, 4342,    0,    0, 4342,
5069      4342, 4343, 4343, 4343,    0,    0,    0, 4343, 4344, 4344,
5070
5071      4344, 4344,    0,    0, 4344, 4344, 4345, 4345, 4345, 4345,
5072         0,    0, 4345, 4345, 4346, 4346, 4346,    0,    0,    0,
5073      4346, 4347, 4347, 4347, 4347,    0,    0, 4347, 4347, 4348,
5074      4348, 4348, 4348,    0, 4348,    0, 4348, 4349, 4349, 4349,
5075      4349,    0,    0, 4349, 4349, 4350, 4350, 4350, 4350,    0,
5076         0, 4350, 4350, 4351, 4351, 4351, 4351,    0, 4351,    0,
5077      4351, 4352, 4352, 4352, 4352,    0,    0, 4352, 4352, 4353,
5078      4353, 4353, 4353,    0, 4353,    0, 4353, 4354, 4354, 4354,
5079      4354,    0,    0, 4354, 4354, 4355, 4355, 4355, 4355,    0,
5080      4355,    0, 4355, 4356, 4356, 4356, 4356,    0,    0, 4356,
5081
5082      4356, 4357, 4357, 4357, 4357,    0,    0, 4357, 4357, 4358,
5083      4358, 4358,    0,    0,    0, 4358, 4359, 4359, 4359, 4359,
5084         0,    0, 4359, 4359, 4360, 4360, 4360, 4360,    0,    0,
5085      4360, 4360, 4361, 4361, 4361, 4361,    0,    0, 4361, 4361,
5086      4362, 4362, 4362,    0,    0,    0, 4362, 4363, 4363, 4363,
5087      4363,    0,    0, 4363, 4363, 4364, 4364, 4364,    0,    0,
5088         0, 4364, 4365, 4365, 4365, 4365,    0,    0, 4365, 4365,
5089      4366, 4366, 4366, 4366,    0,    0, 4366, 4366, 4367, 4367,
5090      4367,    0,    0,    0, 4367, 4368, 4368, 4368, 4368,    0,
5091         0, 4368, 4368, 4369, 4369, 4369,    0,    0,    0, 4369,
5092
5093      4370, 4370, 4370, 4370,    0,    0, 4370, 4370, 4371, 4371,
5094      4371,    0,    0,    0, 4371, 4372, 4372, 4372, 4372,    0,
5095         0, 4372, 4372, 4373, 4373, 4373,    0,    0,    0, 4373,
5096      4374, 4374, 4374, 4374,    0,    0, 4374, 4374, 4375, 4375,
5097      4375, 4375,    0,    0, 4375, 4375, 4376, 4376, 4376,    0,
5098         0,    0, 4376, 4377, 4377, 4377, 4377,    0,    0, 4377,
5099      4377, 4378, 4378, 4378,    0,    0,    0, 4378, 4379, 4379,
5100      4379, 4379,    0,    0, 4379, 4379, 4380, 4380, 4380,    0,
5101         0,    0, 4380, 4381, 4381, 4381, 4381,    0,    0, 4381,
5102      4381, 4382, 4382, 4382, 4382,    0, 4382,    0, 4382, 4383,
5103
5104      4383, 4383, 4383,    0,    0, 4383, 4383, 4384, 4384, 4384,
5105         0,    0,    0, 4384, 4385, 4385, 4385, 4385,    0,    0,
5106      4385, 4385, 4386, 4386, 4386,    0,    0,    0, 4386, 4387,
5107      4387, 4387, 4387,    0,    0, 4387, 4387, 4388, 4388, 4388,
5108         0,    0,    0, 4388, 4389, 4389, 4389, 4389,    0,    0,
5109      4389, 4389, 4390, 4390, 4390,    0,    0,    0, 4390, 4391,
5110      4391, 4391, 4391,    0,    0, 4391, 4391, 4392, 4392, 4392,
5111      4392,    0, 4392,    0, 4392, 4393, 4393, 4393, 4393,    0,
5112         0, 4393, 4393, 4394, 4394, 4394, 4394, 4394, 4394, 4394,
5113      4394, 4394, 4395, 4395, 4395, 4395, 4395, 4395, 4395, 4395,
5114
5115      4395, 4396, 4396, 4396, 4396,    0, 4396,    0, 4396, 4397,
5116      4397, 4397,    0,    0,    0, 4397, 4398, 4398, 4398, 4398,
5117         0,    0, 4398, 4398, 4399, 4399, 4399,    0,    0,    0,
5118      4399, 4400, 4400, 4400, 4400,    0,    0, 4400, 4400, 4401,
5119      4401, 4401, 4401,    0,    0, 4401, 4401, 4402, 4402, 4402,
5120         0,    0,    0, 4402, 4403, 4403, 4403, 4403,    0,    0,
5121      4403, 4403, 4404, 4404, 4404, 4404,    0,    0, 4404, 4404,
5122      4405, 4405, 4405, 4405,    0,    0, 4405, 4405, 4406, 4406,
5123      4406, 4406,    0,    0, 4406, 4406, 4407, 4407, 4407, 4407,
5124         0, 4407,    0, 4407, 4408, 4408, 4408, 4408,    0,    0,
5125
5126      4408, 4408, 4409, 4409, 4409,    0,    0,    0, 4409, 4410,
5127      4410, 4410, 4410,    0,    0, 4410, 4410, 4411, 4411, 4411,
5128      4411,    0,    0, 4411, 4411, 4412, 4412, 4412,    0,    0,
5129         0, 4412, 4413, 4413, 4413, 4413,    0,    0, 4413, 4413,
5130      4414, 4414, 4414, 4414,    0,    0, 4414, 4414, 4415, 4415,
5131      4415,    0,    0,    0, 4415, 4416, 4416, 4416,    0,    0,
5132         0, 4416, 4417, 4417, 4417, 4417,    0,    0, 4417, 4417,
5133      4418, 4418, 4418, 4418,    0,    0, 4418, 4418, 4419, 4419,
5134      4419,    0,    0,    0, 4419, 4420, 4420, 4420, 4420,    0,
5135         0, 4420, 4420, 4421, 4421, 4421,    0,    0,    0, 4421,
5136
5137      4422, 4422, 4422, 4422,    0, 4422,    0, 4422, 4423, 4423,
5138      4423, 4423,    0,    0, 4423, 4423, 4424, 4424, 4424,    0,
5139         0,    0, 4424, 4425, 4425, 4425, 4425,    0,    0, 4425,
5140      4425, 4426, 4426, 4426,    0,    0,    0, 4426, 4427, 4427,
5141      4427, 4427,    0,    0, 4427, 4427, 4428, 4428, 4428,    0,
5142         0,    0, 4428, 4429, 4429, 4429, 4429,    0,    0, 4429,
5143      4429, 4430, 4430, 4430,    0,    0,    0, 4430, 4431, 4431,
5144      4431, 4431,    0,    0, 4431, 4431, 4432, 4432, 4432, 4432,
5145         0, 4432,    0, 4432, 4433, 4433, 4433, 4433,    0,    0,
5146      4433, 4433, 4434, 4434, 4434, 4434,    0, 4434,    0, 4434,
5147
5148      4435, 4435, 4435, 4435,    0,    0, 4435, 4435, 4436, 4436,
5149      4436,    0,    0,    0, 4436, 4437, 4437, 4437, 4437,    0,
5150         0, 4437, 4437, 4438, 4438, 4438, 4438,    0, 4438,    0,
5151      4438, 4439, 4439, 4439, 4439,    0,    0, 4439, 4439, 4440,
5152      4440, 4440, 4440,    0, 4440,    0, 4440, 4441, 4441, 4441,
5153         0,    0,    0, 4441, 4442, 4442, 4442, 4442,    0,    0,
5154      4442, 4442, 4443, 4443, 4443, 4443, 4443, 4443, 4443, 4443,
5155      4443, 4444, 4444, 4444, 4444, 4444, 4444, 4444, 4444, 4444,
5156      4445, 4445, 4445,    0,    0,    0, 4445, 4446, 4446, 4446,
5157      4446,    0,    0, 4446, 4446, 4447, 4447, 4447, 4447,    0,
5158
5159      4447,    0, 4447, 4448, 4448, 4448, 4448,    0,    0, 4448,
5160      4448, 4449, 4449, 4449,    0,    0,    0, 4449, 4450, 4450,
5161      4450, 4450,    0,    0, 4450, 4450, 4451, 4451, 4451, 4451,
5162         0,    0, 4451, 4451, 4452, 4452, 4452, 4452,    0,    0,
5163      4452, 4452, 4453, 4453, 4453, 4453,    0,    0, 4453, 4453,
5164      4454, 4454, 4454, 4454,    0,    0, 4454, 4454, 4455, 4455,
5165      4455,    0,    0,    0, 4455, 4456, 4456, 4456, 4456,    0,
5166         0, 4456, 4456, 4457, 4457, 4457, 4457,    0,    0, 4457,
5167      4457, 4458, 4458, 4458,    0,    0,    0, 4458, 4459, 4459,
5168      4459, 4459,    0,    0, 4459, 4459, 4460, 4460, 4460, 4460,
5169
5170         0,    0, 4460, 4460, 4461, 4461, 4461,    0,    0,    0,
5171      4461, 4462, 4462, 4462,    0,    0,    0, 4462, 4463, 4463,
5172      4463, 4463,    0,    0, 4463, 4463, 4464, 4464, 4464, 4464,
5173         0,    0, 4464, 4464, 4465, 4465, 4465,    0,    0,    0,
5174      4465, 4466, 4466, 4466,    0,    0,    0, 4466, 4467, 4467,
5175      4467, 4467,    0,    0, 4467, 4467, 4468, 4468, 4468, 4468,
5176         0, 4468,    0, 4468, 4469, 4469, 4469, 4469,    0,    0,
5177      4469, 4469, 4470, 4470, 4470,    0,    0,    0, 4470, 4471,
5178      4471, 4471, 4471,    0,    0, 4471, 4471, 4472, 4472, 4472,
5179         0,    0,    0, 4472, 4473, 4473, 4473,    0,    0,    0,
5180
5181      4473, 4474, 4474, 4474, 4474,    0,    0, 4474, 4474, 4475,
5182      4475, 4475, 4475,    0,    0, 4475, 4475, 4476, 4476, 4476,
5183      4476,    0,    0, 4476, 4476, 4477, 4477, 4477,    0,    0,
5184         0, 4477, 4478, 4478, 4478, 4478,    0,    0, 4478, 4478,
5185      4479, 4479, 4479,    0,    0,    0, 4479, 4480, 4480, 4480,
5186      4480,    0,    0, 4480, 4480, 4481, 4481, 4481, 4481, 4481,
5187      4481, 4481, 4481, 4481, 4482, 4482, 4482, 4482, 4482, 4482,
5188      4482, 4482, 4482, 4483, 4483, 4483,    0,    0,    0, 4483,
5189      4484, 4484, 4484, 4484,    0,    0, 4484, 4484, 4485, 4485,
5190      4485, 4485,    0, 4485,    0, 4485, 4486, 4486, 4486, 4486,
5191
5192         0,    0, 4486, 4486, 4487, 4487, 4487, 4487,    0, 4487,
5193         0, 4487, 4488, 4488, 4488, 4488,    0,    0, 4488, 4488,
5194      4489, 4489, 4489, 4489,    0,    0, 4489, 4489, 4490, 4490,
5195      4490, 4490,    0,    0, 4490, 4490, 4491, 4491, 4491, 4491,
5196         0,    0, 4491, 4491, 4492, 4492, 4492, 4492,    0,    0,
5197      4492, 4492, 4493, 4493, 4493,    0,    0,    0, 4493, 4494,
5198      4494, 4494, 4494,    0,    0, 4494, 4494, 4495, 4495, 4495,
5199         0,    0,    0, 4495, 4496, 4496, 4496, 4496,    0,    0,
5200      4496, 4496, 4497, 4497, 4497, 4497,    0,    0, 4497, 4497,
5201      4498, 4498, 4498, 4498,    0, 4498,    0, 4498, 4499, 4499,
5202
5203      4499, 4499,    0, 4499,    0, 4499, 4500, 4500, 4500, 4500,
5204         0,    0, 4500, 4500, 4501, 4501, 4501, 4501,    0,    0,
5205      4501, 4501, 4502, 4502, 4502, 4502,    0, 4502,    0, 4502,
5206      4503, 4503, 4503,    0,    0,    0, 4503, 4504, 4504, 4504,
5207      4504,    0,    0, 4504, 4504, 4505, 4505, 4505, 4505,    0,
5208      4505,    0, 4505, 4506, 4506, 4506, 4506,    0,    0, 4506,
5209      4506, 4507, 4507, 4507, 4507,    0, 4507,    0, 4507, 4508,
5210      4508, 4508,    0,    0,    0, 4508, 4509, 4509, 4509,    0,
5211         0,    0, 4509, 4510, 4510, 4510, 4510,    0,    0, 4510,
5212      4510, 4511, 4511, 4511, 4511,    0,    0, 4511, 4511, 4512,
5213
5214      4512, 4512,    0,    0,    0, 4512, 4513, 4513, 4513, 4513,
5215         0,    0, 4513, 4513, 4514, 4514, 4514,    0,    0,    0,
5216      4514, 4515, 4515, 4515, 4515,    0,    0, 4515, 4515, 4516,
5217      4516, 4516, 4516, 4516, 4516, 4516, 4516, 4516, 4517, 4517,
5218      4517, 4517, 4517, 4517, 4517, 4517, 4517, 4518, 4518, 4518,
5219         0,    0,    0, 4518, 4519, 4519, 4519, 4519,    0, 4519,
5220         0, 4519, 4520, 4520, 4520, 4520,    0,    0, 4520, 4520,
5221      4521, 4521, 4521, 4521,    0,    0, 4521, 4521, 4522, 4522,
5222      4522, 4522,    0,    0, 4522, 4522, 4523, 4523, 4523, 4523,
5223         0,    0, 4523, 4523, 4524, 4524, 4524, 4524,    0,    0,
5224
5225      4524, 4524, 4525, 4525, 4525,    0,    0,    0, 4525, 4526,
5226      4526, 4526,    0,    0,    0, 4526, 4527, 4527, 4527, 4527,
5227         0,    0, 4527, 4527, 4528, 4528, 4528,    0,    0,    0,
5228      4528, 4529, 4529, 4529, 4529,    0,    0, 4529, 4529, 4530,
5229      4530, 4530, 4530,    0,    0, 4530, 4530, 4531, 4531, 4531,
5230         0,    0,    0, 4531, 4532, 4532, 4532, 4532,    0,    0,
5231      4532, 4532, 4533, 4533, 4533, 4533,    0, 4533,    0, 4533,
5232      4534, 4534, 4534,    0,    0,    0, 4534, 4535, 4535, 4535,
5233         0,    0,    0, 4535, 4536, 4536, 4536,    0,    0,    0,
5234      4536, 4537, 4537, 4537, 4537, 4537, 4537, 4537, 4537, 4537,
5235
5236      4538, 4538, 4538, 4538, 4538, 4538, 4538, 4538, 4538, 4539,
5237      4539, 4539, 4539, 4539, 4539, 4539, 4539, 4539, 4540, 4540,
5238      4540, 4540, 4540, 4540, 4540, 4540, 4540, 4541, 4541, 4541,
5239      4541, 4541, 4541, 4541, 4541, 4541, 4542, 4542, 4542, 4542,
5240      4542, 4542, 4542, 4542, 4542, 3990, 3990, 3990, 3990, 3990,
5241      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
5242      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
5243      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
5244      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
5245      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
5246
5247      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
5248      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
5249      3990
5250     } ;
5251
5252 /* Table of booleans, true if rule could match eol. */
5253 static const flex_int32_t yy_rule_can_match_eol[664] =
5254     {   0,
5255 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
5256     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5257     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5258     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
5259     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 
5260     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
5261     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
5262     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
5263     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5264     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5265     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5266     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5267     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
5268     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
5269     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
5270     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5271     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
5272     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
5273     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
5274     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
5275     0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
5276     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
5277     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5278     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
5279     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
5280     1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
5281     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
5282     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
5283     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
5284     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5285     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
5286     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
5287     1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 
5288     0, 0, 1, 0,     };
5289
5290 static yy_state_type yy_last_accepting_state;
5291 static char *yy_last_accepting_cpos;
5292
5293 extern int yy_flex_debug;
5294 int yy_flex_debug = 0;
5295
5296 /* The intent behind this definition is that it'll catch
5297  * any uses of REJECT which flex missed.
5298  */
5299 #define REJECT reject_used_but_not_detected
5300 #define yymore() yymore_used_but_not_detected
5301 #define YY_MORE_ADJ 0
5302 #define YY_RESTORE_YY_MORE_OFFSET
5303 char *yytext;
5304 /* Validating XML processor for src/surf/xml/simgrid.dtd.
5305  *
5306  * This program was generated with the FleXML XML processor generator.
5307  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
5308  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
5309  * (1.9.6).
5310  * 
5311  * There are two, intertwined parts to this program, part A and part B.
5312  *
5313  * Part A
5314  * ------
5315  * 
5316  * Some parts, here collectively called "Part A", are found in the 
5317  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
5318  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
5319  *
5320  * You can redistribute, use, perform, display and/or modify "Part A"
5321  * provided the following two conditions hold:
5322  *
5323  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
5324  *    FleXML; without even the implied warranty of MERCHANTABILITY or
5325  *    FITNESS FOR A PARTICULAR PURPOSE.
5326  *
5327  * 2. The program distribution conditions do not in any way affect the
5328  *    distribution conditions of the FleXML system used to generate this
5329  *    file or any version of FleXML derived from that system.
5330  *
5331  * Notice that these are explicit rights granted to you for files
5332  * generated by the FleXML system.  For your rights in connection with
5333  * the FleXML system itself please consult the GNU General Public License.
5334  * 
5335  * Part B
5336  * ------
5337  * 
5338  * The other parts, here collectively called "Part B", and which came 
5339  * from the DTD used by FleXML to generate this program, can be 
5340  * distributed (or not, as the case may be) under the terms of whoever
5341  * wrote them, provided these terms respect and obey the two conditions 
5342  * above under the heading "Part A".
5343  *
5344  * The author of and contributors to FleXML specifically disclaim
5345  * any copyright interest in "Part B", unless "Part B" was written 
5346  * by the author of or contributors to FleXML.
5347  * 
5348  */
5349
5350 /* Version strings. */
5351 const char surfxml_flexml_version[] = "1.9.6";
5352
5353 /* ANSI headers. */
5354 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
5355 #include <stdio.h>
5356 #include <string.h>
5357 #include <assert.h>
5358 #include <stdarg.h>
5359 #include <ctype.h>
5360      
5361 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5362 # ifndef __STRICT_ANSI__
5363 #  include <io.h>
5364 #  include <process.h>
5365 # endif
5366 #else
5367 # include <unistd.h>
5368 #endif
5369      
5370 #ifndef FLEXML_INDEXSTACKSIZE
5371 #define FLEXML_INDEXSTACKSIZE 1000
5372 #endif
5373
5374 /* Generated definitions. */
5375 #define FLEXML_yylineno
5376 #ifndef FLEXML_BUFFERSTACKSIZE
5377 #define FLEXML_BUFFERSTACKSIZE 1000000
5378 #endif
5379 #define FLEXML_NEED_BUFFERLIT
5380
5381 /* XML processor api. */
5382 /* FleXML-provided data. */
5383 int surfxml_pcdata_ix;
5384 extern char *surfxml_bufferstack;
5385 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
5386 AT_surfxml_AS_id AX_surfxml_AS_id;
5387 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
5388 short int surfxml_AS_id_isset;
5389 AT_surfxml_AS_routing AX_surfxml_AS_routing;
5390 #define A_surfxml_AS_routing AX_surfxml_AS_routing
5391 short int surfxml_AS_routing_isset;
5392 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
5393 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
5394 short int surfxml_ASroute_dst_isset;
5395 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
5396 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
5397 short int surfxml_ASroute_gw___dst_isset;
5398 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
5399 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
5400 short int surfxml_ASroute_gw___src_isset;
5401 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
5402 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
5403 short int surfxml_ASroute_src_isset;
5404 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
5405 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
5406 short int surfxml_ASroute_symmetrical_isset;
5407 AT_surfxml_actor_function AX_surfxml_actor_function;
5408 #define A_surfxml_actor_function (surfxml_bufferstack + AX_surfxml_actor_function)
5409 short int surfxml_actor_function_isset;
5410 AT_surfxml_actor_host AX_surfxml_actor_host;
5411 #define A_surfxml_actor_host (surfxml_bufferstack + AX_surfxml_actor_host)
5412 short int surfxml_actor_host_isset;
5413 AT_surfxml_actor_kill___time AX_surfxml_actor_kill___time;
5414 #define A_surfxml_actor_kill___time (surfxml_bufferstack + AX_surfxml_actor_kill___time)
5415 short int surfxml_actor_kill___time_isset;
5416 AT_surfxml_actor_on___failure AX_surfxml_actor_on___failure;
5417 #define A_surfxml_actor_on___failure AX_surfxml_actor_on___failure
5418 short int surfxml_actor_on___failure_isset;
5419 AT_surfxml_actor_start___time AX_surfxml_actor_start___time;
5420 #define A_surfxml_actor_start___time (surfxml_bufferstack + AX_surfxml_actor_start___time)
5421 short int surfxml_actor_start___time_isset;
5422 AT_surfxml_argument_value AX_surfxml_argument_value;
5423 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
5424 short int surfxml_argument_value_isset;
5425 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
5426 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
5427 short int surfxml_backbone_bandwidth_isset;
5428 AT_surfxml_backbone_id AX_surfxml_backbone_id;
5429 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
5430 short int surfxml_backbone_id_isset;
5431 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
5432 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
5433 short int surfxml_backbone_latency_isset;
5434 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
5435 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
5436 short int surfxml_bypassASroute_dst_isset;
5437 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
5438 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
5439 short int surfxml_bypassASroute_gw___dst_isset;
5440 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
5441 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
5442 short int surfxml_bypassASroute_gw___src_isset;
5443 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
5444 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
5445 short int surfxml_bypassASroute_src_isset;
5446 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
5447 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
5448 short int surfxml_bypassRoute_dst_isset;
5449 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
5450 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
5451 short int surfxml_bypassRoute_src_isset;
5452 AT_surfxml_bypassZoneRoute_dst AX_surfxml_bypassZoneRoute_dst;
5453 #define A_surfxml_bypassZoneRoute_dst (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_dst)
5454 short int surfxml_bypassZoneRoute_dst_isset;
5455 AT_surfxml_bypassZoneRoute_gw___dst AX_surfxml_bypassZoneRoute_gw___dst;
5456 #define A_surfxml_bypassZoneRoute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_gw___dst)
5457 short int surfxml_bypassZoneRoute_gw___dst_isset;
5458 AT_surfxml_bypassZoneRoute_gw___src AX_surfxml_bypassZoneRoute_gw___src;
5459 #define A_surfxml_bypassZoneRoute_gw___src (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_gw___src)
5460 short int surfxml_bypassZoneRoute_gw___src_isset;
5461 AT_surfxml_bypassZoneRoute_src AX_surfxml_bypassZoneRoute_src;
5462 #define A_surfxml_bypassZoneRoute_src (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_src)
5463 short int surfxml_bypassZoneRoute_src_isset;
5464 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
5465 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
5466 short int surfxml_cabinet_bw_isset;
5467 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
5468 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
5469 short int surfxml_cabinet_id_isset;
5470 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
5471 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
5472 short int surfxml_cabinet_lat_isset;
5473 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
5474 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
5475 short int surfxml_cabinet_prefix_isset;
5476 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
5477 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
5478 short int surfxml_cabinet_radical_isset;
5479 AT_surfxml_cabinet_speed AX_surfxml_cabinet_speed;
5480 #define A_surfxml_cabinet_speed (surfxml_bufferstack + AX_surfxml_cabinet_speed)
5481 short int surfxml_cabinet_speed_isset;
5482 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
5483 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
5484 short int surfxml_cabinet_suffix_isset;
5485 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
5486 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
5487 short int surfxml_cluster_bb___bw_isset;
5488 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
5489 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
5490 short int surfxml_cluster_bb___lat_isset;
5491 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
5492 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
5493 short int surfxml_cluster_bb___sharing___policy_isset;
5494 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
5495 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
5496 short int surfxml_cluster_bw_isset;
5497 AT_surfxml_cluster_core AX_surfxml_cluster_core;
5498 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
5499 short int surfxml_cluster_core_isset;
5500 AT_surfxml_cluster_id AX_surfxml_cluster_id;
5501 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
5502 short int surfxml_cluster_id_isset;
5503 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
5504 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
5505 short int surfxml_cluster_lat_isset;
5506 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
5507 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
5508 short int surfxml_cluster_limiter___link_isset;
5509 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
5510 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
5511 short int surfxml_cluster_loopback___bw_isset;
5512 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
5513 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
5514 short int surfxml_cluster_loopback___lat_isset;
5515 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
5516 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
5517 short int surfxml_cluster_prefix_isset;
5518 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
5519 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
5520 short int surfxml_cluster_radical_isset;
5521 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
5522 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
5523 short int surfxml_cluster_router___id_isset;
5524 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
5525 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
5526 short int surfxml_cluster_sharing___policy_isset;
5527 AT_surfxml_cluster_speed AX_surfxml_cluster_speed;
5528 #define A_surfxml_cluster_speed (surfxml_bufferstack + AX_surfxml_cluster_speed)
5529 short int surfxml_cluster_speed_isset;
5530 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
5531 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
5532 short int surfxml_cluster_suffix_isset;
5533 AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
5534 #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
5535 short int surfxml_cluster_topo___parameters_isset;
5536 AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
5537 #define A_surfxml_cluster_topology AX_surfxml_cluster_topology
5538 short int surfxml_cluster_topology_isset;
5539 AT_surfxml_config_id AX_surfxml_config_id;
5540 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
5541 short int surfxml_config_id_isset;
5542 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
5543 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
5544 short int surfxml_host_availability___file_isset;
5545 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
5546 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
5547 short int surfxml_host_coordinates_isset;
5548 AT_surfxml_host_core AX_surfxml_host_core;
5549 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
5550 short int surfxml_host_core_isset;
5551 AT_surfxml_host_id AX_surfxml_host_id;
5552 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
5553 short int surfxml_host_id_isset;
5554 AT_surfxml_host_pstate AX_surfxml_host_pstate;
5555 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
5556 short int surfxml_host_pstate_isset;
5557 AT_surfxml_host_speed AX_surfxml_host_speed;
5558 #define A_surfxml_host_speed (surfxml_bufferstack + AX_surfxml_host_speed)
5559 short int surfxml_host_speed_isset;
5560 AT_surfxml_host_state___file AX_surfxml_host_state___file;
5561 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
5562 short int surfxml_host_state___file_isset;
5563 AT_surfxml_host___link_down AX_surfxml_host___link_down;
5564 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
5565 short int surfxml_host___link_down_isset;
5566 AT_surfxml_host___link_id AX_surfxml_host___link_id;
5567 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
5568 short int surfxml_host___link_id_isset;
5569 AT_surfxml_host___link_up AX_surfxml_host___link_up;
5570 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
5571 short int surfxml_host___link_up_isset;
5572 AT_surfxml_include_file AX_surfxml_include_file;
5573 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
5574 short int surfxml_include_file_isset;
5575 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
5576 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
5577 short int surfxml_link_bandwidth_isset;
5578 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
5579 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
5580 short int surfxml_link_bandwidth___file_isset;
5581 AT_surfxml_link_id AX_surfxml_link_id;
5582 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
5583 short int surfxml_link_id_isset;
5584 AT_surfxml_link_latency AX_surfxml_link_latency;
5585 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
5586 short int surfxml_link_latency_isset;
5587 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
5588 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
5589 short int surfxml_link_latency___file_isset;
5590 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
5591 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
5592 short int surfxml_link_sharing___policy_isset;
5593 AT_surfxml_link_state___file AX_surfxml_link_state___file;
5594 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
5595 short int surfxml_link_state___file_isset;
5596 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
5597 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
5598 short int surfxml_link___ctn_direction_isset;
5599 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
5600 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
5601 short int surfxml_link___ctn_id_isset;
5602 AT_surfxml_model___prop_id AX_surfxml_model___prop_id;
5603 #define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
5604 short int surfxml_model___prop_id_isset;
5605 AT_surfxml_model___prop_value AX_surfxml_model___prop_value;
5606 #define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value)
5607 short int surfxml_model___prop_value_isset;
5608 AT_surfxml_mount_name AX_surfxml_mount_name;
5609 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
5610 short int surfxml_mount_name_isset;
5611 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
5612 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
5613 short int surfxml_mount_storageId_isset;
5614 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
5615 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
5616 short int surfxml_peer_availability___file_isset;
5617 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
5618 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
5619 short int surfxml_peer_bw___in_isset;
5620 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
5621 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
5622 short int surfxml_peer_bw___out_isset;
5623 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
5624 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
5625 short int surfxml_peer_coordinates_isset;
5626 AT_surfxml_peer_id AX_surfxml_peer_id;
5627 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
5628 short int surfxml_peer_id_isset;
5629 AT_surfxml_peer_lat AX_surfxml_peer_lat;
5630 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
5631 short int surfxml_peer_lat_isset;
5632 AT_surfxml_peer_speed AX_surfxml_peer_speed;
5633 #define A_surfxml_peer_speed (surfxml_bufferstack + AX_surfxml_peer_speed)
5634 short int surfxml_peer_speed_isset;
5635 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
5636 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
5637 short int surfxml_peer_state___file_isset;
5638 AT_surfxml_platform_version AX_surfxml_platform_version;
5639 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
5640 short int surfxml_platform_version_isset;
5641 AT_surfxml_process_function AX_surfxml_process_function;
5642 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
5643 short int surfxml_process_function_isset;
5644 AT_surfxml_process_host AX_surfxml_process_host;
5645 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
5646 short int surfxml_process_host_isset;
5647 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
5648 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
5649 short int surfxml_process_kill___time_isset;
5650 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
5651 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
5652 short int surfxml_process_on___failure_isset;
5653 AT_surfxml_process_start___time AX_surfxml_process_start___time;
5654 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
5655 short int surfxml_process_start___time_isset;
5656 AT_surfxml_prop_id AX_surfxml_prop_id;
5657 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
5658 short int surfxml_prop_id_isset;
5659 AT_surfxml_prop_value AX_surfxml_prop_value;
5660 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
5661 short int surfxml_prop_value_isset;
5662 AT_surfxml_random_generator AX_surfxml_random_generator;
5663 #define A_surfxml_random_generator AX_surfxml_random_generator
5664 short int surfxml_random_generator_isset;
5665 AT_surfxml_random_id AX_surfxml_random_id;
5666 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
5667 short int surfxml_random_id_isset;
5668 AT_surfxml_random_max AX_surfxml_random_max;
5669 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
5670 short int surfxml_random_max_isset;
5671 AT_surfxml_random_mean AX_surfxml_random_mean;
5672 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
5673 short int surfxml_random_mean_isset;
5674 AT_surfxml_random_min AX_surfxml_random_min;
5675 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
5676 short int surfxml_random_min_isset;
5677 AT_surfxml_random_radical AX_surfxml_random_radical;
5678 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
5679 short int surfxml_random_radical_isset;
5680 AT_surfxml_random_seed AX_surfxml_random_seed;
5681 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
5682 short int surfxml_random_seed_isset;
5683 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
5684 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
5685 short int surfxml_random_std___deviation_isset;
5686 AT_surfxml_route_dst AX_surfxml_route_dst;
5687 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
5688 short int surfxml_route_dst_isset;
5689 AT_surfxml_route_src AX_surfxml_route_src;
5690 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
5691 short int surfxml_route_src_isset;
5692 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
5693 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
5694 short int surfxml_route_symmetrical_isset;
5695 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
5696 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
5697 short int surfxml_router_coordinates_isset;
5698 AT_surfxml_router_id AX_surfxml_router_id;
5699 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
5700 short int surfxml_router_id_isset;
5701 AT_surfxml_storage_attach AX_surfxml_storage_attach;
5702 #define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
5703 short int surfxml_storage_attach_isset;
5704 AT_surfxml_storage_content AX_surfxml_storage_content;
5705 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
5706 short int surfxml_storage_content_isset;
5707 AT_surfxml_storage_id AX_surfxml_storage_id;
5708 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
5709 short int surfxml_storage_id_isset;
5710 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
5711 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
5712 short int surfxml_storage_typeId_isset;
5713 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
5714 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
5715 short int surfxml_storage___type_content_isset;
5716 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
5717 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
5718 short int surfxml_storage___type_id_isset;
5719 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
5720 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
5721 short int surfxml_storage___type_model_isset;
5722 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
5723 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
5724 short int surfxml_storage___type_size_isset;
5725 AT_surfxml_trace_file AX_surfxml_trace_file;
5726 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
5727 short int surfxml_trace_file_isset;
5728 AT_surfxml_trace_id AX_surfxml_trace_id;
5729 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
5730 short int surfxml_trace_id_isset;
5731 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
5732 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
5733 short int surfxml_trace_periodicity_isset;
5734 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
5735 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
5736 short int surfxml_trace___connect_element_isset;
5737 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
5738 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
5739 short int surfxml_trace___connect_kind_isset;
5740 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
5741 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
5742 short int surfxml_trace___connect_trace_isset;
5743 AT_surfxml_zone_id AX_surfxml_zone_id;
5744 #define A_surfxml_zone_id (surfxml_bufferstack + AX_surfxml_zone_id)
5745 short int surfxml_zone_id_isset;
5746 AT_surfxml_zone_routing AX_surfxml_zone_routing;
5747 #define A_surfxml_zone_routing AX_surfxml_zone_routing
5748 short int surfxml_zone_routing_isset;
5749 AT_surfxml_zoneRoute_dst AX_surfxml_zoneRoute_dst;
5750 #define A_surfxml_zoneRoute_dst (surfxml_bufferstack + AX_surfxml_zoneRoute_dst)
5751 short int surfxml_zoneRoute_dst_isset;
5752 AT_surfxml_zoneRoute_gw___dst AX_surfxml_zoneRoute_gw___dst;
5753 #define A_surfxml_zoneRoute_gw___dst (surfxml_bufferstack + AX_surfxml_zoneRoute_gw___dst)
5754 short int surfxml_zoneRoute_gw___dst_isset;
5755 AT_surfxml_zoneRoute_gw___src AX_surfxml_zoneRoute_gw___src;
5756 #define A_surfxml_zoneRoute_gw___src (surfxml_bufferstack + AX_surfxml_zoneRoute_gw___src)
5757 short int surfxml_zoneRoute_gw___src_isset;
5758 AT_surfxml_zoneRoute_src AX_surfxml_zoneRoute_src;
5759 #define A_surfxml_zoneRoute_src (surfxml_bufferstack + AX_surfxml_zoneRoute_src)
5760 short int surfxml_zoneRoute_src_isset;
5761 AT_surfxml_zoneRoute_symmetrical AX_surfxml_zoneRoute_symmetrical;
5762 #define A_surfxml_zoneRoute_symmetrical AX_surfxml_zoneRoute_symmetrical
5763 short int surfxml_zoneRoute_symmetrical_isset;
5764
5765 /* XML state. */
5766 #ifdef FLEX_DEBUG
5767 # define ENTER(state)   debug_enter(state,#state)
5768 # define LEAVE          debug_leave()
5769 # define SET(state)     debug_set(state,#state)
5770   static void debug_enter(int, const char*);
5771   static void debug_leave(void);
5772   static void debug_set(int, const char*);
5773 #else
5774 # define ENTER(state)   (yy_push_state(state))
5775 # define LEAVE          (yy_pop_state())
5776 # define SET(state)     BEGIN(state)
5777 #endif
5778
5779 /* Generic actions. */
5780 #define SKIP    /*skip*/
5781 #define SUCCEED        CLEANUP; return 0
5782
5783 #define FAIL    return fail
5784 static int fail(const char*, ...);
5785
5786 enum {flexml_max_err_msg_size = 512};
5787 static char flexml_err_msg[flexml_max_err_msg_size];
5788 const char * surfxml_parse_err_msg()
5789 {
5790     return flexml_err_msg;
5791 }
5792 static void reset_surfxml_parse_err_msg()
5793 {
5794     flexml_err_msg[0] = '\0';
5795 }
5796
5797 /* Cleanup */
5798 static void cleanup(void);
5799 #define CLEANUP  cleanup()
5800
5801 /* Text buffer stack handling. */
5802 char *surfxml_bufferstack = NULL;
5803 static int blimit = FLEXML_BUFFERSTACKSIZE;
5804 static int bnext = 1;
5805
5806 static int *indexstack = NULL;
5807 static int ilimit = FLEXML_INDEXSTACKSIZE;
5808 static int inext = 1;
5809
5810 #define BUFFERSET(P)  (P = bnext)
5811 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
5812 #define BUFFERDONE    (BUFFERPUTC('\0'))
5813
5814 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), yytext)
5815
5816 /* after this is called, there are at least 2 slots left in the stack */
5817 static int ck_blimit()
5818 {
5819      if (bnext >= blimit) {
5820          blimit += FLEXML_BUFFERSTACKSIZE + 2;
5821          {
5822              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
5823              assert(temp);
5824              surfxml_bufferstack = temp;
5825          }
5826      }
5827      return 0;
5828 }
5829
5830 /* after this is called, there are at least 2 slots left in the stack */
5831 static int ck_ilimit()
5832 {
5833      if (inext >= ilimit) {
5834          ilimit += FLEXML_INDEXSTACKSIZE + 2;
5835          {
5836              int *temp = (int *) realloc(indexstack, ilimit);
5837              assert(temp);
5838              indexstack = temp;
5839          }
5840      }
5841      return 0;
5842 }
5843
5844 #ifdef FLEXML_NEED_BUFFERLIT
5845 static void surfxml_bufferliteral(char c, int* pp, const char* text)
5846 {
5847    BUFFERSET(*pp);
5848    if (c) {
5849       const char *s = strchr(text, c), *e = strrchr(text, c);
5850       assert(s && e && s <= e);
5851       ++s;
5852       while (s < e) {
5853          if (isspace(*s)) {
5854             BUFFERPUTC(' ');
5855             do ++s; while (s < e && isspace(*s));
5856          } else
5857            BUFFERPUTC(*s++);
5858       }
5859    } else {
5860       const char *s = text;
5861       while (*s)
5862         BUFFERPUTC(*s++);
5863    }
5864    BUFFERDONE;
5865 }
5866 #endif
5867
5868 static void pushbuffer(int p)
5869 {
5870     ck_ilimit();
5871     indexstack[inext++] = p;
5872     indexstack[inext++] = bnext;    
5873 }
5874
5875 static int popbuffer(void)
5876 {
5877     assert(inext >= 2);
5878     bnext = indexstack[--inext];
5879     return indexstack[--inext];
5880 }
5881
5882 /* General internal entities are `unput' back onto the input stream... */
5883 #define ENTITYTEXT(T) \
5884   { char *s = (T), *e = s+strlen(s);\
5885     while (--e >= s) { unput(*e); }}
5886
5887 /* Flex standard options. */
5888 #define YY_NO_INPUT 1
5889 /* Flex user-requested options. */
5890 /* XML character classes (currently restricted to ASCII). */
5891 /* "Common syntactic structures." */
5892 /* "Names and Tokens." */
5893 /* Miscellaneous. */
5894 /* Parser states (flex `exclusive start conditions'):
5895  *
5896  * PROLOG       the XML prolog of the document before <?xml...>
5897  * DOCTYPE      the XML prolog of the document after <?xml...>
5898  * EPILOG       after the root element
5899  * INCOMMENT    inside an XML comment <!--....-->
5900  * INPI         inside an XML PI <?...?>
5901  * VALUE1       inside a '...'-delimited literal
5902  * VALUE2       inside a "..."-delimited literal
5903  * CDATA        inside a <![CDATA[...] ]> section.
5904  * ROOT_<tag>   expect root element <tag>
5905  * AL_<tag>     inside the attribute list for <tag>
5906  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
5907  * IMPOSSIBLE   dummy to permit disabling rules; must be last
5908  */
5909
5910 /* State names. */
5911 const char* *surfxml_statenames=NULL;
5912
5913 #define INITIAL 0
5914 #define PROLOG 1
5915 #define DOCTYPE 2
5916 #define EPILOG 3
5917 #define INCOMMENT 4
5918 #define INPI 5
5919 #define VALUE1 6
5920 #define VALUE2 7
5921 #define CDATA 8
5922 #define AL_surfxml_AS 9
5923 #define S_surfxml_AS 10
5924 #define S_surfxml_AS_1 11
5925 #define S_surfxml_AS_2 12
5926 #define S_surfxml_AS_3 13
5927 #define S_surfxml_AS_4 14
5928 #define S_surfxml_AS_5 15
5929 #define S_surfxml_AS_6 16
5930 #define S_surfxml_AS_7 17
5931 #define S_surfxml_AS_8 18
5932 #define S_surfxml_AS_9 19
5933 #define S_surfxml_AS_10 20
5934 #define S_surfxml_AS_11 21
5935 #define S_surfxml_AS_12 22
5936 #define S_surfxml_AS_13 23
5937 #define S_surfxml_AS_14 24
5938 #define S_surfxml_AS_15 25
5939 #define S_surfxml_AS_16 26
5940 #define E_surfxml_AS 27
5941 #define AL_surfxml_ASroute 28
5942 #define S_surfxml_ASroute 29
5943 #define S_surfxml_ASroute_1 30
5944 #define S_surfxml_ASroute_2 31
5945 #define E_surfxml_ASroute 32
5946 #define AL_surfxml_actor 33
5947 #define S_surfxml_actor 34
5948 #define S_surfxml_actor_1 35
5949 #define S_surfxml_actor_2 36
5950 #define E_surfxml_actor 37
5951 #define AL_surfxml_argument 38
5952 #define E_surfxml_argument 39
5953 #define AL_surfxml_backbone 40
5954 #define E_surfxml_backbone 41
5955 #define AL_surfxml_bypassASroute 42
5956 #define S_surfxml_bypassASroute 43
5957 #define S_surfxml_bypassASroute_1 44
5958 #define S_surfxml_bypassASroute_2 45
5959 #define E_surfxml_bypassASroute 46
5960 #define AL_surfxml_bypassRoute 47
5961 #define S_surfxml_bypassRoute 48
5962 #define S_surfxml_bypassRoute_1 49
5963 #define S_surfxml_bypassRoute_2 50
5964 #define E_surfxml_bypassRoute 51
5965 #define AL_surfxml_bypassZoneRoute 52
5966 #define S_surfxml_bypassZoneRoute 53
5967 #define S_surfxml_bypassZoneRoute_1 54
5968 #define S_surfxml_bypassZoneRoute_2 55
5969 #define E_surfxml_bypassZoneRoute 56
5970 #define AL_surfxml_cabinet 57
5971 #define E_surfxml_cabinet 58
5972 #define AL_surfxml_cluster 59
5973 #define S_surfxml_cluster 60
5974 #define S_surfxml_cluster_1 61
5975 #define S_surfxml_cluster_2 62
5976 #define E_surfxml_cluster 63
5977 #define AL_surfxml_config 64
5978 #define S_surfxml_config 65
5979 #define S_surfxml_config_1 66
5980 #define S_surfxml_config_2 67
5981 #define E_surfxml_config 68
5982 #define AL_surfxml_host 69
5983 #define S_surfxml_host 70
5984 #define S_surfxml_host_1 71
5985 #define S_surfxml_host_2 72
5986 #define E_surfxml_host 73
5987 #define AL_surfxml_host___link 74
5988 #define E_surfxml_host___link 75
5989 #define AL_surfxml_include 76
5990 #define S_surfxml_include 77
5991 #define S_surfxml_include_1 78
5992 #define S_surfxml_include_2 79
5993 #define E_surfxml_include 80
5994 #define AL_surfxml_link 81
5995 #define S_surfxml_link 82
5996 #define S_surfxml_link_1 83
5997 #define S_surfxml_link_2 84
5998 #define E_surfxml_link 85
5999 #define AL_surfxml_link___ctn 86
6000 #define E_surfxml_link___ctn 87
6001 #define AL_surfxml_model___prop 88
6002 #define E_surfxml_model___prop 89
6003 #define AL_surfxml_mount 90
6004 #define E_surfxml_mount 91
6005 #define AL_surfxml_peer 92
6006 #define E_surfxml_peer 93
6007 #define ROOT_surfxml_platform 94
6008 #define AL_surfxml_platform 95
6009 #define S_surfxml_platform 96
6010 #define S_surfxml_platform_1 97
6011 #define S_surfxml_platform_2 98
6012 #define S_surfxml_platform_3 99
6013 #define S_surfxml_platform_4 100
6014 #define S_surfxml_platform_5 101
6015 #define S_surfxml_platform_6 102
6016 #define S_surfxml_platform_7 103
6017 #define S_surfxml_platform_8 104
6018 #define E_surfxml_platform 105
6019 #define AL_surfxml_process 106
6020 #define S_surfxml_process 107
6021 #define S_surfxml_process_1 108
6022 #define S_surfxml_process_2 109
6023 #define E_surfxml_process 110
6024 #define AL_surfxml_prop 111
6025 #define E_surfxml_prop 112
6026 #define AL_surfxml_random 113
6027 #define E_surfxml_random 114
6028 #define AL_surfxml_route 115
6029 #define S_surfxml_route 116
6030 #define S_surfxml_route_1 117
6031 #define S_surfxml_route_2 118
6032 #define E_surfxml_route 119
6033 #define AL_surfxml_router 120
6034 #define E_surfxml_router 121
6035 #define AL_surfxml_storage 122
6036 #define S_surfxml_storage 123
6037 #define S_surfxml_storage_1 124
6038 #define S_surfxml_storage_2 125
6039 #define E_surfxml_storage 126
6040 #define AL_surfxml_storage___type 127
6041 #define S_surfxml_storage___type 128
6042 #define S_surfxml_storage___type_1 129
6043 #define S_surfxml_storage___type_2 130
6044 #define E_surfxml_storage___type 131
6045 #define AL_surfxml_trace 132
6046 #define IN_trace 133
6047 #define AL_surfxml_trace___connect 134
6048 #define E_surfxml_trace___connect 135
6049 #define AL_surfxml_zone 136
6050 #define S_surfxml_zone 137
6051 #define S_surfxml_zone_1 138
6052 #define S_surfxml_zone_2 139
6053 #define S_surfxml_zone_3 140
6054 #define S_surfxml_zone_4 141
6055 #define S_surfxml_zone_5 142
6056 #define S_surfxml_zone_6 143
6057 #define S_surfxml_zone_7 144
6058 #define S_surfxml_zone_8 145
6059 #define S_surfxml_zone_9 146
6060 #define S_surfxml_zone_10 147
6061 #define S_surfxml_zone_11 148
6062 #define S_surfxml_zone_12 149
6063 #define S_surfxml_zone_13 150
6064 #define S_surfxml_zone_14 151
6065 #define S_surfxml_zone_15 152
6066 #define S_surfxml_zone_16 153
6067 #define E_surfxml_zone 154
6068 #define AL_surfxml_zoneRoute 155
6069 #define S_surfxml_zoneRoute 156
6070 #define S_surfxml_zoneRoute_1 157
6071 #define S_surfxml_zoneRoute_2 158
6072 #define E_surfxml_zoneRoute 159
6073 #define IMPOSSIBLE 160
6074
6075 #ifndef YY_NO_UNISTD_H
6076 /* Special case for "unistd.h", since it is non-ANSI. We include it way
6077  * down here because we want the user's section 1 to have been scanned first.
6078  * The user has a chance to override it with an option.
6079  */
6080 #if defined(_WIN32)
6081 #  ifndef __STRICT_ANSI__
6082 #    include <io.h>
6083 #    include <process.h>
6084 #  endif
6085 #else
6086 #  include <unistd.h>
6087 #endif
6088 #endif
6089
6090 #ifndef YY_EXTRA_TYPE
6091 #define YY_EXTRA_TYPE void *
6092 #endif
6093
6094 static int yy_init_globals ( void );
6095
6096 /* Accessor methods to globals.
6097    These are made visible to non-reentrant scanners for convenience. */
6098
6099 int yylex_destroy ( void );
6100
6101 int yyget_debug ( void );
6102
6103 void yyset_debug ( int debug_flag  );
6104
6105 YY_EXTRA_TYPE yyget_extra ( void );
6106
6107 void yyset_extra ( YY_EXTRA_TYPE user_defined  );
6108
6109 FILE *yyget_in ( void );
6110
6111 void yyset_in  ( FILE * _in_str  );
6112
6113 FILE *yyget_out ( void );
6114
6115 void yyset_out  ( FILE * _out_str  );
6116
6117                         int yyget_leng ( void );
6118
6119 char *yyget_text ( void );
6120
6121 int yyget_lineno ( void );
6122
6123 void yyset_lineno ( int _line_number  );
6124
6125 /* Macros after this point can all be overridden by user definitions in
6126  * section 1.
6127  */
6128
6129 #ifndef YY_SKIP_YYWRAP
6130 #ifdef __cplusplus
6131 extern "C" int yywrap ( void );
6132 #else
6133 extern int yywrap ( void );
6134 #endif
6135 #endif
6136
6137 #ifndef YY_NO_UNPUT
6138     
6139 #endif
6140
6141 #ifndef yytext_ptr
6142 static void yy_flex_strncpy ( char *, const char *, int );
6143 #endif
6144
6145 #ifdef YY_NEED_STRLEN
6146 static int yy_flex_strlen ( const char * );
6147 #endif
6148
6149 #ifndef YY_NO_INPUT
6150 #ifdef __cplusplus
6151 static int yyinput ( void );
6152 #else
6153 static int input ( void );
6154 #endif
6155
6156 #endif
6157
6158         static int yy_start_stack_ptr = 0;
6159         static int yy_start_stack_depth = 0;
6160         static int *yy_start_stack = NULL;
6161     
6162     static void yy_push_state ( int _new_state );
6163     
6164     static void yy_pop_state ( void );
6165     
6166 /* Amount of stuff to slurp up with each read. */
6167 #ifndef YY_READ_BUF_SIZE
6168 #ifdef __ia64__
6169 /* On IA-64, the buffer size is 16k, not 8k */
6170 #define YY_READ_BUF_SIZE 16384
6171 #else
6172 #define YY_READ_BUF_SIZE 8192
6173 #endif /* __ia64__ */
6174 #endif
6175
6176 /* Copy whatever the last rule matched to the standard output. */
6177 #ifndef ECHO
6178 /* This used to be an fputs(), but since the string might contain NUL's,
6179  * we now use fwrite().
6180  */
6181 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
6182 #endif
6183
6184 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
6185  * is returned in "result".
6186  */
6187 #ifndef YY_INPUT
6188 #define YY_INPUT(buf,result,max_size) \
6189         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
6190                 { \
6191                 int c = '*'; \
6192                 int n; \
6193                 for ( n = 0; n < ( int ) max_size && \
6194                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
6195                         buf[n] = (char) c; \
6196                 if ( c == '\n' ) \
6197                         buf[n++] = (char) c; \
6198                 if ( c == EOF && ferror( yyin ) ) \
6199                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
6200                 result = n; \
6201                 } \
6202         else \
6203                 { \
6204                 errno=0; \
6205                 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
6206                         { \
6207                         if( errno != EINTR) \
6208                                 { \
6209                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
6210                                 break; \
6211                                 } \
6212                         errno=0; \
6213                         clearerr(yyin); \
6214                         } \
6215                 }\
6216 \
6217
6218 #endif
6219
6220 /* No semi-colon after return; correct usage is to write "yyterminate();" -
6221  * we don't want an extra ';' after the "return" because that will cause
6222  * some compilers to complain about unreachable statements.
6223  */
6224 #ifndef yyterminate
6225 #define yyterminate() return YY_NULL
6226 #endif
6227
6228 /* Number of entries by which start-condition stack grows. */
6229 #ifndef YY_START_STACK_INCR
6230 #define YY_START_STACK_INCR 25
6231 #endif
6232
6233 /* Report a fatal error. */
6234 #ifndef YY_FATAL_ERROR
6235 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
6236 #endif
6237
6238 /* end tables serialization structures and prototypes */
6239
6240 /* Default declaration of generated scanner - a define so the user can
6241  * easily add parameters.
6242  */
6243 #ifndef YY_DECL
6244 #define YY_DECL_IS_OURS 1
6245
6246 extern int yylex (void);
6247
6248 #define YY_DECL int yylex (void)
6249 #endif /* !YY_DECL */
6250
6251 /* Code executed at the beginning of each rule, after yytext and yyleng
6252  * have been set up.
6253  */
6254 #ifndef YY_USER_ACTION
6255 #define YY_USER_ACTION
6256 #endif
6257
6258 /* Code executed at the end of each rule. */
6259 #ifndef YY_BREAK
6260 #define YY_BREAK /*LINTED*/break;
6261 #endif
6262
6263 #define YY_RULE_SETUP \
6264         YY_USER_ACTION
6265
6266 /** The main scanner function which does all the work.
6267  */
6268 YY_DECL
6269 {
6270         yy_state_type yy_current_state;
6271         char *yy_cp, *yy_bp;
6272         int yy_act;
6273     
6274         if ( !(yy_init) )
6275                 {
6276                 (yy_init) = 1;
6277
6278 #ifdef YY_USER_INIT
6279                 YY_USER_INIT;
6280 #endif
6281
6282                 if ( ! (yy_start) )
6283                         (yy_start) = 1; /* first start state */
6284
6285                 if ( ! yyin )
6286                         yyin = stdin;
6287
6288                 if ( ! yyout )
6289                         yyout = stdout;
6290
6291                 if ( ! YY_CURRENT_BUFFER ) {
6292                         yyensure_buffer_stack ();
6293                         YY_CURRENT_BUFFER_LVALUE =
6294                                 yy_create_buffer( yyin, YY_BUF_SIZE );
6295                 }
6296
6297                 yy_load_buffer_state(  );
6298                 }
6299
6300         {
6301
6302  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
6303  SET(PROLOG);
6304  reset_surfxml_parse_err_msg();
6305  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
6306  assert(surfxml_bufferstack);
6307  #ifdef FLEX_DEBUG
6308  {
6309      int i;
6310      for (i = 0; i < blimit; i++) {
6311          surfxml_bufferstack[i] = '\377';
6312      }
6313  }
6314  #endif
6315  surfxml_bufferstack[0] = '\0';
6316  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
6317  assert(indexstack);
6318  indexstack[0] = 0;
6319
6320   /* FleXML_init */
6321   bnext = inext = 1;
6322   surfxml_bufferliteral('\0', &bnext, "0.0");
6323   surfxml_bufferliteral('\0', &bnext, "2147483647");
6324   surfxml_bufferliteral('\0', &bnext, "N11");
6325   surfxml_bufferliteral('\0', &bnext, "1");
6326   surfxml_bufferliteral('\0', &bnext, "0.0");
6327   surfxml_bufferliteral('\0', &bnext, "1");
6328   surfxml_bufferliteral('\0', &bnext, "0s");
6329   surfxml_bufferliteral('\0', &bnext, "-1.0");
6330   surfxml_bufferliteral('\0', &bnext, "-1.0");
6331   surfxml_bufferliteral('\0', &bnext, "-1.0");
6332   surfxml_bufferliteral('\0', &bnext, "-1.0");
6333   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
6334   surfxml_statenames[PROLOG] = NULL;
6335   surfxml_statenames[DOCTYPE] = NULL;
6336   surfxml_statenames[EPILOG] = NULL;
6337   surfxml_statenames[INCOMMENT] = NULL;
6338   surfxml_statenames[INPI] = NULL;
6339   surfxml_statenames[VALUE1] = NULL;
6340   surfxml_statenames[VALUE2] = NULL;
6341   surfxml_statenames[CDATA] = NULL;
6342   surfxml_statenames[AL_surfxml_AS] = NULL;
6343   surfxml_statenames[S_surfxml_AS] = "AS";
6344   surfxml_statenames[S_surfxml_AS_1] = "AS";
6345   surfxml_statenames[S_surfxml_AS_2] = "AS";
6346   surfxml_statenames[S_surfxml_AS_3] = "AS";
6347   surfxml_statenames[S_surfxml_AS_4] = "AS";
6348   surfxml_statenames[S_surfxml_AS_5] = "AS";
6349   surfxml_statenames[S_surfxml_AS_6] = "AS";
6350   surfxml_statenames[S_surfxml_AS_7] = "AS";
6351   surfxml_statenames[S_surfxml_AS_8] = "AS";
6352   surfxml_statenames[S_surfxml_AS_9] = "AS";
6353   surfxml_statenames[S_surfxml_AS_10] = "AS";
6354   surfxml_statenames[S_surfxml_AS_11] = "AS";
6355   surfxml_statenames[S_surfxml_AS_12] = "AS";
6356   surfxml_statenames[S_surfxml_AS_13] = "AS";
6357   surfxml_statenames[S_surfxml_AS_14] = "AS";
6358   surfxml_statenames[S_surfxml_AS_15] = "AS";
6359   surfxml_statenames[S_surfxml_AS_16] = "AS";
6360   surfxml_statenames[E_surfxml_AS] = "AS";
6361   surfxml_statenames[AL_surfxml_ASroute] = NULL;
6362   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
6363   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
6364   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
6365   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
6366   surfxml_statenames[AL_surfxml_actor] = NULL;
6367   surfxml_statenames[S_surfxml_actor] = "actor";
6368   surfxml_statenames[S_surfxml_actor_1] = "actor";
6369   surfxml_statenames[S_surfxml_actor_2] = "actor";
6370   surfxml_statenames[E_surfxml_actor] = "actor";
6371   surfxml_statenames[AL_surfxml_argument] = NULL;
6372   surfxml_statenames[E_surfxml_argument] = "argument";
6373   surfxml_statenames[AL_surfxml_backbone] = NULL;
6374   surfxml_statenames[E_surfxml_backbone] = "backbone";
6375   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
6376   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
6377   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
6378   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
6379   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
6380   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
6381   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
6382   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
6383   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
6384   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
6385   surfxml_statenames[AL_surfxml_bypassZoneRoute] = NULL;
6386   surfxml_statenames[S_surfxml_bypassZoneRoute] = "bypassZoneRoute";
6387   surfxml_statenames[S_surfxml_bypassZoneRoute_1] = "bypassZoneRoute";
6388   surfxml_statenames[S_surfxml_bypassZoneRoute_2] = "bypassZoneRoute";
6389   surfxml_statenames[E_surfxml_bypassZoneRoute] = "bypassZoneRoute";
6390   surfxml_statenames[AL_surfxml_cabinet] = NULL;
6391   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
6392   surfxml_statenames[AL_surfxml_cluster] = NULL;
6393   surfxml_statenames[S_surfxml_cluster] = "cluster";
6394   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
6395   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
6396   surfxml_statenames[E_surfxml_cluster] = "cluster";
6397   surfxml_statenames[AL_surfxml_config] = NULL;
6398   surfxml_statenames[S_surfxml_config] = "config";
6399   surfxml_statenames[S_surfxml_config_1] = "config";
6400   surfxml_statenames[S_surfxml_config_2] = "config";
6401   surfxml_statenames[E_surfxml_config] = "config";
6402   surfxml_statenames[AL_surfxml_host] = NULL;
6403   surfxml_statenames[S_surfxml_host] = "host";
6404   surfxml_statenames[S_surfxml_host_1] = "host";
6405   surfxml_statenames[S_surfxml_host_2] = "host";
6406   surfxml_statenames[E_surfxml_host] = "host";
6407   surfxml_statenames[AL_surfxml_host___link] = NULL;
6408   surfxml_statenames[E_surfxml_host___link] = "host_link";
6409   surfxml_statenames[AL_surfxml_include] = NULL;
6410   surfxml_statenames[S_surfxml_include] = "include";
6411   surfxml_statenames[S_surfxml_include_1] = "include";
6412   surfxml_statenames[S_surfxml_include_2] = "include";
6413   surfxml_statenames[E_surfxml_include] = "include";
6414   surfxml_statenames[AL_surfxml_link] = NULL;
6415   surfxml_statenames[S_surfxml_link] = "link";
6416   surfxml_statenames[S_surfxml_link_1] = "link";
6417   surfxml_statenames[S_surfxml_link_2] = "link";
6418   surfxml_statenames[E_surfxml_link] = "link";
6419   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
6420   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
6421   surfxml_statenames[AL_surfxml_model___prop] = NULL;
6422   surfxml_statenames[E_surfxml_model___prop] = "model_prop";
6423   surfxml_statenames[AL_surfxml_mount] = NULL;
6424   surfxml_statenames[E_surfxml_mount] = "mount";
6425   surfxml_statenames[AL_surfxml_peer] = NULL;
6426   surfxml_statenames[E_surfxml_peer] = "peer";
6427   surfxml_statenames[ROOT_surfxml_platform] = NULL;
6428   surfxml_statenames[AL_surfxml_platform] = NULL;
6429   surfxml_statenames[S_surfxml_platform] = "platform";
6430   surfxml_statenames[S_surfxml_platform_1] = "platform";
6431   surfxml_statenames[S_surfxml_platform_2] = "platform";
6432   surfxml_statenames[S_surfxml_platform_3] = "platform";
6433   surfxml_statenames[S_surfxml_platform_4] = "platform";
6434   surfxml_statenames[S_surfxml_platform_5] = "platform";
6435   surfxml_statenames[S_surfxml_platform_6] = "platform";
6436   surfxml_statenames[S_surfxml_platform_7] = "platform";
6437   surfxml_statenames[S_surfxml_platform_8] = "platform";
6438   surfxml_statenames[E_surfxml_platform] = "platform";
6439   surfxml_statenames[AL_surfxml_process] = NULL;
6440   surfxml_statenames[S_surfxml_process] = "process";
6441   surfxml_statenames[S_surfxml_process_1] = "process";
6442   surfxml_statenames[S_surfxml_process_2] = "process";
6443   surfxml_statenames[E_surfxml_process] = "process";
6444   surfxml_statenames[AL_surfxml_prop] = NULL;
6445   surfxml_statenames[E_surfxml_prop] = "prop";
6446   surfxml_statenames[AL_surfxml_random] = NULL;
6447   surfxml_statenames[E_surfxml_random] = "random";
6448   surfxml_statenames[AL_surfxml_route] = NULL;
6449   surfxml_statenames[S_surfxml_route] = "route";
6450   surfxml_statenames[S_surfxml_route_1] = "route";
6451   surfxml_statenames[S_surfxml_route_2] = "route";
6452   surfxml_statenames[E_surfxml_route] = "route";
6453   surfxml_statenames[AL_surfxml_router] = NULL;
6454   surfxml_statenames[E_surfxml_router] = "router";
6455   surfxml_statenames[AL_surfxml_storage] = NULL;
6456   surfxml_statenames[S_surfxml_storage] = "storage";
6457   surfxml_statenames[S_surfxml_storage_1] = "storage";
6458   surfxml_statenames[S_surfxml_storage_2] = "storage";
6459   surfxml_statenames[E_surfxml_storage] = "storage";
6460   surfxml_statenames[AL_surfxml_storage___type] = NULL;
6461   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
6462   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
6463   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
6464   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
6465   surfxml_statenames[AL_surfxml_trace] = NULL;
6466   surfxml_statenames[IN_trace] = "trace";
6467   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
6468   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
6469   surfxml_statenames[AL_surfxml_zone] = NULL;
6470   surfxml_statenames[S_surfxml_zone] = "zone";
6471   surfxml_statenames[S_surfxml_zone_1] = "zone";
6472   surfxml_statenames[S_surfxml_zone_2] = "zone";
6473   surfxml_statenames[S_surfxml_zone_3] = "zone";
6474   surfxml_statenames[S_surfxml_zone_4] = "zone";
6475   surfxml_statenames[S_surfxml_zone_5] = "zone";
6476   surfxml_statenames[S_surfxml_zone_6] = "zone";
6477   surfxml_statenames[S_surfxml_zone_7] = "zone";
6478   surfxml_statenames[S_surfxml_zone_8] = "zone";
6479   surfxml_statenames[S_surfxml_zone_9] = "zone";
6480   surfxml_statenames[S_surfxml_zone_10] = "zone";
6481   surfxml_statenames[S_surfxml_zone_11] = "zone";
6482   surfxml_statenames[S_surfxml_zone_12] = "zone";
6483   surfxml_statenames[S_surfxml_zone_13] = "zone";
6484   surfxml_statenames[S_surfxml_zone_14] = "zone";
6485   surfxml_statenames[S_surfxml_zone_15] = "zone";
6486   surfxml_statenames[S_surfxml_zone_16] = "zone";
6487   surfxml_statenames[E_surfxml_zone] = "zone";
6488   surfxml_statenames[AL_surfxml_zoneRoute] = NULL;
6489   surfxml_statenames[S_surfxml_zoneRoute] = "zoneRoute";
6490   surfxml_statenames[S_surfxml_zoneRoute_1] = "zoneRoute";
6491   surfxml_statenames[S_surfxml_zoneRoute_2] = "zoneRoute";
6492   surfxml_statenames[E_surfxml_zoneRoute] = "zoneRoute";
6493   }
6494
6495  /* COMMENTS and PIs: handled uniformly for efficiency. */
6496
6497         while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
6498                 {
6499                 yy_cp = (yy_c_buf_p);
6500
6501                 /* Support of yytext. */
6502                 *yy_cp = (yy_hold_char);
6503
6504                 /* yy_bp points to the position in yy_ch_buf of the start of
6505                  * the current run.
6506                  */
6507                 yy_bp = yy_cp;
6508
6509                 yy_current_state = (yy_start);
6510 yy_match:
6511                 do
6512                         {
6513                         YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
6514                         if ( yy_accept[yy_current_state] )
6515                                 {
6516                                 (yy_last_accepting_state) = yy_current_state;
6517                                 (yy_last_accepting_cpos) = yy_cp;
6518                                 }
6519                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6520                                 {
6521                                 yy_current_state = (int) yy_def[yy_current_state];
6522                                 if ( yy_current_state >= 3991 )
6523                                         yy_c = yy_meta[yy_c];
6524                                 }
6525                         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6526                         ++yy_cp;
6527                         }
6528                 while ( yy_base[yy_current_state] != 14046 );
6529
6530 yy_find_action:
6531                 yy_act = yy_accept[yy_current_state];
6532                 if ( yy_act == 0 )
6533                         { /* have to back up */
6534                         yy_cp = (yy_last_accepting_cpos);
6535                         yy_current_state = (yy_last_accepting_state);
6536                         yy_act = yy_accept[yy_current_state];
6537                         }
6538
6539                 YY_DO_BEFORE_ACTION;
6540
6541                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
6542                         {
6543                         int yyl;
6544                         for ( yyl = 0; yyl < yyleng; ++yyl )
6545                                 if ( yytext[yyl] == '\n' )
6546                                         
6547     yylineno++;
6548 ;
6549                         }
6550
6551 do_action:      /* This label is used only to access EOF actions. */
6552
6553                 switch ( yy_act )
6554         { /* beginning of action switch */
6555                         case 0: /* must back up */
6556                         /* undo the effects of YY_DO_BEFORE_ACTION */
6557                         *yy_cp = (yy_hold_char);
6558                         yy_cp = (yy_last_accepting_cpos);
6559                         yy_current_state = (yy_last_accepting_state);
6560                         goto yy_find_action;
6561
6562 case 1:
6563 YY_RULE_SETUP
6564 ENTER(INCOMMENT);
6565         YY_BREAK
6566 case 2:
6567 YY_RULE_SETUP
6568 ENTER(INPI);
6569         YY_BREAK
6570
6571 case 3:
6572 YY_RULE_SETUP
6573 LEAVE;
6574         YY_BREAK
6575 case 4:
6576 case 5:
6577 case 6:
6578 /* rule 6 can match eol */
6579 YY_RULE_SETUP
6580 SKIP;
6581         YY_BREAK
6582 case YY_STATE_EOF(INCOMMENT):
6583 FAIL("EOF in comment.");
6584         YY_BREAK
6585
6586 case 7:
6587 YY_RULE_SETUP
6588 LEAVE;
6589         YY_BREAK
6590 case 8:
6591 case 9:
6592 /* rule 9 can match eol */
6593 YY_RULE_SETUP
6594 SKIP;
6595         YY_BREAK
6596 case YY_STATE_EOF(INPI):
6597 FAIL("EOF in PI (processing instruction).");
6598         YY_BREAK
6599
6600 /* SPACES: skipped uniformly */
6601 case 10:
6602 /* rule 10 can match eol */
6603 YY_RULE_SETUP
6604 SKIP;
6605         YY_BREAK
6606 /* PROLOG: determine root element and process it. */
6607
6608 case 11:
6609 /* rule 11 can match eol */
6610 YY_RULE_SETUP
6611 SET(DOCTYPE); 
6612         YY_BREAK
6613 case 12:
6614 /* rule 12 can match eol */
6615 YY_RULE_SETUP
6616 FAIL("Bad declaration %s.\nIf your are using a XML v3 file (check the version attribute in <platform>), please update it with tools/simgrid_update_xml.pl",yytext);
6617         YY_BREAK
6618
6619 case 13:
6620 /* rule 13 can match eol */
6621 YY_RULE_SETUP
6622 SET(ROOT_surfxml_platform);
6623         YY_BREAK
6624 case 14:
6625 /* rule 14 can match eol */
6626 YY_RULE_SETUP
6627 FAIL("Bad declaration %s.\nIf your are using a XML v3 file (check the version attribute in <platform>), please update it with tools/simgrid_update_xml.pl",yytext);
6628         YY_BREAK
6629 case 15:
6630 YY_RULE_SETUP
6631 FAIL("Unexpected character `%c' in prolog.", yytext[0]);
6632         YY_BREAK
6633 case YY_STATE_EOF(PROLOG):
6634 case YY_STATE_EOF(DOCTYPE):
6635 FAIL("EOF in prolog.");
6636         YY_BREAK
6637
6638 /* RULES DERIVED FROM DTD. */
6639 /* <!-- A zone is either an internal node that contains other zones, 
6640   *      or a  leaf containing hosts and other leaf-like elements -->
6641   *           (((AS|zone|include|link|backbone|cabinet|cluster|peer|trace|trace_connect)*,
6642   *         (zoneRoute|ASroute|trace|trace_connect|bypassASroute|bypassZoneRoute)*,
6643   *         (trace|trace_connect)*)
6644   *        |((include|storage_type|storage|host|cabinet|router|link|backbone|trace|trace_connect|host_link)*,
6645   *          (route|trace|trace_connect|bypassRoute)*)))>  */
6646 case 16:
6647 /* rule 16 can match eol */
6648 YY_RULE_SETUP
6649 FAIL("Starting tag <AS> is not allowed here.");
6650         YY_BREAK
6651 case 17:
6652 /* rule 17 can match eol */
6653 YY_RULE_SETUP
6654 {
6655   AX_surfxml_AS_id = 0;
6656   surfxml_AS_id_isset = 0;
6657   AX_surfxml_AS_routing = AU_surfxml_AS_routing;
6658   surfxml_AS_routing_isset = 0;
6659   ENTER(AL_surfxml_AS); pushbuffer(0);
6660   }
6661         YY_BREAK
6662
6663 case 18:
6664 /* rule 18 can match eol */
6665 YY_RULE_SETUP
6666 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");} surfxml_AS_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_id);
6667         YY_BREAK
6668 case 19:
6669 /* rule 19 can match eol */
6670 YY_RULE_SETUP
6671 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");}  surfxml_AS_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_id);
6672         YY_BREAK
6673 case 20:
6674 /* rule 20 can match eol */
6675 case 21:
6676 /* rule 21 can match eol */
6677 YY_RULE_SETUP
6678 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6679         YY_BREAK
6680 case 22:
6681 /* rule 22 can match eol */
6682 case 23:
6683 /* rule 23 can match eol */
6684 YY_RULE_SETUP
6685 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6686         YY_BREAK
6687 case 24:
6688 /* rule 24 can match eol */
6689 case 25:
6690 /* rule 25 can match eol */
6691 YY_RULE_SETUP
6692 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6693         YY_BREAK
6694 case 26:
6695 /* rule 26 can match eol */
6696 case 27:
6697 /* rule 27 can match eol */
6698 YY_RULE_SETUP
6699 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6700         YY_BREAK
6701 case 28:
6702 /* rule 28 can match eol */
6703 case 29:
6704 /* rule 29 can match eol */
6705 YY_RULE_SETUP
6706 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6707         YY_BREAK
6708 case 30:
6709 /* rule 30 can match eol */
6710 case 31:
6711 /* rule 31 can match eol */
6712 YY_RULE_SETUP
6713 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6714         YY_BREAK
6715 case 32:
6716 /* rule 32 can match eol */
6717 case 33:
6718 /* rule 33 can match eol */
6719 YY_RULE_SETUP
6720 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6721         YY_BREAK
6722 case 34:
6723 /* rule 34 can match eol */
6724 case 35:
6725 /* rule 35 can match eol */
6726 YY_RULE_SETUP
6727 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterTorus;
6728         YY_BREAK
6729 case 36:
6730 /* rule 36 can match eol */
6731 case 37:
6732 /* rule 37 can match eol */
6733 YY_RULE_SETUP
6734 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterFatTree;
6735         YY_BREAK
6736 case 38:
6737 /* rule 38 can match eol */
6738 case 39:
6739 /* rule 39 can match eol */
6740 YY_RULE_SETUP
6741 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterDragonfly;
6742         YY_BREAK
6743 case 40:
6744 YY_RULE_SETUP
6745 {
6746   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6747   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6748   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6749  }
6750         YY_BREAK
6751 case 41:
6752 YY_RULE_SETUP
6753 {
6754   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6755   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6756   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6757   switch (YY_START) {
6758    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6759    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6760    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6761    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
6762   }
6763  }
6764         YY_BREAK
6765 case 42:
6766 YY_RULE_SETUP
6767 FAIL("Unexpected character `%c' in attribute list of AS element.", yytext[0]);
6768         YY_BREAK
6769 case 43:
6770 YY_RULE_SETUP
6771 FAIL("Bad attribute `%s' in `AS' element start tag.",yytext);
6772         YY_BREAK
6773 case YY_STATE_EOF(AL_surfxml_AS):
6774 FAIL("EOF in attribute list of `AS' element.");
6775         YY_BREAK
6776
6777 case 44:
6778 /* rule 44 can match eol */
6779 YY_RULE_SETUP
6780 {
6781   LEAVE;
6782   ETag_surfxml_AS();
6783   popbuffer(); /* attribute */
6784   switch (YY_START) {
6785    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6786    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6787    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6788    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
6789   }
6790  }
6791         YY_BREAK
6792 case 45:
6793 /* rule 45 can match eol */
6794 YY_RULE_SETUP
6795 FAIL("Unexpected end-tag `%s': `</AS>' expected.",yytext);
6796         YY_BREAK
6797 case 46:
6798 YY_RULE_SETUP
6799 FAIL("Unexpected character `%c': `</AS>' expected.",yytext[0]);
6800         YY_BREAK
6801 case YY_STATE_EOF(E_surfxml_AS):
6802 case YY_STATE_EOF(S_surfxml_AS):
6803 case YY_STATE_EOF(S_surfxml_AS_1):
6804 case YY_STATE_EOF(S_surfxml_AS_11):
6805 case YY_STATE_EOF(S_surfxml_AS_12):
6806 case YY_STATE_EOF(S_surfxml_AS_14):
6807 case YY_STATE_EOF(S_surfxml_AS_16):
6808 case YY_STATE_EOF(S_surfxml_AS_3):
6809 case YY_STATE_EOF(S_surfxml_AS_4):
6810 case YY_STATE_EOF(S_surfxml_AS_6):
6811 case YY_STATE_EOF(S_surfxml_AS_7):
6812 case YY_STATE_EOF(S_surfxml_AS_9):
6813 FAIL("Premature EOF: `</AS>' expected.");
6814         YY_BREAK
6815
6816 case 47:
6817 /* rule 47 can match eol */
6818 YY_RULE_SETUP
6819 FAIL("Starting tag <ASroute> is not allowed here.");
6820         YY_BREAK
6821 case 48:
6822 /* rule 48 can match eol */
6823 YY_RULE_SETUP
6824 {
6825   AX_surfxml_ASroute_dst = 0;
6826   surfxml_ASroute_dst_isset = 0;
6827   AX_surfxml_ASroute_gw___dst = 0;
6828   surfxml_ASroute_gw___dst_isset = 0;
6829   AX_surfxml_ASroute_gw___src = 0;
6830   surfxml_ASroute_gw___src_isset = 0;
6831   AX_surfxml_ASroute_src = 0;
6832   surfxml_ASroute_src_isset = 0;
6833   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6834   surfxml_ASroute_symmetrical_isset = 0;
6835   ENTER(AL_surfxml_ASroute); pushbuffer(0);
6836   }
6837         YY_BREAK
6838
6839 case 49:
6840 /* rule 49 can match eol */
6841 YY_RULE_SETUP
6842 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");} surfxml_ASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_dst);
6843         YY_BREAK
6844 case 50:
6845 /* rule 50 can match eol */
6846 YY_RULE_SETUP
6847 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");}  surfxml_ASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_dst);
6848         YY_BREAK
6849 case 51:
6850 /* rule 51 can match eol */
6851 YY_RULE_SETUP
6852 if (surfxml_ASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");} surfxml_ASroute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw___dst);
6853         YY_BREAK
6854 case 52:
6855 /* rule 52 can match eol */
6856 YY_RULE_SETUP
6857 if (surfxml_ASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");}  surfxml_ASroute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw___dst);
6858         YY_BREAK
6859 case 53:
6860 /* rule 53 can match eol */
6861 YY_RULE_SETUP
6862 if (surfxml_ASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");} surfxml_ASroute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw___src);
6863         YY_BREAK
6864 case 54:
6865 /* rule 54 can match eol */
6866 YY_RULE_SETUP
6867 if (surfxml_ASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");}  surfxml_ASroute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw___src);
6868         YY_BREAK
6869 case 55:
6870 /* rule 55 can match eol */
6871 YY_RULE_SETUP
6872 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");} surfxml_ASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_src);
6873         YY_BREAK
6874 case 56:
6875 /* rule 56 can match eol */
6876 YY_RULE_SETUP
6877 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");}  surfxml_ASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_src);
6878         YY_BREAK
6879 case 57:
6880 /* rule 57 can match eol */
6881 case 58:
6882 /* rule 58 can match eol */
6883 YY_RULE_SETUP
6884 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6885         YY_BREAK
6886 case 59:
6887 /* rule 59 can match eol */
6888 case 60:
6889 /* rule 60 can match eol */
6890 YY_RULE_SETUP
6891 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
6892         YY_BREAK
6893 case 61:
6894 /* rule 61 can match eol */
6895 case 62:
6896 /* rule 62 can match eol */
6897 YY_RULE_SETUP
6898 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_yes;
6899         YY_BREAK
6900 case 63:
6901 /* rule 63 can match eol */
6902 case 64:
6903 /* rule 64 can match eol */
6904 YY_RULE_SETUP
6905 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_no;
6906         YY_BREAK
6907 case 65:
6908 YY_RULE_SETUP
6909 {
6910   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6911   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6912   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6913   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6914   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
6915  }
6916         YY_BREAK
6917 case 66:
6918 YY_RULE_SETUP
6919 {
6920   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6921   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6922   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6923   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6924   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
6925   switch (YY_START) {
6926    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
6927    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
6928   }
6929  }
6930         YY_BREAK
6931 case 67:
6932 YY_RULE_SETUP
6933 FAIL("Unexpected character `%c' in attribute list of ASroute element.", yytext[0]);
6934         YY_BREAK
6935 case 68:
6936 YY_RULE_SETUP
6937 FAIL("Bad attribute `%s' in `ASroute' element start tag.",yytext);
6938         YY_BREAK
6939 case YY_STATE_EOF(AL_surfxml_ASroute):
6940 FAIL("EOF in attribute list of `ASroute' element.");
6941         YY_BREAK
6942
6943 case 69:
6944 /* rule 69 can match eol */
6945 YY_RULE_SETUP
6946 {
6947   LEAVE;
6948   ETag_surfxml_ASroute();
6949   popbuffer(); /* attribute */
6950   switch (YY_START) {
6951    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
6952    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
6953   }
6954  }
6955         YY_BREAK
6956 case 70:
6957 /* rule 70 can match eol */
6958 YY_RULE_SETUP
6959 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",yytext);
6960         YY_BREAK
6961 case 71:
6962 YY_RULE_SETUP
6963 FAIL("Unexpected character `%c': `</ASroute>' expected.",yytext[0]);
6964         YY_BREAK
6965 case YY_STATE_EOF(E_surfxml_ASroute):
6966 case YY_STATE_EOF(S_surfxml_ASroute):
6967 case YY_STATE_EOF(S_surfxml_ASroute_2):
6968 FAIL("Premature EOF: `</ASroute>' expected.");
6969         YY_BREAK
6970
6971 case 72:
6972 /* rule 72 can match eol */
6973 YY_RULE_SETUP
6974 FAIL("Starting tag <actor> is not allowed here.");
6975         YY_BREAK
6976 case 73:
6977 /* rule 73 can match eol */
6978 YY_RULE_SETUP
6979 {
6980   AX_surfxml_actor_function = 0;
6981   surfxml_actor_function_isset = 0;
6982   AX_surfxml_actor_host = 0;
6983   surfxml_actor_host_isset = 0;
6984   AX_surfxml_actor_kill___time = 46;
6985   surfxml_actor_kill___time_isset = 0;
6986   AX_surfxml_actor_on___failure = A_surfxml_actor_on___failure_DIE;
6987   surfxml_actor_on___failure_isset = 0;
6988   AX_surfxml_actor_start___time = 41;
6989   surfxml_actor_start___time_isset = 0;
6990   ENTER(AL_surfxml_actor); pushbuffer(0);
6991   }
6992         YY_BREAK
6993
6994 case 74:
6995 /* rule 74 can match eol */
6996 YY_RULE_SETUP
6997 if (surfxml_actor_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_actor>");} surfxml_actor_function_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_actor_function);
6998         YY_BREAK
6999 case 75:
7000 /* rule 75 can match eol */
7001 YY_RULE_SETUP
7002 if (surfxml_actor_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_actor>");}  surfxml_actor_function_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_actor_function);
7003         YY_BREAK
7004 case 76:
7005 /* rule 76 can match eol */
7006 YY_RULE_SETUP
7007 if (surfxml_actor_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_actor>");} surfxml_actor_host_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_actor_host);
7008         YY_BREAK
7009 case 77:
7010 /* rule 77 can match eol */
7011 YY_RULE_SETUP
7012 if (surfxml_actor_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_actor>");}  surfxml_actor_host_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_actor_host);
7013         YY_BREAK
7014 case 78:
7015 /* rule 78 can match eol */
7016 YY_RULE_SETUP
7017 if (surfxml_actor_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_actor>");} surfxml_actor_kill___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_actor_kill___time);
7018         YY_BREAK
7019 case 79:
7020 /* rule 79 can match eol */
7021 YY_RULE_SETUP
7022 if (surfxml_actor_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_actor>");}  surfxml_actor_kill___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_actor_kill___time);
7023         YY_BREAK
7024 case 80:
7025 /* rule 80 can match eol */
7026 case 81:
7027 /* rule 81 can match eol */
7028 YY_RULE_SETUP
7029 A_surfxml_actor_on___failure = A_surfxml_actor_on___failure_DIE;
7030         YY_BREAK
7031 case 82:
7032 /* rule 82 can match eol */
7033 case 83:
7034 /* rule 83 can match eol */
7035 YY_RULE_SETUP
7036 A_surfxml_actor_on___failure = A_surfxml_actor_on___failure_RESTART;
7037         YY_BREAK
7038 case 84:
7039 /* rule 84 can match eol */
7040 YY_RULE_SETUP
7041 if (surfxml_actor_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_actor>");} surfxml_actor_start___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_actor_start___time);
7042         YY_BREAK
7043 case 85:
7044 /* rule 85 can match eol */
7045 YY_RULE_SETUP
7046 if (surfxml_actor_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_actor>");}  surfxml_actor_start___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_actor_start___time);
7047         YY_BREAK
7048 case 86:
7049 YY_RULE_SETUP
7050 {
7051   if (!AX_surfxml_actor_function) FAIL("Required attribute `function' not set for `actor' element.");
7052   if (!AX_surfxml_actor_host) FAIL("Required attribute `host' not set for `actor' element.");
7053   LEAVE; STag_surfxml_actor();surfxml_pcdata_ix = 0; ENTER(S_surfxml_actor);
7054  }
7055         YY_BREAK
7056 case 87:
7057 YY_RULE_SETUP
7058 {
7059   if (!AX_surfxml_actor_function) FAIL("Required attribute `function' not set for `actor' element.");
7060   if (!AX_surfxml_actor_host) FAIL("Required attribute `host' not set for `actor' element.");
7061   LEAVE; STag_surfxml_actor(); surfxml_pcdata_ix = 0; ETag_surfxml_actor(); popbuffer(); /* attribute */
7062   switch (YY_START) {
7063    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
7064   }
7065  }
7066         YY_BREAK
7067 case 88:
7068 YY_RULE_SETUP
7069 FAIL("Unexpected character `%c' in attribute list of actor element.", yytext[0]);
7070         YY_BREAK
7071 case 89:
7072 YY_RULE_SETUP
7073 FAIL("Bad attribute `%s' in `actor' element start tag.",yytext);
7074         YY_BREAK
7075 case YY_STATE_EOF(AL_surfxml_actor):
7076 FAIL("EOF in attribute list of `actor' element.");
7077         YY_BREAK
7078
7079 case 90:
7080 /* rule 90 can match eol */
7081 YY_RULE_SETUP
7082 {
7083   LEAVE;
7084   ETag_surfxml_actor();
7085   popbuffer(); /* attribute */
7086   switch (YY_START) {
7087    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
7088   }
7089  }
7090         YY_BREAK
7091 case 91:
7092 /* rule 91 can match eol */
7093 YY_RULE_SETUP
7094 FAIL("Unexpected end-tag `%s': `</actor>' expected.",yytext);
7095         YY_BREAK
7096 case 92:
7097 YY_RULE_SETUP
7098 FAIL("Unexpected character `%c': `</actor>' expected.",yytext[0]);
7099         YY_BREAK
7100 case YY_STATE_EOF(E_surfxml_actor):
7101 case YY_STATE_EOF(S_surfxml_actor):
7102 case YY_STATE_EOF(S_surfxml_actor_2):
7103 FAIL("Premature EOF: `</actor>' expected.");
7104         YY_BREAK
7105
7106 case 93:
7107 /* rule 93 can match eol */
7108 YY_RULE_SETUP
7109 FAIL("Starting tag <argument> is not allowed here.");
7110         YY_BREAK
7111 case 94:
7112 /* rule 94 can match eol */
7113 YY_RULE_SETUP
7114 {
7115   AX_surfxml_argument_value = 0;
7116   surfxml_argument_value_isset = 0;
7117   ENTER(AL_surfxml_argument); pushbuffer(0);
7118   }
7119         YY_BREAK
7120
7121 case 95:
7122 /* rule 95 can match eol */
7123 YY_RULE_SETUP
7124 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");} surfxml_argument_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
7125         YY_BREAK
7126 case 96:
7127 /* rule 96 can match eol */
7128 YY_RULE_SETUP
7129 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");}  surfxml_argument_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
7130         YY_BREAK
7131 case 97:
7132 YY_RULE_SETUP
7133 {
7134   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7135   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
7136  }
7137         YY_BREAK
7138 case 98:
7139 YY_RULE_SETUP
7140 {
7141   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7142   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
7143   switch (YY_START) {
7144    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
7145    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7146   }
7147  }
7148         YY_BREAK
7149 case 99:
7150 YY_RULE_SETUP
7151 FAIL("Unexpected character `%c' in attribute list of argument element.", yytext[0]);
7152         YY_BREAK
7153 case 100:
7154 YY_RULE_SETUP
7155 FAIL("Bad attribute `%s' in `argument' element start tag.",yytext);
7156         YY_BREAK
7157 case YY_STATE_EOF(AL_surfxml_argument):
7158 FAIL("EOF in attribute list of `argument' element.");
7159         YY_BREAK
7160
7161 case 101:
7162 /* rule 101 can match eol */
7163 YY_RULE_SETUP
7164 {
7165   LEAVE;
7166   ETag_surfxml_argument();
7167   popbuffer(); /* attribute */
7168   switch (YY_START) {
7169    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
7170    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7171   }
7172  }
7173         YY_BREAK
7174 case 102:
7175 /* rule 102 can match eol */
7176 YY_RULE_SETUP
7177 FAIL("Unexpected end-tag `%s': `</argument>' expected.",yytext);
7178         YY_BREAK
7179 case 103:
7180 YY_RULE_SETUP
7181 FAIL("Unexpected character `%c': `</argument>' expected.",yytext[0]);
7182         YY_BREAK
7183 case YY_STATE_EOF(E_surfxml_argument):
7184 FAIL("Premature EOF: `</argument>' expected.");
7185         YY_BREAK
7186
7187 case 104:
7188 /* rule 104 can match eol */
7189 YY_RULE_SETUP
7190 FAIL("Starting tag <backbone> is not allowed here.");
7191         YY_BREAK
7192 case 105:
7193 /* rule 105 can match eol */
7194 YY_RULE_SETUP
7195 {
7196   AX_surfxml_backbone_bandwidth = 0;
7197   surfxml_backbone_bandwidth_isset = 0;
7198   AX_surfxml_backbone_id = 0;
7199   surfxml_backbone_id_isset = 0;
7200   AX_surfxml_backbone_latency = 0;
7201   surfxml_backbone_latency_isset = 0;
7202   ENTER(AL_surfxml_backbone); pushbuffer(0);
7203   }
7204         YY_BREAK
7205
7206 case 106:
7207 /* rule 106 can match eol */
7208 YY_RULE_SETUP
7209 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");} surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_bandwidth);
7210         YY_BREAK
7211 case 107:
7212 /* rule 107 can match eol */
7213 YY_RULE_SETUP
7214 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");}  surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_bandwidth);
7215         YY_BREAK
7216 case 108:
7217 /* rule 108 can match eol */
7218 YY_RULE_SETUP
7219 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");} surfxml_backbone_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_id);
7220         YY_BREAK
7221 case 109:
7222 /* rule 109 can match eol */
7223 YY_RULE_SETUP
7224 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");}  surfxml_backbone_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_id);
7225         YY_BREAK
7226 case 110:
7227 /* rule 110 can match eol */
7228 YY_RULE_SETUP
7229 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");} surfxml_backbone_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_latency);
7230         YY_BREAK
7231 case 111:
7232 /* rule 111 can match eol */
7233 YY_RULE_SETUP
7234 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");}  surfxml_backbone_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_latency);
7235         YY_BREAK
7236 case 112:
7237 YY_RULE_SETUP
7238 {
7239   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7240   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7241   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7242   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
7243  }
7244         YY_BREAK
7245 case 113:
7246 YY_RULE_SETUP
7247 {
7248   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7249   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7250   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7251   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
7252   switch (YY_START) {
7253    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
7254    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7255    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
7256    case S_surfxml_zone_1: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
7257   }
7258  }
7259         YY_BREAK
7260 case 114:
7261 YY_RULE_SETUP
7262 FAIL("Unexpected character `%c' in attribute list of backbone element.", yytext[0]);
7263         YY_BREAK
7264 case 115:
7265 YY_RULE_SETUP
7266 FAIL("Bad attribute `%s' in `backbone' element start tag.",yytext);
7267         YY_BREAK
7268 case YY_STATE_EOF(AL_surfxml_backbone):
7269 FAIL("EOF in attribute list of `backbone' element.");
7270         YY_BREAK
7271
7272 case 116:
7273 /* rule 116 can match eol */
7274 YY_RULE_SETUP
7275 {
7276   LEAVE;
7277   ETag_surfxml_backbone();
7278   popbuffer(); /* attribute */
7279   switch (YY_START) {
7280    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
7281    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7282    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
7283    case S_surfxml_zone_1: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
7284   }
7285  }
7286         YY_BREAK
7287 case 117:
7288 /* rule 117 can match eol */
7289 YY_RULE_SETUP
7290 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",yytext);
7291         YY_BREAK
7292 case 118:
7293 YY_RULE_SETUP
7294 FAIL("Unexpected character `%c': `</backbone>' expected.",yytext[0]);
7295         YY_BREAK
7296 case YY_STATE_EOF(E_surfxml_backbone):
7297 FAIL("Premature EOF: `</backbone>' expected.");
7298         YY_BREAK
7299
7300 case 119:
7301 /* rule 119 can match eol */
7302 YY_RULE_SETUP
7303 FAIL("Starting tag <bypassASroute> is not allowed here.");
7304         YY_BREAK
7305 case 120:
7306 /* rule 120 can match eol */
7307 YY_RULE_SETUP
7308 {
7309   AX_surfxml_bypassASroute_dst = 0;
7310   surfxml_bypassASroute_dst_isset = 0;
7311   AX_surfxml_bypassASroute_gw___dst = 0;
7312   surfxml_bypassASroute_gw___dst_isset = 0;
7313   AX_surfxml_bypassASroute_gw___src = 0;
7314   surfxml_bypassASroute_gw___src_isset = 0;
7315   AX_surfxml_bypassASroute_src = 0;
7316   surfxml_bypassASroute_src_isset = 0;
7317   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
7318   }
7319         YY_BREAK
7320
7321 case 121:
7322 /* rule 121 can match eol */
7323 YY_RULE_SETUP
7324 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_dst);
7325         YY_BREAK
7326 case 122:
7327 /* rule 122 can match eol */
7328 YY_RULE_SETUP
7329 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_dst);
7330         YY_BREAK
7331 case 123:
7332 /* rule 123 can match eol */
7333 YY_RULE_SETUP
7334 if (surfxml_bypassASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw___dst);
7335         YY_BREAK
7336 case 124:
7337 /* rule 124 can match eol */
7338 YY_RULE_SETUP
7339 if (surfxml_bypassASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw___dst);
7340         YY_BREAK
7341 case 125:
7342 /* rule 125 can match eol */
7343 YY_RULE_SETUP
7344 if (surfxml_bypassASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw___src);
7345         YY_BREAK
7346 case 126:
7347 /* rule 126 can match eol */
7348 YY_RULE_SETUP
7349 if (surfxml_bypassASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw___src);
7350         YY_BREAK
7351 case 127:
7352 /* rule 127 can match eol */
7353 YY_RULE_SETUP
7354 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");} surfxml_bypassASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_src);
7355         YY_BREAK
7356 case 128:
7357 /* rule 128 can match eol */
7358 YY_RULE_SETUP
7359 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_src);
7360         YY_BREAK
7361 case 129:
7362 YY_RULE_SETUP
7363 {
7364   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7365   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7366   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7367   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7368   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
7369  }
7370         YY_BREAK
7371 case 130:
7372 YY_RULE_SETUP
7373 {
7374   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7375   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7376   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7377   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7378   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
7379   switch (YY_START) {
7380    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
7381    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
7382   }
7383  }
7384         YY_BREAK
7385 case 131:
7386 YY_RULE_SETUP
7387 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", yytext[0]);
7388         YY_BREAK
7389 case 132:
7390 YY_RULE_SETUP
7391 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",yytext);
7392         YY_BREAK
7393 case YY_STATE_EOF(AL_surfxml_bypassASroute):
7394 FAIL("EOF in attribute list of `bypassASroute' element.");
7395         YY_BREAK
7396
7397 case 133:
7398 /* rule 133 can match eol */
7399 YY_RULE_SETUP
7400 {
7401   LEAVE;
7402   ETag_surfxml_bypassASroute();
7403   popbuffer(); /* attribute */
7404   switch (YY_START) {
7405    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
7406    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
7407   }
7408  }
7409         YY_BREAK
7410 case 134:
7411 /* rule 134 can match eol */
7412 YY_RULE_SETUP
7413 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",yytext);
7414         YY_BREAK
7415 case 135:
7416 YY_RULE_SETUP
7417 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",yytext[0]);
7418         YY_BREAK
7419 case YY_STATE_EOF(E_surfxml_bypassASroute):
7420 case YY_STATE_EOF(S_surfxml_bypassASroute):
7421 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
7422 FAIL("Premature EOF: `</bypassASroute>' expected.");
7423         YY_BREAK
7424
7425 case 136:
7426 /* rule 136 can match eol */
7427 YY_RULE_SETUP
7428 FAIL("Starting tag <bypassRoute> is not allowed here.");
7429         YY_BREAK
7430 case 137:
7431 /* rule 137 can match eol */
7432 YY_RULE_SETUP
7433 {
7434   AX_surfxml_bypassRoute_dst = 0;
7435   surfxml_bypassRoute_dst_isset = 0;
7436   AX_surfxml_bypassRoute_src = 0;
7437   surfxml_bypassRoute_src_isset = 0;
7438   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
7439   }
7440         YY_BREAK
7441
7442 case 138:
7443 /* rule 138 can match eol */
7444 YY_RULE_SETUP
7445 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");} surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_dst);
7446         YY_BREAK
7447 case 139:
7448 /* rule 139 can match eol */
7449 YY_RULE_SETUP
7450 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");}  surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_dst);
7451         YY_BREAK
7452 case 140:
7453 /* rule 140 can match eol */
7454 YY_RULE_SETUP
7455 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");} surfxml_bypassRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_src);
7456         YY_BREAK
7457 case 141:
7458 /* rule 141 can match eol */
7459 YY_RULE_SETUP
7460 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");}  surfxml_bypassRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_src);
7461         YY_BREAK
7462 case 142:
7463 YY_RULE_SETUP
7464 {
7465   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7466   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7467   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
7468  }
7469         YY_BREAK
7470 case 143:
7471 YY_RULE_SETUP
7472 {
7473   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7474   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7475   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
7476   switch (YY_START) {
7477    case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_16); break;
7478    case S_surfxml_zone: case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
7479   }
7480  }
7481         YY_BREAK
7482 case 144:
7483 YY_RULE_SETUP
7484 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", yytext[0]);
7485         YY_BREAK
7486 case 145:
7487 YY_RULE_SETUP
7488 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",yytext);
7489         YY_BREAK
7490 case YY_STATE_EOF(AL_surfxml_bypassRoute):
7491 FAIL("EOF in attribute list of `bypassRoute' element.");
7492         YY_BREAK
7493
7494 case 146:
7495 /* rule 146 can match eol */
7496 YY_RULE_SETUP
7497 {
7498   LEAVE;
7499   ETag_surfxml_bypassRoute();
7500   popbuffer(); /* attribute */
7501   switch (YY_START) {
7502    case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_16); break;
7503    case S_surfxml_zone: case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
7504   }
7505  }
7506         YY_BREAK
7507 case 147:
7508 /* rule 147 can match eol */
7509 YY_RULE_SETUP
7510 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",yytext);
7511         YY_BREAK
7512 case 148:
7513 YY_RULE_SETUP
7514 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",yytext[0]);
7515         YY_BREAK
7516 case YY_STATE_EOF(E_surfxml_bypassRoute):
7517 case YY_STATE_EOF(S_surfxml_bypassRoute):
7518 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
7519 FAIL("Premature EOF: `</bypassRoute>' expected.");
7520         YY_BREAK
7521
7522 case 149:
7523 /* rule 149 can match eol */
7524 YY_RULE_SETUP
7525 FAIL("Starting tag <bypassZoneRoute> is not allowed here.");
7526         YY_BREAK
7527 case 150:
7528 /* rule 150 can match eol */
7529 YY_RULE_SETUP
7530 {
7531   AX_surfxml_bypassZoneRoute_dst = 0;
7532   surfxml_bypassZoneRoute_dst_isset = 0;
7533   AX_surfxml_bypassZoneRoute_gw___dst = 0;
7534   surfxml_bypassZoneRoute_gw___dst_isset = 0;
7535   AX_surfxml_bypassZoneRoute_gw___src = 0;
7536   surfxml_bypassZoneRoute_gw___src_isset = 0;
7537   AX_surfxml_bypassZoneRoute_src = 0;
7538   surfxml_bypassZoneRoute_src_isset = 0;
7539   ENTER(AL_surfxml_bypassZoneRoute); pushbuffer(0);
7540   }
7541         YY_BREAK
7542
7543 case 151:
7544 /* rule 151 can match eol */
7545 YY_RULE_SETUP
7546 if (surfxml_bypassZoneRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassZoneRoute>");} surfxml_bypassZoneRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassZoneRoute_dst);
7547         YY_BREAK
7548 case 152:
7549 /* rule 152 can match eol */
7550 YY_RULE_SETUP
7551 if (surfxml_bypassZoneRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassZoneRoute>");}  surfxml_bypassZoneRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassZoneRoute_dst);
7552         YY_BREAK
7553 case 153:
7554 /* rule 153 can match eol */
7555 YY_RULE_SETUP
7556 if (surfxml_bypassZoneRoute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassZoneRoute>");} surfxml_bypassZoneRoute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassZoneRoute_gw___dst);
7557         YY_BREAK
7558 case 154:
7559 /* rule 154 can match eol */
7560 YY_RULE_SETUP
7561 if (surfxml_bypassZoneRoute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassZoneRoute>");}  surfxml_bypassZoneRoute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassZoneRoute_gw___dst);
7562         YY_BREAK
7563 case 155:
7564 /* rule 155 can match eol */
7565 YY_RULE_SETUP
7566 if (surfxml_bypassZoneRoute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassZoneRoute>");} surfxml_bypassZoneRoute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassZoneRoute_gw___src);
7567         YY_BREAK
7568 case 156:
7569 /* rule 156 can match eol */
7570 YY_RULE_SETUP
7571 if (surfxml_bypassZoneRoute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassZoneRoute>");}  surfxml_bypassZoneRoute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassZoneRoute_gw___src);
7572         YY_BREAK
7573 case 157:
7574 /* rule 157 can match eol */
7575 YY_RULE_SETUP
7576 if (surfxml_bypassZoneRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassZoneRoute>");} surfxml_bypassZoneRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassZoneRoute_src);
7577         YY_BREAK
7578 case 158:
7579 /* rule 158 can match eol */
7580 YY_RULE_SETUP
7581 if (surfxml_bypassZoneRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassZoneRoute>");}  surfxml_bypassZoneRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassZoneRoute_src);
7582         YY_BREAK
7583 case 159:
7584 YY_RULE_SETUP
7585 {
7586   if (!AX_surfxml_bypassZoneRoute_dst) FAIL("Required attribute `dst' not set for `bypassZoneRoute' element.");
7587   if (!AX_surfxml_bypassZoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassZoneRoute' element.");
7588   if (!AX_surfxml_bypassZoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassZoneRoute' element.");
7589   if (!AX_surfxml_bypassZoneRoute_src) FAIL("Required attribute `src' not set for `bypassZoneRoute' element.");
7590   LEAVE; STag_surfxml_bypassZoneRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassZoneRoute);
7591  }
7592         YY_BREAK
7593 case 160:
7594 YY_RULE_SETUP
7595 {
7596   if (!AX_surfxml_bypassZoneRoute_dst) FAIL("Required attribute `dst' not set for `bypassZoneRoute' element.");
7597   if (!AX_surfxml_bypassZoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassZoneRoute' element.");
7598   if (!AX_surfxml_bypassZoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassZoneRoute' element.");
7599   if (!AX_surfxml_bypassZoneRoute_src) FAIL("Required attribute `src' not set for `bypassZoneRoute' element.");
7600   LEAVE; STag_surfxml_bypassZoneRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassZoneRoute(); popbuffer(); /* attribute */
7601   switch (YY_START) {
7602    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
7603    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
7604   }
7605  }
7606         YY_BREAK
7607 case 161:
7608 YY_RULE_SETUP
7609 FAIL("Unexpected character `%c' in attribute list of bypassZoneRoute element.", yytext[0]);
7610         YY_BREAK
7611 case 162:
7612 YY_RULE_SETUP
7613 FAIL("Bad attribute `%s' in `bypassZoneRoute' element start tag.",yytext);
7614         YY_BREAK
7615 case YY_STATE_EOF(AL_surfxml_bypassZoneRoute):
7616 FAIL("EOF in attribute list of `bypassZoneRoute' element.");
7617         YY_BREAK
7618
7619 case 163:
7620 /* rule 163 can match eol */
7621 YY_RULE_SETUP
7622 {
7623   LEAVE;
7624   ETag_surfxml_bypassZoneRoute();
7625   popbuffer(); /* attribute */
7626   switch (YY_START) {
7627    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
7628    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
7629   }
7630  }
7631         YY_BREAK
7632 case 164:
7633 /* rule 164 can match eol */
7634 YY_RULE_SETUP
7635 FAIL("Unexpected end-tag `%s': `</bypassZoneRoute>' expected.",yytext);
7636         YY_BREAK
7637 case 165:
7638 YY_RULE_SETUP
7639 FAIL("Unexpected character `%c': `</bypassZoneRoute>' expected.",yytext[0]);
7640         YY_BREAK
7641 case YY_STATE_EOF(E_surfxml_bypassZoneRoute):
7642 case YY_STATE_EOF(S_surfxml_bypassZoneRoute):
7643 case YY_STATE_EOF(S_surfxml_bypassZoneRoute_2):
7644 FAIL("Premature EOF: `</bypassZoneRoute>' expected.");
7645         YY_BREAK
7646
7647 case 166:
7648 /* rule 166 can match eol */
7649 YY_RULE_SETUP
7650 FAIL("Starting tag <cabinet> is not allowed here.");
7651         YY_BREAK
7652 case 167:
7653 /* rule 167 can match eol */
7654 YY_RULE_SETUP
7655 {
7656   AX_surfxml_cabinet_bw = 0;
7657   surfxml_cabinet_bw_isset = 0;
7658   AX_surfxml_cabinet_id = 0;
7659   surfxml_cabinet_id_isset = 0;
7660   AX_surfxml_cabinet_lat = 0;
7661   surfxml_cabinet_lat_isset = 0;
7662   AX_surfxml_cabinet_prefix = 0;
7663   surfxml_cabinet_prefix_isset = 0;
7664   AX_surfxml_cabinet_radical = 0;
7665   surfxml_cabinet_radical_isset = 0;
7666   AX_surfxml_cabinet_speed = 0;
7667   surfxml_cabinet_speed_isset = 0;
7668   AX_surfxml_cabinet_suffix = 0;
7669   surfxml_cabinet_suffix_isset = 0;
7670   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7671   }
7672         YY_BREAK
7673
7674 case 168:
7675 /* rule 168 can match eol */
7676 YY_RULE_SETUP
7677 if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");} surfxml_cabinet_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_bw);
7678         YY_BREAK
7679 case 169:
7680 /* rule 169 can match eol */
7681 YY_RULE_SETUP
7682 if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");}  surfxml_cabinet_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_bw);
7683         YY_BREAK
7684 case 170:
7685 /* rule 170 can match eol */
7686 YY_RULE_SETUP
7687 if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");} surfxml_cabinet_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_id);
7688         YY_BREAK
7689 case 171:
7690 /* rule 171 can match eol */
7691 YY_RULE_SETUP
7692 if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");}  surfxml_cabinet_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_id);
7693         YY_BREAK
7694 case 172:
7695 /* rule 172 can match eol */
7696 YY_RULE_SETUP
7697 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");} surfxml_cabinet_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_lat);
7698         YY_BREAK
7699 case 173:
7700 /* rule 173 can match eol */
7701 YY_RULE_SETUP
7702 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");}  surfxml_cabinet_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_lat);
7703         YY_BREAK
7704 case 174:
7705 /* rule 174 can match eol */
7706 YY_RULE_SETUP
7707 if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");} surfxml_cabinet_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_prefix);
7708         YY_BREAK
7709 case 175:
7710 /* rule 175 can match eol */
7711 YY_RULE_SETUP
7712 if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");}  surfxml_cabinet_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_prefix);
7713         YY_BREAK
7714 case 176:
7715 /* rule 176 can match eol */
7716 YY_RULE_SETUP
7717 if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");} surfxml_cabinet_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_radical);
7718         YY_BREAK
7719 case 177:
7720 /* rule 177 can match eol */
7721 YY_RULE_SETUP
7722 if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");}  surfxml_cabinet_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_radical);
7723         YY_BREAK
7724 case 178:
7725 /* rule 178 can match eol */
7726 YY_RULE_SETUP
7727 if (surfxml_cabinet_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cabinet>");} surfxml_cabinet_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_speed);
7728         YY_BREAK
7729 case 179:
7730 /* rule 179 can match eol */
7731 YY_RULE_SETUP
7732 if (surfxml_cabinet_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cabinet>");}  surfxml_cabinet_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_speed);
7733         YY_BREAK
7734 case 180:
7735 /* rule 180 can match eol */
7736 YY_RULE_SETUP
7737 if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");} surfxml_cabinet_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_suffix);
7738         YY_BREAK
7739 case 181:
7740 /* rule 181 can match eol */
7741 YY_RULE_SETUP
7742 if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");}  surfxml_cabinet_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_suffix);
7743         YY_BREAK
7744 case 182:
7745 YY_RULE_SETUP
7746 {
7747   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7748   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7749   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7750   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7751   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7752   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
7753   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7754   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7755  }
7756         YY_BREAK
7757 case 183:
7758 YY_RULE_SETUP
7759 {
7760   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7761   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7762   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7763   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7764   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7765   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
7766   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7767   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7768   switch (YY_START) {
7769    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
7770    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7771    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7772    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7773    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
7774    case S_surfxml_zone_1: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
7775   }
7776  }
7777         YY_BREAK
7778 case 184:
7779 YY_RULE_SETUP
7780 FAIL("Unexpected character `%c' in attribute list of cabinet element.", yytext[0]);
7781         YY_BREAK
7782 case 185:
7783 YY_RULE_SETUP
7784 FAIL("Bad attribute `%s' in `cabinet' element start tag.",yytext);
7785         YY_BREAK
7786 case YY_STATE_EOF(AL_surfxml_cabinet):
7787 FAIL("EOF in attribute list of `cabinet' element.");
7788         YY_BREAK
7789
7790 case 186:
7791 /* rule 186 can match eol */
7792 YY_RULE_SETUP
7793 {
7794   LEAVE;
7795   ETag_surfxml_cabinet();
7796   popbuffer(); /* attribute */
7797   switch (YY_START) {
7798    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
7799    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7800    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7801    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7802    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
7803    case S_surfxml_zone_1: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
7804   }
7805  }
7806         YY_BREAK
7807 case 187:
7808 /* rule 187 can match eol */
7809 YY_RULE_SETUP
7810 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",yytext);
7811         YY_BREAK
7812 case 188:
7813 YY_RULE_SETUP
7814 FAIL("Unexpected character `%c': `</cabinet>' expected.",yytext[0]);
7815         YY_BREAK
7816 case YY_STATE_EOF(E_surfxml_cabinet):
7817 FAIL("Premature EOF: `</cabinet>' expected.");
7818         YY_BREAK
7819
7820 case 189:
7821 /* rule 189 can match eol */
7822 YY_RULE_SETUP
7823 FAIL("Starting tag <cluster> is not allowed here.");
7824         YY_BREAK
7825 case 190:
7826 /* rule 190 can match eol */
7827 YY_RULE_SETUP
7828 {
7829   AX_surfxml_cluster_bb___bw = 0;
7830   surfxml_cluster_bb___bw_isset = 0;
7831   AX_surfxml_cluster_bb___lat = 28;
7832   surfxml_cluster_bb___lat_isset = 0;
7833   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7834   surfxml_cluster_bb___sharing___policy_isset = 0;
7835   AX_surfxml_cluster_bw = 0;
7836   surfxml_cluster_bw_isset = 0;
7837   AX_surfxml_cluster_core = 26;
7838   surfxml_cluster_core_isset = 0;
7839   AX_surfxml_cluster_id = 0;
7840   surfxml_cluster_id_isset = 0;
7841   AX_surfxml_cluster_lat = 0;
7842   surfxml_cluster_lat_isset = 0;
7843   AX_surfxml_cluster_limiter___link = 0;
7844   surfxml_cluster_limiter___link_isset = 0;
7845   AX_surfxml_cluster_loopback___bw = 0;
7846   surfxml_cluster_loopback___bw_isset = 0;
7847   AX_surfxml_cluster_loopback___lat = 0;
7848   surfxml_cluster_loopback___lat_isset = 0;
7849   AX_surfxml_cluster_prefix = 0;
7850   surfxml_cluster_prefix_isset = 0;
7851   AX_surfxml_cluster_radical = 0;
7852   surfxml_cluster_radical_isset = 0;
7853   AX_surfxml_cluster_router___id = 0;
7854   surfxml_cluster_router___id_isset = 0;
7855   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SPLITDUPLEX;
7856   surfxml_cluster_sharing___policy_isset = 0;
7857   AX_surfxml_cluster_speed = 0;
7858   surfxml_cluster_speed_isset = 0;
7859   AX_surfxml_cluster_suffix = 0;
7860   surfxml_cluster_suffix_isset = 0;
7861   AX_surfxml_cluster_topo___parameters = 0;
7862   surfxml_cluster_topo___parameters_isset = 0;
7863   AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7864   surfxml_cluster_topology_isset = 0;
7865   ENTER(AL_surfxml_cluster); pushbuffer(0);
7866   }
7867         YY_BREAK
7868
7869 case 191:
7870 /* rule 191 can match eol */
7871 YY_RULE_SETUP
7872 if (surfxml_cluster_bb___bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");} surfxml_cluster_bb___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb___bw);
7873         YY_BREAK
7874 case 192:
7875 /* rule 192 can match eol */
7876 YY_RULE_SETUP
7877 if (surfxml_cluster_bb___bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");}  surfxml_cluster_bb___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb___bw);
7878         YY_BREAK
7879 case 193:
7880 /* rule 193 can match eol */
7881 YY_RULE_SETUP
7882 if (surfxml_cluster_bb___lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");} surfxml_cluster_bb___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb___lat);
7883         YY_BREAK
7884 case 194:
7885 /* rule 194 can match eol */
7886 YY_RULE_SETUP
7887 if (surfxml_cluster_bb___lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");}  surfxml_cluster_bb___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb___lat);
7888         YY_BREAK
7889 case 195:
7890 /* rule 195 can match eol */
7891 case 196:
7892 /* rule 196 can match eol */
7893 YY_RULE_SETUP
7894 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7895         YY_BREAK
7896 case 197:
7897 /* rule 197 can match eol */
7898 case 198:
7899 /* rule 198 can match eol */
7900 YY_RULE_SETUP
7901 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7902         YY_BREAK
7903 case 199:
7904 /* rule 199 can match eol */
7905 YY_RULE_SETUP
7906 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");} surfxml_cluster_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
7907         YY_BREAK
7908 case 200:
7909 /* rule 200 can match eol */
7910 YY_RULE_SETUP
7911 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");}  surfxml_cluster_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
7912         YY_BREAK
7913 case 201:
7914 /* rule 201 can match eol */
7915 YY_RULE_SETUP
7916 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");} surfxml_cluster_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_core);
7917         YY_BREAK
7918 case 202:
7919 /* rule 202 can match eol */
7920 YY_RULE_SETUP
7921 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");}  surfxml_cluster_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_core);
7922         YY_BREAK
7923 case 203:
7924 /* rule 203 can match eol */
7925 YY_RULE_SETUP
7926 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");} surfxml_cluster_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
7927         YY_BREAK
7928 case 204:
7929 /* rule 204 can match eol */
7930 YY_RULE_SETUP
7931 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");}  surfxml_cluster_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
7932         YY_BREAK
7933 case 205:
7934 /* rule 205 can match eol */
7935 YY_RULE_SETUP
7936 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");} surfxml_cluster_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
7937         YY_BREAK
7938 case 206:
7939 /* rule 206 can match eol */
7940 YY_RULE_SETUP
7941 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");}  surfxml_cluster_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
7942         YY_BREAK
7943 case 207:
7944 /* rule 207 can match eol */
7945 YY_RULE_SETUP
7946 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");} surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_limiter___link);
7947         YY_BREAK
7948 case 208:
7949 /* rule 208 can match eol */
7950 YY_RULE_SETUP
7951 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");}  surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_limiter___link);
7952         YY_BREAK
7953 case 209:
7954 /* rule 209 can match eol */
7955 YY_RULE_SETUP
7956 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");} surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___bw);
7957         YY_BREAK
7958 case 210:
7959 /* rule 210 can match eol */
7960 YY_RULE_SETUP
7961 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");}  surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___bw);
7962         YY_BREAK
7963 case 211:
7964 /* rule 211 can match eol */
7965 YY_RULE_SETUP
7966 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");} surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___lat);
7967         YY_BREAK
7968 case 212:
7969 /* rule 212 can match eol */
7970 YY_RULE_SETUP
7971 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");}  surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___lat);
7972         YY_BREAK
7973 case 213:
7974 /* rule 213 can match eol */
7975 YY_RULE_SETUP
7976 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");} surfxml_cluster_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
7977         YY_BREAK
7978 case 214:
7979 /* rule 214 can match eol */
7980 YY_RULE_SETUP
7981 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");}  surfxml_cluster_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
7982         YY_BREAK
7983 case 215:
7984 /* rule 215 can match eol */
7985 YY_RULE_SETUP
7986 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");} surfxml_cluster_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
7987         YY_BREAK
7988 case 216:
7989 /* rule 216 can match eol */
7990 YY_RULE_SETUP
7991 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");}  surfxml_cluster_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
7992         YY_BREAK
7993 case 217:
7994 /* rule 217 can match eol */
7995 YY_RULE_SETUP
7996 if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");} surfxml_cluster_router___id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_router___id);
7997         YY_BREAK
7998 case 218:
7999 /* rule 218 can match eol */
8000 YY_RULE_SETUP
8001 if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");}  surfxml_cluster_router___id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_router___id);
8002         YY_BREAK
8003 case 219:
8004 /* rule 219 can match eol */
8005 case 220:
8006 /* rule 220 can match eol */
8007 YY_RULE_SETUP
8008 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
8009         YY_BREAK
8010 case 221:
8011 /* rule 221 can match eol */
8012 case 222:
8013 /* rule 222 can match eol */
8014 YY_RULE_SETUP
8015 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SPLITDUPLEX;
8016         YY_BREAK
8017 case 223:
8018 /* rule 223 can match eol */
8019 case 224:
8020 /* rule 224 can match eol */
8021 YY_RULE_SETUP
8022 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
8023         YY_BREAK
8024 case 225:
8025 /* rule 225 can match eol */
8026 case 226:
8027 /* rule 226 can match eol */
8028 YY_RULE_SETUP
8029 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
8030         YY_BREAK
8031 case 227:
8032 /* rule 227 can match eol */
8033 YY_RULE_SETUP
8034 if (surfxml_cluster_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cluster>");} surfxml_cluster_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_speed);
8035         YY_BREAK
8036 case 228:
8037 /* rule 228 can match eol */
8038 YY_RULE_SETUP
8039 if (surfxml_cluster_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cluster>");}  surfxml_cluster_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_speed);
8040         YY_BREAK
8041 case 229:
8042 /* rule 229 can match eol */
8043 YY_RULE_SETUP
8044 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");} surfxml_cluster_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
8045         YY_BREAK
8046 case 230:
8047 /* rule 230 can match eol */
8048 YY_RULE_SETUP
8049 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");}  surfxml_cluster_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
8050         YY_BREAK
8051 case 231:
8052 /* rule 231 can match eol */
8053 YY_RULE_SETUP
8054 if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");} surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_topo___parameters);
8055         YY_BREAK
8056 case 232:
8057 /* rule 232 can match eol */
8058 YY_RULE_SETUP
8059 if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");}  surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_topo___parameters);
8060         YY_BREAK
8061 case 233:
8062 /* rule 233 can match eol */
8063 case 234:
8064 /* rule 234 can match eol */
8065 YY_RULE_SETUP
8066 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
8067         YY_BREAK
8068 case 235:
8069 /* rule 235 can match eol */
8070 case 236:
8071 /* rule 236 can match eol */
8072 YY_RULE_SETUP
8073 A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
8074         YY_BREAK
8075 case 237:
8076 /* rule 237 can match eol */
8077 case 238:
8078 /* rule 238 can match eol */
8079 YY_RULE_SETUP
8080 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FAT___TREE;
8081         YY_BREAK
8082 case 239:
8083 /* rule 239 can match eol */
8084 case 240:
8085 /* rule 240 can match eol */
8086 YY_RULE_SETUP
8087 A_surfxml_cluster_topology = A_surfxml_cluster_topology_DRAGONFLY;
8088         YY_BREAK
8089 case 241:
8090 YY_RULE_SETUP
8091 {
8092   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
8093   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
8094   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
8095   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
8096   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
8097   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
8098   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
8099   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
8100  }
8101         YY_BREAK
8102 case 242:
8103 YY_RULE_SETUP
8104 {
8105   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
8106   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
8107   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
8108   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
8109   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
8110   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
8111   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
8112   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
8113   switch (YY_START) {
8114    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8115    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8116    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8117    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8118   }
8119  }
8120         YY_BREAK
8121 case 243:
8122 YY_RULE_SETUP
8123 FAIL("Unexpected character `%c' in attribute list of cluster element.", yytext[0]);
8124         YY_BREAK
8125 case 244:
8126 YY_RULE_SETUP
8127 FAIL("Bad attribute `%s' in `cluster' element start tag.",yytext);
8128         YY_BREAK
8129 case YY_STATE_EOF(AL_surfxml_cluster):
8130 FAIL("EOF in attribute list of `cluster' element.");
8131         YY_BREAK
8132
8133 case 245:
8134 /* rule 245 can match eol */
8135 YY_RULE_SETUP
8136 {
8137   LEAVE;
8138   ETag_surfxml_cluster();
8139   popbuffer(); /* attribute */
8140   switch (YY_START) {
8141    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8142    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8143    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8144    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8145   }
8146  }
8147         YY_BREAK
8148 case 246:
8149 /* rule 246 can match eol */
8150 YY_RULE_SETUP
8151 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",yytext);
8152         YY_BREAK
8153 case 247:
8154 YY_RULE_SETUP
8155 FAIL("Unexpected character `%c': `</cluster>' expected.",yytext[0]);
8156         YY_BREAK
8157 case YY_STATE_EOF(E_surfxml_cluster):
8158 case YY_STATE_EOF(S_surfxml_cluster):
8159 case YY_STATE_EOF(S_surfxml_cluster_2):
8160 FAIL("Premature EOF: `</cluster>' expected.");
8161         YY_BREAK
8162
8163 case 248:
8164 /* rule 248 can match eol */
8165 YY_RULE_SETUP
8166 FAIL("Starting tag <config> is not allowed here.");
8167         YY_BREAK
8168 case 249:
8169 /* rule 249 can match eol */
8170 YY_RULE_SETUP
8171 {
8172   AX_surfxml_config_id = 0;
8173   surfxml_config_id_isset = 0;
8174   ENTER(AL_surfxml_config); pushbuffer(0);
8175   }
8176         YY_BREAK
8177
8178 case 250:
8179 /* rule 250 can match eol */
8180 YY_RULE_SETUP
8181 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");} surfxml_config_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_config_id);
8182         YY_BREAK
8183 case 251:
8184 /* rule 251 can match eol */
8185 YY_RULE_SETUP
8186 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");}  surfxml_config_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_config_id);
8187         YY_BREAK
8188 case 252:
8189 YY_RULE_SETUP
8190 {
8191   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
8192  }
8193         YY_BREAK
8194 case 253:
8195 YY_RULE_SETUP
8196 {
8197   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
8198   switch (YY_START) {
8199    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8200   }
8201  }
8202         YY_BREAK
8203 case 254:
8204 YY_RULE_SETUP
8205 FAIL("Unexpected character `%c' in attribute list of config element.", yytext[0]);
8206         YY_BREAK
8207 case 255:
8208 YY_RULE_SETUP
8209 FAIL("Bad attribute `%s' in `config' element start tag.",yytext);
8210         YY_BREAK
8211 case YY_STATE_EOF(AL_surfxml_config):
8212 FAIL("EOF in attribute list of `config' element.");
8213         YY_BREAK
8214
8215 case 256:
8216 /* rule 256 can match eol */
8217 YY_RULE_SETUP
8218 {
8219   LEAVE;
8220   ETag_surfxml_config();
8221   popbuffer(); /* attribute */
8222   switch (YY_START) {
8223    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8224   }
8225  }
8226         YY_BREAK
8227 case 257:
8228 /* rule 257 can match eol */
8229 YY_RULE_SETUP
8230 FAIL("Unexpected end-tag `%s': `</config>' expected.",yytext);
8231         YY_BREAK
8232 case 258:
8233 YY_RULE_SETUP
8234 FAIL("Unexpected character `%c': `</config>' expected.",yytext[0]);
8235         YY_BREAK
8236 case YY_STATE_EOF(E_surfxml_config):
8237 case YY_STATE_EOF(S_surfxml_config):
8238 case YY_STATE_EOF(S_surfxml_config_2):
8239 FAIL("Premature EOF: `</config>' expected.");
8240         YY_BREAK
8241
8242 case 259:
8243 /* rule 259 can match eol */
8244 YY_RULE_SETUP
8245 FAIL("Starting tag <host> is not allowed here.");
8246         YY_BREAK
8247 case 260:
8248 /* rule 260 can match eol */
8249 YY_RULE_SETUP
8250 {
8251   AX_surfxml_host_availability___file = 0;
8252   surfxml_host_availability___file_isset = 0;
8253   AX_surfxml_host_coordinates = 0;
8254   surfxml_host_coordinates_isset = 0;
8255   AX_surfxml_host_core = 20;
8256   surfxml_host_core_isset = 0;
8257   AX_surfxml_host_id = 0;
8258   surfxml_host_id_isset = 0;
8259   AX_surfxml_host_pstate = 22;
8260   surfxml_host_pstate_isset = 0;
8261   AX_surfxml_host_speed = 0;
8262   surfxml_host_speed_isset = 0;
8263   AX_surfxml_host_state___file = 0;
8264   surfxml_host_state___file_isset = 0;
8265   ENTER(AL_surfxml_host); pushbuffer(0);
8266   }
8267         YY_BREAK
8268
8269 case 261:
8270 /* rule 261 can match eol */
8271 YY_RULE_SETUP
8272 if (surfxml_host_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");} surfxml_host_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability___file);
8273         YY_BREAK
8274 case 262:
8275 /* rule 262 can match eol */
8276 YY_RULE_SETUP
8277 if (surfxml_host_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");}  surfxml_host_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability___file);
8278         YY_BREAK
8279 case 263:
8280 /* rule 263 can match eol */
8281 YY_RULE_SETUP
8282 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");} surfxml_host_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_coordinates);
8283         YY_BREAK
8284 case 264:
8285 /* rule 264 can match eol */
8286 YY_RULE_SETUP
8287 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");}  surfxml_host_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_coordinates);
8288         YY_BREAK
8289 case 265:
8290 /* rule 265 can match eol */
8291 YY_RULE_SETUP
8292 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");} surfxml_host_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_core);
8293         YY_BREAK
8294 case 266:
8295 /* rule 266 can match eol */
8296 YY_RULE_SETUP
8297 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");}  surfxml_host_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_core);
8298         YY_BREAK
8299 case 267:
8300 /* rule 267 can match eol */
8301 YY_RULE_SETUP
8302 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");} surfxml_host_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
8303         YY_BREAK
8304 case 268:
8305 /* rule 268 can match eol */
8306 YY_RULE_SETUP
8307 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");}  surfxml_host_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
8308         YY_BREAK
8309 case 269:
8310 /* rule 269 can match eol */
8311 YY_RULE_SETUP
8312 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");} surfxml_host_pstate_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_pstate);
8313         YY_BREAK
8314 case 270:
8315 /* rule 270 can match eol */
8316 YY_RULE_SETUP
8317 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");}  surfxml_host_pstate_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_pstate);
8318         YY_BREAK
8319 case 271:
8320 /* rule 271 can match eol */
8321 YY_RULE_SETUP
8322 if (surfxml_host_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_host>");} surfxml_host_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_speed);
8323         YY_BREAK
8324 case 272:
8325 /* rule 272 can match eol */
8326 YY_RULE_SETUP
8327 if (surfxml_host_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_host>");}  surfxml_host_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_speed);
8328         YY_BREAK
8329 case 273:
8330 /* rule 273 can match eol */
8331 YY_RULE_SETUP
8332 if (surfxml_host_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");} surfxml_host_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state___file);
8333         YY_BREAK
8334 case 274:
8335 /* rule 274 can match eol */
8336 YY_RULE_SETUP
8337 if (surfxml_host_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");}  surfxml_host_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state___file);
8338         YY_BREAK
8339 case 275:
8340 YY_RULE_SETUP
8341 {
8342   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
8343   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
8344   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
8345  }
8346         YY_BREAK
8347 case 276:
8348 YY_RULE_SETUP
8349 {
8350   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
8351   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
8352   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
8353   switch (YY_START) {
8354    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8355    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
8356   }
8357  }
8358         YY_BREAK
8359 case 277:
8360 YY_RULE_SETUP
8361 FAIL("Unexpected character `%c' in attribute list of host element.", yytext[0]);
8362         YY_BREAK
8363 case 278:
8364 YY_RULE_SETUP
8365 FAIL("Bad attribute `%s' in `host' element start tag.",yytext);
8366         YY_BREAK
8367 case YY_STATE_EOF(AL_surfxml_host):
8368 FAIL("EOF in attribute list of `host' element.");
8369         YY_BREAK
8370
8371 case 279:
8372 /* rule 279 can match eol */
8373 YY_RULE_SETUP
8374 {
8375   LEAVE;
8376   ETag_surfxml_host();
8377   popbuffer(); /* attribute */
8378   switch (YY_START) {
8379    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8380    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
8381   }
8382  }
8383         YY_BREAK
8384 case 280:
8385 /* rule 280 can match eol */
8386 YY_RULE_SETUP
8387 FAIL("Unexpected end-tag `%s': `</host>' expected.",yytext);
8388         YY_BREAK
8389 case 281:
8390 YY_RULE_SETUP
8391 FAIL("Unexpected character `%c': `</host>' expected.",yytext[0]);
8392         YY_BREAK
8393 case YY_STATE_EOF(E_surfxml_host):
8394 case YY_STATE_EOF(S_surfxml_host):
8395 case YY_STATE_EOF(S_surfxml_host_2):
8396 FAIL("Premature EOF: `</host>' expected.");
8397         YY_BREAK
8398
8399 case 282:
8400 /* rule 282 can match eol */
8401 YY_RULE_SETUP
8402 FAIL("Starting tag <host_link> is not allowed here.");
8403         YY_BREAK
8404 case 283:
8405 /* rule 283 can match eol */
8406 YY_RULE_SETUP
8407 {
8408   AX_surfxml_host___link_down = 0;
8409   surfxml_host___link_down_isset = 0;
8410   AX_surfxml_host___link_id = 0;
8411   surfxml_host___link_id_isset = 0;
8412   AX_surfxml_host___link_up = 0;
8413   surfxml_host___link_up_isset = 0;
8414   ENTER(AL_surfxml_host___link); pushbuffer(0);
8415   }
8416         YY_BREAK
8417
8418 case 284:
8419 /* rule 284 can match eol */
8420 YY_RULE_SETUP
8421 if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");} surfxml_host___link_down_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_down);
8422         YY_BREAK
8423 case 285:
8424 /* rule 285 can match eol */
8425 YY_RULE_SETUP
8426 if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");}  surfxml_host___link_down_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_down);
8427         YY_BREAK
8428 case 286:
8429 /* rule 286 can match eol */
8430 YY_RULE_SETUP
8431 if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");} surfxml_host___link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_id);
8432         YY_BREAK
8433 case 287:
8434 /* rule 287 can match eol */
8435 YY_RULE_SETUP
8436 if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");}  surfxml_host___link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_id);
8437         YY_BREAK
8438 case 288:
8439 /* rule 288 can match eol */
8440 YY_RULE_SETUP
8441 if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");} surfxml_host___link_up_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_up);
8442         YY_BREAK
8443 case 289:
8444 /* rule 289 can match eol */
8445 YY_RULE_SETUP
8446 if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");}  surfxml_host___link_up_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_up);
8447         YY_BREAK
8448 case 290:
8449 YY_RULE_SETUP
8450 {
8451   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
8452   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
8453   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
8454   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
8455  }
8456         YY_BREAK
8457 case 291:
8458 YY_RULE_SETUP
8459 {
8460   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
8461   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
8462   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
8463   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
8464   switch (YY_START) {
8465    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8466    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
8467   }
8468  }
8469         YY_BREAK
8470 case 292:
8471 YY_RULE_SETUP
8472 FAIL("Unexpected character `%c' in attribute list of host_link element.", yytext[0]);
8473         YY_BREAK
8474 case 293:
8475 YY_RULE_SETUP
8476 FAIL("Bad attribute `%s' in `host_link' element start tag.",yytext);
8477         YY_BREAK
8478 case YY_STATE_EOF(AL_surfxml_host___link):
8479 FAIL("EOF in attribute list of `host_link' element.");
8480         YY_BREAK
8481
8482 case 294:
8483 /* rule 294 can match eol */
8484 YY_RULE_SETUP
8485 {
8486   LEAVE;
8487   ETag_surfxml_host___link();
8488   popbuffer(); /* attribute */
8489   switch (YY_START) {
8490    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8491    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
8492   }
8493  }
8494         YY_BREAK
8495 case 295:
8496 /* rule 295 can match eol */
8497 YY_RULE_SETUP
8498 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",yytext);
8499         YY_BREAK
8500 case 296:
8501 YY_RULE_SETUP
8502 FAIL("Unexpected character `%c': `</host_link>' expected.",yytext[0]);
8503         YY_BREAK
8504 case YY_STATE_EOF(E_surfxml_host___link):
8505 FAIL("Premature EOF: `</host_link>' expected.");
8506         YY_BREAK
8507
8508 /* <!-- tag include is deprecated. Not documented, and removed in v3.22 -->  */
8509 case 297:
8510 /* rule 297 can match eol */
8511 YY_RULE_SETUP
8512 FAIL("Starting tag <include> is not allowed here.");
8513         YY_BREAK
8514 case 298:
8515 /* rule 298 can match eol */
8516 YY_RULE_SETUP
8517 {
8518   AX_surfxml_include_file = 0;
8519   surfxml_include_file_isset = 0;
8520   ENTER(AL_surfxml_include); pushbuffer(0);
8521   }
8522         YY_BREAK
8523
8524 case 299:
8525 /* rule 299 can match eol */
8526 YY_RULE_SETUP
8527 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");} surfxml_include_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
8528         YY_BREAK
8529 case 300:
8530 /* rule 300 can match eol */
8531 YY_RULE_SETUP
8532 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");}  surfxml_include_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
8533         YY_BREAK
8534 case 301:
8535 YY_RULE_SETUP
8536 {
8537   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
8538   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
8539  }
8540         YY_BREAK
8541 case 302:
8542 YY_RULE_SETUP
8543 {
8544   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
8545   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
8546   switch (YY_START) {
8547    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
8548    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8549    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8550    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8551    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
8552    case S_surfxml_zone_1: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8553   }
8554  }
8555         YY_BREAK
8556 case 303:
8557 YY_RULE_SETUP
8558 FAIL("Unexpected character `%c' in attribute list of include element.", yytext[0]);
8559         YY_BREAK
8560 case 304:
8561 YY_RULE_SETUP
8562 FAIL("Bad attribute `%s' in `include' element start tag.",yytext);
8563         YY_BREAK
8564 case YY_STATE_EOF(AL_surfxml_include):
8565 FAIL("EOF in attribute list of `include' element.");
8566         YY_BREAK
8567
8568 case 305:
8569 /* rule 305 can match eol */
8570 YY_RULE_SETUP
8571 {
8572   LEAVE;
8573   ETag_surfxml_include();
8574   popbuffer(); /* attribute */
8575   switch (YY_START) {
8576    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
8577    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8578    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8579    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8580    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
8581    case S_surfxml_zone_1: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8582   }
8583  }
8584         YY_BREAK
8585 case 306:
8586 /* rule 306 can match eol */
8587 YY_RULE_SETUP
8588 FAIL("Unexpected end-tag `%s': `</include>' expected.",yytext);
8589         YY_BREAK
8590 case 307:
8591 YY_RULE_SETUP
8592 FAIL("Unexpected character `%c': `</include>' expected.",yytext[0]);
8593         YY_BREAK
8594 case YY_STATE_EOF(E_surfxml_include):
8595 case YY_STATE_EOF(S_surfxml_include):
8596 case YY_STATE_EOF(S_surfxml_include_2):
8597 FAIL("Premature EOF: `</include>' expected.");
8598         YY_BREAK
8599
8600 case 308:
8601 /* rule 308 can match eol */
8602 YY_RULE_SETUP
8603 FAIL("Starting tag <link> is not allowed here.");
8604         YY_BREAK
8605 case 309:
8606 /* rule 309 can match eol */
8607 YY_RULE_SETUP
8608 {
8609   AX_surfxml_link_bandwidth = 0;
8610   surfxml_link_bandwidth_isset = 0;
8611   AX_surfxml_link_bandwidth___file = 0;
8612   surfxml_link_bandwidth___file_isset = 0;
8613   AX_surfxml_link_id = 0;
8614   surfxml_link_id_isset = 0;
8615   AX_surfxml_link_latency = 0;
8616   surfxml_link_latency_isset = 0;
8617   AX_surfxml_link_latency___file = 0;
8618   surfxml_link_latency___file_isset = 0;
8619   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8620   surfxml_link_sharing___policy_isset = 0;
8621   AX_surfxml_link_state___file = 0;
8622   surfxml_link_state___file_isset = 0;
8623   ENTER(AL_surfxml_link); pushbuffer(0);
8624   }
8625         YY_BREAK
8626
8627 case 310:
8628 /* rule 310 can match eol */
8629 YY_RULE_SETUP
8630 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");} surfxml_link_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
8631         YY_BREAK
8632 case 311:
8633 /* rule 311 can match eol */
8634 YY_RULE_SETUP
8635 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");}  surfxml_link_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
8636         YY_BREAK
8637 case 312:
8638 /* rule 312 can match eol */
8639 YY_RULE_SETUP
8640 if (surfxml_link_bandwidth___file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");} surfxml_link_bandwidth___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth___file);
8641         YY_BREAK
8642 case 313:
8643 /* rule 313 can match eol */
8644 YY_RULE_SETUP
8645 if (surfxml_link_bandwidth___file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");}  surfxml_link_bandwidth___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth___file);
8646         YY_BREAK
8647 case 314:
8648 /* rule 314 can match eol */
8649 YY_RULE_SETUP
8650 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");} surfxml_link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
8651         YY_BREAK
8652 case 315:
8653 /* rule 315 can match eol */
8654 YY_RULE_SETUP
8655 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");}  surfxml_link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
8656         YY_BREAK
8657 case 316:
8658 /* rule 316 can match eol */
8659 YY_RULE_SETUP
8660 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");} surfxml_link_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
8661         YY_BREAK
8662 case 317:
8663 /* rule 317 can match eol */
8664 YY_RULE_SETUP
8665 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");}  surfxml_link_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
8666         YY_BREAK
8667 case 318:
8668 /* rule 318 can match eol */
8669 YY_RULE_SETUP
8670 if (surfxml_link_latency___file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");} surfxml_link_latency___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency___file);
8671         YY_BREAK
8672 case 319:
8673 /* rule 319 can match eol */
8674 YY_RULE_SETUP
8675 if (surfxml_link_latency___file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");}  surfxml_link_latency___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency___file);
8676         YY_BREAK
8677 case 320:
8678 /* rule 320 can match eol */
8679 case 321:
8680 /* rule 321 can match eol */
8681 YY_RULE_SETUP
8682 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8683         YY_BREAK
8684 case 322:
8685 /* rule 322 can match eol */
8686 case 323:
8687 /* rule 323 can match eol */
8688 YY_RULE_SETUP
8689 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SPLITDUPLEX;
8690         YY_BREAK
8691 case 324:
8692 /* rule 324 can match eol */
8693 case 325:
8694 /* rule 325 can match eol */
8695 YY_RULE_SETUP
8696 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8697         YY_BREAK
8698 case 326:
8699 /* rule 326 can match eol */
8700 case 327:
8701 /* rule 327 can match eol */
8702 YY_RULE_SETUP
8703 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8704         YY_BREAK
8705 case 328:
8706 /* rule 328 can match eol */
8707 YY_RULE_SETUP
8708 if (surfxml_link_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");} surfxml_link_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state___file);
8709         YY_BREAK
8710 case 329:
8711 /* rule 329 can match eol */
8712 YY_RULE_SETUP
8713 if (surfxml_link_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");}  surfxml_link_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state___file);
8714         YY_BREAK
8715 case 330:
8716 YY_RULE_SETUP
8717 {
8718   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8719   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8720   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8721  }
8722         YY_BREAK
8723 case 331:
8724 YY_RULE_SETUP
8725 {
8726   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8727   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8728   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8729   switch (YY_START) {
8730    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
8731    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8732    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
8733    case S_surfxml_zone_1: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8734   }
8735  }
8736         YY_BREAK
8737 case 332:
8738 YY_RULE_SETUP
8739 FAIL("Unexpected character `%c' in attribute list of link element.", yytext[0]);
8740         YY_BREAK
8741 case 333:
8742 YY_RULE_SETUP
8743 FAIL("Bad attribute `%s' in `link' element start tag.",yytext);
8744         YY_BREAK
8745 case YY_STATE_EOF(AL_surfxml_link):
8746 FAIL("EOF in attribute list of `link' element.");
8747         YY_BREAK
8748
8749 case 334:
8750 /* rule 334 can match eol */
8751 YY_RULE_SETUP
8752 {
8753   LEAVE;
8754   ETag_surfxml_link();
8755   popbuffer(); /* attribute */
8756   switch (YY_START) {
8757    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
8758    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8759    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
8760    case S_surfxml_zone_1: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8761   }
8762  }
8763         YY_BREAK
8764 case 335:
8765 /* rule 335 can match eol */
8766 YY_RULE_SETUP
8767 FAIL("Unexpected end-tag `%s': `</link>' expected.",yytext);
8768         YY_BREAK
8769 case 336:
8770 YY_RULE_SETUP
8771 FAIL("Unexpected character `%c': `</link>' expected.",yytext[0]);
8772         YY_BREAK
8773 case YY_STATE_EOF(E_surfxml_link):
8774 case YY_STATE_EOF(S_surfxml_link):
8775 case YY_STATE_EOF(S_surfxml_link_2):
8776 FAIL("Premature EOF: `</link>' expected.");
8777         YY_BREAK
8778
8779 case 337:
8780 /* rule 337 can match eol */
8781 YY_RULE_SETUP
8782 FAIL("Starting tag <link_ctn> is not allowed here.");
8783         YY_BREAK
8784 case 338:
8785 /* rule 338 can match eol */
8786 YY_RULE_SETUP
8787 {
8788   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8789   surfxml_link___ctn_direction_isset = 0;
8790   AX_surfxml_link___ctn_id = 0;
8791   surfxml_link___ctn_id_isset = 0;
8792   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8793   }
8794         YY_BREAK
8795
8796 case 339:
8797 /* rule 339 can match eol */
8798 case 340:
8799 /* rule 340 can match eol */
8800 YY_RULE_SETUP
8801 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8802         YY_BREAK
8803 case 341:
8804 /* rule 341 can match eol */
8805 case 342:
8806 /* rule 342 can match eol */
8807 YY_RULE_SETUP
8808 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8809         YY_BREAK
8810 case 343:
8811 /* rule 343 can match eol */
8812 case 344:
8813 /* rule 344 can match eol */
8814 YY_RULE_SETUP
8815 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8816         YY_BREAK
8817 case 345:
8818 /* rule 345 can match eol */
8819 YY_RULE_SETUP
8820 if (surfxml_link___ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link___ctn>");} surfxml_link___ctn_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link___ctn_id);
8821         YY_BREAK
8822 case 346:
8823 /* rule 346 can match eol */
8824 YY_RULE_SETUP
8825 if (surfxml_link___ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link___ctn>");}  surfxml_link___ctn_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link___ctn_id);
8826         YY_BREAK
8827 case 347:
8828 YY_RULE_SETUP
8829 {
8830   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8831   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8832  }
8833         YY_BREAK
8834 case 348:
8835 YY_RULE_SETUP
8836 {
8837   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8838   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8839   switch (YY_START) {
8840    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8841    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
8842    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
8843    case S_surfxml_bypassZoneRoute: case S_surfxml_bypassZoneRoute_1: case S_surfxml_bypassZoneRoute_2: SET(S_surfxml_bypassZoneRoute_2); break;
8844    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8845    case S_surfxml_zoneRoute: case S_surfxml_zoneRoute_1: case S_surfxml_zoneRoute_2: SET(S_surfxml_zoneRoute_2); break;
8846   }
8847  }
8848         YY_BREAK
8849 case 349:
8850 YY_RULE_SETUP
8851 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", yytext[0]);
8852         YY_BREAK
8853 case 350:
8854 YY_RULE_SETUP
8855 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",yytext);
8856         YY_BREAK
8857 case YY_STATE_EOF(AL_surfxml_link___ctn):
8858 FAIL("EOF in attribute list of `link_ctn' element.");
8859         YY_BREAK
8860
8861 case 351:
8862 /* rule 351 can match eol */
8863 YY_RULE_SETUP
8864 {
8865   LEAVE;
8866   ETag_surfxml_link___ctn();
8867   popbuffer(); /* attribute */
8868   switch (YY_START) {
8869    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8870    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
8871    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
8872    case S_surfxml_bypassZoneRoute: case S_surfxml_bypassZoneRoute_1: case S_surfxml_bypassZoneRoute_2: SET(S_surfxml_bypassZoneRoute_2); break;
8873    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8874    case S_surfxml_zoneRoute: case S_surfxml_zoneRoute_1: case S_surfxml_zoneRoute_2: SET(S_surfxml_zoneRoute_2); break;
8875   }
8876  }
8877         YY_BREAK
8878 case 352:
8879 /* rule 352 can match eol */
8880 YY_RULE_SETUP
8881 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",yytext);
8882         YY_BREAK
8883 case 353:
8884 YY_RULE_SETUP
8885 FAIL("Unexpected character `%c': `</link_ctn>' expected.",yytext[0]);
8886         YY_BREAK
8887 case YY_STATE_EOF(E_surfxml_link___ctn):
8888 FAIL("Premature EOF: `</link_ctn>' expected.");
8889         YY_BREAK
8890
8891 /* <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->
8892   * <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->  */
8893 case 354:
8894 /* rule 354 can match eol */
8895 YY_RULE_SETUP
8896 FAIL("Starting tag <model_prop> is not allowed here.");
8897         YY_BREAK
8898 case 355:
8899 /* rule 355 can match eol */
8900 YY_RULE_SETUP
8901 {
8902   AX_surfxml_model___prop_id = 0;
8903   surfxml_model___prop_id_isset = 0;
8904   AX_surfxml_model___prop_value = 0;
8905   surfxml_model___prop_value_isset = 0;
8906   ENTER(AL_surfxml_model___prop); pushbuffer(0);
8907   }
8908         YY_BREAK
8909
8910 case 356:
8911 /* rule 356 can match eol */
8912 YY_RULE_SETUP
8913 if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");} surfxml_model___prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_id);
8914         YY_BREAK
8915 case 357:
8916 /* rule 357 can match eol */
8917 YY_RULE_SETUP
8918 if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");}  surfxml_model___prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_id);
8919         YY_BREAK
8920 case 358:
8921 /* rule 358 can match eol */
8922 YY_RULE_SETUP
8923 if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");} surfxml_model___prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_value);
8924         YY_BREAK
8925 case 359:
8926 /* rule 359 can match eol */
8927 YY_RULE_SETUP
8928 if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");}  surfxml_model___prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_value);
8929         YY_BREAK
8930 case 360:
8931 YY_RULE_SETUP
8932 {
8933   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
8934   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
8935   LEAVE; STag_surfxml_model___prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_model___prop);
8936  }
8937         YY_BREAK
8938 case 361:
8939 YY_RULE_SETUP
8940 {
8941   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
8942   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
8943   LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */
8944   switch (YY_START) {
8945    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8946   }
8947  }
8948         YY_BREAK
8949 case 362:
8950 YY_RULE_SETUP
8951 FAIL("Unexpected character `%c' in attribute list of model_prop element.", yytext[0]);
8952         YY_BREAK
8953 case 363:
8954 YY_RULE_SETUP
8955 FAIL("Bad attribute `%s' in `model_prop' element start tag.",yytext);
8956         YY_BREAK
8957 case YY_STATE_EOF(AL_surfxml_model___prop):
8958 FAIL("EOF in attribute list of `model_prop' element.");
8959         YY_BREAK
8960
8961 case 364:
8962 /* rule 364 can match eol */
8963 YY_RULE_SETUP
8964 {
8965   LEAVE;
8966   ETag_surfxml_model___prop();
8967   popbuffer(); /* attribute */
8968   switch (YY_START) {
8969    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8970   }
8971  }
8972         YY_BREAK
8973 case 365:
8974 /* rule 365 can match eol */
8975 YY_RULE_SETUP
8976 FAIL("Unexpected end-tag `%s': `</model_prop>' expected.",yytext);
8977         YY_BREAK
8978 case 366:
8979 YY_RULE_SETUP
8980 FAIL("Unexpected character `%c': `</model_prop>' expected.",yytext[0]);
8981         YY_BREAK
8982 case YY_STATE_EOF(E_surfxml_model___prop):
8983 FAIL("Premature EOF: `</model_prop>' expected.");
8984         YY_BREAK
8985
8986 case 367:
8987 /* rule 367 can match eol */
8988 YY_RULE_SETUP
8989 FAIL("Starting tag <mount> is not allowed here.");
8990         YY_BREAK
8991 case 368:
8992 /* rule 368 can match eol */
8993 YY_RULE_SETUP
8994 {
8995   AX_surfxml_mount_name = 0;
8996   surfxml_mount_name_isset = 0;
8997   AX_surfxml_mount_storageId = 0;
8998   surfxml_mount_storageId_isset = 0;
8999   ENTER(AL_surfxml_mount); pushbuffer(0);
9000   }
9001         YY_BREAK
9002
9003 case 369:
9004 /* rule 369 can match eol */
9005 YY_RULE_SETUP
9006 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");} surfxml_mount_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_name);
9007         YY_BREAK
9008 case 370:
9009 /* rule 370 can match eol */
9010 YY_RULE_SETUP
9011 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");}  surfxml_mount_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_name);
9012         YY_BREAK
9013 case 371:
9014 /* rule 371 can match eol */
9015 YY_RULE_SETUP
9016 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");} surfxml_mount_storageId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_storageId);
9017         YY_BREAK
9018 case 372:
9019 /* rule 372 can match eol */
9020 YY_RULE_SETUP
9021 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");}  surfxml_mount_storageId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_storageId);
9022         YY_BREAK
9023 case 373:
9024 YY_RULE_SETUP
9025 {
9026   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
9027   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
9028   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
9029  }
9030         YY_BREAK
9031 case 374:
9032 YY_RULE_SETUP
9033 {
9034   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
9035   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
9036   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
9037   switch (YY_START) {
9038    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9039   }
9040  }
9041         YY_BREAK
9042 case 375:
9043 YY_RULE_SETUP
9044 FAIL("Unexpected character `%c' in attribute list of mount element.", yytext[0]);
9045         YY_BREAK
9046 case 376:
9047 YY_RULE_SETUP
9048 FAIL("Bad attribute `%s' in `mount' element start tag.",yytext);
9049         YY_BREAK
9050 case YY_STATE_EOF(AL_surfxml_mount):
9051 FAIL("EOF in attribute list of `mount' element.");
9052         YY_BREAK
9053
9054 case 377:
9055 /* rule 377 can match eol */
9056 YY_RULE_SETUP
9057 {
9058   LEAVE;
9059   ETag_surfxml_mount();
9060   popbuffer(); /* attribute */
9061   switch (YY_START) {
9062    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9063   }
9064  }
9065         YY_BREAK
9066 case 378:
9067 /* rule 378 can match eol */
9068 YY_RULE_SETUP
9069 FAIL("Unexpected end-tag `%s': `</mount>' expected.",yytext);
9070         YY_BREAK
9071 case 379:
9072 YY_RULE_SETUP
9073 FAIL("Unexpected character `%c': `</mount>' expected.",yytext[0]);
9074         YY_BREAK
9075 case YY_STATE_EOF(E_surfxml_mount):
9076 FAIL("Premature EOF: `</mount>' expected.");
9077         YY_BREAK
9078
9079 case 380:
9080 /* rule 380 can match eol */
9081 YY_RULE_SETUP
9082 FAIL("Starting tag <peer> is not allowed here.");
9083         YY_BREAK
9084 case 381:
9085 /* rule 381 can match eol */
9086 YY_RULE_SETUP
9087 {
9088   AX_surfxml_peer_availability___file = 0;
9089   surfxml_peer_availability___file_isset = 0;
9090   AX_surfxml_peer_bw___in = 0;
9091   surfxml_peer_bw___in_isset = 0;
9092   AX_surfxml_peer_bw___out = 0;
9093   surfxml_peer_bw___out_isset = 0;
9094   AX_surfxml_peer_coordinates = 0;
9095   surfxml_peer_coordinates_isset = 0;
9096   AX_surfxml_peer_id = 0;
9097   surfxml_peer_id_isset = 0;
9098   AX_surfxml_peer_lat = 0;
9099   surfxml_peer_lat_isset = 0;
9100   AX_surfxml_peer_speed = 0;
9101   surfxml_peer_speed_isset = 0;
9102   AX_surfxml_peer_state___file = 0;
9103   surfxml_peer_state___file_isset = 0;
9104   ENTER(AL_surfxml_peer); pushbuffer(0);
9105   }
9106         YY_BREAK
9107
9108 case 382:
9109 /* rule 382 can match eol */
9110 YY_RULE_SETUP
9111 if (surfxml_peer_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");} surfxml_peer_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_availability___file);
9112         YY_BREAK
9113 case 383:
9114 /* rule 383 can match eol */
9115 YY_RULE_SETUP
9116 if (surfxml_peer_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");}  surfxml_peer_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_availability___file);
9117         YY_BREAK
9118 case 384:
9119 /* rule 384 can match eol */
9120 YY_RULE_SETUP
9121 if (surfxml_peer_bw___in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");} surfxml_peer_bw___in_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw___in);
9122         YY_BREAK
9123 case 385:
9124 /* rule 385 can match eol */
9125 YY_RULE_SETUP
9126 if (surfxml_peer_bw___in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");}  surfxml_peer_bw___in_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw___in);
9127         YY_BREAK
9128 case 386:
9129 /* rule 386 can match eol */
9130 YY_RULE_SETUP
9131 if (surfxml_peer_bw___out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");} surfxml_peer_bw___out_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw___out);
9132         YY_BREAK
9133 case 387:
9134 /* rule 387 can match eol */
9135 YY_RULE_SETUP
9136 if (surfxml_peer_bw___out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");}  surfxml_peer_bw___out_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw___out);
9137         YY_BREAK
9138 case 388:
9139 /* rule 388 can match eol */
9140 YY_RULE_SETUP
9141 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");} surfxml_peer_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_coordinates);
9142         YY_BREAK
9143 case 389:
9144 /* rule 389 can match eol */
9145 YY_RULE_SETUP
9146 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");}  surfxml_peer_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_coordinates);
9147         YY_BREAK
9148 case 390:
9149 /* rule 390 can match eol */
9150 YY_RULE_SETUP
9151 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");} surfxml_peer_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_id);
9152         YY_BREAK
9153 case 391:
9154 /* rule 391 can match eol */
9155 YY_RULE_SETUP
9156 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");}  surfxml_peer_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_id);
9157         YY_BREAK
9158 case 392:
9159 /* rule 392 can match eol */
9160 YY_RULE_SETUP
9161 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");} surfxml_peer_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_lat);
9162         YY_BREAK
9163 case 393:
9164 /* rule 393 can match eol */
9165 YY_RULE_SETUP
9166 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");}  surfxml_peer_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_lat);
9167         YY_BREAK
9168 case 394:
9169 /* rule 394 can match eol */
9170 YY_RULE_SETUP
9171 if (surfxml_peer_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_peer>");} surfxml_peer_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_speed);
9172         YY_BREAK
9173 case 395:
9174 /* rule 395 can match eol */
9175 YY_RULE_SETUP
9176 if (surfxml_peer_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_peer>");}  surfxml_peer_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_speed);
9177         YY_BREAK
9178 case 396:
9179 /* rule 396 can match eol */
9180 YY_RULE_SETUP
9181 if (surfxml_peer_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");} surfxml_peer_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_state___file);
9182         YY_BREAK
9183 case 397:
9184 /* rule 397 can match eol */
9185 YY_RULE_SETUP
9186 if (surfxml_peer_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");}  surfxml_peer_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_state___file);
9187         YY_BREAK
9188 case 398:
9189 YY_RULE_SETUP
9190 {
9191   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
9192   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
9193   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
9194   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
9195   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
9196  }
9197         YY_BREAK
9198 case 399:
9199 YY_RULE_SETUP
9200 {
9201   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
9202   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
9203   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
9204   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
9205   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
9206   switch (YY_START) {
9207    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9208    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9209    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9210    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
9211   }
9212  }
9213         YY_BREAK
9214 case 400:
9215 YY_RULE_SETUP
9216 FAIL("Unexpected character `%c' in attribute list of peer element.", yytext[0]);
9217         YY_BREAK
9218 case 401:
9219 YY_RULE_SETUP
9220 FAIL("Bad attribute `%s' in `peer' element start tag.",yytext);
9221         YY_BREAK
9222 case YY_STATE_EOF(AL_surfxml_peer):
9223 FAIL("EOF in attribute list of `peer' element.");
9224         YY_BREAK
9225
9226 case 402:
9227 /* rule 402 can match eol */
9228 YY_RULE_SETUP
9229 {
9230   LEAVE;
9231   ETag_surfxml_peer();
9232   popbuffer(); /* attribute */
9233   switch (YY_START) {
9234    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9235    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9236    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9237    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
9238   }
9239  }
9240         YY_BREAK
9241 case 403:
9242 /* rule 403 can match eol */
9243 YY_RULE_SETUP
9244 FAIL("Unexpected end-tag `%s': `</peer>' expected.",yytext);
9245         YY_BREAK
9246 case 404:
9247 YY_RULE_SETUP
9248 FAIL("Unexpected character `%c': `</peer>' expected.",yytext[0]);
9249         YY_BREAK
9250 case YY_STATE_EOF(E_surfxml_peer):
9251 FAIL("Premature EOF: `</peer>' expected.");
9252         YY_BREAK
9253
9254 /* <!--
9255   *              DTD of SimGrid platform and deployment files.
9256   * More info: http://simgrid.gforge.inria.fr/simgrid/latest/doc/platform.html
9257   * To upgrade your files, use the tool simgrid_update_xml
9258   * * Things that will change in upcoming version 5 (TODO):
9259   *   - The following tags will be removed:
9260   *     - <include> spits an error since v3.18
9261   *     - <random> does nothing since a very long time
9262   *     - <as>, <asroute>, <bypassZoneRoute> and <process>, deprecated in DTD4.1
9263   *   - FULLDUPLEX sharing will be removed, deprecated in DTD4.2 (v3.19)
9264   * * New in DTD version 4.2 (in SimGrid 3.19): backward compatible change (v4 files are valid v4.2 files)
9265   *    - SPLITDUPLEX is the new spelling of the deprecated FULLDUPLEX
9266   * * New in DTD version 4.1 (in SimGrid 3.16): backward compatible change (v4 files are valid v4.1 files)
9267   *    - <zone> can be used as a synonym for the now deprecated <as>
9268   *    - <zoneRoute> can be used as a synonym for the now deprecated <asroute>
9269   *    - <bypassZoneRoute> an be used as a synonym for the now deprecated <bypassAsRoute>
9270   *    - <actor> can be used as a synonym for the now deprecated <process>
9271   * * New in DTD version 4 (in SimGrid 3.13):
9272   *    - Rename (power->speed) the attributes describing the amount of flop
9273   *      that a <host>, <peer>, <cluster> or <cabinet> can deliver per second.
9274   *    - In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
9275   *    - In <host> and <link>, attributes availability and state are gone.
9276   *      It was redundent with state and availability traces, and with peak values.
9277   *    - In <cluster>, cannot set the availability nor state traces.
9278   *      This was too complex and unused.
9279   *    - The DOCTYPE points to the right URL (this file).
9280   *    - Kill <gpu>. Was not doing anything.
9281   *    - A warning is emitted for unit-less values (they are still accepted).
9282   *      The value 0 can remain unit-less, as its unit does not matter.
9283   *      - speed. Default: 'f' or 'flops'. Also defined:
9284   *         'Yf',         'Zf',         'Ef',       'Pf',        'Tf',        'Gf',        'Mf',        'kf'
9285   *         'yottaflops', 'zettaflops', 'exaflops', 'petaflops', 'teraflops', 'gigaflops', 'megaflops', 'kiloflops'
9286   *      - bandwidth. Default: 'Bps' bytes per second
9287   *        In bytes and powers of 2  (1 KiBps = 1024 Bps): 'EiBps', 'PiBps', 'TiBps', 'GiBps', 'MiBps', 'KiBps'
9288   *        In bits  and powers of 2  (1 Bps = 8 bps)     : 'Eibps', 'Pibps', 'Tibps', 'Gibps', 'Mibps', 'Kibps'
9289   *        In bytes and powers of 10 (1 KBps = 1000 Bps) : 'EBps', 'PBps', 'TBps', 'GBps', 'MBps', 'kBps', 'Bps'
9290   *        In bits  and powers of 10                     : 'Ebps', 'Pbps', 'Tbps', 'Gbps', 'Mbps', 'kbps', 'bps'
9291   *        (Exa and Peta notations were introduced in SimGrid v3.14)
9292   *      - latency. Default: 's' second. Also defined:
9293   *        'w' week, 'd' day, 'h' hour, 'm' minute, 'ms' millisecond, 'us' microsecond, 'ns' nanosecond, 'ps' picosecond
9294   * * New in DTD version 3 (in SimGrid 3.5):
9295   *    - The AS tag were introduced. Every platform should now
9296   *      contain an englobing AS tag.
9297   *    - Routes are now symmetric by default.
9298   *    - Renamed tags (for sake of XML sanity):
9299   *      - LINK:CTN -> LINK_CTN
9300   *      - TRACE:CONNECT -> TRACE_CONNECT
9301   * * New in DTD version 2 (in SimGrid 3.4):
9302   *    - Renamed tags:
9303   *      - CPU -> HOST
9304   *      - NETWORK_LINK -> LINK
9305   *      - ROUTE_ELEMENT ->  LINK:CTN (changed again in v3)
9306   *      - PLATFORM_DESCRIPTION -> PLATFORM
9307   * * New in DTD version 1 (in SimGrid 3.3):
9308   *    - DTD is now versionned with the version attribute of platform
9309   *    - Unit change:
9310   *      - Link bandwidth: from Mb/s to b/s
9311   *      - CPU speed: from MFlop/s to Flop/s
9312   * -->  */
9313 case 405:
9314 /* rule 405 can match eol */
9315 YY_RULE_SETUP
9316 FAIL("Starting tag <platform> is not allowed here.");
9317         YY_BREAK
9318 case 406:
9319 /* rule 406 can match eol */
9320 YY_RULE_SETUP
9321 {
9322   AX_surfxml_platform_version = 1;
9323   surfxml_platform_version_isset = 0;
9324   ENTER(AL_surfxml_platform); pushbuffer(0);
9325   }
9326         YY_BREAK
9327
9328 case 407:
9329 /* rule 407 can match eol */
9330 YY_RULE_SETUP
9331 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");} surfxml_platform_version_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
9332         YY_BREAK
9333 case 408:
9334 /* rule 408 can match eol */
9335 YY_RULE_SETUP
9336 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");}  surfxml_platform_version_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
9337         YY_BREAK
9338 case 409:
9339 YY_RULE_SETUP
9340 {
9341   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
9342  }
9343         YY_BREAK
9344 case 410:
9345 YY_RULE_SETUP
9346 {
9347   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
9348   switch (YY_START) {
9349    case ROOT_surfxml_platform: SET(EPILOG); break;
9350   }
9351  }
9352         YY_BREAK
9353 case 411:
9354 YY_RULE_SETUP
9355 FAIL("Unexpected character `%c' in attribute list of platform element.", yytext[0]);
9356         YY_BREAK
9357 case 412:
9358 YY_RULE_SETUP
9359 FAIL("Bad attribute `%s' in `platform' element start tag.",yytext);
9360         YY_BREAK
9361 case YY_STATE_EOF(AL_surfxml_platform):
9362 FAIL("EOF in attribute list of `platform' element.");
9363         YY_BREAK
9364
9365 case 413:
9366 /* rule 413 can match eol */
9367 YY_RULE_SETUP
9368 {
9369   LEAVE;
9370   ETag_surfxml_platform();
9371   popbuffer(); /* attribute */
9372   switch (YY_START) {
9373    case ROOT_surfxml_platform: SET(EPILOG); break;
9374   }
9375  }
9376         YY_BREAK
9377 case 414:
9378 /* rule 414 can match eol */
9379 YY_RULE_SETUP
9380 FAIL("Unexpected end-tag `%s': `</platform>' expected.",yytext);
9381         YY_BREAK
9382 case 415:
9383 YY_RULE_SETUP
9384 FAIL("Unexpected character `%c': `</platform>' expected.",yytext[0]);
9385         YY_BREAK
9386 case YY_STATE_EOF(E_surfxml_platform):
9387 case YY_STATE_EOF(S_surfxml_platform):
9388 case YY_STATE_EOF(S_surfxml_platform_1):
9389 case YY_STATE_EOF(S_surfxml_platform_3):
9390 case YY_STATE_EOF(S_surfxml_platform_4):
9391 case YY_STATE_EOF(S_surfxml_platform_6):
9392 case YY_STATE_EOF(S_surfxml_platform_8):
9393 FAIL("Premature EOF: `</platform>' expected.");
9394         YY_BREAK
9395
9396 case 416:
9397 /* rule 416 can match eol */
9398 YY_RULE_SETUP
9399 FAIL("Starting tag <process> is not allowed here.");
9400         YY_BREAK
9401 case 417:
9402 /* rule 417 can match eol */
9403 YY_RULE_SETUP
9404 {
9405   AX_surfxml_process_function = 0;
9406   surfxml_process_function_isset = 0;
9407   AX_surfxml_process_host = 0;
9408   surfxml_process_host_isset = 0;
9409   AX_surfxml_process_kill___time = 36;
9410   surfxml_process_kill___time_isset = 0;
9411   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9412   surfxml_process_on___failure_isset = 0;
9413   AX_surfxml_process_start___time = 31;
9414   surfxml_process_start___time_isset = 0;
9415   ENTER(AL_surfxml_process); pushbuffer(0);
9416   }
9417         YY_BREAK
9418
9419 case 418:
9420 /* rule 418 can match eol */
9421 YY_RULE_SETUP
9422 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");} surfxml_process_function_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
9423         YY_BREAK
9424 case 419:
9425 /* rule 419 can match eol */
9426 YY_RULE_SETUP
9427 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");}  surfxml_process_function_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
9428         YY_BREAK
9429 case 420:
9430 /* rule 420 can match eol */
9431 YY_RULE_SETUP
9432 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");} surfxml_process_host_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
9433         YY_BREAK
9434 case 421:
9435 /* rule 421 can match eol */
9436 YY_RULE_SETUP
9437 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");}  surfxml_process_host_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
9438         YY_BREAK
9439 case 422:
9440 /* rule 422 can match eol */
9441 YY_RULE_SETUP
9442 if (surfxml_process_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");} surfxml_process_kill___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill___time);
9443         YY_BREAK
9444 case 423:
9445 /* rule 423 can match eol */
9446 YY_RULE_SETUP
9447 if (surfxml_process_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");}  surfxml_process_kill___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill___time);
9448         YY_BREAK
9449 case 424:
9450 /* rule 424 can match eol */
9451 case 425:
9452 /* rule 425 can match eol */
9453 YY_RULE_SETUP
9454 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9455         YY_BREAK
9456 case 426:
9457 /* rule 426 can match eol */
9458 case 427:
9459 /* rule 427 can match eol */
9460 YY_RULE_SETUP
9461 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
9462         YY_BREAK
9463 case 428:
9464 /* rule 428 can match eol */
9465 YY_RULE_SETUP
9466 if (surfxml_process_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");} surfxml_process_start___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start___time);
9467         YY_BREAK
9468 case 429:
9469 /* rule 429 can match eol */
9470 YY_RULE_SETUP
9471 if (surfxml_process_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");}  surfxml_process_start___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start___time);
9472         YY_BREAK
9473 case 430:
9474 YY_RULE_SETUP
9475 {
9476   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9477   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9478   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
9479  }
9480         YY_BREAK
9481 case 431:
9482 YY_RULE_SETUP
9483 {
9484   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9485   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9486   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
9487   switch (YY_START) {
9488    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
9489   }
9490  }
9491         YY_BREAK
9492 case 432:
9493 YY_RULE_SETUP
9494 FAIL("Unexpected character `%c' in attribute list of process element.", yytext[0]);
9495         YY_BREAK
9496 case 433:
9497 YY_RULE_SETUP
9498 FAIL("Bad attribute `%s' in `process' element start tag.",yytext);
9499         YY_BREAK
9500 case YY_STATE_EOF(AL_surfxml_process):
9501 FAIL("EOF in attribute list of `process' element.");
9502         YY_BREAK
9503
9504 case 434:
9505 /* rule 434 can match eol */
9506 YY_RULE_SETUP
9507 {
9508   LEAVE;
9509   ETag_surfxml_process();
9510   popbuffer(); /* attribute */
9511   switch (YY_START) {
9512    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
9513   }
9514  }
9515         YY_BREAK
9516 case 435:
9517 /* rule 435 can match eol */
9518 YY_RULE_SETUP
9519 FAIL("Unexpected end-tag `%s': `</process>' expected.",yytext);
9520         YY_BREAK
9521 case 436:
9522 YY_RULE_SETUP
9523 FAIL("Unexpected character `%c': `</process>' expected.",yytext[0]);
9524         YY_BREAK
9525 case YY_STATE_EOF(E_surfxml_process):
9526 case YY_STATE_EOF(S_surfxml_process):
9527 case YY_STATE_EOF(S_surfxml_process_2):
9528 FAIL("Premature EOF: `</process>' expected.");
9529         YY_BREAK
9530
9531 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9532   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9533 case 437:
9534 /* rule 437 can match eol */
9535 YY_RULE_SETUP
9536 FAIL("Starting tag <prop> is not allowed here.");
9537         YY_BREAK
9538 case 438:
9539 /* rule 438 can match eol */
9540 YY_RULE_SETUP
9541 {
9542   AX_surfxml_prop_id = 0;
9543   surfxml_prop_id_isset = 0;
9544   AX_surfxml_prop_value = 0;
9545   surfxml_prop_value_isset = 0;
9546   ENTER(AL_surfxml_prop); pushbuffer(0);
9547   }
9548         YY_BREAK
9549
9550 case 439:
9551 /* rule 439 can match eol */
9552 YY_RULE_SETUP
9553 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");} surfxml_prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
9554         YY_BREAK
9555 case 440:
9556 /* rule 440 can match eol */
9557 YY_RULE_SETUP
9558 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");}  surfxml_prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
9559         YY_BREAK
9560 case 441:
9561 /* rule 441 can match eol */
9562 YY_RULE_SETUP
9563 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");} surfxml_prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
9564         YY_BREAK
9565 case 442:
9566 /* rule 442 can match eol */
9567 YY_RULE_SETUP
9568 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");}  surfxml_prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
9569         YY_BREAK
9570 case 443:
9571 YY_RULE_SETUP
9572 {
9573   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9574   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9575   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9576  }
9577         YY_BREAK
9578 case 444:
9579 YY_RULE_SETUP
9580 {
9581   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9582   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9583   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9584   switch (YY_START) {
9585    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9586    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
9587    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
9588    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9589    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9590    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
9591    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9592    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
9593    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9594    case S_surfxml_zone: case S_surfxml_zone_2: case S_surfxml_zone_3: SET(S_surfxml_zone_3); break;
9595   }
9596  }
9597         YY_BREAK
9598 case 445:
9599 YY_RULE_SETUP
9600 FAIL("Unexpected character `%c' in attribute list of prop element.", yytext[0]);
9601         YY_BREAK
9602 case 446:
9603 YY_RULE_SETUP
9604 FAIL("Bad attribute `%s' in `prop' element start tag.",yytext);
9605         YY_BREAK
9606 case YY_STATE_EOF(AL_surfxml_prop):
9607 FAIL("EOF in attribute list of `prop' element.");
9608         YY_BREAK
9609
9610 case 447:
9611 /* rule 447 can match eol */
9612 YY_RULE_SETUP
9613 {
9614   LEAVE;
9615   ETag_surfxml_prop();
9616   popbuffer(); /* attribute */
9617   switch (YY_START) {
9618    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9619    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
9620    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
9621    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9622    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9623    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
9624    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9625    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
9626    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9627    case S_surfxml_zone: case S_surfxml_zone_2: case S_surfxml_zone_3: SET(S_surfxml_zone_3); break;
9628   }
9629  }
9630         YY_BREAK
9631 case 448:
9632 /* rule 448 can match eol */
9633 YY_RULE_SETUP
9634 FAIL("Unexpected end-tag `%s': `</prop>' expected.",yytext);
9635         YY_BREAK
9636 case 449:
9637 YY_RULE_SETUP
9638 FAIL("Unexpected character `%c': `</prop>' expected.",yytext[0]);
9639         YY_BREAK
9640 case YY_STATE_EOF(E_surfxml_prop):
9641 FAIL("Premature EOF: `</prop>' expected.");
9642         YY_BREAK
9643
9644 case 450:
9645 /* rule 450 can match eol */
9646 YY_RULE_SETUP
9647 FAIL("Starting tag <random> is not allowed here.");
9648         YY_BREAK
9649 case 451:
9650 /* rule 451 can match eol */
9651 YY_RULE_SETUP
9652 {
9653   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
9654   surfxml_random_generator_isset = 0;
9655   AX_surfxml_random_id = 0;
9656   surfxml_random_id_isset = 0;
9657   AX_surfxml_random_max = 0;
9658   surfxml_random_max_isset = 0;
9659   AX_surfxml_random_mean = 0;
9660   surfxml_random_mean_isset = 0;
9661   AX_surfxml_random_min = 0;
9662   surfxml_random_min_isset = 0;
9663   AX_surfxml_random_radical = 0;
9664   surfxml_random_radical_isset = 0;
9665   AX_surfxml_random_seed = 5;
9666   surfxml_random_seed_isset = 0;
9667   AX_surfxml_random_std___deviation = 0;
9668   surfxml_random_std___deviation_isset = 0;
9669   ENTER(AL_surfxml_random); pushbuffer(0);
9670   }
9671         YY_BREAK
9672
9673 case 452:
9674 /* rule 452 can match eol */
9675 case 453:
9676 /* rule 453 can match eol */
9677 YY_RULE_SETUP
9678 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
9679         YY_BREAK
9680 case 454:
9681 /* rule 454 can match eol */
9682 case 455:
9683 /* rule 455 can match eol */
9684 YY_RULE_SETUP
9685 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
9686         YY_BREAK
9687 case 456:
9688 /* rule 456 can match eol */
9689 case 457:
9690 /* rule 457 can match eol */
9691 YY_RULE_SETUP
9692 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
9693         YY_BREAK
9694 case 458:
9695 /* rule 458 can match eol */
9696 case 459:
9697 /* rule 459 can match eol */
9698 YY_RULE_SETUP
9699 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
9700         YY_BREAK
9701 case 460:
9702 /* rule 460 can match eol */
9703 YY_RULE_SETUP
9704 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");} surfxml_random_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
9705         YY_BREAK
9706 case 461:
9707 /* rule 461 can match eol */
9708 YY_RULE_SETUP
9709 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");}  surfxml_random_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
9710         YY_BREAK
9711 case 462:
9712 /* rule 462 can match eol */
9713 YY_RULE_SETUP
9714 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");} surfxml_random_max_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
9715         YY_BREAK
9716 case 463:
9717 /* rule 463 can match eol */
9718 YY_RULE_SETUP
9719 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");}  surfxml_random_max_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
9720         YY_BREAK
9721 case 464:
9722 /* rule 464 can match eol */
9723 YY_RULE_SETUP
9724 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");} surfxml_random_mean_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
9725         YY_BREAK
9726 case 465:
9727 /* rule 465 can match eol */
9728 YY_RULE_SETUP
9729 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");}  surfxml_random_mean_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
9730         YY_BREAK
9731 case 466:
9732 /* rule 466 can match eol */
9733 YY_RULE_SETUP
9734 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");} surfxml_random_min_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
9735         YY_BREAK
9736 case 467:
9737 /* rule 467 can match eol */
9738 YY_RULE_SETUP
9739 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");}  surfxml_random_min_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
9740         YY_BREAK
9741 case 468:
9742 /* rule 468 can match eol */
9743 YY_RULE_SETUP
9744 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");} surfxml_random_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_radical);
9745         YY_BREAK
9746 case 469:
9747 /* rule 469 can match eol */
9748 YY_RULE_SETUP
9749 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");}  surfxml_random_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_radical);
9750         YY_BREAK
9751 case 470:
9752 /* rule 470 can match eol */
9753 YY_RULE_SETUP
9754 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");} surfxml_random_seed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_seed);
9755         YY_BREAK
9756 case 471:
9757 /* rule 471 can match eol */
9758 YY_RULE_SETUP
9759 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");}  surfxml_random_seed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_seed);
9760         YY_BREAK
9761 case 472:
9762 /* rule 472 can match eol */
9763 YY_RULE_SETUP
9764 if (surfxml_random_std___deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");} surfxml_random_std___deviation_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std___deviation);
9765         YY_BREAK
9766 case 473:
9767 /* rule 473 can match eol */
9768 YY_RULE_SETUP
9769 if (surfxml_random_std___deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");}  surfxml_random_std___deviation_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std___deviation);
9770         YY_BREAK
9771 case 474:
9772 YY_RULE_SETUP
9773 {
9774   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
9775   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
9776   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
9777   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
9778   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
9779   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
9780  }
9781         YY_BREAK
9782 case 475:
9783 YY_RULE_SETUP
9784 {
9785   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
9786   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
9787   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
9788   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
9789   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
9790   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
9791   switch (YY_START) {
9792    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9793   }
9794  }
9795         YY_BREAK
9796 case 476:
9797 YY_RULE_SETUP
9798 FAIL("Unexpected character `%c' in attribute list of random element.", yytext[0]);
9799         YY_BREAK
9800 case 477:
9801 YY_RULE_SETUP
9802 FAIL("Bad attribute `%s' in `random' element start tag.",yytext);
9803         YY_BREAK
9804 case YY_STATE_EOF(AL_surfxml_random):
9805 FAIL("EOF in attribute list of `random' element.");
9806         YY_BREAK
9807
9808 case 478:
9809 /* rule 478 can match eol */
9810 YY_RULE_SETUP
9811 {
9812   LEAVE;
9813   ETag_surfxml_random();
9814   popbuffer(); /* attribute */
9815   switch (YY_START) {
9816    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9817   }
9818  }
9819         YY_BREAK
9820 case 479:
9821 /* rule 479 can match eol */
9822 YY_RULE_SETUP
9823 FAIL("Unexpected end-tag `%s': `</random>' expected.",yytext);
9824         YY_BREAK
9825 case 480:
9826 YY_RULE_SETUP
9827 FAIL("Unexpected character `%c': `</random>' expected.",yytext[0]);
9828         YY_BREAK
9829 case YY_STATE_EOF(E_surfxml_random):
9830 FAIL("Premature EOF: `</random>' expected.");
9831         YY_BREAK
9832
9833 case 481:
9834 /* rule 481 can match eol */
9835 YY_RULE_SETUP
9836 FAIL("Starting tag <route> is not allowed here.");
9837         YY_BREAK
9838 case 482:
9839 /* rule 482 can match eol */
9840 YY_RULE_SETUP
9841 {
9842   AX_surfxml_route_dst = 0;
9843   surfxml_route_dst_isset = 0;
9844   AX_surfxml_route_src = 0;
9845   surfxml_route_src_isset = 0;
9846   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
9847   surfxml_route_symmetrical_isset = 0;
9848   ENTER(AL_surfxml_route); pushbuffer(0);
9849   }
9850         YY_BREAK
9851
9852 case 483:
9853 /* rule 483 can match eol */
9854 YY_RULE_SETUP
9855 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");} surfxml_route_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
9856         YY_BREAK
9857 case 484:
9858 /* rule 484 can match eol */
9859 YY_RULE_SETUP
9860 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");}  surfxml_route_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
9861         YY_BREAK
9862 case 485:
9863 /* rule 485 can match eol */
9864 YY_RULE_SETUP
9865 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");} surfxml_route_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
9866         YY_BREAK
9867 case 486:
9868 /* rule 486 can match eol */
9869 YY_RULE_SETUP
9870 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");}  surfxml_route_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
9871         YY_BREAK
9872 case 487:
9873 /* rule 487 can match eol */
9874 case 488:
9875 /* rule 488 can match eol */
9876 YY_RULE_SETUP
9877 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
9878         YY_BREAK
9879 case 489:
9880 /* rule 489 can match eol */
9881 case 490:
9882 /* rule 490 can match eol */
9883 YY_RULE_SETUP
9884 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
9885         YY_BREAK
9886 case 491:
9887 /* rule 491 can match eol */
9888 case 492:
9889 /* rule 492 can match eol */
9890 YY_RULE_SETUP
9891 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_yes;
9892         YY_BREAK
9893 case 493:
9894 /* rule 493 can match eol */
9895 case 494:
9896 /* rule 494 can match eol */
9897 YY_RULE_SETUP
9898 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_no;
9899         YY_BREAK
9900 case 495:
9901 YY_RULE_SETUP
9902 {
9903   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
9904   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
9905   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
9906  }
9907         YY_BREAK
9908 case 496:
9909 YY_RULE_SETUP
9910 {
9911   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
9912   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
9913   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
9914   switch (YY_START) {
9915    case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_16); break;
9916    case S_surfxml_zone: case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
9917   }
9918  }
9919         YY_BREAK
9920 case 497:
9921 YY_RULE_SETUP
9922 FAIL("Unexpected character `%c' in attribute list of route element.", yytext[0]);
9923         YY_BREAK
9924 case 498:
9925 YY_RULE_SETUP
9926 FAIL("Bad attribute `%s' in `route' element start tag.",yytext);
9927         YY_BREAK
9928 case YY_STATE_EOF(AL_surfxml_route):
9929 FAIL("EOF in attribute list of `route' element.");
9930         YY_BREAK
9931
9932 case 499:
9933 /* rule 499 can match eol */
9934 YY_RULE_SETUP
9935 {
9936   LEAVE;
9937   ETag_surfxml_route();
9938   popbuffer(); /* attribute */
9939   switch (YY_START) {
9940    case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_16); break;
9941    case S_surfxml_zone: case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
9942   }
9943  }
9944         YY_BREAK
9945 case 500:
9946 /* rule 500 can match eol */
9947 YY_RULE_SETUP
9948 FAIL("Unexpected end-tag `%s': `</route>' expected.",yytext);
9949         YY_BREAK
9950 case 501:
9951 YY_RULE_SETUP
9952 FAIL("Unexpected character `%c': `</route>' expected.",yytext[0]);
9953         YY_BREAK
9954 case YY_STATE_EOF(E_surfxml_route):
9955 case YY_STATE_EOF(S_surfxml_route):
9956 case YY_STATE_EOF(S_surfxml_route_2):
9957 FAIL("Premature EOF: `</route>' expected.");
9958         YY_BREAK
9959
9960 case 502:
9961 /* rule 502 can match eol */
9962 YY_RULE_SETUP
9963 FAIL("Starting tag <router> is not allowed here.");
9964         YY_BREAK
9965 case 503:
9966 /* rule 503 can match eol */
9967 YY_RULE_SETUP
9968 {
9969   AX_surfxml_router_coordinates = 0;
9970   surfxml_router_coordinates_isset = 0;
9971   AX_surfxml_router_id = 0;
9972   surfxml_router_id_isset = 0;
9973   ENTER(AL_surfxml_router); pushbuffer(0);
9974   }
9975         YY_BREAK
9976
9977 case 504:
9978 /* rule 504 can match eol */
9979 YY_RULE_SETUP
9980 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");} surfxml_router_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_coordinates);
9981         YY_BREAK
9982 case 505:
9983 /* rule 505 can match eol */
9984 YY_RULE_SETUP
9985 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");}  surfxml_router_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_coordinates);
9986         YY_BREAK
9987 case 506:
9988 /* rule 506 can match eol */
9989 YY_RULE_SETUP
9990 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");} surfxml_router_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
9991         YY_BREAK
9992 case 507:
9993 /* rule 507 can match eol */
9994 YY_RULE_SETUP
9995 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");}  surfxml_router_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
9996         YY_BREAK
9997 case 508:
9998 YY_RULE_SETUP
9999 {
10000   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
10001   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
10002  }
10003         YY_BREAK
10004 case 509:
10005 YY_RULE_SETUP
10006 {
10007   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
10008   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
10009   switch (YY_START) {
10010    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10011    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10012   }
10013  }
10014         YY_BREAK
10015 case 510:
10016 YY_RULE_SETUP
10017 FAIL("Unexpected character `%c' in attribute list of router element.", yytext[0]);
10018         YY_BREAK
10019 case 511:
10020 YY_RULE_SETUP
10021 FAIL("Bad attribute `%s' in `router' element start tag.",yytext);
10022         YY_BREAK
10023 case YY_STATE_EOF(AL_surfxml_router):
10024 FAIL("EOF in attribute list of `router' element.");
10025         YY_BREAK
10026
10027 case 512:
10028 /* rule 512 can match eol */
10029 YY_RULE_SETUP
10030 {
10031   LEAVE;
10032   ETag_surfxml_router();
10033   popbuffer(); /* attribute */
10034   switch (YY_START) {
10035    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10036    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10037   }
10038  }
10039         YY_BREAK
10040 case 513:
10041 /* rule 513 can match eol */
10042 YY_RULE_SETUP
10043 FAIL("Unexpected end-tag `%s': `</router>' expected.",yytext);
10044         YY_BREAK
10045 case 514:
10046 YY_RULE_SETUP
10047 FAIL("Unexpected character `%c': `</router>' expected.",yytext[0]);
10048         YY_BREAK
10049 case YY_STATE_EOF(E_surfxml_router):
10050 FAIL("Premature EOF: `</router>' expected.");
10051         YY_BREAK
10052
10053 case 515:
10054 /* rule 515 can match eol */
10055 YY_RULE_SETUP
10056 FAIL("Starting tag <storage> is not allowed here.");
10057         YY_BREAK
10058 case 516:
10059 /* rule 516 can match eol */
10060 YY_RULE_SETUP
10061 {
10062   AX_surfxml_storage_attach = 0;
10063   surfxml_storage_attach_isset = 0;
10064   AX_surfxml_storage_content = 0;
10065   surfxml_storage_content_isset = 0;
10066   AX_surfxml_storage_id = 0;
10067   surfxml_storage_id_isset = 0;
10068   AX_surfxml_storage_typeId = 0;
10069   surfxml_storage_typeId_isset = 0;
10070   ENTER(AL_surfxml_storage); pushbuffer(0);
10071   }
10072         YY_BREAK
10073
10074 case 517:
10075 /* rule 517 can match eol */
10076 YY_RULE_SETUP
10077 if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");} surfxml_storage_attach_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_attach);
10078         YY_BREAK
10079 case 518:
10080 /* rule 518 can match eol */
10081 YY_RULE_SETUP
10082 if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");}  surfxml_storage_attach_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_attach);
10083         YY_BREAK
10084 case 519:
10085 /* rule 519 can match eol */
10086 YY_RULE_SETUP
10087 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");} surfxml_storage_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content);
10088         YY_BREAK
10089 case 520:
10090 /* rule 520 can match eol */
10091 YY_RULE_SETUP
10092 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");}  surfxml_storage_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content);
10093         YY_BREAK
10094 case 521:
10095 /* rule 521 can match eol */
10096 YY_RULE_SETUP
10097 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");} surfxml_storage_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_id);
10098         YY_BREAK
10099 case 522:
10100 /* rule 522 can match eol */
10101 YY_RULE_SETUP
10102 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");}  surfxml_storage_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_id);
10103         YY_BREAK
10104 case 523:
10105 /* rule 523 can match eol */
10106 YY_RULE_SETUP
10107 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");} surfxml_storage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_typeId);
10108         YY_BREAK
10109 case 524:
10110 /* rule 524 can match eol */
10111 YY_RULE_SETUP
10112 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");}  surfxml_storage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_typeId);
10113         YY_BREAK
10114 case 525:
10115 YY_RULE_SETUP
10116 {
10117   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
10118   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
10119   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
10120   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
10121  }
10122         YY_BREAK
10123 case 526:
10124 YY_RULE_SETUP
10125 {
10126   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
10127   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
10128   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
10129   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
10130   switch (YY_START) {
10131    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10132    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10133   }
10134  }
10135         YY_BREAK
10136 case 527:
10137 YY_RULE_SETUP
10138 FAIL("Unexpected character `%c' in attribute list of storage element.", yytext[0]);
10139         YY_BREAK
10140 case 528:
10141 YY_RULE_SETUP
10142 FAIL("Bad attribute `%s' in `storage' element start tag.",yytext);
10143         YY_BREAK
10144 case YY_STATE_EOF(AL_surfxml_storage):
10145 FAIL("EOF in attribute list of `storage' element.");
10146         YY_BREAK
10147
10148 case 529:
10149 /* rule 529 can match eol */
10150 YY_RULE_SETUP
10151 {
10152   LEAVE;
10153   ETag_surfxml_storage();
10154   popbuffer(); /* attribute */
10155   switch (YY_START) {
10156    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10157    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10158   }
10159  }
10160         YY_BREAK
10161 case 530:
10162 /* rule 530 can match eol */
10163 YY_RULE_SETUP
10164 FAIL("Unexpected end-tag `%s': `</storage>' expected.",yytext);
10165         YY_BREAK
10166 case 531:
10167 YY_RULE_SETUP
10168 FAIL("Unexpected character `%c': `</storage>' expected.",yytext[0]);
10169         YY_BREAK
10170 case YY_STATE_EOF(E_surfxml_storage):
10171 case YY_STATE_EOF(S_surfxml_storage):
10172 case YY_STATE_EOF(S_surfxml_storage_2):
10173 FAIL("Premature EOF: `</storage>' expected.");
10174         YY_BREAK
10175
10176 case 532:
10177 /* rule 532 can match eol */
10178 YY_RULE_SETUP
10179 FAIL("Starting tag <storage_type> is not allowed here.");
10180         YY_BREAK
10181 case 533:
10182 /* rule 533 can match eol */
10183 YY_RULE_SETUP
10184 {
10185   AX_surfxml_storage___type_content = 0;
10186   surfxml_storage___type_content_isset = 0;
10187   AX_surfxml_storage___type_id = 0;
10188   surfxml_storage___type_id_isset = 0;
10189   AX_surfxml_storage___type_model = 16;
10190   surfxml_storage___type_model_isset = 0;
10191   AX_surfxml_storage___type_size = 0;
10192   surfxml_storage___type_size_isset = 0;
10193   ENTER(AL_surfxml_storage___type); pushbuffer(0);
10194   }
10195         YY_BREAK
10196
10197 case 534:
10198 /* rule 534 can match eol */
10199 YY_RULE_SETUP
10200 if (surfxml_storage___type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage___type>");} surfxml_storage___type_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content);
10201         YY_BREAK
10202 case 535:
10203 /* rule 535 can match eol */
10204 YY_RULE_SETUP
10205 if (surfxml_storage___type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage___type>");}  surfxml_storage___type_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content);
10206         YY_BREAK
10207 case 536:
10208 /* rule 536 can match eol */
10209 YY_RULE_SETUP
10210 if (surfxml_storage___type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage___type>");} surfxml_storage___type_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_id);
10211         YY_BREAK
10212 case 537:
10213 /* rule 537 can match eol */
10214 YY_RULE_SETUP
10215 if (surfxml_storage___type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage___type>");}  surfxml_storage___type_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_id);
10216         YY_BREAK
10217 case 538:
10218 /* rule 538 can match eol */
10219 YY_RULE_SETUP
10220 if (surfxml_storage___type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage___type>");} surfxml_storage___type_model_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_model);
10221         YY_BREAK
10222 case 539:
10223 /* rule 539 can match eol */
10224 YY_RULE_SETUP
10225 if (surfxml_storage___type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage___type>");}  surfxml_storage___type_model_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_model);
10226         YY_BREAK
10227 case 540:
10228 /* rule 540 can match eol */
10229 YY_RULE_SETUP
10230 if (surfxml_storage___type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage___type>");} surfxml_storage___type_size_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_size);
10231         YY_BREAK
10232 case 541:
10233 /* rule 541 can match eol */
10234 YY_RULE_SETUP
10235 if (surfxml_storage___type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage___type>");}  surfxml_storage___type_size_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_size);
10236         YY_BREAK
10237 case 542:
10238 YY_RULE_SETUP
10239 {
10240   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
10241   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
10242   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
10243  }
10244         YY_BREAK
10245 case 543:
10246 YY_RULE_SETUP
10247 {
10248   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
10249   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
10250   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
10251   switch (YY_START) {
10252    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10253    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10254   }
10255  }
10256         YY_BREAK
10257 case 544:
10258 YY_RULE_SETUP
10259 FAIL("Unexpected character `%c' in attribute list of storage_type element.", yytext[0]);
10260         YY_BREAK
10261 case 545:
10262 YY_RULE_SETUP
10263 FAIL("Bad attribute `%s' in `storage_type' element start tag.",yytext);
10264         YY_BREAK
10265 case YY_STATE_EOF(AL_surfxml_storage___type):
10266 FAIL("EOF in attribute list of `storage_type' element.");
10267         YY_BREAK
10268
10269 case 546:
10270 /* rule 546 can match eol */
10271 YY_RULE_SETUP
10272 {
10273   LEAVE;
10274   ETag_surfxml_storage___type();
10275   popbuffer(); /* attribute */
10276   switch (YY_START) {
10277    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10278    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10279   }
10280  }
10281         YY_BREAK
10282 case 547:
10283 /* rule 547 can match eol */
10284 YY_RULE_SETUP
10285 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",yytext);
10286         YY_BREAK
10287 case 548:
10288 YY_RULE_SETUP
10289 FAIL("Unexpected character `%c': `</storage_type>' expected.",yytext[0]);
10290         YY_BREAK
10291 case YY_STATE_EOF(E_surfxml_storage___type):
10292 case YY_STATE_EOF(S_surfxml_storage___type):
10293 case YY_STATE_EOF(S_surfxml_storage___type_2):
10294 FAIL("Premature EOF: `</storage_type>' expected.");
10295         YY_BREAK
10296
10297 case 549:
10298 /* rule 549 can match eol */
10299 YY_RULE_SETUP
10300 FAIL("Starting tag <trace> is not allowed here.");
10301         YY_BREAK
10302 case 550:
10303 /* rule 550 can match eol */
10304 YY_RULE_SETUP
10305 {
10306   AX_surfxml_trace_file = 0;
10307   surfxml_trace_file_isset = 0;
10308   AX_surfxml_trace_id = 0;
10309   surfxml_trace_id_isset = 0;
10310   AX_surfxml_trace_periodicity = 0;
10311   surfxml_trace_periodicity_isset = 0;
10312   ENTER(AL_surfxml_trace); pushbuffer(0);
10313   }
10314         YY_BREAK
10315
10316 case 551:
10317 /* rule 551 can match eol */
10318 YY_RULE_SETUP
10319 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");} surfxml_trace_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
10320         YY_BREAK
10321 case 552:
10322 /* rule 552 can match eol */
10323 YY_RULE_SETUP
10324 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");}  surfxml_trace_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
10325         YY_BREAK
10326 case 553:
10327 /* rule 553 can match eol */
10328 YY_RULE_SETUP
10329 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");} surfxml_trace_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
10330         YY_BREAK
10331 case 554:
10332 /* rule 554 can match eol */
10333 YY_RULE_SETUP
10334 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");}  surfxml_trace_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
10335         YY_BREAK
10336 case 555:
10337 /* rule 555 can match eol */
10338 YY_RULE_SETUP
10339 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");} surfxml_trace_periodicity_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
10340         YY_BREAK
10341 case 556:
10342 /* rule 556 can match eol */
10343 YY_RULE_SETUP
10344 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");}  surfxml_trace_periodicity_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
10345         YY_BREAK
10346 case 557:
10347 YY_RULE_SETUP
10348 {
10349   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
10350   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
10351   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
10352  }
10353         YY_BREAK
10354 case 558:
10355 YY_RULE_SETUP
10356 {
10357   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
10358   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
10359   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
10360   switch (YY_START) {
10361    case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_9: SET(S_surfxml_AS_11); break;
10362    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
10363    case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: case S_surfxml_AS_3: SET(S_surfxml_AS_16); break;
10364    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
10365    case S_surfxml_AS_4: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
10366    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10367    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10368    case S_surfxml_zone_10: case S_surfxml_zone_11: case S_surfxml_zone_6: case S_surfxml_zone_7: SET(S_surfxml_zone_11); break;
10369    case S_surfxml_zone_13: SET(S_surfxml_zone_14); break;
10370    case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
10371    case S_surfxml_zone_1: case S_surfxml_zone_5: SET(S_surfxml_zone_6); break;
10372    case S_surfxml_zone: case S_surfxml_zone_4: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10373   }
10374  }
10375         YY_BREAK
10376 case 559:
10377 YY_RULE_SETUP
10378 FAIL("Unexpected character `%c' in attribute list of trace element.", yytext[0]);
10379         YY_BREAK
10380 case 560:
10381 YY_RULE_SETUP
10382 FAIL("Bad attribute `%s' in `trace' element start tag.",yytext);
10383         YY_BREAK
10384 case YY_STATE_EOF(AL_surfxml_trace):
10385 FAIL("EOF in attribute list of `trace' element.");
10386         YY_BREAK
10387
10388 case 561:
10389 /* rule 561 can match eol */
10390 YY_RULE_SETUP
10391 {
10392   LEAVE;
10393   BUFFERDONE;
10394   ETag_surfxml_trace();
10395   surfxml_pcdata_ix = popbuffer();
10396   popbuffer(); /* attribute */
10397   switch (YY_START) {
10398    case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_9: SET(S_surfxml_AS_11); break;
10399    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
10400    case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: case S_surfxml_AS_3: SET(S_surfxml_AS_16); break;
10401    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
10402    case S_surfxml_AS_4: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
10403    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10404    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10405    case S_surfxml_zone_10: case S_surfxml_zone_11: case S_surfxml_zone_6: case S_surfxml_zone_7: SET(S_surfxml_zone_11); break;
10406    case S_surfxml_zone_13: SET(S_surfxml_zone_14); break;
10407    case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
10408    case S_surfxml_zone_1: case S_surfxml_zone_5: SET(S_surfxml_zone_6); break;
10409    case S_surfxml_zone: case S_surfxml_zone_4: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10410   }
10411  }
10412         YY_BREAK
10413 case 562:
10414 /* rule 562 can match eol */
10415 YY_RULE_SETUP
10416 FAIL("Unexpected end-tag `%s': `</trace>' expected.",yytext);
10417         YY_BREAK
10418 case YY_STATE_EOF(IN_trace):
10419 FAIL("Premature EOF: `</trace>' expected.");
10420         YY_BREAK
10421
10422 case 563:
10423 /* rule 563 can match eol */
10424 YY_RULE_SETUP
10425 FAIL("Starting tag <trace_connect> is not allowed here.");
10426         YY_BREAK
10427 case 564:
10428 /* rule 564 can match eol */
10429 YY_RULE_SETUP
10430 {
10431   AX_surfxml_trace___connect_element = 0;
10432   surfxml_trace___connect_element_isset = 0;
10433   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
10434   surfxml_trace___connect_kind_isset = 0;
10435   AX_surfxml_trace___connect_trace = 0;
10436   surfxml_trace___connect_trace_isset = 0;
10437   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
10438   }
10439         YY_BREAK
10440
10441 case 565:
10442 /* rule 565 can match eol */
10443 YY_RULE_SETUP
10444 if (surfxml_trace___connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace___connect>");} surfxml_trace___connect_element_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace___connect_element);
10445         YY_BREAK
10446 case 566:
10447 /* rule 566 can match eol */
10448 YY_RULE_SETUP
10449 if (surfxml_trace___connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace___connect>");}  surfxml_trace___connect_element_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace___connect_element);
10450         YY_BREAK
10451 case 567:
10452 /* rule 567 can match eol */
10453 case 568:
10454 /* rule 568 can match eol */
10455 YY_RULE_SETUP
10456 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
10457         YY_BREAK
10458 case 569:
10459 /* rule 569 can match eol */
10460 case 570:
10461 /* rule 570 can match eol */
10462 YY_RULE_SETUP
10463 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_SPEED;
10464         YY_BREAK
10465 case 571:
10466 /* rule 571 can match eol */
10467 case 572:
10468 /* rule 572 can match eol */
10469 YY_RULE_SETUP
10470 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
10471         YY_BREAK
10472 case 573:
10473 /* rule 573 can match eol */
10474 case 574:
10475 /* rule 574 can match eol */
10476 YY_RULE_SETUP
10477 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
10478         YY_BREAK
10479 case 575:
10480 /* rule 575 can match eol */
10481 case 576:
10482 /* rule 576 can match eol */
10483 YY_RULE_SETUP
10484 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
10485         YY_BREAK
10486 case 577:
10487 /* rule 577 can match eol */
10488 YY_RULE_SETUP
10489 if (surfxml_trace___connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace___connect>");} surfxml_trace___connect_trace_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace___connect_trace);
10490         YY_BREAK
10491 case 578:
10492 /* rule 578 can match eol */
10493 YY_RULE_SETUP
10494 if (surfxml_trace___connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace___connect>");}  surfxml_trace___connect_trace_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace___connect_trace);
10495         YY_BREAK
10496 case 579:
10497 YY_RULE_SETUP
10498 {
10499   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
10500   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
10501   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
10502  }
10503         YY_BREAK
10504 case 580:
10505 YY_RULE_SETUP
10506 {
10507   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
10508   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
10509   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
10510   switch (YY_START) {
10511    case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_9: SET(S_surfxml_AS_11); break;
10512    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
10513    case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: case S_surfxml_AS_3: SET(S_surfxml_AS_16); break;
10514    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
10515    case S_surfxml_AS_4: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
10516    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10517    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10518    case S_surfxml_zone_10: case S_surfxml_zone_11: case S_surfxml_zone_6: case S_surfxml_zone_7: SET(S_surfxml_zone_11); break;
10519    case S_surfxml_zone_13: SET(S_surfxml_zone_14); break;
10520    case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
10521    case S_surfxml_zone_1: case S_surfxml_zone_5: SET(S_surfxml_zone_6); break;
10522    case S_surfxml_zone: case S_surfxml_zone_4: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10523   }
10524  }
10525         YY_BREAK
10526 case 581:
10527 YY_RULE_SETUP
10528 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", yytext[0]);
10529         YY_BREAK
10530 case 582:
10531 YY_RULE_SETUP
10532 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",yytext);
10533         YY_BREAK
10534 case YY_STATE_EOF(AL_surfxml_trace___connect):
10535 FAIL("EOF in attribute list of `trace_connect' element.");
10536         YY_BREAK
10537
10538 case 583:
10539 /* rule 583 can match eol */
10540 YY_RULE_SETUP
10541 {
10542   LEAVE;
10543   ETag_surfxml_trace___connect();
10544   popbuffer(); /* attribute */
10545   switch (YY_START) {
10546    case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_9: SET(S_surfxml_AS_11); break;
10547    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
10548    case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: case S_surfxml_AS_3: SET(S_surfxml_AS_16); break;
10549    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
10550    case S_surfxml_AS_4: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
10551    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10552    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10553    case S_surfxml_zone_10: case S_surfxml_zone_11: case S_surfxml_zone_6: case S_surfxml_zone_7: SET(S_surfxml_zone_11); break;
10554    case S_surfxml_zone_13: SET(S_surfxml_zone_14); break;
10555    case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
10556    case S_surfxml_zone_1: case S_surfxml_zone_5: SET(S_surfxml_zone_6); break;
10557    case S_surfxml_zone: case S_surfxml_zone_4: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10558   }
10559  }
10560         YY_BREAK
10561 case 584:
10562 /* rule 584 can match eol */
10563 YY_RULE_SETUP
10564 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",yytext);
10565         YY_BREAK
10566 case 585:
10567 YY_RULE_SETUP
10568 FAIL("Unexpected character `%c': `</trace_connect>' expected.",yytext[0]);
10569         YY_BREAK
10570 case YY_STATE_EOF(E_surfxml_trace___connect):
10571 FAIL("Premature EOF: `</trace_connect>' expected.");
10572         YY_BREAK
10573
10574 /* <!-- A zone is either an internal node that contains other zones, 
10575   *      or a  leaf containing hosts and other leaf-like elements -->
10576   *           (((AS|zone|include|link|backbone|cabinet|cluster|peer|trace|trace_connect)*,
10577   *             (zoneRoute|ASroute|trace|trace_connect|bypassASroute|bypassZoneRoute)*,
10578   *         (trace|trace_connect)*)
10579   *        |((include|storage_type|storage|host|cabinet|router|link|backbone|trace|trace_connect|host_link)*,
10580   *          (route|trace|trace_connect|bypassRoute)*)))>  */
10581 case 586:
10582 /* rule 586 can match eol */
10583 YY_RULE_SETUP
10584 FAIL("Starting tag <zone> is not allowed here.");
10585         YY_BREAK
10586 case 587:
10587 /* rule 587 can match eol */
10588 YY_RULE_SETUP
10589 {
10590   AX_surfxml_zone_id = 0;
10591   surfxml_zone_id_isset = 0;
10592   AX_surfxml_zone_routing = AU_surfxml_zone_routing;
10593   surfxml_zone_routing_isset = 0;
10594   ENTER(AL_surfxml_zone); pushbuffer(0);
10595   }
10596         YY_BREAK
10597
10598 case 588:
10599 /* rule 588 can match eol */
10600 YY_RULE_SETUP
10601 if (surfxml_zone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_zone>");} surfxml_zone_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zone_id);
10602         YY_BREAK
10603 case 589:
10604 /* rule 589 can match eol */
10605 YY_RULE_SETUP
10606 if (surfxml_zone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_zone>");}  surfxml_zone_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zone_id);
10607         YY_BREAK
10608 case 590:
10609 /* rule 590 can match eol */
10610 case 591:
10611 /* rule 591 can match eol */
10612 YY_RULE_SETUP
10613 A_surfxml_zone_routing = A_surfxml_zone_routing_Full;
10614         YY_BREAK
10615 case 592:
10616 /* rule 592 can match eol */
10617 case 593:
10618 /* rule 593 can match eol */
10619 YY_RULE_SETUP
10620 A_surfxml_zone_routing = A_surfxml_zone_routing_Floyd;
10621         YY_BREAK
10622 case 594:
10623 /* rule 594 can match eol */
10624 case 595:
10625 /* rule 595 can match eol */
10626 YY_RULE_SETUP
10627 A_surfxml_zone_routing = A_surfxml_zone_routing_Dijkstra;
10628         YY_BREAK
10629 case 596:
10630 /* rule 596 can match eol */
10631 case 597:
10632 /* rule 597 can match eol */
10633 YY_RULE_SETUP
10634 A_surfxml_zone_routing = A_surfxml_zone_routing_DijkstraCache;
10635         YY_BREAK
10636 case 598:
10637 /* rule 598 can match eol */
10638 case 599:
10639 /* rule 599 can match eol */
10640 YY_RULE_SETUP
10641 A_surfxml_zone_routing = A_surfxml_zone_routing_None;
10642         YY_BREAK
10643 case 600:
10644 /* rule 600 can match eol */
10645 case 601:
10646 /* rule 601 can match eol */
10647 YY_RULE_SETUP
10648 A_surfxml_zone_routing = A_surfxml_zone_routing_Vivaldi;
10649         YY_BREAK
10650 case 602:
10651 /* rule 602 can match eol */
10652 case 603:
10653 /* rule 603 can match eol */
10654 YY_RULE_SETUP
10655 A_surfxml_zone_routing = A_surfxml_zone_routing_Cluster;
10656         YY_BREAK
10657 case 604:
10658 /* rule 604 can match eol */
10659 case 605:
10660 /* rule 605 can match eol */
10661 YY_RULE_SETUP
10662 A_surfxml_zone_routing = A_surfxml_zone_routing_ClusterTorus;
10663         YY_BREAK
10664 case 606:
10665 /* rule 606 can match eol */
10666 case 607:
10667 /* rule 607 can match eol */
10668 YY_RULE_SETUP
10669 A_surfxml_zone_routing = A_surfxml_zone_routing_ClusterFatTree;
10670         YY_BREAK
10671 case 608:
10672 /* rule 608 can match eol */
10673 case 609:
10674 /* rule 609 can match eol */
10675 YY_RULE_SETUP
10676 A_surfxml_zone_routing = A_surfxml_zone_routing_ClusterDragonfly;
10677         YY_BREAK
10678 case 610:
10679 YY_RULE_SETUP
10680 {
10681   if (!AX_surfxml_zone_id) FAIL("Required attribute `id' not set for `zone' element.");
10682   if (!AX_surfxml_zone_routing) FAIL("Required attribute `routing' not set for `zone' element.");
10683   LEAVE; STag_surfxml_zone();surfxml_pcdata_ix = 0; ENTER(S_surfxml_zone);
10684  }
10685         YY_BREAK
10686 case 611:
10687 YY_RULE_SETUP
10688 {
10689   if (!AX_surfxml_zone_id) FAIL("Required attribute `id' not set for `zone' element.");
10690   if (!AX_surfxml_zone_routing) FAIL("Required attribute `routing' not set for `zone' element.");
10691   LEAVE; STag_surfxml_zone(); surfxml_pcdata_ix = 0; ETag_surfxml_zone(); popbuffer(); /* attribute */
10692   switch (YY_START) {
10693    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
10694    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10695    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10696    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
10697   }
10698  }
10699         YY_BREAK
10700 case 612:
10701 YY_RULE_SETUP
10702 FAIL("Unexpected character `%c' in attribute list of zone element.", yytext[0]);
10703         YY_BREAK
10704 case 613:
10705 YY_RULE_SETUP
10706 FAIL("Bad attribute `%s' in `zone' element start tag.",yytext);
10707         YY_BREAK
10708 case YY_STATE_EOF(AL_surfxml_zone):
10709 FAIL("EOF in attribute list of `zone' element.");
10710         YY_BREAK
10711
10712 case 614:
10713 /* rule 614 can match eol */
10714 YY_RULE_SETUP
10715 {
10716   LEAVE;
10717   ETag_surfxml_zone();
10718   popbuffer(); /* attribute */
10719   switch (YY_START) {
10720    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
10721    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10722    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10723    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
10724   }
10725  }
10726         YY_BREAK
10727 case 615:
10728 /* rule 615 can match eol */
10729 YY_RULE_SETUP
10730 FAIL("Unexpected end-tag `%s': `</zone>' expected.",yytext);
10731         YY_BREAK
10732 case 616:
10733 YY_RULE_SETUP
10734 FAIL("Unexpected character `%c': `</zone>' expected.",yytext[0]);
10735         YY_BREAK
10736 case YY_STATE_EOF(E_surfxml_zone):
10737 case YY_STATE_EOF(S_surfxml_zone):
10738 case YY_STATE_EOF(S_surfxml_zone_1):
10739 case YY_STATE_EOF(S_surfxml_zone_11):
10740 case YY_STATE_EOF(S_surfxml_zone_12):
10741 case YY_STATE_EOF(S_surfxml_zone_14):
10742 case YY_STATE_EOF(S_surfxml_zone_16):
10743 case YY_STATE_EOF(S_surfxml_zone_3):
10744 case YY_STATE_EOF(S_surfxml_zone_4):
10745 case YY_STATE_EOF(S_surfxml_zone_6):
10746 case YY_STATE_EOF(S_surfxml_zone_7):
10747 case YY_STATE_EOF(S_surfxml_zone_9):
10748 FAIL("Premature EOF: `</zone>' expected.");
10749         YY_BREAK
10750
10751 case 617:
10752 /* rule 617 can match eol */
10753 YY_RULE_SETUP
10754 FAIL("Starting tag <zoneRoute> is not allowed here.");
10755         YY_BREAK
10756 case 618:
10757 /* rule 618 can match eol */
10758 YY_RULE_SETUP
10759 {
10760   AX_surfxml_zoneRoute_dst = 0;
10761   surfxml_zoneRoute_dst_isset = 0;
10762   AX_surfxml_zoneRoute_gw___dst = 0;
10763   surfxml_zoneRoute_gw___dst_isset = 0;
10764   AX_surfxml_zoneRoute_gw___src = 0;
10765   surfxml_zoneRoute_gw___src_isset = 0;
10766   AX_surfxml_zoneRoute_src = 0;
10767   surfxml_zoneRoute_src_isset = 0;
10768   AX_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_YES;
10769   surfxml_zoneRoute_symmetrical_isset = 0;
10770   ENTER(AL_surfxml_zoneRoute); pushbuffer(0);
10771   }
10772         YY_BREAK
10773
10774 case 619:
10775 /* rule 619 can match eol */
10776 YY_RULE_SETUP
10777 if (surfxml_zoneRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_zoneRoute>");} surfxml_zoneRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zoneRoute_dst);
10778         YY_BREAK
10779 case 620:
10780 /* rule 620 can match eol */
10781 YY_RULE_SETUP
10782 if (surfxml_zoneRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_zoneRoute>");}  surfxml_zoneRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zoneRoute_dst);
10783         YY_BREAK
10784 case 621:
10785 /* rule 621 can match eol */
10786 YY_RULE_SETUP
10787 if (surfxml_zoneRoute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_zoneRoute>");} surfxml_zoneRoute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zoneRoute_gw___dst);
10788         YY_BREAK
10789 case 622:
10790 /* rule 622 can match eol */
10791 YY_RULE_SETUP
10792 if (surfxml_zoneRoute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_zoneRoute>");}  surfxml_zoneRoute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zoneRoute_gw___dst);
10793         YY_BREAK
10794 case 623:
10795 /* rule 623 can match eol */
10796 YY_RULE_SETUP
10797 if (surfxml_zoneRoute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_zoneRoute>");} surfxml_zoneRoute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zoneRoute_gw___src);
10798         YY_BREAK
10799 case 624:
10800 /* rule 624 can match eol */
10801 YY_RULE_SETUP
10802 if (surfxml_zoneRoute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_zoneRoute>");}  surfxml_zoneRoute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zoneRoute_gw___src);
10803         YY_BREAK
10804 case 625:
10805 /* rule 625 can match eol */
10806 YY_RULE_SETUP
10807 if (surfxml_zoneRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_zoneRoute>");} surfxml_zoneRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zoneRoute_src);
10808         YY_BREAK
10809 case 626:
10810 /* rule 626 can match eol */
10811 YY_RULE_SETUP
10812 if (surfxml_zoneRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_zoneRoute>");}  surfxml_zoneRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zoneRoute_src);
10813         YY_BREAK
10814 case 627:
10815 /* rule 627 can match eol */
10816 case 628:
10817 /* rule 628 can match eol */
10818 YY_RULE_SETUP
10819 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_YES;
10820         YY_BREAK
10821 case 629:
10822 /* rule 629 can match eol */
10823 case 630:
10824 /* rule 630 can match eol */
10825 YY_RULE_SETUP
10826 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_NO;
10827         YY_BREAK
10828 case 631:
10829 /* rule 631 can match eol */
10830 case 632:
10831 /* rule 632 can match eol */
10832 YY_RULE_SETUP
10833 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_yes;
10834         YY_BREAK
10835 case 633:
10836 /* rule 633 can match eol */
10837 case 634:
10838 /* rule 634 can match eol */
10839 YY_RULE_SETUP
10840 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_no;
10841         YY_BREAK
10842 case 635:
10843 YY_RULE_SETUP
10844 {
10845   if (!AX_surfxml_zoneRoute_dst) FAIL("Required attribute `dst' not set for `zoneRoute' element.");
10846   if (!AX_surfxml_zoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `zoneRoute' element.");
10847   if (!AX_surfxml_zoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `zoneRoute' element.");
10848   if (!AX_surfxml_zoneRoute_src) FAIL("Required attribute `src' not set for `zoneRoute' element.");
10849   LEAVE; STag_surfxml_zoneRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_zoneRoute);
10850  }
10851         YY_BREAK
10852 case 636:
10853 YY_RULE_SETUP
10854 {
10855   if (!AX_surfxml_zoneRoute_dst) FAIL("Required attribute `dst' not set for `zoneRoute' element.");
10856   if (!AX_surfxml_zoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `zoneRoute' element.");
10857   if (!AX_surfxml_zoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `zoneRoute' element.");
10858   if (!AX_surfxml_zoneRoute_src) FAIL("Required attribute `src' not set for `zoneRoute' element.");
10859   LEAVE; STag_surfxml_zoneRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_zoneRoute(); popbuffer(); /* attribute */
10860   switch (YY_START) {
10861    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
10862    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10863   }
10864  }
10865         YY_BREAK
10866 case 637:
10867 YY_RULE_SETUP
10868 FAIL("Unexpected character `%c' in attribute list of zoneRoute element.", yytext[0]);
10869         YY_BREAK
10870 case 638:
10871 YY_RULE_SETUP
10872 FAIL("Bad attribute `%s' in `zoneRoute' element start tag.",yytext);
10873         YY_BREAK
10874 case YY_STATE_EOF(AL_surfxml_zoneRoute):
10875 FAIL("EOF in attribute list of `zoneRoute' element.");
10876         YY_BREAK
10877
10878 case 639:
10879 /* rule 639 can match eol */
10880 YY_RULE_SETUP
10881 {
10882   LEAVE;
10883   ETag_surfxml_zoneRoute();
10884   popbuffer(); /* attribute */
10885   switch (YY_START) {
10886    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
10887    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10888   }
10889  }
10890         YY_BREAK
10891 case 640:
10892 /* rule 640 can match eol */
10893 YY_RULE_SETUP
10894 FAIL("Unexpected end-tag `%s': `</zoneRoute>' expected.",yytext);
10895         YY_BREAK
10896 case 641:
10897 YY_RULE_SETUP
10898 FAIL("Unexpected character `%c': `</zoneRoute>' expected.",yytext[0]);
10899         YY_BREAK
10900 case YY_STATE_EOF(E_surfxml_zoneRoute):
10901 case YY_STATE_EOF(S_surfxml_zoneRoute):
10902 case YY_STATE_EOF(S_surfxml_zoneRoute_2):
10903 FAIL("Premature EOF: `</zoneRoute>' expected.");
10904         YY_BREAK
10905
10906 /* EPILOG: after the root element. */
10907
10908 case 642:
10909 YY_RULE_SETUP
10910 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
10911         YY_BREAK
10912 case YY_STATE_EOF(EPILOG):
10913 SUCCEED;
10914         YY_BREAK
10915
10916 /* CHARACTER DATA. */
10917
10918 /* Non-defined standard entities... */
10919 case 643:
10920 YY_RULE_SETUP
10921 BUFFERPUTC('&');
10922         YY_BREAK
10923 case 644:
10924 YY_RULE_SETUP
10925 BUFFERPUTC('<');
10926         YY_BREAK
10927 case 645:
10928 YY_RULE_SETUP
10929 BUFFERPUTC('>');
10930         YY_BREAK
10931 case 646:
10932 YY_RULE_SETUP
10933 BUFFERPUTC('\'');
10934         YY_BREAK
10935 case 647:
10936 YY_RULE_SETUP
10937 BUFFERPUTC('"');
10938         YY_BREAK
10939 /* Character entities. */
10940 case 648:
10941 YY_RULE_SETUP
10942 BUFFERPUTC((unsigned char)atoi(yytext+2));
10943         YY_BREAK
10944 case 649:
10945 YY_RULE_SETUP
10946 BUFFERPUTC((unsigned char)strtol(yytext+3,NULL,16));
10947         YY_BREAK
10948
10949 case 650:
10950 /* rule 650 can match eol */
10951 case 651:
10952 /* rule 651 can match eol */
10953 case 652:
10954 /* rule 652 can match eol */
10955 case 653:
10956 /* rule 653 can match eol */
10957 YY_RULE_SETUP
10958 BUFFERPUTC('\n');
10959         YY_BREAK
10960
10961 case 654:
10962 YY_RULE_SETUP
10963 ENTER(CDATA);
10964         YY_BREAK
10965 case 655:
10966 YY_RULE_SETUP
10967 FAIL("Unexpected `]""]>' in character data.");
10968         YY_BREAK
10969
10970 case 656:
10971 YY_RULE_SETUP
10972 BUFFERDONE; LEAVE;
10973         YY_BREAK
10974 case YY_STATE_EOF(VALUE1):
10975 FAIL("EOF in literal (\"'\" expected).");
10976         YY_BREAK
10977
10978 case 657:
10979 YY_RULE_SETUP
10980 BUFFERDONE; LEAVE;
10981         YY_BREAK
10982 case YY_STATE_EOF(VALUE2):
10983 FAIL("EOF in literal (`\"' expected).");
10984         YY_BREAK
10985
10986 case 658:
10987 /* rule 658 can match eol */
10988 YY_RULE_SETUP
10989 BUFFERPUTC(yytext[0]);
10990         YY_BREAK
10991 case 659:
10992 YY_RULE_SETUP
10993 FAIL("Spurious `%c' in character data.",yytext[0]);
10994         YY_BREAK
10995
10996 case 660:
10997 YY_RULE_SETUP
10998 LEAVE;
10999         YY_BREAK
11000 /* "]""]"               BUFFERPUTC(yytext[0]); BUFFERPUTC(yytext[1]); */
11001 case 661:
11002 YY_RULE_SETUP
11003 BUFFERPUTC(yytext[0]);
11004         YY_BREAK
11005 case YY_STATE_EOF(CDATA):
11006 FAIL("EOF in CDATA section.");
11007         YY_BREAK
11008
11009 /* Impossible rules to avoid warnings from flex(1). */
11010 /* Ideally, this should be replaced by code in flexml.pl that
11011     generates just the states not covered by other rules. */
11012
11013 case 662:
11014 /* rule 662 can match eol */
11015 YY_RULE_SETUP
11016 FAIL("Syntax error on character `%c'.", yytext[0]);
11017         YY_BREAK
11018
11019 case 663:
11020 YY_RULE_SETUP
11021 ECHO;
11022         YY_BREAK
11023 case YY_STATE_EOF(INITIAL):
11024 case YY_STATE_EOF(S_surfxml_AS_2):
11025 case YY_STATE_EOF(S_surfxml_AS_5):
11026 case YY_STATE_EOF(S_surfxml_AS_8):
11027 case YY_STATE_EOF(S_surfxml_AS_10):
11028 case YY_STATE_EOF(S_surfxml_AS_13):
11029 case YY_STATE_EOF(S_surfxml_AS_15):
11030 case YY_STATE_EOF(S_surfxml_ASroute_1):
11031 case YY_STATE_EOF(S_surfxml_actor_1):
11032 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
11033 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
11034 case YY_STATE_EOF(S_surfxml_bypassZoneRoute_1):
11035 case YY_STATE_EOF(S_surfxml_cluster_1):
11036 case YY_STATE_EOF(S_surfxml_config_1):
11037 case YY_STATE_EOF(S_surfxml_host_1):
11038 case YY_STATE_EOF(S_surfxml_include_1):
11039 case YY_STATE_EOF(S_surfxml_link_1):
11040 case YY_STATE_EOF(ROOT_surfxml_platform):
11041 case YY_STATE_EOF(S_surfxml_platform_2):
11042 case YY_STATE_EOF(S_surfxml_platform_5):
11043 case YY_STATE_EOF(S_surfxml_platform_7):
11044 case YY_STATE_EOF(S_surfxml_process_1):
11045 case YY_STATE_EOF(S_surfxml_route_1):
11046 case YY_STATE_EOF(S_surfxml_storage_1):
11047 case YY_STATE_EOF(S_surfxml_storage___type_1):
11048 case YY_STATE_EOF(S_surfxml_zone_2):
11049 case YY_STATE_EOF(S_surfxml_zone_5):
11050 case YY_STATE_EOF(S_surfxml_zone_8):
11051 case YY_STATE_EOF(S_surfxml_zone_10):
11052 case YY_STATE_EOF(S_surfxml_zone_13):
11053 case YY_STATE_EOF(S_surfxml_zone_15):
11054 case YY_STATE_EOF(S_surfxml_zoneRoute_1):
11055 case YY_STATE_EOF(IMPOSSIBLE):
11056         yyterminate();
11057
11058         case YY_END_OF_BUFFER:
11059                 {
11060                 /* Amount of text matched not including the EOB char. */
11061                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
11062
11063                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
11064                 *yy_cp = (yy_hold_char);
11065                 YY_RESTORE_YY_MORE_OFFSET
11066
11067                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
11068                         {
11069                         /* We're scanning a new file or input source.  It's
11070                          * possible that this happened because the user
11071                          * just pointed yyin at a new source and called
11072                          * yylex().  If so, then we have to assure
11073                          * consistency between YY_CURRENT_BUFFER and our
11074                          * globals.  Here is the right place to do so, because
11075                          * this is the first action (other than possibly a
11076                          * back-up) that will match for the new input source.
11077                          */
11078                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
11079                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
11080                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
11081                         }
11082
11083                 /* Note that here we test for yy_c_buf_p "<=" to the position
11084                  * of the first EOB in the buffer, since yy_c_buf_p will
11085                  * already have been incremented past the NUL character
11086                  * (since all states make transitions on EOB to the
11087                  * end-of-buffer state).  Contrast this with the test
11088                  * in input().
11089                  */
11090                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
11091                         { /* This was really a NUL. */
11092                         yy_state_type yy_next_state;
11093
11094                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
11095
11096                         yy_current_state = yy_get_previous_state(  );
11097
11098                         /* Okay, we're now positioned to make the NUL
11099                          * transition.  We couldn't have
11100                          * yy_get_previous_state() go ahead and do it
11101                          * for us because it doesn't know how to deal
11102                          * with the possibility of jamming (and we don't
11103                          * want to build jamming into it because then it
11104                          * will run more slowly).
11105                          */
11106
11107                         yy_next_state = yy_try_NUL_trans( yy_current_state );
11108
11109                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
11110
11111                         if ( yy_next_state )
11112                                 {
11113                                 /* Consume the NUL. */
11114                                 yy_cp = ++(yy_c_buf_p);
11115                                 yy_current_state = yy_next_state;
11116                                 goto yy_match;
11117                                 }
11118
11119                         else
11120                                 {
11121                                 yy_cp = (yy_c_buf_p);
11122                                 goto yy_find_action;
11123                                 }
11124                         }
11125
11126                 else switch ( yy_get_next_buffer(  ) )
11127                         {
11128                         case EOB_ACT_END_OF_FILE:
11129                                 {
11130                                 (yy_did_buffer_switch_on_eof) = 0;
11131
11132                                 if ( yywrap(  ) )
11133                                         {
11134                                         /* Note: because we've taken care in
11135                                          * yy_get_next_buffer() to have set up
11136                                          * yytext, we can now set up
11137                                          * yy_c_buf_p so that if some total
11138                                          * hoser (like flex itself) wants to
11139                                          * call the scanner after we return the
11140                                          * YY_NULL, it'll still work - another
11141                                          * YY_NULL will get returned.
11142                                          */
11143                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
11144
11145                                         yy_act = YY_STATE_EOF(YY_START);
11146                                         goto do_action;
11147                                         }
11148
11149                                 else
11150                                         {
11151                                         if ( ! (yy_did_buffer_switch_on_eof) )
11152                                                 YY_NEW_FILE;
11153                                         }
11154                                 break;
11155                                 }
11156
11157                         case EOB_ACT_CONTINUE_SCAN:
11158                                 (yy_c_buf_p) =
11159                                         (yytext_ptr) + yy_amount_of_matched_text;
11160
11161                                 yy_current_state = yy_get_previous_state(  );
11162
11163                                 yy_cp = (yy_c_buf_p);
11164                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
11165                                 goto yy_match;
11166
11167                         case EOB_ACT_LAST_MATCH:
11168                                 (yy_c_buf_p) =
11169                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
11170
11171                                 yy_current_state = yy_get_previous_state(  );
11172
11173                                 yy_cp = (yy_c_buf_p);
11174                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
11175                                 goto yy_find_action;
11176                         }
11177                 break;
11178                 }
11179
11180         default:
11181                 YY_FATAL_ERROR(
11182                         "fatal flex scanner internal error--no action found" );
11183         } /* end of action switch */
11184                 } /* end of scanning one token */
11185         } /* end of user's declarations */
11186 } /* end of yylex */
11187
11188 /* yy_get_next_buffer - try to read in a new buffer
11189  *
11190  * Returns a code representing an action:
11191  *      EOB_ACT_LAST_MATCH -
11192  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
11193  *      EOB_ACT_END_OF_FILE - end of file
11194  */
11195 static int yy_get_next_buffer (void)
11196 {
11197         char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
11198         char *source = (yytext_ptr);
11199         int number_to_move, i;
11200         int ret_val;
11201
11202         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
11203                 YY_FATAL_ERROR(
11204                 "fatal flex scanner internal error--end of buffer missed" );
11205
11206         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
11207                 { /* Don't try to fill the buffer, so this is an EOF. */
11208                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
11209                         {
11210                         /* We matched a single character, the EOB, so
11211                          * treat this as a final EOF.
11212                          */
11213                         return EOB_ACT_END_OF_FILE;
11214                         }
11215
11216                 else
11217                         {
11218                         /* We matched some text prior to the EOB, first
11219                          * process it.
11220                          */
11221                         return EOB_ACT_LAST_MATCH;
11222                         }
11223                 }
11224
11225         /* Try to read more data. */
11226
11227         /* First move last chars to start of buffer. */
11228         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
11229
11230         for ( i = 0; i < number_to_move; ++i )
11231                 *(dest++) = *(source++);
11232
11233         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
11234                 /* don't do the read, it's not guaranteed to return an EOF,
11235                  * just force an EOF
11236                  */
11237                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
11238
11239         else
11240                 {
11241                         int num_to_read =
11242                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
11243
11244                 while ( num_to_read <= 0 )
11245                         { /* Not enough room in the buffer - grow it. */
11246
11247                         /* just a shorter name for the current buffer */
11248                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
11249
11250                         int yy_c_buf_p_offset =
11251                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
11252
11253                         if ( b->yy_is_our_buffer )
11254                                 {
11255                                 int new_size = b->yy_buf_size * 2;
11256
11257                                 if ( new_size <= 0 )
11258                                         b->yy_buf_size += b->yy_buf_size / 8;
11259                                 else
11260                                         b->yy_buf_size *= 2;
11261
11262                                 b->yy_ch_buf = (char *)
11263                                         /* Include room in for 2 EOB chars. */
11264                                         yyrealloc( (void *) b->yy_ch_buf,
11265                                                          (yy_size_t) (b->yy_buf_size + 2)  );
11266                                 }
11267                         else
11268                                 /* Can't grow it, we don't own it. */
11269                                 b->yy_ch_buf = NULL;
11270
11271                         if ( ! b->yy_ch_buf )
11272                                 YY_FATAL_ERROR(
11273                                 "fatal error - scanner input buffer overflow" );
11274
11275                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
11276
11277                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
11278                                                 number_to_move - 1;
11279
11280                         }
11281
11282                 if ( num_to_read > YY_READ_BUF_SIZE )
11283                         num_to_read = YY_READ_BUF_SIZE;
11284
11285                 /* Read in more data. */
11286                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
11287                         (yy_n_chars), num_to_read );
11288
11289                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
11290                 }
11291
11292         if ( (yy_n_chars) == 0 )
11293                 {
11294                 if ( number_to_move == YY_MORE_ADJ )
11295                         {
11296                         ret_val = EOB_ACT_END_OF_FILE;
11297                         yyrestart( yyin  );
11298                         }
11299
11300                 else
11301                         {
11302                         ret_val = EOB_ACT_LAST_MATCH;
11303                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
11304                                 YY_BUFFER_EOF_PENDING;
11305                         }
11306                 }
11307
11308         else
11309                 ret_val = EOB_ACT_CONTINUE_SCAN;
11310
11311         if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
11312                 /* Extend the array by 50%, plus the number we really need. */
11313                 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
11314                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
11315                         (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
11316                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
11317                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
11318                 /* "- 2" to take care of EOB's */
11319                 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
11320         }
11321
11322         (yy_n_chars) += number_to_move;
11323         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
11324         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
11325
11326         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
11327
11328         return ret_val;
11329 }
11330
11331 /* yy_get_previous_state - get the state just before the EOB char was reached */
11332
11333     static yy_state_type yy_get_previous_state (void)
11334 {
11335         yy_state_type yy_current_state;
11336         char *yy_cp;
11337     
11338         yy_current_state = (yy_start);
11339
11340         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
11341                 {
11342                 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
11343                 if ( yy_accept[yy_current_state] )
11344                         {
11345                         (yy_last_accepting_state) = yy_current_state;
11346                         (yy_last_accepting_cpos) = yy_cp;
11347                         }
11348                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
11349                         {
11350                         yy_current_state = (int) yy_def[yy_current_state];
11351                         if ( yy_current_state >= 3991 )
11352                                 yy_c = yy_meta[yy_c];
11353                         }
11354                 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
11355                 }
11356
11357         return yy_current_state;
11358 }
11359
11360 /* yy_try_NUL_trans - try to make a transition on the NUL character
11361  *
11362  * synopsis
11363  *      next_state = yy_try_NUL_trans( current_state );
11364  */
11365     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
11366 {
11367         int yy_is_jam;
11368         char *yy_cp = (yy_c_buf_p);
11369
11370         YY_CHAR yy_c = 1;
11371         if ( yy_accept[yy_current_state] )
11372                 {
11373                 (yy_last_accepting_state) = yy_current_state;
11374                 (yy_last_accepting_cpos) = yy_cp;
11375                 }
11376         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
11377                 {
11378                 yy_current_state = (int) yy_def[yy_current_state];
11379                 if ( yy_current_state >= 3991 )
11380                         yy_c = yy_meta[yy_c];
11381                 }
11382         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
11383         yy_is_jam = (yy_current_state == 3990);
11384
11385                 return yy_is_jam ? 0 : yy_current_state;
11386 }
11387
11388 #ifndef YY_NO_UNPUT
11389
11390 #endif
11391
11392 #ifndef YY_NO_INPUT
11393 #ifdef __cplusplus
11394     static int yyinput (void)
11395 #else
11396     static int input  (void)
11397 #endif
11398
11399 {
11400         int c;
11401     
11402         *(yy_c_buf_p) = (yy_hold_char);
11403
11404         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
11405                 {
11406                 /* yy_c_buf_p now points to the character we want to return.
11407                  * If this occurs *before* the EOB characters, then it's a
11408                  * valid NUL; if not, then we've hit the end of the buffer.
11409                  */
11410                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
11411                         /* This was really a NUL. */
11412                         *(yy_c_buf_p) = '\0';
11413
11414                 else
11415                         { /* need more input */
11416                         int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
11417                         ++(yy_c_buf_p);
11418
11419                         switch ( yy_get_next_buffer(  ) )
11420                                 {
11421                                 case EOB_ACT_LAST_MATCH:
11422                                         /* This happens because yy_g_n_b()
11423                                          * sees that we've accumulated a
11424                                          * token and flags that we need to
11425                                          * try matching the token before
11426                                          * proceeding.  But for input(),
11427                                          * there's no matching to consider.
11428                                          * So convert the EOB_ACT_LAST_MATCH
11429                                          * to EOB_ACT_END_OF_FILE.
11430                                          */
11431
11432                                         /* Reset buffer status. */
11433                                         yyrestart( yyin );
11434
11435                                         /*FALLTHROUGH*/
11436
11437                                 case EOB_ACT_END_OF_FILE:
11438                                         {
11439                                         if ( yywrap(  ) )
11440                                                 return 0;
11441
11442                                         if ( ! (yy_did_buffer_switch_on_eof) )
11443                                                 YY_NEW_FILE;
11444 #ifdef __cplusplus
11445                                         return yyinput();
11446 #else
11447                                         return input();
11448 #endif
11449                                         }
11450
11451                                 case EOB_ACT_CONTINUE_SCAN:
11452                                         (yy_c_buf_p) = (yytext_ptr) + offset;
11453                                         break;
11454                                 }
11455                         }
11456                 }
11457
11458         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
11459         *(yy_c_buf_p) = '\0';   /* preserve yytext */
11460         (yy_hold_char) = *++(yy_c_buf_p);
11461
11462         if ( c == '\n' )
11463                 
11464     yylineno++;
11465 ;
11466
11467         return c;
11468 }
11469 #endif  /* ifndef YY_NO_INPUT */
11470
11471 /** Immediately switch to a different input stream.
11472  * @param input_file A readable stream.
11473  * 
11474  * @note This function does not reset the start condition to @c INITIAL .
11475  */
11476     void yyrestart  (FILE * input_file )
11477 {
11478     
11479         if ( ! YY_CURRENT_BUFFER ){
11480         yyensure_buffer_stack ();
11481                 YY_CURRENT_BUFFER_LVALUE =
11482             yy_create_buffer( yyin, YY_BUF_SIZE );
11483         }
11484
11485         yy_init_buffer( YY_CURRENT_BUFFER, input_file );
11486         yy_load_buffer_state(  );
11487 }
11488
11489 /** Switch to a different input buffer.
11490  * @param new_buffer The new input buffer.
11491  * 
11492  */
11493     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
11494 {
11495     
11496         /* TODO. We should be able to replace this entire function body
11497          * with
11498          *              yypop_buffer_state();
11499          *              yypush_buffer_state(new_buffer);
11500      */
11501         yyensure_buffer_stack ();
11502         if ( YY_CURRENT_BUFFER == new_buffer )
11503                 return;
11504
11505         if ( YY_CURRENT_BUFFER )
11506                 {
11507                 /* Flush out information for old buffer. */
11508                 *(yy_c_buf_p) = (yy_hold_char);
11509                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
11510                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
11511                 }
11512
11513         YY_CURRENT_BUFFER_LVALUE = new_buffer;
11514         yy_load_buffer_state(  );
11515
11516         /* We don't actually know whether we did this switch during
11517          * EOF (yywrap()) processing, but the only time this flag
11518          * is looked at is after yywrap() is called, so it's safe
11519          * to go ahead and always set it.
11520          */
11521         (yy_did_buffer_switch_on_eof) = 1;
11522 }
11523
11524 static void yy_load_buffer_state  (void)
11525 {
11526         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
11527         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
11528         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
11529         (yy_hold_char) = *(yy_c_buf_p);
11530 }
11531
11532 /** Allocate and initialize an input buffer state.
11533  * @param file A readable stream.
11534  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
11535  * 
11536  * @return the allocated buffer state.
11537  */
11538     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
11539 {
11540         YY_BUFFER_STATE b;
11541     
11542         b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
11543         if ( ! b )
11544                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
11545
11546         b->yy_buf_size = size;
11547
11548         /* yy_ch_buf has to be 2 characters longer than the size given because
11549          * we need to put in 2 end-of-buffer characters.
11550          */
11551         b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
11552         if ( ! b->yy_ch_buf )
11553                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
11554
11555         b->yy_is_our_buffer = 1;
11556
11557         yy_init_buffer( b, file );
11558
11559         return b;
11560 }
11561
11562 /** Destroy the buffer.
11563  * @param b a buffer created with yy_create_buffer()
11564  * 
11565  */
11566     void yy_delete_buffer (YY_BUFFER_STATE  b )
11567 {
11568     
11569         if ( ! b )
11570                 return;
11571
11572         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
11573                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
11574
11575         if ( b->yy_is_our_buffer )
11576                 yyfree( (void *) b->yy_ch_buf  );
11577
11578         yyfree( (void *) b  );
11579 }
11580
11581 /* Initializes or reinitializes a buffer.
11582  * This function is sometimes called more than once on the same buffer,
11583  * such as during a yyrestart() or at EOF.
11584  */
11585     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
11586
11587 {
11588         int oerrno = errno;
11589     
11590         yy_flush_buffer( b );
11591
11592         b->yy_input_file = file;
11593         b->yy_fill_buffer = 1;
11594
11595     /* If b is the current buffer, then yy_init_buffer was _probably_
11596      * called from yyrestart() or through yy_get_next_buffer.
11597      * In that case, we don't want to reset the lineno or column.
11598      */
11599     if (b != YY_CURRENT_BUFFER){
11600         b->yy_bs_lineno = 1;
11601         b->yy_bs_column = 0;
11602     }
11603
11604         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
11605     
11606         errno = oerrno;
11607 }
11608
11609 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
11610  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
11611  * 
11612  */
11613     void yy_flush_buffer (YY_BUFFER_STATE  b )
11614 {
11615         if ( ! b )
11616                 return;
11617
11618         b->yy_n_chars = 0;
11619
11620         /* We always need two end-of-buffer characters.  The first causes
11621          * a transition to the end-of-buffer state.  The second causes
11622          * a jam in that state.
11623          */
11624         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
11625         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
11626
11627         b->yy_buf_pos = &b->yy_ch_buf[0];
11628
11629         b->yy_at_bol = 1;
11630         b->yy_buffer_status = YY_BUFFER_NEW;
11631
11632         if ( b == YY_CURRENT_BUFFER )
11633                 yy_load_buffer_state(  );
11634 }
11635
11636 /** Pushes the new state onto the stack. The new state becomes
11637  *  the current state. This function will allocate the stack
11638  *  if necessary.
11639  *  @param new_buffer The new state.
11640  *  
11641  */
11642 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
11643 {
11644         if (new_buffer == NULL)
11645                 return;
11646
11647         yyensure_buffer_stack();
11648
11649         /* This block is copied from yy_switch_to_buffer. */
11650         if ( YY_CURRENT_BUFFER )
11651                 {
11652                 /* Flush out information for old buffer. */
11653                 *(yy_c_buf_p) = (yy_hold_char);
11654                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
11655                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
11656                 }
11657
11658         /* Only push if top exists. Otherwise, replace top. */
11659         if (YY_CURRENT_BUFFER)
11660                 (yy_buffer_stack_top)++;
11661         YY_CURRENT_BUFFER_LVALUE = new_buffer;
11662
11663         /* copied from yy_switch_to_buffer. */
11664         yy_load_buffer_state(  );
11665         (yy_did_buffer_switch_on_eof) = 1;
11666 }
11667
11668 /** Removes and deletes the top of the stack, if present.
11669  *  The next element becomes the new top.
11670  *  
11671  */
11672 void yypop_buffer_state (void)
11673 {
11674         if (!YY_CURRENT_BUFFER)
11675                 return;
11676
11677         yy_delete_buffer(YY_CURRENT_BUFFER );
11678         YY_CURRENT_BUFFER_LVALUE = NULL;
11679         if ((yy_buffer_stack_top) > 0)
11680                 --(yy_buffer_stack_top);
11681
11682         if (YY_CURRENT_BUFFER) {
11683                 yy_load_buffer_state(  );
11684                 (yy_did_buffer_switch_on_eof) = 1;
11685         }
11686 }
11687
11688 /* Allocates the stack if it does not exist.
11689  *  Guarantees space for at least one push.
11690  */
11691 static void yyensure_buffer_stack (void)
11692 {
11693         yy_size_t num_to_alloc;
11694     
11695         if (!(yy_buffer_stack)) {
11696
11697                 /* First allocation is just for 2 elements, since we don't know if this
11698                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
11699                  * immediate realloc on the next call.
11700          */
11701       num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
11702                 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
11703                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
11704                                                                 );
11705                 if ( ! (yy_buffer_stack) )
11706                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
11707
11708                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
11709
11710                 (yy_buffer_stack_max) = num_to_alloc;
11711                 (yy_buffer_stack_top) = 0;
11712                 return;
11713         }
11714
11715         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
11716
11717                 /* Increase the buffer to prepare for a possible push. */
11718                 yy_size_t grow_size = 8 /* arbitrary grow size */;
11719
11720                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
11721                 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
11722                                                                 ((yy_buffer_stack),
11723                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
11724                                                                 );
11725                 if ( ! (yy_buffer_stack) )
11726                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
11727
11728                 /* zero only the new slots.*/
11729                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
11730                 (yy_buffer_stack_max) = num_to_alloc;
11731         }
11732 }
11733
11734 /** Setup the input buffer state to scan directly from a user-specified character buffer.
11735  * @param base the character buffer
11736  * @param size the size in bytes of the character buffer
11737  * 
11738  * @return the newly allocated buffer state object.
11739  */
11740 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
11741 {
11742         YY_BUFFER_STATE b;
11743     
11744         if ( size < 2 ||
11745              base[size-2] != YY_END_OF_BUFFER_CHAR ||
11746              base[size-1] != YY_END_OF_BUFFER_CHAR )
11747                 /* They forgot to leave room for the EOB's. */
11748                 return NULL;
11749
11750         b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
11751         if ( ! b )
11752                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
11753
11754         b->yy_buf_size = (int) (size - 2);      /* "- 2" to take care of EOB's */
11755         b->yy_buf_pos = b->yy_ch_buf = base;
11756         b->yy_is_our_buffer = 0;
11757         b->yy_input_file = NULL;
11758         b->yy_n_chars = b->yy_buf_size;
11759         b->yy_is_interactive = 0;
11760         b->yy_at_bol = 1;
11761         b->yy_fill_buffer = 0;
11762         b->yy_buffer_status = YY_BUFFER_NEW;
11763
11764         yy_switch_to_buffer( b  );
11765
11766         return b;
11767 }
11768
11769 /** Setup the input buffer state to scan a string. The next call to yylex() will
11770  * scan from a @e copy of @a str.
11771  * @param yystr a NUL-terminated string to scan
11772  * 
11773  * @return the newly allocated buffer state object.
11774  * @note If you want to scan bytes that may contain NUL values, then use
11775  *       yy_scan_bytes() instead.
11776  */
11777 YY_BUFFER_STATE yy_scan_string (const char * yystr )
11778 {
11779     
11780         return yy_scan_bytes( yystr, (int) strlen(yystr) );
11781 }
11782
11783 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
11784  * scan from a @e copy of @a bytes.
11785  * @param yybytes the byte buffer to scan
11786  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
11787  * 
11788  * @return the newly allocated buffer state object.
11789  */
11790 YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
11791 {
11792         YY_BUFFER_STATE b;
11793         char *buf;
11794         yy_size_t n;
11795         int i;
11796     
11797         /* Get memory for full buffer, including space for trailing EOB's. */
11798         n = (yy_size_t) (_yybytes_len + 2);
11799         buf = (char *) yyalloc( n  );
11800         if ( ! buf )
11801                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
11802
11803         for ( i = 0; i < _yybytes_len; ++i )
11804                 buf[i] = yybytes[i];
11805
11806         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
11807
11808         b = yy_scan_buffer( buf, n );
11809         if ( ! b )
11810                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
11811
11812         /* It's okay to grow etc. this buffer, and we should throw it
11813          * away when we're done.
11814          */
11815         b->yy_is_our_buffer = 1;
11816
11817         return b;
11818 }
11819
11820     static void yy_push_state (int  _new_state )
11821 {
11822         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
11823                 {
11824                 yy_size_t new_size;
11825
11826                 (yy_start_stack_depth) += YY_START_STACK_INCR;
11827                 new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int );
11828
11829                 if ( ! (yy_start_stack) )
11830                         (yy_start_stack) = (int *) yyalloc( new_size  );
11831
11832                 else
11833                         (yy_start_stack) = (int *) yyrealloc(
11834                                         (void *) (yy_start_stack), new_size  );
11835
11836                 if ( ! (yy_start_stack) )
11837                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
11838                 }
11839
11840         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
11841
11842         BEGIN(_new_state);
11843 }
11844
11845     static void yy_pop_state  (void)
11846 {
11847         if ( --(yy_start_stack_ptr) < 0 )
11848                 YY_FATAL_ERROR( "start-condition stack underflow" );
11849
11850         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
11851 }
11852
11853 #ifndef YY_EXIT_FAILURE
11854 #define YY_EXIT_FAILURE 2
11855 #endif
11856
11857 static void yynoreturn yy_fatal_error (const char* msg )
11858 {
11859                         fprintf( stderr, "%s\n", msg );
11860         exit( YY_EXIT_FAILURE );
11861 }
11862
11863 /* Redefine yyless() so it works in section 3 code. */
11864
11865 #undef yyless
11866 #define yyless(n) \
11867         do \
11868                 { \
11869                 /* Undo effects of setting up yytext. */ \
11870         int yyless_macro_arg = (n); \
11871         YY_LESS_LINENO(yyless_macro_arg);\
11872                 yytext[yyleng] = (yy_hold_char); \
11873                 (yy_c_buf_p) = yytext + yyless_macro_arg; \
11874                 (yy_hold_char) = *(yy_c_buf_p); \
11875                 *(yy_c_buf_p) = '\0'; \
11876                 yyleng = yyless_macro_arg; \
11877                 } \
11878         while ( 0 )
11879
11880 /* Accessor  methods (get/set functions) to struct members. */
11881
11882 /** Get the current line number.
11883  * 
11884  */
11885 int yyget_lineno  (void)
11886 {
11887     
11888     return yylineno;
11889 }
11890
11891 /** Get the input stream.
11892  * 
11893  */
11894 FILE *yyget_in  (void)
11895 {
11896         return yyin;
11897 }
11898
11899 /** Get the output stream.
11900  * 
11901  */
11902 FILE *yyget_out  (void)
11903 {
11904         return yyout;
11905 }
11906
11907 /** Get the length of the current token.
11908  * 
11909  */
11910 int yyget_leng  (void)
11911 {
11912         return yyleng;
11913 }
11914
11915 /** Get the current token.
11916  * 
11917  */
11918
11919 char *yyget_text  (void)
11920 {
11921         return yytext;
11922 }
11923
11924 /** Set the current line number.
11925  * @param _line_number line number
11926  * 
11927  */
11928 void yyset_lineno (int  _line_number )
11929 {
11930     
11931     yylineno = _line_number;
11932 }
11933
11934 /** Set the input stream. This does not discard the current
11935  * input buffer.
11936  * @param _in_str A readable stream.
11937  * 
11938  * @see yy_switch_to_buffer
11939  */
11940 void yyset_in (FILE *  _in_str )
11941 {
11942         yyin = _in_str ;
11943 }
11944
11945 void yyset_out (FILE *  _out_str )
11946 {
11947         yyout = _out_str ;
11948 }
11949
11950 int yyget_debug  (void)
11951 {
11952         return yy_flex_debug;
11953 }
11954
11955 void yyset_debug (int  _bdebug )
11956 {
11957         yy_flex_debug = _bdebug ;
11958 }
11959
11960 static int yy_init_globals (void)
11961 {
11962         /* Initialization is the same as for the non-reentrant scanner.
11963      * This function is called from yylex_destroy(), so don't allocate here.
11964      */
11965
11966     /* We do not touch yylineno unless the option is enabled. */
11967     yylineno =  1;
11968     
11969     (yy_buffer_stack) = NULL;
11970     (yy_buffer_stack_top) = 0;
11971     (yy_buffer_stack_max) = 0;
11972     (yy_c_buf_p) = NULL;
11973     (yy_init) = 0;
11974     (yy_start) = 0;
11975
11976     (yy_start_stack_ptr) = 0;
11977     (yy_start_stack_depth) = 0;
11978     (yy_start_stack) =  NULL;
11979
11980 /* Defined in main.c */
11981 #ifdef YY_STDINIT
11982     yyin = stdin;
11983     yyout = stdout;
11984 #else
11985     yyin = NULL;
11986     yyout = NULL;
11987 #endif
11988
11989     /* For future reference: Set errno on error, since we are called by
11990      * yylex_init()
11991      */
11992     return 0;
11993 }
11994
11995 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
11996 int yylex_destroy  (void)
11997 {
11998     
11999     /* Pop the buffer stack, destroying each element. */
12000         while(YY_CURRENT_BUFFER){
12001                 yy_delete_buffer( YY_CURRENT_BUFFER  );
12002                 YY_CURRENT_BUFFER_LVALUE = NULL;
12003                 yypop_buffer_state();
12004         }
12005
12006         /* Destroy the stack itself. */
12007         yyfree((yy_buffer_stack) );
12008         (yy_buffer_stack) = NULL;
12009
12010     /* Destroy the start condition stack. */
12011         yyfree( (yy_start_stack)  );
12012         (yy_start_stack) = NULL;
12013
12014     /* Reset the globals. This is important in a non-reentrant scanner so the next time
12015      * yylex() is called, initialization will occur. */
12016     yy_init_globals( );
12017
12018     return 0;
12019 }
12020
12021 /*
12022  * Internal utility routines.
12023  */
12024
12025 #ifndef yytext_ptr
12026 static void yy_flex_strncpy (char* s1, const char * s2, int n )
12027 {
12028                 
12029         int i;
12030         for ( i = 0; i < n; ++i )
12031                 s1[i] = s2[i];
12032 }
12033 #endif
12034
12035 #ifdef YY_NEED_STRLEN
12036 static int yy_flex_strlen (const char * s )
12037 {
12038         int n;
12039         for ( n = 0; s[n]; ++n )
12040                 ;
12041
12042         return n;
12043 }
12044 #endif
12045
12046 void *yyalloc (yy_size_t  size )
12047 {
12048                         return malloc(size);
12049 }
12050
12051 void *yyrealloc  (void * ptr, yy_size_t  size )
12052 {
12053                 
12054         /* The cast to (char *) in the following accommodates both
12055          * implementations that use char* generic pointers, and those
12056          * that use void* generic pointers.  It works with the latter
12057          * because both ANSI C and C++ allow castless assignment from
12058          * any pointer type to void*, and deal with argument conversions
12059          * as though doing an assignment.
12060          */
12061         return realloc(ptr, size);
12062 }
12063
12064 void yyfree (void * ptr )
12065 {
12066                         free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
12067 }
12068
12069 #define YYTABLES_NAME "yytables"
12070
12071 /* Element context stack lookup. */
12072 int surfxml_element_context(int i)
12073 {
12074   return (0<i && i<yy_start_stack_depth
12075           ? yy_start_stack[yy_start_stack_ptr - i]
12076           : 0);
12077 }
12078
12079 #ifdef FLEX_DEBUG
12080 void print_yy_stack(char* fmt, ...)
12081 {
12082   int i = 0; va_list ap; va_start(ap, fmt);
12083   vfprintf(stderr, fmt, ap);
12084   if (surfxml_statenames) {
12085       for (i=1; i<yy_start_stack_ptr; i++) {
12086           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
12087       }
12088       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
12089   }
12090   va_end(ap);
12091 }
12092
12093 void print_surfxml_bufferstack()
12094 {
12095     int i;
12096     fputs("Buffer: ", stderr);
12097     for (i = 0; i < blimit; i++) {
12098        if ( surfxml_bufferstack[i] == '\377' ) break;
12099          putc(surfxml_bufferstack[i], stderr);
12100     }
12101     putc('\n', stderr);
12102 }
12103
12104 static void debug_enter(int state, const char* statename) {
12105   yy_push_state(state);
12106   if (yy_flex_debug) {
12107        print_yy_stack("--ENTER(%s) : ",statename);
12108        print_surfxml_bufferstack();
12109   }
12110 }
12111
12112 static void debug_leave(void) {
12113     if (yy_flex_debug) {
12114         print_yy_stack("--LEAVE : ");
12115         print_surfxml_bufferstack();
12116     }
12117   yy_pop_state();
12118 }
12119
12120 static void debug_set(int state, const char* statename) {
12121   BEGIN(state);
12122   if (yy_flex_debug) print_yy_stack("--SET(%s) : ",statename);
12123 }
12124 #endif
12125
12126 static void cleanup(void)
12127 {
12128     if (surfxml_statenames) {
12129         free(surfxml_statenames);
12130         surfxml_statenames = NULL;
12131     }
12132     free(surfxml_bufferstack);
12133     surfxml_bufferstack = NULL;
12134
12135     free(indexstack);
12136     indexstack = NULL;
12137 }
12138
12139 static int fail(const char* fmt, ...)
12140 {
12141     int chars_left, used;
12142     va_list ap; va_start(ap, fmt);
12143 #ifdef FLEXML_yylineno
12144     used = snprintf(flexml_err_msg,flexml_max_err_msg_size,
12145                    "Invalid XML (XML input line %d, state %d): ",
12146                    yylineno, YY_START);
12147 #else
12148     used = snprintf(flexml_err_msg,flexml_max_err_msg_size,
12149                    "Invalid XML (state %d): ",
12150                    YY_START);
12151 #endif
12152     chars_left = flexml_max_err_msg_size - used - 1;
12153     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
12154     va_end(ap);
12155
12156 #ifndef FLEXML_quiet_parser
12157     /* print directly to sdterr */
12158     fprintf(stderr, "%s\n", flexml_err_msg);
12159     flexml_err_msg[0] = '\0';
12160 #endif
12161
12162     cleanup();
12163
12164     return 1;
12165 }
12166